MATLAB fft y轴的含义

时间:2016-04-25 17:25:22

标签: matlab fft

我有一个时变信号(a),我把它的fft。我需要将频率相关的加权因子乘以fft的y轴值;但如果我这样做:

xdft = fft(a);
xdft = xdft(1:length(x)/2+1); % only retaining the positive frequencies
freq = Fs*(0:(L/2))/L; 

并且绘图(freq,xdft)我在信号的正确频率处获得~2000的峰值fft值(y轴)。但原始信号峰值(幅度)为~46。我需要知道这些数字是如何相关的,这样我就可以对fft值进行加权。

1 个答案:

答案 0 :(得分:4)

你忘了除以DFT长度。看看this example

考虑fft的输出很复杂。因此,如果您想绘制实际功率谱密度,您应该将输出乘以其复数共轭,如下所示:

Pyy = xdft.*conj(xdft)/L;

修改: 对于幅度谱,你应该做这样的事情:

xdft=abs(xdft/L); % same as sqrt(xdft.*conj(xdft))/L
Y=xdft(1:L/2+1); % copy half of data since the other half is redundant
Y(2:end-1) = 2*Y(2:end-1); % correct the amplitudes

编辑2 : 只是想指出一本非常棒的书(我认为最好),它以一种非常容易理解的方式解释了傅立叶系列的工作原理(以及更多)。

Alan V. Oppenheim,Alan S. Willsky和S. Hamid Nawab。 1996。 Signals&系统(第2版)。 Prentice-Hall,Inc.,Upper Saddle River,NJ,USA。