资源描述:
《线性卷积与圆周卷积的计算》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、1.实验目的1)通过编程,上机调试程序,进一步增强使用计算机解决问题的能力。2)掌握线性卷积与圆周卷积软件实现的方法,并验证两者之间的关系。2.基本原理线性卷积;圆周卷积;两个有限长序列的线性卷积;圆周卷积与线性卷积的关系。3.实验内容及要求已知两个有限长序列X(n)=δ(n)+2δ(n-1)+3δ(n-2)+4δ(n-3)+5δ(n-4)h(n)=δ(n)+2δ(n-1)+δ(n-2)+2δ(n-3)1.编制一个计算两个线性卷积的通用程序,计算x(n)*h(n)。2.编制一个计算圆周卷积的通用程序,计算上述
2、4种情况下两个序列x(n)与h(n)的圆周卷积。3.上机调试并打印或记录实验结果。4.将实验结果与预先笔算的结果比较,验证真确性。4.相应程序及图像1)编制一个计算两个序列线性卷积的通用程序,计算x(n)*h(n).clearall;xn=[12345];hn=[1212];yln=conv(xn,hn);ny=[0:1:length(yln)-1];stem(ny,yln);xlabel('时间序号n');ylabel('信号幅度');title('线性卷积');2)编制一个计算圆周卷积的通用程序,计算上述
3、4种情况下两个序列x(n)与h(n)的圆周卷积。主程序:clearallclcN=[56910];%圆周卷积的长度向量xn=[12345];hn=[1212];y1n=conv(xn,hn)%计算线性卷积ny1=0:length(y1n)-1;%分别计算x(n)和h(n)的5点,6点,9点和10点圆周卷积yc1=circonv(xn,hn,N(1))yc2=circonv(xn,hn,N(2))yc3=circonv(xn,hn,N(3))yc4=circonv(xn,hn,N(4))%分别作出线性卷积和取不
4、同点数的圆周卷积的图像比较subplot(1,2,1)stem(ny1,y1n);xlabel('时间序号n');ylabel('信号幅度');title('线性卷积');subplot(1,2,2)stem(0:N(1)-1,yc1);xlabel('时间序号n');ylabel('信号幅度');title('5点圆周卷积');figuresubplot(1,2,1)stem(ny1,y1n);xlabel('时间序号n');ylabel('信号幅度');title('线性卷积');subplot(1,2,
5、2)stem(0:N(2)-1,yc2);xlabel('时间序号n');ylabel('信号幅度');title('6点圆周卷积');figuresubplot(1,2,1)stem(ny1,y1n);xlabel('时间序号n');ylabel('信号幅度');title('线性卷积');subplot(1,2,2)stem(0:N(3)-1,yc3);xlabel('时间序号n');ylabel('信号幅度');title('9点圆周卷积');figuresubplot(1,2,1)stem(ny1,y
6、1n);xlabel('时间序号n');ylabel('信号幅度');title('线性卷积');subplot(1,2,2)stem(0:N(4)-1,yc4);xlabel('时间序号n');ylabel('信号幅度');title('10点圆周卷积');2.圆周卷积的函数functionyc=circonv(x1,x2,N)iflength(x1)>Nerror('N必须大于等于x1的长度');endiflength(x2)>Nerror('N必须大于等于x2的长度');endx1=[x1,zeros(
7、1,N-length(x1))];x2=[x2,zeros(1,N-length(x2))];n=[0:N-1];x2=x2(mod(-n,N)+1);H=zeros(N,N);forn=1:1:NH(n,:)=cirshiftd(x2,n-1,N);endyc=x1*H';3.实现圆周移位的函数functiony=cirshiftd(x,m,N)iflength(x)>Nerror('x的长度必须小于N');endx=[x,zeros(1,N-length(x))];n=[0:1:N-1];y=x(mod(
8、n-m,N)+1);5.思考题1)线性卷积的运算步骤一般可分为哪几个部分?圆周卷积的运算步骤一般可分为哪几个部分?比较两者之间的异同。线性卷积:翻转,移位,相乘,相加;圆周卷积:翻转,移位,相乘,相加,取主值;2)采用圆周卷积运算代替线性卷积运算的原因?运算量小。