第三节 线性常系数差分方程
本章第二节介绍了一个信号通过一个线性非时变系统,产生的输出可用输入信号与系统单位冲激响应的线性卷积来表示。本节将介绍输入信号与输出信号之间关系的另一种表示方法——线性常系数差分方程。
一、线性常系数差分方程及其稳定性
假设一个递推系统的输入——输出方程为
其中,a为常数,初始条件y(-1)非0,现求解n≥0时,y(n)的值。推导如下:
式(2-15)给出的系统输出包括两部分:第一项称为零输入响应,即对所有的n,输入信号均为0时的输出;第二项称为零状态响应,即当y(-1)=0时的输出,或者解释为系统的初始状态为零时的输出。
由上述可归纳线性常系数差分方程的一般形式为
或
式中,N为差分方程的阶数或系统的阶数。
本章第二节介绍了因果稳定系统,由此,读者不难联想线性常系数差分方程是否因果稳定。根据因果系统的定义,很容易证明式(2-16)或式(2-17)的系统是因果的。稳定性必须由输入信号的有界性和初始值的有界性决定,例如判断式(2-15)所描述系统的稳定性如下:
如果n有限,|y(-1)|和Mx有限,则系统有界。但是,当n→∞时,只有|a|<1且|y(-1)|和Mx有限时,系统才有界。由此可见,线性常系数差分方程是否稳定需细心观察推导才能确定。
二、线性常系数差分方程的求解
线性常系数差分方程的求解方法可归纳为下面三种:
(1)经典解法。这类方法类似模拟系统中求微分方程的解法,过程较复杂,这里不作介绍。
(2)递推法。此方法简单,适用于计算机求解,在前面的例子中已有介绍。
(3)变换域法。将时域转换到z域中求解,方法简单易行,第五章将详细说明。
本节重点讨论MATLAB求解差分方程的方法:
(1)h=impz(b,a,n),impz函数可计算出系统在位置变量n处的单位脉冲响应h(n)。其中,b=[b0,b1,…,bM]表示差分方程式(2-17)中x(n)的系数向量,a=[a0,a1,…,aN]表示y(n)的系数向量。
(2)y=filter(b,a,x),filter函数可用来计算系统在输入信号为x时的输出信号y。向量b和a的含义与(1)相同。下面举例说明以上两个函数的用法。
例2-8 已知差分方程y(n)-y(n-1)+0.9y(n-2)=x(n)。
(1)计算并画出n=-10,-9,…,90时的单位脉冲响应h(n)。
(2)计算并画出n=-10,-9,…,90时的单位阶跃响应s(n)。
(3)由(1)中的h(n)确定系统的稳定性。
解:(1)MATLAB脚本如下:
(2)使用stepseq函数,见本章第一节的内容。MATLAB脚本如下:
(3)根据稳定性的定义,当所有n处的h(n)都小于∞时,该系统为稳定系统。但当n能取到∞时,无法计算出所有的h(n),也就无法确定系统是否稳定。换一种思路,通过观察单位脉冲响应h(n)的图形,发现当n>90以后,h(n)逐渐趋于零,说明随着n值的增大,h(n)趋于稳定。也可以利用MATLAB软件编程计算:
上述求和结果即为∑h(n),说明系统是稳定的。(1)、(2)源码生成的图形如图2-14所示。
图2-14 例2-8结果(1)、(2)生成图