您好,欢迎来到意榕旅游网。
搜索
您的当前位置:首页单片机系统中数字滤波的算法

单片机系统中数字滤波的算法

来源:意榕旅游网
总第38卷第426期2001年第6期电侧与仪表              Electri月沮IMe目昌ur已Dl已nt&Vd.38No滩加单片机系统中数字滤波的算法赵毅’                    ,牟同升‘,沈小丽2(1        .浙江大学光电信息工程学系,杭州31027;2.中国计1学院,杭州31034)摘要:介绍了软件上消除随机误差的数字滤波的优点,着重阐述了单片机系统中七种数字滤波算法,并介绍了各种算法的适用条件。关挂词:随机误差;数字滤波;算法中圈分类号:P31T2文献标识码:B文章编号:101一139。《2001)肠-侧刃5一以Thea      lgOitrhmsOfdiigatlfiletrinthe而cocrihPsysemt                      Zllaoyit,MouTo叱she赔1,ShenXioaliZ(1卫hotoleectir。Technoloylgnstiutteofoptical&ElectircEngineeirngDep注rtmentofZbejingaUni  vesriyt,Han乎hou31)27,X(China;2尤hinalnstituteofMetorloy,gHan,hou31田34,China)A加tract:仆eadvantagesofthedigitlfaieretllimitianngrndomdevaitaionaeirntr司uced.Sevenalgoirhtmsofthedigitlfalietrinthe而crochipsysetmaeem户asrized,andappliedcodintionise即llanedKeywords:arndomdeviation;digitlfailter;al即rithms    常用的数字滤波器算法有程序判断法、中值判随机误差是由随机干扰引起的,    其特点是在相断法、算术平均值滤波法、加权滤波法、滑动滤波法、同条件下测量同一量时,其大小和符号作无规则变低通滤波法和复合滤波法等。化而无法预测,但多次测量结果符合统计规律。为1.1程序判断法克服随机干扰引人的误差,硬件上可采用滤波技术;程序判断法又称限幅滤波法,其方法是把两次    软件上可采用软件算法实现数字滤波,其算法往往相邻的采样值相减,求出其增t(以绝对值表示),然是系统测控算法的一个重要组成部分,实时性很后与两次采样允许的最大差值△Y进行比较,△Y的强,常采用汇编语盲来编写。大小由被测对象的具体情况而定,若小于或等于采用数字滤波算法克服随机干扰引人的误差    △Y,则取本次采样值;若大于△Y,则取上次采样值具有以下优点:作为本次采样值,即(1    )数字滤波无需硬件,只用一个计算过程,可队一,    !‘△Y,则人有效,靠性高,不存在阻抗匹配问题。尤其是数字滤波可}    儿,、,,卜△Y,则凡.有效。以对频率很高或很低的信号进行滤波,这是模拟滤式中,‘—第n次采样值;波器做不到的。九1      —第(n一1)次采样值;(    )数字滤波是用软件算法实现的,2多输人通△y—      相邻两次采样值允许的最大偏差。道可共用一个软件即滤波器”,从而降低系统开支。    ()只要适当改变软件滤波器的滤波程序或运3算参数,就能方便的改变其滤波特性,这对于低频、脉冲干扰、随机噪声等特别有效。1数字谁波常用算法0前言    设Rl和RZ为内部RAM单元,分别存放凡1和凡,滤波值也存放在RZ单元。采用MCS一51指令编写的程序判断法子程序如下曰廿卜MOVA,Z:R1儿嗽、}急第38卷第426期电测与仪表              Vo1.38  No.4262001年第6期Electrical Measumment  &Jun.2001CLR C变化比较缓慢,采用中值滤波法效果比较好;但对快SOB A,RIJNC  FILTI1速变化的数据,则不宜采用中值滤波。CPLA;以下两句求A的补码1.3算术平均滤波法INC  A算术平均滤波法就是连续取N次采样值进行    11TlCJNE A,#AYFILT12算术平均,其数学表达式是:AJMP DONEY     =xy}比TrIC   DONEMOV R2,RlY= lr 1,.二1      LrY;0NERET程序判断法主要用于处理变化比较缓慢的数    式中,一一一N个采样值的算术平均值;据,如温度、物体的位置等。使用时,关键是要选取Y1—      第i个采样值。合适的门限值AY。通常可根据经验数据获得,必设8次采样值依次存放在地址DATA开始的    要时也可由实验得到。连续单元中,滤波结果保留在累加器A中,程序如1.2中值滤波法    中值滤波法即对某一参数连续采样N次(一般nI3:CLRA;      清莱加和N为奇数),然后把N次采样值按从小到大排队,再MOVEZ,A取中间值作为本次采样值口MOVE」,A设DATA为存放采样值的内存单元首地址,    MOV R0, #DATA;指向第一个采样值MOVm,#08HSAMP为存放滤波值的内存单元地址,N为采样值RLT31MOV A, CRO;取一个采样值个数。用MCS-51指令编写的中值滤波子程序如下:ADD A, R3;累加到R2, R3中FI    LT2;     MOV R7,#N-1;置循环初值MOV田,ASORT:            MOV A,R7CLRAMOV R6,AADDCA, R2MOV R2,AMOV R2. AMOV R0,#DATA;采样值首地址送ROINC  ROLOOPMOVA,@R0DJNZ R7, FTLT31;峨加8次INC  ROFILT32SWAPA;        (R2,R3)/8CLR CSUBB A, @R0;   yn-yn-l-ARXl:HL丈,R3JC   DONE;”<yn-I转DONESWAPAADD A, @R0;恢复ARLAXCH A, @R0;   yn)Y.-I,交换数据ADD人四舍五人DEC ROA甩式MOV (PRO, AADDCA,INC  RORETDONEDJNZ R6, LOOP;R6#0,继续比较    算术平均滤波法适用于对一般具有随机干扰的DJNZ R7, SORT;R7#0,继续循环信号进行滤波。这种信号的特点是有一个平均值,信MOV A, ROADD A, #DATA:计算中值地址号在某一数值附近上下波动。算术平均滤波法对信CLR C号的平滑程度完全取决于N。当N较大时,平滑度RRC A高,但灵敏度低;当N较小时,平滑度低,但灵敏度MOV R0, A高。为方便求平均值,N一般取4,8,16之类的2的MOV SAMP,@RO;存滤波值整数幕,以便于用移位来代替除法。RET中值滤波法比较适于去掉由偶然因素引起的    1.4加权平均滤波法波动和采样器不稳定而引起的脉动干扰。若被测量算术平均滤波法存在前面所说的平滑性和灵敏    ‘一总第38卷第426期电测与仪表Vol.38  Nu.4262001年第6期Flectricel M-asn,-m-m&Insn}imrn}nrinnJun.2001度之间的矛盾。采样次数太少,平滑效果差;次数太参数变化较快时,系统的实时性不能得到保证。滑动多,灵敏度下降,对参数的变化趋势不敏感。为协调平均滤波算法只采样一次,将这一次采样值和过去两者关系,可采用加权平均滤波。对连续N次采样的若干次采样值一起求平均,得到的有效采样值即值,分别乘上不同的加权系数之后再求累加和,加可投人使用。如果取N个采样值求平均,RAM中必权系数一般先小后大,以突出后面若干采样的效须开辟N个数据的暂存区。每新采集一个数据便存果,加强系统对参数变化趋势的辨识。各个加权系人暂存区,同时去掉一个最老的数据,保持这N个数均为小于1的小数,且满足总和等于1的约束条数据始终是最近的数据。这种数据存放方式可以用件。这样,加权运算之后的累加和即为有效采样值。环行队列结构方便地实现。设环行队列为40H-4FH为方便计算,可取各加权系数均为整数,且总和为连续16个单元,RO作为队尾指针。滤波程序如下。256,加权运算后的累加和除以256(即舍去低字节)FILT5:    ACALL    INPUT;采样新值后便是有效采样值。MOV           f2RO,^;排入队尾设每批采样8个数据,依次存放在地址DATA    INC                RO开始的单元中。各加权系数用一个表格存放在ROMMOV             A, ROANL             A, #4FH中。MCS-51指令编写的算术平均滤波程序如下。MOV             R0, AFILT4:     MOV 110, 4DATA;指向采样数据首地址MOV           RI.洲OH;初始化MOV              DIM, VTAB;指向加权系数表格首地址MOV             R2, #0MOV           R2, 90;军加和清零MOV             R3, #0MOV                R3, #0MOV R7, #16MOV             R7, #0811FILT51:   MOV A, C}R卜取一队列元素FI  LT41:  MOV B, CRO;取采样数据ADD^,R3;          求果加和CLR A              MOV           R3, AMOVC          人mA+OPTR;取加权系数C1月              AMUL             AB;加权运算ADDCA,             R2ADD           A, 13;求泉加和MOV             R2, AMOV             R3, AINC                 R1MOV             A, BDJ          NZ R7, FILT51;峨加16个元素ADDCA,             R2SWAPA              MOV             R2,AXCHA沮3            州C                DPI'RSWAPA              INC RO              ADD             A, #80HDJ          N2 R7, FILT41;未完继续ANL             A, #OFHMOV             A, R3;四舍五人ADDCA,             R3RCLCR全nEI              1.6低通滤波法ADDCA, R2    将普通硬件RC低通滤波器的微分方程用差分BEI              TAB:       DB  18,22,26方程来表示,便可以用软件算法来模拟硬件滤波的DB              30,34,38功能。经推导,低通滤波算法如下。DB              42,46Ya     a"X.十(I-a)-Y-1                  (1)    上述加权系数表格中8个系数按线性递增排式中X一本次采集值;列,总和为256。也可按实际情况自行调整。      Y󰀀-1—上次的滤波输出值;1.5滑动平均滤波法.      滤波系数,其值通常远小于1;    以上介绍的各种平均滤波算法有一个共同点,Y,      —本次滤波的输出值。即每取得一个有效采样值必须连续进行若干次采由上式可以看出,本次滤波的输出值主要取决    样,当采样速度较慢(如双积分型A/D转换)或目标于上次滤波的输出值(注意不是上次的采样值,这和总第38卷第426期电侧与仪表Vol.38  Nc.4262加1年第6期Electrical Mmuzement&Imtremvrtetice加权平均滤波是有本质区别的),本次采样值对滤ADD人33H      波输出的贡献是比较小的,但多少有些修正作用。MOV       33H, A这种算法便模拟了具有教大惯性的低通滤波功能。MOV人B      滤波算法的截止绷率可用下式计算ADDC人32H      MOV       32H, A=.fL- 2gart(2)RE】        式中,滤波系数;    除了低通滤波外,同样可以用软件算法来模拟君      —采样间隔时间。商通滤波和带通滤波。例如当t    =0.56(即每秒2次),a=1/32时1.7复合滤波法为了进一步提高滤波效果,有时可以把两种或    fL-(    1/322x3.14x0.5)-0.01(Hz)两种以上不同滤波功能的数字滤波器组合起来,组    当目标参数为变化很慢的物理盈时,这是很有成复合数字滤波器,或称多级数字妹波器。例如防脉效的。另一方面,它不能滤除高于1/2采样频率的冲干扰平均值滤波算法就是一种应用实例。这种算干扰信号,本例中采样频率为2Hz,故对1Hz以上法的特点是,用中值滤波算法滤掉采样值中的脉冲的千扰信号应采用其它方式池除。干扰,然后把剩余的各采样值进行递推平均建波。其低通滤波算法程序与加权平均滤波相似,    但加基本算法如下权系数只有两个:a和1-a。为计算方便,a取一整    若Y3-}-Y,}…  -<Yn,其中3 }N--<14数,1-a用256-a来代替,计算结果舍去最低字节即则升(    Y3十Y3十..+yo-。)}(N-2)            (3)可。因为只有两项,a和1-a均以立即数的形式编人    由于这种滤波方法兼容了递推平均滤波算法和程序中,不另设表格。虽然采样值为单元字节(8位中值滤波算法的优点,所以无论对缓慢变化的信号,A/D),为保证运算精度,滤波输出值用双字节表示,还是对快速变化的信号,都能取得较好的撼波效果。其中一字节整数,一字节小数,否则有可能因为每2结束语次舍去尾数而使输出不会变化。徽型计算机在仪器仪表系统中的成功应用,    使设Yr】存放在30H(    整数)和31H(小数)两单元传统电子仪器以及复杂的跟踪测A装置发生了许多中,乙存放32H(整数)和33H(小数)中。撼波程序革命性变化,其中一个突出表现就是系统中包含了f IU下。智能性运作。徽机具有很强的分析和运算能力,智能FILT6:      MOV 30H, 32H;更断Y-系统可完成复杂的收据处理;智能系统采用软硬件MOV             31H, 33H相结合的方法进行随机误差的数字滩波和系统误差ACALL           INPUT;采样X,MOV           B,佣;计算.X.的修正,可以实时地修正、校准侧a数据,这些都是MOV AB              传统仪器难以比拟的。MOV           32H,氏临时存人乙中参                考文献:MOV             33H, A[I]周从慈若.单片机应用程序设计技术〔M].北京航空航天大学出MOV           B, 7124氏计算(1-a)与版社,1卯L3I            TQv凡31H[2」陈粤初,宾振中,吴佛远,刘伟民等编若.单片机应用系挽设计MUL AB              与实践[M]北京麟空舫天大学出版杜.1991.R以:A              [3]何立民AMCS-51系列单片机砚件配t与接口设计(MI-At京航MOV人B            空鱿天大学出版社,1990.ADDC凡33H;          翻加到卜中[4]吴助肠,都志杰等.若,徽机化仪表原理设计【M」.华东化工学MOV             33H, A院出版社.1卯L]NC              FILTH作音简介:INC                32H赵级,男,现在浙江大学光电信息工程学系攻读破士学位,研究方向日LT61:MOV     B, 71248为侧试计月技术及仪器专业。MOV人犯H            收稿日期;                2001-04-11MUL AH              (马甲军            编发)一吕-

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- yrrf.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务