适合单片机实时处理的简单FIR滤波器设计
2基本原理
2.1 窗函数设计滤波器[6,7]原理简述
设滤波器的理想频率响应函数为Hd(ejw),则其对应的单位脉冲响应为:
窗函数法设计滤波器的基本原理就是用有限长度单位脉冲响应序列h(n)去逼近hd(n)。通常hd(n)是无限长序列,且是非因果的,所以用窗函数w (n)将hd(n)进行截断并作加权处理得到:
h(n)=hd(n)w(n)
h(n)就是实际设计的FIR数字滤波器的单位脉冲响应序列,其频率响应函数为:
其中,N为所选窗函数w(n)的长度。同时,如果要求滤波器具有线性相位特性,则h(n)必须满足:
h(n)=±h(N-1-n)
2.2方法改进及实现
设计中选用FIR I型滤波器[8,9],即满足h(n)=+h(N-1-n)且N为奇数。选用Hamming窗对理想滤波器的单位脉冲响应进行截断,窗函数为:
w(n)=0.54-0.46 cos(2nn/N),N=0,1,2,…,N-1
按常规设计方法直接设计50 Hz FIR陷波器,要达到较好的滤波效果,滤波器的阶数较高且滤波器系数多为小数,不利于通用单片机进行实时处理。设定采样频率Fs=200 Hz,先用窗函数法设计一个低频特性较好的30 Hz低通滤波器,然后利用Matlab FDATOOL工具箱里的量化工具对滤波器的系数进行量化和调整。
量化后滤波器的传递函数为:
Hl(Z)=0.125+0.25 z1+0.375 z2+
0.25 z-3+0.125 z-4
3滤波器波形特性比较
由以上滤波器的幅频特性,结合零、极点调整法和试探法反复对滤波器系数进行调整,使其具有更好的低频特性和50 Hz衰减特性。
系数调整后滤波器的传递函数为:
H2(z)=-0.25+z-1-0.5 z-2+z-3-0.25 z-4
由滤波器幅频特性曲线可以看出,经系数调整后滤波器具有更好的低频特性,-3 dB截止频率为35 Hz,同时对50 Hz工频干扰的衰减达到-38 dB。但是,系数调整也使滤波器的高频特性变差,在68.8 Hz处的增益超过+3 dB。为了滤除心电信号中的高频噪声,必须对50 Hz以上频段范围内的信号进行衰减。
同样,可以用窗函数法结合试探法设计了一个低频特性较好且具有良好高频衰减特性的40 Hz低通滤波器。利用Matlab FDATOOL工具箱里的量化工具对滤波器的系数进行量化和调整。
量化后滤波器的传递函数为:
H3(z)=0.25+0.5 z-1+0.25 z-2
由幅频特性曲线可以看出,量化后滤波器的一3 dB截止频率为36.3 Hz且具有良好的低频和高频特性。综合以上两种滤波器的幅频特性,将这两种滤波器进行级联。级联后滤波器的传递函数为:
滤波器的幅、相频率特性由图4可以看出,级联后滤波器的一3 dB截止频率为28.1 Hz,在50 Hz频率处的衰减为-44.2 dB,高频最小衰减为-10 dB,且滤波器在通带内具有严格的线性相位特性。该滤波器的群延时为:
t=[(N-1)/2]*TS=3*5=15 ms
由心电信号的功率谱可知,-28 dB的截止频率能够满足心电监护的需要。
4滤波效果
将上述设计的滤波器用于实际心电信号滤波取得了良好的滤波效果。
5 结 语
由滤波器的幅、相频率特性和实际滤波效果可以看出,该滤波器不但能够很好地滤除工频干扰而且具有良好的低频特性。同时,滤波器的系统函数中分子、分母的各 相系数均为整数,便于乘法运算。并且分母正好是2的4次幂,在进行除法运算时可以直接由一条移位指令完成。这无疑给编程和运算都带来了极大的方便。
本滤波器结构简单、占用资源少、滤波效果好,非常适用于嵌入式便携设备中的信号滤波。同时,该滤波器的计方法也可以推广到其他相似性能指标的滤波器设计中在科研实践中一定会有较大的发展前途。
