matlab作业

  • 格式:wps
  • 大小:220.35 KB
  • 文档页数:11

西安邮电大学
通信与信息工程学院
《信号与系统》实验报告

专业班级: 通工1214班
小组编号: 王潇梓
小组成员: 李拯 郭蕾阳 杜龙 张雷 李杭

2013 年 11 月 26 日

——————————————————————————


线
————————————————————————————————
- 1 -

一、实验目的
1.学会用MATLAB求解连续系统的零状态响应;
2. 学会用MATLAB求解冲激响应及阶跃响应;
3.学会用MATLAB实现连续信号卷积的方法;
二、实验原理
1.连续时间系统零状态响应的数值计算
我们知道,LTI连续系统可用如下所示的线性常系数微分方程来描述,

()()00()()NMijijijaytbft
在MATLAB中,控制系统工具箱提供了一个用于求解零初始条件微分方程数值解的函数
lsim。其调用格式
y=lsim(sys,f,t)
式中,t表示计算系统响应的抽样点向量,f是系统输入信号向量,sys是LTI系统模型,
用来表示微分方程,差分方程或状态方程。其调用格式
sys=tf(b,a)
式中,b和a分别是微分方程的右端和左端系数向量。例如,对于以下方程:
''''''''''''
32103210
()()()()()()()()aytaytaytaytbftbftbftbft

可用32103210[,,,];[,,,];aaaaabbbbb (,)systfba 获得其LTI模型。
注意,如果微分方程的左端或右端表达式中有缺项,则其向量a或b中的对应元素应为
零,不能省略不写,否则出错。
2.连续时间系统冲激响应和阶跃响应的求解
在MATLAB中,对于连续LTI系统的冲激响应和阶跃响应,可分别用控制系统工具箱提供
的函数impluse和step来求解。其调用格式为
- 2 -

y=impluse(sys,t)
y=step(sys,t)
式中,t表示计算系统响应的抽样点向量,sys是LTI系统模型。
3. 用MATLAB实现连续时间信号的卷积
信号的卷积运算有符号算法和数值算法,此处采用数值计算法,需调用MATLAB
的conv( )函数近似计算信号的卷积积分。连续信号的卷积积分定义是
dtfftftftf)()()()()(2121
如果对连续信号)(1tf和)(2tf进行等时间间隔均匀抽样,则)(1tf和)(2tf分别变为离
散时间信号)(1mf和)(2mf。其中,m为整数。当足够小时,)(1mf和
)(2mf
既为连续时间信号)(1tf和)(2tf。因此连续时间信号卷积积分可表示为

mmtfmfdtfftftftf)()()()()()()(2102121lim
采用数值计算时,只求当nt时卷积积分)(tf的值)(nf,其中,n为整数,既
mmmnfmfmnfmfnf])[()()()()(2121
其中,mmnfmf])[()(21实际就是离散序列)(1mf和)(2mf的卷积和。当

足够小时,序列)(nf就是连续信号)(tf的数值近似,既
)]()([)()(21nfnfnftf
上式表明,连续信号)(1tf和)(2tf的卷积,可用各自抽样后的离散时间序列的卷积再乘
以抽样间隔。抽样间隔越小,误差越小。
- 3 -

三、上机实验内容
1.验证程序
1.
1、y’’(t)+ 2y’(t)+100y(t)=f(t)

其中,'(0)(0)0,()10sin(2)yyftt,求系统的输出y(t).
sys=tf([1],[1,2,100]);
t=0:0.01:5;
f=10*sin(2*pi*t);
y=lsim(sys,f,t);
plot(t,y);
xlabel('Time(sec)');
ylabel('y(t)');

1.
2、 y’’(t)+ 2y’(t)+100y(t)=10f(t)

求系统的冲激响应和阶跃响应的波形.
dt=0.01;
sys=tf([10],[1,2,100]);
t=0:dt:5;
h=impulse(sys,t);
figure;
plot(t,h);
xlabel('Time(sec)');
- 4 -

ylabel('h(t)');
g=step(sys,t);
figure;
plot(t,g);
xlabel('Time(sec)');
ylabel('g(t)');

1.
3、1f(t)(t)(t2)与3t2f(t)e(t)的卷积积分

clc;
close all;
t=-1:0.01:2.5;
y1=(t>0);y2=(t>2); %阶跃信号及时移;
y=y1-y2;
t=-1:0.01:2.5;dt=0.01;
f1=y; %f1=Heaviside(t)-Heaviside(t-2)
subplot(221), plot(t,f1), grid on;title('f1(t)'); xlabel('t');
f2=exp(-3*t).*y; %f2=exp(-3*t).*Heaviside(t);
subplot(222), plot(t,f2), grid on;title('f2(t)'); xlabel('t');
f=conv(f1,f2)*dt;
- 5 -

n=length(f);
tt=(0:n-1)*dt-2;
subplot(212);plot(tt,f),grid on; title('f(t)=f1(t)*f2(t)'); xlabel('t');

2.已知描述系统的微分方程和激励信号f(t)如下,试用解析法求系统的零状态响应
y(t),并用MATLAB绘出零状态响应的仿真波形,验证结果是否相同。
y’’(t)+ 4y’(t)+4y(t)=f’(t)+3f(t) f(t)= exp(-t)ε(t)

程序如下:
ts=0;te=5;dt=0.01;
sys=tf([1,3],[1,4,4]);
t=ts:dt:te;
f=exp(-t).*heaviside(t)

y=lsim(sys,f,t);
plot(t,y);
xlabel('Time(sec)');
ylabel('y(t)');
- 6 -

3.已知描述系统的微分方程如下,试用MATLAB绘出系统冲激响应和阶跃响应的时域波
形:
1)y’’(t)+3y’(t)+2y(t)=f(t) 2)y’’(t)+ 2y’(t)+2y(t)=f’(t)

1)程序如下:
ts=0;te=10;dt=0.01;
sys=tf([1],[1,3,2]);
t=ts:dt:te;
h=impulse(sys,t);
figure;
plot(t,h);
xlabel('Time(sec)');
ylabel('h(t)');
g=step(sys,t);
figure;
plot(t,g);
xlabel('Time(sec)');
ylabel('g(t)');
- 7 -
- 8 -

2)程序如下:
ts=0;te=10;dt=0.01;
sys=tf([1,0],[1,2,2]);
t=ts:dt:te;
h=impulse(sys,t);
figure;
plot(t,h);
xlabel('Time(sec)');
ylabel('h(t)');
g=step(sys,t);
figure;
plot(t,g);
xlabel('Time(sec)');
ylabel('g(t)');
- 9 -
4.画出信号卷积积分)()(21tftf的波形,12f(t)f(t)(t)(t1)
程序如下:
dt=0.01; t=-1:dt:2.5;
f1=Heaviside(t)-Heaviside(t-1);
f2=Heaviside(t)-Heaviside(t-1);
f=conv(f1,f2)*dt;n=length(f);tt=(0:n-1)*dt-1;
subplot(221);plot(t,f1);
grid on ;
axis([-1,2.5,-0.2,1.2]);
title('f1(t)=f2(t)');
xlabel('t');
ylabel('y');
subplot(222);
plot(tt,f);
grid on;
title('f(t)=f1(t)*f2(t)');
xlabel('t');
ylabel('f(t)');
- 10 -