重叠相加法和重叠保留法的原理

重叠相加法和重叠保留法的原理

DFT(FFT)的一个应用,就是计算线性卷积。

h(n) x(n) 长度分别为 N M ,对于 L 点循环卷积,若满足 L>=N+M1 ,则有 yc(n)=yl(n)

对于两个序列长度相差很大的情况,例如 M>>N ,为了节省存储空间并实现实时处理,则需要采取将长序列分段的方法。因为可以通过求循环卷积来得到线性卷积,所以以下先讨论循环卷积的情况。

仍然对于上述的 h(n) x(n) ,当 M>>N 时,计算每一个 yc(n) 最多只需要 N 次(较短序列的长度)计算,即从 x(nN+1) ~ x(n) 之间的 N 个值。所以即便将 x(n) 分解也可以得到卷积结果。

现将 x(n) 分解为许多长度为 KKN 的短序列 x0(n),x1(n),x2(n)... 。例如对于

x2(n),0nK1
N1nK1 时,求得 y2(n) 所需的 x(nN+1) ~ x(n) 之间的 N 个值可完全由 x2(n) 提供,但是当 0nN2 时则无法只由 x2(n) 提供全部所需的 x(n) ,为了解决这个问题便提出了重叠相加法和重叠保留法。

  1. 重叠相加法
    根据

    y(n)=h(n)x(n)=h(n)m=0xk(n)=m=0h(n)xk(n)=m=0yk(n)
    yk(n) 求和即可得到原本的 y(n) ,其本质就是对不完全的 yk(n) 进行补全,而原本就满足 N1nK1 yk(n) 则实际上不改变其值。

  2. 重叠保留法
    此方法需 x(n) 分段时每两段之间需要重叠 N1 个值(实际上大于该值都可以,但取 N1 时最节省运算量),然后对所求的 yk(n) 去除前 N1 个点。本质就是直接删去 0nN2 yk(n) ,只保留 N1nK1 yk(n) ,因此在对分段时需要对 x(n) 重叠分段,保证对于每个n都有满足 N1nK1 xk(n)

综上,对于两种方法,都是为了解决相同的问题,即 x(n) 分段后每段内前 N1 yk(n) 不完全的问题。

你可能感兴趣的:(数字信号处理)