2信号与matlab.docx
- 文档编号:29483283
- 上传时间:2023-07-23
- 格式:DOCX
- 页数:13
- 大小:75.15KB
2信号与matlab.docx
《2信号与matlab.docx》由会员分享,可在线阅读,更多相关《2信号与matlab.docx(13页珍藏版)》请在冰豆网上搜索。
2信号与matlab
实验二 LTI系统的响应
一、 实验目的
1. 熟悉连续时间系统的单位冲激响应、阶跃响应的意义及求解方法
2. 熟悉连续(离散)时间系统在任意信号激励下响应的求解方法
3. 熟悉应用MATLAB实现求解系统响应的方法
二、 实验原理
1.连续时间系统
对于连续的LTI系统,当系统输入为f(t),输出为y(t),则输入与输出之间满足如下的线性常系数微分方程:
,当系统输入为单位冲激信号δ(t)时产生的零状态响应称为系统的单位冲激响应,用h(t)表示。
若输入为单位阶跃信号ε(t)时,系统产生的零状态响应则称为系统的单位阶跃响应,记为g(t),如下图所示。
在MATLAB中有专门用于求解连续系统冲激响应和阶跃响应,并绘制其时域波形的函数impulse()和step()。
如果系统输入为f(t),冲激响应为h(t),系统的零状态响应为y(t),则有:
。
在MATLAB中,应用lsim()函数很容易就能对上述微分方程所描述的系统的响应进行仿真,求出系统在任意激励信号作用下的响应。
lsim()函数不仅能够求出连续系统在指定的任意时间范围内系统响应的数值解,而且还能同时绘制出系统响应的时域波形图。
以上各函数的调用格式如下:
⑴impulse()函数
函数impulse()将绘制出由向量a和b所表示的连续系统在指定时间范围内的单位冲激响应h(t)的时域波形图,并能求出指定时间范围内冲激响应的数值解。
impulse(b,a) 以默认方式绘出由向量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均匀取样的冲激响应的数值解,但不绘出其相应波形。
⑵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()函数可求出系统的零状态响应,其格式如下:
lsim(b,a,x,t) 绘出由向量a和b所定义的连续系统在输入为x和t所定义的信号时,系统零状态响应的时域仿真波形,且时间范围与输入信号相同。
其中x和t是表示输入信号的行向量,t为表示输入信号时间范围的向量,x则是输入信号对应于向量t所定义的时间点上的取样值。
y=lsim(b,a,x,t) 与前面的impulse和step函数类似,该调用格式并不绘制出系统的零状态响应曲线,而只是求出与向量t定义的时间范围相一致的系统零状态响应的数值解。
②系统有初始状态时,调用lsim()函数可求出系统的全响应,格式如下:
lsim(A,B,C,D,e,t,X0) 绘出由系数矩阵A,B,C,D所定义的连续时间系统在输入为e和t所定义的信号时,系统输出函数的全响应的时域仿真波形。
t为表示输入信号时间范围的向量,e则是输入信号e(t)对应于向量t所定义的时间点上的取样值,X0表示系统状态变量X=[x1,x2,…..xn]'在t=0时刻的初值。
[Y,X]=lsim(A,B,C,D,e,t,X0) 不绘出全响应波形,而只是求出与向量t定义的时间范围相一致的系统输出向量Y的全响应以及状态变量X的数值解。
显然,函数lsim()对系统响应进行仿真的效果取决于向量t的时间间隔的密集程度,t的取样时间间隔越小则响应曲线越光滑,仿真效果也越好。
例1
若某连续系统的输入为e(t),输出为r(t),系统的微分方程为:
①求该系统的单位冲激响应h(t)及其单位阶跃响应g(t)。
②若
求出系统的零状态响应y(t)
a=[156];b=[32];
subplot(2,1,1),impulse(b,a,4)
subplot(2,1,2),step(b,a,4)
a=[156];b=[32];
p1=0.01;
t1=0:
p1:
5;
x1=exp(-2*t1);
lsim(b,a,x1,t1);
holdon;
p2=0.5;
t2=0:
p2:
5;
x2=exp(-2*t2);
lsim(b,a,x2,t2),holdoff
例2
已知一个过阻尼二阶系统的状态方程和输出方程分别为:
, r(t)=[0 1]X(t) 。
a=[01;-2-2];b=[02]';c=[01];d=[0];
x0=[4-5]';
t=0:
0.01:
10;
e=[3*exp(-4*t).*ones(size(t))]';
[r,x]=lsim(a,b,c,d,e,t,x0);
plot(t,r);
例4
a=[1,-0.25,0.5];b=[1,1,0];
impz(b,a,-3:
10),title('单位响应')
a=[1,-0.25,0.5];b=[1,1,0];
k=0:
15;
x=(1/2).^k;
y=filter(b,a,x)
subplot(2,1,1),stem(k,x);
title('输入序列')
subplot(2,1,2),stem(k,y)
title('输出序列')
y=
Columns1through9
1.00001.75000.6875-0.3281-0.23830.19820.2156-0.0218-0.1015
Columns10through16
-0.00860.05150.0187-0.0204-0.01410.00690.0088
习题
1.1
a=[144];b=[13];
p1=0.01;
t1=0:
p1:
5;
x1=[exp(-t1).*ones(size(t1))];
subplot(2,1,1),impulse(b,a,5)
subplot(2,1,2),lsim(b,a,x1,t1)
1.2
a=[1226];b=[10];
p2=0.01;
t2=0:
p2:
5;
x2=ones(size(t));
subplot(2,1,1),impulse(b,a,5)
subplot(2,1,2),lsim(b,a,x2,t2)
1.3
a=[1226];b=[10];
p3=0.01;
t3=0:
p3:
5;
x3=[exp(-2*t).*ones(size(t))];
subplot(2,1,1),impulse(b,a,5)
subplot(2,1,2),lsim(b,a,x3,t3)
1.4
a=[-84;4-8];b=[10]';c=[4-4];d=[0];
x0=[20]';
t=0:
0.01:
10;
e=[12*ones(size(t))]';
[r,x]=lsim(a,b,c,d,e,t,x0);
plot(t,r);
2.1
a=[1,2,1];b=[1,0,0];
k=0:
20;
x=[(1/4).*ones(size(k))];
y=filter(b,a,x)
subplot(3,1,1),impz(b,a,0:
20),title('单位函数响应')
subplot(3,1,2),dstep(b,a,20),title('单位阶跃响应')
subplot(3,1,3),stem(k,y),title('零状态响应')
y=
Columns1through9
0.2500-0.25000.5000-0.50000.7500-0.75001.0000-1.00001.2500
Columns10through18
-1.25001.5000-1.50001.7500-1.75002.0000-2.00002.2500-2.2500
Columns19through21
2.5000-2.50002.7500
2.2
a=[1,-0.7,0.1];b=[7,-2,0];
k=0:
20;
x=[ones(size(k))];
y=filter(b,a,x)
subplot(3,1,1),impz(b,a,0:
20),title('单位函数响应')
subplot(3,1,2),dstep(b,a,20),title('单位阶跃响应')
subplot(3,1,3),stem(k,y),title('零状态响应')
y=
Columns1through9
7.00009.900011.230011.871012.186712.343612.421812.460912.4805
Columns10through18
12.490212.495112.497612.498812.499412.499712.499812.499912.5000
Columns19through21
12.500012.500012.5000
2.3
a=[1,-5/6,1/6];b=[1,0,-1];
k=0:
20;
x=[ones(size(k))];
y=filter(b,a,x)
subplot(3,1,1),impz(b,a,0:
20),title('单位函数响应')
subplot(3,1,2),dstep(b,a,20),title('单位阶跃响应')
subplot(3,1,3),stem(k,y),title('零状态响应')
y=
Columns1through9
1.00001.83331.36110.82870.46370.24830.12970.06670.0339
Columns10through18
0.01720.00870.00430.00220.00110.00050.00030.00010.0001
Columns19through21
0.00000.00000.0000
a=[1,0,0.81];b=[1,0,-1];
n=10;
k=0:
20;
x=[10+10.*cos((k.*n)/2)+10*cos(k*n)].*ones(size(k));
y=filter(b,a,x)
stem(k,y),title('零状态响应')
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 信号 matlab
![提示](https://static.bdocx.com/images/bang_tan.gif)