用DFT计算线性卷积
两有限长序列之间的卷积
我们知道,两有限长序列之间的卷积可以用圆周卷积代替,假设两有限长序列的长度分别为 M M M和 N N N,那么卷积后的长度为 L = M + N − 1 L=M+N-1 L=M+N−1,那么用圆周卷积计算线性卷积的具体过程为:
1.首先将两序列在尾部补零,延拓成长度为L=M+N-1的序列
2.将两序列进行圆周卷积,卷积后的结果即为线性卷积的结果
而圆周卷积的实现可以通过下图实现
现讨论 X [ k ] X[k] X[k]的 I D F T IDFT IDFT使用 D F T DFT DFT实现
x [ n ] = 1 N ∑ n = 0 N − 1 X [ k ] W N − k n = 1 N ( ∑ n = 0 N − 1 X ∗ [ k ] W N k n ) ∗ → 1 N ( D F T { X ∗ [ k ] } ) ∗ x[n]=\frac{1}{N}\sum_{n=0}^{N-1}X[k]W_N^{-kn}=\frac{1}{N}(\sum_{n=0}^{N-1}X^{*}[k]W_N^{kn})^{*}\rightarrow \frac{1}{N}(DFT\{X^{*}[k]\})^{*} x[n]=N1n=0∑N−1X[k]WN−kn=N1(n=0∑N−1X∗[k]WNkn)∗→N1(DFT{
X∗[k]})∗
上图可以改进为
所以线性卷积可以完全使用 D F T DFT