实验四、LTI系统的响应课程名称: MATLAB应用技术专业班级:通信1422 学生学号: 1430119231 学生姓名:周妍智所属院部:电子信息工程系指导教师:徐树梅2015 —— 2016 学年第二学期实验项目名称: LTI 系统的响应 实验学时: 16 学生姓名: 周妍智 实验地点: 微机11 实验日期: 2016.4.17 实验成绩: 批改教师: 徐树梅 批改时间:一、 实验目的1. 熟悉连续时间系统的单位冲激响应、阶跃响应的意义及求解方法2. 熟悉连续(离散)时间系统在任意信号激励下响应的求解方法3. 熟悉应用MATLAB 实现求解系统响应的方法二、 实验原理1.连续时间系统对于连续的LTI 系统,当系统输入为f (t ),输出为y (t ),则输入与输出之间满足如下的线性常系数微分方程:()()0()()nmi j i j i j a yt b f t ===∑∑,当系统输入为单位冲激信号δ(t )时产生的零状态响应称为系统的单位冲激响应,用h(t)表示。
若输入为单位阶跃信号ε(t )时,系统产生的零状态响应则称为系统的单位阶跃响应,记为g(t),如下图所示。
系统的单位冲激响应h (t )包含了系统的固有特性,它是由系统本身的结构及参数所决定的,与系统的输入无关。
我们只要知道了系统的冲激响应,即可求得系统在不同激励下产生的响应。
因此,求解系统的冲激响应h(t )对我们进行连续系统的分析具有非常重要的意义。
在MATLAB 中有专门用于求解连续系统冲激响应和阶跃响应, 并绘制其时域波形的函数impulse( ) 和step( )。
如果系统输入为f (t ),冲激响应为h(t),系统的零状态响应为y (t ),则有:()()()y t h t f t =*。
若已知系统的输入信号及初始状态,我们便可以用微分方程的经典时域求解方法,求出系统的响应。
但是对于高阶系统,手工计算这一问题的过程非常困难和繁琐。
在MATLAB 中,应用lsim( )函数很容易就能对上述微分方程所描述的系统的响应进行仿真,求出系统在任意激励信号作用下的响应。
lsim( )函数不仅能够求出连续系统在指定的任意时间范围内系统响应的数值解,而且还能同时绘制出系统响应的时域波形图。
以上各函数的调用格式如下: ⑴ impulse( ) 函数函数impulse( )将绘制出由向量a 和b 所表示的连续系统在指定时间范围内的单位冲激响应h (t )的时域波形图,并能求出指定时间范围内冲激响应的数值解。
impulse(b,a)以默认方式绘出由向量a和b所定义的连续系统的冲激响应的时域波形。
impulse(b,a ,t0) 绘出由向量a和b所定义的连续系统在0 ~ t0时间范围内冲激响应的时域波形。
impulse(b,a,t1:p:t2) 绘出由向量a和b所定义的连续系统在t1 ~ t2时间范围内,并且以时间间隔p均匀取样的冲激响应的时域波形。
y=impulse(b,a,t1:p:t2) 只求出由向量a和b所定义的连续系统在t1 ~ t2时间范围内,并且以时间间隔p均匀取样的冲激响应的数值解,但不绘出其相应波形。
⑵step( ) 函数函数step( )将绘制出由向量a和b所表示的连续系统的阶跃响应,在指定的时间范围内的波形图,并且求出数值解。
和impulse( )函数一样,step( )也有如下四种调用格式:step( b,a)step(b,a,t0)step(b,a,t1:p:t2)y=step(b,a,t1:p:t2)上述调用格式的功能和impulse( )函数完全相同,所不同只是所绘制(求解)的是系统的阶跃响应g(t),而不是冲激响应h(t)。
⑶lsim( )函数根据系统有无初始状态,lsim( )函数有如下两种调用格式:①系统无初态时,调用lsim( )函数可求出系统的零状态响应,其格式如下:lsim(b,a,x,t)绘出由向量a和b所定义的连续系统在输入为x和t所定义的信号时,系统零状态响应的时域仿真波形,且时间范围与输入信号相同。
其中x和t是表示输入信号的行向量,t为表示输入信号时间范围的向量,x则是输入信号对应于向量t所定义的时间点上的取样值。
y=lsim(b,a,x,t) 与前面的impulse 和step函数类似,该调用格式并不绘制出系统的零状态响应曲线,而只是求出与向量t定义的时间范围相一致的系统零状态响应的数值解。
②系统有初始状态时,调用lsim( )函数可求出系统的全响应,格式如下:lsim(A,B,C,D,e,t,X0)绘出由系数矩阵A,B,C,D所定义的连续时间系统在输入为e 和t所定义的信号时,系统输出函数的全响应的时域仿真波形。
t为表示输入信号时间范围的向量,e则是输入信号e(t)对应于向量t所定义的时间点上的取样值,X0表示系统状态变量X=[x1,x2,…..xn]'在t=0时刻的初值。
[Y,X]= lsim(A,B,C,D,e,t,X0)不绘出全响应波形,而只是求出与向量t定义的时间范围相一致的系统输出向量Y的全响应以及状态变量X的数值解。
显然,函数lsim( )对系统响应进行仿真的效果取决于向量t的时间间隔的密集程度,t 的取样时间间隔越小则响应曲线越光滑,仿真效果也越好。
说明:(1)当系统有初始状态时,若使用lsim( )函数求系统的全响应,就要使用系统的状态空间描述法,即首先要根据系统给定的方式,写出描述系统的状态方程和输出方程。
假如系统原来给定的是微分方程或系统函数,则可用相变量法或对角线变量等方法写出系统的状态方程和输出方程。
其转换原理如前面实验四所述。
(2)显然利用lsim( )函数不仅可以分析单输入单输出系统,还可以分析复杂的多输入多输出系统。
例题1:若某连续系统的输入为e(t),输出为r(t),系统的微分方程为:++=+y t y t y t f t f t''()5'()6()3'()2()①求该系统的单位冲激响应h (t )及其单位阶跃响应g (t )。
②若2()()tf t e t ε-= 求出系统的零状态响应y(t )分析: ① 求冲激响应及阶跃响应的MATLAB 程序:a=[1 5 6];b=[3 2];subplot(2,1,1), impulse(b,a,4) subplot(2,1,2), step(b,a,4)运行结果如右:② 求零状态响应的MATLAB 程序:a=[1 5 6];b=[3 2];p1=0.01; %定义取样时间间隔为0.01 t1=0:p1:5; %定义时间范围 x1=exp(-2*t1); %定义输入信号lsim(b,a,x1,t1), %对取样间隔为0.01时系统响应进行仿真hold on; %保持图形窗口以便能在同一窗口中绘制多条曲线 p2=0.5; %定义取样间隔为0.5 t2=0:p2:5; %定义时间范围 x2=exp(-2*t2); %定义输入信号lsim(b,a,x2,t2), hold off %对取样间隔为0.5时系统响应进行仿真并解除保持运行结果如下:例题2 已知一个过阻尼二阶系统的状态方程和输出方程分别为:010'()()()232x t X t f t ⎡⎤⎡⎤=+⎢⎥⎢⎥--⎣⎦⎣⎦, r (t )=[0 1]X (t ) 。
若系统初始状态为X (0)=[4 -5]T , 求系统在4()3()tf t e t ε-=作用下的全响应。
求全响应程序如下:A=[0 1 ; -2 -3] ;B=[0 2]';C=[0 1];D=[0];X0=[4 -5]'; %定义系统初始状态 t=0: 0.01:10;E =[3*exp(-4*t).*ones(size(t))]'; %定义系统激励信号[r , x]=lsim(A,B,C,D,E,t,X0); %求出系统全响应的数值解 plot(t,r) %绘制系统全响应波形 运行结果如右。
2.离散时间系统LTI 离散系统中,其输入和输出的关系由差分方程描述:00()()n mi ji j a y k i bf k j ==+=+∑∑ (前向差分方程)()()nmi ji j a y k i bf k n j ==-=-+∑∑ (后向差分方程)当系统的输入为单位序列δ(k )时产生的零状态响应称为系统的单位函数响应,用h (k )表示。
当输入为 ε(k )时产生的零状态响应称为系统的单位阶跃应,记为:g (k ),如下图所示。
如果系统输入为e (k ),冲激响应为h (k ),系统的零状态响应为y(k ),则有:()()()y k h k f k =*。
与连续系统的单位冲激响应h (t )相类似,离散系统的单位函数响应h (k )也包含了系统的固有特性,与输入序列无关。
我们只要知道了系统的单位函数响应,即可求得系统在不同激励信号作用下产生的响应。
因此,求解系统的单位函数响应h (k )对我们进行离散系统的分析也同样具有非常重要的意义。
MATLAB 中为用户提供了专门用于求解离散系统单位函数响应, 并绘制其时域波形的函数impz( )。
同样也提供了求离散系统响应的专用函数filter( ),该函数能求出由差分方程所描述的离散系统在指定时间范围内的输入序列作用时,产生的响应序列的数值解。
当系统初值不为零时,可以使用dlsim( )函数求出离散系统的全响应,其调用方法与前面连续系统的lsim( )函数相似。
另外,求解离散系统阶跃响应可以通过如下两种方法实现:一种是直接调用专用函数dstep( ),其调用方法与求解连续系统阶跃响应的专用函数step( )的调用方法相似;另一种方法是利用求解离散系统零状态响应的专用函数filter( ),只要将其中的激励信号看成是单位阶跃信号ε(k )即可。
函数的调用格式分别如下: ⑴ impz( )函数impz(b,a) 以默认方式绘出由向量a 和b 所定义的离散系统单位函数响应的时域波形。
impz(b,a,n) 绘出由向量a 和b 所定义的离散系统在0 ~ n (n 必须为整数)的离散时间范围内单位函数响应的时域波形。
impz(b,a,n1:n2) 绘出由向量a 和b 所定义的离散系统在n1 ~ n2 (n1、n2必须为整数)的离散时间范围内单位函数响应的时域波形。
y=impz(b,a,n1:n2) 求出由向量a 和b 所定义的离散系统在n1 ~ n2 (n1、n2必须为整数)的离散时间范围内单位函数响应的数值解,但不绘出波形。
⑵ filter( ) 函数filter(b,a,x) 其中a 和b 与前面相同,x 是包含输入序列非零样值点的的行向量。