- 数字信号处理及MATLAB实现
- 刘芳 周蜜编著
- 1066字
- 2021-11-12 11:20:08
第四节 圆周卷积
如果x1(n)和x2(n)是两个有限长序列,长度分别为N1和N2,对它们分别作N点离散傅里叶变换,其中N=max[N1,N2],即
X 1(k)=DFT[x1(n)]
X 2(k)=DFT[x2(n)]
如果X(k)=X1(k)·X2(k),那么
式(3-66)表示x1(n)和x2(n)的圆周卷积。
例3-12 有两个序列x1(n)和x2(n),其中x1(n)={1,2,3|n=0,1,2},x2(n)={1,2,3,4|n=0,1,2,3},对它们作4点的圆周卷积,即x(n)=x1(n)⊗x2(n)。
解:方法一:时域求解法
由于作4点的圆周卷积,而序列x1(n)的长度小于4,因此,首先对x1(n)序列补零,使其长度为4,即x1(n)={1,2,3,0|n=0,1,2,3}。下面用式(3-66)对两个序列做循环卷积计算。
当n=0时
当n=1时
当n=2时
当n=3时
因此,x(n)=x1(n)⊗x2(n)={x(0),x(1),x(2),x(3)}={18,16,10,16|n=0,1,2,3}
方法二:矩阵求解法
根据圆周卷积的计算公式,可以画图解释它的计算过程。长度为N的序列x1(m)可以看成是一个圆上的N个等间隔点的样本,而长度为N的圆周时间反转且平移序列x2(n-m)也可以看做是均匀分布在同心圆上的N个等间隔点的样本。通过相邻样本的乘积求和运算,可以得到序列x(n)。图3-7是例3-12的计算过程示意图。
在图3-7中,内圆上按逆时针顺序排列x1(m)的四个样本,并且位置始终不变。外圆上按逆时针排列着x2(n—m)的四个样本。当n=0时,顺序依次为:x2(0—0),x2(0—1),x2(0—2),x2(0—3),根据循环移位性质,这四个样本分别与x2(0),x2(3),x2(2),x2(1)相等。当n=1,2,3时,这四个样本开始在前一次排序的基础上逆时针旋转。n每取一个值,内外圆上相邻样本的数值相乘,并把所有乘积相加,得到x(n)在当前n下的值。以此类推,可以得到x(n)的所有样本值,即x1(n)和x2(n)的圆周卷积。图3-7的计算原理可用矩阵的形式表示,其中x1(m)的样本值位置始终不变,可用向量表示为
图3-7 例3-12计算过程示意图
x 2(m)可表示成方阵
x 1(n)和x2(n)的圆周卷积可以表示成上面两个矩阵的乘积,即
因此,本题可表示成
方法三:频域求解法
首先,计算x1(n)和x2(n)的4点离散傅里叶变换,分别用X1(k)和X2(k)表示,即
X 1(k)={6,-2-2j,2,-2+2j|k=0,1,2,3}
X 2(k)={10,-2+2j,-2,-2-2j|k=0,1,2,3}
然后,利用公式X(k)=X1(k)·X2(k),求出X(k)={60,8,-4,8|k=0,1,2,3},最后对X(k)求IDFT,得到序列x1(n)和x2(n)的圆周卷积x(n)={18,16,10,16|n=0,1,2,3}。
方法四:用MATLAB编程求解
计算圆周卷积的参考函数如下:
在命令窗口输入下列命令:
运行结果为