信号与系统MATLAB实验 下载本文

内容发布更新时间 : 2024/6/26 11:46:19星期一 下面是文章的全部内容请认真阅读。

6.已知f1(k)??1,1,1,2?,f2(k)??1,2,3,4,5?,求两序列的卷积和 。程序清单:

f1=[1,1,1,2,0]; f2=[1,2,3,4,5]; f=conv(f1,f2); x=0:8;

stem(x,f,'filled') 信号波形:

9

实验二 LTI系统的响应

一、实验目的

1. 熟悉连续时间系统的单位冲激响应、阶跃响应的意义及求解方法 2. 熟悉连续(离散)时间系统在任意信号激励下响应的求解方法 3. 熟悉应用MATLAB实现求解系统响应的方法

二、实验原理

1.连续时间系统

对于连续的LTI系统,当系统输入为f(t),输出为y(t),则输入与输出之n间满足如下的线性常系数微分方程:?a(i)miy(t)?i?0?bjf(j)(t),当系统输入为单

j?0位冲激信号δ(t)时产生的零状态响应称为系统的单位冲激响应,用h(t)表示。若输入为单位阶跃信号ε(t)时,系统产生的零状态响应则称为系统的单位阶跃响应,记为g(t),如下图所示。

系统的单位冲激响应h(t)包含了系统的固有特性,它是由系统本身的结构及参数所决定的,与系统的输入无关。我们只要知道了系统的冲激响应,即可求得系统在不同激励下产生的响应。因此,求解系统的冲激响应h(t)对我们进行连续系统的分析具有非常重要的意义。在MATLAB中有专门用于求解连续系统冲激响应和阶跃响应, 并绘制其时域波形的函数impulse( ) 和step( )。如果系统输入为f(t),冲激响应为h(t),系统的零状态响应为y(t),则有:

y(t)?h(t)?f(t)。

若已知系统的输入信号及初始状态,我们便可以用微分方程的经典时域求解方法,求出系统的响应。但是对于高阶系统,手工计算这一问题的过程非常困难和繁琐。在MATLAB中,应用lsim( )函数很容易就能对上述微分方程所描述的系统的响应进行仿真,求出系统在任意激励信号作用下的响应。lsim( )函数不仅能够求出连续系统在指定的任意时间范围内系统响应的数值解,而且还能同时绘制出系统响应的时域波形图。

2.离散时间系统

LTI离散系统中,其输入和输出的关系由差分方程描述:

?nmaiy(k?i)?jf(k?j)(前向差分方程)

i?0?bj?0?nmaiy(k?i)??bjf(k?n?j) (后向差分方程)

i?0j?00

1

当系统的输入为单位序列δ(k)时产生的零状态响应称为系统的单位函数响应,用h(k)表示。当输入为 ε(k)时产生的零状态响应称为系统的单位阶跃应,记为:g(k),如下图所示。

如果系统输入为e(k),冲激响应为h(k),系统的零状态响应为y(k),则有:

y(k)?h(k)?f(k)。与连续系统的单位冲激响应h(t)相类似,离散系统的单位函数响应h(k)也包含了系统的固有特性,与输入序列无关。我们只要知道了系统的单位函数响应,即可求得系统在不同激励信号作用下产生的响应。因此,求解系统的单位函数响应h(k)对我们进行离散系统的分析也同样具有非常重要的意义。

MATLAB中为用户提供了专门用于求解离散系统单位函数响应, 并绘制其时域波形的函数impz( )。同样也提供了求离散系统响应的专用函数filter( ),该函数能求出由差分方程所描述的离散系统在指定时间范围内的输入序列作用时,产生的响应序列的数值解。当系统初值不为零时,可以使用dlsim( )函数求出离散系统的全响应,其调用方法与前面连续系统的lsim( )函数相似。另外,求解离散系统阶跃响应可以通过如下两种方法实现:一种是直接调用专用函数dstep( ),其调用方法与求解连续系统阶跃响应的专用函数step( )的调用方法相似;另一种方法是利用求解离散系统零状态响应的专用函数filter( ),只要将其中的激励信号看成是单位阶跃信号ε(k)即可。

三、实验内容

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

a=[1 4 4];b=[1 3]; impulse(b,a,10) p=0.01; t=0:p:10; x=exp(-1*t); y=filter(b,a,x)

subplot(2,1,1),impulse(b,a,10) subplot(2,1,2),lsim(b,a,x,t)

1

1

②y''(t)?2y'(t)?26y(t)?f'(t);f(t)??(t) 单位冲激响应程序代码: a=[1 2 26];b=[1];

subplot(2,1,1), impulse(b,a,4) subplot(2,1,2), step(b,a,4) 运行结果截图:

零状态响应程序代码: a=[1 2 26];b=[1]; p1=0.1; t1=0:p1:10; x1=t1;

2

1