MATLAB fft y 轴含义

标签 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 值进行加权。

最佳答案

您忘记除以 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。信号与系统(第二版)。 Prentice-Hall, Inc. ,美国新泽西州上萨德尔河。

关于MATLAB fft y 轴含义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36847166/

相关文章:

web-services - 通过 MATLAB 中的 Web 服务进行货币汇率

MATLAB 支持向量机 : Using the same dataset for training and testing gives different results

android - 检测音频信号中的频率变化点

ios - AudioKit FFT 转换为 dB?

OpenCV DFT_INVERSE 不同于Matlab的ifft

matlab - 在 MATLAB 图的图例中设置线条颜色?

matlab - fprintf 不打印新行

iphone - 清理嘈杂的倒谱结果

algorithm - 为什么 FFT 产生复数而不是实数?

matlab - sortrows 是否始终保留排序组内的原始顺序?