离散时间系统的时域分析--一阶和二阶差分方程求解9页word文档
- 格式:doc
- 大小:59.50 KB
- 文档页数:9
第三章离散系统的时域分析❖LTI离散系统的响应●差分方程的经典解●零输入响应与零线性响应❖单位序列与单位序列响应●输入为单位序列时的零状态响应❖卷积和●定义法●图解法1§3.1 LTI离散系统的响应注意离散系统与连续系统分析方法上的联系、区别、对比,与连续系统有并行的相似性。
●差分与差分方程●差分方程的经典解●零输入响应和零状态响应1.定义差分(1)一阶前向差分定义:∆f (k) = f (k+1) –f (k)(2)一阶后向差分定义:∇f (k) = f (k) –f (k –1)式中,∆和∇称为差分算子,两者仅移位不同,无原则区别。
本书主要用后向差分,简称为差分。
(3)差分的线性性质:[][][][][])()( )1()()1()( )1()1()()()()(2211222111221122112211k f a k f a k f k f a k f k f a k f a k f a k f a k f a k f a k f a ∇+∇=--+--=-+--+=+∇(4)二阶差分定义:∇2f (k) = ∇[∇f (k)] = ∇[f (k) –f (k-1)] = ∇f (k) –∇f (k-1)32. 差分方程包含未知序列y(k)及其各阶差分的方程式称为差分方程。
将差分展开为移位序列,得一般形式y(k) + an-1y(k-1) +…+ ay(k-n) = bmf(k)+…+ bf(k-m)差分方程本质上是递推的代数方程,若已知初始条件和激励,利用迭代法可求得其数值解。
一般不易得到解析形式的(闭合)解。
差分方程迭代解举例例:若描述某系统的差分方程为y(k)+3y(k–1)+2y(k–2)=f(k)已知初始条件y(0)=0,y(1)=2,激励f(k)=2kε(k),求y(k)。
解:y(k)=–3y(k–1)–2y(k–2)+f(k)k=2y(2)=–3y(1)–2y(0)+f(2)=–2k=3y(3)=–3y(2)–2y(1)+f(3)=10k=4y(4)=–3y(3)–2y(2)+f(4)=–10……二、差分方程的经典解 1.齐次解:与微分方程经典解类似,y (k) = y h (k) + y p (k)y (k) + a n-1y (k-1) +…+ a 0y (k-n) = b m f (k)+…+ b 0f (k-m)齐次方程y (k) + a n-1y (k-1) + … + a 0y (k-n) = 0特征方程1 + a n-1λ–1 + … + a 0λ–n = 0,即λn + a n-1λn –1 + … + a 0= 0其根λi ( i = 1,2,…,n)称为差分方程的特征根。
第六章 离散时间系统的时域分析6.1离散时间信号—序列(一)序列运算[1] 相加()()()z n x n y n =+[2] 相乘()()()z n x n y n =[3] 延时()()z n x n m =-[4] 反褶()()z n x n =-[5] 前向差分()()()1x n x n x n ∆=+-[6] 后向差分()()()1x n x n x n ∇=--[7] 累加()()NK z n x K =-∞=∑[8] 倍乘序列的尺度倍乘将波形压缩或拓展,若将自变量n 乘以正整数a ,构成()x an 为压缩,而n x a ⎛⎫⎪⎝⎭则为波形扩展。
必须注意,这时要按规律去除某些点或者补足相应的零值。
因此,也称这种运算为序列的“重排”。
(二)常见序列1. 单位样值信号()()()1000n n n δ=⎧⎪=⎨≠⎪⎩2. 单位阶跃序列()()()1000n u n n ≥⎧⎪=⎨<⎪⎩ 3. 矩形序列()()()10100,N n N R n n n N ≤≤-⎧⎪=⎨<≥⎪⎩4. 斜变序列()()x n nu n =5. 指数序列()()n x n a u n =6. 正余弦序列()()0sin x n n ω= ()()0cos x n n ω=7. 复指数序列()()()0j 00cos jsin nx n e n n ωωω==+6.2离散时间系统的数学模型(一)三种方框图在时间域描述中,以符号1E表示单位延时(也可用符号“T ”或者符号“D ”表示单位延时);以符号∑表示两个序列相加;以符号⊗表示序列与系数相乘。
三种运算的方框图如下:单位延时相加乘系数例 一个离散时间系统如下图所示,写出描述系统工作的差分方程。
解 延时器的输入端应为序列()1y n +。
于是,围绕相加器可以写出()()()1y n ay n x n +=+或者()()()11y n y n x n a=+-⎡⎤⎣⎦a()y n ()ay n6.3常系数线性差分方程的求解(一)求解常系数线性差分方程的方法[1]时域经典法与微分方程的时域经典法类似,先分别求齐次解与特解,然后代入边界条件求待定系数。
课程设计任务书目录1 引言 (1)2 Matlab7.0入门 (1)3 利用Matlab 7.0实现一阶和二阶差分方程求解的设计 (2)3.1 设计原理分析 (2)3.1.1 差分方程定义 (2)3.1.2 差分方程的意义与应用 (2)3.1.3 用MATLAB仿真时用的相关函数说明 (3)3.2 一阶和二阶差分方程求解的编程设计及实现 (4)3.2.1 设计函数思路 (4)3.2.2 理论计算 (4)3.2.3 设计过程记录及运行结果 (4)4 结论 (5)5 参考文献 (6)1引言人们之间的交流是通过消息的传播来实现的,信号则是消息的表现形式,消息是信号的具体内容。
《信号与系统》课程是一门实用性较强、涉及面较广的专业基础课,该课程是将学生从电路分析的知识领域引入信号处理与传输领域的关键性课程,对后续专业课起着承上启下的作用. 该课的基本方法和理论大量应用于计算机信息处理的各个领域,特别是通信、数字语音处理、数字图像处理、数字信号分析等领域,应用更为广泛。
近年来,计算机多媒体教序手段的运用逐步普及,大量优秀的科学计算和系统仿真软件不断涌现,为我们实现计算机辅助教学和学生上机实验提供了很好的平台。
通过对这些软件的分析和对比,我们选择MATLAB语言作为辅助教学工具,借助MATLAB 强大的计算能力和图形表现能力,将《信号与系统》中的概念、方法和相应的结果,以图形的形式直观地展现给我们,大大的方便我们迅速掌握和理解老师上课教的有关信号与系统的知识。
2Matlab7.0入门MATLAB的名称源自Matrix Laboratory,它是一种科学计算软件,专门以矩阵的形式处理数据。
MATLAB将高性能的数值计算和可视化集成在一起,并提供了大量的内置函数,从而被广泛地应用于科学计算、控制系统、信息处理等领域的分析、仿真和设计工作,而且利用MATLAB产品的开放式结构,可以非常容易地对MATLAB的功能进行扩充,从而在不断深化对问题认识的同时,不断完善MATLAB产品以提高产品自身的竞争能力。
Matlab7.0比Matlab的老版本提供了更多更强的新功能和更全面、更方便的联机帮助信息。
当然也比以前的版本对于软件、硬件提出了更高的要求。
在国内外Matlab已经经受了多年的考验。
Matlab7.0功能强大,适用范围很广。
其可以用来线性代数里的向量、数组、矩阵运算,复数运算,高次方程求根,插值与数值微商运算,数值积分运算,常微分方程的数值积分运算、数值逼近、最优化方法等,即差不多所有科学研究与工程技术应用需要的各方面的计算,均可用Matlab来解决。
MATLAB是MATLAB产品家族的基础,它提供了基本的数学算法,例如矩阵运算、数值分析算法,MATLAB集成了2D和3D图形功能,以完成相应数值可视化的工作,并且提供了一种交互式的高级编程语言——M语言,利用M语言可以通过编写脚本或者函数文件实现用户自己的算法。
利用M语言还开发了相应的MATLAB专业工具箱函数供用户直接使用。
这些工具箱应用的算法是开放的可扩展的,用户不仅可以查看其中的算法,还可以针对一些算法进行修改,甚至允许开发自己的算法扩充工具箱的功能。
目前MATLAB产品的工具箱有四十多个,分别涵盖了数据采集、科学计算、控制系统设计与分析、数字信号处理、数字图像处理、金融财务分析以及生物遗传工程等专业领域。
综上,在进行信号的分析与仿真时,MATLAB7.0无疑是一个强大而实用的工具。
尤其对于信号的分析起到了直观而形象的作用,非常适合与相关课题的研究与分析。
·3 利用Matlab 7.0实现一阶和二阶差分方程求解的设计3.1 设计原理分析3.1.1 差分方程定义含有未知函数y(t)=f(t)以及yt的差分Dy(t),D2y(t),…的函数方程,称为常差分方程(简称差分方程);出现在差分方程中的差分的最高阶数,称为差分方程的阶。
n阶差分方程的一般形式为F(t,y(t),D y(t),…,Dn y(t))=0,其中F是t,y(t), D y(t),…,Dn y(t)的已知函数,且Dnyt一定要在方程中出现。
含有两个或两个以上函数值y(t),y(t+1),…的函数方程,称为(常)差分方程,出现在差分方程中未知函数下标的最大差,称为差分方程的阶。
n阶差分方程的一般形式为F(t,y(t),y(t+1),…,y(t+n))=0,其中F为t,y(t),y(t+1),…,y(t+n)的已知函数,且y(t)和y(t+n)一定要在差分方程中出现。
3.1.2 差分方程的意义与应用差分方程模型有着广泛的应用。
实际上,连续变量可以用离散变量来近似逼近1,从而微分方程模型就可以近似于某个差分方程模型。
差分方程模型有着非常广泛的实际背景。
在经济金融保险领域、生物种群数量结构规律分析、疫病和病虫害的控制与防治、遗传规律的研究等许许多多的方面都有着非常重要的的作用。
可以这样讲,只要牵涉到关于变量的规律,性质,就可以适当的用差分方程模型来表现体与分析求解。
3.1.3 用MATLAB仿真时用的相关函数说明在用MATLAB仿真离散系统的差分方程时可以用函数y=filter(p,d,x)实现差分方程的仿真,用y=impz(p,d,N)求系统的冲激响应。
(1)利用filter函数实现差分方程说明:filter([1,2],1,[1,2,3,4,5])实现y[k]=x[k]+2*x[k-1]y[1]=x[1]+2*0=1%(x[1]之前状态都用0)y[2]=x[2]+2*x[1]=2+2*1=4(2)用filter函数求该差分方程y[n]+0.75y[n-1]+0.125y[n-2]=x[n]-x[n-1]的单位冲激响应和单位阶跃响应说明:单位冲激响应:a1=[1,0.75,0.125];b1=[1,-1];n=0:20;x1=[1,zeros(1,20)];y1filter=filter(b1,a1,x1);stem(n,y1filter);title('y1filter');xlabel('x');ylabel('y');单位阶跃响应:a1=[1,0.75,0.125];b1=[1,-1];n=0:20;2x2=ones(1,21);y1filter=filter(b1,a1,x2);stem(n,y1filter);title('y1filter_step');xabel('x');ylabel('y');(3)用impz 函数求差分方程y[n]+0.75y[n-1]+0.125y[n-2]=x[n]-x[n-1]的单位冲击响应和单位阶跃响应说明:单位冲击响应:a1=[1,0.75,0.125];b1=[1,-1];impz(b1,a1,21);单位阶跃响应:a=[1,0.75,0.125];b=1;impz(b,a);即y=filter(p,d,x)用来实现差分方程,d 表示差分方程输出y 的系数,p 表示输入x 的系数,而x 表示输入序列。
输出结果长度数等于x 的长度。
y=impz(p,d,N)是用来实现冲击响应的,d 和p 的定义见filter ,N 表示冲击响应输出的序列个数。
3.2 一阶和二阶差分方程求解的编程设计及实现3.2.1 设计函数思路利用MATLAB 软件实现这个仿真过程,其中应用到filter 函数来实现差分方程的零状态响应,利用impz 函数来实现差分方程0~20区间的样值的取样。
3.2.2 理论计算由y(n)-0.25y(n-1)+0.5y(n-2)=f(n)+f(n-1)两边Z 变换得Y(Z)Y (Z )(1-41Z 1+21Z 1)=F(Z)(1+Z 1) →H(Z)=214132+-+Z Z Z Z 3.2.3设计过程记录及运行结果一阶:a=[1 -0.25]; %差分方程系数b=[1]; %差分方程系数n=0:20; %序列个数fn=0.5.^n; %输入序列y=filter(b,a,fn); %系统零状态响应subplot(1,3,1),stem(n,fn,'filled');title('输入序列');grid onsubplot(1,3,2),stem(n,y,'filled');title('0-20区间的样值');grid onsubplot(1,3,3),stem(n,y,'filled');title('零状态响应');grid on结果如图所示。
二阶:a=[1 -0.25 0.5]; %差分方程系数b=[1 1]; %差分方程系数n=0:20; %序列个数fn=0.5.^n; %输入序列y=filter(b,a,fn); %系统零状态响应subplot(1,3,1),stem(n,fn,'filled');title('输入序列');grid onsubplot(1,3,2),stem(n,y,'filled');title('0-20区间的样值');grid onsubplot(1,3,3),stem(n,y,'filled');title('零状态响应');grid on结果图如图所示。
仿真结果图4 结论线性时不变系统的求解方法有多种,课题主要用Z变换法解差分方程。
通过Z变换求系统响应方程,将其逆Z变换求出系统函数,再将输入函数带入解得响应求出具体解,这是本课题解差分方程的基本思路。
通过对该因果稳定线性时不变系统的差分方程课程的设计,我掌握了程序设计的基本步骤及基本原理。
对程序设计前所需进行的基本步骤有一定的了解。
熟悉了设计编译基本流程,熟练了对MATLAB的使用。
这次的课程设计项目是用MATLAB仿真实现差分方程,在我们仿真的工程中,出现过许多错误,这其中主要的错就是在编写0~20区间冲激响应的相关程序代码,以及阶跃信号的输入。
然后经过修改,我们得出正确的结果。
刚开始着手用MATLAB做课程设计时感觉有点一头雾水,没有方向,不知该从哪开始,后来经过仔细研究,慢慢感觉不太难做,最后也还算是顺利完成课程设计。
这次课程设计给我最大的收获就是更加切实实际的了解了差分方程的物理概念及在工程上的意义。
其次,通过本次设计,我提升了对信号处理及其实验软件MATLAB 的喜爱及学习的热情,我认识到在学习中不仅要重视理论,更应该把理论用于实践中去,这才是学习的真正目的和意义。
在做课程设计之前一定要将课本上的相关知识点理解,因为这是基础,要多看相关的例题,否则相关知识点不清楚会给设计加大难度,浪费很多时间。