APP下载

循环卷积的快速算法研究

2014-06-23沈君凤刘延松

湖北大学学报(自然科学版) 2014年4期
关键词:点数竖式信号处理

沈君凤,刘延松

(1.湖北大学计算机与信息工程学院,湖北 武汉430062;2.武汉中原电子集团有限公司,湖北 武汉430205)

0 引言

在信号分析与处理领域,卷积是一个极其重要的内容,卷积分为线性卷积与循环卷积[1].对于数字(离散)信号,目前计算卷积有几种途径:图解法、竖式法、直接卷积法等.图解法是画出有限或无限长序列,通过其变换叠加而得出结果,其特点是直观明了;竖式法是将两个序列写成竖式相乘的形式,再进行相乘与相加运算,特点是运算简便且不易出错;直接卷积法是套用公式进行卷积计算,其优点是思路清晰[2-3].

针对循环卷积计算过程复杂的问题,目前也有一些新的算法提出,譬如桂林电子科技大学的陈辉金老师提出的圆周卷积(循环卷积)的竖式法求解分析,该算法简单且不易出错[4].本文中找出一种更为便捷快速的计算方法,即先通过对位相乘法计算出两个有限长序列的线性卷积,然后通过循环卷积与线性卷积之间的关系,直接求出循环卷积,该方法简单快捷、运算量小.

1 卷积

1.1 线性卷积 线性卷积本质上是多项式系数乘法:设a序列的长度是M,b序列的长度是N,则a序列卷积b序列的长度是M+N-1.

设x1(n)是N1点的有限长序列,0≤n≤N1-1,x2(n)是N2点的有限长序列,0≤n≤N2-1,则它们的线性卷积为x1(m)的非零区间为0≤m≤N1-1,x2(n-m)的非零区间为0≤n-m≤N2-1,将两个不等式相加,得到

在上述区间外,显然有yl(n)=0,所以yl(n)是(N1+N2-1)点有限长序列,其序列长度为参与卷积的两序列的点数之和减1[5-6].

1.2 循环卷积 设x1(n)和x2(n)都是点数为N 的有限长序列(0≤n≤N-1)[6-8]

2 基于线性卷积的循环卷积求解

2.1 线性卷积与循环卷积比较 给出两个序列x1(n)={1,2,3,4,5},0≤n≤4,x2(n)={1,1,1},0≤n≤2,如图1所示.

图1 (b) 序列x2(n)

图1 (a) 序列x1(n)

采用对位相乘法计算出两个序列的线性卷积,

得到结果如图2所示.

图2 序列x1(n)和x2(n)的线性卷积结果

图3 (a) 序列x1(n)和x2(n)5点循环卷积的结果

图3 (b) 序列x1(n)和x2(n)6点循环卷积的结果

图3 (c) 序列x1(n)和x2(n)7点循环卷积的结果

图3 (d) 序列x1(n)和x2(n)8点循环卷积的结果

然后依次计算序列x1(n)和x2(n)的5点、6点、7点和8点的循环卷积,得到结果如图3所示.

2.2 线性卷积与循环卷积的关系 研究分析得知,当循环卷积的点数大于或等于两序列的长度和减1时,循环卷积的结果与线性卷积的结果相同,如上述两序列的长度分别为5点和3点,其线性卷积的结果为一个7点的序列,所以7点循环卷积与线性卷积的结果完全一样,而8点循环卷积的结果只需要在线性卷积结果后面补一个零即可;当循环卷积的点数小于两序列的长度和减1时,循环卷积的结果等于线性卷积取循环卷积点数的前几位,其余项与这几项依次叠加,如这两个序列的5点循环卷积,可先将这两个序列的线性卷积结果取前5项,然后将剩余的两项叠加到第一和第二项上,如下式所示:

这两个序列的6点循环卷积则是将它们线性卷积的结果取前6位,然后将剩余的一项叠加到第一项上,如下式所示:

该计算方法只需将两个有限长序列的线性卷积通过对位相乘法求出,然后取值叠加即可,与循环卷积的公式法、图解法、表格法等常用解法相比,运算量极小、速度快、准确率高.

3 Matlab仿真

基于以上原理进行分析,可以设计程序,利用Matlab软件进行仿真[7-11],实现基于重叠相加法的循环卷积,对提出的循环卷积新求解方法进行验证.

3.1 程序设计思路 已知两个有限长序列

1)编制一个计算两个线性卷积的通用程序,计算x(n)*h(n).

2)编制一个计算循环卷积的通用程序,计算上述8点、7点、6点、5点4种情况下两个序列x(n)与h(n)的循环卷积.

3)将仿真结果与预计的结果比较,验证正确性.

仿真结果如图4所示.

3.2 利用线性卷积计算循环卷积 通过以上仿真结果可知,两序列的线性卷积结果是一定的,而其各点的循环卷积是不同的,各点的循环卷积结果和线性卷积的结果有密切的联系.7点的循环卷积与线性卷积的结果一样,6点的循环卷积结果为一个6点序列,其结果为线性卷积结果保留前6位,最后一位叠加到第一位上所得,5点的循环卷积结果为一个5点序列,可以将线性卷积的前5位保留,最后两位叠加到第一项和第二项即可.以上结果表明,可以采用线性卷积的结果来快速计算各点的循环卷积.

图4 线性卷积与循环卷积仿真图

4 结论

利用循环卷积与线性卷积之间的关系,当有限长序列x(n)和h(n)的长度分别为N1和N2,当N=N1+N2-1时,循环卷积等于线性卷积;当N>N1+N2-1时,线性卷积结果后补上N-N1-N2+1个零,得到其循环卷积;当N<N1+N2-1时,循环卷积等于线性卷积所得结果的圆周叠合累加值.在以上分析中,我们分别在N≥N1+N2-1和N<N1+N2-1的两种不同条件下,分析两个序列的线性卷积与循环卷积各自的结果,对比在两种不同的情况下时,两个序列循环卷积与线性卷积的结果,研究归纳它们的相同点与不同点,总结出两者之间的相对变换关系,结合不同点数的循环卷积,并且经过Matlab软件的仿真实现,验证了采用线性卷积快速求解两个有限长序列的循环卷积的正确性.

[1]程佩青.数字信号处理教程[M].北京:清华大学出版社,2008.

[2]刘泉,阙大顺,郭志强.数字信号处理[M].北京:电子工业出版社,2009.

[3]周建兴,岂兴明.MATLAB从入门到精通[M].北京:人民邮电出版社,2008.

[4]陈辉金,黄喜军.圆周卷积的竖式法求解分析[J].电气电子教学学报,2012,34(3):19-20.

[5]黄顺吉.数字信号处理及其应用[M].北京:国防工业出版社,1982.

[6]邹理和.数字信号处理[M].北京:国防工业出版社,1985.

[7]陈永彬.数字信号处理[M].南京:南京工学院出版社,1987.

[8]何振亚.数字信号处理的理论与应用[M].北京:人民邮电出版社,1983.

[9]王世一.数字信号处理[M].北京:北京理工大学出版社,1997.

[10]徐金明,张孟喜,丁涛.Matlab实用教程[M].北京:清华大学出版社,2007.

[11]李正周.MATLAB数字信号处理与应用[M].北京:清华大学出版社,2008.

猜你喜欢

点数竖式信号处理
竖式趣题
竖式填数
《信号处理》征稿简则
《信号处理》第九届编委会
《信号处理》征稿简则
《信号处理》第九届编委会
看不到的总点数
错误的竖式
除法竖式的体验式学习
画点数