用matlab实现线性常系数差分方程的求解Word下载.docx

上传人:b****3 文档编号:13917534 上传时间:2022-10-15 格式:DOCX 页数:15 大小:406.89KB
下载 相关 举报
用matlab实现线性常系数差分方程的求解Word下载.docx_第1页
第1页 / 共15页
用matlab实现线性常系数差分方程的求解Word下载.docx_第2页
第2页 / 共15页
用matlab实现线性常系数差分方程的求解Word下载.docx_第3页
第3页 / 共15页
用matlab实现线性常系数差分方程的求解Word下载.docx_第4页
第4页 / 共15页
用matlab实现线性常系数差分方程的求解Word下载.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

用matlab实现线性常系数差分方程的求解Word下载.docx

《用matlab实现线性常系数差分方程的求解Word下载.docx》由会员分享,可在线阅读,更多相关《用matlab实现线性常系数差分方程的求解Word下载.docx(15页珍藏版)》请在冰豆网上搜索。

用matlab实现线性常系数差分方程的求解Word下载.docx

(3.1—1)

一阶后向差分定义为

(3.1—2)

式中Δ和Δ称为差分算子。

由式(3.1—1)和式(3.1—2)可见,前向差分与后向差分的关系为

(3.1—3)

二者仅移位不同,没有原则上的差别,因而它们的性质也相同。

此处主要采用后向差分,并简称其为差分。

由查分的定义,若有序列、和常数,则

(3.1—4)

这表明差分运算具有线性性质。

二阶差分可定义为

(3.1—5)

类似的,可定义三阶、四阶、…、n阶差分。

一般地,n阶差分

(3.1—6)

式中

(3.1—7)

为二项式系数

序列f(k)的求和运算为

(3.1—8)

差分方程是包含关于变量k的未知序列y(k)及其各阶差分的方程式,它的一般形式可写为

(3.1—9a)

式中差分的最高阶为n阶,称为n阶差分方程。

由式(3.1—6)可知,各阶差分均可写为y(k)及其各移位序列的线性组合,故上式常写为

(3.1—9b)

通常所说的差分方程是指式(3.1—9b)形式的方程。

若式(3.1—9b)中,y(k)及其各移位序列均为常数,就称其为常系数差分方程;

如果某些系数是变量k的函数,就称其为变系数差分方程。

描述LTI离散系统的是常系数线性差分方程。

差分方程是具有递推关系的代数方程,若一直初始条件和激励,利用迭代法渴求的差分方程的数值解。

2.差分方程的经典解

一般而言,如果但输入—单输出的LTI系统的激励f(k),其全响应为y(k),那么,描述该系统激励f(k)与响应y(k)之间关系的数学模型式n阶常系数线性差分方程,它可写为

(3.1—10a)

式中、都是常数。

上式可缩写为

(3.1—10b)

与微分方程的经典解类似,上述差分方程的解由齐次解和特解两部分组成。

齐次解用表示,特解用表示,即

(3.1—11)

a.齐次解

当式(3.1—10)中的f(k)及其各移位项均为零时,齐次方程

(3.1—12)

的解称为齐次解。

首先分析最简单的一阶差分方程。

若一阶差分方程的齐次方程为

(3.1—13)

它可改写为

y(k)与y(k-1)之比等于-a表明,序列y(k)是一个公比为-a的等比级数,因此y(k)应有如下形式

(3.1—14)

式中C式常数,有初始条件确定。

对于n阶齐次差分方程,它的齐次解由形式为的序列组合而成,将代入到式(3.1—12),得

由于C≠0,消去C;

且λ≠0,以除上式,得

(3.1—15)

上式称为差分方程式(3.1—10)和式(3.1—12)的特征方程,它有n个根,称为差分方程的特征根。

显然,形式为的序列都满足式(3.1—12),因而它们是式(3.1—10)方程的齐次解。

依特征根取值的不同,差分方程齐次解的形式见表3—1,其中、、、等为待定常数

表3—1不同特征根所对应的齐次解

特征根

齐次解

单实根

重实根

一对共轭复根

重共轭复跟

b.特解

特解的函数形式与激励的函数形式有关,表3—2列出了集中典型的激励f(k)所对应的特解。

选定特解后代入原差分方程,求出其待定系数等,就得出方程的特解。

表3—2不同激励所对应的特解

激励

特解

所有特征根均不等于1时

当有重等于1时的特征根时

当不等于特征根时

当是特征单根时

当是重特征根时

所有特征根均不等于

c.全解

式(3.1—10)的线性差分方程的全解是齐次解与特解之和。

如果方程的特征根均为单根,则差分方程的全解为

(3.1—16)

如果特征根为重根,而其余n-r个特征根为单根时,差分方程的全解为

(3.1—17)

式中各系数由初始条件确定。

如果激励信号是在k=0时接入的,差分方程的解适合于k≥0。

对于n阶差分方程,用给定的n个初始条件y(0),y

(1),…,y(n-1)就可确定全部待定系数。

如果差分方程的特解都是单根,则方程的全解为式(3.1—16),将给定的初始条件y(0),y

(1),…,y(n-1)分别代入到式(3.1—16),可得

(3.1—18)

由以上方程可求得全部待定系数。

2.1零输入响应

系统的激励为零,仅由系统的初始状态引起的响应,称为零输入响应,用表示。

在零输入条件下,式(3.1—10)等号右端为零,化为齐次方程,即

(3.1—25)

一般设定激励是在k=0时接入系统的,在k<0时,激励尚未接入,故式(3.1—25)的几个初始状态满足

(3.1—26)

式(3.1—26)中的y(-1),y(-2),…,y(-n)为系数的初始状态,由式(3.1—25)和式(3.1—26)可求得零输入响应。

2.2零状态响应

当系统的初始状态为零,仅由激励f(k)所产生的响应,称为零状态响应,用表示。

在零状态情况下,式(3.1—10)仍是非齐次方程,其初始状态为零,即零状态响应满足

(3.1—30)

的解。

若其特征根均为单根,则其零状态响应为

(3.1—31)

式中为待定常数,为特解。

需要指出,零状态响应的初始状态为零,但其初始值不一定等于零。

3.线性常系数差分方程

3.1一个N阶线性常系数差分方程可用下式表示:

(1.4.1)

或者

(1.4.2)

式中,x(n)和y(n)分别是系统的输入序列和输出序列,ai和bi均为常系数,式中y(n-i)和x(n-i)项只有一次幂,也没有相互交叉相乘项,故称为线性常系数差分方程。

差分方程的阶数是用方程y(n-i)项中i的最大取值与最小取值之差确定的。

在(1.4.2)式中,y(n-i)项i最大的取值N,i的最小取值为零,因此称为N阶差分方程。

4.线性常系数差分方程的求解

已知系统的输入序列,通过求解差分方程可以求出输出序列。

求解差分方程的基本方法有以下三种:

(1)经典解法。

这种方法类似于模拟系统中求解微分方程的方法,它包括齐次解与特解,由边界条件求待定系数,上节已作简单介绍,这里不作介绍。

(2)递推解法。

这种方法简单,且适合用计算机求解,但只能得到数值解,对于阶次较高的线性常系数差分方程不容易得到封闭式(公式)解答。

(3)变换域方法。

这种方法是将差分方程变换到z域进行求解,方法简便有效。

当然还可以不直接求解差分方程,而是先由差分方程求出系统的单位脉冲响应,再与已知的输入序列进行卷积运算,得到系统输出。

但是系统的单位脉冲响应如果不是预先知道,仍然需要求解差分方程,求其零状态响应解。

(4)卷积法:

由差分方程求出系统的h(n),再与已知的x(n)进行卷积,得到y(n)。

观察(1.4.1)式,求n时刻的输出,要知道n时刻以及n时刻以前的输入序列值,还要知道n时刻以前的N个输出序列值。

因此求解差分方程在给定输入序列的条件下,还需要确定N个初始条件。

如果求n0时刻以后的输出,n0时刻以前N个输出值y(n0-1)、y(n0-2)、∙∙∙∙∙∙、y(n0-N)就构成了初始条件。

(1.4.1)式表明,已知输入序列和N个初始条件,则可以求出n时刻的输出;

如果将该公式中的n用n+1代替,可以求出n+1时刻的输出,因此(1.4.1)

式表示的差分方程本身就是一个适合递推法求解的方程。

三.设计过程

1.用MATLAB求解差分方程

MATLAB信号处理工具箱提供的filter函数实现线性常系数差分方程的递推求解,调用格式如下:

yn=filter(B,A.xn)计算系统对输入信号向量xn的零状态响应输出信号向量yn,yn与xn长度相等,其中,B和A是(1.4.2)式所给差分方程的系数向量,即

B=[b0,b1,∙∙∙,bM],A=[a0,a1,∙∙∙,aN]

其中a0=1,如果a0≠1,则filter用a0对系数向量B和A归一化。

yn=filter(B,A.xn,xi)计算系统对输入信号向量xn的全响应输出信号yn。

所谓全响应,就是由初始状态引起的零输入响应和由输入信号xn引起的零状态响应之和。

其中,xi是等效初始条件的输入序列,所以xi是由初始条件确定的。

MATLAB信号处理工具箱提供的filtic就是由初始条件计算xi的函数,其调用格式如下:

xi=filtic(B,A,ys,xs)

其中,ys和xs是初始条件向量:

ys=[y(-1),y(-2),y(-3),∙∙∙,y(-N)],xs=[x(-1),x(-2),x(-3),∙∙∙,x(-M)]。

如果xn是因果序列,则xs=0.调用时可缺省xs。

例1.4.1的MATLAB求解程序ep141.m如下:

%1.4.1.m:

调用MATLAB解差分方程y(n)-0.8y(n-1)=x(n)

a=0.8;

ys=1;

%设差分方程系数a=0.8,初始状态:

y(-1)=1

xn=[1,zeros(1,30)];

%x(n)=单位脉冲序列,长度N=31

B=1;

A=[1,-0.8];

%差分方程系数

xi=filtic(B,A,ys);

%由初始条件计算等效初始条件的输入序列xi

yn=filter(B,A,xn,xi);

%调用fiter解差分方程,求系统输出信号y(n)

n=0:

length(yn)-1;

stem(n,yn,'

.'

title('

时域波形图)'

);

xlabel('

n'

ylabel('

y(n)'

程序中取查分方程系数a=0.8时,得到系统输出y(n)如图1.4.1(a)所示,与例1.4.1的解析递推结果完全相同。

如果令初始条件y(-1)=0(仅修改程序中ys=0),则得到系统输出y(n)=h(n),如图1.4.1(b)所示。

(a)(b)

图(a)为a=0.8,y(-1)=1时,系统输出时域波形图,图(b)为a=0.8,y(-1)=0时,系统输出时域波形图。

四.设计代码及结果

MATLAB源程序

源程序如下

%1.m:

%初始状态:

%调用filter解差分方程,求系统输出信号y(n)

%n的取值范围

)%画出时域波形图

)%x轴、y轴分别代表n,x(n)

n=-5:

5;

xn=0.5.^n;

%xn=0.5.^n

stem(n,xn,'

fill'

),gridon%画出时域波形图

),ylabel('

x(n)'

),title('

时域波形图'

)%x轴、y轴分别代表n,x(n)

%n的取值范围

a=0.5;

%设a=0.5

xen=a*[a.^n+a.^(-n)];

%xen=a*[a

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1