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

Obtaining Phase and Amplitude from FFT

  1. Aug 2, 2012 #1
    Is it possible to calculate the phase and signal amplitude from data gained from FFT?

    For instance, if I have a samples from a signal B+A*cos(ψ), is it possible to obtain A and ψ?

    Extra challenge: is it possible to do so without division? (I am looking to put this on a DSP and division is expensive)

  2. jcsd
  3. Aug 2, 2012 #2


    User Avatar

    Which is the time varying signal? I think the example you gave might be a constant. If so your problem is much easier to solve. :)

    Basically: In theory, sure. In practice, maybe. For example, if A is less than a LSB or the sampling rate is slower than the frequency you want to observe, then no. And then when measuring phase there is the whole problem of, what exactly is t0?

    You might want to look at this primer. I think it looks pretty good.
  4. Aug 2, 2012 #3
    Does it help if I have a pretty good estimate of ω?

    The signal would be:

    [tex]B + A\cos(\omega t + \phi)[/tex]

    where B and A are constant
  5. Aug 2, 2012 #4
    The output of your FFT is a complex number for each frequency bin.
    Complex number is rectangular coordinates. You will use trig to convert these to polar (magnitude/phase angle).
  6. Aug 2, 2012 #5


    User Avatar

    [itex] t [/itex] relative to what? what is the origin of your time axis? is it relative to the very first bin (sometimes called the "zeroeth" bin) [itex]x[0][/itex]. i.e. is bin 0:

    [tex]x[0] = B + A\cos(\omega 0 + \phi) \ \ [/tex] ?
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook