- 23
- 0
- 约4.32千字
- 约 9页
- 2017-03-27 发布于江苏
- 举报
信号与系统课程设计论文
滨江学院
基于 MATLAB的连续时间LTI系统的时域分析
课程目的
学习MATLAB语言的编程方法与熟悉MATLAB的指令;
编程实现卷积积分或卷积和,零输入响应,零状态响应;
学会用 MATLAB 对信号进行分析掌握信号处理的基本概念、基本理论和基本方法
学会 MATLAB 的使用,掌握 MATLAB 的程序设计方法
三、课程内容与步骤:
①求解系统的零输入响应;
②求解系统的零状态响应;
③求解系统的全响应;
④分析系统的卷积;
⑤画出它们的图形. 下面以具体的微分方程为例说明利用MATLAB 软件分析系统的具体方法.
1.连续时间系统的零输入响应
描述n阶线性时不变(LTI)连续系统的微分方程为:
已知y及各阶导数的初始值为y(0),y(1)(0),… y(n-1)(0), 求系统的零输入响应。
建模
当LIT系统的输入为零时,其零输入响应为微分方程的其次解(即令微分方程的等号右端为零),其形式为(设特征根均为单根)
其中p1,p2,…,pn是特征方程a1λn+a2λn-1+…+anλ+an=0的根,它们可以用root(a)语句求得。各系数 由y及其各阶导数的初始值来确定。对此有
………………………………………………………………………………………
写成矩阵形式为: P1n-1C1+ P2n-1C2+…+ Pnn-1Cn=Dn-1y0
即 V?C=Y0 其解为:C=V\Y0
式中
V为范德蒙矩阵,在matlab的特殊矩阵库中有vander。
以下面式子为例:
y(0_)=1,y(0_)=5;
MATLAB程序:
a=input(输入分母系数a=[a1,a2,...]=);
n=length(a)-1;
Y0=input(输入初始条件向量 Y0=[y0,Dy0,D2y0,...]=);
p=roots(a);V=rot90(vander(p));c=V\Y0;
dt=input(dt=);te=input(te=);
t=0:dt:te;y=zeros(1,length(t));
for k=1:n y=y+c(k)*exp(p(k)*t);end
plot(t,y);grid
xlabel(t) ;ylabel(y);
title(零输入响应);
程序运行结果:
用这个通用程序来解一个三阶系统,运行此程序并输入
a=[1,5,4] Y0=[1,5] dt=0.01 te=6
结果如下图:根据图可以分析零输入响应,它的起始值与输入函数无关,只与它的初始状态值有关,其起始值等于y(0_)的值。随着时间的推移,最后零输入响应的值无限的趋近于0。
2.卷积的计算
连续时间信号和的卷积运算可用信号的分段求和来实现,即:
如果只求当t ??n?(n为整数)时f (t)的值f (n?) ,则上式可得:
式中的 实际上就是连续时间信号和经等时间间隔 均匀抽样的离散序列和的卷积和。当?足够小时,就是卷积积分的结果——连续时间信号f (t)的较好数值近似。
建模
下面是利用MATLAB 实现连续信号卷积的通用程序conv(),该程序在计算出卷积积分的数值近似的同时,还绘制出f (t)的时域波形图。应注意,程序中是如何设定f (t)的时间长度。
MATLAB程序:
f1=input(输入函数f1=);
f2=input(输入函数f2=);
dt=input(dt=);
y=conv(f1,f2);
plot(dt*([1:length(y)]-1),y);grid on;
title(卷积);
xlabel(t); ylabel(f1*f2)
程序运行结果:
输入以下数据:
f1=sin(3*t) f2=cos(3*t+2) dt=0.01
得出图形如下:
3.连续时间系统零状态响应的数值计算
我们知道,LTI连续系统可用如下所示的线性常系数微分方程来描述,
例如,对于以下方程:
可用输入函数,得出它的冲击响应h ,再根据LTI系统的零状态响应y(t)是激励u(t)a或b中的对应元素应为零,不能省略不写,否则出错。
求函数的零状态响应
及初始状态。输入函数。
建模
先求出系统的冲击响应,写出其特征方程
求出其特征根为p和p,及相应的留数r,r;则冲击响应为
输入y(t)可用输入u(t)与冲击响应h(t)的卷积求得。
MATLAB程序:
a=input(输入分母系数a=[a1,a2,...]=);
b=input(输入输入信号系数b=[
原创力文档

文档评论(0)