一种单片机数据采集系统的数字滤波器设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
其优点是: 融合了两种滤波法的优点,对于偶然 出现的脉冲性干扰,可消除由于脉冲干扰所引起的 采样值偏差。
其缺点是: 和算术平均滤波法一样,测量速度较 慢,比较浪费单片机资源,尤其是占用较多 RAM。
3 基于单片机程序设计与实现
根据两种滤波算法的描述,使用 C 语言编程, 分别实现这两种滤波算法如下所示。
采用数字滤波算法克服随机干扰的误差具有以 下优点: ( 1 ) 数字滤波只用一个计算过程,可 靠 性 高,不存在阻抗匹配问题。尤其是数字滤波可以对 频率很低的信号进行滤波,这是模拟滤波器做不到 的。( 2) 数字滤波使用软件算法实现,无需其他的
硬件成本,多输入通道可共用一个滤波程序,降低系 统开支。( 3) 只要适当改变滤波器的滤波程序或运 算,就能方便地改变其滤波特性,这对于滤除低频干 扰和随机信号会有较大的效果。
文章编号: 1009 - 2552( 2012) 09 - 0175 - 03 中图分类号: TP368. 1 文献标识码: A
一种单片机数据采集系统的数字滤波器设计
海 玉1 ,陈 军2 ,钱献芬1
( 1. 69046 部队,乌鲁木齐 830001; 2. 新疆武警总队,乌鲁木齐 830063)
摘 要: 单片机数据采集系统在单片机自动测量、自动控制等领域具有广泛的应用,在数据采 集环境,不可避免地将要产生各种各样的干扰和破坏,造成信号突变或中断,进而影响采集数 据的正确性和精确性,造成控制错误等严重后果。因此研究单片机采集系统的抗干扰技术,是 单片机应用技术的重要一环。文中采用数字滤波实现单片机的抗干扰技术,结合使用多种滤波 算法,达到既消除高频干扰,又避免脉冲干扰的目的。 关键词: 单片机; 数字; 滤波器
[3] 赵雪. 中文 AutoCAD 2006 标准教程[M]. 西安: 西北工业大学音
像电子出版社,2005: 3 - 10.
[4] 于萧榕,郭昌言,陈刚. 结合 ObjectARX 和 C#进行 AutoCAD 二次
char filter( )
{
char count,i,j;
char value_buf[N]; / / 定义存储数据的数组
ቤተ መጻሕፍቲ ባይዱint sum = 0;
for ( count = 0; count < N; count + + )
{
value_buf[count] = get_ad( ) ;
delay( ) ; / / 如果采集数据比较慢,那么就
1];
value_buf[i + 1]= temp;
}
}
}
for( count = 1; count < N - 1; count + + ) sum + = value[count]; return ( char) ( sum / ( N - 2) ) ; }
4 结束语
在实际应用中,本文采用递推平均滤波法和中 位值平均滤波法相结合的方法,在实际使用的单片 机 A / D 采集时,效果较好,这种使用方法具有以下 两个优点,第一,由于使用递推平均滤波法,可以消 除高频干扰,滤波器反应速度快; 第二,由于采用中 位值平均滤波法,滤波器工作比较稳定,受大的脉冲 干扰影响小,滤除脉冲干扰的效果好。随着单片机 性能的进一步提升,在不影响单片机实时控制功能 的基础上,可以采用性能更好的一阶滞后低通滤波 器( 惯性滤波法) 、容错冗余三中取二滤波法等等其 他滤波算法。 参 考 文 献:
( 上接第 174 页)
参 考 文 献:
[1]魏永乐,晁彩霞. 基于 ObjectARX 实现特征建模的方法[J]. 工程
图学图报,2010( 6) : 92 - 99.
[2] 苏猛,魏永乐. 基于 AutoCAD 开发零件特征建模系统研究[J].
辽宁工程技术大学学报,2006( 1) : 123 - 126.
[4] 于焱. 低成本单片机系统高性能滤波算法设计[J]. 计测技术, 2011( 3) : 54 - 55.
[5] 刘琪芳. 单片机测控系统的数字滤波算法研究[J]. 机械工程与 自动化,2011( 3) : 165 - 166. 责任编辑: 肖滨
櫀櫀櫀櫀櫀櫀櫀櫀櫀櫀櫀櫀櫀櫀櫀櫀櫀櫀櫀櫀櫀櫀櫀櫀櫀櫀櫀櫀櫀櫀櫀櫀櫀櫀櫀櫀櫀櫀櫀櫀櫀櫀櫀櫀櫀櫀
A design of the digital filter used on the data acquisition system of MCU
HAI Yu1 ,CHEN Jun2 ,QIAN Xian-fen1
( 1. 69046 Troops of PLA,Urumqi 830001,China; 2. Xinjiang Branch of Armed Police,Urumqi 830063,China)
( 1) 递推平均滤波法( 又称滑动平均滤波法) 其方法是: 把连续取 N 个采样值看成一个队 列,队列的长度固定为 N,每次采样到一个新数据放 入队尾,并扔掉原来队首的一次数据( 先进先出原 则) ,把队列中的 N 个数据进行算术平均运算,就可 获得新的滤波结果,N 值的选取根据使用场合。其 基本算法如图 1 所示。
i = 0; for ( count = 0; count < N,count + + )
sum = value_buf[count]; return ( char) ( sum / N) ; } ( 2) 中位值平均滤波法( 又称防脉冲干扰平均 滤波法) 该运算的过程是对某一参数连续采样 N 次,然 后把 N 次采样的值按从小到大排列,再取中间值作 为本次采样值,整个过程实际上是一个序列排序的 过程。 #define N12 / / 定义获得的数据个数
单片机主要用于实时过程控制,并实现一定的 通信和数据处理。单片机由于自身资源限制,不擅 长于算法处理,尤其是复杂的运算。在单片机进行 数据采集时,会遇到数据的随机误差,随机误差是由 随机干扰引起的,其特点是在相同条件下测量同一 量时,其大小和符号会现无规则的变化而无法预测, 但多次测量的结果符合统计规律。为克服随机干扰 引起的误差,可采用硬件上的滤波技术,也可采用软 件算法实现数字滤波。
单片机的数字滤波算法是系统测控算法的一个 重要组成部分,实时性很强。在单片机系统中常用 的滤波算法有限幅滤波法、中值滤波法、算术平均滤 波法、加权平均滤波法、滑动平均滤波等。这些滤波 算法是经典滤波算法的简化,以适应单片机资源受 限和系统对实时性要求的需要。
收稿日期: 2012 - 03 - 07 作者简介: 海玉( 1977 - ) ,女,硕士研究生,助理工程师,研究方向
单片机由于硬件资源受到限制,其滤波程序只 适应于结构和算法较为简单的滤波程序或经典滤波 程序的简化算法。比较常用的有限幅滤波法、中值 滤波法、算术平均滤波法、加权平均滤波法、滑动平 均滤波以及各种组合滤波算法。
2 两种滤波算法介绍与比较
单片机的软件滤波算法较多,在实际使用中,考 虑到单片机的实际使用情况,比较常遇到的干扰类 型,一种是高频干扰,一种是脉冲干扰,克服这两种 干扰的影响,基本就可以保证单片机的正常运行,针 对这两种干扰,可以分别采用以下两种对应的滤波 方法。
( 1) 递推平均滤波法( 又称滑动平均滤波法) 滑动平均滤波算法只采样一次,将一次采样值 和过去的若干次采样值一起求平均,得到的有效采 样值即可投入使用。如果取 N 个采样值求平均,存 储区中必须开辟 N 个数据的暂存区。每新采集一 个数据便存入暂存区中,同时去掉一个最老数据,保 存这 N 个数据始终是最新更新的数据。采用环型 队列结构可以方便地实现这种数据存放方式。 #define N 12 char value_buf[N]; char i = 0; char filter( ) { char count; int sum = 0; value_buf[i + +] = get_ad( ) ; if ( i = = N )
[1] 孙飞. 软件抗干扰在单片机控制系统中的应用研究[J]. 电子材 料与电子技术,2011( 3) : 13 - 15.
[2] 求是科技. 单片机典型模块设计实例导航[M]. 人民邮电出版 社,2008( 6) : 293 - 298.
[3] 王广平. 单 片 机应 用 系 统 中 的 软 件 抗 干 扰 方 法[J]. 科 技 风, 2011( 10) : 76.
为通信工程设计。
— 175 —
1 单片机滤波器技术综述
单片机由于其功能强大、体积小、便于集成而广 泛应用于各个领域,在温湿度测量、低频信号采集分 析、压力流量测量等领域具有不可替代的作用,含有 单片机采集系统的单片机产品日益深入到生活的各 个方面。但是在单片机采集设备中,由于工作环境 的复杂性、电磁环境的波动性造成单片机数据采集 错误,从而造成单片机系统工作不稳,控制失灵等严 重后果。为消除或降低干扰脉冲等对单片机采集系 统的影响,一般在采集端增加滤波电路。由于硬件 滤波电路增加了成本,同时在不同环境中使用时,参 数修改不方便。故而在单片机数据采集后,增加滤 波程序,实现滤波功能,消除或减少干扰影响。
均滤波法”,连续采样 N 个数据,去掉一个最大值和 一个最小值,然后计算 N - 2 个数据的算术平均值, 针对单片机的性能 N 值的选取: 3 ~ 14。其基本算 法如下:
y1 ≤y2 ≤y3 ≤y4 ≤……≤yn,3≤n≤14 / / 冒泡法 排序
Y = ( y1 + y2 + y3 + y4 + …… + yn ) /( N - 2) / / 去掉最大、最小值后取平均
需要延时或中断
}
for ( j = 0; j < N - 1; j + + )
/ /用冒泡法
对数据进行排序
{
for ( i = 0; i < N - j; i + + )
{
if ( value_buf[i]> value_buf[i + 1])
{
temp = value_buf[i];
value_buf[i]= value_buf[i +
Abstract: The data acquisition systems on MCU are used widely in the fields of automatic measurement, automatic control and others. On the special environment,a variety of interference and damage produces inevitably,then results in mutations or interruption of the signal,and then affects the accuracy of the data,sometimes results in the serious consequences of the control error. Therefore,the research on the microcontroller collection system anti-jamming technology is an important part of the MCU application. This paper used the digital filter to achieve MCU’s anti-jamming technology,combined with a variety of filtering algorithms,can eliminate the high frequency interference and the pulse interference. Key words: MCU; digital; filter
图 1 递推平均滤波法算法
其优点是: 对周期性干扰有良好的抑制作用,平 滑度高,适用于高频振荡的系统。
其缺点是: 灵敏度低,对偶然出现的脉冲性干扰 的抑制作用较差,不易消除由于脉冲干扰所引起的 采样值偏差,不适用于脉冲干扰比较严重的场合。
( 2) 中位值平均滤波法( 又称防脉冲干扰平均 滤波法)
其方法是: 相当于“中位值滤波法”+“算术平 — 176 —
相关文档
最新文档