用MATLAB实现信号的时域卷积.doc
- 文档编号:2604466
- 上传时间:2022-11-03
- 格式:DOC
- 页数:6
- 大小:80KB
用MATLAB实现信号的时域卷积.doc
《用MATLAB实现信号的时域卷积.doc》由会员分享,可在线阅读,更多相关《用MATLAB实现信号的时域卷积.doc(6页珍藏版)》请在冰豆网上搜索。
用MATLAB实现信号的时域卷积
摘要:
利用抽样方法绘制连续信号和离散信号。
编制函数计算连续时间信号,离散时间信号的卷积。
关键字:
MATLAB;离散卷积;连续卷积
实验原理:
卷积运算在信号与系统分析中具有非常重要的意义,是信号与系统分析的基本方法之一。
线性是不变系统的零状态响应就可以通过求解驶入激励信号与系统单位冲击响应的卷积运算获得。
在连续时间系统中,卷积运算成为卷积积分,表示为
在离散时间系统中,卷积运算称为卷积和,表示为:
实验任务及实现方法:
⑴编制计算离散时间序列卷积核的M函数,该函数课计算两离散序列和的卷积和。
程序计算出卷积和的同时,还绘制出序列、和的时域波形图,并返回的非零样值点的对应向量。
任务
(1)程序:
functiondconv(x1,x2,y1,y2)
%任意两序列卷积
x1=input('请输入x1=');
x2=input('请输入x2=');
y1=input('请输入y1=');
y2=input('请输入y2=');
subplot(131),stem(x1,y1),gridon,title('y1'),axis([(min(x1)-1),(max(x1)+1),(min(y1)-1),(max(y1)+1)])
subplot(132),stem(x2,y2),gridon,title('y2'),axis([(min(x2)-1),(max(x2)+1),(min(y2)-1),(max(y2)+1)])
%_____________________________________________
xmin1=min(x1);
xmax1=max(x1);
xmin2=min(x2);
xmax2=max(x2);
t=(xmax2+xmax1)-(xmin2+xmin1)+1;
xx=0:
(t-1);
ft=conv(y1,y2)
subplot(133),stem(xx,ft),gridon,title('*')
axis([(min(xx)+0.5),(max(xx)+0.5),(min(ft)-0.5),(max(ft)+0.5)])
⑵调用来完成下面两离散序列的卷积和运算,并绘制图形:
任务
(2)程序:
functionf=ddconv(m1,m2)
%-----------------------------
%离散序列1
t1=m1-5;
t2=m1+5;
t=t1:
t2;%横坐标
n=length(t);
tt=t1:
m1;%起始到跳变
n1=length(tt);
f1=[zeros(1,n1-1),ones(1,n-n1+1)];
%subplot(141),stem(t,f1),gridon,title('阶跃函数序列u(n-m1)'),axis([t1t2-0.21.5])
%-------------------------------
%离散序列2
p1=m1-5;
p2=m1+5;
p=p1:
p2;%横坐标
z=length(p);
pp=p1:
m2;%起始到跳变
z1=length(pp);
f2=[zeros(1,z1-1),ones(1,z-z1+1)];
%subplot(142),stem(p,f2),gridon,title('离散阶跃序列u(n-m2)'),axis([p1p2-0.21.5])
%------------------------------------
%两离散序列相减
k=min(min(t),min(p)):
max(max(t),max(p));%共同横坐标
s1=zeros(1,length(k));s2=s1;
s1(find((k>=min(t))&(k<=max(t))==1))=f1;
s2(find((k>=min(p))&(k<=max(p))==1))=f2;
f=s1-s2;
subplot(131),stem(k,f),gridon,title('x(n)=u(n)-u(n-4)')
axis([(min(min(t),min(p))-1),(max(max(t),max(p))+1),(min(f)-0.5),(max(f)+0.5)])
subplot(132),stem(k,f),gridon,title('h(n)=u(n)-u(n-4)')
axis([(min(min(t),min(p))-1),(max(max(t),max(p))+1),(min(f)-0.5),(max(f)+0.5)])
%----------------------------
xmin1=min(k);
xmax1=max(k);
xmin2=min(k);
xmax2=max(k);
t=(xmax2+xmax1)-(xmin2+xmin1)+1;
xx=0:
(t-1);
ft=conv(f,f)
subplot(133),stem(xx,ft),gridon,title('h(n)*x(n)')
axis([(min(xx)+0.5),(max(xx)+0.5),(min(ft)-0.5),(max(ft)+0.5)])
⑶编制计算连续时间信号卷积积分的M函数,该函数在计算出两信号和的卷积积分的数值近似的同时,还绘制出、和的时域波形图。
实现方法:
与第(4)任务用同一个程序。
⑷调用函数来完成下面两连续时间信号的卷积积分运算,并绘制图形:
,
任务(3、4)程序:
functionsconv()
%u(t)
m1=0;
t1=m1-10;
t2=m1+10;
t=t1:
0.01:
t2;
n=length(t);
tt=t1:
0.01:
m1;
n1=length(tt);
f1=[zeros(1,n1-1),ones(1,n-n1+1)];
%subplot(131),plot(t,f1),gridon,title('ÀëÉ¢½×Ô¾ÐòÁÐu(t)'),axis([t1t2-0.21.5])
%u(t+1/2)
tx1=t-1/2;
fx1=f1;
%subplot(241),stairs(tx1,fx1),gridon,title('u(t+1/2)'),axis([t1t2-0.21.5])
%u(t-1)
tx2=t+1;
fx2=f1;
%subplot(242),stairs(tx2,fx2),gridon,title('u(t-1)'),axis([t1t2-0.21.5])
k=min(min(tx1),min(tx2)):
0.01:
max(max(tx1),max(tx2));s1=zeros(1,length(k));s2=s1;
s1(find((k>=min(tx1))&(k<=max(tx1))==1))=fx1;
s2(find((k>=min(tx2))&(k<=max(tx2))==1))=fx2;
e=s1-s2;
subplot(131),stairs(k,e),gridon,title('e(t)=u(t+1/2)-u(t-1)')
axis([(min(min(tx1),min(tx2))+5),(max(max(tx1),max(tx2))-5),(min(e)-0.5),(max(e)+0.5)])
tx3=t;
fx3=f1;
%subplot(243),stairs(tx3,fx3),gridon,title('u(t)'),axis([t1t2-0.21.5])
tx4=t+2;
fx4=f1;
%subplot(244),stairs(tx4,fx4),gridon,title('u(t-2)'),axis([t1t2-0.21.5])
k1=min(min(tx3),min(tx4)):
0.01:
max(max(tx3),max(tx4));
s3=zeros(1,length(k1));s4=s1;
s3(find((k1>=min(tx3))&(k1<=max(tx3))==1))=fx3;
s4(find((k1>=min(tx4))&(k1<=max(tx4))==1))=fx4;
h=s3-s4;
%subplot(236),stairs(k1,h),gridon,title('u(t)-u(t-2)')
%axis([(min(min(tx3),min(tx4))+5),(max(max(tx3),max(tx4))-5),(min(h)-0.5),(max(h)+0.5)])
h(t)=1/2*t*[u(t)-u(t-2)]
kk1=length(k1);
ont=0:
0.01:
kk1;
ks=min(min(k1),min(ont)):
0.01:
max(max(k1),max(ont));
s5=zeros(1,length(ks));s6=s5;
s5(find((ks>=min(ont))&(ks<=max(ont))==1))=ont;
s6(find((ks>=min(k1))&(ks<=max(k1))==1))=h;
ffu=1/2*(s5.*s6);
subplot(132),stairs(ks,ffu),gridon,title('1/2*t*[u(t)-u(t-2)]')
axis([-5,5,(min(ffu)-0.5),(max(ffu)+0.5)])
xmin1=min(k);
xmax1=max(k);
xmin2=min(ks);
xmax2=max(ks);
ttx=(xmax2+xmax1)-(xmin2+xmin1)+0.01;
xx=0:
0.01:
(ttx-0.01);
ft=conv(e,ffu);
subplot(133),stairs(xx,ft),gridon,title('h(n)*x(n)')
axis([15,55,(min(ft)-0.5),(max(ft)+0.5)])
实验总结:
通过本次实验学会了用MATLAB实现线性系统的时域分析。
能自己完成的东西一定要自己独立完成,这样收获的东西才是自己的。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 实现 信号 时域 卷积