数字滤波器设计是信号处理原理的必考考题,但此题的过程相对来说非常机械,只需要按照步骤照搬即可,这里首先记录滤波器设计的步骤,然后对原理进行简单分析
滤波器设计的问题形状
滤波器设计的问题往往会给出以下参数:
- 滤波器类型,例如高通、低通、带通等
- 通带边缘频率
- 阻带边缘频率
- 采样频率
- 阻带衰减,单位为分贝(dB)
- 窗函数表,给出了可以选择的窗函数的阻带衰减和窗内项数等参数
FIR滤波器设计
低通FIR滤波器
步骤如下:
- 计算滤波器的截止频率fc,使用通带边缘频率和阻带边缘频率的平均值
- 计算截止频率对应的数字频率,注意采样频率fs对应的数字频率(角频率)为2π,因此fc对应的数字频率为ωc=2πfc/fs,计算出h(n)=nπsin(nωc)
- 根据窗函数表选择合适的窗函数,选择阻带衰减不低于于题目要求的最简单的窗函数即可
- 根据窗函数的窗内项数计算出N,得到窗函数的表达式
- 将窗函数与h(n)相乘,得到有限长脉冲响应
- 将脉冲响应右移,使得第一个非零值在n=0处(这相当于对信号进行时移,根据DTFT时移性质,这不会改变幅频响应,只会改变相频响应,但我们对后者并不关心,因此时移不会带来滤波效果的改变)
下面对上述步骤进行实例演示
例: 对以下要求设计低通FIR滤波器
要求: 通带边缘频率10kHz,阻带边缘频率22kHz,采样频率50kHz,阻带衰减75dB,可选窗函数如下表

Step1: 截止频率为
fc=210+22=16kHz
Step2: 截止频率对应的数字频率
ωc=fs2πfc=2516π
于是
h(n)=nπsin(16nπ/25)
Step3: 阻带衰减为75dB,选择布莱克曼窗
Step4: 窗内项数
N=5.98T.W.fs=5.981250=24.92
取不小于N的最小奇数,有
N=25
于是窗函数为
0.42+0.5cos12πn+0.08cos6πn
Step5: 有限长脉冲响应为
h′(n)=h(n)w(n)=nπsin(16nπ/25)(0.42+0.5cos12πn+0.08cos6πn)
Step6: 脉冲响应第一个非零值为n=−12,于是右移12单位得到
h′(n)=h(n−12)w(n−12), 0≤n≤24
于是完成了滤波器设计
带通、高通FIR滤波器
设计带通、高通FIR滤波器只需要对低通FIR滤波器进行频移,由于DTFT的频移特性:
x(n)ejω0n⇔X(ω−ω0)
又由于数字滤波器的冲激响应需要是实偶对称序列,因此这里乘的频移变换核需要是实偶序列,取出其实部,则使用
x(n)cos(ω0n)
作为频移后的结果
实际计算中应在Step5中进行频移,然后再计算Step6的时移
对于带通滤波器,设其通带中心频率为f0,则
ω0=fs2πf0
对于高通滤波器,则为
ω0=fs2π2fs=π
滤波器设计的理论分析
阻带衰减的含义
分贝不止可以用来表示声音大小,还可以表示功率的比值
事实上,声音的分贝数表示的也是声音功率和最低可感知功率的比值
其定义为,功率P1比P2高的分贝数为
10log10P2P1
即:10dB=1B代表功率比值为10,于是每1dB代表101/10的功率比值
滤波器的阻带衰减就是此意,例如阻带衰减40dB表示信号通过滤波器后,阻带部分至少要衰减到原来的10−4
h(n)的含义
这里的h(n)实际上就是理想低通滤波器的单位冲激响应。考虑理想低通滤波器:
H(ω)={1,0,∣ω∣≤ωcωc<∣ω∣≤π
对其应用IDTFT,得到
h(n)=2π1∫−ωcωcejωndω=2πjn1ejωn−ωcωc=2πjn2jsin(ωcn)=nπsin(ωcn)
窗函数
按理说,可以直接使用h(n)作为数字滤波器,但其序列有无限项,在实践中无法实现,窗函数的目的就是通过对无限项的序列加窗,使得其在尽量不改变原有滤波能力的前提下转变为有限项序列。下面以矩形窗函数为例进行分析
对矩形窗函数而言,其窗函数形式为
w(n)={1,0,∣n∣≤2N−1else
其频率响应为
W(ω)=n=−(N−1)/2∑(N−1)/2e−jωn=1−e−jωejω(N−1)/2(1−e−jωN)
其幅频响应为
∣W(ω)∣=∣1−e−jω∣∣1−e−jωN∣
其中
∣1−e−jω∣=(1−cosω)2+sin2ω=2−2cosω=2∣sin2ω∣
于是
∣W(ω)∣=∣sin(ω/2)sin(Nω/2)∣
加窗得到的滤波器的幅频响应为
∣H′(ω)∣=∣H(ω)⊗W(ω)∣=∫−ππH(λ)∣W(ω−λ)∣dλ
=∫−ωcωcsin[(ω−λ)/2]sin[N(ω−λ)/2]dλ
这相当于将窗函数平移叠加,于是得到的新的幅频相应的过渡带近似为端点位置窗函数的主瓣宽度
即:过渡带宽度ftw满足
fs2πftw=N2π
于是
N=ftwfs
实际的过渡带宽度需要根据通带、阻带的定义对上述积分进行数值计算,比较复杂,但上面的估计结果与表格值
N=0.91ftwfs
比较接近
而阻带衰减可以近似为窗函数幅频响应主瓣高度和最大旁瓣高度的比值,约为
∣W(3π/N)∣∣W(0)∣=2N/3πN=23π=4.712
功率为幅度的平方,因此阻带衰减估算为
4.7122≈13.46dB
这与表中的数据有较大出入,但这是因为我们在计算过程中使用了较大幅度的近似