试验线性时不变系统的时域分析及MATLAB实现
实验3 线性时不变系统的时域分析及MATLAB实现
一、实验目的
(1)熟悉连续LTI系统在典型激励信号下的响应及其特征。
(2)掌握连续LTI系统单位冲激响应的求解方法。
(3)重点掌握用卷积法计算连续时间系统的零状态响应。
(4)熟悉MATLAB的相关函数的调用格式和作用。
(5)会用MATLAB对系统进行时域分析。
二、实验原理
连续时间线性时不变系统(LTI)可以用如下的线性常系数微分方程来描述:
其中,,系统的初始条件为。
离散时间线性时不变系统(LTI)可以用如下的线性常系数差分方程来描述:
其中,,系统的初始条件为。
系统的响应一般包括两个部分,即由当前输入所产生的响应(零状态响应)和由历史输入(初始状态)所产生的响应(零输入响应)。对于低阶系统,一般可以通过解析的方法得到响应。但是,对于高阶系统,手工计算就比较困难,这时MATLAB强大的计算功能就能比较容易地确定系统的各种响应,如冲激响应/脉冲响应,阶跃响应,零输入响应,零状态响应,全响应等。
1. 直接求解法
涉及到的MATLAB函数有:impulse(冲激响应),step(阶跃响应),roots(零输入响应),lsim(零状态响应)等。在MATLAB中,要求以系数向量的形式输入系统的微分方程,因此,在此前必须对系统的微分方程进行变换,得到其传递函数,其分别用向量a和b表示分母多项式和分子多项式的系数(按照s的降幂排列)。
2. 卷积计算法
根据系统的单位冲激响应,利用卷积计算的方法,也可以计算任意输入状态下系统的零状态响应。设一个线性零状态系统,已知系统的单位冲激响应为行h(t),当系统的激励信号为f(t)时,系统的零状态响应为:
也可简单记为:
由于计算机采用的是数值计算,因此系统的零状态响应也可用离散学列卷积和近似为
式中分别对应以T为时间间隔对连续时间信号进行采样得到的离散序列。
三、涉及的MATLAB函数
1. Impulse函数
功能:计算并画出系统的冲激响应。
调用格式:
Impulse(sys):其中sys 可以是利用命令tf,zpk或ss建立的系统函数。
Impulse(sys,t)计算并画出系统在向量t定义的时间内的冲激响应。
Y=impulse(sys,t):保存系统的输出值。
2. Step函数
功能:计算并画出系统的阶跃响应曲线。
调用格式:
Step(sys):其中sys可以是利用命令tf,zpk,或ss建立的系统。
Step(sys,t):计算并画出系统在向量t定义的时间内的阶跃响应。
3. Lsim函数
功能:计算并画出系统在任意输入下的零状态响应。
调用格式:
Lsim(sys,x,t):其中sys可以是利用命令tf,zpk或ss建立的系统函数,x是系统的输入,t定义的是时间范围。
Lsim(sys,x,t,zi):计算出系统在任意输入和零状态下的全响应,sys必须是状态空间形式的系统函数,zi是系统的初始状态。
4. roots函数
功能:计算齐次多项式的根。
调用格式:
r=roots(b):计算多项式b的根,r为多项式的根。
5.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必须为整数,且n1
y=impz(b , a , n1 :n2): 并不绘出系统单位序列响应的时域波形,而是求出向量a , b定义的离散系统在n1—n2(n1 , n2必须为在整数,且n1
6.filter函数
功能:对输入数据数字滤波.
调用格式:
y=filter(b , a ,x) :返回向量a , b定义的离散系统在输入为x时的零状态响应.如果x是一个矩阵,那么函数filter对矩阵x的列进行操作;如果x是一个N维数组,函数filter对数组中的一个非零量进行操作.
[y , zf]=filter(b , a ,x): 返回了一个状态向量的最终值zf.
[y , zf]= filter(b , a , x , zi) :指定了滤波器的初始状态向量zi.
[y ,zf]= filter(b ,a , x ,zi , dim ) 则是给定x中要进行滤波的维数dim.如果要使用零初始状态,则将zi设为空向