单片机
第(%卷第)期#""!年%%月中国测试技术
9:10,O;,=2Q;O;0&&;9:0XYX<3Z@E+(%0@+)
#""!0@L,
单片机数字滤波算法研究
牛余朋,成
摘
曙
(第二炮兵工程学院!"#教研室,陕西西安市$%""#!)
要:本文以!%系列单片机为背景,针对电子系统中经常出现的随机干扰,介绍了几种使用较为普遍的克服随
机干扰信号的单片机数字滤波算法,并给出了相应的算法程序。同时对这几种算法进行了比较,并指出了每一种算法的具体适用范围和注意事项。关键词:单片机;随机干扰;数字滤波中图分类号:&’()*+%
文献标识码:,
文章编号:(#""!)%)$#-./*.")-""/$-"(
!"#"$%&’()$*+(%,-’.(/0,+,-$*/,*-"%
01234-5678,9:;0<=>4
(&>6=6?@7A,BCDEE6BF;78D766BD789@EE686,GDHI7$%""#!,9>D7I)
12#-%$&-:,JD78ICC>6BI7A@JD7C6BB45CD@7KC>IC4K4IEEFI556IBKD7C>66E6?CB@7D?KFKC6JK,C>DKIBCD?E6D7CB@A4?6AK6L6BIEIE8@BDC>JK@MAD8DCIEMDEC6BI7A5B@8BIJNIK6A@7O92@M!%K6BD6KC@D7>DNDCC>6BI7A@JD7C6BB45CD@7K+9@J5IBDK@7IJ@78C>6K6L6BIEIE8@BDC>JKI7AI55ED?ICD@7MD6EAP6B6IEK@J67CD@76A+
3"45(%0#:O92;QI7A@JD7C6BB45CD@7;RD8DCIEMDEC6B
%引言#+%一阶滞后滤波法
硬件滤波电路中最常用的是一阶惯性Q9模拟
在单片机应用中经常需要对输入的信号进行处理,当由于存在随机干扰使被测信号中混入了无用的成分时,可以采用滤波器滤掉信号中的无用成分,从而提高信号质量。模拟滤波器在其低频和甚低频时实现是比较困难的,而数字滤波器是不存在这些问题的。它具有精度高、高可靠性和高稳定性的特点,因此在单片机应用系统中被广泛用于克服随机误差。采用数字滤波算法克服随机误差主要有如下优点:
(%)数字滤波是由软件程序实现的,不需要硬件,因此不存在阻抗匹配的问题。
(#)对于多路信号输入通道,可以共用一个软件“滤波器”,从而降低仪表的设计成本。
(()只要只当改变滤波器程序或元算参数,就能方便的改变滤波特性,这对于低频脉冲干扰和随机噪声的克服特别有效。
低通滤波器,当采用这种模拟滤波器来抑制低频干扰时,要求滤波器有较大的时间常数和高精度的Q9网络,增大时间常数有求增大!值,其漏电流也随之增大,从而降低了滤波效果。而采用数字滤波算法来实现动态的Q9滤波,则能很好的克服上述模拟滤波器的缺点。在模拟常数要求较大的场合这种方法显得更为实用,一阶惯性滤波算法对于周期干扰具有良好的抑制作用,其不足之处是带来了相位滞后,导致灵敏度低。同时它不能滤除频率高于采样频率二分之一(称为奈奎斯特频率)的干扰信号。例如采样频率为%"":S,则它不能滤除!":S以上的干扰信号。对于高于奈奎斯特频率的干扰信号,应该采用模拟滤波器。假设"为输入,#为滤波后的输出值,则其公式为:
$%&’!!(%)(%*’)!$%*%
式中’为与Q9值有关的一个参数,当采样间隔"C足够小时,。’T"C(UQ9)
下面是实现一阶惯性滤波算法的程序。
U!为加快程序处理速度假定基数为%"",’T"V%""!U
WA6MD76I!"
#算法介绍
为便于以下的程序书写方便,这里做一个假设:
假定从*位,R中读取数据(如果是更高位的,R可定义数据类型为D7C),子程序为86C
()。IA
收稿日期:收到修改稿日期:万 方数据;#"".-%%-%.#""!-"%-"/