数学建模社区-数学中国

标题: [原创]软件滤波 [打印本页]

作者: xjq2005    时间: 2005-4-4 12:08
标题: [原创]软件滤波
软件滤波方法
' o$ C8 h, V$ T
+ C  C9 ^# Z. ]( Y/ m2 m4 X) v第1种方法、限幅滤波法(又称程序判断滤波法)
8 K$ k0 L% m2 L$ DA、方法:
, a2 i& C: K$ ?  q5 b根据经验判断,确定两次采样允许的最大偏差值(设为A)0 Z* G6 J; `' Q" v
每次检测到新值时判断:( f/ m4 ^! f0 u2 n5 ], z5 G* P2 U
如果本次值与上次值之差<=A,则本次值有效
6 \' ^4 y, w; |: |8 ~2 l, @- k- }" }如果本次值与上次值之差>A,则本次值无效,放弃本次值,用上次值代替本次值
% h/ b0 J! {* o) K. CB、优点:4 u5 \! Y; C7 X) Y) h' H
能有效克服因偶然因素引起的脉冲干扰
  K. ?% z' v: ~( u0 ~C、缺点! I1 P# _9 L3 t# y) |
无法抑制那种周期性的干扰
1 }8 L* F2 F! {6 _. c6 K6 J平滑度差: m" }7 i7 }, g: g
, L: H! [4 H- i+ @1 b
第2种方法、中位值滤波法
+ r' C& m/ N7 {A、方法:" d( c0 p+ ~2 p/ i. o1 J4 g
连续采样N次(N取奇数)1 S! V$ ?* y: ?( @
把N次采样值按大小排列
* Y+ d- P, d) l4 A取中间值为本次有效值  z9 }( F9 U' d8 a1 K$ m) s
B、优点:7 ^4 u1 H$ Q8 n# U0 K/ [3 }. ]8 l
能有效克服因偶然因素引起的波动干扰
% D' g- T+ V: G  `( c1 i; n$ R对温度、液位的变化缓慢的被测参数有良好的滤波效果% Q" `1 l6 ^3 @3 J
C、缺点:+ W, g* W1 g- D1 X
对流量、速度等快速变化的参数不宜
4 p+ Z6 `% `' g1 j7 ?
, x. c/ Z3 n0 r6 q2 P第3种方法、算术平均滤波法
2 H1 y9 z3 l7 VA、方法:
- k0 S, V+ i' q2 \1 {; {# c3 [. B连续取N个采样值进行算术平均运算
; L( B2 U6 R7 q/ L. KN值较大时:信号平滑度较高,但灵敏度较低
0 h% `5 F  c) x/ Z5 R/ e+ G  f5 DN值较小时:信号平滑度较低,但灵敏度较高
0 u* G9 ~" [$ ^3 r8 SN值的选取:一般流量,N=12;压力:N=4  c2 l5 x* k, K5 p' \7 S; z! G
B、优点:
5 L2 q7 I% r/ l" N: p5 I适用于对一般具有随机干扰的信号进行滤波
! E/ A9 h1 _. R) s这样信号的特点是有一个平均值,信号在某一数值范围附近上下波动
/ R! e, X+ }2 S" a' ?C、缺点:
; A5 R; Z; j' d; \对于测量速度较慢或要求数据计算速度较快的实时控制不适用
6 {4 h) X/ s2 h, `" i5 k. ~$ ~比较浪费RAM7 I2 o8 F" Z' H9 a, k* g

/ p7 C+ {- V: a第4种方法、递推平均滤波法(又称滑动平均滤波法)
2 ?0 t7 v- M4 x6 V0 ]/ lA、方法:
( v7 M; B2 t3 H7 p) p7 f! T! D把连续取N个采样值看成一个队列, l" `( H6 \7 J: f1 M9 P
队列的长度固定为N
3 @/ p9 J2 {  g4 W$ M0 x7 k+ D每次采样到一个新数据放入队尾,并扔掉原来队首的一次数据.(先进先出原则)
: b+ Y( J* k4 b" @9 X- ~5 {1 P把队列中的N个数据进行算术平均运算,就可获得新的滤波结果3 i/ F* M  P0 k" k6 Y/ t
N值的选取:流量,N=12;压力:N=4;液面,N=4~12;温度,N=1~4
' B; l" m% O/ }# l, t* mB、优点:6 B; w# D2 z$ o: r1 B" Z
对周期性干扰有良好的抑制作用,平滑度高- Y& n2 [* H9 _7 k  h" O# }) T
适用于高频振荡的系统 3 K1 K- q4 B' N( |
C、缺点:
6 I% \$ y" y  Q- b* Y& R* ^灵敏度低
$ S! S# A7 L8 P" M& D4 Z/ \对偶然出现的脉冲性干扰的抑制作用较差
$ E0 R4 K, T- t# l9 O不易消除由于脉冲干扰所引起的采样值偏差
- B  ?; f  U1 @" d# r不适用于脉冲干扰比较严重的场合9 A* a; j9 ^2 m# D
比较浪费RAM; ?0 U, E+ l& m1 Y& q4 ^/ F: e8 h
7 n  p& B4 F) C" T0 }
第5种方法、中位值平均滤波法(又称防脉冲干扰平均滤波法)2 P' r& N$ l: H, v3 M& g
A、方法:
* |; T* z( N* ~( @相当于“中位值滤波法”+“算术平均滤波法”" H7 j" m1 [5 X4 l7 P
连续采样N个数据,去掉一个最大值和一个最小值
# P) B1 G/ [3 F/ V5 |9 F* G) W然后计算N-2个数据的算术平均值- B' t6 ^' B( K) k" \+ F" G
N值的选取:3~14
( h0 y# ?' U3 g  X/ `" x4 \B、优点:
2 ~# \$ W3 y/ ?融合了两种滤波法的优点/ i* A4 b& z1 k. j; ]
对于偶然出现的脉冲性干扰,可消除由于脉冲干扰所引起的采样值偏差) o1 B" o$ w6 Z0 a0 c0 l
C、缺点:: a9 R2 C# ?8 f
测量速度较慢,和算术平均滤波法一样" l! P, q# O. G- N6 ^
比较浪费RAM; E4 q" g+ H( m% J0 S

) I" p: `7 J! _: r+ T9 ^9 ^) x0 y0 A# \( j8 @! W: c) l
第6种方法、限幅平均滤波法
) ^, o# ~3 ~6 j. C  L7 tA、方法:( v/ b( X  b" E" Q3 Q
相当于“限幅滤波法”+“递推平均滤波法”! c: [$ E  [" Z3 ?$ O
每次采样到的新数据先进行限幅处理,  Y, D  O  e' t; x" s
再送入队列进行递推平均滤波处理  h/ s% \# @  J5 X/ W3 T4 t( Z
B、优点:
& H; C; l+ a- s# l; b. R! D. ]融合了两种滤波法的优点
, g& e& q% E  C对于偶然出现的脉冲性干扰,可消除由于脉冲干扰所引起的采样值偏差6 V. _' e+ o( n, f& e) x8 F
C、缺点:
' t! O# N  h1 u7 \* ^; v4 c. ?& W* o. }" \比较浪费RAM
) I# z0 U* o; S  ?: \0 h. G6 L8 h% `/ ?' ~4 _& Z/ c- ?
第7种方法、一阶滞后滤波法2 u$ {& u# @2 W1 p4 ]
A、方法:
5 |, V6 B! h* o9 b, ]取a=0~17 `# ]0 s' [% D2 r$ P  j
本次滤波结果=(1-a)*本次采样值+a*上次滤波结果
3 k3 u6 Q) d0 H2 S2 rB、优点:, n8 H% Y- s$ Z$ S1 @
对周期性干扰具有良好的抑制作用6 x2 C" v) a! g
适用于波动频率较高的场合2 S/ i+ W7 k6 h# \( f
C、缺点:  b6 a) R! J9 ]+ f8 F/ ~
相位滞后,灵敏度低
6 X1 [( U9 ~- d; c' ~5 H0 a7 t滞后程度取决于a值大小
1 T) L1 O, G  z; V& ?- _不能消除滤波频率高于采样频率的1/2的干扰信号
) j' u  k6 c2 ^$ v# ?0 V
$ G& U7 I' X. P# F第8种方法、加权递推平均滤波法
% p! O& l2 B9 |8 [A、方法:
9 h5 }, k4 G9 u. Y. p是对递推平均滤波法的改进,即不同时刻的数据加以不同的权
6 Z( y5 d- A5 F. t( r# [6 s- t通常是,越接近现时刻的数据,权取得越大。
" k2 x7 a( e  Y; k4 t. K  |! ^给予新采样值的权系数越大,则灵敏度越高,但信号平滑度越低
. g) L5 K# q- |& u& d( o# fB、优点:+ I( Z1 A4 ~# z- ~' G. l
适用于有较大纯滞后时间常数的对象/ ~" g+ n6 J' w) ^; M& V( s
和采样周期较短的系统
3 b9 k* ~; U& \. y& W3 Z) m2 x+ \C、缺点:
, d; y7 @; V7 G5 v对于纯滞后时间常数较小,采样周期较长,变化缓慢的信号
- T+ |: Q5 g/ F7 X1 @, ^不能迅速反应系统当前所受干扰的严重程度,滤波效果差
6 d( i' q/ {( U  d+ s# h9 n: v; s& v3 n: s" o
第9种方法、消抖滤波法1 o: V, }6 R% ?) K1 d3 ]
A、方法:
, L3 S/ @# D" V- \9 n! k! f0 D  ]设置一个滤波计数器$ X: Y: R3 D, ?0 _& P5 h
将每次采样值与当前有效值比较:" M3 L. t* l3 I: i6 V$ j
如果采样值=当前有效值,则计数器清零7 Q4 D; H; s# B1 c, b5 z7 N
如果采样值<>当前有效值,则计数器+1,并判断计数器是否>=上限N(溢出)' G/ |) }7 v9 `- v& ^5 v! c
如果计数器溢出,则将本次值替换当前有效值,并清计数器
- M, S% m; [- fB、优点:) ?  V4 O- P4 Z7 N- {- M
对于变化缓慢的被测参数有较好的滤波效果,
; l1 z6 ]" k  X可避免在临界值附近控制器的反复开/关跳动或显示器上数值抖动$ Y' X3 e; \1 v& p; R7 a  t6 }9 n9 l
C、缺点:& B( W' D: @! V
对于快速变化的参数不宜- N$ m$ _, e1 e9 u9 {5 |8 M
如果在计数器溢出的那一次采样到的值恰好是干扰值,则会将干扰值当作有效值导入系统) s+ E0 r* \0 t" C* a) E

, b0 B7 m! G7 D第10种方法、限幅消抖滤波法  b1 e: A* A+ N: M
A、方法:
5 _. r2 X1 _4 `相当于“限幅滤波法”+“消抖滤波法”
: m$ l$ G! }* J* V4 d4 c: H& s先限幅,后消抖8 S% j  L/ w2 O- S3 i
B、优点:; E  V" t$ O/ u  }0 [
继承了“限幅”和“消抖”的优点, s6 v* _1 ^3 l
改进了“消抖滤波法”中的某些缺陷,避免将干扰值导入系统0 m/ M4 ?) w% j6 A5 [. _
C、缺点:- ]  Y4 y6 `5 [0 `
对于快速变化的参数不宜
- Q, \' V' {( n2 m3 U- K* C5 m6 r; ]
6 [* s* G8 e+ M: `; w) n, @0 q- i8 N2 f& x$ \
第11种方法:IIR 数字滤波器 % B3 Y; H5 _2 F- C$ A) \! S& Z  b$ |% w

5 N( I, a3 L1 }. [) Z) x" GA. 方法:
5 R9 r1 [6 a* `2 o9 T- n! F确定信号带宽, 滤之。- ?  g6 G+ }# ?' L! \  }3 f" l, z7 L9 S
Y(n) = a1*Y(n-1) + a2*Y(n-2) + ... + ak*Y(n-k) + b0*X(n) + b1*X(n-1) + b2*X(n-2) + ... + bk*X(n-k)
$ F$ h; c1 c3 A/ K, Q1 Y6 P' K3 k& x' L2 Z" ]7 u: }% h
B. 优点:高通,低通,带通,带阻任意。设计简单(用matlab)
: C; s4 O  ^7 p+ a3 g$ O9 HC. 缺点:运算量大。
作者: jin_geda    时间: 2013-9-29 16:15





欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5