目录
三、抗混叠
在实际应用中,Σ-Δ ADC的输入信号是非带限信号,如果在Σ-Δ调制器前端没有做模拟抗混叠滤波器,那么在经过数字抽取滤波器降采样之后,在频域上信号的频带将会进行展宽,展宽的倍数与抽取的倍数相同。由频域采样定理知,抽取之后的信号在频谱上容易发生混叠,这个混叠会造成有用信号的丢失,该过程也被称为信号失真。
数字抽取滤波器其中的一个作用就是为了避免信号频谱混叠,其措施就是通过设置合理的滤波器通带截止频率和阻带起始频率,来限制最大输出信号频率,从而尽可能地抑制可能发生在高频部分的混叠。
若将采样频率记为
f
s
f_s
fs,数字抽取滤波器的降采样率记为D,输出的Nyquist采样频率记为
f
N
f_N
fN,滤波器的通带截止频率记为
f
c
f_c
fc,根据采样定理,为避免带内频谱混叠,
f
c
f_c
fc应满足如下关系
{
f
N
=
f
s
/
D
2
f
c
≤
f
N
\begin{cases} f_N=f_s /D \\ 2f_c≤f_N \\ \end{cases}
{fN=fs/D2fc≤fN
整理得
f
c
≤
f
s
2
D
f_c≤\frac {f_s} {2D}
fc≤2Dfs
将上式转化为归一化数字角频率,记为
ω
c
ω_c
ωc,由
ω
c
=
2
π
f
c
T
s
ω_c=2πf_c T_s
ωc=2πfcTs推导,则上式可变为
ω
c
≤
π
2
D
ω_c≤\frac {\pi} {2D}
ωc≤2Dπ
四、多级结构
经上述概念,可以得到如图4.1(a)所示的一个完整的带有数字低通滤波器的抽取因子为D的抽取器结构示意图,是一种单极结构,通过一次抽取完成整个过程。图4.1(b)所示的多级结构通过多级级联的形式共同完成抽取过程,即用两级实现方式完成D倍抽取时,需要满足
D
1
⋅
D
2
=
D
D_1·D_2=D
D1⋅D2=D。
五、FIR滤波器(Finite Impulse Response Filter)
FIR滤波器即有限冲激响应滤波器,又称为非递归线性滤波器,顾名思义,其脉冲响应由有限个采样值构成,实现N个采样数据执行加权和平均的处理(其输出仅取决于过去的输入而与过去的输出无关)。设FIR滤波器的单位冲激响应为
h
(
n
)
h(n)
h(n),
0
≤
n
≤
N
−
1
0≤n≤N-1
0≤n≤N−1,其处理过程可写为
y
(
n
)
=
∑
k
=
0
N
−
1
h
(
k
)
x
(
n
−
k
)
(5-1)
y(n)=\sum_{k=0}^{N-1}{h(k)x(n-k)}\tag{5-1}
y(n)=k=0∑N−1h(k)x(n−k)(5-1)
其系统函数可写为
H
(
z
)
=
∑
n
=
0
N
−
1
h
(
n
)
z
−
n
(5-2)
H(z)=\sum_{n=0}^{N-1}{h(n) z^{-n}}\tag{5-2}
H(z)=n=0∑N−1h(n)z−n(5-2)
其中
h
(
n
)
h(n)
h(n)可展开为
h
(
n
)
=
h
(
0
)
∗
δ
(
n
)
+
h
(
1
)
∗
δ
(
n
−
1
)
+
⋯
+
h
(
N
−
1
)
∗
δ
[
n
−
(
N
−
1
)
]
(5-3)
h(n)=h(0)*δ(n)+h(1)*δ(n-1)+⋯+h(N-1)*δ[n-(N-1)]\tag{5-3}
h(n)=h(0)∗δ(n)+h(1)∗δ(n−1)+⋯+h(N−1)∗δ[n−(N−1)](5-3)
FIR滤波器一般有4中结构分别是直接形式(Direct Form)、转置形式(Transposed Form)、对称形式(Symmetric Form)、和格形形式(Lattice Form),前三种均具有线性相位,后面一种不具有线性相位,其结构图如图5.1所示。
FIR滤波器的频率响应特性表现为通带,过渡带与阻带。我们在对滤波器进行设计时会根据所要达到的效果对滤波器的性能有一个根据具体设计要求,如幅度范围、幅度容限、衰减范围等。由技术指标生成的特征函数叫做逼近函数,简称为逼近。通过逼近能够计算出满足技术指标的转移函数。根据数值逼近的理论,主要有三种逼近方法,即插值法、最小平方逼近 法以及一致逼近法,分别对应于三种FIR滤波器的设计方法:频率抽样法、窗函数法和等波纹法。
等波纹法以切比雪夫逼近理论为基础,设计出适当条件下能够最逼近理想频率响应的实际频率响应。相对于频率抽样法和窗函数法,使用等纹波法设计的FIR滤波器,通带与阻带均为等波纹特性,通带最大衰减和阻带最大衰减可以分别控制,精确确定通带与阻带的边缘频率更加容易,而且指标均匀分布,没有资源浪费,相较于使用其他方法设计的滤波器,阶数要低很多。
等波纹逼近法的涵义是,在全部n次多项式的集合
J
n
J_n
Jn之中,寻找一个多项式
p
′
(
x
)
p' (x)
p′(x) ,使它在给定区间
[
a
,
b
]
[a, b]
[a,b]上对连续函数
f
(
x
)
f(x)
f(x)的偏差与其他所有属于
J
n
J_n
Jn的多项式相较而言是最小的,表达为数学方程式即:
m
a
x
∣
p
′
(
x
)
−
f
(
x
)
∣
=
m
i
n
(
m
a
x
∣
p
(
x
)
−
f
(
x
)
∣
)
,
a
≤
x
≤
b
(5-4)
max|p' (x)-f(x)|=min(max|p(x)-f(x)|) ,a≤x≤b\tag{5-4}
max∣p′(x)−f(x)∣=min(max∣p(x)−f(x)∣),a≤x≤b(5-4)
逼近理论可知,多项式
p
′
(
x
)
p' (x)
p′(x)是存在且唯一的。
对于数字低通滤波器,其幅频响应如图5.2所示,用等波纹法可描述为
1
−
δ
p
≤
H
(
e
j
ω
)
≤
1
+
δ
p
,
0
≤
ω
≤
ω
c
C
(5-5)
1-δ_p≤H(e^{jω} )≤1+δ_p,0≤ω≤ω_cC\tag{5-5}
1−δp≤H(ejω)≤1+δp,0≤ω≤ωcC(5-5)
上式中,
ω
A
ω_A
ωA阻带起始频率,
ω
c
ω_c
ωc为通带截止频率,
δ
p
δ_p
δp是通带波纹,
δ
s
δ_s
δs是阻带波纹,
∆
ω
∆ω
∆ω是过渡带。通带波纹与阻带波纹也被称为通带起伏与阻带起伏。
在设计 FIR 滤波器时,都是对希望获得的频率响应做一定程度上的逼近,经过研究可知滤波器的阶数越大,逼近程度越好。然而,阶数太大会导致数字滤波器运算量的增加,并使其结构更加复杂,增大了硬件成本。所以设计阶数时要根据课题所希望达到的目标来确定,在滤波器性能与面积上进行权衡与折中。
FIR滤波器阶数N可以用下式近似估计:
N
≈
2
3
(
Δ
f
/
f
s
)
⋅
l
o
g
10
(
1
10
δ
p
δ
s
)
≈
F
(
δ
p
,
δ
s
)
Δ
f
/
f
s
+
1
(5-6)
\begin{aligned} N &≈\frac {2} {3(Δf/f_s)}·log_{10}{\bigg(\frac {1}{10δ_pδ_s}\bigg)} \\ &≈\frac {F(δ_p,δ_s)} {Δf/f_s} +1 \end{aligned}\tag{5-6}
N≈3(Δf/fs)2⋅log10(10δpδs1)≈Δf/fsF(δp,δs)+1(5-6)
式中,
F
(
δ
p
,
δ
s
)
F(δ_p,δ_s )
F(δp,δs)为通带波纹
δ
p
δ_p
δp和 阻带波纹
δ
s
δ_s
δs的函数,
f
s
f_s
fs为FIR滤波器输入信号的采样频率,
∆
f
∆f
∆f为过渡带宽
∆
f
=
f
A
−
f
c
∆f=f_A-f_c
∆f=fA−fc,其中
f
A
=
ω
A
/
2
π
f_A=ω_A /2π
fA=ωA/2π,
f
c
=
ω
c
/
2
π
f_c=ω_c / 2π
fc=ωc/2π。由公式可以看出即相同采样频率下,过渡带越平缓,滤波器越容易实现;而过渡带越陡峭,FIR滤波器的阶数越高,为了实现其性能所需要的结构就越多。
为了降低对滤波器阶数的苛刻要求,设计中常采用多个滤波器级联的方式,逐级抽取和滤波,来实现数字抽取滤波的目的。每一级都可以采用尽可能大的过渡带宽
∆
f
∆f
∆f和更小的采样速率
f
f
f,而且每一级的通带波纹
δ
p
δ_p
δp和 阻带波纹
δ
s
δ_s
δs更易于达到更高的指标,从而减小了数字抽取滤波器的总阶数,节省了面积和功耗。
下面就数字抽取滤波器的结构进行选择探讨。
设输入信号
x
(
n
)
x(n)
x(n)的信号带宽是的
α
f
s
/
(
2
D
)
αf_s /(2D)
αfs/(2D),其中
α
<
1
α<1
α<1,采样频率是
f
s
f_s
fs。结合图5.3滤波器的阶数表达式变为:
N
=
F
(
δ
p
,
δ
s
)
Δ
f
/
f
s
+
1
=
F
(
δ
p
,
δ
s
)
(
f
A
−
f
c
)
/
f
s
+
1
=
F
(
δ
p
,
δ
s
)
(
f
s
/
(
2
D
)
−
α
f
s
/
(
2
D
)
)
/
f
s
+
1
=
F
(
δ
p
,
δ
s
)
1
−
α
⋅
2
D
+
1
(5-7)
\begin{aligned} N &=\frac {F(δ_p,δ_s)} {Δf/f_s} +1 \\ &= \frac {F(δ_p,δ_s)} {(f_A-f_c)/f_s} +1\\ &= \frac {F(δ_p,δ_s)} {(f_s/(2D)-αf_s/(2D))/f_s} +1 \\ &= \frac {F(δ_p,δ_s)} {1-α}·2D +1 \end{aligned}\tag{5-7}
N=Δf/fsF(δp,δs)+1=(fA−fc)/fsF(δp,δs)+1=(fs/(2D)−αfs/(2D))/fsF(δp,δs)+1=1−αF(δp,δs)⋅2D+1(5-7)
由上式表明,若采样频率、信号带宽以及通带、阻带纹波等要素相同,那么抽取倍数越大,实现此滤波器所需要的阶数就越多。因此,单级实现方式构成的抽取滤波器阶数和抽取倍数成正比,而阶数直接关系到实现滤波器所需要的硬件成本。
讨论两级抽取滤波的频域特性:
参照图5.4,其中,第一级滤波器阶数为:
N
=
F
1
(
δ
p
,
δ
s
)
Δ
f
1
/
f
s
+
1
=
F
1
(
δ
p
,
δ
s
)
(
f
A
1
−
f
c
1
)
/
f
s
+
1
=
F
1
(
δ
p
,
δ
s
)
(
f
s
/
(
2
D
1
)
−
α
f
s
/
(
2
D
)
)
/
f
s
+
1
=
F
1
(
δ
p
,
δ
s
)
1
/
(
2
D
1
)
−
α
/
(
2
D
)
+
1
(5-8)
\begin{aligned} N &=\frac {F_1(δ_p,δ_s)} {Δf_1/f_s} +1 \\ &= \frac {F_1(δ_p,δ_s)} {(f_{A1}-f_{c1})/f_s} +1\\ &= \frac {F_1(δ_p,δ_s)} {(f_s/(2D_1)-αf_s/(2D))/f_s} +1 \\ &= \frac {F_1(δ_p,δ_s)} {1/(2D_1 )-α / (2D)} +1 \end{aligned}\tag{5-8}
N=Δf1/fsF1(δp,δs)+1=(fA1−fc1)/fsF1(δp,δs)+1=(fs/(2D1)−αfs/(2D))/fsF1(δp,δs)+1=1/(2D1)−α/(2D)F1(δp,δs)+1(5-8)
由于
D
1
⋅
D
2
=
D
D_1·D_2=D
D1⋅D2=D,上式可写为
N
=
F
1
(
δ
p
,
δ
s
)
1
/
(
2
D
1
)
−
α
/
(
2
D
)
+
1
=
F
1
(
δ
p
,
δ
s
)
1
/
(
2
D
1
)
−
α
/
(
2
D
1
⋅
D
2
)
+
1
=
F
1
(
δ
p
,
δ
s
)
D
2
−
α
⋅
(
2
D
1
⋅
D
2
)
+
1
(5-9)
\begin{aligned} N &= \frac {F_1(δ_p,δ_s)} {1/(2D_1 )-α / (2D)} +1 \\ &= \frac {F_1(δ_p,δ_s)} {1/(2D_1 )-α / (2D_1·D_2)} +1\\ &= \frac {F_1(δ_p,δ_s)} {D_2-α}·(2D_1·D_2) +1 \end{aligned}\tag{5-9}
N=1/(2D1)−α/(2D)F1(δp,δs)+1=1/(2D1)−α/(2D1⋅D2)F1(δp,δs)+1=D2−αF1(δp,δs)⋅(2D1⋅D2)+1(5-9)
上述式中,函数
F
1
(
δ
p
,
δ
s
)
F_1 (δ_p,δ_s )
F1(δp,δs)与
F
(
δ
p
,
δ
s
)
F(δ_p,δ_s )
F(δp,δs)相类似,两者不同的地方在于相对于后者,前者对波纹的要求提高了一倍。然而,由于波纹的值在函数中会进行对数处理,所以波纹大小并不是函数的主导影响因子。
又由于
α
<
1
α<1
α<1,同时
D
2
D_2
D2是远大于1的正实数,固第一级滤波器阶数近似为
N
=
F
1
(
δ
p
,
δ
s
)
D
2
−
α
⋅
(
2
D
1
⋅
D
2
)
+
1
=
F
1
(
δ
p
,
δ
s
)
⋅
2
D
1
+
1
(5-10)
\begin{aligned} N &= \frac {F_1(δ_p,δ_s)} {D_2-α}·(2D_1·D_2) +1 \\ &= F_1(δ_p,δ_s)·2D_1+1 \end{aligned}\tag{5-10}
N=D2−αF1(δp,δs)⋅(2D1⋅D2)+1=F1(δp,δs)⋅2D1+1(5-10)
经第一级滤波器之后,输入信号的采样频率经过抽取变为
f
s
/
D
1
f_s /D_1
fs/D1,由此第二级滤波器阶数为:
N
=
F
2
(
δ
p
,
δ
s
)
Δ
f
2
/
(
f
s
/
D
1
)
+
1
=
F
2
(
δ
p
,
δ
s
)
(
f
A
2
−
f
c
2
)
/
f
s
⋅
1
D
1
+
1
=
F
2
(
δ
p
,
δ
s
)
(
f
s
/
(
2
D
)
−
α
f
s
/
(
2
D
)
)
/
f
s
⋅
1
D
1
+
1
=
F
2
(
δ
p
,
δ
s
)
(
f
s
/
(
2
D
1
⋅
D
2
)
−
α
f
s
/
(
2
D
1
⋅
D
2
)
)
/
f
s
⋅
1
D
1
+
1
=
F
2
(
δ
p
,
δ
s
)
1
−
α
⋅
2
D
2
+
1
(5-11)
\begin{aligned} N &=\frac {F_2(δ_p,δ_s)} {Δf_2/(f_s/D_1)} +1 \\ &= \frac {F_2(δ_p,δ_s)} {(f_{A2}-f_{c2})/f_s}·\frac{1}{D_1} +1\\ &= \frac {F_2(δ_p,δ_s)} {(f_s/(2D)-αf_s/(2D))/f_s}·\frac{1}{D_1} +1 \\ &= \frac {F_2(δ_p,δ_s)} {(f_s/(2D_1·D_2)-αf_s/(2D_1·D_2))/f_s}·\frac{1}{D_1} +1 \\ &= \frac {F_2(δ_p,δ_s)} {1-α}·2D_2 +1 \end{aligned}\tag{5-11}
N=Δf2/(fs/D1)F2(δp,δs)+1=(fA2−fc2)/fsF2(δp,δs)⋅D11+1=(fs/(2D)−αfs/(2D))/fsF2(δp,δs)⋅D11+1=(fs/(2D1⋅D2)−αfs/(2D1⋅D2))/fsF2(δp,δs)⋅D11+1=1−αF2(δp,δs)⋅2D2+1(5-11)
上式中
F
2
(
δ
p
,
δ
s
)
F_2 (δ_p,δ_s )
F2(δp,δs)和
F
1
(
δ
p
,
δ
s
)
F_1 (δ_p,δ_s )
F1(δp,δs)相同。两级滤波器阶数相加可得:
N
1
+
N
2
=
F
1
(
δ
p
,
δ
s
)
⋅
2
D
1
+
F
1
(
δ
p
,
δ
s
)
1
−
α
⋅
2
D
2
+
1
=
F
1
(
δ
p
,
δ
s
)
⋅
2
⋅
(
1
−
α
)
⋅
D
1
+
D
2
(
1
−
α
)
+
2
(5-12)
\begin{aligned} N_1+N_2&=F_1 (δ_p,δ_s )·2D_1+\frac{F_1 (δ_p,δ_s )}{1-α}·2D_2+1 \\ &= F_1 (δ_p,δ_s )·2· \frac{(1-α)·D_1+D_2}{(1-α)}+2 \end{aligned}\tag{5-12}
N1+N2=F1(δp,δs)⋅2D1+1−αF1(δp,δs)⋅2D2+1=F1(δp,δs)⋅2⋅(1−α)(1−α)⋅D1+D2+2(5-12)
由于
D
1
D_1
D1和
D
2
D_2
D2都是大于1的正实数,同时
0
<
1
−
α
<
1
0<1-α<1
0<1−α<1,所以
(
1
−
α
)
⋅
D
1
+
D
2
(
1
−
α
)
<
D
1
−
α
(5-13)
\frac{(1-α)·D_1+D_2}{(1-α)}<\frac{D}{1-α}\tag{5-13}
(1−α)(1−α)⋅D1+D2<1−αD(5-13)
忽略
F
1
(
δ
p
,
δ
s
)
F_1 (δ_p,δ_s )
F1(δp,δs)与
F
(
δ
p
,
δ
s
)
F(δ_p,δ_s )
F(δp,δs)的大小差异,可以得到:
F
1
(
δ
p
,
δ
S
)
⋅
2
⋅
(
1
−
α
)
⋅
D
1
+
D
2
(
1
−
α
)
+
2
<
F
(
δ
p
,
δ
s
)
1
−
α
⋅
2
D
+
1
(5-14)
F_1 (δ_p,δ_S )·2·\frac{(1-α)·D_1+D_2}{(1-α)}+2<\frac {F(δ_p,δ_s)} {1-α}·2D +1\tag{5-14}
F1(δp,δS)⋅2⋅(1−α)(1−α)⋅D1+D2+2<1−αF(δp,δs)⋅2D+1(5-14)
由上式可以得出在设计目标相同的情况下,单级滤波器的阶数要多于多级级联滤波器的阶数和,即
N
1
+
N
2
<
N
(5-15)
N_1+N_2<N\tag{5-15}
N1+N2<N(5-15)
因此在高精度Sigma-Delta模数转换器中一般选择通过多级级联方式实现数字抽取滤波器的设计。
六、级联积分梳状(CIC)滤波器
级联梳状滤波器(CIC,Cascade Integrator Comb Filter)是一种线性相位的FIR滤波器,由两个部分组成:积分部分和梳状部分。在运算处理方面,信号在梳状滤波器中与其延迟信号相叠加,从而产生相位上的抵消。从特性曲线上来看,其频率响应由多组规律分布的波峰组成,图像像梳子一样,故而得名。其结构简单,滤波器系数为1,不需要额外电路存系数,并且没有复杂的乘法单元,所以能够很好的控制面积与功耗。
但其存在通带滚降的问题,会使得通带幅频特性较差,恶化整个滤波器的杂波滤除效果,需要在其后进行幅度补偿。它的实质是非递归的移动平均滤波器,由于能够在不需要乘法器的条件下能够进行高倍的抽取和内插,因而被广泛应用于多速率处理领域。
6.1 单级级联积分梳状滤波器
CIC滤波器的积分器部分由N个工作在高采样率
f
s
f_s
fs的理想数字积分器级组成,单个积分器的传递函数可以表示为
H
I
(
z
)
=
1
1
−
z
−
1
(6-1)
H_I (z)=\frac{1}{1-z^{-1}}\tag{6-1}
HI(z)=1−z−11(6-1)
CIC滤波器的梳状部分在低采样率
f
s
/
D
f_s /D
fs/D下工作,其中
D
D
D是抽取因子。该部分由
N
N
N个梳状级组成,每个级具有
M
M
M个样本的微分延迟。微分延迟是一个滤波器设计参数,用于控制滤波器的频率响应。在实际应用中通常取
M
=
1
M=1
M=1或者
2
2
2。单个梳状的传递函数可以表示为
H
C
(
z
)
=
1
−
z
−
D
M
(6-2)
H_C (z)=1-z^{-DM}\tag{6-2}
HC(z)=1−z−DM(6-2)
则单级CIC系统传递函数为
H
(
z
)
=
H
I
(
z
)
H
C
(
z
)
=
1
−
z
−
D
M
1
−
z
−
1
(6-3)
H(z)=H_I (z) H_C (z)=\frac{1-z^{-DM}}{1-z^{-1}}\tag{6-3}
H(z)=HI(z)HC(z)=1−z−11−z−DM(6-3)
其实现结构有直接实现和间接实现两种,分别如图6.1(a)和(b)所示。
单级直接实现(a)导致全部元件都工作在与输入信号一致的频率下,从而使硬件资源消耗较大。除此之外,由于差分器的每一级信号都要经过
D
D
D倍的延时,此类结构会占用过多的寄存器数量,因此难以硬件实现。
利用Nobel恒等变换(可以交换上/下采样处理和滤波处理的顺序而保持处理结果完全一致),得到间接实现结构(b),可以降低差分器的工作频率,充分减少寄存器的数量,以节省大量的存储单元。
令
z
=
e
j
ω
z=e^{jω}
z=ejω带入CIC系统传递函数,得到
H
(
e
j
ω
)
=
H
I
(
e
j
ω
)
H
C
(
e
j
ω
)
=
1
−
e
−
j
ω
D
M
1
−
e
−
j
ω
=
e
−
j
ω
D
M
/
2
⋅
(
e
j
ω
D
M
/
2
−
e
−
j
ω
D
M
/
2
)
e
−
j
ω
/
2
(
e
j
ω
/
2
−
e
−
j
ω
/
2
)
(6-4)
\begin{aligned} H(e^{jω} )&=H_I (e^{jω} ) H_C (e^{jω} ) \\ &=\frac{1-e^{-jωDM}}{1-e^{-jω}}\\ &=\frac{e^{-jωDM/2}·(e^{jωDM/2}-e^{-jωDM/2})}{e^{-jω/2}(e^{jω/2}-e^{-jω/2})}\tag{6-4} \end{aligned}
H(ejω)=HI(ejω)HC(ejω)=1−e−jω1−e−jωDM=e−jω/2(ejω/2−e−jω/2)e−jωDM/2⋅(ejωDM/2−e−jωDM/2)(6-4)
利用欧拉公式
s
i
n
θ
=
(
e
j
θ
−
e
−
j
θ
)
/
2
j
sinθ=(e^{jθ}-e^{-jθ})/2j
sinθ=(ejθ−e−jθ)/2j,
M
=
1
M=1
M=1化简得
H
(
e
j
ω
)
=
e
−
j
ω
D
/
2
⋅
2
j
s
i
n
(
ω
D
/
2
)
e
−
j
ω
/
2
⋅
2
j
s
i
n
(
ω
/
2
)
=
e
−
j
ω
(
D
−
1
)
/
2
⋅
s
i
n
(
ω
D
/
2
)
s
i
n
(
ω
/
2
)
=
D
⋅
e
−
j
ω
(
D
−
1
)
/
2
⋅
s
i
n
c
(
ω
D
/
2
)
s
i
n
c
(
ω
/
2
)
(6-5)
\begin{aligned} H(e^{jω} )&=\frac{e^{-jωD/2}·2jsin(ωD/2)}{e^{-jω/2}·2jsin(ω/2)} \\ &= e^{-jω(D-1)/2}·\frac{sin(ωD/2)}{sin(ω/2)} \\ &=D·e^{-jω(D-1)/2}·\frac{sinc(ωD/2)}{sinc(ω/2)} \end{aligned}\tag{6-5}
H(ejω)=e−jω/2⋅2jsin(ω/2)e−jωD/2⋅2jsin(ωD/2)=e−jω(D−1)/2⋅sin(ω/2)sin(ωD/2)=D⋅e−jω(D−1)/2⋅sinc(ω/2)sinc(ωD/2)(6-5)
其中
s
i
n
c
(
x
)
=
s
i
n
(
x
)
/
x
sinc(x)=sin(x)/x
sinc(x)=sin(x)/x。其幅频响应表达式为
∣
H
(
e
j
ω
)
∣
=
∣
s
i
n
(
ω
D
/
2
)
s
i
n
(
ω
/
2
)
∣
=
D
⋅
∣
s
i
n
c
(
ω
D
/
2
)
s
i
n
c
(
ω
/
2
)
∣
(6-6)
|H(e^{jω} )|=\bigg|\frac{sin(ωD/2)}{sin(ω/2)} \bigg|=D·\bigg|\frac{sinc(ωD/2)}{sinc(ω/2)} \bigg|\tag{6-6}
∣H(ejω)∣=∣
∣sin(ω/2)sin(ωD/2)∣
∣=D⋅∣
∣sinc(ω/2)sinc(ωD/2)∣
∣(6-6)
由 s i n c ( 0 ) = 1 sinc(0)=1 sinc(0)=1,所以当 ω = 0 ω=0 ω=0时,此时幅频响应取得最大值 D D D。在 ω D / 2 = k π ωD/2=kπ ωD/2=kπ( k k k为正整数)时, ∣ H ( e j ω ) ∣ = 0 |H(e^jω )|=0 ∣H(ejω)∣=0,即得到一系列零点,这些零点称为CIC滤波器的陷波频率点,利用这个特性去设计开发陷波器,用于抑制特定频率点。
图6.2(a)所示是利用Matlab中Filter Designer工具来设计CIC滤波器,输入参数:
D
=
128
D=128
D=128,
f
s
=
4
M
H
z
f_s=4 MHz
fs=4MHz,节数为1,即可得到单级CIC 抽取滤波器幅频响应如图3.2(b)所示,可以看出曲线就像梳子一样,每一个拱形曲线部分被称为膜瓣,每一个膜瓣的归一化带宽为
1
/
R
1/R
1/R。在单边谱中,幅度最大的那个膜瓣被称为主瓣,其他膜瓣被称为旁瓣。幅度最大值在
ω
=
0
ω=0
ω=0处取得,即其主瓣幅度值为
∣
H
(
e
j
ω
)
∣
=
D
=
128
=
42.1442
(
d
B
)
|H(e^{jω} )|=D=128=42.1442(dB)
∣H(ejω)∣=D=128=42.1442(dB)(将D值转成dB,即
20
l
o
g
10
D
20 log_{10}D
20log10D)。随着频率的增大,旁瓣衰减增加,其中第一旁瓣的幅度为:
∣
H
(
e
j
ω
)
∣
ω
D
2
=
3
π
2
=
∣
s
i
n
(
3
π
2
)
s
i
n
(
3
π
2
D
)
∣
=
∣
1
s
i
n
c
(
3
π
2
D
)
∣
(6-7)
\left| H(e^{jω} ) \right| _{\frac{ωD}{2}=\frac{3\pi}{2}}=\bigg|\frac{sin(\frac{3\pi}{2})}{sin(\frac{3\pi}{2D})} \bigg|=\bigg|\frac{1}{sinc(\frac{3\pi}{2D})} \bigg|\tag{6-7}
∣
∣H(ejω)∣
∣2ωD=23π=∣
∣sin(2D3π)sin(23π)∣
∣=∣
∣sinc(2D3π)1∣
∣(6-7)
当
D
≫
1
D≫1
D≫1时,第一旁瓣值近似为:
∣
H
(
e
j
ω
)
∣
ω
D
2
=
3
π
2
≈
2
D
3
π
(6-8)
\left| H(e^{jω} ) \right| _{\frac{ωD}{2}=\frac{3\pi}{2}}≈\frac{2D}{3\pi}\tag{6-8}
∣
∣H(ejω)∣
∣2ωD=23π≈3π2D(6-8)
则主瓣幅度和第一旁瓣幅度的差值(换算成dB时即为两者的比值)
α
s
α_s
αs为:
α
s
=
20
l
o
g
10
(
D
2
D
/
3
π
)
=
13.465
(
d
B
)
(6-9)
α_s=20 log_{10}(\frac{D}{2D/3π})=13.465(dB)\tag{6-9}
αs=20log10(2D/3πD)=13.465(dB)(6-9)
由上式可知,单级CIC抽取滤波器的旁瓣幅值较大,主瓣与旁瓣幅值差只有13.465dB,说明滤波器的阻带衰减很小,噪声抑制能力有限,故不能达到设计要求,为了解决这个问题,需要采用多个CIC抽取滤波器的级联结构。
6.2 多级级联积分梳状滤波器
对于多级CIC滤波器,设L为CIC滤波器的级数,则传递函数有
H
(
z
)
=
H
I
L
(
z
)
H
C
L
(
z
)
=
(
1
−
z
−
D
M
)
L
(
1
−
z
−
1
)
L
(6-10)
H(z)=H_I^L (z) H_C^L (z)=\frac{(1-z^{-DM})^L}{(1-z^{-1})^L}\tag{6-10}
H(z)=HIL(z)HCL(z)=(1−z−1)L(1−z−DM)L(6-10)
取M=1时,其幅频响应为
∣
H
(
e
j
ω
)
∣
=
∣
s
i
n
(
ω
D
/
2
)
s
i
n
(
ω
/
2
)
∣
L
=
D
L
⋅
∣
s
i
n
c
(
ω
D
/
2
)
s
i
n
c
(
ω
/
2
)
∣
L
(6-11)
|H(e^{jω} )|=\bigg|\frac{sin(ωD/2)}{sin(ω/2)} \bigg|^L=D^L·\bigg|\frac{sinc(ωD/2)}{sinc(ω/2)} \bigg|^L\tag{6-11}
∣H(ejω)∣=∣
∣sin(ω/2)sin(ωD/2)∣
∣L=DL⋅∣
∣sinc(ω/2)sinc(ωD/2)∣
∣L(6-11)
幅度最大值在
ω
=
0
ω=0
ω=0处取得,即其主瓣幅度值为
∣
H
(
e
j
ω
)
∣
=
D
L
|H(e^{jω} )|=D^L
∣H(ejω)∣=DL,主瓣幅度和第一旁瓣幅度的比值
α
s
α_s
αs为:
α
s
=
20
l
o
g
10
(
D
2
D
/
3
π
)
L
=
L
⋅
13.465
(
d
B
)
(6-12)
α_s=20log_{10}\bigg(\frac{D}{2D/3\pi}\bigg)^L=L·13.465(dB)\tag{6-12}
αs=20log10(2D/3πD)L=L⋅13.465(dB)(6-12)
从上式可以看出,多级结构的阻带衰减有所改善,进一步减小了带内混叠。其每增加一级级联,阻带衰减增加
13.465
d
B
13.465 dB
13.465dB。当
L
=
3
L=3
L=3时,经计算得到,阻带衰减为
40.395
d
B
40.395dB
40.395dB,CIC抽取滤波器的幅频响应曲线如图6.3所示。
对比图6.2和6.3,可以看出多级级联结构的CIC 抽取滤波器的阻带衰减比单级结构增大很多,所以级联结构被广泛的使用。但是随着级数
L
L
L的增加,CIC滤波器在带宽内的通带滚降也会越来越大,这就意味着丢失的有用信号信息越来越多,使得信噪比下降,精度降低。因此必须采用一些措施取弥补这个通带滚降,如级联补偿滤波器来降低通带滚降的影响。
多级CIC滤波器结构通常划分为递归结构和非递归结构。递归结构也是经典的L级级联结构(即Hogenauer结构)如图6.4所示。
对L级CIC滤波器的传递函数进行等价变形,即可得到非递归结构的传递函数:
H
(
z
)
=
(
1
−
z
−
D
M
)
L
(
1
−
z
−
1
)
L
=
∏
k
=
0
(
l
o
g
2
D
)
−
1
(
1
+
z
−
2
k
)
L
(6-13)
H(z)=\frac{(1-z^{-DM})^L}{(1-z^{-1})^L}=\prod_{k=0}^{(log_2D)-1}(1+z^{-2^k})^L\tag{6-13}
H(z)=(1−z−1)L(1−z−DM)L=k=0∏(log2D)−1(1+z−2k)L(6-13)
与递归结构相比,其输出通常只与输入存在关联,不存在输入输出之间的反馈回路,所以该结构具有相对较高的稳定性。其结构如图6.5所示。
此类结构前级滤波器工作速度较高,但第一级输出字长相比递归结构小很多;而后级FIR滤波器的字长相比前级较长,但经过几级抽取后,滤波器处于低速状态下,结构的功耗相对较小。针对非递归结构而言,其不足之处就是设计更为复杂,当抽取倍数相同时非递归结构的级联总数通常情况下会超过递归结构的级联总数,所以其占用的硬件资源也会更大,因此需要结合设计需求进行合理选择。
七、补偿滤波器
7.1 基本原理
为了保证信号不受衰减,使得整个数字抽取滤波器的通带纹波满足要求,此时就需要一种幅频特性与CIC滤波器的幅频特性相反的滤波器,在通带内对CIC滤波器的衰减进行补偿,这种滤波器就是补偿滤波器。
补偿滤波器也是一种特殊的FIR滤波器,其可以分为两类:一类是升幅FIR补偿滤波器,简称CFIR滤波器;另一类是内插二阶多项式(Interpolated Second Order Polynomials,ISOP)滤波器。
(1) CFIR滤波器
将CIC滤波器的幅频特性取倒数即可得到CFIR的幅频响应,其传输函数具有反sinc函数特性, 在频域进行补偿后便可以获得增益为1的通带特性。L级CIC滤波器幅频特性满足:
∣
H
(
e
j
ω
)
∣
=
D
L
⋅
∣
s
i
n
c
(
ω
D
/
2
)
s
i
n
c
(
ω
/
2
)
∣
L
⟹
ω
=
2
π
f
D
L
⋅
∣
s
i
n
c
(
π
f
D
)
s
i
n
c
(
π
f
)
∣
L
(7-1)
|H(e^{jω} )|=D^L·\bigg|\frac{sinc(ωD/2)}{sinc(ω/2)} \bigg|^L\overset{ω=2πf}{\Longrightarrow}D^L·\bigg|\frac{sinc(\pi fD)}{sinc(\pi f)} \bigg|^L \tag{7-1}
∣H(ejω)∣=DL⋅∣
∣sinc(ω/2)sinc(ωD/2)∣
∣L⟹ω=2πfDL⋅∣
∣sinc(πf)sinc(πfD)∣
∣L(7-1)
由于通带归一化频率与采样频率的比值远远小于1,
∣
s
i
n
c
L
(
π
f
)
∣
≈
1
|sinc^L (πf)|≈1
∣sincL(πf)∣≈1,则可化简为:
∣
H
(
e
j
ω
)
∣
=
D
L
⋅
∣
s
i
n
c
L
(
π
f
D
)
∣
(7-2)
|H(e^{jω} )|=D^L·|sinc^L(\pi fD)| \tag{7-2}
∣H(ejω)∣=DL⋅∣sincL(πfD)∣(7-2)
由此CFIR的幅频特性可得:
∣
H
C
F
I
R
(
e
j
ω
)
∣
=
1
D
L
⋅
∣
s
i
n
c
L
(
π
f
D
)
∣
(7-3)
|H_{CFIR}(e^{jω} )|=\frac{1}{D^L·|sinc^L(\pi fD)|} \tag{7-3}
∣HCFIR(ejω)∣=DL⋅∣sincL(πfD)∣1(7-3)
还可以根据其是否需要进行降采样操作分为单速率模式和多速率模式,在单速率模式下,FIR补偿滤波器只会进行通带滚降补偿;在多速率模式下,FIR补偿滤波器既会发挥通带补偿的作用,又会对输入信号实现降采样操作。这种结构的优点在于,FIR补偿滤波器的阻带衰减好,并且可以加入降采样功能,有效降低前级 CIC滤波器的降采样数,但其硬件结构更为复杂。若想在减小过渡带宽度的同时且具有较好的通带补偿效果,就需要提高FIR补偿滤波器的阶数。
关于实现方式,可以采用Matlab中filterBuilder工具箱进行设计。
(2) ISOP滤波器
ISOP滤波器的系统传递函数可以写为:
P
(
z
)
=
1
∣
c
+
2
∣
(
1
+
+
c
z
−
I
+
z
−
2
I
)
(7-4)
P(z)=\frac{1}{|c+2|}(1++cz^{-I}+z^{-2I}) \tag{7-4}
P(z)=∣c+2∣1(1++cz−I+z−2I)(7-4)
其中I是内插因子,且为正整数,c是实数且
c
<
−
2
c<-2
c<−2。其频域响应函数为:
∣
P
(
e
j
ω
)
∣
=
1
∣
c
+
2
∣
(
1
+
2
c
o
s
I
φ
)
(7-5)
|P(e^{jω} )|=\frac{1}{|c+2|}(1+2cosIφ)\tag{7-5}
∣P(ejω)∣=∣c+2∣1(1+2cosIφ)(7-5)
由式(4-5)可以看出,频率响应在
ω
ϵ
[
0
,
π
/
I
]
ωϵ[0,π/I]
ωϵ[0,π/I]范围内不断递增,而且其对应的周期为
2
π
/
I
2π/I
2π/I。利用这一特性,通过调节内插因子I和实数c的值,使得ISOP滤波器正好可以补偿CIC滤波器的通带滚降。区间
ω
ϵ
[
0
,
π
/
I
]
ωϵ[0,π/I]
ωϵ[0,π/I]使得
∣
P
(
e
j
ω
)
∣
|P(e^{jω} )|
∣P(ejω)∣单调递增的宽度应与带宽
2
π
f
B
2πf_B
2πfB保持一致。
可以根据具体的应用指标要求选择合适的补偿滤波器去补偿CIC滤波器的通带滚降。
八、半带滤波器
半带滤波器(HB Filter ,Half Band Filter)是一种特殊的线性相位FIR滤波器,其他同等长度FIR滤波器相比因为其近一半系数是0,在处理数据时大大减少了系统的运算量。因此当抽取系统需要进2倍降采样时,半带滤波器具有独特的优越性。其简化的频率特性示意图如图8.1所示。
半带滤波器是一种具有如下特性的特殊的FIR滤波器:
- 通带波纹和阻带波纹相等,即 δ p = δ s δ_p=δ_s δp=δs;
- 通阻带在中心频率点 ω = π / 2 ω=π/2 ω=π/2左右对称,即满足 ω p + ω s = π ω_p+ω_s=π ωp+ωs=π;
- 幅频响应满足下式:
H H B ( e j ω ) = 1 − H H B ( e j ( π − ω ) ) (8-1) H_{HB} (e^{jω} )=1-H_{HB} (e^{j(π-ω)}) \tag{8-1} HHB(ejω)=1−HHB(ej(π−ω))(8-1) - 当n为偶数时,冲激响应满足下式:
h ( n ) = { 0.5 , n = 0 0 , n = ± 2 , ± 4 ⋅ ⋅ ⋅ (8-2) h(n) = \begin{cases} 0.5 &,n=0 \\ 0 &, n=±2,±4··· \\ \end{cases} \tag{8-2} h(n)={0.50,n=0,n=±2,±4⋅⋅⋅(8-2)
上式(8-2)中,
h
(
n
)
h(n)
h(n)也代表的是HB滤波器的系数,所有偶数点上的系数都为0,所以半带滤波器的电路结构与其他FIR滤波器相比节约了大量运算单元。
由通阻带关于中心频率对称,在已知采样频率
f
s
f_s
fs和通带截止频率
f
p
f_p
fp时,可以确定其过渡带宽∆f的大小,即:
∆
f
=
f
s
2
−
2
f
p
(8-3)
∆f=\frac{f_s}{2}-2f_p\tag{8-3}
∆f=2fs−2fp(8-3)
由之前的抗混叠可知,通带截止频率应该满足:
ω
c
≤
π
D
(8-4)
ω_c≤\frac{π}{D}\tag{8-4}
ωc≤Dπ(8-4)
当
D
=
2
D=2
D=2时,理想的数字抽取滤波应当符合:
H
i
d
(
e
j
ω
)
=
{
1
,
∣
ω
∣
≤
π
/
2
0
,
其他
(8-5)
H_{id}(e^{jω} ) = \begin{cases} 1 &,|ω|≤π/2 \\ 0 &, 其他 \\ \end{cases} \tag{8-5}
Hid(ejω)={10,∣ω∣≤π/2,其他(8-5)
对比图8.2的(a)和(b)比较可知,半带滤波的频率响应在
(
π
/
2
∼
ω
A
)
(π/2 \sim ω_A)
(π/2∼ωA)区间上,不满足抗混叠的条件,则会出现抽取后出现图8.2(c)的在过渡带
(
2
ω
C
∼
π
)
(2ω_C\simπ)
(2ωC∼π)内混叠。图8.2(c)是由抽取原理(在频域上,输出信号频谱是由输入信号频谱在ω轴上每间隔
2
π
/
D
2π/D
2π/D的移位叠加,再进行D倍的扩展而成)得到的。
混叠的区间对应于抽取之前
(
ω
C
∼
π
/
2
)
(ω_C\simπ/2)
(ωC∼π/2),所以对应于这个区间的信号半带滤波器抽样滤波处理之后是无法恢复的,但是抽样滤波后通带范围变成
(
0
∼
2
ω
c
)
(0\sim2ω_c)
(0∼2ωc),即通带范围内没有发生混叠,也是
(
0
∼
ω
c
)
(0\simω_c)
(0∼ωc)内的信号能够完全恢复。
如果系统的降采样率为
D
=
2
M
D=2^M
D=2M,可以用M个半带滤波器级联的形式来实现,其结构图如8.3所示。
调用Matlab中filterBuilder工具箱来实现半带滤波器。设计界面如图8.4所示。
九、字长处理
1、CIC滤波器的字长处理
当数字抽取滤波器的第一级滤波器采用CIC滤波器时,需要注意增益处理的问题。由多级CIC滤波器幅频特性中可以看出,信号经过多级级联的CIC滤波器后会产生一定的增益G,其数学表达式为
G
=
D
L
G=D^L
G=DL
由上式可以看出,CIC滤波器的增益与抽取因子和阶数呈指数倍正相关。因此在实现CIC滤波器结构的时候,每一级电路的设计过程中都需要考虑输入数据由于增益而可能产生的溢出,设计合适的位数。
用二进制表示的输入信号位数
B
m
a
x
B_{max}
Bmax需要满足如下条件才能保证CIC滤波器的结果不会发生溢出:
B
m
a
x
=
L
∙
l
o
g
2
D
+
B
i
n
−
1
B_{max}=L∙log_2D+B_{in}-1
Bmax=L∙log2D+Bin−1
式中,L是CIC滤波器的级数,D是CIC滤波器的抽取因子, B i n B_{in} Bin是输入信号的二进制位数。
2、CFIR滤波器和HB滤波器的系数处理
在使用Simulink建模得到的CFIR滤波器和HB滤波器的系数均为双精度即double型,理想的滤波器其系数是无限字长的,但是,由于实际的硬件单元处理的数据的字长却是有限的,所以需要在设计时要对其系数进行量化和截短。在数字滤波器的实现过程中选择适当的系数量化格式有助于降低运算量和运算复杂度。
针对FIR滤波器而言,其阻带衰减的最大值为
δ
s
δ_s
δs,则有:
δ
s
≤
20
l
o
g
10
N
2
−
B
δ_s≤20 log_{10}N2^{-B}
δs≤20log10N2−B
其中B是量化位宽,N是滤波器的阶数,则可以得到量化位宽最大值为:
B≤log_2N+(|δ_S |)/20 log_210
在设计过程中可以在半带滤波器的性能依旧满足设计指标要求的条件下,对量化位数进行一定程度的缩减,以减小硬件资源损耗。
3、CSD编码
在数字设计时,用得最多的是二进制编码的方法来表示一个数,但是这里为处于节省硬件资源的角度,采用一种特殊的编码方式——规范符号字(Canonical Signed Digit,CSD)编码来对滤波器系数进行量化编码处理。
以一个十进制小数a=0.295074462890625为例进行CSD编码。有如下步骤:
采用“Q值量化法”将十进制的小数乘以2^Q转化为十进制整数,再进行进制编码,再换算为补码。假设转换的二进制码位宽为16位,即Q=16,那么经过Q值量化法转换得到的二进制编码b位0100101110001010,然后换算为补码(正数的补码是其本身);
对于普通二进制编码,从其低位到高位的顺序,如果发现编码中出现连续的“1”,即“1 1”,则用“1 0 -1”来代替;
用来代替的“1 0 -1”低位的“0 -1”替换掉原序列中的“1 1”,“1 0 -1”中的最高位“1”不需要写上去,只需要将此“1”与原序列中相邻的高位作为二进制求和运算;
若求和为“1”,则往前进位,且该位变为“0”,否则保持不变;
以此类推,最终完成整个二进制码序列的转换,得到CSD编码。
最终得到其CSD编码如表9.1所示。
表9.1 二进制编码转CSD编码
相比于二进制编码进行的运算而言,滤波器系数经过CSD编码之后,非零位可以减少约33%,这就代表着加法或减法的运算量可以减少33%,运算量的减少也就预示着硬件资源的消耗减少,从而达到降低功耗和面积的目的。
十、数字抽取滤波器设计
1、架构选取
由前面分析的单极结构会带来阶数过高,资源消耗的问题,提出了使用多级结构来节省开销。下表7.1是针对不同的应用场景和指标要求提出一些常见的多级级联结构。均是CIC滤波器、CFIR滤波器、HB滤波器、FIR滤波器等的不同组合。
表10.1 数字抽取滤波器的多级结构具体表现形式
2、各级滤波器的设计参数
表 10.2各级滤波器的设计参数
参数名称 | CIC滤波器 | CFIR滤波器 | HB1滤波器 | HB2滤波器 |
---|---|---|---|---|
降采样率 | 128 | 2 | 2 | 2 |
输入采样频率 | 4MHz | 31.25kHz | 15.625kHz | 7.8125kHz |
输出采样频率 | 31.25kHz | 15.625kHz | 7.8125kHz | 3.90625kHz |
通带边界频率 | 1kHz | 1kHz | 1kHz | 1kHz |
阻带边界频率 | - | 14.625kHz | 6.8125kHz | 2.90625kHz |
通带波纹 | - | 0.001dB | 0.001dB | 0.001dB |
阻带衰减 | - | 150dB | 150dB | 150dB |
表 10.2给出了各级滤波器的设计参数,根据指标,在MATLAB中,利用FDATool或filterBuilder工具箱,在动态系统建模工具Simulink中搭建滤波器架构。
参考文献
Sigma-delta_ADC采样数字滤波器的研究与设计_任雪
一种16位Sigma-Delta ADC中抽取滤波器的研究与设计_程成
高阶离散时间多比特Sigma-Delta调制器技术研究_左康
精密Σ-Δ_ADC中高性能数字抽取滤波器的研究与设计_赵诗雨
一种应用于∑-△ADC的低功耗数字抽取滤波器设计_汪杰
Sigma-Delta模数转换器中数字抽取滤波器的设计与ASIC实现_余向东
基于Sigma-Delta转换器的数字滤波器设计_赵宏亮