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 矩阵。
另一个序列表示为列矩阵。
两个矩阵相乘得到循环卷积的结果。