当前位置:文档之家› 基于单片机的数字滤波算法分析与实现

基于单片机的数字滤波算法分析与实现

第24卷第6期 齐 齐 哈 尔 大 学 学 报 Vol.24,No.6 2008年11月 Journal of Qiqihar University Nov.,2008基于单片机的数字滤波算法分析与实现朱恒军,王发智,姚仲敏(齐齐哈尔大学,黑龙江 齐齐哈尔 161006)摘要:以低运算能力单片机为基础,对其数字滤波的基本原理、方法进行分析、归纳、总结,并在51单片机上实现,为进一步深入研究低运算能力嵌入式系统上的数字信号处理方法奠定基础。

关键词:单片机;数字滤波;嵌入式系统;数字信号处理中图分类号:TN911.7 文献标识码:A 文章编号:1007-984X(2008)06-0053-02单片机等低运算能力嵌入式系统应用广泛。

在用单片机进行数据采集时,经常会遇到采集速度慢、数据易出现随机误差等问题。

数字滤波技术由于其运算速度快,可方便地改变其滤波特性等特点,在解决低频干扰、随机信号的滤波等方面效果明显优于模拟滤波技术。

在单片机等低运算能力嵌入式系统上研究可实现的数字信号处理方法具有重要的现实意义。

1 常用的数字滤波算法通过对单片机应用环境的分析,在实践中得到一些单片机中能够实现的简单数字滤波算法。

常用的有以下几种:限幅滤波法、中值滤波法、算术平均滤波法、加权平均滤波法、滑动平均滤波法、低通滤波法、复合滤波法。

2 数字滤波算法基本原理1)限幅滤波法。

限幅滤波法是把两次相邻的采样值相减,求出增量并用绝对值表示,然后与两次采样允许的最大值⊿Y 进行比较。

⊿Y 的大小由被测对象的具体情况而定,若小于或等于⊿Y ,则取本次样本值;若大于⊿Y ,则取上次采样值作为本次采样数据的样本。

2)中值滤波法。

中值滤波法是将某一参数连续采样N 次,N 通常是奇数,然后把N 次采样值按从小到大排队,再取中间值作为本次采样值。

3)算术平均滤波法。

算术平均值滤波法是连续取N 次采样值进行算术平均。

4)加权平均滤波法。

加权平均滤波法是对N 次采样值分别乘以不同的加权系数之后再求累加和。

加权系数一般先小后大,以突出后面若干采样的效果,加强系统对参数变化趋势的识别。

各加权系数均为小于1的小数,且满足总和等于1的约束条件。

加权运算后的累加和为有效采样值。

为方便计算,可取各加权系数均为整数,且总和为256,加权运算后的累加和除以256,即舍去低字节后就是有效采样值。

5)滑动平均滤波法。

滑动平均滤波法是只采样一次,将这次采样值与过去的若干次采样值一起求平均,得到的值即为有效采样值。

如果取N 个采样值求平均,RAM 中必须开辟N 个数据的暂存区。

每新采集一个数据便存入暂存区,同时去掉一个最老的数据,保持这N 个数据始终是最近的数据。

6)低通滤波法。

低通滤波法就是将模拟低通滤波器的微分方程用差分方程表示,这样就可用软件算法模拟硬件滤波的功能。

经推导,低通滤波算法为:()11−⋅−+⋅=n n n Y a X a Y ,式中的n X 为当前的数据;1−n Y 为上次的滤波输出值;a 为滤波系数;n Y 为本次滤波输出值。

7)复合滤波法。

复合滤波法是把两种不同滤波功能的数字滤波器组合起来,组成复合滤波器。

该算收稿日期:2008-09-20基金项目:黑龙江省教育厅科学技术研究项目(11511445)作者简介:朱恒军(1969-),男,副教授,主要从事信号采集、信号处理、通信系统等方面的研究。

·54· 齐 齐 哈 尔 大 学 学 报 2008年法的特点是用中值滤波算法滤掉采样值中的脉冲干扰,然后把剩余的各采样值进行递推平均滤波。

基本算法为:n y y y ≤≤≤"21,其中,43≤≤N ;()()2132−+++=−N y y y y n "。

3 数字滤波算法实现上述数字滤波算法均可在单片机上实现。

下面给出的4段C 语言子程序分别实现了限幅滤波法、中值滤波算法、滑动平均滤波算法及复合滤波算法。

1)限幅滤波法#define M //相邻两次采样数据允许的最大偏值 char datalast //上一次的数据 char xianfufilter() {char datenew; //新数据变量 datenew=get_date(); //获取新数据if((datanew-datalast>M)||(datalast-datanew>M) //滤波算法 return datalast; return datanew; }2)中值滤波法#define N 11 char zhongzhifilter() {char value_buf[N]; char count,i,j,temp;for(count=0;count<N;count++) //获取数据 {value_buf[count]=get_data(); delay(); }for(i=0;i<N-1;i++) //数据排序 {for(j=0;j<N-i;j++) {if(value_buf[j]>value_buf[j++]){temp=value_buf[j];value_buf[j]=value_buf[j++]; value_buf[j++]=temp; } } }return value_buf[(N-1)/2]; }3)滑动平均滤波法#define N 11 char value_buf[N]; char i=0;char huadongfilter() {char count; int sum=0;value buf[i++]=get_ad(); if(i==N) i=0;for(count=0;count<N;count++) sum=value_buf[count]; return(char)(sum/N); }4)复合滤波法#define N 11 char fuhefilter() char value_buf[N]; char count,i,j; int sum=0;for(count=0;count<N;count++) {value_buf[count]=get_data(); delay(); }for(i=0;i<N-1;i++){for(j=0;j<N-i;j++){if(value_buf[j]>value_buf[j++]) {temp=value_buf[j]; value_buf[j]=value_buf[j++];value_buf[j++]=temp;} } }for(count=1;count<N-1;count++); sum+=value[count]; return (char)(sum/(N-2)); }(下转第57页)第6期城网变电站人工接地网技术研究 ·57·值,即R d+R f。

流散电阻是指当接地电流通过接地装置时,沿接地体向四周流散在土壤中的全部电阻。

流散电阻的大小取决于土壤成份、颗粒大小、含水量、密度及环境的温度。

Inquire into the techonology of man-made grounding net in the city net’s transformer substance YUE Yi-miao1,2,CHEN Hong2,WANG Yue2(1.Electricity Engineer Institute, Northeast Electric Power University, Changchun 132012,China;2.Qiqihar Electric Power Administration, Heilongjiang Qiqihar 161006, China)Abstract:The passage focuses on several calculating formula and methods about typically practical grounding resistance used by engineers in the practical engineering design.Key words:ground connection resistance;soil resistance rate;grounding pole(上接第54页)4 滤波性能分析不同的滤波方法适用于不同的使用环境。

限幅滤波法主要用于处理变化比较缓慢的数据,使用时关键是要选取合适的门限值;中值滤波法适用于去掉由偶然因素引起的波动和采样器不稳定引起的脉冲干扰,对快速变化的数据不宜采用该方法;算术平均滤波法适用于对具有随机干扰的信号进行滤波,信号的平滑程度完全取决于N值,N值较大时平滑度高但灵敏度低;加权平均滤波法可通过加权系数调解算术平均滤波法中平滑度和灵敏度之间的矛盾;滑动平均滤波法在采样速度较慢时可以使系统的实时性得到保证;低通滤波法在目标参数为变化很缓慢的物理量时是非常有效的滤波方法,但它不能滤除高于1/2采样频率的干扰信号;复合滤波法兼容了中值滤波法和递推平均滤波的优点,无论对缓慢变化的信号还是对快速变化的信号都能得到较好的滤波效果。

参考文献[1] 戴佳,戴卫恒.单片机C语言应用程序设计实例精讲[M].北京:电子工业出版社,2006.[2]徐爱钧,彭秀华.Keil Cx51 V7.0 单片机高级语言编程与μVisision2应用实践[M].北京:电子工业出版社,2005.Analysis and Implementation of digital filter algorithm based on MCU ZHU Heng-jun,WANG Fa-zhi,YAO Zhong-min(Qiqihar University, Heilongjiang Qiqihar 161006, China)Abstract: Basic principle method of low operation ability MCU is analyzed and summarized and is realized in 51MCU. It lays a foundation of further study on digital signal processing of low operation ability embedded system.Key words: MCU;digital filter;embedded system;digital signal processing。

相关主题