DSP - DFT 分段卷积

假设,要使用具有有限持续时间脉冲响应的系统通过卷积两个序列来处理持续时间较长的输入序列 x(n)。由于通过 DFT 执行的线性滤波涉及对固定大小数据块的操作,因此在处理之前将输入序列划分为不同的固定大小数据块。

然后一次处理一个连续的块,并将结果组合以产生净结果。

由于卷积是通过将长输入序列划分为不同的固定大小部分来执行的,因此它被称为分段卷积。在 FIR 滤波器处理之前,将长输入序列分割成固定大小的块。

使用两种方法来评估离散卷积 −

  • 重叠保存方法

  • 重叠添加方法

重叠保存方法

重叠保存是评估非常长的信号 x(n) 和有限脉冲响应 (FIR) 滤波器 h(n) 之间的离散卷积的有效方法的传统名称。下面给出了重叠保存方法 −

的步骤

让输入数据块的长度 = N = L+M-1。因此,DFT 和 IDFT 长度 = N。每个数据块携带前一个块的 M-1 个数据点,后面跟着 L 个新数据点,形成长度为 N = L+M-1 的数据序列。

  • 首先,为每个数据块计算 N 点 DFT。

  • 通过附加 (L-1) 个零,FIR 滤波器的脉冲响应长度增加,并计算和存储 N 点 DFT。

  • 两个 N 点 DFT H(k) 和 Xm(k) 的乘法:Y′m(k) = H(k).Xm(k),其中 K=0,1,2,…N-1

  • 然后,IDFT[Y′m((k)] = y′((n) = [y′m(0), y′m(1), y′m(2),.......y′m(M-1), y′m(M),.......y′m(N-1)]

    (此处,N-1 = L+M-2)

  • 前 M-1 个点由于混叠而损坏,因此由于数据记录长度为 N,因此它们被丢弃。

  • 最后 L 个点与卷积结果完全相同,因此

    y′m (n) = ym(n),其中 n = M、M+1、….N-1

  • 为避免混叠,每个数据记录的最后 M-1 个元素都会被保存,这些点会延续到后续记录并成为前 M-1 个元素。

重叠保存方法
  • IDFT 的结果,其中前 M-1避免使用点来消除混叠,剩下的 L 个点构成与线性卷积相同的期望结果。

重叠添加方法

下面给出了使用重叠方法 − 找出离散卷积的步骤

设输入数据块大小为 L。因此,DFT 和 IDFT 的大小:N = L+M-1

  • 每个数据块最后附加 M-1 个零。

  • 计算 N 点 DFT。

重叠添加方法
  • 两个 N 点 DFT 相乘:Ym(k) = H(k).Xm(k),其中 k = 0,,1,2,….,N-1

  • IDFT [Ym(k)] 产生长度为 N 的块,这些块不受混叠影响,因为 DFT 的大小为 N = L+M-1,并且通过在每个块后附加 M-1 个零,将序列的长度增加到 N 点。

  • 每个块的最后 M-1 个点必须重叠并添加到后续块的前 M-1 个点。

    (原因:每个数据块以 M-1 个零结束)

    因此,此方法称为重叠相加方法。因此,我们得到 −

    y(n) = {y1(0), y1(1), y1(2), ... .., y1(L-1), y1(L)+y2(0), y1(L+1)+y2(1), ... ... .., y1(N-1)+y2(M-1),y2(M), ... ... ... ... ...