📜  DSP-DFT循环卷积

📅  最后修改于: 2020-11-25 05:37:21             🧑  作者: Mango


让我们采用两个有限时长序列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 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元

Comparison points Linear Convolution Circular Convolution
Shifting Linear shifting Circular shifting
Samples in the convolution result $N_1+N_2−1$ $Max(N_1,N_2)$
Finding response of a filter Possible Possible with zero padding

圆卷积方法

通常,有两种方法可以用来执行圆形卷积,它们是-

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

同心圆法

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

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

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

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

  • 一次逆时针旋转内圈一次。

矩阵相乘法

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

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

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

  • 两个矩阵相乘得出圆卷积的结果。