如何有效地仅计算零填充 FFT 的低系数

信息处理 fft 自由度
2022-01-01 06:08:24

我有一个算法,可以将序列零填充到 4N,进行 FFT,并且只使用生成的 4N 中的最低频率 N 点。

这似乎是很多浪费的工作,有什么想法可以更快地完成吗?

3个回答

如果您只有几个分档,那么以下方法对您来说可能非常有效:
1. 只需在您需要的每个频率上进行 DFT。
2. 对每个有问题的频率使用 Goertzel 算法。

零填充到 4X 长度,计算更长的 FFT,然后仅使用底部的 1/4 分箱产生与原始长度 FFT 的窗口 Sinc 插值几乎相同的结果。

因此,只需使用原始 FFT 长度并使用具有合适窗口宽度的 3 相 Sinc 插值内核进行插值。

时域中的零填充为您提供了更高频率的解决方案,但没有新信息,因此它基本上提供了频域中的插值。根据信号的性质和所需的精度,您可以通过 N 点的常规 FFT 并进行适当的插值(线性、样条、pchip、sinc 等)来获得额外的频率点。