信号与系统 实验二 连续时间LTI系统的时域分析

一、实验目的    

1. 学会用MATLAB求解连续系统的零状态响应;

2.学会用MATLAB求解冲激响应及阶跃响应;

3. 学会用MATLAB实现连续信号卷积的方法;

二、实验原理   

1.连续时间系统零状态响应的数值计算

我们知道,LTI连续系统可用如下所示的线性常系数微分方程来描述,

       \sum_{i=0}^{N}a_{i}y^{(i)}(t)=\sum_{j=0}^{M}b_{j}f^{(j)}(t)

在MATLAB中,控制系统工具箱提供了一个用于求解零初始条件微分方程数值解的函数lsim。其调用格式为:

y=lsim(sys,f,t)

式中,t表示计算系统响应的抽样点向量,f是系统输入信号向量,sys是LTI系统模型,用来表示微分方程,差分方程或状态方程。其调用格式为:

sys=tf(b,a)

式中,b和a分别是微分方程的右端和左端系数向量。例如,对于以下方程:

   a_{3}y'''(t)+a_{2}y''(t)+a_{1}y'(t)+a_{0}y(t)=b_{3}f'''(t)+b_{2}f''(t)+b_{1}f'(t)+b_{0}f(t)

可用a=[a,a,a,a];b=b,b,b,b]; sys=f(b,a)获得其LTI模型。

注意,如果微分方程的左端或右端表达式中有缺项,则其向量a或b中的对应元素应为零,不能省略不写,否则出错。

例3-1 已知某LTI系统的微分方程为    

y''(t)+2y'(t)+100y(t)=f(t)

其中,y(0)=y'(0)=0 ,f(t)=10sin(2\pi t),求系统的输出y(t)

解:显然,这是一个求系统零状态响应的问题。其MATLAB计算程序如下:

ts=0;te=5;dt=0.01;

sys=tf([1],[1,2,100]);

t=ts:dt:te;

f=10*sin(2*pi*t);

y=lsim(sys,f,0);

plot(t,y);

xlabel('Time(sec)');

ylabel('y(t)');

2.连续时间系统冲激响应和阶跃响应的求解

在MATLAB中,对于连续LTI系统的冲激响应和阶跃响应,可分别用控制系统工具箱提供的函数impluse和step来求解。其调用格式为

y=impulse(sys,t)

y=step(sys,t)

式中,t表示计算系统响应的抽样点向量,sys是LTI系统模型。

例3-2已知某LTI系统的微分方程为

y''(t)+2y'(t)+100y(t)=10f(t)

求系统的冲激响应和阶跃响应的波形.
解:

ts=0;te=5;dt=0.01;

sys=tf([10],[1,2,100]);

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)');

3.用MATLAB实现连续时间信号的卷积

信号的卷积运算有符号算法和数值算法,此处采用数值计算法,需调用MATLAB的conv()函数近似计算信号的卷积积分。连续信号的卷积积分定义是

f(t)=f_{1}(t)*f_{2}(t)=\int_{-\infty }^{\infty }f_{1}(\tau )f_{2}(t-\tau )d\tau

如果对连续信号f_{1}(t)f_{2}(t)进行等时间间隔△均匀抽样,则f_{1}(t)f_{2}(t)分别变为离散时间信号f_{1}(m\Delta )f_{2}(m\Delta )。其中,m为整数。当Δ足够小时,f_{1}(m\Delta )f_{2}(m\Delta )

 

为连续时间信号f_{1}(t)f_{2}(t)。因此连续时间信号卷积积分可表示为

f(t)=f_{1}(t)*f_{2}(t)=\int_{-\infty }^{\infty }f_{1}(\tau )f_{2}(t-\tau )d\tau

        =\lim_{\Delta \rightarrow 0}\sum_{m=-\infty }^{\infty }f_{1}(m\Delta )\cdot f_{2}(t-m\Delta )\cdot \Delta

采用数值计算时,只求当t=n\Delta时卷积积分y(t)的值f(n\Delta ),其中,n为整数,既

f(n\Delta )=\sum_{m=-\infty }^{\infty }f_{1}(m\Delta )\cdot f_{2}(n\Delta -m\Delta )\cdot \Delta

            =\Delta \sum_{m\rightarrow -\infty }^{\infty }f_{1}(m\Delta )\cdot f_{2}[(n-m)\Delta ]

其中,\sum_{m\rightarrow -\infty }^{\infty }f_{1}(m\Delta )\cdot f_{2}[(n-m)\Delta ]实际就是离散序列f_{1}(m\Delta )f_{2}(m\Delta )的卷积和。当\Delta

够小时,序列f(n\Delta )就是连续信号f(t)的数值近似,既

f(t)\approx f(n\Delta )=\Delta [f_{1}(n)*f_{2}*(n)]

上式表明,连续信号 f_{1}(t)f_{2}(t) 的卷积,可用各自抽样后的离散时间序列的卷积再乘以抽样间隔\Delta。抽样间隔\Delta越小,误差越小。

例3-3用数值计算法求f_{1}(t)=u(t)-u(t-2)f_{2}(t)=e^{-3t}u(t)的卷积积分。

解:因为f_{2}(t)=e^{-3t}u(t)是一个持续时间无限长的信号,而计算机数值计算不可能计算真正的无限长信号,所以在进行f_{2}(t)的抽样离散化时,所取的时间范围让f_{2}(t)衰减到足够小就可以了,本例取t=2.5。程序是

dt=0.01;t=-1:dt:2.5;

fl=Heaviside(t)-Heaviside(t-2);

f2=exp(-3*t).*Heaviside(t);

f=conv(f1,f2)*dt;n=length(f);tt=(0:n-1)*dt-2;

subplot(221), plot(t,f1),grid on;

axis([-1,2.5,0.2,1.2]); titde('f1(t)'); xlabel('t')

subplot(222), plot(t,f2),grid on;

axis([-1,2.5,0.2,1.2]); title('f2(t)'); xlabel('t')

subplot(212), plot(tt,f), grid on;

title('f(t)=f1(t)*f2(t)');xlabel('t')

由于f_{1}(t)f_{2}(t)的时间范围都是从t=-1开始,所以卷积结果的时间范围从t=-2开始,增量还是取样间隔,这就是语句tt=(0:n-1)*dt-2的由来。

三,上机实验

1.验证上述实验内容

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

y''(t)+4y'(t)+4y(t)=f'(t)+3f(t)            f(t)=exp(-t)u(t)

clear
ys=dsolve('D2y+4*Dy+4*y=0','y(0)=1,Dy(0)=1');%求零输入响应
anns=dsolve('D2y+4*Dy+4*y=Df+3*f','f=exp(-t)*heaviside(t)','y(-0.001)=0,Dy(-0.001)=0');% heaviside(t)表示单位阶跃信号
yt=simplify(anns.y)%求零状态响应,ans为结构体,ans.y为零状态响应
yq = simplify(ys+yt);%求全响应
a=[1 4 4];b=[0 1 3];
sys=tf(b,a);
t=0:0.01:5;%求t在0到5之间时对应的响应值
f=exp(-t).*(t>=0);
c=lsim(sys,f,t);  %零状态响应的波形
plot(t,c);
xlabel('Time(sec)'); 
ylabel('y(t)'); 
title('零状态响应')

3.已知描述系统的微分方程如下,试用MATLAB求系统在0~10秒范围内冲激响应和阶跃响应的数值解,并用绘出系统冲激响应和阶跃响应的时域波形

(1)y''(t)+3y'(t)+2y(t)=f(t)

ts=0;te=10;dt=0.5;
a=[1,3,2];
b=[0 0 1];
sys=tf(b,a);
t=ts:dt:te;
y1=impulse(sys,t)%(1)冲激响应数值
subplot(211)
plot(t,y1);
xlabel('Time(sec)');
ylabel('h(t)1');title('(1)冲激响应')
y2=step(sys,t)%(1)阶跃响应数值解
subplot(212)
plot(t,y2);
xlabel('Time(sec)');
ylabel('g(t1)');title('(1)阶跃响应')

(2)y''(t)+2y'(t)+2y(t)=f'(t)

%. 3.2已知描述系统的微分方程如下,试用MATLAB求系统在0-10秒范围内冲激响应和阶跃响应的数值解,
%并用绘出系统冲激响应和阶跃响应的时域波形
%y"(t)+2y'(t)+2y(t)=f'(t)(2)
c=[1,2,2];
d=[0 1 0];
ts=0;te=10;dt=0.5;
sys=tf(d,c);
t=ts:dt:te;
y3=impulse(sys,t)%(2)冲激响应数值
%figure(1);
subplot(211)
plot(t,y3);
xlabel('Time(sec)');
ylabel('h(t)2');title('(2)冲激响应')
y4=step(sys,t);%(2)阶跃响应数值解
%figure(2);
subplot(212)
plot(t,y4);
xlabel('Time(sec)');
ylabel('g(t)2');title('(2)阶跃响应')

  • 7
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
信号与系统实验三中,我们研究了连续LTI系统时域分析时域分析主要是通过考察系统的单位脉冲响应和单位阶跃响应来了解系统的特性。 首先,我们首先通过输入单位脉冲信号来获得系统的单位脉冲响应。单位脉冲信号是一个脉冲幅值为1,宽度为0的信号。我们将其送入LTI系统中,并记录输出响应。通过对比输入信号和输出响应的波形,我们可以观察到系统对信号的处理。单位脉冲响应表示系统对单位脉冲信号的响应情况。 接下来,我们使用系统的单位阶跃响应来进一步分析系统的特性。单位阶跃信号是一个从0开始,逐渐上升到1的信号。同样,我们将单位阶跃信号送入LTI系统中,记录输出响应。单位阶跃响应反映了系统对单位阶跃信号的响应情况。 通过分析单位脉冲响应和单位阶跃响应,我们可以得到一些有关系统特性的重要信息。例如,我们可以通过单位脉冲响应确定系统冲激响应,进而获得系统的频率响应特性。频率响应描述了系统对不同频率信号的处理能力。 此外,通过单位阶跃响应我们可以得到系统的阶跃响应,并从中得到有关系统的稳态性质的信息。稳态响应是指系统在长时间稳定工作后的响应情况。 综上所述,通过连续LTI系统时域分析,我们可以获得系统冲激响应、频率响应和稳态响应等重要信息,从而更深入地了解和研究系统的特性和行为。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值