实验五--线性卷积与循环卷积的计算.doc

实验五--线性卷积与循环卷积的计算.doc

ID:55222174

大小:266.00 KB

页数:9页

时间:2020-05-06

实验五--线性卷积与循环卷积的计算.doc_第1页
实验五--线性卷积与循环卷积的计算.doc_第2页
实验五--线性卷积与循环卷积的计算.doc_第3页
实验五--线性卷积与循环卷积的计算.doc_第4页
实验五--线性卷积与循环卷积的计算.doc_第5页
资源描述:

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

1、实验五线性卷积与循环卷积的计算一、实验目的1、进一步加深对线性卷积的理解和分析能力;2、通过编程,上机调试程序,进一步增强使用计算机解决问题的能力;3、掌握线性卷积与循环卷积软件实现的方法,并验证二者之间的关系。二、实验原理1、线性卷积线性时不变系统(LinearTime-InvariantSystem,orL.T.I系统)输入、输出间的关系为:当系统输入序列为,系统的单位脉冲响应为,输出序列为,则系统输出为:或上式称为离散卷积或线性卷积。图6.1示出线性时不变系统的输入、输出关系。L.T.Ih(n) →

2、L.T.I—→—→—→ 图6.1线性时不变系统的输入、输出关系2、循环卷积DFT设两个有限长序列和,均为点长DFT如果则N上式称为循环卷积或圆周卷积注:为序列的周期化序列;为的主值序列。上机编程计算时,可表示如下:3、两个有限长序列的线性卷积序列为点长,序列为点长,为这两个序列的线性卷积,则为且线性卷积的最大长,也就是说当和时。4、循环卷积与线性卷积的关系序列为点长,序列为点长,若序列和进行N点的循环卷积,其结果是否等于该两序列的线性卷积,完全取决于循环卷积的长度:当时循环(圆周)卷积等于线性卷积,即N当

3、时,循环卷积等于两个序列的线性卷积加上相当于下式的时间混叠,即三、实验方法对于无限长序列不能用MATLAB直接计算线性卷积,在MATLAB内部只提供了一个conv函数计算两个有限长序列的线性卷积。对于循环卷积MATLAB内部没有提供现成的函数,我们可以按照定义式直接编程计算。例6.1:已知两序列:求它们的线性卷积yl(n)=h(n)*x(n)和N点的循环卷积yc=[h(n)*x(n)]n,并研究两者之间的关系.MATLAB实现程序:(1)循环卷积的函数functionyc=circonv(x1,x2,N)

4、%realizecircularconvolutionusedirectmethod%y=circonv(x1,x2,N)%y:outputsequences%x1,x2:inputsequences%N:circulationlengthiflength(x1)>Nerror(‘Nmustnotbelessthanlengthofx1’);endiflength(x2)>Nerror(‘Nmustnotbelessthanlengthofx2’);end%以上语句判断两个序列的长度是否小于Nx1=[x1

5、,zeros(1,N-length(x1))];%填充序列x1(n)使其长度为N1+N2-1(序列%h(n)的长度为N1,序列x(n)的长度为N2)x2=[x2,zeros(1,N-length(x2))];%填充序列x2(n)使其长度为N1+N2-1n=[0:1:N-1];x2=x2(mod(-n,N)+1);%生成序列x2((-n))NH=zeros(N,N);forn=1:1:NH(n,:)=cirshiftd(x2,n-1,N);%该矩阵的k行为x2((k-1-n))Nendyc=x1*H’;%计

6、算循环卷functiony=cirshiftd(x,m,N)%directlyrealizecircularshiftforsequencex%y=cirshiftd(x,m,N);%x:inputsequencewhoselengthislessthanN%m:howmuchtoshift%N:circularlength%y:outputshiftedsequenceiflength(x)>Nerror('lengthofxmustbelessthanN');endx=[x,zeros(1,N-len

7、gth(x))];n=[0:1:N-1];y=x(mod(n-m,N)+1); (1)研究两者之间的关系clearall;n=[0:1:11];m=[0:1:5];N1=length(n);N2=length(m);xn=0.8.^n;%生成x(n)hn=ones(1,N2);%生成h(n)yln=conv(xn,hn);%直接用函数conv计算线性卷积ycn=circonv(xn,hn,N1);%用函数circonv计算N1点循环卷积ny1=[0:1:length(yln)-1];ny2=[0:1:le

8、ngth(ycn)-1];subplot(2,1,1);%画图stem(ny1,yln);subplot(2,1,2);stem(ny2,ycn);axis([0,16,0,4]);  运行结果四、实验语句及结果functionyc=circonv(x1,x2,N)iflength(x1)>Nerror('N必须大于等于x1的长度');endiflength(x2)>Nerror('N必须大于等于x2的长度');endx1=[

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

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

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