FFT幅度输出

时间:2012-12-13 11:40:31

标签: fft

我刚刚开始进行信号处理,需要做一些DFT / FFT工作。

如果我接收两个2Hz和5Hz频率的信号:x(t)= sin(2 * 2pi * t)+ sin(5 * 2pi * t)。我以100Hz采样5秒(所以我的DFT大小是500)。

因为我的输入是实数值,所以我得到一个对称的DFT,因此可以丢弃下半部分,并通过执行sqrt(re ^ 2 + c ^ 2)将DFT值转换为幅度。

我的bin宽度是100/500 = 0.2Hz,所以我得到:enter image description here

如预期的那样,峰值为2Hz和5Hz。

我的问题是:为什么幅度不同?

在相关的说明中,为什么2hz和5Hz没有两个完美的尖峰,即图形在1.5和2.5等处具有非零值。这是否是光谱泄漏?

1 个答案:

答案 0 :(得分:2)

我希望您的500个数据点被处理为512点FFT(大多数FFT库不支持任意大小的输入,因此通常它们将零填充到下一个最大功率2)。如果是这种情况,那么您将看到spectral leakage的效果。在FFT之前应用window function应解决此问题。请注意,您仍将在峰的两侧看到“裙边” - 这是由于有限采样窗口引入的不确定性。