FFT的缺点是没有足够的样本就无法提取足够的频率

信息处理 matlab fft 离散信号 傅里叶变换 自由度
2022-02-12 20:00:56

假设采样率为Fs=44ķHz, 我现在有ñ=2048样品,然后我可以得到ñ/2+1=1025频率。

我对Matlab 的 FFT 文档感到困惑,该文档说频率存在于:

(Fs/2) * linspace(0, 1, N/2+1)

实际频率很可能不在生成的频率中。我们应该怎么做才能得到真实的频率?

3个回答

任何测量都有有限的精度。一般来说,您无法准确找到真实频率。您可以改为以必要的精度对其进行评估。在 FFT 的情况下,如果实际频率与 FFT 频率网格不完全匹配,则功率谱主要分布在相邻频率区间(通常在所有区间中,但大部分集中在几个相邻频率区间)。不过,您可以通过找到此类频谱的最大值来估计实际频率。处理 FFT,您可以通过增加样本数量来提高频率搜索的精度。如果你不能,你应该使用另一种功率谱估计技术,但这是一个单独的问题。

希望这可以帮助。

为了计算一些频率分量,通常使用Goertzel 算法。请注意,频率不需要位于网格上(与 FFT 一样)。

这不是 FFT 的固有缺点。这是与有限长度窗口或样本数量以及任何先验假设或 S/N 比分析更相关的固有缺点。在低噪声中,可以通过插值在 FFT 结果箱之间估计窄带“真实”频率峰值。请参阅:过采样信号的特定频率分辨率所需的 FFT 点数