我刚刚开始进行信号处理,需要做一些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,所以我得到:
如预期的那样,峰值为2Hz和5Hz。
我的问题是:为什么幅度不同?
在相关的说明中,为什么2hz和5Hz没有两个完美的尖峰,即图形在1.5和2.5等处具有非零值。这是否是光谱泄漏?
答案 0 :(得分:2)
我希望您的500个数据点被处理为512点FFT(大多数FFT库不支持任意大小的输入,因此通常它们将零填充到下一个最大功率2)。如果是这种情况,那么您将看到spectral leakage的效果。在FFT之前应用window function应解决此问题。请注意,您仍将在峰的两侧看到“裙边” - 这是由于有限采样窗口引入的不确定性。