Can someone explain what the output of fft means in MATLAB?

≡放荡痞女 提交于 2019-12-25 03:44:34

问题


>> fft([1 4 66])

ans =

  71.0000           -34.0000 +53.6936i -34.0000 -53.6936i

Can someone explain according the result above?


回答1:


EDIT Well that's embarassing. I left out a factor of 2. Updated answer follows...

The Discrete Fourier Transform, which an FFT algorithm computes quickly, assumes the input data of length N is one period of a periodic signal. The period is 2*pi rad. The frequency of the output points is given by 2*n*pi/N rad/sec, where n is the index from 0 to N-1.

For your example, then, 71 is the value at 0 rad/sec, commonly called DC, -34+53.7i is the value at 2*pi/3 rad/sec, and its conjugate is the value at 4*pi/3 rad/sec. Note that by periodicity, 2*pi/3 rad/sec = -2*pi/3 rad/sec = 4*pi/3 rad/sec. So the second half of the spectrum can be regarded as the frequencies from -pi..0 or pi..2*pi.

If the data represents sampled data at a constant sampling rate, and you know that sampling rate, you can convert rad/sec to Hz. Let the sampling rate be deltaT. Its reciprocal is the sampling frequency Fs. Then the period is T = N*deltaT sec = 2*pi rad. 1/T gives the frequency resolution deltaF = Fs/N Hz. Therefore the frequency of the output points is n*Fs/N Hz.




回答2:


This is a vector of complex numbers representing your signal in frequency domain.



来源:https://stackoverflow.com/questions/2658659/can-someone-explain-what-the-output-of-fft-means-in-matlab

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!