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) 和 X m (k) 的乘法:Y′ m (k) = H(k).X m (k),其中 K=0,1,2,…N-1

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

    (这里,N-1=L+M-2)

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

  • 最后L个点和卷积的结果一模一样,所以

    y′ m (n) = y m (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 相乘:Y m (k) = H(k).X m (k),其中 k = 0,,1,2,….,N-1

  • IDFT [Y m (k)] 生成长度为 N 的块,该块不受混叠影响,因为 DFT 的大小为 N = L+M-1,并且通过向每个块附加 M-1 个零来将序列长度增加到 N 点堵塞。

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

    (原因:每个数据块以M-1个零终止)

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

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