EDA365电子工程师网
标题:
单片机实现软件滤波
[打印本页]
作者:
cyxs
时间:
2016-8-12 14:21
标题:
单片机实现软件滤波
1、限幅滤波法(又称程序判断滤波法)
6 z5 H* N; q/ ?4 K3 x7 V4 W
A、方法:
, n V+ n. A. p) W+ _
根据经验判断,确定两次采样允许的最大偏差值(设为A)
" C9 D6 w, w/ L! V, L2 x& f
每次检测到新值时判断:
/ Y. Z5 [/ J( o* A( |
如果本次值与上次值之差<=A,则本次值有效
& @+ X5 Y- ?8 F; n. c) p
如果本次值与上次值之差>A,则本次值无效,放弃本次值,用上次值代替本次值
+ R" n$ Q" S& o
B、优点:
, ]+ r8 `! y) ?2 ]
能有效克服因偶然因素引起的脉冲干扰
, R9 A' v+ o4 p/ d
C、缺点
" {8 q: s- a2 p9 @, B( b% \
无法抑制那种周期性的干扰
) `9 f6 _, A" p1 I: E& m# s
平滑度差
4 h# O9 i+ `) q9 { f5 G3 h. D
; h6 m+ u" r7 R
2、中位值滤波法
6 j3 ^' o& W, r: ^" C( o1 B; N
A、方法:
4 I1 V* F3 Q* i+ i+ Y$ _( S0 s
连续采样N次(N取奇数)
; k- l$ l& }# N+ v4 o4 F
把N次采样值按大小排列
2 Q$ O2 n7 P! t, E2 S, t1 u
取中间值为本次有效值
- V/ @3 @, }4 K% ~5 j8 G
B、优点:
0 E5 f6 |* B* Z" T+ h& v4 p
能有效克服因偶然因素引起的波动干扰
. t: Y0 e6 S1 J
对温度、液位的变化缓慢的被测参数有良好的滤波效果
" f: l1 Z) s/ Y' W u- Y
C、缺点:
1 P: E# j. x6 X$ ]/ q* J
对流量、速度等快速变化的参数不宜
A9 V5 ~. E. W K n
7 g$ g! y& D( _/ n8 @0 p
3、算术平均滤波法
9 ~$ F: d/ m. q0 r. g3 ]
A、方法:
1 ]" \" B, d# d1 J9 A5 F# y' Z
连续取N个采样值进行算术平均运算
d9 ~* G% F+ c; U2 {
N值较大时:信号平滑度较高,但灵敏度较低
2 o o& n1 h. K
N值较小时:信号平滑度较低,但灵敏度较高
! \+ g/ W5 P% ~& `
N值的选取:一般流量,N=12;压力:N=4
% c+ f# h( u% D8 e, f% Q
B、优点:
2 n! {. ]: [# }$ [
适用于对一般具有随机干扰的信号进行滤波
3 v+ w+ n3 @; p) {% ~1 M
这样信号的特点是有一个平均值,信号在某一数值范围附近上下波动
. N/ V8 M, h: S. G2 i( m
C、缺点:
2 X! i+ L5 O2 F5 m$ @4 Y: P/ f
对于测量速度较慢或要求数据计算速度较快的实时控制不适用
1 T/ e5 K8 I' k3 f2 u
比较浪费RAM
+ f) n( l8 \! O. [) Z( ]
! x8 L& |, ~9 [: E2 @! E, U5 r$ }( [
4、递推平均滤波法(又称滑动平均滤波法)
4 j7 c; `! T$ ^
A、方法:
8 q* d- @! }% I+ T% [
把连续取N个采样值看成一个队列
: N! S8 u5 S( Z0 T/ i ]7 K" b# g
队列的长度固定为N
* ?! Q0 M2 q8 b% {, e
每次采样到一个新数据放入队尾,并扔掉原来队首的一次数据.(先进先出原则)
' N( H* ~3 w6 ^0 a2 G
把队列中的N个数据进行算术平均运算,就可获得新的滤波结果
3 Z Z! n- x( K9 c9 i+ K/ ^8 |
N值的选取:流量,N=12;压力:N=4;液面,N=4~12;温度,N=1~4
" o. Q3 y6 y: f8 h1 ~6 _# R
B、优点:
0 R$ N& [9 ?1 X# Q, u# I6 q
对周期性干扰有良好的抑制作用,平滑度高
& B, ~- Q9 K3 E1 c# `! f# @& r
适用于高频振荡的系统
: C( L$ b0 g7 d7 q
C、缺点:
( H$ X4 H* g% }0 f m/ E7 d: V
灵敏度低
% D( |( ?; X+ `) P3 \: a: O
对偶然出现的脉冲性干扰的抑制作用较差
& m7 I$ n, m" I- W M
不易消除由于脉冲干扰所引起的采样值偏差
, P. A* R, [/ m: o0 r
不适用于脉冲干扰比较严重的场合
1 O/ p/ V- N0 S
比较浪费RAM
4 R9 O7 D+ P% H% y
( ~. `8 f) i0 I. v6 _
5、中位值平均滤波法(又称防脉冲干扰平均滤波法)
2 Q. i; k& s# R
A、方法:
: O+ E! k' b1 `. M8 K- P [
相当于“中位值滤波法”+“算术平均滤波法”
4 T( a2 |( r, U' @: f
连续采样N个数据,去掉一个最大值和一个最小值
2 p, U s) Q3 {
然后计算N-2个数据的算术平均值
j; v( ?9 Z7 V* z$ t0 D. P
N值的选取:3~14
2 C7 U9 F$ J) b! C4 ?4 E6 C
B、优点:
* l9 f" e" D( Q0 g+ {$ `
融合了两种滤波法的优点
$ n0 j0 E/ X9 L% p
对于偶然出现的脉冲性干扰,可消除由于脉冲干扰所引起的采样值偏差
4 G2 ^) s$ u2 F$ v1 f# C
C、缺点:
! {, l+ t- S) h! @$ y2 E1 W
测量速度较慢,和算术平均滤波法一样
+ Z" L; [/ k% q5 r: A8 @
比较浪费RAM
/ F0 Y- h# {4 L4 s4 y8 c
! s. G. b( Z5 X2 {% Y @: @
D0 E. y; v3 ~- e8 A% l
6、限幅平均滤波法
6 ]% D/ d, L6 ?* O$ \. G
A、方法:
p0 R9 s# g# x$ H7 ?+ a7 v& G* E( e
相当于“限幅滤波法”+“递推平均滤波法”
7 w+ l: x3 ~% E
每次采样到的新数据先进行限幅处理,
( |! V* T/ A$ p5 J' j
再送入队列进行递推平均滤波处理
. i4 u: o% V5 Q- V+ u0 l
B、优点:
8 f1 t# M. T* v8 n) K5 l
融合了两种滤波法的优点
4 f6 K- |/ J- Q6 i7 V( U
对于偶然出现的脉冲性干扰,可消除由于脉冲干扰所引起的采样值偏差
! a0 ~3 J; p0 |/ W
C、缺点:
' \! [/ G5 {8 h
比较浪费RAM
_& T A, F2 |8 i3 V. |' Y0 ^; v
" n- k1 w9 a2 k+ @. Q
7、一阶滞后滤波法
/ h: ~) K$ n7 N) p- p
A、方法:
8 g# B+ t0 Q3 s' f
取a=0~1
: \% V. c7 ? x, G' W' p
本次滤波结果=(1-a)*本次采样值+a*上次滤波结果
' I# @( W4 f5 r6 o. k( E6 h* x
B、优点:
6 ]+ |: S0 w0 d1 B" Y, h
对周期性干扰具有良好的抑制作用
9 `& c+ ]. |" ]( o4 Z( U# \
适用于波动频率较高的场合
! }* X5 v; @ |8 w, E+ ~ ~' W
C、缺点:
" o. z+ P8 Y0 Q! s3 V# l) T
相位滞后,灵敏度低
; l# w. C9 G' l
滞后程度取决于a值大小
4 M+ ^3 w; D+ J- f/ ]+ w7 T# m
不能消除滤波频率高于采样频率的1/2的干扰信号
: H' ?; S, {& _* g% U
9 g ^( k7 W6 S: X6 s( n
8、加权递推平均滤波法
! Q: U) v' Y: J
A、方法:
( C. ~! |8 j6 t* v; c
是对递推平均滤波法的改进,即不同时刻的数据加以不同的权
+ j! K5 Z8 u! U' {0 t
通常是,越接近现时刻的数据,权取得越大。
1 o+ d+ z& M; T4 X: R
给予新采样值的权系数越大,则灵敏度越高,但信号平滑度越低
, @1 ?* z; w1 T. G5 z- q$ f
B、优点:
3 @5 V* k% n/ x3 Z# P
适用于有较大纯滞后时间常数的对象
, |. A R0 }1 m7 a/ {: ]3 \% x
和采样周期较短的系统
& q7 b$ }7 H5 u* Z8 S4 D. i
C、缺点:
$ h: l+ `* r) A- R: e
对于纯滞后时间常数较小,采样周期较长,变化缓慢的信号
, k; e7 t" `( W9 ]0 _
不能迅速反应系统当前所受干扰的严重程度,滤波效果差
# @, E+ s* l1 i) G
" M6 u) ^4 {. V& G+ q- z6 P( N
9、消抖滤波法
- J0 K0 m( p9 i3 o. k
A、方法:
5 l$ P; l4 u' s9 B+ m3 w3 n9 F
设置一个滤波计数器
1 T9 t8 z. Z5 m r3 l7 H& b
将每次采样值与当前有效值比较:
/ I% ^9 A- e4 l$ A) q
如果采样值=当前有效值,则计数器清零
d1 U" C! J. v; o7 C8 e
如果采样值<>当前有效值,则计数器+1,并判断计数器是否>=上限N(溢出)
2 m1 J* p/ k8 d2 W x2 B
如果计数器溢出,则将本次值替换当前有效值,并清计数器
( A" u3 I$ S0 C% X9 x) H4 X
B、优点:
) l; w8 T! s- H- @$ w6 y8 B* K
对于变化缓慢的被测参数有较好的滤波效果,
( M g) ~3 A) D6 K# l9 W; I, y
可避免在临界值附近控制器的反复开/关跳动或显示器上数值抖动
4 e: d$ q. o, _/ B! Y2 I
C、缺点:
2 P5 q% V/ O$ q: l5 f# _
对于快速变化的参数不宜
# L4 H+ f7 R/ E7 _& [
如果在计数器溢出的那一次采样到的值恰好是干扰值,则会将干扰值当作有效值导
( E& s& q' S! e+ R% O+ n
入系统
. v4 x2 V4 K/ |# M' w( I1 J* K
3 ]& [5 Q) j5 K; O% \! E) J7 x
10、限幅消抖滤波法
. ?& B" t& Q2 ~# h
A、方法:
0 Q* N" |0 n8 z) g. [; ^# r2 N B
相当于“限幅滤波法”+“消抖滤波法”
5 j# W$ I3 k1 D* t' H
先限幅,后消抖
* F- x2 k; X0 y# P! }, k) X
B、优点:
7 K% g" m8 A6 t
继承了“限幅”和“消抖”的优点
`; O: U6 q6 p
改进了“消抖滤波法”中的某些缺陷,避免将干扰值导入系统
* @0 P" g( C0 j
C、缺点:
8 o! K! g" e. S: }6 t
对于快速变化的参数不宜
作者:
Abricy
时间:
2016-8-13 11:05
路过捧场,谢谢分享!
8 a5 q( B" U0 F
欢迎光临 EDA365电子工程师网 (http://bbs.elecnest.cn/)
Powered by Discuz! X3.2