《信号与系统》实验报告

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

信号与系统实验报告班级:姓名:信息与通信工程学院实验一系统的卷积响应实验性质:提高性实验级别:必做开课单位:信息与通信工程学院学时:2一、实验目的:深刻理解卷积运算,利用离散卷积实现连续卷积运算;深刻理解信号与系统的关系,学习MATLAB语言实现信号通过系统的仿真方法。二、实验设备:计算机,MATLAB软件三、实验原理:1、离散卷积和:调用函数:conv()iikfifffconvS)()(1)2,1(为离散卷积和,其中,f1(k),f2(k)为离散序列,K=…-2,-1,0,1,2,…。但是,conv函数只给出纵轴的序列值的大小,而不能给出卷积的X轴序号。为得到该值,进行以下分析:对任意输入:设)(1kf非零区间n1~n2,长度L1=n2-n1+1;)(2kf非零区间m1~m2,长度L2=m2-m1+1。则:)(*)()(21kfkfks非零区间从n1+m1开始,长度为L=L1+L2-1,所以S(K)的非零区间为:n1+m1~n1+m1+L-1。2、连续卷积和离散卷积的关系:计算机本身不能直接处理连续信号,只能由离散信号进行近似:设一系统(LTI)输入为)(tP,输出为)(th,如图所示。)(tP)(tP)(th1t)()(thtPLTI)()(lim)(lim)(00ththtPt若输入为f(t):)()()()(ktPkftftfk得输出:)()()(kthkftyk当0时:dtfktPkftftfk)()()()(lim)(lim)(00dthfkthkftytyk)()()()(lim)(lim)(00所以:)()(lim)()()(*)()(2102121ktfkfdtfftftfts如果只求离散点上的f值)(nf])[()()()()(2121kkknfkfknfkfnf所以,可以用离散卷积和CONV()求连续卷积,只需足够小以及在卷积和的基础上乘以。3、连续卷积坐标的确定:设)(1tf非零值坐标范围:t1~t2,间隔P)(2tf非零值坐标范围:tt1~tt2,间隔P)(*)()(21tftfts非零值坐标:t1+tt1~t2+tt2+1根据给定的两个连续时间信号x(t)=t[u(t)-u(t-1)]和h(t)=u(t)-u(t-1),编写程序,完成这两个信号的卷积运算,并绘制它们的波形图。范例程序如下:先编写单位阶跃函数u(t)functiony=u(t)y=(t=0);%Program1%Thisprogramcomputestheconvolutionoftwocontinuou-timesignalsclear;closeall;t0=-2;t1=4;dt=0.01;t=t0:dt:t1;x=u(t)-u(t-1);h=t.*(u(t)-u(t-1));y=dt*conv(x,h);%Computetheconvolutionofx(t)andh(t)subplot(221)plot(t,x),gridon,title('Signalx(t)'),axis([t0,t1,-0.2,1.2])subplot(222)plot(t,h),gridon,title('Signalh(t)'),axis([t0,t1,-0.2,1.2])subplot(212)t=2*t0:dt:2*t1;%Againspecifythetimerangetobesuitabletothe%convolutionofxandh.plot(t,y),gridon,title('Theconvolutionofx(t)andh(t)'),axis([2*t0,2*t1,-0.1,0.6]),xlabel('Timetsec')在有些时候,做卷积和运算的两个序列中,可能有一个序列或者两个序列都非常长,甚至是无限长,MATLAB处理这样的序列时,总是把它看作是一个有限长序列,具体长度由编程者确定。实际上,在信号与系统分析中所遇到的无限长序列,通常都是满足绝对可和或绝对可积条件的信号。因此,对信号采取这种截短处理尽管存在误差,但是通过选择合理的信号长度,这种误差是能够减小到可以接受的程度的。若这样的一个无限长序列可以用一个数学表达式表示的话,那么,它的长度可以由编程者通过指定时间变量n的范围来确定。例如,对于一个单边实指数序列x[n]=0.5nu[n],通过指定n的范围为0≤n≤100,则对应的x[n]的长度为101点,虽然指定更宽的n的范围,x[n]将与实际情况更相符合,但是,注意到,当n大于某一数时,x[n]之值已经非常接近于0了。对于序列x[n]=0.5nu[n],当n=7时,x[7]=0.0078,这已经是非常小了。所以,对于这个单边实指数序列,指定更长的n的范围是没有必要的。当然,不同的无限长序列具有不同的特殊性,在指定n的范围时,只要能够反映序列的主要特征就可以了。4、系统的响应:设微分方程:)()()(0)(0tfbtyajMjjiNii][][01210121bbbbbbaaaaaaMMMNNN均为降幂顺序。则:1)、冲激响应为:impulse(b,a)impulse(b,a,t)impulse(b,a,t1:p:t2)y=impulse()2)、阶跃响应为:step()3)、零状态响应:lism(b,a,x,t)例如,编写程序,计算并绘制由下面的微分方程表示的系统的单位冲激响应h(t),单位阶跃响应s(t)。)(8)(2)(3)(22txtydttdydttydMATLAB范例程序如下:%Program2%Thisprogramisusedtocomputetheimpulseresponseh(t)andthestepresponses(t)ofa%continuous-timeLTIsystemclear,closeall;num=input('Typeintherightcoefficientvectorofdifferentialequation:');den=input('Typeintheleftcoefficientvectorofdifferentialequation:');t=0:0.01:8;x=input('Typeintheexpressionoftheinputsignalx(t):');subplot(221),impulse(num,den,8);subplot(222),step(num,den,8)四、预习要求:掌握MATLAB的使用。五、实验内容及步骤实验前,必须首先阅读本实验原理,读懂所给出的全部范例程序。实验开始时,先在计算机上运行这些范例程序,观察所得到的信号的波形图。并结合范例程序应该完成的工作,进一步分析程序中各个语句的作用,从而真正理解这些程序。实验前,一定要针对下面的实验项目做好相应的实验准备工作,包括事先编写好相应的实验程序等事项。1、根据示例程序的编程方法,编写一个MATLAB程序,,由给定信号x(t)=e-0.5tu(t)求信号y(t)=x(1.5t+3),并绘制出x(t)和y(t)的图形。编写的程序如下:clear,%Clearallvariablescloseall,%Closeallfigurewindowsdt=0.01;%Specifythestepoftimevariablet=-5:dt:5;%Specifytheintervaloftimex=exp(-0.5*t).*u(t);%Generatethesignaly=exp(-0.75*t-1.5).*u(1.5*t+3);subplot(1,1,1),plot(t,x);%Openafigurewindowanddrawtheplotofx(t)gridon;title('Sinusoidalsignalx(t)');xlabel('Timet(sec)');axis([0,5,0,1]);subplot(1,1,3),plot(t,y);gridon;title('Sinusoidalsignaly(t)');xlabel('Timet(sec)');axis([-2,5,0,1]);信号x(t)的波形图和信号y(t)=x(1.5t+3)的波形图此处粘贴图形此处粘贴图形2、计算并用MATLAB实现下列信号的卷积编写的程序如下:clear;closeall;t0=-2;t1=4;dt=0.01;t=t0:dt:t1;x1=u(t)-u(t-2);x2=u(t-1)-u(t-3);y=dt*conv(x1,x2);subplot(131)plot(t,x1),gridon,title('Signalx1(t)'),axis([t0,t1,-0.2,1.2])subplot(132)plot(t,x2),gridon,title('Signalx2(t)'),axis([t0,t1,-0.2,1.2])subplot(133)t=2*t0:dt:2*t1;plot(t,y),gridon,title('Theconvolutionofx1(t)andx2(t)'),axis([2*t0,2*t1,-3,3]),xlabel('Timetsec');信号x1(t)、x2(t)和x1(t)*x2(t)的波形图此处粘贴图形3、给定两个离散时间序列x[n]=0.5n{u[n]-u[n-8]}h[n]=u[n]-u[n-8]编写程序、,计算它们的卷积,并分别绘制x[n]、h[n]和它们的卷积y[n]的图形。编写的程序、如下:n=-10:1:10;x=0.5.^n.*(u(n)-u(n-8));h=u(n)-u(n-8);y=conv(x,h);subplot(131)stem(n,x)gridontitle('x=0.5*n.*(u(n)-u(n-8))');subplot(132)stem(n,h)gridontitle('h=u(n)-u(n-8)');subplot(133)n=-20:1:20;stem(n,y)gridontitle('y=conv(x,h)');信号x[n]、h[n]和y[n]的波形图此处粘贴图形4、仿照范例程序Program2,编写程序,计算并绘制由如下微分方程表示的系统在输入信号为x(t)=(e-2t-e-3t)u(t)时的零状态响应和你手工计算得到的系统零状态响应曲线。)(8)(2)(3)(22txtydttdydttyd手工计算得到的系统零状态响应的数学表达式是:)(484)(32tueteetyttt编写的程序如下:t=0:0.01:8;x=8*(exp(-2*t)-exp(-3*t)).*u(t);y=lsim(1,[132],x,t);subplot(121)plot(t,y)q=4*exp(-t)-8*t.*exp(-2*t)-4*exp(-3*t);subplot(122)plot(t,q);用MATLAB绘制的手工计算的系统响应粘帖用MATLAB绘制的手工计算的系统响应执行程序得到的系统响应此处粘帖执行程序得到的系统响应思考题:MATLAB是如何表示一个由微分方程描述的连续时间LTI系统的?求解连续时间LTI系统的单位冲激响应、单位阶跃响应以及系统在某一个输入信号作用下的零状态响应的MATLAB函数有哪些?答:它的输入信号x(t)输出信号y(t)关系可以用下面的微分方程来表达MkkkkNkkkkdttxdbdttyda00)()(连续时间LTI系统的单位冲激响应、单位阶跃响应以及系统在某一个输入信号作用下的零状态响应的MATLAB函数有impulse(),step(),initial(

1 / 25
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功