数字信号处理实验报告
实验名称:无限冲激响应(IIR)数字滤波器的三种结构 学号: 姓名:
评语:
成绩:
一、 实验目的
1、掌握IIR滤波器的直接II型、级联型和并联型三种结构的基本原理和特点。 2、掌握利用MATLAB实现IIR滤波器的三种结构的程序设计方法,并能够进行三者之间的相互转换。
3、掌握滤波器频响特性的绘制方法。
二、 实验原理与计算方法
按照结构划分数字滤波器,有递归式和非递归式两种。递归式数字滤波器的差分方程为
(1)
其中至少有一个.非递归式数字滤波器的差分方程为
(2)
可以看出递归式数字滤波器的响应不仅与激励有关,而且与以前的输出信号有关;而非递归式数字滤波器的响应仅只与激励有关。
按照单位样值响应划分数字滤波器,则有无限冲激响应(IIR)和有限冲激响应(FIR)之分。IIR滤波器是递归式的,差分方程如(1)式所示,FIR滤波器一般是非递归式的,差分方程如(2)式所示。
IIR滤波器常用的典型结构有直接II型、级联型和并联型,分别介绍如下:
1、直接II型(也称为正准型结构)
(3)
其中已假设(1)式中的,对于其它情况,则可令相应的某些系数为零。 令
则有 (4)
由此可以得到相应的时域中激励与响应之间的关系为
(5)
其中是与(4)式中的相应的中间函数序列。
x(n) y2(n) b0 y(n)
z-1
a1 b1
z-1
a2 b2
z-1
aN-1 bN-1
z-1
aN bN
图 6-1 直接II型结构信号流
由(5)式确定的直接II型的信号流图如图6-1所示,其中将中间的两条延时链合并为一条,实际的信号流将按(5)式分成两个延时链独立运行。编程时,用三个数组分别存放系数和,。由图可以看出,沿中间的延时链自上向下传播过程中将逐级向右移位,每一级向左边与的乘积按累加,再和相加,得到的沿中间的延时链又自上向下传播逐级向右移位,每一级向右边与的乘积按累加,其结果就是对应于激励的响应。然后向右移位一个单位时间,输入激励计算下一个时刻的响应。
直接II型结构具有简单直观的典型网络结构形式,在计算机上很容易实现。但是它对系数的量值变化比较敏感,直接确定了系统零、极点的位置,从而影响到系统的性能。尤其当阶数N较高时,系统对系数的字长效应很敏感,产生的误差也较大。
2、级联型结构
由于当直接II型结构传输函数阶数增加时,系数量化引起的误差影响到滤波器的性能,因此要采用其它形式的结构。
将(3)式的传输函数分子和分母进行因式分解,即用它的零、极点表示为
(6)
其中,,分子和分母中的实系数二阶因子分别对应于共轭零、极点。可以将上式分子和分母中单根一阶因子作为二阶因子的一种特例,那么(6)式就可以表示为M个实系数二阶基本节级联的形式 (7)
(8)
x(n) h1(n) b01 hM(n) b0M y(n)
z-1 z-1
a11 b11 a1M b1M
z-1 z-1
a21 b21 a2M b2M
图 6-2 级联型结构信号流
其中为滤波器的二阶基本节,为取整结果。则分别是第k个基本节的分母、分子系数,它们只关系到滤波器的某一对零、极点。级联型结构如图6-2所示,它是一系列二阶基本节的级联,每一个可以用直接II型结构实现。
级联型结构的特点是对滤波器性能的调整比较方便,调整系数,只单独涉及到第k级零、极点,而不会影响到其它任一级的零、极点,因而可以独立地控制滤波器的各零、极点的分布。
3、并联型结构
这种结构将传输函数展开为部分分式,即表示为若干一阶和二阶基本节网络与一个常数之和
(9)
其中,同样也可以统一表示为二阶基本节的形式
(10)
B0
x(n) y1(n) b01 y(n)
z-1
a11 b11
z-1
a21
yM(n)
z-1
a1M b1M
z-1
a2M
图 6-3 并联型结构信号流
并联型结构信号流如图6-3所示,其中二阶基本节网络可以用直接II型结构实现,程序设计也可参考直接型II结构的方法。并联型结构也可以单独调整极点位置,但却不能象级联型结构那样直接控制零点的分布。因为并联型结构各二阶基本节网络的零点并不是整个系统函数的零点。因此,当要准确传输零点时,以采用级联型结构为宜。不过,由于并联型基本节之间互不影响,所以运算误差比级联型的要小一些。
通常,IIR滤波器用系统函数的有理式(直接结构形式)描述,Matalb中提供相应的函数可以把直接型结构转换成级联和并联型结构。
在MATLAB中,直接型结构由两个行向量描述,b包含系数{bk},a包含系数{ak},可由filter函数实现。
要由已知的直接型结构实现级联型结构,可利用函数dir2cas根据直接型的系数{bk}和{ak}得到系数b0,{Bk,i}和{Ak,i},该函数把矢量b和a转换成K×3维矩阵B和A。首先计算b0,它等于b0/ a0,(a0≠1),然后通过给较短的矢量添零,使矢量b和a一样长。这就保证每一
个双二阶环节的分子和分母均不为零。接着计算多项式B(z)和A(z)的根,用cplxpair函数把这些根以共轭复根对的次序排列,最后用poly函数把每一对根再转换成二阶分子或分母多项式。级联型由casfiltr函数实现,它把每个二阶环节的系数存放在矩阵B和A中,放在一个循环里,而在此循环中采用filter函数。输入被乘以b0,每个滤波器的输出作为下一级滤波器的输入,最后一个滤波器的输出即为总的输出。
函数cas2dir可以把级联形式转换成直接形式。这是一个包含几次多项式乘法的简单运算,在一个K次的循环中实用conv函数。
类似的,利用dir2par函数可以把直接型系数{bk}和{ak}转换成并联型系数{Bk,i}和{Ak,i},并在parfiltr函数中使用这些系数以实现并联形式。而par2dir函数则可用来实现并联形式转换成直接形式。
三种结构的IIR滤波器均可通过以下方式计算单位抽样响应。
delta=impseq(0,0,7);
hdir=filter(b,a,delta)%直接型结构
hcas=casfiltr(b0,B,A,delta) %直接型结构实现级联型结构
hpar=parfiltr(C,B,A,delta) %直接型结构实现并联型结构
传输函数为的滤波器的频率特性为。由于我们所讨论的滤波器都是稳定系统,其所有极点都在z平面的单位圆内,单位样值响应是一个无限长的衰减序列,所以要截取有限长的一段来作频率特性分析。截取的长度越长,逼近的程度越高。如果截取长度为N,滤波器的频率特性由Fourier变换得
(11)
则滤波器的幅频特性和相频特性可表示为
(12)
(13)
三、实验内容
设三阶滤波器的传输函数为
激励信号为
根据所给定的滤波器系统函数和参数值,用三种结构实现该IIR数字滤波器结构,分别使激励和通过该滤波器,求出相应于不同激励的响应,作出响应信号的图形和幅频、相频特性曲线,并判断该滤波器为何种滤波器(低通、高通、带通、带阻)。
1、;
实验代码:
b=[1 0.5814 0.2114 0]
a=[1 -0.3984 0.2475 -0.04322]
delta=impseq(0,-10,10)
hdir=filter(b,a,delta)
[b0,B,A]=dir2cas(b,a)
hcas=casfiltr(b0,B,A,delta)
[C,B,A]=dir2par(b,a)
hpar=parfiltr(C,B,A,delta)
n=[0:40]
x1=exp(-0.5.*n).*cos(n.*(pi./2))
y1=filter(b,a,x1)