数字信号处理及MATLAB实现
上QQ阅读APP看书,第一时间看更新

第三节 线性常系数差分方程

本章第二节介绍了一个信号通过一个线性非时变系统,产生的输出可用输入信号与系统单位冲激响应的线性卷积来表示。本节将介绍输入信号与输出信号之间关系的另一种表示方法——线性常系数差分方程。

一、线性常系数差分方程及其稳定性

假设一个递推系统的输入——输出方程为

其中,a为常数,初始条件y(-1)非0,现求解n≥0时,yn)的值。推导如下:

式(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(ban),impz函数可计算出系统在位置变量n处的单位脉冲响应hn)。其中,b=[b0b1,…,bM]表示差分方程式(2-17)中xn)的系数向量,a=[a0a1,…,aN]表示yn)的系数向量。

(2)y=filter(bax),filter函数可用来计算系统在输入信号为x时的输出信号y。向量ba的含义与(1)相同。下面举例说明以上两个函数的用法。

例2-8 已知差分方程yn)-yn-1)+0.9yn-2)=xn)。

(1)计算并画出n=-10,-9,…,90时的单位脉冲响应hn)。

(2)计算并画出n=-10,-9,…,90时的单位阶跃响应sn)。

(3)由(1)中的hn)确定系统的稳定性。

:(1)MATLAB脚本如下:

(2)使用stepseq函数,见本章第一节的内容。MATLAB脚本如下:

(3)根据稳定性的定义,当所有n处的hn)都小于∞时,该系统为稳定系统。但当n能取到∞时,无法计算出所有的hn),也就无法确定系统是否稳定。换一种思路,通过观察单位脉冲响应hn)的图形,发现当n>90以后,hn)逐渐趋于零,说明随着n值的增大,hn)趋于稳定。也可以利用MATLAB软件编程计算:

上述求和结果即为∑hn),说明系统是稳定的。(1)、(2)源码生成的图形如图2-14所示。

图2-14 例2-8结果(1)、(2)生成图