《智能仪器仪表设计基础》读书报告1数字滤波算法在测控系统中的应用初探布少聪(中国地质大学(北京)地球物理与信息技术学院,10101121班,1010112108号)摘要:随着数字化技术的发展,数字滤波技术成为自动化仪表和计算机在数据采集与处理中的关键性技术。本文鉴于数字滤波在智能仪器数据处理中的重要性与便捷性,简要叙述了单片机系统中常用的数字滤波算法,并结合各自的适用特点进行剖析。同时,初步探究数字滤波算法在不同领域测控系统具体应用中的设计与改进。最后,简略介绍在近期“北斗杯”科技创新赛中,自己结合所学,设计的加入数字滤波算法的导弹定姿纠偏方案。关键词:数字滤波;算法改进;测控系统;应用举例1引言测控系统中可选用硬件滤波和软件滤波。硬件滤波,就是采用电阻、电容、电感或集成运放组成的无源或有源滤波器等进行滤波;软件滤波也称数字滤波,就是基于数学概率统计运算或判断程序削弱噪声,提取有用信号。数字滤波的优势在于不需要硬件的投入,对多通道测量系统可以共享算法,节约成本;而且可靠性高、稳定性好,不存在阻抗匹配问题;可以根据实际噪声信号的不同,采用不同的滤波方法,灵活改变滤波参数。那么,实用的数字滤波应满足下列要求:1)在数据处理的第一步可以识别、剔除或取代坏值,即消除粗大误差;2)平滑输出数据,去掉变化快的部分;3)响应快,实时性好,及时感知被测量的变化;4)程序简单,运行速度快,合理使用单片机或其他微处理器内部资源。2基于单片机的数字滤波法2.1常用数字滤波法采用数字滤波进行软件抗脉冲干扰时,需要仔细分析干扰源类型,清楚干扰脉冲的持续时间,针对不同类型不同脉冲宽度幅度的干扰噪声,自然要采用不同的滤波策略。几种常用的基本方法简介如下。1)限幅滤波法。物理量的变化是需要一定时间的,相邻两采样值间的变化也有一个限度,这就是限幅滤波的客观依据[1]。限幅滤波用于消除缓变信号中的尖脉冲。是程序判别法之一,另一种为限速滤波。限速滤波最多使用3次采样值即可决定采样结果,虽然照顾了采样的实时性与连续性,但也正是由于不能反映采样点数大于3时各采样值受干扰情况的明显缺点,很大程度上限制了应用范围[2]。限幅滤波具体方法是两次相邻采样值作差取绝对值《智能仪器仪表设计基础》读书报告2ny,比较该值与设定的最大允许偏差,若ny,就保留本次采样值,否则,需以合适数据取代。显然,门限值的设置为保证滤波效果的关键,这就需要估算干扰脉冲的持续时间以确定采样周期。2)中值滤波。基本思路是对被测参量连续采样奇数次,对采样值大小进行排序,取中间值作为本次采样结果。该法可有效滤除因偶然因素及前置采样器性能不稳引起的波动干扰[3],故适用于温度液位等缓变参数测量。3)滑动平均滤波。又称递推均值滤波,将N个取样值看成队列,其长度始终固定,经过一次新采样后,将新值列入队尾并抛弃原队首值,保证数据是最新的。求N个值的算术平均。当算术平均滤波不能使用在采样速度慢(例如双积分型AD转换)或数值更新快的实时系统时,该法因只需采样一次即可使用的便利可完成滤波,而且可节约存储器空间。4)加权滑动平均滤波。考虑到因滑动滤波去掉信号快速变化的部分而提高了数据平滑度,但灵敏度低,对偶然出现的脉冲干扰抑制力差,可以增加新数据的比重以获得高灵敏度。通常根据采样时刻赋予数据以不同的权系数,但实用中却要根据现场干扰情况与调节过程适当调节。2.2复合滤波法在多种干扰信号串入系统的情况下,适当组合以上滤波法可以获得更好的数据平滑度与灵敏度,如去极值平均滤波法,结合中值滤波与均值滤波,若采用滑动滤波,则无论缓变还是快速变化信号,都能获得较好滤波效果。由于这种方法已广泛使用,在此不做赘述。下面介绍一些其他的组合方式与算法技巧。算术平均法组合去极值平均法。若系统采样速度快且数据采集点密集,此法可以同时滤掉尖脉冲与持续时间较长的干扰信号。首先多次取样做算术平均,将该均值作为去极值平均滤波的一点进行二次滤波,二次滤波后的结果作为一次采样结果[4]。去极值平均法中选用滑动滤波,这样拉开了采样点间距,以便滤除持续时长的串扰。滤波算法中需要大量数学运算,单片机处理速度与采样的实时获取密切相关,因此运算中可以整数代替浮点数,用移位替代乘除法[5]。所以一般的均值计算中,总采样点N取值2的整次幂以便移位。用曲线拟合法为系统做最后一次滤波。若待采信号为周期信号,而且仅关心信号的峰峰值,可以使用局部曲线拟合法。在采集信号同时,设计存储器记录下信号峰值的位置,然后按照一定步长在峰值邻域抽取几个值作拟合[6]。拟合的曲线可以反映出采集数据的变化趋势,在使用上述各种滤波后,最后使用曲线拟合可以提高峰值处的平滑度。2.3几种滤波算法的改进举例1)中值滤波的高效实现。中值滤波对噪声的分布和平稳程度没有特殊要求,所以适应性更强,应用广泛。微处理器或微控制器较PC机资源少速度慢,所以设计的滤波算法要尽《智能仪器仪表设计基础》读书报告3量简单快捷,这里所谓的高效,无非就是在程序或数据结构设置上做些改进以提高滤波过程中的数据更新利用率,基本原理不变。有文献将两次相邻的滤波处理合为一次进行,则排序次数减少一半[7];也有文献设置了环形的存储结构,新旧数据不断更换,存储地址可循环使用,可采样值的排序工作仍影响滤波速度[8]。现阶段又提出了“采用循环存储器分配和排序链表结构构造中值滤波算法”[9],使算法使用存储器最少且运算时间与数据长度成正比。2)基于类民主评选规则的复合数字滤波法[10]。通俗点说,这种方法的客观依据是:接近被测量真值的样本占多数比例,明显偏离真值的坏样本“不合群”,需要剔除,同时若“多数比例”不满足要求,那么整组数据均不可信。大体方法为:首先,设定最大允许偏差,依次对N个样本考察,即被考察样本与包括自身在内的所有样本分别作差取绝对值,若该值在允许偏差之内,就认为与被考察样本作差的那个样本投给被考察样本一“赞成票”;在所有样本考察完毕后,统计得票超半数(或按实际情况自拟比例)的样本作为有效样本,坏样本同时被剔除;最后对剩余有效样本取算术平均值作为滤波输出。遍历整个滤波过程,设计研究员将其形象地比喻为“民主评选基本规则的映射——少数服从多数”。该复合法能够有效剔除坏样本,而且允许被测量的突变,因有算术平均环节,输出也比较平滑。同样,允许偏差的确定是最终获取滤波效果的关键。3)长距离数据传输中,中值滤波与线性低通滤波器的结合。数据远距离传输线会带来噪声误差,传统方法是直接使用线性滤波器除噪,滤除高斯噪声均匀噪声等效果甚好,但对混入其中的尖峰脉冲收效甚微。因此完全可以预先借助非线性滤波法消除大脉冲干扰。电子罗盘输出方位数据必须通过至少2米的传输线送达控制电路,所以选取中值滤波先滤除脉冲噪声,后利用FIR滤波器二次滤波作平滑处理十分可行[11]。其中的关键是选定中值滤波的窗口长度与FIR滤波的阶数,通过求解'0fx,可以确定波形函数的峰谷,进一步确定窗口长度。4)增强时效性的滑动平均防脉冲干扰数字滤波算法。滑动平均滤波不能消除尖峰脉冲干扰,去极值平均滤波包含中值滤波,每次都要对数据进行排序使得实时性较差,即使是二者的组合,非但不能完全消除大误差影响,还会使算法变得复杂。针对这些问题,文献[12]提出的算法采用移动平均防脉冲干扰数字滤波,并对每一个采样值均引入“时间戳”。那么,每一个采样点是由2个信息来确定的,采样的先后时间顺序信息和按其大小在采样排序队列中的位置信息[12]。设取样长度固定为N,首次使用该算法时,连续取样N-1个值(采样同时记录每个数据的时间序号)并由小到大排序,由排序决定每个数据的位置序号,这样队列成员就有了自己的时间与位置属性;第N个采样值采用二分法查找自己应该处在现有队列的位置并携带时间位置信息插入,构成完整N值序列;在序列中根据需要去掉最大和最小值各P个,对剩余值取均值作为该次采样的滤波后输出;每次输出采样值后,根据时间信息去掉最老的数据,进行下一次采样,并重复上述查找位置插入队列等步骤。显然,该算法的最大优点就是减少了排序的时间复杂度,除了首次使用算法排序外,每次采数后只需比较插《智能仪器仪表设计基础》读书报告4入即可,而且通过《计算机科学导论》课程的学习可以知道,此过程的二分法程序均有现成的函数可以调用,十分方便。3数字滤波在不同系统中的应用实例数字滤波应用广泛于各行业的检测与控制系统,各学科依据自身特点有侧重点地挖掘数字滤波的使用、组合方法,又加之微型控制器的强大数据处理能力,许多算法技术已相当成熟,故其应用举例无穷无尽,在此仅选择几例做初步探究。3.1精密测量仪表文献[13]中分析了一种纳伏电压标准装置研制中所采用的数字滤波法。ZJL801纳伏电压装置是一台低频超小电压标准装置,由嵌入式计算机自动控制,通过AD数据采集卡采数,在LCD显示输出。特别对于微弱信号测量仪表,除噪对测量结果来说十分关键。设计者使用修正法消除零点偏移,根据限幅滤波的原理设计算法剔除粗大误差,对采集数据多次采样取均值。结合本机噪声的特性,利用噪声对电压测量影响与被测电压构成的均方根关系,建立以下数学模型[13],以消除输入短路本机噪声的影响:22yxk(1)式中y为电压测量值,x为一组采集数据的电压均值,k为输入短路本机噪声电压经验值。文献中列出了当输入相同已知标准电压下,进行输入短路本机噪声滤波前和滤波后的电压测量输出值,通过比对,证实滤去本机噪声的测量结果精度明显改善。通过此例,可以看出数字滤波不仅抑制噪声消除干扰,对于提高测量精度减小测量误差也很有帮助。而且数字滤波的方法也随测量设备测量对象的不同而灵活变化,比起理论上常提到的滤波算法,本例中的输入短路本机噪声滤波法更注重与实际结合,充分考虑自身测量系统的功用与特点。3.2称重系统信号采集普通的基于嵌入式的电子称重系统硬件结构如图1所示。称重系统的重量信号来源于称重传感器,随后重量信号要经过调理电路变为较理想信号(干扰少噪声小),再送到AD转换电路转换为对应的数字值,才能在微型机中存储、处理、输出。整体软硬件设计如图2。图1嵌入式电子称重系统硬件结构设计例图《智能仪器仪表设计基础》读书报告5图2称重系统软硬件结构图称重现场存在各种各样的干扰,称重过程中由于机械结构设计造成的物体晃动,放大电路引入的干扰,甚至传感器受到震动都会影响测量数据,因此滤波非常必要。为了得到纯粹的测量信号,在称重系统信号入口处会放置模拟低通滤波器,可有效抑制高频干扰[14]。有用信号最终在重物相对平稳的阶段获得,就需要使用数字滤波算法剔除不稳的干扰。文献[15]在称重系统中设计了差分方程为()0.9(1)0.1()ynynxn的一阶低通RC滤波器来消除大波动并尽可能减小延时,并采用窗长度为50的多次滑动平均滤波方法得到稳而准的AD值,但同时也发现滑动滤波为系统带来明显延时。下面是其设计的滤波软件流程图3。图3数字滤波算法软件流程3.3混凝投药控制系统《智能仪器仪表设计基础》读书报告6给水处理中要投放絮凝剂去除悬浮物以控制水质,简单说,药剂自动添加和调节控制属于混凝投药系统的任务。水厂广泛采用在线仪表检测原水流量、进水流量和出水浊度[16],由于仪表使用环境恶劣,干扰较大,所以数据采样前要先进行滤波。该系统中需要进行滤波的信号种类很多,在此仅谈一下浊度仪信号滤波。文献[17]提供了卓有成效的浊度仪信号复合滤波法。浊度仪用来测量水的浑浊度,因为水中气泡和杂质会增强光的散射,从而干扰仪表对水体浊度的观测,而且分析发现该干扰具有单边性,信号随机跳变,幅度不一。研究员为此设计了专门的复合滤波法:中值滤波除高频噪声,分段限幅滤波除信号突变,惯性滤波平滑数据[17]。现摘取实验所得滤波前后波形图以验证滤波效果。图4浊度仪信号滤波前、后波形对比(T=10s)滤波流程整体思路概括为:首先用中值滤波对采样信号Xn,预处理后输出Xn,按照下式[17]进行分段限幅惯性滤波:11nnnYaXaY01a(2)其中nY和1nY分别为本次、上次分段限幅惯性滤波输出,a为平滑常系数。