差分方程与滤波.ppt
第4章 差分方程与滤波,4.1 滤波基础知识4.2 模拟滤波器和数字滤波器4.3 线性、时不变、因果系统4.4 差分方程4.5 叠加原理4.6 差分方程流图4.7 脉冲响应 4.8 阶跃响应,非递归差分方程递归差分方程,返回,roll-off 滚降 gain 增益pass band 通带 stop band 阻带bandwidth 带宽 linear system 线性系统superposition 叠加原理 time-invariant 时不变causal system因果系统 difference equation差分方程filter coefficient滤波器系数recursive filter 递归滤波器nonrecursive filter 非递归滤波器 finite word length effect有限字长效应impulse response 脉冲响应infinite impulse response(IIR)无限脉冲响应finite impulse response(FIR)有限脉冲响应moving average filter 滑动平均滤波器step response 阶跃响应,4.1 滤波基础知识,滤波器是以特定方式改变信号的频率特性,从而变换信 号的系统。例:低通滤波器减少磁带中的高频杂音分量,保留中、低频率分量。高通滤波器可用于声纳系统中消除信号中船和海的 低频噪声,来识别目标。带通滤波器可用于数字电话系统中双音多频信号的 解码。如图 4.1 带阻滤波器除特定频带外,允许所有频率通过。,图 4.1,理想滤波器的形状是矩形,图 4.2 给出非理想滤波器。图 4.2,滤波器的阶数越高,它的滚降(roll-off)越快,也就越逼近理想情况。增益高的频率范围,信号可以通过,称为滤波器的通带。增益低的频率范围,滤波器对信号有衰减或阻塞作用,称滤波器的阻带。增益为最大值的1 2=0.707所对应的频率为滤波器截止频率增益通常用分贝(dB)表示。增益(dB)=20log(增益)增益为 0.707 时对应-3dB,因此截止频率常被称为-3dB。它们定义了滤波器的宽带。对于低通滤波器宽带是从0-3dB 对于高通滤波器宽带是从-3dB采样频率的一半对于带通滤波器带宽是截止频率之间的频率距离,FIGURE 4-3 Band pass filter for Example 4.1.,Joyce Van de VegteFundamentals of Digital Signal Processing,Copyright 2002 by Pearson Education,Inc.Upper Saddle River,New Jersey 07458All rights reserved.,FIGURE 4-4 Bandwidth calculation for Example 4.1.,Joyce Van de VegteFundamentals of Digital Signal Processing,Copyright 2002 by Pearson Education,Inc.Upper Saddle River,New Jersey 07458All rights reserved.,低通滤波器可以平滑信号的突变高通滤波器可以强化信号的锐变,FIGURE 4-5 Effects of low and high pass filters.,Joyce Van de VegteFundamentals of Digital Signal Processing,Copyright 2002 by Pearson Education,Inc.Upper Saddle River,New Jersey 07458All rights reserved.,FIGURE 4-5 Continued.,Joyce Van de VegteFundamentals of Digital Signal Processing,Copyright 2002 by Pearson Education,Inc.Upper Saddle River,New Jersey 07458All rights reserved.,FIGURE 4-5 Continued.,Joyce Van de VegteFundamentals of Digital Signal Processing,Copyright 2002 by Pearson Education,Inc.Upper Saddle River,New Jersey 07458All rights reserved.,图4.6说明不同方式滤波器对语言滤波器可以获得不同频率分量(自学),返回,图 4.6,4.2模拟滤波器和数字滤波器,模拟滤波器是由电器元件构成的电路,滤波器特性对所用部件值非常敏感,对外界影响也很敏感,重新设计就 要新设计的电路,滤波器介数增加时,所需部件也就越多。数字滤波器用软件实现,很少用硬件,滤波软件只是一系列程序指令,滤波器的性能由一系列数字系数来确定,只要重新确定滤波程序的系数就可重新设计数字滤波器。数字滤波器程序实现有两种主要方式。1、用滤波器差分方程,计算滤波器的输出。2、用卷积过程计算输出。,返回,4.3 线性、时不变、因果系统,线性系统:满足叠加原理。输入 x1 的输出为 y1,输入 x2 的输出为 y2,则当输入为两个输入(x1,x2)之和时,输出为两个输出(y1,y2)之和。X1+x2 y1+y2ax1+bx2 ay1+by2 a,b为权系数时不变系统:什么时间加上输入,输出都是相同的;换 句话说 输入延迟,相同的量。,图 4.7,图 4.8因果系统:一个系统在任何时刻的输出只决定于现在的 输入以及过去的输入,而与以后的输入关。也称为不可预测的系统,因为系统的输出无法预测未来的输入值,返回,4.4 差分方程,差分方程(difference equation)可用来描述线性时不变,因果数字滤波器。用x表示滤波器的输入,用y表示滤波器的输出。xn表示在输入,每个值之间有一采样周期延迟xn-1表前一输入,同样的,输出对应为ynxn-2表再前一输入,yn-1,yn-2差分方程一般表示为:a0yn+a1yn-1+aNyn-N=b0 xn+b1xn-1+bMxn-M(1)akyn-K=gkxn-K(2)Ak,bk 为权系数,称为滤波器系数。N为所需过去输出的个数,M 为所需输入的个数。,NK=1,MK=0,将 yn 前变为 1,即 a0 为1,所有系数除以a0,得:yn=-akyn-K+bkxn-K(3)表明了怎样从过去的输出,现在的输入和以前的输入计算滤波器每一个新输出。数字系统依赖于输入和过去的输出时,称其为递归滤波器(3式)。当数字系统仅依赖于输入而不依赖过去的输出,称 其为非递归滤波器。(4)式 yn=bkxn-K(4),NK=1,MK=0,MK=0,下面学习差分方程的使用:例 4.2 一个滤波器的差分方程为:yn=0.5yn-1+xn a.确定所有系数 ak,bk。b.它是递归滤波器还是非递归滤波器?c.如果输入 xn(如图 4.9 所示),从 n=0 开始求出前 12 个输出。图 4.9,解:,a.将差分方程重新改写,输出放在左侧,输入放在右侧yn 0.5yn-1=xn 系数的值很易确定,参照式(4.1)滤波器的系数为:a0=1.0,a1=-0.5 及 b0=1.0,除 a0,a1,b0 外其他所有系数为零。,b.由于输出 yn 取决于过去的输出 yn-1,所以数 字滤波器是递归滤波器。,c.输出可以从 n=0 开始,通过反复计算式(4.5)求出。对于 n=0 这种情况,计算时需要输出 y-1。本书 中,假定数字滤波器是因果的,这就意味着直到第一 个输入不为零时,输出才开始变化。此例中为 n=0 所以,y0 以前的所有输出可以假定为零。Y0 计算出来以后,可以计算 y1。前 12 个输出为:,y0=0.5y-1+x0=0.5 x(0.000 0)+1.0=1.000 0y1=0.5y 0+x1=0.5 x(1.000 0)+1.0=1.500 0y2=0.5y1+x2=0.5 x(1.500 0)+1.0=1.750 0y3=0.5y 2+x3=0.5 x(1.750 0)+1.0=1.875 0y4=0.5y 3+x4=0.5 x(1.875 0)+1.0=1.937 5y5=0.5y 4+x5=0.5 x(1.937 5)+1.0=1.968 8y6=0.5y 5+x6=0.5 x(1.968 8)+1.0=1.984 4y7=0.5y 6+x7=0.5 x(1.984 4)+1.0=1.992 2y8=0.5y 7+x8=0.5 x(1.992 2)+1.0=1.996 1y9=0.5y 8+x9=0.5 x(1.996 1)+1.0=1.998 0y10=0.5y 9+x10=0.5 x(1.998 0)+1.0=1.999 0y11=0.5y 10+x11=0.5 x(1.999 0)+1.0=1.999 5,输出示于图 4.10。由于输入为一个恒定值,输出最终也趋近一个恒值。,图 4.10,例 4.3 yn=0.5xn 0.3xn-1 a.确定所有系数 ak,bk。b.它是递归滤波器还是非递归滤波器差分方程?c.输入 xn=sin(n2/9)un,求出前 20 个输出。解:,a.a0=1.0,b0=0.5 及 b1=-0.3。,由于输出不取决于过去的输出,所以数字滤波器是非 递归滤波器,c.由于输入中有 un,所以 n=0 以前的输入为零。表 4.1 给出了输入和输出的前 20 个值。图 4.11给 出了输入和输出的图形。注意,虽然两个信号的幅度 和相位不同,但它们均具有正弦特性和相同的数字周期。,表 4.1,图 4.11,n-1 0 1 2 3 4 5xn 0.000 0.000 0.643 0.985 0.866 0.342-0.342yn 0.000 0.000 0.321 0.300 0.138-0.089-0.274 n 6 7 8 9 10 11 12xn-0.866-0.985-0.643 0.000 0.643 0.985 0.866yn-0.330-0.223-0.026 0.193 0.321 0.300 0.138 n 13 14 15 16 17 18 19xn 0.342-0.342-0.866-0.985-0.643 0.000 0.643yn-0.089-0.274-0.330-0.233-0.026 0.193 0.321,返回,4.5 叠加原理,几个输入同时加到滤波器上,此时滤波器的响应要应用叠加原理,当滤波器是线形时,多个输入情况较容易处理。用两种方法:1)分别计算每一输入的输出,然后把输出加起来得到总的输出信号。2)先把所有输入加起来,然后求滤波器对这个和信号的响应。,例 4.4 滤波器用差分方程描述为:yn=xn+0.5xn-1两个输入(如图 4.12所示)加到滤波器上,它们分别是:x1n=2unX2n=sin un求出两个信号共同产生的前 20 个输出,并画出图。图 4.12,N 7,解:输入为两部分:x1n=2un,x2n=sinn/7)un。每个输入所对应的输出y1n,y2n可以单独求出,然后把两个输出相加得到总的输出。注意输入在n=0之前为零。计算出的前20个输出如表4.2和图4.13所示。比如n=3的情况,表4.2中用黑体表示。X1n的输出y1n由下式给出:y1n=x1n+0.5x1n-1这样,y13=x13+0.5x12=2+0.5*(2)=3。X2n的输出y2n为:y2n=x2n+0.5x2n-1,这样,y23=x23+0.5x22=0.975+0.5*(0.782)=1.37,两个信号总的输出为y1n+y2n,对于n=3,y13+y23=03+1.37=4.37.把两个输入信号加起来同样可以得到相同的结果。在加黑的行上y3=x3+0.5x2=2.975+0.5*(2.782)=4.37。实际上,输出列y1n+y1n可以直接从输入之和列x1n+x2n计算得到,而不需要经过中间y1n,y2n两列。,图 4.13,表 4.2,n x1n x2n xn=x1n+x2n y1n y2n yn=y1n+y2n 0 2 0.00 2.00 2 0.00 2.00 1 2 0.434 2.434 3 0.43 3.43 2 2 0.782 2.782 3 1.00 4.00 3 2 0.975 2.975 3 1.37 4.37 4 2 0.975 2.975 3 1.46 4.46 5 2 0.782 2.782 3 1.27 4.27 6 2 0.434 2.434 3 0.82 3.82 7 2 0.000 2.000 3 0.22 3.22 8 2-0.434 1.566 3-0.43 2.57 9 2-0.782 1.218 3-1.00 2.0010 2-0.975 1.025 3-1.37 1.6311 2-0.975 1.025 3-1.46 1.54 2-0.782 1.218 3-1.27 1.7313 2-0.434 1.566 3-0.82 2.1814 2 0.000 2.000 3-0.22 2.7815 2 0.434 2.434 3 0.43 3.4316 2 0.782 2.782 3 1.00 4.0017 2 0.975 2.975 3 1.37 4.37 18 2 0.975 2.975 3 1.46 4.4619 2 0.782 2.782 3 1.27 4.27,返回,4.6 差分方程流图,1、非递归差分方程(a)延迟单元 xn 延迟 xn-1(b)系数乘法器 xn bk bkxn x1n(c)加法器+x1n+x2n x2n,前面所讲的一般非递归差分方程,可用图 4.15 表示。,图 4.15,有限字长效应:由于处理器有效比特数的有限而产生的影响(量化误差)。采取措施减小这些影响的方法:把高阶滤波器分为若干个二阶滤波器块,每块两个延迟单元,然后将这些滤波器块级联起来,这样平均来说每一个二阶滤波器节的系数比原来滤波器系数大,这样对量化误差敏感程度较低。,例 4.5 画出下列差分方程的流图:yn=0.5xn+0.4n-1 0.2xn-2解,以上差分方程的流图如图 4.17 所示。,图 4.17,例 4.6 写出图 4.18 流图的差分方程。解:,xn 的乘数为 1,无 xn-1 项,差分方程是:yn=xn 0.3xn-2+0.7xn-3,图 4.18,例 4.7 写出图 4.19 级联流图的差分方程。解:,第一级的差分方程为:y1n=x1n 0.1xn-1+0.2x1n-2,第二级的差分方程为:y2n=x2n+0.3x2n-1+0.1x2n-2,图 4.19,第三级的差分方程为:y3n=x3n 0.4x3n-1第一级的输出等于第二级的输入,x2n=y1n;第二级的输出等于第三级的输入;x3n=y2n,可得级联系统总的输入 y3n。从第三级的差分方程开始,代入第二级的差分方程有:y3n=x3n 0.4x3n-1=y2n 0.4y2n-1=(x2n+0.3x2n-1+0.1x2n-2)-0.4(x2n-1+0.3x2n-2+0.1x2n-3)=x2n 0.1x2n-1 0.02x2n-2 0.04x2n-3,代入第一级的差分方程有:y3n=x2n 0.1x2 n-1 0.02x2 n-2 0.04x2 n-3=y1 n 0.1y1 n-1 0.02y1 n-2 0.04y1 n-3=(x1 n 0.1x1 n-1 0.02x1 n-2)-0.1(x1 n-1 0.1x1 n-2 0.02x1 n-3)-0.02(x1 n-2 0.1x1 n-3 0.02x1 n-4)-0.04(x1 n-3 0.1x1 n-4 0.02x1 n-5)=x1 n 0.2x1 n-1 0.19x1 n-2-0.058x1 n-3-0.008x1n-5 得到总的滤波器的差分方程。,返回,2、递归差分方程1)直接 1 型实现 对于一般递归滤波器的差分方程(式 4.3),也可画出其流图(图 4.20)图 4.20,例 4.8 画出如下差分方程所描述的递归数字滤波器的直接 1 型流图:yn+0.5yn-2=0.8xn+0.1xn-1-0.3xn-2解:,从方程可知 a0=1.0,a1=0.5,b0=0.8,b1=0.1 和b2=-0.3。将差分方程重新排列如下:yn=-0.5yn-2+0.8xn+0.1xn-1 0.3xn-2可以画出流图如图 4.21。,图 4.21,例 4.9 写出如下流图的差分方程:图 4.22解:,差分方程为:yn=0.1yn-1 0.3yn-2+0.6yn-3 0.8xn-1+0.2xn-3,2)直接 2 型实现 它采用中间信号 wn,代替过去输入和输出,记录滤波器历史的重要信息。定义直接 2 型实现的两个方程为(附录 C P599有推导)wn=xn akwn-k yn=bkwn-k两者结合起来构成图 4.23 所示的直接 2 型流图,它减小了过去输入和输出状态的储存,直接 2 型较直接 1 型省存储器。,NK=1,NK=0,图 4.23,颠倒图 4.23中信息流向,得到转置直接 2 型(如图4.24)。,图 4.24,例 4.10 求出图 4.25 所示流图的滤波器差分方程:图 4.25解:,最下面的加法器输出为 0.1xn-0.3yn,延迟一个单位得到 0.1xn-1 0.3yn-1。中间的加法 0.8xn,最后得到:yn=0.1xn-2-0.3yn-2+0.2xn-1-0.2yn-1+0.8xn,即得所示滤波器的差分方程。表示成更一般的形式为:yn=-0.2yn-1 0.3yn-2+0.8xn+0.2xn-1+0.1xn-2,返回,4.7 脉冲响应,脉冲响应是滤波器对脉冲输入的响应。数字滤波器的差分方程可以用来计算滤波器的脉冲响应,输入是脉冲函数,则差分方程的输入 xn 用 n代替,脉冲响应用 hn 表示。脉冲响应反映了滤波器的基本特性,由于所有数字信号可以由脉冲函数构成,所以脉冲响应可用来求各种输入的输出。,例 4.11 对下列差分方程求出脉冲响应的前六个值。yn 0.4yn-1=xn xn-1解:,首先,用 n 代替 xn,hn 代替 yn,有:hn 0.4hn-1=n-n-1 或 hn=0.4hn-1+n-n-1从 n=0 开始:h0+0.4h-1+0-1脉冲函数的值已知:n=0 时,它为 1;在其他 n 不等于零处,它为零。假定滤波器是因果系统,几脉冲响应在n=0 之前为零。因此:,h0=0.4*(0.0)+1.0 0.0=1.0注意-1=0 是函数 n 当 n=-1 是的值,而非因果性的结果。随后的脉冲响应为:h1=0.4h0+1-0=0.4*(1.0)+0.0-1.0=-0.6 h2=0.4h1+2-1=0.4*(-0.6)+0.0-1.0=-0.24 h3=0.4h2+3-2=0.4*(-0.24)+0.0-1.0=-0.096 h4=0.4h3+4-3=0.4*(-0.096)+0.0-1.0=-0.038 4 h5=0.4h4+5-4=0.4*(-0.038 4)+0.0-1.0=-0.015 36,脉冲函数和脉冲响应示于下图:图 4.28(b)中 即使 n=0 以后没有输入,虽然脉冲响应值越来越小,但决不会下降到 0,这一特性常为递归滤波器所具有。新的输出取决于过去的输出,所以脉冲响应不会消失,这个响应称为无限脉冲响应(IIR),例 4.12 求出下列滤波器脉冲响应的前六个采样值。yn=0.25(xn+xn-1+xn-2+xn-3解:,用n 代替 xn,hn 代替 yn,有:hn=0.25(n+n-1+n-2+n-3这样:h0=0.25(0+-1+-2+-3)=0.25*(1.0+0.0+0.0+0.0)=0.25 h1=0.25(1+0+-1+-2)=0.25*(0.0+1.0+0.0+0.0)=0.25 h2=0.25(2+1+0+-1)=0.25*(0.0+0.0+1.0+0.0)=0.25,h3=0.25(3+2+1+0)=0.25*(1.0+0.0+0.0+1.0)=0.25 h4=0.25(4+3+2+1)=0.25*(1.0+0.0+0.0+0.0)=0.0 h5=0.25(5+4+3+2)=0.25*(1.0+0.0+0.0+0.0)=0.0显然,当 n 4 时,脉冲响应的所有采样值均为零,图 4.29(a)给出了脉冲函数输入和脉冲响应。,图 4.29(a)(b)中,脉冲响应在有限个非零采样值之后下降到零,这种响应称为有限脉冲响应(FIR),是非递归滤波器的特性。非递归滤波器在计算每一个新输出时,只要用 M 个过去输入,脉冲响应变为零所需要的采样点数取决于计算中所用到的过去输入个数。,图 4.29(b)中,它的脉冲响应有 4 个,每个辐度为 1/4,从差分方程中可看出,这种脉冲响应形式具有对输入信号每 4 个采样值进行平均的作用。,具有这种脉冲响应形式的滤波器,被称为滑动平均 滤波器。,图 4.29(b),对于非递归滤波器,脉冲响应的采样值给出了差分方程的系数。如图 4.29(b)式 yn=0.25(xn+xn-1+xn-2+xn-3中的差分方程系数。,图 4.29(b),具有 M 个非零采样值的脉冲响应 hn,可表示为脉冲函数之和 hn=h0n+h1n-1+hMn-M 非递归差分方程脉冲响应 hn=b0n+b1n-1+bMn-M 两式相等 bK=hk 非递归差分方程 yn=b0 xn+b1xn+bMxn-M 可改写成 yn=h0 xn+h1xn-1+hMxn-M,例 4.13 写出图 4.30 所示脉冲响应的滤波器差分方程。图 4.30解:,脉冲响应可以写成脉冲函数之和:hn=n+0.8n-1+0.2n-2,这样,差分方程具有类似的结构:yn=xn+0.8xn-1+0.2xn-2,由于脉冲响应中非零的采样点数有限,所以差分方程具有有限脉冲响应(FIR)特性,例:4.14 图 4.31 所示信号 xn 加到线形滤波器的输入 端,滤波器的脉冲响应 hn 如图 4.32 所示。将 入信号分成脉冲函数并求每一个的响应,然后求滤 波器的输出 yn。图 4.31 图 4.32,解:,图 4.31 所示信号 xn 可以表示成:xn=3n+2n-1+n-2,正如式和图所示,信号 xn 由不同幅度的三个脉冲函数组成:3n,2n-1 及n-2。由于脉冲 n 的响应是脉冲响应 hn,所以 3n 的响应是 3hn,类似地,2n-1 的响应是 2hn-1,n-2 的响应是hn-2。,这些函数画于图 4.33,正如所料,左面的三个脉冲相加后构成左下方的输入信号。由于滤波器是线形的,输入端三个脉冲函数的和将产生三个脉冲响应之和的输出。这个“和”示于图的右下方,关系为:,yn=3hn+2hn-1+hn-2,图 4.33,返回,4.8 阶跃响应,阶跃响应是滤波器对单位阶跃函数的响应阶跃函数为 un,阶跃响应记为 sn。求解滤波器阶跃响应的两种方法,直接用差分方程求脉冲响应之和(线形滤波器),例:4.15 求滤波器的阶跃响应:yn 0.2 yn-2=0.5xn+0.3xn-1解:,图 4.34(a)对于图 4.34(a)所示的阶跃函数输入 xn=un,输出 yn=sn 如下:sn 0.2 sn-2=0.5un+0.3un-1,这样 s0=0.2s-2+0.5u0+0.3u-1=0.2*(0)+0.5*(1)+0.3*(0)=0.5 s1=0.2s-1+0.5u1+0.3u0=0.2*(0)+0.5*(1)+0.3*(1)=0.8 s2=0.2s0+0.5u2+0.3u1=0.2*(0.5)+0.5*(1)+0.3*(1)=0.9 s3=0.2s1+0.5u3+0.3u2=0.2*(0.8)+0.5*(1)+0.3*(1)=0.96 s4=0.2s2+0.5u4+0.3u3=0.2*(0.9)+0.5*(1)+0.3*(1)=0.98 s5=0.2s3+0.5u5+0.3u4=0.2*(0.96)+0.5*(1)+0.3*(1)=0.992,s6=0.2s4+0.5u6+0.3u5=0.2*(0.98)+0.5*(1)+0.3*(1)=0.996 s7=0.2s5+0.5u7+0.3u6=0.2*(0.992)+0.5*(1)+0.3*(1)=0.998 4滤波器的阶跃响应示于图 4.34(b)。,图 4.34(b),例:4.16 滤波器:yn 0.2yn-2=0.5xn+0.3xn-1 的脉冲响应也可以通过:hn 0.2hn-2=0.5n+0.3n-1从例 4.15 得到。hn 的值位于表 4.3 的第二列,通过求累积和,可以从脉冲响应得到阶跃响应,如图 4.35 所示。即每个阶跃响应的值是所有到 n 的脉冲响应的和。例如,s2 为 h0+h1+h2=0.5+0.3+0.1=0.9,图 4.35,返回,