数学建模社区-数学中国
标题:
[原创]软件滤波
[打印本页]
作者:
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) I
A、方法:
" 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 L
A、方法:
# 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+ f
N值较大时:信号平滑度较高,但灵敏度较低
! l4 T# G6 M. O
N值较小时:信号平滑度较低,但灵敏度较高
2 x: q4 s! C9 x, x8 \* r* r
N值的选取:一般流量,N=12;压力:N=4
+ x. o8 k% e% K' a
B、优点:
. 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$ v
A、方法:
' @- 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 m
B、优点:
- 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 M
N值的选取: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/ I
C、缺点:
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/ z
B、优点:
) 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 b
B、优点:
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 ^* |. Q
B、优点:
5 L* S/ m. r' {# J
对于变化缓慢的被测参数有较好的滤波效果,
q" X- X" g( D- D6 j
可避免在临界值附近控制器的反复开/关跳动或显示器上数值抖动
. H# a$ E R0 z$ l
C、缺点:
$ ?) 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% T
C、缺点:
( 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# S
B. 优点:高通,低通,带通,带阻任意。设计简单(用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