我可以从其非零前部的 FFT 计算半零数据的 FFT 吗?

信息处理 自由度
2022-02-05 20:00:05

我有后半部分全为零的数据。例如data=[a, b, c, d, 0, 0, 0, 0], 和front_half=[a, b, c, d]有什么方法可以通过FFT(front_half)上的一些计算效率转换来获得FFT (data) ?

我在方程上做了一些工作。FFT(data)中的偶数项与FFT(front_half)相等但是FFT(data)中的奇数项似乎与带有时域权重向量的点乘法扭曲,这看起来很难从FFT(front_half)计算出来。

2个回答

计算有效的方法是进行 IFFT/零填充/FFT。对于任何大量的额外点,执行圆形 Sinc 插值(在另一个域中创建矩形窗口的效果)通常效率较低。任何其他插值都不太准确。

这里没有真正值得注意的节省:对于半零数据集,只有第一个蝶形运算是微不足道的,可以用零元素上的副本代替。之后的一切都照常进行。所以你可以有类似 9*512 的蝶形运算而不是 10*512 的蝶形运算,节省 10%。使用较大的转换,节省的百分比会更小。