数学建模社区-数学中国

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

作者: xjq2005    时间: 2005-4-4 12:08
标题: [原创]软件滤波
软件滤波方法7 i( d" K( t( w: ]' a
4 D  g* S  Y! R3 e4 m& q8 d0 q
第1种方法、限幅滤波法(又称程序判断滤波法)
/ ?4 {) k1 [0 T% m4 V. r) IA、方法:" F& [9 |/ h. `" h2 a: Y7 G' v
根据经验判断,确定两次采样允许的最大偏差值(设为A)
. K; Z+ U9 N0 J0 F2 [& I- D+ N0 o每次检测到新值时判断:
) s4 u  ]' q; Z: _" T如果本次值与上次值之差<=A,则本次值有效
! n+ b, u: b$ t+ [如果本次值与上次值之差>A,则本次值无效,放弃本次值,用上次值代替本次值
' t* ]6 M: d  I1 K4 U: [B、优点:# e# D% Z; O* p# k6 l; d2 L, M5 ^
能有效克服因偶然因素引起的脉冲干扰8 q- s5 d, ?' k, Q2 Z. p
C、缺点
3 Y8 o6 H) l! y" P无法抑制那种周期性的干扰7 B( ~9 x: e2 L
平滑度差* n6 T8 n8 m7 H+ @) {
* L/ O) V7 O- g6 o
第2种方法、中位值滤波法
! x$ r/ Y  W* b2 h" X8 ?3 K0 LA、方法:# h3 H8 ], D1 f5 ~
连续采样N次(N取奇数)' S3 v- G1 P2 k$ J
把N次采样值按大小排列
1 `: n9 z) Z/ Q, H取中间值为本次有效值+ c$ U* a# {/ c% n5 e
B、优点:
- j% ^* @; \% A$ D2 Y能有效克服因偶然因素引起的波动干扰
1 @5 q3 T' B. P3 z0 f对温度、液位的变化缓慢的被测参数有良好的滤波效果/ e1 J0 `+ E2 }* g' L
C、缺点:4 P$ N+ U! G. q1 m7 L$ q
对流量、速度等快速变化的参数不宜- }* I3 g8 B6 }5 B" N- B: f
, _4 T0 n* S5 B- z9 a1 @  s
第3种方法、算术平均滤波法! O9 y* v& r' }  F3 J# t* T7 v- V
A、方法:
2 B3 a( s) x. D! k连续取N个采样值进行算术平均运算
$ z8 {/ q1 ]# v# z9 O) H# R+ fN值较大时:信号平滑度较高,但灵敏度较低
! l4 T# G6 M. ON值较小时:信号平滑度较低,但灵敏度较高2 x: q4 s! C9 x, x8 \* r* r
N值的选取:一般流量,N=12;压力:N=4
+ x. o8 k% e% K' aB、优点:
. P; p( b0 ~1 ~8 M+ J' e4 I适用于对一般具有随机干扰的信号进行滤波
  u( b# ]: k# m: T6 Z9 F( ^  S这样信号的特点是有一个平均值,信号在某一数值范围附近上下波动" m; w* F) d1 a+ ]
C、缺点:
1 d$ y! X. ^; E' l8 v8 h' `+ l( O对于测量速度较慢或要求数据计算速度较快的实时控制不适用% Q  m0 m. L0 O4 o" m: M4 M
比较浪费RAM. u4 R2 Y8 Q0 d- F
0 C" `" V, j+ T
第4种方法、递推平均滤波法(又称滑动平均滤波法)
& b* V# [8 @0 N, o" V$ vA、方法:
' @- k3 T* w+ W( d' k把连续取N个采样值看成一个队列
2 p1 V; A4 V% x队列的长度固定为N
/ X  A+ X) @# J每次采样到一个新数据放入队尾,并扔掉原来队首的一次数据.(先进先出原则)
& Y+ |' C. O  T, n把队列中的N个数据进行算术平均运算,就可获得新的滤波结果& U% Y' ~" ^; s5 l: m' M) s+ O
N值的选取:流量,N=12;压力:N=4;液面,N=4~12;温度,N=1~4
' W: @; ]" ~& ]9 b. G0 mB、优点:
- u* m+ U" d/ w! u1 a% A% Z1 t( _对周期性干扰有良好的抑制作用,平滑度高
% S& F$ z2 v% U9 K  m6 \& W5 G适用于高频振荡的系统 / l) l3 u' @7 @; z9 h
C、缺点:
: J+ ?/ r) ]: d+ R) M灵敏度低
( v' e3 r6 D9 ~( f1 t. N, y& @$ F$ a对偶然出现的脉冲性干扰的抑制作用较差" P, @) z; H# J
不易消除由于脉冲干扰所引起的采样值偏差8 O. E# F$ H% G9 t
不适用于脉冲干扰比较严重的场合2 ^& \$ |) g' h% q/ h2 a/ W3 I' `0 o. X; I
比较浪费RAM
( ~. z- G( y9 O2 i7 [
# p( d9 V- S+ L$ N1 V9 D第5种方法、中位值平均滤波法(又称防脉冲干扰平均滤波法), ?2 o4 E; X. ^7 C- g+ V0 B
A、方法:& m4 ~5 P" N  k5 ]% Z" O/ c
相当于“中位值滤波法”+“算术平均滤波法”5 L/ t' r& o, p% c& I( I
连续采样N个数据,去掉一个最大值和一个最小值: k  O8 ~* d* F
然后计算N-2个数据的算术平均值
0 n4 j9 m% A$ K4 I2 z1 J2 MN值的选取:3~14/ k5 h& i1 \1 T5 p5 X& K# ?: F, K
B、优点:
% f5 {* X/ _6 E融合了两种滤波法的优点/ b' E1 O3 U2 f: e- w- z
对于偶然出现的脉冲性干扰,可消除由于脉冲干扰所引起的采样值偏差/ X! t9 Q+ V5 ^5 e+ k) ]: h# e
C、缺点:! y. D; x  U8 S+ f( P8 P- B7 w% U
测量速度较慢,和算术平均滤波法一样1 D7 |2 {  m1 {" \: ~
比较浪费RAM/ X- p& b* L9 \: B: M' x
* S2 C- z, a; c: |
3 U+ S7 l5 o5 y+ _6 h" r" T
第6种方法、限幅平均滤波法. q: a  {# l1 i
A、方法:2 L6 R. ]7 Z" _
相当于“限幅滤波法”+“递推平均滤波法”- x8 f  w3 _6 m; S7 d4 |" E" a. j
每次采样到的新数据先进行限幅处理,
) x, }' F6 A  a/ ~  J, W, E再送入队列进行递推平均滤波处理4 R2 v( h2 H' o: [+ M" k
B、优点:
) u: m& d" e  _+ i: T融合了两种滤波法的优点5 f! A% o& c$ R4 _9 M: R6 X
对于偶然出现的脉冲性干扰,可消除由于脉冲干扰所引起的采样值偏差
, L. e5 {. x7 J! N; B5 P/ IC、缺点:
6 }( Q: D/ T$ j比较浪费RAM
' P6 \1 T7 f  V9 J  }( [$ c. p3 Y$ ~0 Y
第7种方法、一阶滞后滤波法" u) ?: a4 f9 k( C
A、方法:3 D5 j& H3 F* u0 u
取a=0~1
$ \& R* q2 d1 R& W3 a8 w5 g# d本次滤波结果=(1-a)*本次采样值+a*上次滤波结果
; v: Q' k! R: ?' T4 Q' h" A/ zB、优点:
) m( x, W- d4 M! c+ p对周期性干扰具有良好的抑制作用
8 w3 _/ d6 ]/ ~# |5 X3 X$ H适用于波动频率较高的场合; j; F2 G; J& B# D
C、缺点:
/ S; Y1 g8 |1 B& f$ \0 e相位滞后,灵敏度低
. M+ C7 x3 l' D* E) U$ V, q8 d滞后程度取决于a值大小; Q- l/ T. |* o/ E% k% a
不能消除滤波频率高于采样频率的1/2的干扰信号
. ^5 K1 P& K0 X9 V
0 B" X2 s; `2 ]( H* P+ b第8种方法、加权递推平均滤波法2 |' c5 r( p" W! }' g/ M# o. A. Y
A、方法:+ `6 D6 Q$ ~% ]# U" J- e% O
是对递推平均滤波法的改进,即不同时刻的数据加以不同的权
$ u8 `" y) Z$ X通常是,越接近现时刻的数据,权取得越大。
$ g- j5 k" M0 r1 M# i2 e给予新采样值的权系数越大,则灵敏度越高,但信号平滑度越低
$ W+ Y, R1 j' `( W, @3 bB、优点:2 G% [1 N' u" C. n: v/ e
适用于有较大纯滞后时间常数的对象8 t) y. T. I! \8 }+ v. ^) w" q( K
和采样周期较短的系统# X1 O) J$ |- K: ~$ L, h
C、缺点:* D: P6 Z( f0 w5 [" ]6 [
对于纯滞后时间常数较小,采样周期较长,变化缓慢的信号
5 N% k, a# Z. c不能迅速反应系统当前所受干扰的严重程度,滤波效果差1 T: R! }9 F: ?, N2 M
' r7 N& c2 M. H# r( Y$ @# W
第9种方法、消抖滤波法' {' O. q$ t7 X- J% p9 ~# W& i
A、方法:; R# \6 e; v6 {8 Q3 f
设置一个滤波计数器7 K$ T/ J2 P$ S- [# r2 b2 c
将每次采样值与当前有效值比较:
. n  |7 {0 h. m/ O8 O* Z+ V如果采样值=当前有效值,则计数器清零
: y2 B0 x' V( d* ~如果采样值<>当前有效值,则计数器+1,并判断计数器是否>=上限N(溢出)
6 p7 i- @- {& T0 K* M/ Y如果计数器溢出,则将本次值替换当前有效值,并清计数器
8 c: j& E+ L. ^) R2 ^* |. QB、优点:5 L* S/ m. r' {# J
对于变化缓慢的被测参数有较好的滤波效果,  q" X- X" g( D- D6 j
可避免在临界值附近控制器的反复开/关跳动或显示器上数值抖动
. H# a$ E  R0 z$ lC、缺点:
$ ?) H' W1 e. K0 x) c- v对于快速变化的参数不宜# T& z7 S1 f  F6 _6 }' K
如果在计数器溢出的那一次采样到的值恰好是干扰值,则会将干扰值当作有效值导入系统0 E6 T. D$ m* _& g
% {" e8 W* @- \/ x/ f, @
第10种方法、限幅消抖滤波法
& s, u- r8 a8 H! B5 Q8 [A、方法:1 H9 g8 Y3 H$ w& f: ~& Q* @
相当于“限幅滤波法”+“消抖滤波法”/ K/ Y7 |1 M( p/ ^- u% w
先限幅,后消抖2 n! N  T0 t6 q! |- x
B、优点:
1 @3 W$ k* c$ `# g3 \继承了“限幅”和“消抖”的优点% L9 I7 g! @: ^. \$ k% G( Q
改进了“消抖滤波法”中的某些缺陷,避免将干扰值导入系统
/ @# X2 [& Q# F2 z* S% TC、缺点:
( A8 N7 U2 B0 d+ Z; A' S. ]对于快速变化的参数不宜( l" g' v: P" `- q
+ y8 l: j) Z3 `( [/ F8 z

$ {: m% W, P. p. z9 Y0 I6 T/ A第11种方法:IIR 数字滤波器 , |& B/ Q# E) U, `# y. m; ?; z9 p, m, S
8 V3 m! K& C+ D
A. 方法:) I* ]9 i8 g; D
确定信号带宽, 滤之。- M/ X1 V, N. n
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)9 r6 o. M' s0 v9 |

9 G: R$ [: b& N- Y) c2 P, q4 k; T# SB. 优点:高通,低通,带通,带阻任意。设计简单(用matlab)
. A7 H$ w$ h  [3 b. ~) z8 h" ]C. 缺点:运算量大。
作者: jin_geda    时间: 2013-9-29 16:15





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