循环卷积与线性卷积的实现.doc

循环卷积与线性卷积的实现.doc

ID:55916147

大小:174.15 KB

页数:6页

时间:2020-06-14

循环卷积与线性卷积的实现.doc_第1页
循环卷积与线性卷积的实现.doc_第2页
循环卷积与线性卷积的实现.doc_第3页
循环卷积与线性卷积的实现.doc_第4页
循环卷积与线性卷积的实现.doc_第5页
资源描述:

《循环卷积与线性卷积的实现.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实验四循环卷积与线性卷积的实现一、仿真实验目的1)进一步理解并掌握循环卷积与线性卷积的概念;2)理解掌握二者的关系。二、实验分析和计算两个序列的N点循环卷积定义为从定义中可以看到,循环卷积和线性卷积的不同之处在于:两个N点序列的N点循环卷积的结果仍为N点序列,而它们的线性卷积的结果的长度为2N-1;循环卷积对序列的移位采取循环移位,而线性卷积对序列采取线性移位。正是这些不同,导致了线性卷积和循环卷积有不同的结果和性质。循环卷积和线性卷积虽然是不用的概念,但它们之间由一个有意义的公式联系在一起其中。也就是说,

2、两个序列的N点循环卷积是它们线性卷积以N为周期的周期延拓。设序列还的长度为,序列的长度为,此时,线性卷积结果的序列的点数为;因此如果循环卷积的点数N小于,那么上述周期性延拓的结果就会产生混叠,从而两种卷积会有不同的结果。而如果N满足的条件,就会有这就意味着时域不会产生混叠。因此,我们得出结论:若通过在序列的末尾填充适当的零值,使得和成为点序列,并作为这两个序列的循环卷积,那么循环卷积与线性卷积的结果在范围内相同。根据DFT循环卷积性质中卷积定理便可通过两种方法求两个序列的循环卷积:一直直接根据定义计算;二是

3、根据性质先分别求两个序列的N点DFT,并相乘,然后取IDFT以得到循环卷积。第二种方法看起来要经过若干个步骤,但由于求序列的DFT和IDFT都有快速算法,因此它的效率比第一种方法高得多。同样,根据线性卷积和循环卷积的关系,可以通过计算循环卷积以求得线性卷积,提高计算序列线性卷积的效率。[例]已知有限长序列x(n)和h(n)如图题所示,试画出:(1)x(n)和h(n)的线卷积;(2)x(n)和h(n)的9点循环卷积;(3)x(n)和h(n)的5点循环卷积。解:(1)x(n)和h(n)的线卷积m01234h(m

4、)01234111111111111111111111111111111111111111111111最后得出其线性卷积图形绘于图4-1中。(2)x(n)和h(n)的9点循环卷积;012345678012340000100001111110000111111000011111100001111110000011111000001111100000111110000011111最后得出其线性卷积图形绘于图4-2中。(3)x(n)和h(n)的5点循环卷积。0123401234111111111111111111

5、1111111最后得出其线性卷积图形绘于图4-3中。三、应用MATLAB仿真所用程序实现如下:首先得有计算循环卷积的函数。这里,根据上面提到的两种方法,编写两个实现循环卷积的函数。functiony=circonv1(x1,x2,N)iflength(x1)>Nerror('Nmustnotbelessthanlengthofx1')endiflength(x2)>Nerror('Nmustnotbelessthanlengthofx2')endx1=[x1,zeros(1,N-length(x1))];x

6、2=[x2,zeros(1,N-length(x2))];n=[0:1:N-1];x2=x2(mod(-n,N)+1);H=zeros(N,N);forn=1:1:NH(n,:)=cirshiftd(x2,n-1,N);endy=x1*H';functiony=cirshiftd(x,m,N)%输出序列含循环移位(y=Outputsequencecontainscircularshift。)%输入序列长度x<=N。%样本位移m=sampleshift.%循环范围N=sizeofcircularbuffer.

7、%模式:y(n)=x((n-m)modN).iflength(x)>Nerror('N必须大于等于x的长度!')endx=[xzeros(1,N-length(x))];n=[0:1:N-1];n=mod(n-m,N);y=x(n+1);上述函数直接利用循环函数的定义。本来最简单的方法是用两个for循环嵌套,但是这样的效率显然很低。因此,这里采用矩阵计算的方法,即先生成矩阵H,它的第k行包括序列,这样,矩阵H与序列相乘的结果就是两个序列的循环卷积。这种方案的效率有很大的提高。functiony=circon

8、v2(x1,x2,N)iflength(x1)>Nerror('Nmustnotbelessthanlengthofx1')endiflength(x2)>Nerror('Nmustnotbelessthanlengthofx2')endX1k=fft(x1,N);X2k=fft(x2,N);Yk=X1k.*X2k;y=ifft(Yk);if(all(imag(x1)==0))&&(all(imag(x2)==0

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。