收藏 分销(赏)

实验4 线性卷积与圆周卷积的计算.doc

上传人:s4****5z 文档编号:8946415 上传时间:2025-03-08 格式:DOC 页数:6 大小:99.50KB 下载积分:10 金币
下载 相关 举报
实验4 线性卷积与圆周卷积的计算.doc_第1页
第1页 / 共6页
实验4 线性卷积与圆周卷积的计算.doc_第2页
第2页 / 共6页


点击查看更多>>
资源描述
题目:已知两个有限长序列 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)⑤y(n) (2)x(n)⑥y(n) (3)x(n)⑨y(n) (4)x(n)⑩y(n) ● 调用函数circonv function yc=circonv(x1,x2,N) %用直接法实现圆周卷积 %y=circonv(x1,x2,N) %y:输出序列 %x1,x2:输入序列 %N:圆周卷积的长度 if length(x1)>N error; end if length(x2)>N error; end %以上语句判断两个序列的长度是否小于N x1=[x1,zeros(1,N-length(x1))];%填充序列x1(n)使其长度为N,序列h(n)的长度为N1,序列x(n)的长度为N2 x2=[x2,zeros(1,N-length(x2))]; %填充序列x2(n)使其长度为N n=[0:1:N-1]; x2=x2(mod(-n,N)+1); %生成序列x2((-n))N,镜像,可实现对x(n)以N为周期的周期延拓,加1是因为MATLAB向量下标只能从1开始。 H=zeros(N,N);%生成N行N列的零矩阵 for n=1:1:N H(n,:)=cirshiftd(x2,n-1,N);%该矩阵的k行为x2((k-1-n))N end yc=x1*H';%计算圆周卷积 ● 调用函数cirshiftd function y=cirshiftd(x,m,N) %直接实现序列x的圆周移位 %y=cirshiftd(x,m,N) %x:输入序列,且它的长度小于N %m:移位位数 %N:圆周卷积的长度 %y:输出的移位序列 if length(x)>N error('x的长度必须小于N'); end x=[x,zeros(1,N-length(x))]; n=[0:1:N-1]; y=x(mod(n-m,N)+1); • 函数(1)x(n)⑤y(n) clear all; N1=5; N2=4; xn=[1 2 3 4 5];%生成x(n) hn=[1 2 1 2];%生成h(n) yln=conv(xn,hn);%直接用函数conv计算线性卷积 ycn=circonv(xn,hn,5);%用函数circonv计算N1点圆周卷积 ny1=[0:1:length(yln)-1]; ny2=[0:1:length(ycn)-1]; subplot(2,1,1);%画图 stem(ny1,yln); ylabel('线性卷积'); subplot(2,1,2); stem(ny2,ycn); ylabel('圆周卷积'); • 函数(2)x(n)⑥y(n) clear all; N1=5; N2=4; xn=[1 2 3 4 5];%生成x(n) hn=[1 2 1 2];%生成h(n) yln=conv(xn,hn);%直接用函数conv计算线性卷积 ycn=circonv(xn,hn,6);%用函数circonv计算N1点圆周卷积 ny1=[0:1:length(yln)-1]; ny2=[0:1:length(ycn)-1]; subplot(2,1,1); stem(ny1,yln); ylabel('线性卷积'); subplot(2,1,2); stem(ny2,ycn); ylabel('圆周卷积'); • 函数(3)x(n)⑨y(n) clear all; N1=5; N2=4; xn=[1 2 3 4 5];%生成x(n) hn=[1 2 1 2];%生成h(n) yln=conv(xn,hn);%直接用函数conv计算线性卷积 ycn=circonv(xn,hn,9);%用函数circonv计算N1点圆周卷积 ny1=[0:1:length(yln)-1]; ny2=[0:1:length(ycn)-1]; subplot(2,1,1); stem(ny1,yln); ylabel('线性卷积'); subplot(2,1,2); stem(ny2,ycn); ylabel('圆周卷积'); • 函数(4)x(n)⑩y(n) clear all; N1=5; N2=4; xn=[1 2 3 4 5];%生成x(n) hn=[1 2 1 2];%生成h(n) yln=conv(xn,hn);%直接用函数conv计算线性卷积 ycn=circonv(xn,hn,10);%用函数circonv计算N1点圆周卷积 ny1=[0:1:length(yln)-1]; ny2=[0:1:length(ycn)-1]; subplot(2,1,1); stem(ny1,yln); ylabel('线性卷积'); subplot(2,1,2); stem(ny2,ycn); ylabel('圆周卷积'); 思考题: ①圆周卷积与线性卷积的关系: 若有x1(n)与x2(n)两个分别为N1与N2的有限长序列,则它们的线性卷积y1(n)为N1+N2-1的有限长序列,而它们的N点圆周卷积y2(n)则有以下两种情况:1,当N<N1+N2-1时,y2(n)是由y1(n)的前N点和后(N1+N2-1-N)点圆周移位后的叠加而成;N> N1+N2-1时,y2(n)的前N1+N2-1的点刚好是y1(n)的全部非零序列,而剩下的N-(N1+N2-1)个点上的序列则是补充的零。 ②线性卷积运算步骤: 求x1(n)与x2(n) 的线性卷积:对x1(m)或x2(m)先进行镜像移位x1(-m),对移位后的序列再进行从左至右的依次平移x(n-m),当n=0,1,2.…N-1时,分别将x(n-m)与x2(m)相乘,并在m=0,1,2.…N-1的区间求和,便得到y(n) ③圆周卷积运算步骤: 圆周卷积过程中,求和变量为m,n为参变量,先将x2(m)周期化,形成x2((m))N,再反转形成x2((-m))N,取主值序列则得到x2((-m))NRN(m),通常称之为x2(m)的圆周反转。对x2(m)圆周反转序列圆周右移n,形成x2((n-m))NRN(m),当n=0,1,2,…,N-1时,分别将x1(m)与x2((n-m))NRN(m)相乘,并在m=0到N-1区间内求和,便得到圆周卷积y(n)。 ④用圆周移位代替线性移位的好处: 时域圆周卷积在频域上相当于两序列的DFT的相乘,而计算DFT可以采用它的快速算法——快速傅立叶变换(FFT),因此圆周卷积和线性卷积相比,计算速度可以大大加快。 实验总结: 通过本次实验,我掌握了线性卷积与圆周卷积软件实现的方法,并验证了两者之间的关系,同时,通过上机调试程序,进一步增强了我使用计算机解决问题的能力。在编程过程中照葫芦画瓢是没有用的,只有真正理解程序中的精华与奥妙,才能真正掌握,把书本上的知识转换为自己的知识。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服