DSP - DFT 循环卷积


让我们取两个有限持续时间序列 x 1 (n) 和 x 2 (n),整数长度为 N。它们的 DFT 分别为 X 1 (K) 和 X 2 (K),如下所示 -

$$X_1(K) = \sum_{n = 0}^{N-1}x_1(n)e^{\frac{j2\Pi kn}{N}}\quad k = 0,1,2.. .N-1$$ $$X_2(K) = \sum_{n = 0}^{N-1}x_2(n)e^{\frac{j2\Pi kn}{N}}\quad k = 0 ,1,2...N-1$$

现在,我们将尝试找到另一个序列 x 3 (n)的 DFT ,其给出为 X 3 (K)

$X_3(K) = X_1(K)\乘以X_2(K)$

通过对上面的IDFT我们得到

$x_3(n) = \frac{1}{N}\displaystyle\sum\limits_{n = 0}^{N-1}X_3(K)e^{\frac{j2\Pi kn}{N}} $

求解上式后,最终得到

$x_3(n) = \displaystyle\sum\limits_{m = 0}^{N-1}x_1(m)x_2[((nm))_N]\quad m = 0,1,2...N- 1$

比较点 线性卷积 循环卷积
变速 线性变速 循环变速
卷积结果中的样本 $N_1+N_2−1$ $最大(N_1,N_2)$
寻找滤波器的响应 可能的 可以用零填充

循环卷积方法

一般来说,有两种方法用于执行循环卷积,它们是 -

  • 同心圆法,
  • 矩阵乘法。

同心圆法

令 $x_1(n)$ 和 $x_2(n)$ 为两个给定序列。$x_1(n)$ 和 $x_2(n)$ 循环卷积的步骤是

  • 取两个同心圆。在外圆圆周上沿逆时针方向绘制 $x_1(n)$ 的 N 个样本(保持等距离连续点)。

  • 为了绘制 $x_2(n)$,在内圆上顺时针方向绘制 $x_2(n)$ 的 N 个样本,起始样本与$x_1(n)$ 的第 0样本放置在同一点

  • 将两个圆上相应的样本相乘并相加即可得到输出。

  • 逆时针旋转内圈,一次只处理一个样品。

矩阵乘法

矩阵方法将给定的两个序列$x_1(n)$和$x_2(n)$以矩阵形式表示。

  • 通过一次一个样本的循环移位来重复给定序列之一,以形成 NXN 矩阵。

  • 另一个序列表示为列矩阵。

  • 两个矩阵相乘得到循环卷积的结果。