欢迎来到天天文库
浏览记录
ID:52204212
大小:49.50 KB
页数:6页
时间:2020-03-24
《数字低通滤波器.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、摘要:针对单片机数据采集系统中经常出现的随机干扰,通过手动输入来模拟数据采集过程,验证了几种使用较为普遍的克服随机干扰的单片机数字滤波算法,并给出了相应的C程序,尤其对中位值滤波和中位值平均滤波算法程序进行了改进。同时也对这几种滤波算法进行了比较,并指出了每一种算法的具体适用范围和注意事项。关键词:单片机;数据采集系统;随机干扰;数字滤波;算法中图分类号:TP368.1文章标识码:AStudyofDigitalFilteringAlgorithminMicrocontrollerDataAcquisitionSystemZHAOGuangfu1,FANGJiaj
2、uan1,ZHANGYoushun2(1.ZhengzhouTechnicalCollege,Zhengzhou450121,China;2.CollegeofInformationEngineering,ZhengzhouUniversity,Zhengzhou450051,China)Abstract:AimingattherandominterruptionsthatusuallyappearsinMicrocontrollerDataAcquisitionSystem,thisarticleverifiedseveralalgorithmsofdigita
3、lfilterandCprogramtoinhibittherandominterruptionsbymanualinputtosimulatedatacollectionprocess,especiallyimprovedthealgorithmprogramoftheaveragecenter-positionvaluesandmiddlevaluefilter.Comparisonamongtheseveralalgorithmsandapplicationfieldwerealsomentioned.Keywords:mcu;DataAcquisition
4、System;randominterruption;digitalfilter;Algorithm0引言在单片机的数据采集系统中,测量通道串入随机干扰是难免的,从而使A/D转换送入单片机的数据存在误差,这种因随机干扰产生的误差称为随机误差。随机误差虽然无法预测,但多次测量结果是符合统计规律的。为克服随机干扰产生的误差,可以采用硬件抗干扰的方法,也可以采用按统计规律用软件方法实现,即采用数字滤波的方法来抑制有效信号中的干扰成分,从而消除随机误差。1常用的数字滤波算法及实现在单片机的数据采集系统中,常用的数字滤波算法有限幅滤波、中位值滤波、算术平均滤波、移动平均滤波、
5、加权平均滤波、低通滤波、中位值平均滤波等。以下就分别介绍其原理及滤波程序。1.1限幅滤波限幅滤波的基本原理是把两次相邻时刻(n和n-1)的采样值Yn和Yn-1相减,求出其差值,以绝对值表示,然后将这个差值与两次采样允许的最大偏差值ΔY比较,如果两次采样值的差值超过了允许的最大偏差值ΔY,则认为发生了随机干扰,并认为最后一次采样值Yn非法,应予剔除。剔除Yn后,可用Yn-1代替Yn;若未超过允许的最大偏差值范围,则认为本次采样值有效。可用如下公式表示:
6、Yn-Yn-1
7、≤ΔY;则Yn有效
8、Yn-Yn-1
9、>ΔY;则Yn-1有效此算法的样例子程序如下:#defineA
10、10//A值可根据实际情况调整chardata;//上一次的数据charfilter_1(){chardatanew;//新数据变量datanew=get_data();//获得新数据//滤波算法if((datanew-data>A)
11、
12、(data-datanew>A)returndata;returndatanew;}该算法主要用于处理变化比较缓慢的数据,如温度、物体的位置等。使用时关键在于最大偏差值的Δy的选择,通常可根据经验获得,也可按照输出参数可能的最大变化速度Vmax及采样周期T来决定ΔY的值[1],即ΔY=VmaxT。1.2中位值滤波中位值滤波是先对某
13、一参数连续采样N次(一般N取奇数),然后把N次采样值按从小到大排列,取中间值为本次采样值。该滤波方法实际上是一种排序方法,文献[2,7,9]采用的是冒泡法排序。由于在冒泡法排序中,每出现一次前者数据大于后者数据,就要进行二者数据的交换,效率很低,故在验证时改用选择排序法。该算法的样例子程序如下:#defineN11//N值可根据实际情况调整charfilter_2(){charvalue_buf[];charcount,i,j,k,temp;for(count=0;count14、;dela
14、;dela
此文档下载收益归作者所有