原创 单片机实现软件滤波的十种方法

2009-8-12 18:44 1975 10 10 分类: MCU/ 嵌入式
1、限幅滤波法(又称程序判断滤波法)
0su*`u5}.k0    A、方法
mCG1cf c E A)E"`#M)`0        根据经验判断,确定两次采样允许的最大偏差值(设为A)电子园51单片机学习网NN,jx2Qx
        每次检测到新值时判断:电子园51单片机学习网b;L"O"C9X7mo
        如果本次值与上次值之差<=A,则本次值有效电子园51单片机学习网+z~(P%[5FG%M V0}
        如果本次值与上次值之差>A,则本次值无效,放弃本次值,用上次值代替本次值电子园51单片机学习网'Z6R2A B.f8u*LV!ss
    B、优点:
"L8}T0[:Bg!g"[b0        能有效克服因偶然因素引起的脉冲干扰电子园51单片机学习网E{ DG^vU
    C、缺点
c [2M a-S,v0Xk0        无法抑制那种周期性的干扰电子园51单片机学习网[J)QcyH7Z/s0b
        平滑度差
-y+F sz,P)D8t\ ovz;W0   电子园51单片机学习网;t&T&[9B7t6|${
2、中位值滤波法
?Q3V.o Qj,a1j-?'u0    A、方法:电子园51单片机学习网%Su!J b2{ uF0@|
        连续采样N次(N取奇数)电子园51单片机学习网0uN#]FGO4~EmY:K$r
        把N次采样值按大小排列电子园51单片机学习网:fS$gM&q3c
        取中间值为本次有效值
t9}(vfRp2GD'Q7e0    B、优点:电子园51单片机学习网G,yvbc`ChI
        能有效克服因偶然因素引起的波动干扰
yk,T| e nG0        对温度、液位的变化缓慢的被测参数有良好的滤波效果
_/mSj5{4a0    C、缺点:
bS"I\M8Y1X-QN0        对流量、速度等快速变化的参数不宜电子园51单片机学习网2E0P6oUFI dy

U:ma^/K03、算术平均滤波法
F7V2LxS#K2K0    A、方法:电子园51单片机学习网:w(}Md$Z U\-R0@
        连续取N个采样值进行算术平均运算
xK gR\bh0        N值较大时:信号平滑度较高,但灵敏度较低
"PQbtB0F{0@0        N值较小时:信号平滑度较低,但灵敏度较高
P0V8N8Kj4f^0        N值的选取:一般流量,N=12;压力:N=4
-?n'[:r x }V0    B、优点:电子园51单片机学习网tQ_(J!I(\ c7twD?
        适用于对一般具有随机干扰的信号进行滤波电子园51单片机学习网&k+H$w*Ydt)N3dh1a&L
        这样信号的特点是有一个平均值,信号在某一数值范围附近上下波动电子园51单片机学习网O.U,_t)r)ry:Uzg
    C、缺点:电子园51单片机学习网{8n?Q DA,v"h S
        对于测量速度较慢或要求数据计算速度较快的实时控制不适用电子园51单片机学习网H|1Ce\R6b
        比较浪费RAM电子园51单片机学习网7pQ)`#an3t*R
       
kwj(|4v[s'U04、递推平均滤波法(又称滑动平均滤波法)
6l3FR;I(q8Uj|J0    A、方法:电子园51单片机学习网X@6f2p2I(CZ:{2T,I n
        把连续取N个采样值看成一个队列电子园51单片机学习网Alx%cJT?5S
        队列的长度固定为N电子园51单片机学习网*E7HqkHj
        每次采样到一个新数据放入队尾,并扔掉原来队首的一次数据.(先进先出原则)
3S.\e6g \:e vg0        把队列中的N个数据进行算术平均运算,就可获得新的滤波结果
"ANai6o(iHF$m;s:t0        N值的选取:流量,N=12;压力:N=4;液面,N=4~12;温度,N=1~4
t{LTuP0    B、优点:
JSP`3q0pQ0        对周期性干扰有良好的抑制作用,平滑度高电子园51单片机学习网;Yy,c8? t:?`%fR
        适用于高频振荡的系统   
K~&E,O4P5HD0q0    C、缺点:电子园51单片机学习网 ]6U d`fn%d/Fe.TJ-^
        灵敏度低电子园51单片机学习网TFJ.j@#h#` {6]!G
        对偶然出现的脉冲性干扰的抑制作用较差电子园51单片机学习网]f.c?j5AVT
        不易消除由于脉冲干扰所引起的采样值偏差
E\"anh0`7s0        不适用于脉冲干扰比较严重的场合电子园51单片机学习网1V-H2kWrQ;` ? fI g
        比较浪费RAM电子园51单片机学习网3UR/sq!Ti
       
7N]"gv |A05、中位值平均滤波法(又称防脉冲干扰平均滤波法)电子园51单片机学习网slnbO
    A、方法:
~+_5Y3z X8?(V5dM;Y']/\Ap0        相当于“中位值滤波法”+“算术平均滤波法”
?3ay ]]sa5~1}0        连续采样N个数据,去掉一个最大值和一个最小值电子园51单片机学习网YQCE4p7xoB
        然后计算N-2个数据的算术平均值电子园51单片机学习网[@ v1e9SK H
        N值的选取:3~14
0`F0| O;JyVGm0    B、优点:电子园51单片机学习网j:S'lVv9R"h7N1Z V
        融合了两种滤波法的优点电子园51单片机学习网op5ipNS_`
        对于偶然出现的脉冲性干扰,可消除由于脉冲干扰所引起的采样值偏差
g\l)t$Rh0    C、缺点:
ji.|S)FxNs&l)kZw2g0        测量速度较慢,和算术平均滤波法一样
&V+}Tf1s?F0        比较浪费RAM电子园51单片机学习网O]2P [~9]


8| p-w7l(opzDf0电子园51单片机学习网T!q[N+h$x+p.h
6、限幅平均滤波法
M3x@9[ v~;q0    A、方法:电子园51单片机学习网^1?vK"x c.[)B
        相当于“限幅滤波法”+“递推平均滤波法”电子园51单片机学习网sr}wE Q%q
        每次采样到的新数据先进行限幅处理,电子园51单片机学习网P,hT/|@m4v c
        再送入队列进行递推平均滤波处理
`5]3L?7Ai0    B、优点:电子园51单片机学习网&f Nw4]2fx? \X"U
        融合了两种滤波法的优点
!kq7k*S#y_#H0|0        对于偶然出现的脉冲性干扰,可消除由于脉冲干扰所引起的采样值偏差
3~zJ]lxM0    C、缺点:
p DprRtJB v0        比较浪费RAM

;vAIsmG4[0r0

C@w1^`B8B1Rp07、一阶滞后滤波法电子园51单片机学习网2Ou@ hz_b
    A、方法:电子园51单片机学习网9C/^X5s6PvN.R
        取a=0~1
+Zx4e*S;C%` i1y7i0        本次滤波结果=(1-a)*本次采样值+a*上次滤波结果
3W]Xz \0    B、优点:
0Kz kPPd0x#H!k0        对周期性干扰具有良好的抑制作用电子园51单片机学习网+e&BT;Kf/[
        适用于波动频率较高的场合电子园51单片机学习网!Q@1[d3M3R/[@
    C、缺点:
7\v I6CTfq!V1]RN0        相位滞后,灵敏度低
EtQ V UB3@0        滞后程度取决于a值大小
d? Q~6Z7c X&\0        不能消除滤波频率高于采样频率的1/2的干扰信号
6{ r \3U7g0z.I0       电子园51单片机学习网.cx [3@fL:~
8、加权递推平均滤波法
_(x0KJj[5R0    A、方法:电子园51单片机学习网'BpT-X GrU
        是对递推平均滤波法的改进,即不同时刻的数据加以不同的权
p!K)go)FE k*l*W^f+G0        通常是,越接近现时刻的数据,权取得越大。电子园51单片机学习网4vZ{l%o
        给予新采样值的权系数越大,则灵敏度越高,但信号平滑度越低电子园51单片机学习网n"^ W _{hU3V,j]
    B、优点:
,A0j$\3GdT0        适用于有较大纯滞后时间常数的对象电子园51单片机学习网9j*o Y\oN
        和采样周期较短的系统电子园51单片机学习网f:D.|)]I"qr
    C、缺点:电子园51单片机学习网"Z+_1gXT/Uk
        对于纯滞后时间常数较小,采样周期较长,变化缓慢的信号
Hng&uz'j%M5j@0        不能迅速反应系统当前所受干扰的严重程度,滤波效果差

E-f H ~M9A(Ryf'u0电子园51单片机学习网6[r8] Yy%?~suD Q

9、消抖滤波法
%T@%Q u3z'hY |_0    A、方法:电子园51单片机学习网 c z_B+lH
        设置一个滤波计数器
b-a:`#hsu V0        将每次采样值与当前有效值比较:
-K{$I|2OL0        如果采样值=当前有效值,则计数器清零
k)k8HL W;q0        如果采样值<>当前有效值,则计数器+1,并判断计数器是否>=上限N(溢出)
tM"d:gw%q4i7Q0            如果计数器溢出,则将本次值替换当前有效值,并清计数器电子园51单片机学习网o Bf@#Js
    B、优点:
6U}wz-C0        对于变化缓慢的被测参数有较好的滤波效果,
(N2Fi DT;] E2a0        可避免在临界值附近控制器的反复开/关跳动或显示器上数值抖动电子园51单片机学习网9T c,E1U ZU,k
    C、缺点:
)N.h,LJCA+cM0        对于快速变化的参数不宜电子园51单片机学习网'pfm R@%T8M
        如果在计数器溢出的那一次采样到的值恰好是干扰值,则会将干扰值当作有效值导电子园51单片机学习网"bVTpf}%k T
入系统电子园51单片机学习网v9sqw k^.@1fN


(B\_ UR5x9l:M010、限幅消抖滤波法电子园51单片机学习网'NEZ+fcg
    A、方法:电子园51单片机学习网#~j?h]#r
        相当于“限幅滤波法”+“消抖滤波法”
E6|w\'a]&X5Qfr?0        先限幅,后消抖电子园51单片机学习网R;Q{ mH!zt
    B、优点:
6w;D i%` T m%E{0        继承了“限幅”和“消抖”的优点
G(mbZ]0        改进了“消抖滤波法”中的某些缺陷,避免将干扰值导入系统电子园51单片机学习网7Q&Cg?D
    C、缺点:
h~|W5~1J5E0        对于快速变化的参数不宜

._X*s7H/FG2W0
PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
10
关闭 站长推荐上一条 /3 下一条