信号与系统上机实验2连续LTI系统的时域分析
一、 实验目的
1、 熟悉连续LTI系统在典型信号激励下的响应及其特性
2、 熟悉连续LTI系统单位冲激响应的求解方法
3、 重点掌握卷积计算连续时间系统的零状态响应
4、 熟悉MATLAB相关函数的调用格式极其作用
5、 会用MATLAB对系统进行时域分析
二、 实验原理
连续时间线性非时变系统(LTI)可以用如下的线性常系数微分方程来描述:
any(n)(t)an1y(n1)(t)...a1y'(t)a0y(t)bmf(m)(t)bm1f(m1)(t)...b1f'(t)b0f(t)n1y(0),y'(0),y\"(0),...y(0)。 初始条件为:
其中mn,系统的
系统的响应一般分为两个部分,即由当前输入所产生的响应(零状态响应)和由历史输入(初始状态)所产生的响应(零输入响应)。
可以用MATLAB确定系统的各种响应,如冲激响应、阶跃响应、零状态响应、全响应等。涉及到的函数有:impulse(冲激响应)、step(阶跃响应)、roots(零状态响应)、lsim(零输入响应)等。
根据系统的单位冲激响应,利用卷积计算的方法,也可以计算任意输入状态下系统的零状态响应。设一个线性零状态系统,已知系统的单位冲击响应为h(t),当系统的激励信号为f(t)时,系统的零状态响应为:为:yzs(t)f(t)*h(t)
yzs(t)f()h(t)df(t)h()d,也可以简单记
由于计算机采用的是数值计算,因此系统的零状态响应也可以用离散序列卷积和近似为:
yzs(k)nf(n)h(kn)Tf(k)*h(k),式中yzs(k)、f(k)、h(k)分别对应以T为时间间隔
对连续时间信号yzs(t)、f(t)、h(t)进行采样得到的离散序列。
三、实验内容与方法
(一)验证性试验
1、 求系统y(2)(t)+6y(1)(t)+8y(t)=3x(1)(t)+9x(t)的冲击响应和阶跃响应
%求系统的冲激响应
>> b=[3 9];a=[1 6 8];
>> sys=tf(b,a);
>>t=0:0.1:10;
>>y=impulse(sys,t);
>>plot(t,y);
>>xlabel(‘时间’t’);ylabel(‘y(t)’);title(‘单位冲激响应’);
%求系统的阶跃响应
>> clear all;
>> b=[3 9];a=[1 6 8];
>> sys=tf(b,a);
>> t=0:0.1:10;
>> y=step(sys,t);
>> plot(t,y);
>>xlabel(‘t’);ylabel(‘y(t)’);title(‘单位阶跃响应’);
2、 求系统y(2)(t)+y(t)=cosU(t),y(0+)=y(1)(0+)=0的全响应
>>%求系统的正弦激励下的零状态响应
>> b=[1];a=[1 0 1];
>> sys=tf(b,a);
>> t=0:0.1:10;
>> x=cos(t);
>> y=lsim(sys,x,t);
>> plot(t,y);
>>xlabel(‘时间(t)’);ylabel(‘y(t)’);title(‘零状态响应’);
零状态响应图如下所示:
>>%求系统的全响应
>> clear all;
>> b=[1];a=[1 0 1];
>> [A B C D]=tf2ss(b,a);
>> sys=ss(A,B,C,D);
>> t=0:0.1:10;
>> x=cos(t);zi=[-1,0];
>> y=lsim(sys,x,t,zi);
>> plot(t,y);
>>xlabel(‘时间(t)’);ylabel(‘y(t)’);title(‘系统的全响应’);
系统的全响应如下:
3、 已知某LTI系统的激励为f1=sintU(t),单位冲激响应为h(t)=te-2tU(t),试给出系统零状态响应yf(t)的数学表达式。
>> T=0.1;
>>t=0:T:10;f=3.*t.*sin(t);
>>h=t.*exp(-2*t);
>>Lf=length(f);
>>Lh=length(h);
>>for k=1:Lf+Lh+1
>>y(k)=0;
>>for i=max(1,k-(Lh-1)):min(k,Lf)
>>y(k)=y(k)+f(i)*h(k-i+1);
>>end
>>yzsappr(k)=T*y(k);
>>end
>> subplot(3,1,1);
>> plot(t,f);
>> subplot(3,1,2);
>> plot(t,h);
>> subplot(3,1,3);
>> plot(t,yzsappr(1:length(t)));
f(t)的波形如下:
h(t)的波形如下:
零状态响应近似结果:
(二)设计性实验
1、 计算下述系统在指数函数激励下的零状态H(s)1.65s40.331s3576s290.6s19080s60.996s5463s497.8s312131s28.11s
程序如下:
>> clear all;
>> b=[1.65 -0.331 -576 90.6 19080];
>> a=[1 0.996 463 97.8 12131 8.11];
>> sys=tf(b,a);
>> t=0:0.01:10;
应响:
>> x=exp(-10*t);
>> y=lsim(sys,x,t);
>> plot(t,y);
>> title('零状态响应');
零状态响应:
2、 计算下述系统在冲激、阶跃、斜坡和正弦激励下的零状态响应。
y(4)(t)+0.6363y(3)(t)+0.9396y(2)(t)+0.5123y(1)(t)+0.0037y(t)=-0.475f(3)(t)-0.248f(2)(t)-0.11f(1)(t)-0.05f(t)
程序如下:
>>b=[-0.475 -0.248 -0.11 -0.05];
>>a=[1 0.6363 0.9396 0.5123 0.0037];
>>sys=tf(b,a);
>>t=0:0.001:10;
>>x1=stepfun(t,-0.001)-stepfun(t,0.001);
>>x2=stepfun(t,0);
>>x3=t.*x2;
>>x4=sin(2*pi*t);
>>y1=lsim(sys,x1,t);plot(t,y1);title(‘冲激激励零状态响应’)>> y2=lsim(sys,x2,t);plot(t,y2);(‘阶跃激励零状态响应’)
>> y3=lsim(sys,x3,t);plot(t,y3);(‘斜坡激励零状态响应’)
>> y4=lsim(sys,x4,t);plot(t,y4);(‘正弦激励零状态响应’)
冲激激励零状态响应:
阶跃激励零状态响应:
斜坡激励零状态响应:
正弦激励零状态响应: