高冲击信号采集系统中数字滤波器的软件实现
扫描二维码
随时随地手机看文章
0 引言
在进行高冲击信号采集试验时,虽然在采集板中设计了硬件滤波单元,但依然存在着采集信号毛刺较多的现象,这为后续信号的识别和分析带来了不便,因此需要采用软件滤波的方法对信号进行再次处理。
常用的数字滤波器有IIR滤波器和FIR滤波器。从性能上看,IIR滤波器所用的系数少,可以提高运算速度,但其相位响应,特别是带沿为非线形,稳定性不能一直得到保证。FIR数字滤波器可以得到严格的线性相位,但对同一幅频特性要求,实现阶数高,运算量大。因此一般的IIR和FIR数字滤波器难以做到严格的线性相位与小运算量兼顾,再加上采用浮点运算,影响了对信号的实时处理速度。
在对采集的冲击信号进行软件滤波处理时,为了加快计算速度,对滤波器的性能要求并不是很高,滤波器设计应简单易行,因此整系数滤波器是很好的选择。这里详细说明了建立在极零点抵消基础上的简单整系数滤波器的递归实现方法,并在硬件自带开发环境IAREmbedded Workbench中编写滤波算法,将其应用在所设计的信号采集系统中,取得了较好的试验效果。
1 建立在极零点抵消基础上的简单整系数滤波器
建立在极零点抵消基础上的整系数滤波器以“梳状滤波器”为基础,通过设置不同的极点位置及抵消相应位置处的零点,分别设计出具有低通、高通、带通和带阻特性的整系数滤波器。
若一系统的传递函数为:
可以看出,H(z)有M个零点均匀分布在单位圆上,它的频率响应为:
这构成了一个最简单的“梳妆滤波器”,它由其在2π内有M个等分零点,并且幅度为梳妆而得名。
若z=1处设置一个极点,用以抵消H(z)处的零点,则系统的传递函数为:
当M=10时,其极一零分布以及幅频特性分别如图1和图2所示。可以看出,该滤波器具有低通特性,系数为整数。
由图2可以看出,滤波器的阻带性能不好,这是因sin函数的较大边瓣引起的。为了压缩这些边瓣,取得更好的性能,需将滤波器的传递函数HLP(z)取k次方,得到:
为了进行归一化处理,需将式(5)除以N,滤波器的系数就是非整数,无法体现进行滤波器整系数的优势。因此可以先将信号数据进行滤波,滤波后的数据再除以N,这样既利用了整系数滤波器的良好性能,又达到了归一化的目的。通过这种方法设计出的滤波器,性能基本可满足要求,在设计带通和带阻滤波器时,频率的选择会受到一定限制。
2 低通数字滤波器的软件实现
2.1 整系数低通滤波器的实现
分析所要应用的硬件电路和采集信号的参数时,结合上一节所介绍的滤波器设计方法,进行简单整系数低通滤波器的设计。要求截止频率fp=1 kHz,采样频率fs=60 kHz,通带衰减ap=3 dB,阻带衰减as=40 dB。由式(4)及式(5),有:
由已知条件可知,相应数字滤波器3 dB的通带边界频率为:
又由于在0~2π内M个过零的点中,峰值出现在3π/M处,因此阻带中对应as=40 dB的频率ωs=3π/M。
由式(6)可得:
所以,k=as/13.46=40/13.46=2.971,在此取k为整数,四舍五入得到k=3。
又有:
这里取M为偶数,因此M=16。
由此可以得到所设计的低通滤波器的传递函数为:
对应的差分方程为:
可以得到:
为了得到所设计的低通滤波器的幅频特性曲线,应将传递函数进行归一化处理,即:
得到幅频特性曲线如图3所示。
2.2 巴特沃斯低通滤波器的实现
Matlab软件提供了丰富的数字滤波函数,可模拟出数字滤波器的幅频、相频特性。为了对比滤波效果,在Matlab软件中利用现有的巴特沃斯低通滤波器设计函数:
仿真出合适的巴特沃斯低通数字滤波器。式中:b,a分别代表所设计的滤波器传递函数中分子系数和分母系数;n为滤波器阶数;ωn为归一化采样频率,取值范围为0~1。
根据已知条件:滤波器的截止频率为1 kHz,采样频率为60 kHz,确定滤波器的阶数为4。设计的数字滤波器频率响应如图4所示。
3 简单整系数数字滤波在信号采集系统中的应用
设计的信号采集系统中中央处理器为MSP430F449超低功耗系列单片机,选用MEMS高g值加速度传感器作为系统的信号输入环节。采集系统硬件电路的采样频率为60 kHz,硬件滤波器的截止频率为10 kHz左右,结合所需采集的冲击信号,分析并确定软件滤波截止频率为1 kHz。结合前面所设计滤波器的传递函数,在硬件的开发环境IAR Embedded Workbench中编写滤波算法,调试成功后,应用在信号采集系统的硬件电路中,进行测试试验。
应用四阶巴特沃斯低通滤波器和整系数数字滤波器对采集的原始冲击信号进行滤波。滤波结果如图5、图6所示。从图中可以看出,两种滤波方法有效地对原始信号进行了平滑处理,且滤波后的曲线基本相似,保证了原有数据的真实性。但所设计的整系数滤波器,系数为整数,设计简单,运算速度块,同时考虑到单片机内运行定点数的计算速度要远远大于浮点数,且MSP430系列单片机对16位数据类型的操作效率最高,因此选用简单整系数数字滤波器作为采集系统的软件滤波方法,在保持原有信号性能的情况下。更能有效地提高信号采集系统的实时处理能力。
4 结语
常用的数字滤波器在运算中采用浮点运算,由高级语言实现,运算速度慢,特别对手小型仪器,无疑提高了成本。本丈在所设计的高冲击信号采集系统中选用简单整系数数字滤波器作为采集系统的软件滤波方法,进行了模拟试验,输出数据稳定,准确可靠,实时性好,满足了系统信号采集的滤波要求,具有一定的应用价值。