Obtaining Phase and Amplitude from FFT

1. Aug 2, 2012

henryd

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)

Thanks!

2. Aug 2, 2012

es1

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.
http://www.google.com/url?sa=t&rct=...3oipn3Fy-ZK4CYszA&sig2=4Mk4C5H4T1Ug3mHVbrYeMQ

3. Aug 2, 2012

henryd

Does it help if I have a pretty good estimate of ω?

The signal would be:

$$B + A\cos(\omega t + \phi)$$

where B and A are constant

4. Aug 2, 2012

the_emi_guy

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).

5. Aug 2, 2012

rbj

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

$$x[0] = B + A\cos(\omega 0 + \phi) \ \$$ ?

Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook