幂 2 的循环卷积和 FFT

信息处理 fft IFFT 唧唧喳喳
2022-02-17 04:07:17

我目前正在尝试理解啁啾 Z 变换,并计算大小不一定是 2 的幂的向量的 FFT。啁啾 Z 变换中识别归结为计算循环卷积的关键步骤两个长度向量n.

我的问题是:如何计算两个向量的循环卷积说(x[1],x[2],...,x[n]) 和 (y[1],y[2],...,y[n]) 仅使用 2 次方的 DFT 大小?我知道通过卷积定理,我可以找到应用 DFT 的两个向量的循环卷积(并且它是逆的),但我只有 2 个大小的 DFT 的能力可以任意计算n. 我考虑填充向量以将它们的大小增加到最接近 2 的幂,但似乎必须仔细构造这样的填充以获得正确的结果(因为我们需要计算模n并不是2k)。

有关更多上下文:我在此链接上浏览了 Dilip Sarwate 对此主题的回答:https ://math.stackexchange.com/questions/104148/chirp-transform-and-convolution[on math stackexchange] 1并且无法计算了解如何有效地计算循环卷积。

1个回答

循环卷积只是由 DFT 长度别名的线性卷积n. 线性卷积的长度ab将会2n1. 所以拿FFTsab, 将它们中的每一个填充到最接近 2 的幂的长度大于或等于2n1. 乘以对应FFTs逐点获得 2 长度序列的幂并取IFFT其中。这个序列其实就是线性卷积ab因为我们在采取他们的个人之前已经做了足够的填充FFT. 让这个序列被命名c. 现在,通过移动副本在时域中产生别名c经过n并将它们叠加在一起。

d[m]=k=k=+c[mnk]
你想要的最终输出是d[m]for0mn1