DFT应用——快速卷积之重叠保留法理解
摘要:重叠保留法的一些简单理解,主要针对为什么移位长度为n-1作出讨论
一、重叠保留法介绍:
仍然采用分段求卷积再组合的方法。
该方法与重叠相加法的区别为:
ⅰ. 对序列x(n)以M为长度重叠分段为xi(n) ,其后段与前段有N-1个重叠点;
ⅱ. 每段以M为周期计算循环卷积 ;(用FFT)
ⅲ. 将每段得到的循环卷积结果的前N-1个点去掉(这是循环卷积中的混叠部分),然后将各段剩余部分(对应线性卷积结果)首尾衔接起来,即得到最终结果。
二、理解过程
下面结合课本第三章的一道课后题来解释清楚重叠保留法的过程
21.我们希望利用h(n)长度为N=50的FIR滤波器对一段很长的数据序列进行滤波处理,要求采用重叠保留法通过DFT(即FFT)来实现。所谓重叠保留法,就是对输入序列进行分段(本题设每段长度为M=100个采样点),但相邻两段必须重叠V个点,然后计算各段与h(n)的L点(本题取L=128)循环卷积,得到输出序列y(n),m表示第m段循环卷积计算输出。最后,从y(n)中选取B个样值,使每段选取的B个样值连接得到滤波输出y(n)。
(1)求V;(2)求B;
分析:
不管是重叠相加法还是重叠保留法,其本质都是用循环卷积去代替线性卷积,但是循环卷积根据情况(L>=N+M-1)可能等于或者不等于线性卷积,我们需要对多余的部分做操作,是保留还是如何。下面看一下这题的示意图
从上往下依次:
- 被分段的输入序列之一
- 滤波器的单位取样响应h(n)
- h(n)以L为周期进行周期延拓后的反转序列
实际的线性卷积只有①段,因此线性卷积和循环卷积要想相等,必须把②段移出0~99外,即79~99共21个点。因此作循环卷积时,前21个点会发生混叠,即ym(0)~ym(20)要舍去。
因此相邻两段必须重叠21个点,即下一段xm(n)要从79开始,再有21个无效的输出时,①段的左侧与上一次的x(n)的n=99重合,因此第一次ym(n)取样值也只取到这里,即取第21到99点作为输出,而不取到128,否则会有重复。
但是实际生活中,往往L是未知的,但是滤波器是固定的,滤波器确定了,h(n)的长度就确定了,所以一般干脆取N-1点作为重叠部分,而不需要考虑L,这里为了计算机计算方便,L会取比分段序列每一段长大的2的幂次,如本题中27>100。这里的分段长度可能实际生活中是不确定了,而我们21点就是据此算出来的,为了形成统一的算法,取重叠部分为N-1,因为②段的长度就是N,所以一定会被移出去。保证了循环卷积和线性卷积结果一致。