前言
IIR滤波器与FIR滤波器是两种常用的数字滤波器,相对于FIR滤波器,IIR滤波器具有更高的灵活性和更小的计算复杂度。这里将介绍IIR滤波器的基本结构。
一、滤波器的表示
IIR滤波器差分方程的一般形式为:
y
(
n
)
=
∑
k
=
1
N
a
k
y
(
n
−
k
)
+
∑
k
=
0
M
b
k
x
(
n
−
k
)
(1)
y(n)=\sum_{k=1}^Na_ky(n-k)+\sum_{k=0}^Mb_kx(n-k) \tag{1}
y(n)=k=1∑Naky(n−k)+k=0∑Mbkx(n−k)(1)
其中, x(n) 是当前输入, y(n)是当前输出, b 0 , b 1 , . . . , b M b_0, b_1, ..., b_M b0,b1,...,bM是输入系数, a 1 , a 2 , . . . , a N a_1,a_2, ..., a_N a1,a2,...,aN是输出系数,M和N分别表示滤波器的输入和输出阶数。
IIR滤波器的系统函数为:
H
(
z
)
=
∑
k
=
1
M
b
k
z
−
k
1
−
∑
k
=
1
N
a
k
z
−
k
(2)
H(z)=\frac{\sum\limits_{k=1}^Mb_kz^{-k}}{1-\sum\limits_{k=1}^Na_kz^{-k}}\tag{2}
H(z)=1−k=1∑Nakz−kk=1∑Mbkz−k(2)
由于存在反馈回路,IIR滤波器的单位脉冲响应是无限长的,且IIR滤波器可能存在稳定性问题。为了确保滤波器的稳定性,系统函数的所有极点必须全部位于z平面单位圆内。
二、滤波器的基本结构
IIR滤波器结构包括:直接I型、直接II型、级联型、并联型。
1. 直接Ⅰ型
根据IIR滤波器的差分方程,若分别实现式(1)中输入和输出的加权和,最后输出的
y
(
n
)
y(n)
y(n)是把两个加权和相加而成,则这种结构称为直接Ⅰ型。直接Ⅰ型的第一个网络实现零点,第二个网络实现极点,共需要
M
+
N
M+N
M+N个延时单元。
对于一个线性时不变系统,交换其级联子系统的次序得到的系统函数不变。此时,第一个网络实现零点,第二个网络实现极点。
2. 直接Ⅱ型
将具有相同输入的延时支路进行合并,可以得到直接Ⅱ型。直接Ⅱ型结构利用两行延时共用一个延时单元的特点,所需要的延迟单元最少(N个延时单元)。
直接Ⅱ型和直接Ⅰ型都是直接型的实现方法,存在以下特点:
- 系数 a k a_k ak和 b k b_k bk对滤波器的极点与零点的控制作用不明显;
- 直接型结构运算的累积误差较大:乘法运算的量化误差;
- 极点对系数的变化过于灵敏,易造成滤波器不稳定或较大误差。
3. 级联型
将IIR滤波器的系统函数分解为零极点形式,可以表示为:
H
(
z
)
=
∑
k
=
1
M
b
k
z
−
k
1
−
∑
k
=
1
N
a
k
z
−
k
=
A
∏
k
=
1
M
1
(
1
−
p
k
z
−
1
)
∏
k
=
1
M
2
(
1
−
q
k
z
−
1
)
(
1
−
q
k
∗
z
−
1
)
∏
k
=
1
N
1
(
1
−
c
k
z
−
1
)
∏
k
=
1
N
2
(
1
−
d
k
z
−
1
)
(
1
−
d
k
∗
z
−
1
)
(3)
H(z)=\frac{\sum\limits_{k=1}^Mb_kz^{-k}}{1-\sum\limits_{k=1}^Na_kz^{-k}}=A\frac{\prod\limits_{k=1}^{M_1}(1-p_kz^{-1})\prod\limits_{k=1}^{M_2}(1-q_kz^{-1})(1-q_k^*z^{-1})}{\prod\limits_{k=1}^{N_1}(1-c_kz^{-1})\prod\limits_{k=1}^{N_2}(1-d_kz^{-1})(1-d_k^*z^{-1})}\tag{3}
H(z)=1−k=1∑Nakz−kk=1∑Mbkz−k=Ak=1∏N1(1−ckz−1)k=1∏N2(1−dkz−1)(1−dk∗z−1)k=1∏M1(1−pkz−1)k=1∏M2(1−qkz−1)(1−qk∗z−1)(3)
A为常数, M = M 1 + M 2 M=M_1+M_2 M=M1+M2, N = N 1 + N 2 N=N_1+N_2 N=N1+N2。 p k p_k pk、 c k c_k ck分别为实数零、极点, q k , q k ∗ q_k,q_k^* qk,qk∗和 d k , d k ∗ d_k,d_k^* dk,dk∗分别为复共轭零、极点。
a
k
,
b
k
a_k,b_k
ak,bk都是实数,因此零极点可能是复数,并且如果H(z)存在复数的零极点,那么它们一定是共轭成对的。把共轭因子组合成实系数的二阶因子,可以得到:
H
(
z
)
=
A
∏
k
1
+
β
1
k
z
−
1
+
β
2
k
z
−
2
1
+
α
1
k
z
−
1
+
α
2
k
z
−
2
=
A
∏
k
H
k
(
z
)
(4)
H(z)=A\prod\limits_k\frac{1+\beta_{1k}z^{-1}+\beta_{2k}z^{-2}}{1+\alpha_{1k}z^{-1}+\alpha_{2k}z^{-2}}=A\prod_kH_k(z)\tag{4}
H(z)=Ak∏1+α1kz−1+α2kz−21+β1kz−1+β2kz−2=Ak∏Hk(z)(4)
其中,每个一阶、二阶子系统 H k ( z ) H_k(z) Hk(z)都称为一阶、二阶基本节。
当 M = N M=N M=N 时,共有 N + 1 2 \frac{N+1}{2} 2N+1个基本节,各二阶基本节的排列次序有 [ N + 1 2 ] ! [\frac{N+1}{2}]! [2N+1]! 种,改变基本节的顺序,可以得到最优化的结构。
级联结构的特点:
- 调整系数 β 1 k , β 2 k β_{1k},β_{2k} β1k,β2k就能单独调整滤波器的第 k k k对零点,不影响其它零极点;
- 调整系数 α 1 k , α 2 k α_{1k},α_{2k} α1k,α2k就能单独调整滤波器的第 k k k对极点,不影响其它零极点;
- 运算的累积误差较小。
4. 并联型
把系统函数
H
(
z
)
H(z)
H(z)分解成部分分式,可以得到:
H
(
z
)
=
∑
k
=
1
M
b
k
z
−
k
1
−
∑
k
=
1
N
a
k
z
−
k
=
∑
k
=
1
N
A
k
1
−
p
k
z
−
1
+
∑
k
=
1
M
−
N
c
k
z
−
k
(5)
H(z)=\frac{\sum\limits_{k=1}^Mb_kz^{-k}}{1-\sum\limits_{k=1}^Na_kz^{-k}}=\sum\limits_{k=1}^N\frac{A_k}{1-p_kz^{-1}}+\sum\limits_{k=1}^{M-N}c_kz^{-k}\tag{5}
H(z)=1−k=1∑Nakz−kk=1∑Mbkz−k=k=1∑N1−pkz−1Ak+k=1∑M−Nckz−k(5)
这里的 p k p_k pk 可能是复数极点。
把共轭因子组合成实系数的二阶因子,可以得到:
H
(
z
)
=
∑
k
=
1
M
b
k
z
−
k
1
−
∑
k
=
1
N
a
k
z
−
k
=
∑
k
=
1
m
γ
0
k
+
γ
1
k
z
−
1
1
−
α
0
k
z
−
1
+
α
1
k
z
−
2
+
∑
k
=
1
M
−
N
c
k
z
−
k
(6)
H(z)=\frac{\sum\limits_{k=1}^Mb_kz^{-k}}{1-\sum\limits_{k=1}^Na_kz^{-k}}=\sum\limits_{k=1}^m\frac{\gamma_{0k}+\gamma_{1k}z^{-1}}{1-\alpha_{0k}z^{-1}+\alpha_{1k}z^{-2}}+\sum\limits_{k=1}^{M-N}c_kz^{-k}\tag{6}
H(z)=1−k=1∑Nakz−kk=1∑Mbkz−k=k=1∑m1−α0kz−1+α1kz−2γ0k+γ1kz−1+k=1∑M−Nckz−k(6)
一般IIR滤波器都满足
M
≤
N
M≤N
M≤N的条件,上式中当
M
=
N
M=N
M=N时,
m
=
N
+
1
2
m=\frac{N+1}{2}
m=2N+1,当
M
<
N
M<N
M<N时,式中不包含
c
k
z
−
k
c_kz^{-k}
ckz−k项。
IIR系统的并联形式特点如下:
- 调整比较方便,可以单独调整第k节极点;
- 每节的有限字长效应不会互相影响,有限字长影响小;
- 可以用调整 α 1 k α_{1k} α1k、 α 2 k α_{2k} α2k的办法来单独调整一对极点的位置,但是不能像级联型一样单独调整零点的位置;
- 并联型比级联型的误差一般要略小一些。
参考资料
- 刘纪红、孙宇舸、叶柠 等.数字信号处理原理与实践(修订版):电子信息学科基础课程系列教材[M].北京:清华大学出版社,2014.
- https://www.elecfans.com/emc_emi/2378748.html
- https://www.elecfans.com/d/2144792.html
- https://www.51wendang.com/doc/4373d9e460b5009f774b0dad/11