实验2LTI系统的时域分析一、实验目的1.掌握利用MATLAB对系统进行时域分析的方法;2.掌握连续时间系统零状态响应、冲激响应和阶跃响应的求解方法;3.掌握离散时间系统响应、单位抽样响应的求解方法;4.加深对卷积积分和卷积和的理解。掌握利用计算机进行卷积积分与卷积和的计算方法。二、实验原理与方法1.连续时间系统时域分析的MATLAB实现1)连续时间系统的MATLAB表示LTI连续系统通常可以由系统微分方程描述,设描述系统的微分方程为:𝑎𝑁𝑦(𝑁)(𝑡)+𝑎𝑁−1𝑦𝑁−1(𝑡)+⋯+𝑎0𝑦(𝑡)=𝑏𝑀𝑥(𝑀)(𝑡)+𝑏𝑀−1𝑥(𝑀−1)(𝑡)+⋯+𝑏0𝑥(𝑡)则在MATLAB中,可以建立系统模型如下:𝑏=[𝑏𝑀,𝑏𝑀−1,⋯,𝑏0];𝑎=[𝑎𝑁,𝑎𝑁−1,⋯,𝑎0];𝑠𝑦𝑠=𝑡𝑓(𝑏,𝑎);其中,tf是用于创建系统模型的函数,向量a和b是以微分方程求导的降幂次序来排列的,如果有缺项,应用0补齐。2)连续时间系统的零状态响应零状态响应指系统的初始状态为零,仅由输入信号所引起的响应。MATLAB提供了一个用于求解零状态响应的函数lism,其调用格式如下:lsim(sys,x,t)绘出输入信号及响应的波形,x和t表示输入信号数值向量及其时间向量。y=lsim(sys,x,t)这种调用格式不绘出波形,而是返回响应的数值向量。3)连续时间系统的冲激响应与阶跃响应MATLAB提供了impulse函数来求指定时间范围内由模型sys描述的连续时间系统的单位冲激响应。impulse函数的基本调用格式如下:impulse(sys)绘出在默认的时间范围内系统冲激响应的时域波形;impulse(sys,T)绘出系统在0~T范围内冲激响应的时域波形;impulse(sys,ts:tp:te)绘出系统在ts~te范围内,以tp为时间间隔取样的冲激响应波形;[y,t]=impulse(…)这种调用格式不绘出冲激响应波形,而是返回冲激响应的数值向量及其对应的时间向量。step函数用于求解单位阶跃响应,它同样也有如下几种调用格式:step(sys);step(sys,T);step(sys,ts:tp:te);[y,t]=step(…)。各种调用格式参数所代表的意义与impulse函数中类似。2.离散时间系统时域分析的MATLAB实现1)离散时间系统的MATLAB表示LTI离散系统通常可以由系统差分方程描述,设描述系统的差分方程为:𝑎0𝑦(𝑛)+𝑎1𝑦(𝑛−1)+⋯+𝑎𝑁𝑦(𝑛−𝑁)=𝑏0𝑥(𝑚)+𝑏1𝑥(𝑚−1)+⋯+𝑏𝑀𝑥(𝑚−𝑀)则在MATLAB里,我们可以用如下两个向量来表示这个系统:𝑏=[𝑏0,𝑏1,…,𝑏𝑀];𝑎=[𝑎0,𝑎1,…,𝑎𝑁];2)离散时间系统对任意输入的响应MATLAB提供了求LTI离散系统响应的专用函数filter,该函数用于求取由差分方程所描述的离散时间系统在执行时间范围内对输入序列所产生的响应,该函数基本调用格式为y=filter(b,a,x)其中,x为输入序列,y为输出序列,输出序列y对应的时间区间与x对应的时间区间相同。3)离散时间系统的单位抽样响应MATLAB提供了函数impz来求指定时间范围内,由向量b和a描述的离散时间系统的单位抽样响应,具体调用格式如下:impz(b,a)绘出系统在默认的时间范围内单位抽样响应的时域波形;impz(b,a,N)绘出系统在0~N时间范围内单位抽样响应的时域波形;impz(b,a,ns:ne)绘出系统在ns~ne范围内单位抽样响应的时域波形;[y,t]=impz(…)这种调用格式不绘出单位抽样响应波形,而是返回单位抽样响应的数值向量及其对应的时间向量。3.卷积和与卷积积分1)离散时间序列的卷积和卷积和是离散系统时域分析的基本方法之一,离散时间序列𝑥1(𝑛)和𝑥2(𝑛)的卷积和𝑥(𝑛)定义如下:𝑥(𝑛)=𝑥1(𝑛)∗𝑥2(𝑛)=∑𝑥1(𝑘)𝑥2(𝑛−𝑘)+∞𝑘=−∞对于离散LTI系统,设其输入信号为𝑥(𝑛),单位抽样响应为ℎ(𝑛),则其零状态响应𝑦(𝑛)为𝑦(𝑛)=𝑥(𝑛)∗ℎ(𝑛)即离散LTI系统的零状态响应可以表示出输入信号𝑥(𝑛)与单位抽样响应ℎ(𝑛)的卷积。因此,离散时间序列的卷积和计算对于我们进行离散系统时域分析具有重要的意义。MATLAB的conv函数可以用来求两个离散序列的卷积和,调用格式为x=conv(x1,x2)。例如:x1=ones(1,3);x2=[1234];x=conv(x1,x2)x=1369742)连续时间信号的卷积积分卷积积分是连续系统时域分析的有效方法和工具之一,连续时间信号𝑥1(𝑡)和𝑥2(𝑡)的卷积积分𝑥(𝑡)定义如下:𝑥(𝑡)=𝑥1(𝑡)∗𝑥2(𝑡)=∫𝑥1(𝜏)𝑥2(𝑡−𝜏)𝑑𝜏+∞−∞对于连续LTI系统,设其输入信号为𝑥(𝑡),单位抽样响应为ℎ(𝑡),其零状态响应为𝑦(𝑡),则有𝑦(𝑡)=𝑥(𝑡)∗ℎ(𝑡)即连续LTI系统的零状态响应可以表示为输入信号与单位冲激响应的卷积。因此,连续时间信号卷积积分对连续系统的时域分析具有非常重要的意义。利用MATLAB可以采用数值计算的方法近似计算卷积积分。卷积积分可用求和运算来实现𝑥(𝑡)=𝑥1(𝑡)∗𝑥2(𝑡)=∫𝑥1(𝜏)𝑥2(𝑡−𝜏)𝑑𝜏+∞−∞=lim∆→0∑𝑥1(𝑘∆)𝑥2(𝑡−𝑘∆)∆+∞𝑘=−∞现在考虑只求𝑡=𝑛∆时𝑥(𝑡)的值𝑥(𝑛∆),则有𝑥(𝑛∆)=∆∙∑𝑥1(𝑘∆)𝑥2[(𝑛−𝑘)∆]+∞𝑘=−∞若∆足够小,𝑥(𝑛∆)就是𝑥(𝑡)的数值近似。我们可以利用计算离散卷积序列卷积和的conv函数来计算卷积积分。三、实验内容(1)已知描述模拟低通、高通、带通和带阻滤波器的微分方程如下,试采用MATLAB绘出各系统单位冲击响应和单位阶跃响应波形:①y′′(𝑡)+√2𝑦′(𝑡)+𝑦(𝑡)=𝑥(𝑡)MATLAB代码如下:a=[12^(1/2)1];b=[1];sys=tf(b,a);subplot(121);impulse(sys);subplot(122);step(sys);②y′′(𝑡)+√2𝑦′(𝑡)+𝑦(𝑡)=𝑥′′(𝑡)MATLAB代码如下:a=[12^(1/2)1];b=[100];sys=tf(b,a);subplot(121);impulse(sys);subplot(122);step(sys);③y′′(𝑡)+𝑦′(𝑡)+𝑦(𝑡)=𝑥′(𝑡)MATLAB代码如下:a=[111];b=[10];sys=tf(b,a);subplot(121);impulse(sys);subplot(122);step(sys);④y′′(𝑡)+𝑦′(𝑡)+𝑦(𝑡)=𝑥′′(𝑡)+𝑥(𝑡)MATLAB代码如下:a=[111];b=[101];sys=tf(b,a);subplot(121);impulse(sys);subplot(122);step(sys);(2)已知某系统可用如下微分方程描述y′′(𝑡)+𝑦′(𝑡)+6𝑦(𝑡)=𝑥(𝑡)①请利用MATLAB绘出该系统冲激响应和阶跃响应的时域波形MATLAB代码如下:a=[116];b=[1];sys=tf(b,a);subplot(121);impulse(sys);subplot(122);step(sys);②根据冲激响应的时域波形分析该系统稳定性从波形可得,随着t增大,波形趋于0,即∫|ℎ(𝑡)|+∞−∞dt∞,故是系统是稳定的。③如果系统的输出为x(t)=𝑒−𝑡u(t),求系统的零状态响应MATLAB代码如下:a=[116];b=[1];sys=tf(b,a);t=0:0.01:10;x=exp(-t);lsim(sys,x,t)(3)已知描述离散系统的微分方程如下,试采用MATLAB绘出各系统的单位抽样响应,并根据单位抽样响应的时域波形分析系统稳定性①y(n)+3y(n−1)+2y(n−2)=x(n)MATLAB代码如下:a=[132];b=[1];impz(b,a,0:25)实验结果分析:由于波形发散,即∑|ℎ(𝑛)|+∞−∞→∞,故系统不稳定。②y(n)−0.5y(n−1)+0.8y(n−2)=x(n)−3𝑥(𝑛−1)MATLAB代码如下:a=[1-0.50.8];b=[1-3];impz(b,a,0:25)实验结果分析:由于波形发散,即∑|ℎ(𝑛)|+∞−∞∞,故系统稳定。(4)已知系统可以用如下差分方程描述y(n)+y(n−1)+0.25y(n−2)=x(n)试采用MATLAB绘出该系统的单位抽样响应波形和单位阶跃响应波形。MATLAB代码如下:a=[110.25];b=[1];n=0:10;subplot(121);impz(b,a,n);x=1.^n;y=filter(b,a,x);subplot(122);stem(n,y,'filled');title('StepResponse');(5)采用MATLAB计算如下两个序列的卷积,并绘出波形𝑥1(𝑛)={1,2,1,1}𝑥2(𝑛)={1,−2≤𝑛≤20,其他↑MATLAB代码如下:x1=[1211];x2=[11111];x=conv(x1,x2)n=-3:4stem(n,x,'filled')x=13455421(6)已知某LTI离散系统,其单位抽样响应h(n)=sin(0.5n),n≥0,系统的输入为x(n)=sin(0.2n),n≥0,计算当n=0,1,2,3,…,40时系统的零状态响应y(n),绘出x(n),h(n),y(n)的时域波形。MATLAB代码如下:n=0:40;x=sin(0.2*n);subplot(221);stem(n,x,'filled');xlabel('n');title('x(n)');h=sin(0.5*n);subplot(222);stem(n,h,'filled');xlabel('n');title('h(n)');y=conv(x,h);subplot(223);stem(0:80,y,'filled');title('y(n)');(7)已知两个连续时间信号如图所示,试采用MATLAB求这两个信号卷积分析:由书中图可知两个信号的表达式分别为x1(t)=2(u(t+1)−u(t−1))x2(t)=u(t+2)−u(t−2)MATLAB代码如下:function[x,t]=sconv(x1,x2,t1,t2,dt)%定义卷积计算函数x=conv(x1,x2);x=x*dt;t0=t1(1)+t2(1);l=length(x1)+length(x2)-2;t=t0:dt:(t0+l*dt);endt1=-1:dt:1;t2=-2:dt:2;x1=2.*(heaviside(t1+1)-heaviside(t1-1));x2=heaviside(t2+2)-heaviside(t2-2);[x,t]=sconv(x1,x2,t1,t2,dt);plot(t,x);title('x1(t)*x2(t)');xlabel('t');得到结果如下:四、实验心得体会