中科大信号与系统 实验报告2 - 图文 联系客服

发布时间 : 星期三 文章中科大信号与系统 实验报告2 - 图文更新完毕开始阅读1dd5de7d4a35eefdc8d376eeaeaad1f34693110d

中国科学技术大学 信息学院 电子科学与技术系

信号与系统实验报告

一、实验目的

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( )函数可求出系统的零状态响应,其格式如下:

- 1 -

Made by Sheldong

中国科学技术大学 信息学院 电子科学与技术系

绘出由向量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的取样时间点相同的输出序列样值。

- 2 -

Made by Sheldong

中国科学技术大学 信息学院 电子科学与技术系

三、实验内容

1. 已知描述系统的微分方程和激励信号e(t) 分别如下,试用解析方法求系统的单位冲激响应h(t)和零状态响应r(t),并用MATLAB绘出系统单位冲激响应和系统零状态响应的波形,验证结果是否相同。 (2)

y''(t)?2y'(t)?26y(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)

y''(t)?4y'(t)?3y(t)?f(t);f(t)?e?2t?(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; %加上网格 %求系统零状态响应

- 3 -

Made by Sheldong

中国科学技术大学 信息学院 电子科学与技术系

t1=0:0.01:5;

x1=exp(-2*t1).*heaviside(t1);

x1(1)=2*x1(1); %由于2018heaviside中0点为0.5,所以要修改一下 subplot(212);

lsim(b,a,x1,t1); %求出系统对x1的响应 axis([0,4,-0.1,1]); %调整坐标轴 grid on; %加上网格

(4) 如下图所示的电路中,已知R1?R2?R3?4(?),L1?L2?1(H),且两电感上

初始电流分别为i1(0)?2(A),i2(0)?0(A),如果以电阻R3上电压y(t)作为系统输出,请求出系统在激励f(t)?12?(t)(v)作用下的全响应。

解:通过列出环路方程可知:

1.环路满足:

; 2.输出满足:

3.初始条件X0= ; 故可写出程序: clear; %清除缓存区 A=[-8 4; 4 -8]; B=[1 0]'; C=[4 -4]; D=[0];

X0=[2 0]'; %题目满足的矩阵 t=0:0.01:5;

E=12*heaviside(t); %输入f(t)

E(1)=2*E(1); %由于2018heaviside中0点为0.5,所以要修改一下 [r,x]=lsim(A,B,C,D,E,t,X0); %求出输出r,状态x plot(t,r); %画出输出U(t)

- 4 -

Made by Sheldong