中科大信号与系统 实验报告2
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
信号与系统实验报告
一、实验目的
1. 熟悉连续时间系统的单位冲激响应、阶跃响应的意义及求解方法
2. 熟悉连续(离散)时间系统在任意信号激励下响应的求解方法
3. 熟悉应用MATLAB实现求解系统响应的方法
二、实验原理
1.连续时间系统求解各种响应
impulse( ) 函数
函数impulse( )将绘制出由向量a和b所表示的连续系统在指定时间范围内的单位冲激响应h(t)的时域波形图,并能求出指定时间范围内冲激响应的数值解。
以默认方式绘出由向量a和b所定义的连续系统的冲激响应的时域波形。
绘出由向量a和b所定义的连续系统在0 ~ t0时间范围内冲激响应的时域波形。
绘出由向量a和b所定义的连续系统在t1 ~ t2时间范围内,并且以时间间隔p均匀取样的冲激响应的时域波形。
只求出由向量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( )函数可求出系统的零状态响应,其格式如下:
绘出由向量a和b所定义的连续系统在输入为x和t所定义的信号时,系统零状态响应的时域仿真波形,且时间范围与输入信号相同。其中x和t是表示输入信号的行向量,t为表示输入信号时间范围的向量,x则是输入信号对应于向量t所定义的时间点上的取样值。
与前面的impulse 和step函数类似,该调用格式并不绘制出系统的零状态响应曲线,而只是求出与向量t定义的时间范围相一致的系统零状态响应的数值解。
②系统有初始状态时,调用lsim( )函数可求出系统的全响应,格式如下:
绘出由系数矩阵A,B,C,D所定义的连续时间系统在输入为e和t所定义的信号时,系统输出函数的全响应的时域仿真波形。t为表示输入信号时间范围的向量,e则是输入信号e(t)对应于向量t所定义的时间点上的取样值,X0表示系统状态变量X=[x1,x2,…..xn]'在t=0时刻的初值。
不绘出全响应波形,而只是求出与向量t定义的时间范围相一致的系统输出向量Y的全响应以及状态变量X的数值解。
显然,函数lsim( )对系统响应进行仿真的效果取决于向量t的时间间隔的密集程度,t的取样时间间隔越小则响应曲线越光滑,仿真效果也越好。
说明:
(1)当系统有初始状态时,若使用lsim( )函数求系统的全响应,就要使用系统的状态空间描述法,即首先要根据系统给定的方式,写出描述系统的状态方程和输出方程。假如系统原来给定的是微分方程或系统函数,则可用相变量法或对角线变量等方法写出系统的状态方程和输出方程。其转换原理如前面实验四所述。(2)显然利用lsim( )函数不仅可以分析单输入单输出系统,还可以分析复杂的多输入多输出系统。
2.离散时间系统
impz( )函数
以默认方式绘出由向量a和b所定义的离散系统单位函数响应的时域波形。
绘出由向量a和b所定义的离散系统在0 ~ n (n必须为整数)的离散时间范围内单位函数响应的时域波形。
绘出由向量a和b所定义的离散系统在n1 ~ n2 (n1、n2必须为整数)的离散时间范围内单位函数响应的时域波形。
求出由向量a和b所定义的离散系统在n1 ~ n2 (n1、n2必须为整数)的离散时间范围内单位函数响应的数值解,但不绘出波形。
filter( ) 函数
其中a和b与前面相同,x是包含输入序列非零样值点的的行向量。此命令将求出系统在与x的取样时间点相同的输出序列样值。
三、实验内容
1. 已知描述系统的微分方程和激励信号e(t) 分别如下,试用解析方法求系统的单位冲激响应h(t)和零状态响应r(t),并用MATLAB 绘出系统单位冲激响应和系统零状态响应的波形,验证结果是否相同。
(2) ''()2'()26()'()y t y t y t f t ++=;()()f t t ε=
手算结果为:单位冲激响应为:exp(-t)*cos(5t)*u(t)-0.2*exp(-t)*sin(5t)*u(t)
零状态响应:0.2*exp(-t)*sin(5t)*u(t)
程序源码如下:
clear;
%求单位冲激响应
a=[1 2 26];
b=[1 0]; %方程对应的矩阵
subplot(211);
impulse(b,a,4); %利用求单位冲激响应
grid on; %加上网格
%求系统零状态响应
t1=0:0.01:5;
x1=heaviside(t1);
x1(1)=2*x1(1); %由于2018heaviside 中0点为0.5,所以要修改一下
subplot(212);
lsim(b,a,x1,t1); %求出系统对x1的响应
axis([0,4,-0.1,0.2]); %调整坐标轴
grid on;
(3)''()4'()3()()y t y t y t f t ++=;2()()t f t e t ε-=
手算结果为:单位冲激响应为:0.5*exp(-t)*u(t)- 0.5*exp(-3t)*u(t)
零状态响应:(0.5*exp(-t)+ 0.5*exp(-3t)- exp(-2t))*u(t)
clear;
%求单位冲激响应
a=[1 4 3];
b=1; %方程对应的矩阵
subplot(211);
impulse(b,a,4); %利用求单位冲激响应
grid on; %加上网格
%求系统零状态响应