信号与系统 实验报告2
- 格式:doc
- 大小:314.00 KB
- 文档页数:5
信号与系统实验报告
实验二连续时间LTI系统的时域分析
一、实验目的
1.学会用MATLAB 求解连续系统的零状态响应;
2. 学会用MATLAB 求解冲激响应及阶跃响应;
3.学会用MATLAB 实现连续信号卷积的方法;
二、实验原理
1.连续时间系统零状态响应的数值计算
我们知道,LTI连续系统可用如下所示的线性常系数微分方程来描述,
在MATLAB 中,控制系统工具箱提供了一个用于求解零初始条件微分方程数值解的函数lsim。
其调用格式y=lsim(sys,f,t) 式中,t表示计算系统响应的抽样点向量,f是系统输入信号向量,sys是LTI系统模型,用来表示微分方程,差分方程或状态方程。
其调用格式sys=tf(b,a) 式中,b 和a分别是微分方程的右端和左端系数向量。
例如,对于以下方程
可用
获得其LTI模型。
注意,如果微分方程的左端或右端表达式中有缺项,则其向量a或b 中的对应元素应为零,不能省略不写,否则出错。
2.连续时间系统冲激响应和阶跃响应的求解
在MATLAB 中,对于连续LTI系统的冲激响应和阶跃响应,可分别用控制系统工具箱提供的函数impluse和step来求解。
其调用格式为
y=impluse(sys,t)
y=step(sys,t)
式中,t表示计算系统响应的抽样点向量,sys是LTI系统模型。
3. 用MATLAB实现连续时间信号的卷积
信号的卷积运算有符号算法和数值算法,此处采用数值计算法,需调用MATLAB 的conv( )函数近似计算信号的卷积积分。
连续信号的卷积积分定义是
如果对连续信号
进行等时间间隔∆均匀抽样,则分别变为离散时间信号
其中,m为整数。
当∆足够小时,既为连续时
间信号。
因此连续时间信号卷积积分可表示为
采用数值计算时,只求当∆= nt 时卷积积分)(tf 的值)( ∆ nf ,其中,n为整数,既
其中,实际就是离散序列的卷积和。
当∆足够小时,序列就是连续信号
的数值近似,既上式表明,连续信号
的卷积,可用各自抽样后的离散时间序列的卷积再乘以抽样间隔∆。
抽样间隔∆越小,误差越小。
三、上机实验内容
1.验证实验原理
2. 已知描述系统的微分方程和激励信号f(t)如下,试用解析法求系统的零状态响应y(t),并用M AT L A B绘出系统零状态响应的时域仿真波形,验证结果是否相同y’’(t)+ 4y’(t)+4y(t)=f’(t)+3f(t) f(t)= exp(-t)u(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)');
图形:
3.已知描述系统的微分方程如下,试用M AT L A B求系统在0~10秒范围内冲激响应和阶跃响应的数值解,并用绘出系统冲激响应和阶跃响应的时域波形
y’’(t)+3y’(t)+2y(t)=f(t)
y’’(t)+ 2y’(t)+2y(t)=f’(t)
代码:
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)');
图形:
(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)');
图形:
4.画出信号卷积积分f1(t)*f2(t)的波形,f(t)=f2(t)=u(t)-u(t-1)
代码:
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)');
图形:。