第5章数字滤波器设计基础和实现结构 滤波器的主要作用是让有用信号尽可能无衰减地通过,对无用信号尽可能大地衰减。最早使用的滤波器是1917年美国和德国科学家发明的由电感和电容构成的LC模拟滤波器,随后由电阻、电容和电感等元件组成的模拟滤波器广泛应用于各种信号处理系统中。模拟滤波器处理速度快,处理带宽宽,无需ADC和DAC器件,但稳定性及精度比较差,可重复性不强,抗干扰能力弱。数字滤波器通过对输入信号进行数值运算的方法来实现滤波,具有比模拟滤波器精度高、稳定性好、体积小、质量轻、灵活、不要求阻抗匹配,以及能实现模拟滤波器无法实现的特殊滤波功能等优点。自20世纪60年代起,数字滤波器开始在信号处理中大显身手。 在数字信号处理中,如果一个离散时间系统是用来对输入信号做滤波处理,那么该系统称为数字滤波器(DF)。一般来说,数字滤波器可分为无限长脉冲响应滤波器和有限长脉冲响应滤波器。这两种数字滤波器网络结构和设计方法差异很大,FIR数字滤波器可以对给定的频率特性直接进行设计,而IIR数字滤波器目前最通用的方法是利用成熟的模拟滤波器设计方法来进行设计。 信号处理中的数字滤波器设计与实现一般包括如下内容: ①在具体的应用背景中提取出待设计数字滤波器的性能指标,并选择适当的滤波器类型; ②采用相应的方法设计得到数字滤波器的系统函数或单位脉冲响应; ③确定适当的数字滤波器网络结构实现形式; ④通过软硬件编程实现滤波器功能。本章对数字滤波器的基本概念、性能指标以及IIR数字滤波器和FIR数字滤波器的实现结构进行介绍,IIR数字滤波器和FIR数字滤波器的具体设计方法将在第6、7章中分别介绍,软硬件实现方法将在第10章中介绍。 5.1数字滤波器的基本概念 5.1.1滤波的概念 在信号处理过程中,处理的信号往往混有噪声或干扰,从接收信号中消除或减弱噪声和干扰是信号传输和处理中十分重要的问题。根据有用信号和噪声的不同特性,消除或减弱噪声和干扰,提取有用信号的过程称为滤波。实现滤波功能的系统称为滤波器。 图5.1.1滤波过程 图5.1.1是滤波过程的示意图。如图所示,滤波器是可以将所需要的信号和干扰分离。例如,需要滤除声音信号中的噪声或干扰,就要设计一个合适的滤波器,它只能通过所需要的信号。但实际上,只有很少的情况中能够完全滤除噪声或干扰; 大多数情况下,只能折中处理,滤除绝大多数(并非全部)噪声或干扰,同时保留尽可能多的信号成分。 数字滤波器是通过数值运算来实现的,一般来说,数字滤波器是线性时不变系统。因此,描述线性时不变系统的工具,如线性常系数差分方程、单位脉冲响应、系统函数、频率响应等,均可以描述数字滤波器。 1. 线性常系数差分方程 差分方程可以描述数字滤波器的输入与输出关系。若用x(n)表示数字滤波器的输入信号,y(n)表示滤波器的输出信号,则一般意义上,数字滤波器可以用如下线性常系数差分方程来描述: y(n)=∑Mm=0bmx(n-m)-∑Nm=1amy(n-m)(5.1.1) 式中: am和bm均为常数,并称am和bm为该数字滤波器的系数。 通过设置不同的数字滤波器系数,可以从相同的输入信号x(n)中得到不同的输出y(n)。也就是说,数字滤波器的滤波性能由滤波器系数决定,数字滤波器设计也就是主要设计满足滤波需求的数字滤波器系数。 2. 系统函数H(z) 若用X(z)表示输入信号x(n)的Z变换,用Y(z)表示输出信号y(n)的Z变换,则数字滤波器的系统函数H(z)可以表示为 H(z)=Y(z)X(z)=∑Mm=0bmz-m1+∑Nn=1anz-n(5.1.2) 通常情况下,N≥M。对于IIR滤波器来说,H(z)的极点个数是滤波器阶数。对于FIR滤波器来说,H(z)的零点个数是滤波器阶数。显然,IIR滤波器的阶数为N,FIR滤波器的阶数为M。滤波器阶数越高,表明滤波器的系数越多,在滤波时运算复杂度也越高。 3. 单位脉冲响应h(n) 单位脉冲响应h(n)是滤波器输入为单位脉冲序列δ(n)时滤波器的输出。给定数字滤波器的单位脉冲响应h(n),则滤波器的输入输出关系可以用如下卷积形式描述: y(n)=x(n)*h(n)=∑∞m=-∞h(m)x(n-m)(5.1.3) 单位脉冲响应能够非常方便地描述数字滤波器,一方面是因为输入信号x(n)可以方便地表示为多个单位脉冲序列的加权组合形式,另一方面是因为单位脉冲序列的频谱在所有频率上都是相等的。 4. 频率响应H(ejω) 频率响应描述了不同频率信号通过滤波器后幅度和相位的变化情况。频率响应H(ejω)是系统函数H(z)在单位圆上的取值,与单位脉冲响应h(n)是离散时间傅里叶变换关系,可以表示为 H(ejω)=H(z)|z=ejω=∑∞n=0h(n)e-jωn=|H(ejω)|ejφ(ω)(5.1.4) 式中,|H(ejω)|表征滤波器的幅频特性; φ(ω)表征滤波器的相频特性。 5.1.2滤波器的分类 滤波器的种类很多,总的来说可以分成两大类,即经典滤波器和现代滤波器。经典滤波器,即选频滤波器,是假定输入信号中的有用成分和希望去除的成分各自占有不同的频带。这样,当输入信号通过一个线性系统(滤波器)后可将欲去除的成分有效地去除。如果信号和噪声的频谱相互重叠,那么经典滤波器将无能为力。现代滤波器的理论建立在随机信号处理的理论基础上,将信号和噪声都视为随机信号,利用它们的统计特征(如自相关函数、功率谱等)导出最佳的估值算法,从干扰中提取有用信号。现代滤波器理论源于维纳在20世纪40年代及其以后的工作,因此维纳滤波器便是这一类滤波器的典型代表。此外还有卡尔曼滤波器、线性预测器、自适应滤波器等。本书只讨论经典滤波器。 根据滤波功能不同,可以将经典滤波器分为低通(LP)、高通(HP)、带通(BP)、带阻(BS)滤波器。这些理想数字滤波器的幅频特性曲线如图5.1.2所示。值得指出的是,由于理想滤波器的单位脉冲响应均是非因果且是无限长的,因此是不可能实现的。在实际工作中,要求设计的滤波器必须是物理可实现且稳定的,只能尽可能逼近理想滤波器。此时,这些理想滤波器可作为逼近的标准。另外需要注意的是,数字滤波器的幅频特性是以2π为周期的,在0~2π的频率范围内,ω=0是零频率,而ω=π是最高频率。 图5.1.2理想数字滤波器的幅频特性曲线 从实现的网络结构上考虑,可以将数字滤波器分成IIR数字滤波器和FIR数字滤波器。 IIR数字滤波器指其单位脉冲响应h(n)是无限长的,对于一个因果IIR数字滤波器来说,其单位脉冲响应h(n)取值范围为n≥0。 IIR数字滤波器的系统函数可用式(5.1.2)表示,一般是一个关于z-1的有理分式。根据式(5.1.1),滤波器n时刻的输出y(n)不仅与n时刻的输入x(n)以及n时刻以前的输入信号x(n-1),x(n-2),…,x(n-M)等有关,还与n时刻以前的输出信号y(n-1),y(n-2),…,y(n-N)等有关。其结构上存在反馈支路,属于递归型结构。 而FIR数字滤波器指其单位脉冲响应h(n)是有限长的,即h(n)只在某一有限的时间段内的取值是不为0的,在这一时间段之外的取值全为0。 FIR数字滤波器的系统函数可以表示为一个关于z-1的多项式,即式(5.1.2)中am=0,其差分方程可以表示为 y(n)=∑Mm=0bmx(n-m)(5.1.5) 从式(5.1.5)可以看出,滤波器n时刻的输出y(n)只与n时刻的输入x(n)以及n时刻以前的输入信号x(n-1),x(n-2),…,x(n-M)等有关。其结构上不存在反馈支路,属于非递归型结构。对于FIR数字滤波器来说,式(5.1.5)中bm对应于滤波器的单位脉冲响应h(n)的系数。 5.1.3数字滤波器的技术指标 滤波器设计首先需要根据具体的应用背景确定待设计数字滤波器的技术指标。数字滤波器的技术指标一般可以用幅频特性和相频特性指标来给出。设数字滤波器的频率响应为 H(ejω)=|H(ejω)|ejφ(ω)(5.1.6) 式中: |H(ejω)|表征幅频特性,φ(ω)表征相频特性。 幅频特性表示信号通过该滤波器后各频率成分衰减情况,而相频特性反映了各频率成分通过滤波器后在时间上的延时情况。因此,即使两个滤波器幅频特性相同,而相频特性不一样,对相同的输入,滤波器输出的信号波形也是不一样的。 1. 幅频特性指标 一个实际数字低通滤波器的幅频特性及技术指标如图5.1.3所示。与图5.1.2(a)所示的理想低通滤波器相比可以看出,实际的滤波器有明显的不同: 一是通带和阻带内不再平坦,都存在一定的波动; 二是在通带和阻带之间的切换不再是直线下降的而是有一个过渡带,幅频特性逐步从大变小。这是因为理想低通滤波器的幅频特性从通带到阻带之间有突变,将导致其物理上是不可实现的。为了物理上可实现,实际设计的滤波器在通带与阻带之间应有一定宽度的过渡带,以便允许幅频特性平滑地下降。同时,通带和阻带内不可能严格为1或0,应允许有一定的偏差,容许偏差的极限称为容限。 如图5.1.3所示,频段[0,ωp]称为通带,ωp称为通带截止频率,δp称为通带容限,在通带内幅频特性要求为 1-δp<|H(ejω)|≤1+δp,|ω|≤ωp(5.1.7) 图5.1.3数字低通滤波器的幅频特性曲线及技术指标 频段[ωs,π]称为阻带,ωs称为阻带截止频率,δs称为阻带容限,在阻带内幅频特性要求为 |H(ejω)|≤δs,ωs≤|ω|≤π(5.1.8) 通带容限δp和阻带容限δs描述了通带和阻带内幅频特性的波动程度。在工程应用中,这两个参数常用其dB(分贝)值来描述,通带内允许的最大衰减用αp表示,阻带内允许的最小衰减用αs表示,即 αp=20lg|H(ej0)||H(ejωp)|=-20lg|H(ejωp)|=-20lg(1-δp)(dB)(5.1.9) αs=20lg|H(ej0)||H(ejωs)|=-20lg|H(ejωs)|=-20lgδs(dB)(5.1.10) 式中均假定|H(ej0)|归一化为1。 特别地,当|H(ejωc)|=2/2时,其对应的衰减值为 αc=20lg|H(ej0)||H(ejωc)|=-20lg|H(ejωc)|=-20lg22=3(dB)(5.1.11) 因此,称频率ωc为3dB截止频率。 图5.1.4画出了同一滤波器的幅频特性绝对值和相对值(dB值)曲线。一般来说,在工程应用中通常要求αs>40dB,即对噪声、干扰等无用信号的抑制作用要大于40dB,此时对应的幅频特性绝对值小于0.01。显然,此时图5.1.4(a)中显示的幅频特性绝对值曲线不便于观察阻带响应曲线(近似与零值坐标轴重合),而图5.1.4(b)清楚地显示出阻带-40dB以下的响应曲线,这样便于观察和描述滤波器频率响应特性。所以,在后面的滤波器设计中常用幅频特性的衰减dB值描述设计指标。 频段[ωp,ωs]称为过渡带,Δω=ωs-ωp表示过渡带宽,在这个过渡带内幅频特性平滑地从通带下降到阻带。对比理想滤波器,从理论上来说过渡带越窄越好。但从后续两章中IIR和FIR数字滤波器设计过程中可以看出,当通带和阻带指标不变时,过渡带越窄,要求的滤波器阶数越高,付出的代价也越高。 图5.1.4幅频特性和幅度衰减(dB)曲线的对比 2. 相频特性指标 根据式(5.1.6),数字滤波器的相频特性可以表示为 φ(ω)=arg[H(ejω)](5.1.12) 式中: arg[·]表示取相位操作。 数字滤波器的相频特性表征了输入信号各频率成分通过滤波器后在时间上的延时情况。一般来说,如果滤波器用于对相位要求不敏感的场合时,如语音通信等,设计滤波器可以只考虑幅频特性。而对于一些对输出波形有要求的应用场景,如波形传输、图像信号处理等,必须要同时考虑幅频和相频特性。此时,要求设计的滤波器除了具有所期望的幅频特性外,还应具有线性相位。关于线性相位的相关内容将在第7章中详细介绍。 5.1.4数字滤波器的网络结构 由式(5.1.1)可知,数字滤波器可以由延时器、加法器和乘法器三种基本运算单元通过一定的运算结构来实现,一般用方框图法和信号流图法描述。如图5.1.5(a)为三种基本运算单元的方框图,图5.1.5(b)为三种基本运算单元的信号流图。两种表示方法本质上是等效的,只是符号上有差异,用方框图表示较为明显直观,用信号流图表示则更加简单方便。这种用信号流图来表示的运算结构称为数字滤波器网络结构。 图5.1.5三种基本运算单元的方框图和信号流图 信号流图由节点和有向支路组成。在图5.1.5(b)的信号流图中,圆点表示节点,每个节点连接的有输入支路和输出支路,支路上的箭头表示信号流动方向。写在箭头旁边的z-1或系数a称为支路增益,如果箭头旁边没有标明增益符号,则表示支路增益是1。没有输入箭头的节点称为源节点或输入节点; 没有输出箭头或输出箭头不指向其他节点的节点称为输出节点。每个节点表示一个信号,节点处的信号称为节点变量,每个节点可以同时含有几条输入支路和几条输出支路,节点变量等于所有输入支路信号之和。因此,整个运算结构完全可用三种基本运算支路组成。 根据信号流图可以求数字滤波器的系统函数,先列出各个节点变量方程,再进行Z变换,联立求解方程组,求出输入与输出之间的z域关系,得到系统函数。 例5.1.1试求图5.1.6(a)中信号流图代表的系统函数H(z)。 图5.1.6信号流图 解: 由于节点变量等于所有输入支路信号之和,依图5.1.6(a)可列出各节点变量方程为 w1(n)=x(n)+a1w2(n)+a2w3(n) w2(n)=w1(n-1) w3(n)=w2(n-1) y(n)=b0w1(n)+b1w2(n)+b2w3(n) 将上式进行Z变换,得到 W1(z)=X(z)+a1W2(z)+a2W3(z) W2(z)=z-1W1(z) W3(z)=z-1W2(z) Y(z)=b0W1(z)+b1W2(z)+b2W3(z) 将上式进行联立求解,得到 Y(z)=b0+b1z-1+b2z-21-a1z-1-a2z-2X(z) 因此,得到系统函数为 H(z)=Y(z)X(z)=b0+b1z-1+b2z-21-a1z-1-a2z-2 若图5.1.6(b)中支路增益H(z)就是上式求得的系统函数,则图5.1.6(b)是该系统的另一种信号流图形式。然而,由于图5.1.6(b)中支路增益并不是z-1或系数a,也就是说并不是对应于基本的运算单元,不能直接得到一种具体实现结构。 不同的信号流图代表不同的运算方式,而对于同一个系统函数H(z)或差分方程,可以有很多种信号流图与之相对应。可以将式(5.1.1)的差分方程变换成各种不同的形式,或等效地将式(5.1.2)中系统函数的分式形式变换成各种分式的组合。例如: H1(z)=8-4z-1+11z-2-2z-31-54z-1+34z-2-18z-3 H2(z)=(2-0.379z-1)(4-1.24z-1+5.264z-2)(1-0.25z-1)(1-z-1+0.5z-2) H3(z)=16+81-0.5z-1+-16+20z-11-z-1+0.5z-2 可以验证H1(z)=H2(z)=H3(z),即以上三种形式对应于同一个系统函数。理论上,它们应该具有相同的运算结果,但每种都有不同的运算方式,每种不同的运算方式都对应不同的信号流图,即不同网络结构。当然,这些网络结构的基本单元仍然为延时器、加法器和常数乘法器。 然而,实际上不同的滤波器网络结构会对系统的计算复杂度、运算误差、稳定性、存储量等重要性能产生不同影响: (1) 计算复杂度。不同的网络结构对乘法、加法等计算的次数需求是不一样的。计算复杂度会影响计算速度。 (2) 运算误差。由于有限字长效应,输入与输出信号、系统参数、中间计算结果都受到二进制编码长度限制,从而产生各种量化(有限字长)效应导致的误差。不同的网络结构对有限字长效应的敏感程度是不同的。 (3) 稳定性。不同的网络结构中,频率响应调节,特别是零点、极点调节的方便程度也是不一样的。 (4) 存储量。不同的网络结构对于系统参数、输入信号、中间计算结果以及输出信号的存储量要求也是不一样的。 因此,对滤波器网络结构的研究对于数字滤波器设计与实现是非常重要和有意义的。下面分别针对IIR数字滤波器和FIR数字滤波器的实现结构进行讨论。 5.2IIR数字滤波器实现结构 IIR数字滤波器网络结构的特点是信号流图中存在输出到输入的反馈支路。其基本网络结构有以下三种: (1) 直接型: 在这种网络结构中,按照式(5.1.1)的差分方程直接予以实现。这种滤波器网络结构可分为零点部分和极点部分(或等效为系统函数H(z)的分子和分母部分)。因此,根据两部分运算的先后次序,有两种实现形式,即直接Ⅰ型和直接Ⅱ型网络结构。直接Ⅱ型比直接Ⅰ型节省延时单元,通常IIR数字滤波器的直接型是指直接Ⅱ型结构。 (2) 级联型: 分别把系统函数H(z)的分子分母因式分解,使之成为一阶或二阶子系统的乘积,即H(z)=H1(z)H2(z)…HM(z),其中Hi(z)(i=1,2,…,M)是一阶或二阶子系统。每个子系统都以直接型网络结构实现,整个系统函数由一阶或二阶子系统的级联结构实现。 (3) 并联型: 把系统函数H(z)用部分分式展开,使之成为一阶或二阶子系统的和,即H(z)=H1(z)+H2(z)+…+HM(z),其中Hi(z)(i=1,2,…,M)是一阶或二阶子系统。每个子系统用直接型网络结构实现,整个系统函数由一阶或二阶子系统的并联结构实现。 5.2.1IIR直接型网络结构 1. 直接Ⅰ型网络结构 将N阶差分方程重写为 y(n)=∑Mk=0bkx(n-k)-∑Nk=1aky(n-k)(5.2.1) 为了简化讨论,设M=N=2,其系统函数为 H(z)=∑2k=0bkz-k11+∑2k=1akz-k=H1(z)H2(z)(5.2.2) 按照差分方程可以直接画出网络结构,如图5.2.1(a)所示,这种信号流图称为直接Ⅰ型网络结构。图中先实现系统的零点,对应H(z)的分子部分,用H1(z)表示,后实现系统的极点,对应H(z)的分母部分,用H2(z)表示,然后把两部分级联起来,即H(z)=H1(z)H2(z)。需要注意的是,H2(z)是反馈结构,各支路的增益应是-ak。 2. 直接Ⅱ型网络结构 一个线性时不变系统,若交换其级联子系统的次序,系统函数是不变的。也就是说,总的输入与输出关系不改变,即H(z)=H2(z)H1(z)。按照这种思路,将图5.2.1(a)中两部分流图交换位置,如图5.2.1(b)所示。该图中节点变量w1=w2,因此前后两部分的延时支路可以合并,形成如图5.2.1(c)所示的网络结构流图,将图5.2.1(c)所示的这类流图称为直接Ⅱ型网络结构。注意,从输入与输出的观点看,这两种直接型网络结构是等价的,但在内部它们的信号是不同的。由于直接Ⅱ型比直接Ⅰ型节省延时单元,用硬件实现可节省寄存器,用软件实现可节省存储单元。因此,通常IIR的直接型是指直接Ⅱ型结构。 图5.2.1IIR数字滤波器的直接型网络结构 例5.2.1设某IIR数字滤波器的系统函数为 H(z)=3+53z-1+23z-21+16z-1+13z-2-16z-3 画出该滤波器的直接Ⅱ型网络结构。 图5.2.2例5.2.1滤波器的直接 Ⅱ型网络结构 解: 按照H(z)表达式,先画分母部分,再画分子部分,直接画出直接Ⅱ型网络结构,如图5.2.2所示。 3. IIR直接型网络结构特点 (1) 直接Ⅱ型网络结构所需延时单元少。N阶差分方程共需N个延时单元,这是N阶滤波器所需的最少延时单元。 (2) 直接型结构中反馈环路是联接在一起的,如果计算有误差,这些误差容易通过反馈进行积累,因此误差较大。 (3) 直接型结构不易调整零点、极点位置。滤波器特性取决于系统零极点的分布,而极点取决于系统函数分母部分的系数。只要调整其中一个系数,多个极点位置都会变化。类似地,系统函数分子部分的系数决定其零点位置,只要调整其中分子部分的一个系数,多个零点位置都会变化。这导致直接型网络结构不容易进行调试,因而一般只用一阶或者二阶结构。对于更高阶的,可以用下面的级联型和并联型网络结构。 5.2.2IIR级联型网络结构 在IIR级联型网络结构中,对H(z)的分子、分母多项式分别进行因式分解,将H(z)分解为零、极点形式,即: H(z)=∑Mk=0bkz-k1+∑Nk=1akz-k=A∏Mk=1(1-ckz-1)∏Nk=1(1-dkz-1)(5.2.3) 式中,A是常数; ck和dk分别表示零点和极点。 由于多项式的系数是实数,ck和dk是实数或者是共轭成对的复数。因此,可以将实零点、实极点放在一起构成一个实系数的一阶因子,而将共轭成对的零点(极点)放在一起构成一个实系数的二阶因子。如果把一阶因子看作二阶因子的特例,则系统函数H(z)可以分解成多个实系数二阶节网络的乘积(级联)形式,即 H(z)=A∏ji=1β0i+β1iz-1+β2iz-21+α1iz-1+α2iz-2=A∏ji=1Hi(z)(5.2.4) 式中,β0i、β1i、β2i、α1i和α2i为实数。 每个Hi(z)可以由一阶或二阶网络实现,其网络结构均采用前面介绍的直接Ⅱ型结构,则可以得到系统函数H(z)的级联型网络结构,如图5.2.3所示。 图5.2.3IIR滤波器的级联型网络结构 例5.2.2设某IIR数字滤波器的系统函数为 H(z)=3+53z-1+23z-21+16z-1+13z-2-16z-3 试画出其级联型网络结构。 解: 将H(z)的分子、分母进行因式分解,得到如下实系数一阶、二阶子系统的乘积形式,即 H(z)=11-13z-1·3+53z-1+23z-21+12z-1+12z-2 为减少单位延迟的数目,将一阶的分子、分母多项式组成一个一阶网络,二阶的分子、分母多项式组成一个二阶网络,画出级联型网络结构流图,如图5.2.4所示。 图5.2.4例5.2.2滤波器的级联型网络结构 IIR级联型网络结构具有以下特点: (1) 零极点调整方便。级联型网络结构中每个一阶网络决定一个零点、一个极点,每个二阶网络决定一对零点、一对极点。在式(5.2.4)中,调整β0i、β1i和β2i可以改变一对零点的位置,调整α1i和α2i可以改变一对极点的位置。因此,相对直接型网络结构,调整零极点更为方便。 (2) 运算误差积累相对直接型更小。由于网络级联,使得有限字长造成的系数量化误差、运算误差等仍会逐级积累。但级联型网络结构中后面的网络输出不会再输入到前面网络,运算误差的积累相对直接型要小。因此,可以针对运算误差的积累优化设计最优级联的次序。 5.2.3IIR并联型网络结构 在IIR并联型网络结构中,将系统函数H(z)展开成部分分式之和的形式,每个部分分式都是一个实系数的一阶或二阶节网络(有时可能会有常数项),可得到IIR数字滤波器的并联型网络结构,即 H(z)=∑Mk=0bkz-k1+∑Nk=1akz-k=A∑ji=1β0i+β1iz-11+α1iz-1+α2iz-2=A∑ji=1Hi(z)(5.2.5) 式中,A为常数,β0i、β1i、α1i和α2i为实数。 每个Hi(z)的网络结构采用直接Ⅱ型网络结构,则可以得到系统函数H(z)的并联型网络结构,如图5.2.5所示。 图5.2.5IIR滤波器的并联型网络结构 例5.2.3设某3阶IIR数字滤波器的系统函数为 H(z)=3+53z-1+23z-21+16z-1+13z-2-16z-3 试画出其并联型网络结构。 解: 将H(z)进行部分分式展开,可以写成实系数一阶、二阶子系统之和的形式,即 H(z)=16+81-0.5z-1+-16+20z-11-z-1+0.5z-2 将每一部分用直接型网络结构实现,其并联型网络结构如图5.2.6所示。 图5.2.6例5.2.3滤波器的并联 型网络结构 IIR并联型网络结构具有以下特点: (1) 极点调整方便,零点调整不方便。在并联型网络结构中,每个一阶网络决定一个实数极点,每个二阶网络决定一对共轭极点,因此调整极点位置方便。但调整零点位置不如级联型方便,这是因为在并联型网络结构中,每个一阶或二阶子系统的分子部分并不能决定零点,因此无法通过调整分子系数改变零点的位置。 (2) 没有误差积累,运算误差最小。各个子网络是并联的,产生的运算误差互不影响,不同于直接型和级联型网络结构那样有误差积累。因此,并联型网络结构运算误差最小。 (3) 运算速度最高。由于各个子网络并联,可同时对输入信号进行运算,因此并联型与直接型和级联型网络结构比较,其运算速度最高。 5.3FIR数字滤波器的实现结构 FIR数字滤波器的单位脉冲响应是有限长的,即h(n)在有限个值处不为0。其网络结构上没有输出到输入的反馈,即没有反馈支路,属于非递归型结构。需要指出的是,在FIR数字滤波器的频率采样型结构中也包含有递归结构。 本节中主要介绍FIR数字滤波器的直接型、线性相位型、级联型和频率采样型网络结构。与IIR滤波器不同,FIR滤波器系统函数没有极点,不能部分分式展开,因此没有并联型结构。 (1) 直接型: 在这种结构中,直接按式(5.1.5)实现差分方程。 (2) 线性相位型: 当FIR滤波器具有线性相位特性时,其单位脉冲响应具有对称性,利用这种对称关系能将乘法计算量缩减一半。 (3) 级联型: 在这种结构中,将系统函数H(z)因式分解成多个一阶或二阶子系统,使之成为多个子系统的乘积,即H(z)=H1(z)H2(z)…HM(z),其中Hi(z)(i=1,2,…,M)是一阶或二阶子系统。每个子系统都以直接型网络结构实现,整个系统函数由一阶或二阶子系统的级联结构实现。 (4) 频率采样型: 这种结构是基于单位脉冲响应h(n)的DFT导出的一种特殊并联网络结构。前面介绍的频域内插公式是FIR滤波器频率采样型结构的依据,该网络结构适用于后面章节中介绍的FIR数字滤波器的频率采样法设计。 5.3.1FIR直接型网络结构 设单位脉冲响应h(n)长度为N,其系统函数和差分方程分别为 H(z)=∑N-1n=0h(n)z-n(5.3.1) y(n)=∑N-1m=0h(m)x(n-m)(5.3.2) 按照H(z)或者差分方程直接画出直接型网络结构如图5.3.1所示。由于差分方程是单位脉冲响应和输入信号的卷积,因此这种结构也称为卷积型网络结构。网络结构中延时支路相互串联,称为延时线。延时线上有N个抽头,分别连接乘法器,乘法器相乘的系数就是单位脉冲响应。由图5.3.1可知,长度为N的FIR滤波器直接型网络结构需要N-1个单位延时器、N个乘法器、N-1个加法器。 图5.3.1FIR滤波器的直接型网络结构 5.3.2FIR线性相位结构 线性相位结构是FIR滤波器直接型结构的简化网络结构,特点是网络具有线性相位特性,比直接型结构节约了近一半的乘法器。能够实现严格的线性相位是FIR滤波器的重要优势,这对数据传输、图像处理等都是非常关键的。关于FIR滤波器的线性相位特性将在第7章中详细讨论。 第7章将证明,当h(n)是实序列,且关于(N-1)/2偶对称,即h(n)=h(N-n-1)时,FIR滤波器具有第一类线性相位; 当h(n)是实序列,且关于(N-1)/2奇对称,即h(n)=-h(N-n-1)时,FIR滤波器具有第二类线性相位。 当N为偶数,将h(n)=±h(N-n-1)代入H(z)的表达式中,可得 H(z)=∑N/2-1n=0h(n)[z-n±z-(N-n-1)](5.3.3) 式中,“+”代表第一类线性相位; “-”代表第二类线性相位。 同理,当N为奇数,将h(n)=±h(N-n-1)代入H(z)的表达式中,可得 H(z)=∑(N-1)/2-1n=0h(n)[z-n±z-(N-n-1)]+hN-12z-N-12(5.3.4) 按照式(5.3.3)和式(5.3.4)可以分别画出N为偶数和奇数时FIR滤波器的直接型结构,就是线性相位结构。FIR滤波器的直接型网络结构如图5.3.1所示,图中共需要N个乘法器。但对于线性相位FIR滤波器,当N为偶数时,按照式(5.3.3)仅需要N/2次乘法,节约了一半乘法器; 当N为奇数,按照式(5.3.4),则需要(N+1)/2个乘法器,也节约了近一半乘法器。特别地,当FIR滤波器具有第二类线性相位,即h(n)=-h(N-n-1)时,若N为奇数,则hN-12=0,此时仅需要(N+1)/2-1个乘法器。 下面举例说明: 当h(n)是实序列,且关于(N-1)/2偶对称,即h(n)=h(N-n-1)时,假设N=4,则h(0)=h(3),h(1)=h(2),代入式(5.3.3),可得 H(z)=∑1n=0h(n)[z-n+z-(3-n)] =h(0)[1+z-3]+h(1)[z-1+z-2](5.3.5) 按照式(5.3.5)画出网络结构如图5.3.2(a)所示,它的直接型网络结构如图5.3.2(b)所示。 图5.3.2第一类线性相位网络结构(N=4) 假设N=5,则h(0)=h(4),h(1)=h(3),代入式(5.3.4),可得 H(z)=∑1n=0h(n)[z-n+z-(4-n)]+h(2)z-2 =h(0)[1+z-4]+h(1)[z-1+z-3]+h(2)z-2(5.3.6) 按照式(5.3.6)画出网络结构如图5.3.3(a)所示,它的直接型网络结构如图5.3.3(b)所示。 图5.3.3第一类线性相位网络结构(N=5) 同理,当h(n)是实序列,且关于(N-1)/2奇对称,即h(n)=-h(N-n-1)时,假设N=4,则h(0)=-h(3),h(1)=-h(2),代入式(5.3.3),可得 H(z)=∑1n=0h(n)[z-n-z-(3-n)] =h(0)[1-z-3]+h(1)[z-1-z-2](5.3.7) 按照式(5.3.7)画出网络结构如图5.3.4(a)所示。 假设N=5,则h(0)=-h(4),h(1)=-h(3),代入式(5.3.4),可得 H(z)=∑1n=0h(n)[z-n-z-(4-n)] =h(0)[1-z-4]+h(1)[z-1-z-3](5.3.8) 注意: h(2)=0,因此N=5时的线性相位网络结构如图5.3.4(b)所示。 图5.3.4第二类线性相位网络结构 5.3.3FIR级联型网络结构 对系统函数H(z)进行因式分解,并将实零点构成一个实系数的一阶子系统,而将共轭成对的零点放在一起构成一个实系数的二阶子系统。若把一阶子系统看作二阶子系统的特例,则系统函数H(z)可以分解成多个实系数二阶子系统的乘积(级联)形式,即 H(z)=∑N-1n=0h(n)z-n=∏ji=1(β0i+β1iz-1+β2iz-2)(5.3.9) 由式(5.3.9)可以得到FIR系统的级联型网络结构,其中每个因式都用直接型网络结构实现,如图5.3.5所示。 图5.3.5FIR滤波器的级联型网络结构 例5.3.1设FIR数字滤波器系统函数为 H(z)=0.96+2.0z-1+2.8z-2+1.5z-3 画出H(z)的直接型网络结构和级联型网络结构。 解: 将H(z)进行因式分解,得到 H(z)=(0.6+0.5z-1)(1.6+2z-1+3z-2) 其级联型网络结构和直接型网络结构如图5.3.6所示。 图5.3.6例5.3.1滤波器的级联型和直接型网络结构 FIR级联型网络结构具有以下特点。 (1) 零点调整方便。级联型网络结构每个一阶因子控制一个零点,每个二阶因子控制一对共轭零点,因此调整零点位置比直接型方便。 (2) 级联型所需乘法次数较直接型多。按照式(5.3.9),FIR级联型网络结构中系数比直接型多,因而需要的乘法器多。在例5.3.1中直接型需要4个乘法器,而级联型则需要5个乘法器,分解的因子越多,需要的乘法器也越多。 5.3.4频率采样型网络结构 由频率采样定理可知,对有限长序列h(n)的Z变换H(z)在单位圆上做N点的等间隔采样,可得频率采样序列H(k),H(k)的IDFT所对应的时域信号hN(n)是原序列h(n)以采样点数N为周期进行周期延拓的主值序列。当N大于或等于原序列h(n)长度M时,hN(n)=h(n),表明在复频域上N点等间隔采样不会导致信号失真。此时,H(z)可以用频率采样序列H(k)内插得到,内插公式为 H(z)=(1-z-N)1N∑N-1k=0H(k)1-W-kNz-1(5.3.10) 可以将上式改写为 H(z)=1NHc(z)∑N-1k=0Hk(z)(5.3.11) 式中 Hc(z)=1-z-N(5.3.12) Hk(z)=H(k)1-W-kNz-1(5.3.13) 按照式(5.3.11)可以得到FIR滤波器的频率采样型网络结构,由1个子系统Hc(z)和N个并联的一阶子系统Hk(z)级联构成。其中,第一部分Hc(z)的频率响应为 Hc(ejω)=1-e-jωN=2sinN2ωe-jωN/2(5.3.14) 其网络结构和幅频特性曲线如图5.3.7所示。Hc(z)是一个由N阶延时单元组成的梳状滤波器,它在单位圆上有N个等间隔的零点,其零点为zk=ej2πNk,k=0,1,2,…,N-1。 图5.3.7梳状滤波器的网络结构和幅频特性曲线 第二部分是N个一阶网络Hk(z)的并联结构,每个一阶网络在单位圆上有一个极点,其极点为zk=ej2πNk,k=0,1,2,…,N-1。可见,这N个极点正好和第一部分梳状滤波器的N个零点相抵消,从而使H(z)在这些频率上的响应等于H(k)。 图5.3.8FIR滤波器的频率采样型网络结构 频率采样型网络结构是由梳状滤波器Hc(z)和N个一阶网络Hk(z)的并联结构进行级联而成的,其网络结构如图5.3.8所示。 FIR频率采样型网络结构具有以下特点: (1) 一阶网络Hk(z)中乘法器的系数H(k)就是滤波器在ω=2πNk处的响应,因此,只要调整H(k),就可以直接控制滤波器的频率响应特性。 (2) 只要滤波器的阶数N相同,对于任何频率响应形状,其梳状滤波器部分和N个一阶网络部分结构完全相同,只是各支路增益H(k)不同。因此,频率采样型网络结构便于标准化、模块化。 (3) 系统稳定是靠位于单位圆上的N个零极点对消来保证的。如果滤波器的系数存在一定误差,可能使零极点不能完全对消。此时,若未对消的极点位于单位圆外,就会影响系统的稳定性。 (4) 频率采样型网络结构中,H(k)和W-kN一般为复数,要求乘法器完成复数乘法运算,这对硬件实现是不方便的。 为了克服上述存在的缺点,实际中通常采用修正的频率采样型网络结构,具体如下: (1) 将梳状滤波器的零点和每个一阶网络的极点都移到单位圆内,保障系统的稳定性。即将单位圆上的零极点向单位圆内收缩一点,收缩到半径为r的圆上,取r<1且r≈1。此时H(z)为 H(z)=(1-rNz-N)1N∑N-1k=0Hr(k)1-rW-kNz-1(5.3.15) 式中: Hr(k)是在r圆上对H(z)的N点等间隔采样值。由于r≈1,所以可以近似取Hr(k)≈H(k)。这样一来,零极点均为rW-kN,k=0,1,2,…,N-1。如果由于存在误差,零极点不能抵消时,极点位置仍在单位圆内,保持系统稳定。 (2) 将所乘的系数H(k)和W-kN都转化为实数。这主要是利用实际滤波器单位脉冲响应h(n)是实序列这一特点。利用实序列DFT的共轭对称性H(k)=H*(N-k)和旋转因子WkN的对称性WkN=W-(N-k)N,可以将成对的共轭极点结合起来,即将Hk(z)和HN-k(z)合并为一个二阶网络,并记为Hk(z),则 Hk(z)=H(k)1-rW-kNz-1+H(N-k)1-rW-(N-k)Nz-1 =H(k)1-rW-kNz-1+H*(k)1-r(W-kN)*z-1 =α0k+α1kz-11-2rcos2πNkz-1+r2z-2(5.3.16) 式中 α0k=2Re[H(k)] α1k=-2Re[rH(k)WkN],k=1,2,3,…,N2-1 图5.3.9二阶网络Hk(z) 的网络结构 显然,从式(5.3.16)可以看出,二阶网络Hk(z)的系数都为实数,其网络结构如图5.3.9所示。 当N为偶数时,H(z)可表示为 H(z)=(1-rNz-N)1NH(0)1-rz-1+H(N/2)1+rz-1+∑N/2-1k=1Hk(z)(5.3.17) 式中:H(0)和H(N/2)为实数。 当N为奇数时,只有一个采样值H(0)为实数,H(z)可表示为 H(z)=(1-rNz-N)1NH(0)1-rz-1+∑(N-1)/2k=1Hk(z)(5.3.18) 将式(5.3.17)和式(5.3.18)所描述的频率采样型网络结构称为频率采样修正网络结构。图5.3.10分别给出了当N为偶数和奇数时的频率采样修正网络结构。当N为偶数时,由N/2-1个二阶网络和两个一阶网络并联后再与梳状滤波器级联构成; 当N为奇数时,由(N-1)/2个二阶网络和一个一阶网络并联后再与梳状滤波器级联构成。 图5.3.10FIR滤波器的频率采样修正网络结构 由图5.3.10可以看出,当采样点数N很大时,其结构很复杂,需要的乘法器和延时单元很多。但对于窄带滤波器,大部分频率采样值H(k)为0,从而使二阶网络个数大大减少。所以频率采样型网络结构适用于窄带滤波器。 5.4数字滤波器结构的MATLAB仿真 5.4.1与数字滤波器结构相关的MATLAB函数 通过前面的学习可知,对于一个确定的H(z),无论是IIR数字滤波器还是FIR数字滤波器都能以不同的网络结构实现,不同的网络结构有不同的特性,需要根据实际应用选择。画不同的网络结构,必须首先对H(z)进行分解,对于形式简单的H(z),可以通过因式分解、部分分式分解等方法实现不同结构之间的转换,而对于形式复杂的H(z),则较难通过因式分解来实现不同结构之间的转换。MATLAB信号处理工具箱提供了一些线性系统网络结构变换的函数,实现部分结构之间的转换,比如函数tf2sos可以实现直接型到级联型结构转换,函数sos2tf()可以实现级联型到直接型结构转换。为了转换方便,可以根据本书涉及的内容编写适合于H(z)在不同结构之间转换的函数,主要有: dir2cas,cas2dir,dir2par,par2dir和dir2fs。 1. 直接型转换为级联型函数dir2cas 格式: [G0,B,A]=dir2cas(b,a) 说明: dir2cas可以用来实现滤波器结构从直接型到级联型的转换。该函数与MATLAB信号处理工具箱提供的函数tf2sos功能类似,只是输出参数的形式有所不同。输入参数b=[b0,b1,…,bM]是直接型的分子多项式系数向量,a=[a0,a1,…,aN]为直接型的分母多项式系数向量,对应于直接型形式 H(z)=∑Mm=0bmz-m∑Nm=0amz-m 输出G为增益系数,B为K×3的实系数矩阵,其第k行对应于第k个二阶子网络的分子多项式系数向量[β0k,β1k,β2k],K为转换成级联形式后的子网络数,A为K×3的实系数矩阵,其第k行对应于第k个二阶子网络的分母多项式系数向量[1,α1k,α2k],对应的级联型形式为 H(z)=G∏Kk=1β0k+β1kz-1+β2kz-21-α1kz-1-α2kz-2 具体函数代码如下: function [G,B,A]=dir2cas(b,a); % dir2cas.m % 直接型转换为级联型函数 % 首先计算增益系数G G=b(1)/a(1); b=b/b(1); a=a/a(1); M=length(b); N=length(a); if N>M b=[b zeros(1,N-M)]; else a=[a zeros(1,M-N)]; end Maxlen=max(M,N); K=floor(Maxlen/2); B=zeros(K,3); A=zeros(K,3); if K*2==Maxlen b=[b 0]; a=[a 0]; end broots=cplxpair(roots(b)); aroots=cplxpair(roots(a)); for i=1:2:2*K Brow=broots(i:1:i+1,:); Brow=real(poly(Brow)); B(fix((i+1)/2),:)=Brow; Arow=aroots(i:1:i+1,:); Arow=real(poly(Arow)); A(fix(i+1)/2,:)=Arow; end 2. 级联型转换为直接型函数cas2dir 格式: [b,a]=cas2dir(G,B,A) 说明: cas2dir可以用来实现滤波器结构从级联型到直接型的转换。输入参数G为增益系数,B为K×3的实系数矩阵,其第k行对应于第k个二阶子网络的分子多项式系数向量[β0k,β1k,β2k],K为转换成级联型式后的子网络数,A为K×3的实系数矩阵,其第k行对应于第k个二阶子网络的分母多项式系数向量[1,α1k,α2k],对应的级联型形式为 H(z)=G∏Kk=1β0k+β1kz-1+β2kz-21+α1kz-1+α2kz-2 输出b=[b0,b1,…,bM]为直接型的分子多项式系数向量,a=[a0,a1,…,aN]为直接型的分母多项式系数向量,对应的直接型形式为 H(z)=∑Mm=0bmz-m∑Nm=0amz-m 具体函数代码如下: function [b,a]=cas2dir(G,B,A) % cas2dir.m % 级联型转换为直接型函数 [K,L]=size(B); b=[1]; a=[1]; for i=1:K b=conv(b,B(i,:)); a=conv(a,A(i,:)); end b=b*G; 3. 直接型转换为并联型函数dir2par 格式: [C,B,A]=dir2par(b,a) 说明: dir2par可以用来实现滤波器结构从直接型到并联型的转换。输入参数b=[b0,b1,…,bM]为直接型的分子多项式系数向量,a=[a0,a1,…,aN]为直接型的分母多项式系数向量,对应的直接型形式为 H(z)=∑Mm=0bmz-m∑Nn=0anz-n 输出C为当H(z)分子多项式较分母多项式阶次高时商的多项式系数向量,B为K×2的实系数矩阵,其第k行对应于第k个二阶子网络的分子多项式系数向量[β0k,β1k],K为转换成级联型后的子网络数,A为K×3的实系数矩阵,其第k行对应于第k个二阶子网络的分母多项式系数向量[1,α1k,α2k],对应的级联型形式为 H(z)=C+∑Kk=1β0k+β1kz-11+α1kz-1+α2kz-2 具体函数代码如下: function [C,B,A]=dir2par(b,a) % dir2par.m % 直接型转换为并联型函数 M=length(b); N=length(a); [r1,p1,C]=residuez(b,a); p=cplxpair(p1,10000000*eps); I=cplxcomp(p1,p);r=r1(I); K=floor(N/2); B=zeros(K,2); A=zeros(K,3); if K*2==N for i=1:2:N-2 Brow=r(i:1:i+1,:); Arow=p(i:1:i+1,:); [Brow,Arow]=residuez(Brow,Arow,[]); B(fix(i+1)/2,:)=real(Brow); A(fix(i+1)/2,:)=real(Arow); end [Brow,Arow]=residuez(r(N-1),p(N-1),[]); B(K,:)=[real(Brow) 0]; A(K,:)=[real(Arow) 0]; else for i=1:2:N-1 Brow=r(i:1:i+1,:); Arow=p(i:1:i+1,:); [Brow,Arow]=residuez(Brow,Arow,[]); B(fix(i+1)/2,:)=real(Brow); A(fix(i+1)/2,:)=real(Arow); end end function I=cplxcomp(p1,p2) %I=cplxcomp(p1,p2) %比较两个包含同样标量元素但(可能)有不同下标的复数对 %本程序必须用在cplxpair程序之后以便重新排序频率极点向量及其相应的留数向量 I=[]; for j=1:length(p2) for i=1:length(p1) if (abs(p1(i)-p2(j))<0.0001) I=[I,i]; end end end I=I'; 4. 并联型转换为直接型函数par2dir 格式: [b,a]=par2dir(C,B,A) 说明: par2dir可以用来实现滤波器结构从并联型到直接型的转换。输入和输出参数的定义与直接型转换为并联型函数dir2par一致,只是输出与输入参数相互交换。 具体函数代码如下: function [b,a]=par2dir(C,B,A) % par2dir.m % 并联型转换为直接型函数 [K,L]=size(A); R=[]; P=[]; for i=1:1:K [r,p,k]=residuez(B(i,:),A(i,:)); R=[R;r]; P=[P;p]; end [b,a]=residuez(R,P,C);b=b(:)';a=a(:)'; 5. 直接型到频率采样型转换函数dir2fs 格式: [C,B,A]=dir2fs(h) 说明: dir2fs可以用来实现滤波器结构从直接型到频率采样型的转换。输入参数h为FIR滤波器的单位脉冲响应向量; 输出C为并联部分增益的行向量; B为按行排列的分子系数矩阵; A为按行排列的分母系数矩阵。注意,在函数dir2fs的输出仅是并联部分结构的相关参数。 具体函数代码如下: function[C,B,A]=dir2fs(h) % dir2fs.m % 直接型转换频率采样型为函数 M=length(h); H=fft(h,M); magH=abs(H); phaH=(angle(H))'; if(M==2*floor(M/2)) L=M/2-1; A1=[1,-1,0;1,1,0]; C1=[real(H(1)),real(H(L+2))]; else L=(M-1)/2; A1=[1,-1,0]; C1=[real(H(1))]; end k=[1:L]'; B=zeros(L,2); A=ones(L,3); A(1:L,2)=-2*cos(2*pi*k/M); A=[A;A1]; B(1:L,1)=cos(phaH(2:L+1)); B(1:L,2)=cos(phaH(2:L+1)-(2*pi*k/M)); C=[2*magH(2:L+1),C1]'; 5.4.2IIR滤波器结构的MATLAB实现 IIR滤波器的结构主要可以分为直接型、级联型和并联型。利用上面编写的MATLAB函数可以实现不同网络结构之间的相互转换。 例5.4.1设IIR滤波器的系统函数为 H(z)=8(1-0.19z-1)(1-0.31z-1+1.3161z-2)(1-0.25z-1)(1-z-1+0.5z-2) 试画出其直接型网络结构。 解: MATLAB程序如下: % Ch5_4_1.m % 例5_4_1的MATLAB程序 clc; clear all; b0=8; B=[1 -0.311.3161;1 -0.19 0]; A=[1 -1 0.5;1 -0.25 0]; [b,a]=cas2dir(b0,B,A); b a 运算结果如下: b =8.0000 -4.0000 11.0000 -2.0005 0 a =1.0000 -1.25000.7500 -0.1250 0 图5.4.1例5.4.1滤波器的直接 型网络结构 输出向量a和b,可以得出 H(z)=8-4z-1+11z-2-2.005z-31-1.25z-1+0.75z-2-0.125z-3 画出其直接型的网络结构如图5.4.1所示。 例5.4.2 设IIR滤波器的系统函数为 H(z)=8-4z-1+11z-2-2z-31-1.25z-1+0.75z-2-0.125z-3 试画出其级联型网络结构。 解: MATLAB程序如下: % Ch5_4_2.m % 例5_4_2的MATLAB程序 clc; clear all; b=[8 -4 11 -2]; a=[1 -1.25 0.75 -0.125]; [G,B,A]=dir2cas(b,a); G B A 运行的结果如下: G=8; B =1.0000-0.31001.3161 1.0000 -0.19000 A =1.0000 -1.00000.5000 1.0000 -0.25000 根据输出G,B和A的值,可得 H(z)=8(1-0.19z-1)(1-0.31z-1+1.3161z-2)(1-0.25z-1)(1-z-1+0.5z-2) 为了减少单位延迟的数目,将一阶的分子、分母多项式组成一个一阶网络,二阶的分子、分母多项式组成一个二阶网络,画出的级联型网络结构如图5.4.2所示。 图5.4.2例5.4.2滤波器的级联型网络结构 注意: 例5.4.1和例5.4.2实际上对应的都是同一个系统函数 H(z)=8-4z-1+11z-2-2z-31-1.25z-1+0.75z-2-0.125z-3 但由于存在计算误差,在分子多项式系数-2上产生了一个细小的差别。 例5.4.3设IIR滤波器的系统函数为 H(z)=8-4z-1+11z-2-2z-31-1.25z-1+0.75z-2-0.125z-3 试画出其并联型网络结构。 解: MATLAB程序如下: % Ch5_4_3.m % 例5_4_3的MATLAB程序 clc; clear all; b=[8 -4 11 -2]; a=[1 -1.25 0.75 -0.125]; [C,B,A]=dir2par(b,a); C B A 运行结果如下: C =16 B =-16.0000 20.0000 8.0000 0 A =1.0000 -1.00000.5000 1.0000 -0.2500 0 根据C、B和A的值可得 H(z)=16+16+20z-11-z-1+0.5z-2+81-0.5z-1 将每一部分用直接型结构实现,其并联型网络结构如图5.4.3所示。 图5.4.3例5.4.3 滤波器的并联型网络结构 5.4.3FIR滤波器结构的MATLAB实现 FIR滤波器的结构可以分为直接型、线性相位型、级联型和频率采样型。由于FIR滤波器可以是分母为1的IIR滤波器,因此利用5.4.1节中介绍的几种MATLAB函数,可以方便地实现几种FIR滤波器结构之间的相互转换,并根据转换的结果画出对应的滤波器结构。 例5.4.4已知FIR滤波器的系统函数为 H(z)=0.96(1+0.8333z-1)(1+1.25z-1+1.875z-2) 试画出该FIR滤波器的直接型网络结构。 解: MATLAB程序如下: % Ch5_4_4.m % 例5_4_4的MATLAB程序 clc; clear all; b0=0.96; B=[11.251.875;10.833330]; A=[1 00;10 0]; [b,a]=cas2dir(b0,B,A); b a 运行结果如下: b = 0.96002.00002.80001.50000; a = 10 0 0 0; 根据a和b的值可得 H(z)=0.96+2.0z-1+2.8z-2+1.5z-3 因此,可以画出滤波器的直接型网络结构如图5.4.4所示。 图5.4.4例5.4.4滤波器的直接型网络结构 例5.4.5已知FIR滤波器的系统函数为 H(z)=0.96+2.0z-1+2.8z-2+1.5z-3 试画出该FIR滤波器的级联型网络结构。 解: MATLAB程序如下: % Ch5_4_5.m % 例5_4_5的MATLAB程序 clc; clear all; b=[0.96 2 2.8 1.5]; a=[1]; [b0,B,A]=dir2cas(b,a); b0 B A 运行结果如下: b0=0.96; B= 1.0001.25001.8750 1.00000.83330; A= 100 100; 根据b0、B和A的值可得 H(z)=0.96(1+0.8333z-1)(1+1.25z-1+1.875z-2) 因此,可以画出滤波器的级联型网络结构如图5.4.5所示。 图5.4.5例5.4.5滤波器的级联型网络结构 例5.4.6已知h(n)=[14710741]/8,画出该FIR滤波器的频率采样结构。 解: 程序如下: % Ch5_4_6.m % 例5_4_6的MATLAB程序 clc; clear all; h=[1 4 7 10 7 4 1]/8; [C,B,A]=dir2fs(h); C B A 运行结果如下: C = 3.7867 0.2310 0.4823 4.2500 B = -0.9010-0.9010 0.62350.6235 -0.2225-0.2225 A = 1.0000-1.24701.0000 1.00000.44501.0000 1.00001.80191.0000 1.0000-1.0000 0 根据C、B、A的值可得 H(z)=1-z-773.7867-0.901-0.901z-11-1.247z-1+z-2+0.2310.6235+0.6235z-11+0.445z-1+z-2+ 0.4823-0.2225-0.2225z-11+1.8019z-1+z-2+4.2511-z-1 值得指出的是,因为对于给定的N阶FIR滤波器来说,其频率采样结构中梳状滤波器Hc(z)=1-z-N是固定的,在函数dir2fs没有进行考虑,函数的输出仅是并联部分结构的相关参数,而在写出H(z)的频率采样型形式以及画网络结构时都需要考虑式(5.3.9)中系数1/N和梳状滤波器Hc(z)=1-z-N。 因此,可以画出滤波器的频率采样型网络结构如图5.4.6所示。 图5.4.6例5.4.6滤波器的频率采样型网络结构 习题 5.1简述滤波的基本概念,试举几个例子说明滤波的工程实际应用。 5.2简述数字滤波器与模拟滤波器的异同点和数字滤波器的优点。 5.3简述描述线性时不变系统的工具,以及各自的特点。 5.4简述IIR滤波器和FIR滤波器的区别。 5.5简述数字滤波器的技术指标描述参数,并归纳各种技术指标参数的计算公式和物理意义。 5.6试求图P5.6中信号流图代表的系统函数H(z)。 图P5.6 5.7设系统由下面差分方程描述: y(n)-34y(n-1)+18y(n-2)=x(n)+13x(n-1) 试画出系统的直接型、级联型和并联型网络结构。 5.8设系统的系统函数为 H(z)=4(1+z-1)(1-1.414z-1+z-2)(1-0.5z-1)(1+0.9z-1+0.81z-2) 试问能构成几种级联型网络,并画出采用单位延时器最少的一种级联型网络结构。 5.9分别画出以下滤波器的直接型网络结构: (1) H1(z)=1-0.6z-1-1.414z-2+0.864z-3 (2) H2(z)=1-0.98z-1+0.9z-2-0.898z-3 (3) H3(z)=H1(z)/H2(z) 5.10图P5.10中画出了四个系统,试用各子系统的单位脉冲分别表示各总系统的单位脉冲响应h(n),并求其总系统函数H(z)。 图P5.10 5.11已知滤波器的单位脉冲响应 h(n)=0.9nRs(n),求出系统函数,并画出其直接型网络结构。 5.12已知FIR滤波器的单位脉冲响应为 (1) N=6,h(0)=h(5)=1.5,h(1)=h(4)=2,h(2)=h(3)=3 (2) N=7,h(0)=-h(6)=3,h(1)=-h(5)=-2,h(2)=-h(4)=1,h(3)=0 试画出它们的直接型网络结构和线性相位型网络结构。 5.13设FIR滤波器的系统函数为 (1) H(z)=110(1+0.9z-1+2.1z-2+0.9z-3+z-4) (2) H(z)=(3-2z-1+z-2-z-4+2z-5-3z-6) 试求出滤波器的单位脉冲响应,并画出其直接型网络结构。 5.14已知FIR滤波器的单位脉冲响应为 h(n)=δ(n)-δ(n-1)+δ(n-4) 试用频率采样型网络结构实现该滤波器。设采样点数N=5,试画出频率采样型网络结构,并写出滤波器参数的计算公式。 5.15已知FIR滤波器系统函数在单位圆上的16个等间隔采样点为 H(0)=12H(1)=-3-j3H(2)=1+j H(3)~H(13)=0H(14)=1-jH(15)=-3+j3 试画出它的频率采样型网络结构,选择r=1,可以用复数乘法器。 5.16已知FIR滤波器系统函数在单位圆上的16个等间隔采样点为 H(0)=12H(1)=-3-j3H(2)=1+j H(3)~H(13)=0H(14)=1-jH(15)=-3+j3 试画出它的频率采样型网络结构,选择r=0.9,要求用实数乘法器。