数学建模社区-数学中国

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

作者: xjq2005    时间: 2005-4-4 12:08
标题: [原创]软件滤波
软件滤波方法" _  m8 U/ i4 k
4 ?' a8 ~- E1 x# _  n8 \2 I% v
第1种方法、限幅滤波法(又称程序判断滤波法)5 R- B7 {. d/ p
A、方法:' m1 |  s/ {$ B( d9 g( k- W
根据经验判断,确定两次采样允许的最大偏差值(设为A). y1 r. i! H5 [) H- ]$ H: @
每次检测到新值时判断:
) ?! f' u% g! _如果本次值与上次值之差<=A,则本次值有效
- d; ?* j) ^4 C* ]如果本次值与上次值之差>A,则本次值无效,放弃本次值,用上次值代替本次值
8 T& o- H; g1 o# M9 H$ XB、优点:
/ K- Q# Q% p( K1 A0 `" A  b能有效克服因偶然因素引起的脉冲干扰
. Z# x+ \3 X* F4 z8 s* R3 H" DC、缺点
# `, z0 x7 V* [) r+ G; |无法抑制那种周期性的干扰# u- N- P! v- C  k% _0 L* G2 K& E
平滑度差- s, b( i) I. j7 C& c, J8 m
' d" n- v# V& v6 ^: K5 E
第2种方法、中位值滤波法6 x7 s. m4 c% v
A、方法:: b) Q/ y9 C4 X6 C" `4 Y; f
连续采样N次(N取奇数)
4 D# X) I, V6 g  r把N次采样值按大小排列5 N, r. X& U( a  l8 U( d( P
取中间值为本次有效值
; D( W2 u" f: F1 aB、优点:: d3 d  l) c* S  x9 d4 J
能有效克服因偶然因素引起的波动干扰" s  F: o8 q3 Q  M, \
对温度、液位的变化缓慢的被测参数有良好的滤波效果* @; Y( h( g7 ?( d, a* V! F  @
C、缺点:7 x- \1 T/ b0 y
对流量、速度等快速变化的参数不宜
6 d! ~8 Y6 L4 g3 Q  B$ L7 W' P- M/ F) P) ~+ U# i
第3种方法、算术平均滤波法  [1 c! I# j3 J* E* Z6 v
A、方法:
) ]0 W" {/ X# n连续取N个采样值进行算术平均运算
7 I- \/ b. M1 z5 yN值较大时:信号平滑度较高,但灵敏度较低) C% z/ e9 k- g: a# Z
N值较小时:信号平滑度较低,但灵敏度较高% J  t# Y( ]6 f2 F6 ?
N值的选取:一般流量,N=12;压力:N=46 c& ?4 W) y* r$ p& T
B、优点:+ d- ~% @/ T: Z+ I3 B$ E: m- Y
适用于对一般具有随机干扰的信号进行滤波
- _$ |( ~3 j6 m这样信号的特点是有一个平均值,信号在某一数值范围附近上下波动) a; d- G. k" a5 X/ ?
C、缺点:
# I, d2 w8 _* n% l3 J9 N8 ^) v1 z对于测量速度较慢或要求数据计算速度较快的实时控制不适用
& `% X& k5 J. ?* `, t* q比较浪费RAM% f! _7 \4 ]% E* N/ C' T( J

& j% g2 K) d) y6 E$ J: |第4种方法、递推平均滤波法(又称滑动平均滤波法)* m2 y3 v( ]& o, T5 s; f, y; \- x
A、方法:+ m) j) r/ o& `% ^) D1 B6 ^7 v; @
把连续取N个采样值看成一个队列
# j  o% R: H) P, `" y' k队列的长度固定为N. _% p/ E# T9 w3 z1 a, H
每次采样到一个新数据放入队尾,并扔掉原来队首的一次数据.(先进先出原则)
3 k& e6 @2 ?! l  d' R0 g" Z0 L把队列中的N个数据进行算术平均运算,就可获得新的滤波结果
' w. l$ d% z! y! i# BN值的选取:流量,N=12;压力:N=4;液面,N=4~12;温度,N=1~4
. F4 {/ ~4 ]5 B' _2 cB、优点:# \2 i! M- M. |" @) l
对周期性干扰有良好的抑制作用,平滑度高
# ?- `/ O& M/ Q& v) j5 b适用于高频振荡的系统 & C: _7 \4 {9 [0 f
C、缺点:
1 g' {5 O- I0 f灵敏度低
9 j% a6 ?/ n$ W' C+ h$ i1 x对偶然出现的脉冲性干扰的抑制作用较差
# G- g/ f+ |& N3 b/ K1 S不易消除由于脉冲干扰所引起的采样值偏差
% k) [9 f! r1 e. Q& w不适用于脉冲干扰比较严重的场合
1 e# x7 R, K( |; g7 I0 G" S比较浪费RAM5 J6 W: j/ E+ i  t

# P6 V2 L5 Y" _; J第5种方法、中位值平均滤波法(又称防脉冲干扰平均滤波法)5 X+ P. O( B1 o4 s* e( @$ n
A、方法:
8 l0 G/ p# d+ C# J- A相当于“中位值滤波法”+“算术平均滤波法”  b# v6 A$ s. q) @' Y
连续采样N个数据,去掉一个最大值和一个最小值
0 O7 ]1 T6 N; b+ a然后计算N-2个数据的算术平均值, b1 g) p* j" V) D; [; l
N值的选取:3~14% ]! s% M  h+ o
B、优点:' R, M. @. O8 Y% y# ]
融合了两种滤波法的优点$ v2 x/ q! u# B# Y1 E# e
对于偶然出现的脉冲性干扰,可消除由于脉冲干扰所引起的采样值偏差
. R+ P6 B* }% a' w& y: c' V; kC、缺点:9 s$ d, m6 ~5 T5 i' L3 t
测量速度较慢,和算术平均滤波法一样
9 j8 i1 X& g' b- R- g# k! D. |) G比较浪费RAM6 N8 L5 X7 B4 ?; B( U" G; }( u! Z

5 h3 v: t# @! ?/ }' t9 F
8 r5 R- f2 A# t1 o5 ~第6种方法、限幅平均滤波法
1 W% C% m" v! f5 D2 e, R+ |9 HA、方法:) r. i" U8 ?5 H2 A( }
相当于“限幅滤波法”+“递推平均滤波法”
. S3 X( @! N" u8 P- k! H0 a每次采样到的新数据先进行限幅处理,3 D" y( n; c( V: O  o7 n
再送入队列进行递推平均滤波处理( R8 B1 T, L  k2 Z$ d
B、优点:( e' x! H3 j# ^) |4 _
融合了两种滤波法的优点
7 V3 M1 `3 \  A0 j8 \9 f$ `对于偶然出现的脉冲性干扰,可消除由于脉冲干扰所引起的采样值偏差7 C+ e3 C( I8 ~) _2 O; x
C、缺点:4 n$ I3 O5 V; V  f& e3 S4 s; o, e
比较浪费RAM3 ~& O' N# K& e6 x+ B0 g+ Q

  ~  X2 M' [6 d; |( t8 {# w9 l. ^% A第7种方法、一阶滞后滤波法
+ U7 k0 e/ S; L, c7 RA、方法:
! H9 o3 e* s9 |- I取a=0~1
% u/ W) k8 |  |' i; C5 e本次滤波结果=(1-a)*本次采样值+a*上次滤波结果
: \# P; G: V! L: M8 p( H: HB、优点:
. L) n; f* h8 a) d对周期性干扰具有良好的抑制作用2 T7 r' U$ W# G; V/ d9 u3 b
适用于波动频率较高的场合
/ x+ B3 I8 c! z- `C、缺点:; A4 E2 a8 E  z9 \/ U1 ]+ d
相位滞后,灵敏度低
: f6 {* }' n! I; q$ ~% M( H6 b; i, K滞后程度取决于a值大小
; S# b1 `- ?; P! T. Z不能消除滤波频率高于采样频率的1/2的干扰信号" z& r6 Z# ?% I$ \  U8 N& [0 F
+ b! Q& C3 k* b0 ^  \9 N
第8种方法、加权递推平均滤波法
& T) W) n! b. j! k% RA、方法:# u' }; ?+ b) o7 a
是对递推平均滤波法的改进,即不同时刻的数据加以不同的权
4 b8 Y& x. ?* M通常是,越接近现时刻的数据,权取得越大。
9 B9 Y2 [, X; S% l5 |3 Y给予新采样值的权系数越大,则灵敏度越高,但信号平滑度越低% g" ]# P- G. t7 F
B、优点:
9 p: n: a$ i# d) h适用于有较大纯滞后时间常数的对象
4 ]5 k5 N0 Z* Q$ P0 d6 M, ?! x和采样周期较短的系统. Q3 |2 E1 S+ }3 o9 {
C、缺点:
$ u2 X& ~7 U8 |4 c! L对于纯滞后时间常数较小,采样周期较长,变化缓慢的信号( k5 Y% G& C' X4 F
不能迅速反应系统当前所受干扰的严重程度,滤波效果差1 a6 L# j( U; y" j& Z+ _- T3 I- `+ s
& ^0 Q" P6 m1 C( P8 L
第9种方法、消抖滤波法- m( [0 p5 l1 O$ s
A、方法:
8 o' Z- l  B* y, ]+ Q设置一个滤波计数器
* U2 k8 r2 p2 R$ o6 U, {4 q$ u将每次采样值与当前有效值比较:0 O9 ^' T* V3 M4 U7 R& ]
如果采样值=当前有效值,则计数器清零
+ m- H% E: c- I如果采样值<>当前有效值,则计数器+1,并判断计数器是否>=上限N(溢出)
) X# g7 r" f3 D  {" H. G# }- U如果计数器溢出,则将本次值替换当前有效值,并清计数器+ T" m. N$ a) l" V: {
B、优点:
0 C; f7 S  W: {: {2 u0 D对于变化缓慢的被测参数有较好的滤波效果,
) k& ?3 t& y  N可避免在临界值附近控制器的反复开/关跳动或显示器上数值抖动
- u" P  W7 y0 z: \C、缺点:
4 O4 y# a) ?, y6 Y对于快速变化的参数不宜0 l- J. k: q5 l" c& ?
如果在计数器溢出的那一次采样到的值恰好是干扰值,则会将干扰值当作有效值导入系统1 z* C( O8 }; W) ~1 R; F
1 G! d! r" ^( S3 |/ T" B8 J
第10种方法、限幅消抖滤波法, F! U* b* U/ ~- i+ m! B! t! W: M/ G
A、方法:
6 m: j7 s3 C0 I$ ?( E相当于“限幅滤波法”+“消抖滤波法”+ E! R6 r* P# y, S  {
先限幅,后消抖. {: o. ~. V" {' m
B、优点:7 y- _/ C6 Y1 U3 p/ J' `/ J; t  y
继承了“限幅”和“消抖”的优点
4 l4 n: X5 @0 Y% H/ v改进了“消抖滤波法”中的某些缺陷,避免将干扰值导入系统* r* [# ^! d1 S& {/ }
C、缺点:. {4 _3 F4 b& h% L
对于快速变化的参数不宜5 N% k: f9 a+ c9 C# Y' Z0 D8 r" b8 o8 s

6 c" d3 k" B% ?1 K" N$ q" B
2 F1 ]: I! K- y+ [" A2 Q3 [$ |第11种方法:IIR 数字滤波器 . O  ~  a) m# ^/ l7 d7 t

0 }) W9 W1 V( a0 Q2 KA. 方法:
  c3 v/ \* w) R0 q4 k确定信号带宽, 滤之。
) e9 q0 I$ `+ n: L7 W4 eY(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)
0 ?9 a1 v* c; A$ Y2 H  S4 i- y+ t
4 f, [; G! ^  Z/ R2 E% h# ~B. 优点:高通,低通,带通,带阻任意。设计简单(用matlab)
/ Y  r$ U2 L( x+ a7 I1 a( Y" f& k9 S3 ^C. 缺点:运算量大。
作者: jin_geda    时间: 2013-9-29 16:15





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