在音频样本上运行FFT后如何确定截止幅度?

时间:2019-02-02 16:24:43

标签: fft

我需要对此wonderful answer进行一些澄清。我已经产生具有5个频率(3 9 15 21 27)的谐波样品,使用方波的傅立叶级数公式。然后我在为32Hz采样它,期望以识别第一3个频率它们是低于奈奎斯特限制。后我通过FFT函数传递的32个样本(16位),使用我SQRT计算幅值(实^ 2 + IMAG ^ 2)。

Generated Frequencies: 3 9 15 21 27
The magnitudes [sqrt(real^2 + imag^2)] after FFT:
6.87475e-15
2.71352e-15
2.14864e-16
20.3718-----------3
1.75333e-15
2.26354-----------5
3.97083e-15
1.16198e-14
2.33558e-14
6.79061-----------9
9.38245e-15
2.91026-----------11
6.42032e-15
9.03851e-15
1.48744e-14
4.07437-----------15

所以...我发现5个频率仓的幅度很高。我只知道3,9,15,预计有效值。但是我看到5和11具有可观的幅度。如何确定丢弃这些无效频率仓的截止幅度?

2 个答案:

答案 0 :(得分:2)

如果在更长的时间窗内采样(例如,每个波形增加2倍的周期),并在执行FFT之前对数据应用窗函数(Hamming或Von Hann等),则可能会获得更好的结果。 。

如果你不使用平滑的窗函数,你的频率分辨率可以是由于差的来自不在在FFT宽度恰好整数周期性任何附近的正弦分量的矩形开窗工件(旁瓣)。这些旁瓣导致附近频率分量的FFT结果相互干扰,有时是相长干涉,有时是相消干涉。因此,有没有简单的规则来确定从混合感兴趣的实际频率峰值。

一个较长的数据窗口(更多的样品,每一个感兴趣的频率的多个周期)也更好分离感兴趣的峰的FFT结果箱,从而减少潜在的干扰。

答案 1 :(得分:1)

问题在于您违反了 Nyquist–Shannon sampling theorem:采样频率至少需要是信号带宽的两倍。在您的情况下(频率范围在大多数情况下从 0 开始)这意味着采样频率需要至少是最大信号频率的两倍。因此,您要么需要以至少 54Hz 的频率进行采样,要么需要使用低通滤波器将信号频率限制为 16Hz。不注意这会导致混叠,在您的情况下会显示 5Hz 和 11Hz 处的峰值。