《MATLAB信号处理超级学习手册》——2.4 连续时间系统的时域分析

简介:

本节书摘来自异步社区《MATLAB信号处理超级学习手册》一书中的第2章,第2.4节,作者:MATLAB技术联盟 , 史洁玉著,更多章节内容可以访问云栖社区“异步社区”公众号查看

2.4 连续时间系统的时域分析

MATLAB信号处理超级学习手册
2.4.1 连续时间系统求解
连续时间线性非时变系统(LTI)可以用如下的线性常系数微分方程来描述:
screenshot

系统的响应一般包括两个部分,即由当前输入所产生的响应(零状态响应)和由历史输入(初始状态)所产生的响应(零输入响应)。

对于低阶系统,一般可以通过解析的方法得到响应。但是,对于高阶系统,手工计算就比较困难,这时MATLAB强大的计算功能就比较容易确定系统的各种响应,如冲激响应、阶跃、零状态响应、全响应等。

涉及到的MATLAB函数有:impulse(冲激响应)、step(阶跃)、roots(零输入响应)、lsim(零状态响应)等。在MATLAB中,要求以系统向量的形式输入系统的微分方程,因此,在使用前必须对系统的微分方程进行变换,得到其传递函数。其分别用向量a和b表示分母多项式和分子多项式的系数(按照s的降幂排列)。

根据系统的单位冲激响应,利用卷积计算的方法,也可以计算任意输入状态下系统的零状态响应。设一个线性零状态系统,已知系统的单位冲激响应为h(t),当系统的激励信号为f(t)时,系统的零状态响应为:
screenshot

式中y zs(k)、f(k)、h(k)分别对应以T为时间间隔对连续时间信号y zs(t)、f(t)和h(t)进行采样得到的离散序列。

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

y=lsim(sys,f,t)

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

sys=tf(b,a)

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

screenshot

可用a = [a_3 ,a_2 ,a_1 ,a_0 ];b = [b_3 ,b_2 ,b_1 ,b_0 ]; sys = tf(b,a) 获得其LTI模型。注意,如果微分方程的左端或右端表达式中有缺项,则其向量a或b中的对应元素应为零,不能省略不写,否则出错。

【例2-23】有一物理学系统,用微分方程描述为 y^{''} (t) + 2y^' (t) + 100y(t) = 10sin 2pi t ,求系统的零状态响应。运行程序如下:

clear
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,t);
plot(t,y);
xlabel('t(s)');ylabel('y(t)');
title('零状态响应')
grid on;

运行结果如图2-23所示。

screenshot

在MATLAB中,求解系统冲激响应可应用控制系统工具箱个提供的函数impulse,求解阶跃响应可利用函数step,其调用形式为:

y=impulse(sys,t)

y=step(sys,t)

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

【例2-24】计算下述系统在冲激、阶跃、斜坡、正弦激励下的零状态响应:

screenshot

运行程序如下:

b=[-0.475 -0.248 -0.1189 -0.0564];a=[1 0.6363 0.9396 0.5123 0.0037];
sys=tf(b,a);
T=1000;
t=0:1/T:10;t1=-5:1/T:5;
f1=stepfun(t1,-1/T)-stepfun(t1,1/T);
f2=stepfun(t1,0);
f3=t;
f4=sin(t);
y1=lsim(sys,f1,t);
y2=lsim(sys,f2,t);
y3=lsim(sys,f3,t);
y4=lsim(sys,f4,t);
subplot(221);
plot(t,y1);
xlabel('t');ylabel('y1(t)');
title('冲激激励下的零状态响应');
grid on;axis([0 10 -1.2 1.2]);
subplot(222);
plot(t,y2);
xlabel('t');ylabel('y2(t)');
title('阶跃激励下的零状态响应');
grid on;axis([0 10 -1.2 1.2]);
subplot(223);
plot(t,y3);
xlabel('t');ylabel('y3(t)');
title('斜坡激励下的零状态响应');
grid on;axis([0 10 -5 0.5]);
subplot(224);
plot(t,y4);
xlabel('t');ylabel('y4(t)');
title('正弦激励下的零状态响应');
grid on;axis([0 10 -1.5 1.2]);

运行程序如图2-24所示。

screenshot

2.4.3 连续时间系统符号求解
连续时间系统可以使用常系数微分方程来描述,其完全响应由零输入响应和零状态响应组成。MATLAB符号工具箱提供了dsolve函数,可以实现对常系数微分方程的符号求解,其调用格式为:

dsolve('eq1,eq2…','cond1,cond2,…','v')

其中,参数eq表示各个微分方程,它与MATLAB符号表达式的输入基本相同,微分和导数的输入是使用Dy,D2y,D3y来表示y的一价导数,二阶导数,三阶导数;参数cond表示初始条件或者起始条件;参数v表示自变量,默认是变量t。

通过使用dsolve函数可以求出系统微分方程的零输入响应和零状态响应,进而求出完全响应。

【例2-25】已知某线性时不变系统的动态方程为:y''(t) + 4y'(t) + 4y(t) = 2f'(t) + 3f(t), t>0系统的初始状态为y(0) = 0,y'(0) = 1, 求系统的零输入响应y x(t)。

运行程序如下:

eq=’D2y+4*Dy+4*y=0’;
cond=’y(0)=0,Dy(0)=1’;
yx=dsolve(eq,cond);
yx=simplify(yx);
ezplot(yx,[0,10]);
xlabel('t');ylabel('yx(t)');
title('系统的零输入响应');
grid on;

运行结果如图2-25所示。

screenshot

2.4.4 连续时间系统卷积求解
信号的卷积运算有符号算法和数值算法,此处采用数值计算法,需调用MATLAB的conv函数近似计算信号的卷积积分。连续信号的卷积积分定义是:

screenshot

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

【例2-26】用数值计算法求f_1 (t) = u(t) - u(t - 2) 与f_2 (t) = e^{ - 3t} u(t) 的卷积积分。

运行程序如下:

dt=0.01; t=-1:dt:2.5;
f1=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]); 
title('f1(t)');
xlabel('t'); ylabel('f1(t)');
subplot(222);
plot(t,f2);
grid on;
axis([-1,2.5,-0.2,1.2]); 
title('f2(t)');
xlabel('t'); ylabel('f2(t)');
subplot(212);
plot(tt,f);
grid on;
title('f(t)=f1(t)*f2(t)'); 
xlabel('t'); ylabel('f3(t)');

运行结果如图2-26所示。
screenshot

相关文章
|
25天前
OFDM深入学习及MATLAB仿真(二)
OFDM深入学习及MATLAB仿真
22 1
|
1月前
|
机器学习/深度学习 数据采集 人工智能
m基于深度学习网络的手势识别系统matlab仿真,包含GUI界面
m基于深度学习网络的手势识别系统matlab仿真,包含GUI界面
41 0
|
1月前
|
索引
matlab日常学习-------矩阵
matlab日常学习-------矩阵
23 0
|
1月前
|
机器学习/深度学习 并行计算 算法
m基于深度学习网络的瓜果种类识别系统matlab仿真,带GUI界面
m基于深度学习网络的瓜果种类识别系统matlab仿真,带GUI界面
32 0
|
1天前
|
机器学习/深度学习 算法 计算机视觉
m基于Yolov2深度学习网络的人体喝水行为视频检测系统matlab仿真,带GUI界面
MATLAB 2022a中使用YOLOv2算法对avi视频进行人体喝水行为检测,结果显示成功检测到目标。该算法基于全卷积网络,通过特征提取、锚框和损失函数优化实现。程序首先打乱并分割数据集,利用预训练的ResNet-50和YOLOv2网络结构进行训练,最后保存模型。
11 5
|
10天前
|
数据可视化
matlab用高斯曲线拟合模型分析疫情数据
matlab用高斯曲线拟合模型分析疫情数据
13 0
|
10天前
|
Shell
MATLAB 求解特征方程的根轨迹图稳定性分析
MATLAB 求解特征方程的根轨迹图稳定性分析
12 0
|
19天前
|
存储 人工智能 机器人
【Matlab】Matlab 汉/英语(A/a)声学特征比较与基音频率分析(源码+音频文件)【独一无二】
【Matlab】Matlab 汉/英语(A/a)声学特征比较与基音频率分析(源码+音频文件)【独一无二】
|
1月前
|
机器学习/深度学习 算法
m基于深度学习的64QAM调制解调系统相位检测和补偿算法matlab仿真
MATLAB 2022a仿真实现了基于深度学习的64QAM相位检测和补偿算法,有效应对通信中相位失真问题。通过DNN进行相位检测和补偿,降低解调错误。核心程序生成随机信号,模拟AWGN信道,比较了有无相位补偿的误码率,结果显示补偿能显著提升性能。
27 8
|
1月前
|
机器学习/深度学习 算法
m基于深度学习的32QAM调制解调系统相位检测和补偿算法matlab仿真
m基于深度学习的32QAM调制解调系统相位检测和补偿算法matlab仿真
27 1

热门文章

最新文章