一.实验目的
1.学会用MATLAB求解连续时间系统零状态响应的求解 2.学会用MATLAB求解冲激响应及阶跃响应; 3.学会用MATLAB实现连续信号卷积的方法; 二、实验原理
对于连续的LTI系统,当系统输入为f(t),输出为y(t),则输入与输出之间满足如下的线性常系数微分方程:?aiy(i)(t)??bjf(j)(t),当系统输入为单位冲激信号δ(t)时产生的零状态响应
i?0j?0nm称为系统的单位冲激响应,用h(t)表示。若输入为单位阶跃信号ε(t)时,系统产生的零状态响应则称为系统的单位阶跃响应,记为g(t),如下图所示。
系统的单位冲激响应h(t)包含了系统的固有特性,它是由系统本身的结构及参数所决定的,与系统的输入无关。我们只要知道了系统的冲激响应,即可求得系统在不同激励下产生的响应。因此,求解系统的冲激响应h(t)对我们进行连续系统的分析具有非常重要的意义。 1、连续时间系统零状态响应的求解
在MATLAB中有专门用于求解连续系统零状态响应,y=lsim()函数: 调用lsim()函数可求出系统的零状态响应,其格式如下:
lsim(b,a,x,t) 绘出由向量a和b所定义的连续系统在输入为x和t所定义的信号时,系统零状态响应的时域仿真波形,且时间范围与输入信号相同。其中x是表示输入信号的行向量,t为表示输入信号时间范围的向量,x则是输入信号对应于向量t所定义的时间点上的取样值。 y=lsim(b,a,x,t)与前面的impulse和step函数类似,该调用格式并不绘制出系统的零状态响应曲线,而只是求出与向量t定义的时间范围相一致的系统零状态响应的数值解。 如:y''(t)?5y'(t)?6y(t)?3f'(t)?2f(t)
则,a=[1 5 6];b=[3 2];
2.冲激响应及阶跃响应的求解
在MATLAB中有专门用于求解连续系统冲激响应和阶跃响应,并绘制其时域波形的函数impulse()和step()。 (1)impulse()函数
函数impulse()将绘制出由向量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均匀取样的冲激响应的数值解,但不绘出其相应波形。 (2)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)。
3.用MATLAB实现连续时间信号的卷积
信号的卷积运算有符号算法和数值算法,此处采用数值计算法,需调用MATLAB的conv()函数近似计算信号的卷积积分。连续信号的卷积积分定义是
f(t)?f1(t)?f2(t)??f1(?)f2(t??)d?
???如果对连续信号f1(t)和f2(t)进行等时间间隔?均匀抽样,则f1(t)和f2(t)分别变为离散时间信号f1(m?)和f2(m?)。其中,m为整数。当?足够小时,f1(m?)和f2(m?)既为连续时间信号f1(t)和f2(t)。因此连续时间信号卷积积分可表示为
f(t)?f1(t)?f2(t)??f1(?)f2(t??)d?????lim??0m????f(m?)?f1?2(t?m?)??
采用数值计算时,只求当t?n?时卷积积分f(t)的值f(n?),其中,n为整数,既
f(n?)?m?????f(m?)?f1m????2(n??m?)??
???f1(m?)?f2[(n?m)?]其中,
m????f(m?)?f1?2[(n?m)?]实际就是离散序列f1(m?)和f2(m?)的卷积和。当?足
够小时,序列f(n?)就是连续信号f(t)的数值近似,既
f(t)?f(n?)??[f1(n)?f2(n)]
上式表明,连续信号f1(t)和f2(t)的卷积,可用各自抽样后的离散时间序列的卷积再乘以抽样间隔?。抽样间隔?越小,误差越小。 三、实验内容
1.验证实验原理中所述的相关程序
2-1 已知某LTI系统的微分方程为 y’’(t)+ 2y’(t)+100y(t)=f(t)
其中,y(0)?y(0)?0,f(t)?10sin(2?t),求系统的输出y(t).
'
2-2已知某LTI系统的微分方程为 y’’(t)+ 2y’(t)+100y(t)=10f(t)
求系统的冲激响应和阶跃响应的波形。
2. 已知描述系统的微分方程和激励信号f(t)如下,试用解析法求系统的零状态响应y(t),并
用MATLAB绘出系统零状态响应的时域仿真波形,验证结果是否相同
y''(t)?4y'(t)?4y(t)?f'(t)?3f(t); f(t)?exp(?t)u(t)
3.已知两连续时间信号如下图所示,试用MATLAB求f(t)?f1(t)*f2(t),并绘出f(t)的时域波形图。(取样时间间隔分别为0.1和0.01,并对比结果)