主要内容

交叠相加/保存

这个例子展示了如何使用频域FIR滤波器块用重叠叠加和重叠保存FFT方法来滤波正弦信号。

重叠加算法[1]在频域对输入信号进行滤波。输入被划分成不重叠的块,这些块与FIR滤波器系数线性卷积。每个块的线性卷积是由块的离散傅里叶变换(DFT)与滤波器系数相乘,并计算乘积的DFT逆。对滤波器的长度和FFT大小N,最后m - 1将线性卷积的样本加到第一个样本中m - 1下一个输入序列的样本。第一个n - m + 1每个求和结果的样本依次输出。

重叠保存算法[2]还在频域对输入信号进行滤波。输入被分成重叠的块,这些块与FIR滤波器系数进行循环卷积。每个块的循环卷积是由块的DFT与滤波器系数相乘,并计算乘积的DFT逆。对滤波器的长度和FFT大小N,第一个m - 1循环卷积的点是无效的,被丢弃。输出由剩余部分组成n - m + 1点,它们等价于真正的卷积。

重叠保存和重叠添加引入了N-M+1个样本的处理延迟。您可以通过将分子划分为更短的段,在分区上应用重叠-添加或重叠-保存,然后合并结果以获得过滤后的输出[3],从而减少这种延迟。延迟被减少到分区长度,与传统的重叠保存/重叠添加相比,代价是额外的计算(尽管对于长过滤器来说,在数值上仍然比时域过滤更有效)。在该模型中,我们使用30个分区长度,将传统的213个样本的延迟降低到30个样本。

参考文献

[1]重叠添加算法:Proakis和Manolakis,数字信号处理,第3版,Prentice-Hall, Englewood Cliffs, NJ, 1996,第430 - 433页。

[2]重叠保存算法:Oppenheim and Schafer,离散时间信号处理, Prentice-Hall, Englewood Cliffs, NJ, 1989,第558 - 560页。

[3] T. G. Stockham Jr.,“高速卷积和相关”,Proc. 1966 Spring Joint Computer Conf., AFIPS, Vol 28, 1966, pp. 229-233。