Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

DC estimator algorithms

  1. Jul 9, 2018 #1
    I wanted to remove the dc component from a signal but i can't use the average method because i have only a half cycle sampled not a full cycle . Is there any algorithm or method that can remove the dc component using only a half cycle?
    (The signal is sin(x)+2*sin (2x) +3*cos (3x)+4*cos (4x) +5 =f (x), of course normally i dont have the function i have points (x,f (x)) .)
     
  2. jcsd
  3. Jul 9, 2018 #2

    anorlunda

    Staff: Mentor

    It depends on how you define the DC component for one half cycle. Subtracting the average works for any signal sample according to my definition of DC offset.
     
  4. Jul 9, 2018 #3
    Yes it would work but i can't because i dont have the full cycle so i cant get its average
     
  5. Jul 9, 2018 #4

    berkeman

    User Avatar

    Staff: Mentor

    Why do you only have a half-cycle? Is your memory not deep enough for a full cycle? And you have a half cycle of which frequency component? x or 4x? What is the signal to noise ratio (SNR) for your data acquisition?
     
  6. Jul 9, 2018 #5

    Baluncore

    User Avatar
    Science Advisor

    Take the fourier transform, FFT, of the signal. Overwrite the Cosine( zero ) component with zero. Take the IFT. The DC is gone!
    Or; write a digital high-pass filter to eliminate the low frequencies.
     
  7. Jul 10, 2018 #6
    Sorry for the late reply, i am asking for a friend so i had to get back to him, he said " he has a half cycle of the function not just the x or the 4x , he cant get a full cycle because the period is very long he doesnt have time to get a full cycle ( it's some kind of mechanical application, vibration or something, didnt really understand because i am electrical major :) )
    As for the snr he's trying to figure it out right now as an ideal situation, once he figures it out he will start dealing with the noise from the sensors and the adc etc..
     
  8. Jul 10, 2018 #7

    berkeman

    User Avatar

    Staff: Mentor

    I meant the frequencies of the sin() and cos() parts of the function. The periods are different when the arguments are x, 2x, 3x, 4x. Presumably he means only a half-cycle of the slowest-varying argument to the functions, which would be just x.

    I'll try plotting that with Excel or Wolfram Alpha when I get a chance to see what it looks like...
     
  9. Jul 10, 2018 #8
    Doesnt fft require an integer number of cycles sampled?
    As for the filters, he tried on matlab to multiply by this transfer function ( (1-z)/(1-0.95z)) he read somewhere online that this T.F blocks dc , then he set the simulation to end after half the period and it didnt work.
     
  10. Jul 10, 2018 #9
    What he basically wants to do is get the graph of the integral of the function where C=0
    But when he used numerical integration methods (because he doesnt have the function he has points) he got the right graph but there is a dc offset , he wants to remove it to get the right graph
     
  11. Jul 10, 2018 #10

    Baluncore

    User Avatar
    Science Advisor

    Not necessarily. Apply a raised cosine window function before the transform to reduce the sensitivity. If he has exactly one half cycle of the fundamental, there are ways to extend the data by adding samples with value zero, or by duplication, inversion or folding.

    If he fits an order n-1 polynomial to n data points, then convert the coefficients to the integral, he will still have to eliminate the DC.

    The constant 5 in the generator equation and the constant of integration will be combined. It will be impossible to separate the estimates of the integral of the constant +5 term and the constant of integration. I guess the problem depends on how the “DC offset” is defined. If he can see a DC offset, why can he not remove it?
     
  12. Jul 11, 2018 #11
    i didnt really understand what you said about the polynomilas, can you explain more please, if you dont mind.
    about duplication ... he cant do that because there is no half wave symmetry ( the real function is actually longer than what i wrote , i just tried to give a simplified example) about
    i dont understand how it will help, can you please explain further?
     
  13. Jul 11, 2018 #12

    Baluncore

    User Avatar
    Science Advisor

    Do you remember the quick way to differentiate a polynomial?
    Say you have a polynomial y = a + bx + cx^2 + dx^3 + …
    You know the derivative will be y' = b + 2cx + 3dx^2 + …
    Reversing that process, you can generate the integral of the polynomial; y = a + bx + cx^2 + dx^3 + …
    as; Integral( y ) = k + ax + (bx/2)^2 + (cx/3)^3 + (dx/4)^4 + … ; where k is the constant of integration.
    You just need to be able to convert the n sample points to n-1 polynomial coefficients.

    If I remember correctly, the same sort of trick can be done with fourier coefficients after an FFT.
    Swap the Cos() and Sin() coefficients, negate as needed.

    If you have less than 2^n points you can follow it with zeros to make it up to 2^n points for a FFT.
    If you have exactly half a cycle of fundamental, repeating the data, but negative, will complete the fundamental cycle. It may cancel or double the other coefficients.
     
  14. Jul 11, 2018 #13
    So for example if i have a signal with period 6 s and i am taking a sample every 1 s
    Lets say
    0 1
    1 3
    2 4
    3 2
    If i assumed that
    4 -3
    5 -4
    6 -2
    The fundemetal component should be the same but other coefficient will be changed?
     
  15. Jul 11, 2018 #14

    Baluncore

    User Avatar
    Science Advisor

    That looks OK, except for the confusing entry; 0 1.
     
  16. Jul 11, 2018 #15
    I got confused too when i was typing the reply , i will tell him to try it.
    Will parameter estimators ( like maximum likelyhood for example ) work?
     
  17. Jul 11, 2018 #16

    Baluncore

    User Avatar
    Science Advisor

    When folding data, keep your wits about you.

    I have no idea. Every method leads to the correct result, only the error bars are different. If you know what you are looking for in the data you will find it, but is it really there, or is it just some lucky noise.

    Working through an intermediary or translator can lead to misunderstandings. The incomplete example equation given is not what I would expect in the real world. In the situation where the fundamental is smaller than the harmonics, I would expect stored energy, instability or a chaotic surprise.

    All we can do here is throw in suggestions of different possible approaches. Education involves understanding possible solutions well enough, to reject them for valid reasons.

    If you are using fourier coefficients then maybe the problem is cyclic. Make the number of samples per cycle a count of 2^n so as to benefit from the FFT. Use many samples for the highest frequency present, not the requisite Nyquist 2, but an absolute minimum of 16. That way, resolution will be sufficient to keep the expected harmonics separate while still using a window function.
     
    Last edited: Jul 11, 2018
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook

Have something to add?
Draft saved Draft deleted