用户登录  |  用户注册
首 页毕业论文毕业设计下载定做交易过程截图支付宝在线支付

软件名称:[B]离散LTI系统数值解法实用程序设计[/B]
软件类型:注塑模毕业设计
运行环境:Win9X/Win2000/WinXP/Win2003/
软件语言:简体中文
授权方式:共享版
软件大小:0 Bytes
官方主页:Home Page
更新时间:2019-03-20 17:33:37
软件简介:

 




离散LTI系统数值解法实用程序设计

张丹
(陕理工 物理与电信工程学院 电子信息科学与技术专业2010级2班,陕西 汉中,723000)
指导老师:龙姝明

[摘要] 探索连续LTI系统转化为离散LTI系统的有效方法及初值条件转化的有效方法,对LTI离散系统用迭代法求解指定时区上的输入响应和零状态响应,编写LTI连续系统转化为LTI离散系统并用迭代方法求解系统响应的Mathematica程序,以LTI连续系统分析实例展示程序的高效性和可靠性。
[关键词] 离散系统;迭代法;Mathematica程序;数值解



Numerical Solution of discrete LTI system
utility designed

Zhang Dan
(Grade10,Class2,Major Electronic Information Science and Technology School of Physics and Telecommunication Engineering, Shannxi University of Technology,Hanzhong,723000)
Tutor:Long Shuming
Abstract Explore effective method of continuous LTI system into discrete LTI system effective methods and initial conditions for transformation, for LTI discrete systems with iterative method specified input response and zero status area on the response, the preparation of LTI continuous system into LTI discrete system with iterative method for solving the system response Mathematica program to LTI continuous systems analysis examples demonstrate the efficiency and reliability of the program.
Keywords Discrete systems; iterative method;Mathematica program; numerical solution






目录
引言 1
1 连续LTI系统的解析解和数值解 1
1.1求解连续低阶LTI系统解析解的特点 1
1.2求解连续高阶LTI系统解析解存在的问题 2
1.3求解连续LTI系统数值解的特点 3
2 连续LTI系统转化为离散LTI系统的方法 4
3 连续LTI系统转化为LTI离散系统初值条件的方法 5
4 迭代法求解指定时区上的LTI连续系统的编程技巧 5
4.1 求解指定时区上零输入响应的编程技巧 5
4.2 求解指定时区上零状态响应的编程技巧 6
4.3 求解指定时区上全响应的编程技巧 6
5迭代法求解LTI系统的Mathematica程序设计思路…………………..7
6 程序应用实例 8
6.1 用Mathematica软件编程求解连续LTI系统数值解的思路……………8
6.2 用Mathematica软件编程求解连续LTI系统的实例……………………8
7 结语 9
参考文献 9
附录A 9
附录B 10
附录C 10

引言
随着数字技术以及计算机技术的飞速发展,鉴于离散系统在精度、抗干扰能力和可集成化等方面,比连续系统具有更大的优越性,因此原来对连续信号和系统的研究问题,越来越多地转化为对离散信号和系统的处理问题。通信和计算机设备等数字化的高科技产品渗透于人们的生活、学习、工作等诸多方面,这样,对于离散系统的分析、研究和改进成为了必不可少的课题[][1]。
离散系统的响应问题是求解及分析离散系统的基础理论问题,是我们深入分析线性时不变离散系统的基础。离散LTI系统的求解方法有多种,有时域分析法和变换域分析法,其中时域分析法有利用差分方程直接求解和利用用迭代法求解。本课题所研究的是用时域分析法中的迭代法求解离散LTI系统的数值解[][2]。
利用迭代的方法分析不借助任何变换而直接求解,直观且准确。根据差分方程,用迭代的方法可以求解出零输入响应yzi(k)和零状态响应yzs(k),也可整体求出系统的全响应。迭代法是利用前n-1个时点的的响应值和第n个时点的输入信号响应的值求出第n个时点的系统响应值,这种方法是逐次求解直到求出各点的响应值,方法简单,概念清楚,对于低阶的系统手工操作就可以求解出,但对于高阶系统计算量比较大时,利用计算机运算速度快、适合做重复性操作的特点,用Mathematica软件编程实现这一过程,则更方便快捷。迭代法不仅可求解线性系统在指定区间上的值,还可求非线性系统在指定区间上的值。
作为理论上的研究,此课题虽然简单,但在实用技术上有广泛的应用,为进一步深入研究奠定基础。例如在通信、计算机、自动化等很多领域都离不开对各类离散系统的分析处理,其中必定涉及高阶系统和非线性系统,对于它们的求解,迭代解法是最有效的分析方法。比如我们在声音的处理过程中,就是经过滤波器,将声音信号转换为离散的差分方程来处理的,再如我们在处理图像时,也是将其转化为离散的差分方程来求解。在未来的“数字化”工业发展进程中,此课题的研究方法将有更加广泛和深入的应用[][3]。
本课题研究的方法是时域分析法中的迭代法,研究的工具软件是Mathematica。
Mathematica是一款科学计算软件,它有强大的数值运算和符号运算,并且能与其他应用程序连接,它的很多功能在科学研究领域中处于世界领先地位,截至2009年,它已是使用最广泛的理工软件之一。Mathematica的发布标志着现代科技计算的开始,Mathematica是世界上通用计算系统中最强大的系统,自从1988发布以来,它已经对如何在科技领域运用计算机技术产生了深刻的、巨大的和广泛的影响。
Mathematica和MATLAB、Maple统称为称为三大数学软件。本课题中用Mathematica软件用迭代的方法进行编程求解系统的数值解。
1 连续LTI系统的解析解和数值解
1.1求解连续低阶LTI系统解析解的特点
当用数字计算机求解LTI连续系统的解析解时,或直接在系统中采用数字计算机进行求解时,对于连续低阶系统,可以通过Mathematica软件编程来实现,例如求解一个连续低阶系统,其微分方程为
y''[t]+5y'[t]+6y[t]=-10Cos[20t] (1.1-1)
y[0]=1,y'[0]=-0.5
用Mathematica软件进行编程求解,程序如下:
Clear[y];
eq={y''[t]+5y'[t]+6y[t]==10Cos[20t],
y[0]==1,y'[0]==-0.5};
sol=DSolve[eq,y[t],t][[1]]//Expand;
y[t_]=y[t]/.sol;
Plot[y[t],{t,0,5}
所得的结果如图1.1所示:

图1.1输出信号响应图像
由上面这个例子可知,对于连续LTI低阶系统,用Mathematica软件编程可以求解出它的解析解,解的过程很容易而且没有出现错误。
1.2求解连续高阶LTI系统解析解存在的问题
求连续高阶LTI系统的解析解,就不会像求解连续低阶LTI系统那么简单。例如求解高阶微分方程
y''''[t]+150000y'''[t]-12y''[t]-5.67y'[t]+123y[t]=100Sin[15.7t] (1.2-1) y[0]=0,y'[0]=-4,y''[0]=-1.86,y'''[0]=12
用Mathematica软件进行编程求解,程序如下:
eq={y''''[t]+150000y'''[t]-12y''[t]-5.67y'[t]+123y[t] ==100Sin[15.7t],
y[0]==0,y'[0]==-4,y''[0]==-1.86,y'''[0]==12};
sol=DSolve[eq,y[t],t][[1]]//Expand;
y[t_]=y[t]/.sol;
Plot[y[t],{t,0,50}];
用这种方法求解,在解的过程中出现了问题,如下面所示:
RowReduce::luc:病态矩阵{{1.+0.i,0.+0.i,1.+0.i,1.
+0.i,1.722710-7+1.6311910-21i},<<2,{<<1,<<4构成的 RowReduce
的结果可能包含明显的数值错误.>>
(-3.55564×10-15-3.92837×10-35i)e-150000.t-
(56.4103-1.52752×10-17i)e-0.093707 t+
(56.4103-1.52768×10-17i)e0.0468935tCos[0.0809425t]-
(0.00161326+0.i)Cos[15.7t]+
(0.00161344_+1.63119×10-21i)Cos[0.0809425t]2
Cos[15.7t]+(1.19918×10-23-2.73774×10-41i)
Cos[0.161885t] Cos[15.7t]-
(147.405_-2.65336×10-17i)
e0.0468935tSin[0.0809425 t]+
(4.33681×10-19+2.83324×10-21 i)
Cos[0.0809425t]Cos[15.7t] Sin[0.0809425t]+
(0.00161344_+0.i)Cos[15.7t]
Sin[0.0809425 t]2-(9.74193×10-20+0.i)
Cos[15.7t]Sin[0.161885t]+
(9.62892×10-6+3.67342×10-40i)Sin[15.7t]-
(9.6289×10-6+9.55234×10-24i)
Cos[0.0809425t]2 Sin[15.7t]+(1.00443×10-21-2.29313×10-39i)
Cos[0.161885 t]Sin[15.7 t]-(3.38813×10-21-1.65558×10-23i)
Cos[0.0809425 t]Sin[0.0809425t]Sin[15.7t]-
(9.6289×10-6+1.10203×10-39i)
Sin[0.0809425t]2Sin[15.7t]+
(5.8158×10-22+4.07832×10-56i)
Sin[0.161885t]Sin[15.7t]
解的结果如图1.2所示:

图1.2 输出信号响应图像
通过这个例子,我们发现要求解此类连续高阶系统的解析解是比较困难的,虽然也可以得到结果,但是却耗费较长时间,而且求出的结果表达较为复杂,不仅含有实函数,而且含有复函数。当给出一个系数很大很复杂的连续高阶LTI系统,我们就解不出来了,因为求解一个复杂的连续高阶LTI系统,后台实际上是解一个一元高次代数方程,在用Mathematica解这个系数很复杂的一元高次代数方程时,会有很大的误差,故在用Mathematica进行编程求解此类系统时,就解不出来了。例如求解微分方程
y''''[t]+18000000y'''[t]-12y''[t]-5.67y'[t]+123y[t]=100Sin[15.7t] (1.2-2)
y[0]=0,y'[0]=-4,y''[0]=-1.86,y'''[0]=12
程序如下:
Clear[y];
eq={y''''[t]+18000000y'''[t]-12y''[t]-5.67y'[t]+123y[t] ==100Sin[15.7t],y[0]0,y'[0]==-4,y''[0]==-1.86,y'''[0]==12};
sol=DSolve[eq,y[t],t][[1]]//Expand;
y[t_]=y[t]/.sol
Plot[y[t],{t,0,50}]
对于上面这个微分方程,运行了好长时间,仍然没有求出结果。故对于此类连续高阶系统,就需要将它化为离散系统,利用Mathematica来求解它在指定区间上的数值解。这样既简便又可靠,而且不会出现的错误。
1.3求解连续LTI系统数值解的特点
对于连续LTI系统的微分方程
y''''[t]+150000y'''[t]-12y''[t]-5.67y'[t]+123y[t]=100Sin[15.7t] (1.3-1)
y[0]=0,y'[0]=-4,y''[0]=-1.86,y'''[0]=12
由于求它的解析解既耗时结果又复杂,故我们求它的数值解,用Mathematica进行编程,求解它在一个0-50s这个时间段上的数值解,程序如下:
Clear[y];
eq={y''''[t]+150000y'''[t]-12y''[t]-5.67y'[t]+123y[t]==
100Sin[15.7t],y[0]==0,y'[0]==-4,y''[0]==-1.86,y'''[0]==12};
sol=NDSolve[eq,y[t],{t,0,50},MaxSteps1000000][[1]]//Expand;
y[t_]=y[t]/.sol
Plot[y[t],{t,0,50}]
所得到的结果如图1.3所示:
InterpolatingFunction[{{0.,50.}},<>][t]

图1.3 输出信号响应图像
通过上面的例子,我们知道用Mathematica进行编程求解此类方程在指定区间上的数值解,非常简便,而且很实用。
2 连续LTI系统转化为离散LTI系统的方法
由于用离散系统求解数值解更为简便、快捷和准确,故通常我们先将连续系统转化为离散系统,离散化就是导出能在采样时刻上与连续系统状态等价的离散化状态方程。连续LTI系统转化为离散LTI系统,包含自变量的离散化、导函数的离散化和方程的离散化。
例如对于连续LTI方程
y''[t]+ay'[t]+by[t]=cf[t] (2-1)y[0_]=y0,y'[0_]=yp0
要将它离散化为离散LTI系统,首先是确定求解的时间区间,将自变量也就是时间离散化,用Mathematica进行编程,程序如下:
ta=0;tb=10;
n=100;Ts=(tb-ta)/n;
ts=Range[0,n]*Ts;
其中,ta和tb是初始时刻和终止时刻,n为采样数,Ts为采样间隔,ts为采样时间。然后是输
入函数的离散化,将f(t)f(ts(k)),f(ts(k))f(k),f(t)f(k)。再是导函数的离散化,程序如下:
y'(k)≈(y(k)-y(k-1))/Ts;
y''(k)≈(y(k)-2y(k-1)+y(k-2))/Ts2;
y'''(k)≈(y(k)-3y(k-1)+3y(k-2)-y(k-3))/Ts3;
y''''(k)≈(y(k)-4y(k-1)+6y(k-2)-4y(k-3)+y(k-4))/Ts4;
...;
其中y'(k )是一阶导函数的离散化,y''(k)是二阶导函数的离散化,y'''(k)是三阶导函数的离散化,y''''(k) 是四阶导函数的离散化,依次类推,将y(m)(t)转化为 y(m)(k)。最后是方程的离散化,对于对于方程y''[t]+ay'[t]+ by[t]=cf[t],将导函数离散化的结果代入此方程,整理后,将各项的系数分别用字母表示便可得到离散化的方程,用Mathematica进行编程,程序如下:
y(k)-2y(k-1)+y(k-2)+aTs(y(k)-y(k-1))+bTs^2y[k]==cTs^2f[k];
(1+a.Ts+b.Ts^2)y[k]+(-2-a.Ts)y[k-1]+y[k-2]==cTs^2f[k];
q=1/(1+a.Ts+b.Ts^2);
y[k]+(-2-a Ts)qy[k-1]+qy[k-2]==cTs^2qf[k];
p=(-2-aTs)q;
A=cTs^2q;
y[k]+py[k-1]+qy[k-2]=Af[k];
3 连续LTI系统转化为LTI离散系统初值条件的方法
探索连续LTI系统初值条件转化为LTI离散系统初值条件的有效方法,首先我们是对上面导函数离散化的方程进行变形,然后赋值就可得到,具体做法如下:
对y'(k)≈(y(k)-y(k-1))/Ts,进行变形,得到Tsy'(k)≈y(k)-y(k-1),然后给k赋值为-1,将y(-1)=y[0_]带入,再移项就可得到y(-2)=y(-1)-Tsy'[0_];对y''(k)≈
(y(k)-2y(k-1)+y(k-2))/Ts2进行变形,得到Ts2y''(k)≈y(k)-2y(k-1)+y(k-2),
然后给k赋值为-1,将y(-1)=y[0_]带入,再移项就可得到y(-3)=2y(-2)+y(-1)+
Ts2y''[0_],用Mathematica进行编程,程序如下:
y(-1)=y[0_];
y(-2)=y(-1)-Tsy'[0_];
y(-3)=2y(-2)+y(-1)+Ts2y''[0_]; 
....;
4 迭代法求解指定时区上的LTI连续系统的编程技巧
用迭代解法可以分别求出零输入响应和零状态响应,也只有用迭代解法可以一次性求出系统的全响应,其它的方法比如状态空间和传递函数都只能分别求系统的完全响应。
迭代解法不仅可以求线性系统的完全响应,还可以求非线性系统模型的完全响应,至于求出的结果是否有用,取决于非线性系统的模型能不能很好的反应实际系统。而非线性系统的模型能不能很好的反应实际系统,则取决于构建的描述系统的差分方程是否正确,如果正确,那解出的结果就能很好的反应该实际系统。
4.1 求解指定时区上零输入响应的编程技巧
零输入响应是在没有外加激励时,仅有0时刻的非零初始状态引起的响应。它是取决于初始状态和电路特性,这种响应是随时间按指数规律衰减变化的[][4]。
在用Mathematica进行编程的过程中,连续LTI系统转化为离散LTI系统的方法和连续LTI系统初值条件转化为LTI离散系统初值条件的方法上面我们提到,用迭代法求解指定时区上的LTI离散系统零输入响应,那我们只需要将输入信号设为0,进而求出系统的响应即可。
例如对于方程
y''[t]+ay'[t]+by[t]=cf[t] (4.1-1)
y(-1)=m,y(-2)=n
将上文我们研究的导函数离散化的结果代入(4.1-1),再整理便可得到离散化的方程:
y(k)-2y(k-1)+y(k-2)+aTs(y(k)-y(k-1))+bTs2y[k]=cTs2f[k] (4.1-2)要用迭代法求解指定时区上的LTI离散系统零输入响应,那我们可以将上式中的f[k]取值为0,同
类的合并后,把y(k)保留在等式的左边,其余项移到等式的左边,即是
(1+a.Ts+b.Ts^2)y[k]+(-2-a.Ts)y[k-1]+y[k-2]=0 (4.1-3)
然后我们可以依次给k赋值为0、1、2就可以依次得到y(0)、y(1)、y(2)的值,即是该系统函数在指定区间上的零输入响应。
例如对于方程
y''''[t]+260300y'''[t]-12y''[t]-6y'[t]+123y[t]=120Sin[17t] (4.1-4)
y[0]=0,y'[0]=-4,y''[0]=-1.9,y'''[0]=12
将它离散化后,用迭代法求解它在0-50s的零输入响应。即就是输入信号为0的情况下,通过已知的前四个时刻的值依次求出下一个时刻的值,直到求出指定区间上的所有的时刻的零输入响应。将此微分方程中输入信号取为0。则微分方程变为
y''''[t]+260300y'''[t]-12y''[t]-6y'[t]+123y[t]=(4.1-5)再用Mathematica软件进行编程求解它的零输入响应,程序见附录A。
结果如图4.1所示:

图4.1 零输入响应的图像
4.2 求解指定时区上零状态响应的编程技巧
零状态响应就是电路的储能元器件(如电容、电感类元器件)无初始储能,仅由外部激励作用而产生的响应[][5]。
在用Mathematica进行编程的过程中,用迭代法求解指定时区上的LTI离散系统零状态响应,那我们只需要将初始状态设为0,进而求出系统的响应即可。
例如对于方程
y''[t]+ay'[t]+by[t]=cf[t] (4.2-1)y(-1)=m,y(-2)=n
将上文研究的导函数离散化的结果代入(4.6),再整理便可得到离散化的方程:
y(k)-2y(k-1)+y(k-2)+aTs(y(k)-y(k-1))+bTs2y[k]=cTs2f[k] (4.2-2)
合并,把y(k)保留在等式的左边,其余项移到等式的左边,即是
(1+a.Ts+b.Ts^2)y[k]+(-2-a.Ts)y[k-1]+y[k-2]=cTs2f[k] (4.2-3)
用迭代法求解指定时区上的LTI离散系统零状态响应,那我们可以将上式中的y(-1)和y(-2)取值为0,然后我们可以依次给k赋值为0、1、2就可以依次得到y(0)、y(1)、y(2) 的值,即是该系统函数在指定区间上的零状态响应。
同样对于方程
y''''[t]+260300y'''[t]-12y''[t]-6y'[t]+123y[t]=120Sin[17t] (4.2-4)
y[0]=0,y'[0]=-4,y''[0]=-1.9,y'''[0]=12
用迭代法求解它在0-100s的零状态响应。即就是初始状态都为0的情况下通过已知的前四个时刻的值依次求出下一个时刻的值,直到求出指定区间上的所有的时刻的零状态响应。则y[0]=0,y'[0]=0,y''[0]=0,y'''[0]=0,用Mathematica软件进行编程求解,程序见附B。
结果如图4.2所示:

图4.2 零状态响应的图像
4.3 求解指定时区上零状态响应的编程技巧
全响应就是线性系统或电路在激励作用下产生的零状态响应与零输入响应之和。它是系统或电路在输入和初始条件共同作用下的响应。是零输入响应和零状态响应叠加的结果,也体现了线性电路的叠加性[][6]。
用迭代法求解指定时区上零状态响应的,即是综合了零输入零输入响应和零状态响应,输入状态和初始状态均不为0,其他的编程技巧均不变。
5 迭代法求解LTI系统的Mathematica程序设计思路
例如用迭代解法求解方程
y''''[t]+150000y'''[t]-12y''[t]-5.67y'[t]+123y[t]=100Sin[15.7t] (5.1-1)
y[0]=0,y'[0]=-4,y''[0]=-1.86,y'''[0]=12
的数值解,并用Mathematica进行编程求解它在0-50s的解。
在离散化的过程中,将导函数的离散化结果带入到微分方程(5.1)中,合并同类项,将y[k]的系数化为1,其它项的系数分别用字母表示,这样就得到离散化的差分方程为:
y[k]+Ay[k-1]+By[k-2]+Cy[k-3]+qy[k-4]=qTs4fn[k]   (5.1-2)
求解的具体过程,用Mathematica编程,程序如下:
Clear[y,u];
ta=0;tb=50;n=200;
Ts=(tb-ta)/n;
自变量的离散化编程:
ts=Range[0,n]*Ts;
输入函数的离散化编程:
fn=100*Sin[15.7ts];
方程的离散化编程:
q=1/(1+150000*Ts-12*Ts^2-5.67*Ts^3+123Ts^4);
A=q*(-4-3*150000*Ts+2*12*Ts^2+5.67*Ts^3);
B=q*(6+3*150000*Ts-12*Ts^2);
C=q*(-4-150000*Ts);
初值的离散化编程:
y[-1]=0;
y[-2]=4Ts;
y[-3]=-1.86Ts^2+8Ts;
y[-4]=-3*1.86Ts^2+12Ts-12Ts^3;
将数值解存入数组编程:
u=ConstantArray[0,n+1+4];
u[[1;;4]]={y[-4],y[-3],y[-2],y[-1]};
For[j=5,jn+5,j++,u[[j]]=-A*u[[j-1]]-B*u[[j-2]]-C*u[[j-3]]-
q*u[[j-4]]+q*Ts^4 fn[[j-4]]];
用图像表示解的结果:
data=Transpose[{ts,u[[5;;-1]]}];
ListPlot[data,Joined→True]
画出它的图形,如图5.1所示:

图5.1 输出信号响应波形图
6 程序应用实例
6.1 用Mathematica软件编程求解连续LTI系统数值解的思路
(1)先给定一个连续系统,比如一个三阶的RLC电路,对电路进行分析,得到它的系统函数;
(2)根据系统函数写出它的微分方程,再将微分方程离散化为差分方程,连续系统的初值也离散化为差分方程的初值;
(3)利用Mathematica软件和迭代法求出差分方程的数值解。
6.2 用Mathematica软件编程求解连续LTI系统的实例
以RLC三阶电路电路为例[][7],具有电阻—电感—电容的二端网络如图5.1所示,其中:R1=2,R2=80,L1=0.4H, L2=0.2H ,C=5*10-3F。电压为输入,电压=150Cos[18t]为输出,求该三阶电路系统的离散化数值解。

图6.1 RLC时域电路
利用拉普拉斯变换进行分析,建立复频域代数方程[][8]:
L2和R2的串联阻抗为
(6.2-1)
C和L2与R2的并联阻抗为
(6.2-2)总阻抗为
(6.2-3)
系统函数为

(6.2-4)
代入R,L,C的值,得系统函数[][9]:
(6.2-5)
根据系统函数可以列出微分方程:
y'''[t]+405y''[t]+3500y'[t]+205000y[t]=200000f[t]
y[0]=0,y'[0]=0,y''[0]=0 (6.2-6)
用上文的方法将(6.2-6)离散化为以下形式:
y[k]+ay[k-1]+by[k-2]+cy[k-3]=200000qTs3fn[k] (6.2-7)
y[-1]=0,y[-2]=0,y[-3]=0
用Mathematica进行编程求解,程序见附录C[][10]。
结果如图6.3所示:

图6.3 输出系统响应波形图
7 结语
毕业设计是对大学四年学习成果的一次大检阅,平时课堂上学到的知识很难以融会贯通,通过本次毕业设计,让我在平时学习的知识得到了进一步巩固和加强,通过毕业设计还可以将平时所学的一些知识应用到实际的设计中。
设计刚开始时,由于对编程不是很熟悉,出现了许多错误,造成了多次的返工。但是,正是这一次次的尝试磨练了我的耐性,并提高了我对软件的操作水平。在这次设计中,我不仅收获了专业知识,还在与同学的沟通交流中增长了很多的见识,特别是要非常感谢龙老师细心和认真的指导,正因为有了老师和同学的帮助,我的毕业设计才能顺利完成。这次毕业设计为我未来踏上社会、步入工作岗位打下了良好基础。
这个毕业设计,让我深深地体会到这是一个连接学习和工作的桥梁。毕业设计的完成标志着大学生活的结束,今后迎接我的是更多的挑战,通过毕业设计的磨练,我相信我能够更好的面对这些,把握机遇,创造未来。在大学里我得到了最好的锻炼,我要将学到的知识转换成力量,为了自己的梦想而努力奋斗。

参考文献
[1]钱琳琳,牛瑞燕,李秀丽.离散LTI系统单位脉冲响应求解方法研究[N].电气电子学报,2010(01).
[2] Alan V.Oppenheim.Discrete-Time Signal Processing(Third Edition)[M]北京:电子工业出版社,2011:9-70.
[3]张正文,钟东.基于Matlab的离散时间系统分析[N].咸宁学院学报,2007(06).
[4]杨忠根,任蕾.陈红亮因果周期信号通过LTI系统的零状态响应[N].电气电子教学学报,2011(03).
[5]柴黎,姚秀芳.基于复频域的连续时间LTI系统时域分析[J],北京:电子技术,2013(04):1-3.
[6]侯静怡,刘志杰.离散时间LTI系统的响应求解与其Matlab的实现[J],北京:中国科技信息2012(22):48-49.
[7]朱小奇.三阶线性离散系统的时域分析[N].铁道师院学报,2001(02).
[8]姜永权.利用状态方程进行连续LTI系统数值求解[J]. 电工教学,1996(06):28-29.
[9] Alan V.Oppenheim. Signals and Systems(Second Edition)[M]北京:电子工业出版社,2009:284-510.
[10]崔本亮.线性时不变(LTI) 系统分析方法讨论[J].现代电子技术,2009(03):127-136.

附录A
Clear[y,u];
ta=0;tb=50;n=400;
Ts=(tb-ta)/n;
ts=Range[0,n]*Ts;
fn=0;
q=1/(1+260300*Ts-12*Ts^2-6*Ts^3+123Ts^4)
A=q*(-4-3*260300*Ts+2*12*Ts^2+6*Ts^3)
B=q*(6+3*260300*Ts-12*Ts^2)
C=q*(-4-260300*Ts)
y[-1]=0
y[-2]=4Ts
y[-3]=-1.9 Ts^2+8Ts
y[-4]=-3*1.9Ts^2+12Ts-12Ts^3;
u=ConstantArray[0,n+1+4];
u[[1;;4]]={y[-4],y[-3],y[-2],y[-1]};
For[j=5,jn+5,j++,u[[j]]=-A*u[[j-1]]-B*u[[j-2]]-C*u[[j-3]]-
q*u[[j-4]] ];
data=Transpose[{ts,u[[5;;-1]]}];
ListPlot[data,Joined→True]
附录B
Clear[y,u];
ta=0;tb=100;n=200;
Ts=(tb-ta)/n;
ts=Range[0,n]*Ts;
fn=100*Sin[15.7ts];
q=1/(1+260300*Ts-12*Ts^2-6*Ts^3+123Ts^4);
A=q*(-4-3*260300*Ts+2*12*Ts^2+6*Ts^3);
B=q*(6+3*260300*Ts-12*Ts^2);
C=q*(-4-260300*Ts);
y[-1]=0;
y[-2]=0;
y[-3]=0;
y[-4]=0;
u=ConstantArray[0,n+1+4];
u[[1;;4]]={y[-4],y[-3],y[-2],y[-1]};
For[j=5,jn+5,j++,u[[j]]=
-A*u[[j-1]]-B*u[[j-2]]-C*u[[j-3]]-q*u[[j-4]]+q*Ts^4 fn[[j-4]]];
data=Transpose[{ts,u[[5;;-1]]}];
ListPlot[data,Joined→True]
附录C
ta=0;tb=5;
n=300;Ts=(tb-ta)/n;
ts=Range[0,n]*Ts;
fn=150Cos[18ts];
q=1/(1+405*Ts+3500*Ts^2+25000Ts^3);
a=q*(-3-405*2*Ts-3500*Ts^2);
b=q*(3+405*Ts);
c=q*(-1);
y[-1]=0;
y[-2]=0;
y[-3]=0;
u=ConstantArray[0,n+4];
u[[1;;3]]={y[-3],y[-2],y[-1]};
For[j=4,jn+4,j++,u[[j]]=-a*u[[j-1]]-b*u[[j-2]]+
2000q*Ts^3fn[[j-3]]];
data=Transpose[{ts,u[[4;;-1]]}];
ListPlot[data,Joined→True,PlotRange→All]


[url=http://www.biye114.com/html/1425.html][B]离散LTI系统数值解法实用程序设计[/B][/url]
Copyright © 2007-2013 完美毕业网. All Rights Reserved .
页面执行时间:93.75000 毫秒
Powered by:完美毕业网 http://www.biye114.com