数学建模社区-数学中国
标题:
[原创]软件滤波
[打印本页]
作者:
xjq2005
时间:
2005-4-4 12:08
标题:
[原创]软件滤波
软件滤波方法
0 I: U5 N/ V' N) f4 a4 w5 e% B
: d, C* F! P, a1 [
第1种方法、限幅滤波法(又称程序判断滤波法)
. n5 J8 u/ d( _9 r1 h
A、方法:
4 @$ p! B$ Z! U! F N" d+ {" N
根据经验判断,确定两次采样允许的最大偏差值(设为A)
) y; J" E! r4 T8 Q/ q1 f& D
每次检测到新值时判断:
/ z0 L1 a6 B! J' E6 j
如果本次值与上次值之差<=A,则本次值有效
; t5 }& E' }( W ]9 j7 z- D
如果本次值与上次值之差>A,则本次值无效,放弃本次值,用上次值代替本次值
W+ f/ N6 b. g2 C8 j* M
B、优点:
, d' K, |9 A5 Z5 [( g( U+ e# b- z! A
能有效克服因偶然因素引起的脉冲干扰
# y8 \( n' n! T4 ~" _, p4 a6 t4 o! N" b
C、缺点
$ R5 m" M& n4 S$ V! F. A: C
无法抑制那种周期性的干扰
O/ K, ?2 d+ I# }# X. c
平滑度差
7 r5 r+ K. K! R7 _1 q
3 V# K* }; [0 q/ u3 C$ `
第2种方法、中位值滤波法
# ]8 J1 p# X1 m) u9 P
A、方法:
: J* {/ N4 l2 B; b& L( v
连续采样N次(N取奇数)
; \* T- R0 J4 p1 _- P. @- u. c& @2 u
把N次采样值按大小排列
% @# t1 D7 K$ a" u, M1 B
取中间值为本次有效值
) n h0 f3 e/ m) V* W S
B、优点:
; X+ z( g; W0 r1 A
能有效克服因偶然因素引起的波动干扰
) Q1 T; v. k* g
对温度、液位的变化缓慢的被测参数有良好的滤波效果
% n' K# _0 a/ I7 h6 P! a
C、缺点:
3 W" u+ V8 S0 Z% R; n; I. M" s6 m
对流量、速度等快速变化的参数不宜
& G& n& N' t, N8 k N! C/ I" J9 H
/ E$ r' D2 P, A$ Z# q
第3种方法、算术平均滤波法
8 u" r3 D$ Y" u' m
A、方法:
* K% Q" O; v0 M+ u9 g, ^
连续取N个采样值进行算术平均运算
& D& g# n0 O" N0 }8 w% N
N值较大时:信号平滑度较高,但灵敏度较低
( a0 ]7 G0 s7 V% B2 B( r$ {0 [- Y
N值较小时:信号平滑度较低,但灵敏度较高
( ~% i( x( m! l( E
N值的选取:一般流量,N=12;压力:N=4
1 d1 E; M! l1 \& ]2 V7 ^7 V) n3 C
B、优点:
' w s0 l' Q+ B! j/ y/ X
适用于对一般具有随机干扰的信号进行滤波
+ @7 t6 Q+ S* f7 h7 x
这样信号的特点是有一个平均值,信号在某一数值范围附近上下波动
2 y# P! `( j( C* N
C、缺点:
P9 b5 W! \) y. Y' u! Q
对于测量速度较慢或要求数据计算速度较快的实时控制不适用
# ?# _- }0 O: z Y% q5 o' q
比较浪费RAM
" N2 L* h% x$ x; s( e
) M8 f# R" `7 g, E. M/ x
第4种方法、递推平均滤波法(又称滑动平均滤波法)
3 n5 R! Z5 r W. @1 k
A、方法:
! x+ t' w5 \0 K1 ]3 B [
把连续取N个采样值看成一个队列
I" y B% M, g2 g7 a: }# b9 v- v
队列的长度固定为N
' C$ f' g: V% G ]# E; b
每次采样到一个新数据放入队尾,并扔掉原来队首的一次数据.(先进先出原则)
* F1 y9 d' m/ [/ d
把队列中的N个数据进行算术平均运算,就可获得新的滤波结果
) t) N8 A0 ]* n* }9 v B
N值的选取:流量,N=12;压力:N=4;液面,N=4~12;温度,N=1~4
+ r% d6 a0 M/ t O
B、优点:
+ A3 i% W1 o* r
对周期性干扰有良好的抑制作用,平滑度高
# W1 |$ R" C1 K# o- a8 V
适用于高频振荡的系统
0 I+ n2 n5 D2 K6 w, D |2 a, F
C、缺点:
& X* S; K$ Y$ s
灵敏度低
2 U; \8 q# J9 u3 p
对偶然出现的脉冲性干扰的抑制作用较差
$ m9 X6 k1 x# Z8 l4 t, D
不易消除由于脉冲干扰所引起的采样值偏差
. q; _3 z! w2 u5 l$ K9 h' u) r
不适用于脉冲干扰比较严重的场合
4 T' j( S+ |+ U- D( w) {& j
比较浪费RAM
+ U4 P) F' Y8 N7 a9 k
; ]1 U) b* u. [4 ^& K9 b) k0 I
第5种方法、中位值平均滤波法(又称防脉冲干扰平均滤波法)
5 ]6 x+ S2 C* M* _4 h2 H# ]
A、方法:
1 B; p: M6 h+ ?$ [, Y
相当于“中位值滤波法”+“算术平均滤波法”
+ D W2 ?, Y- D7 ?- |9 y9 f
连续采样N个数据,去掉一个最大值和一个最小值
. z d0 Y5 `5 F. X* Z! n; J0 N
然后计算N-2个数据的算术平均值
' t( k [6 P" Z( e/ @
N值的选取:3~14
) w% Z; W- ]( b4 f& k
B、优点:
4 G# M" V! p- j/ T& |; G& `
融合了两种滤波法的优点
; L" c9 a6 P" J# v
对于偶然出现的脉冲性干扰,可消除由于脉冲干扰所引起的采样值偏差
( ^" ^3 @3 ~# r
C、缺点:
( L2 L8 e: u8 e* B4 `9 W
测量速度较慢,和算术平均滤波法一样
5 ]% Y- S. R6 {8 }1 _7 [" o
比较浪费RAM
1 K0 o) s& c% {
% p- A, n& r, t9 U6 n, P
- U. u# H- h& S
第6种方法、限幅平均滤波法
# u% B) M& Y5 u4 Q$ r& u
A、方法:
' N& q$ |5 V1 i
相当于“限幅滤波法”+“递推平均滤波法”
5 |3 h2 h2 b" q
每次采样到的新数据先进行限幅处理,
1 ^$ I0 a( D& A
再送入队列进行递推平均滤波处理
; E0 X- P, }, D, Z, j5 D' S
B、优点:
2 W" |% d+ P6 H; f
融合了两种滤波法的优点
1 g0 K) `6 ]5 X4 p
对于偶然出现的脉冲性干扰,可消除由于脉冲干扰所引起的采样值偏差
% v% n p+ |2 W/ f; a" ^" v
C、缺点:
) R5 k2 S4 N% x! @4 J* t
比较浪费RAM
0 Y B1 q1 Y. L
4 j" M! S8 t- [ j3 g
第7种方法、一阶滞后滤波法
! G( q8 |5 c1 `( w: L
A、方法:
' P' ?$ ^6 e \
取a=0~1
1 Q2 j' A* n7 q6 J' f' Y
本次滤波结果=(1-a)*本次采样值+a*上次滤波结果
. s* ^: N7 n Q1 ]) r
B、优点:
5 c! D& A- m: Q5 O' P, K
对周期性干扰具有良好的抑制作用
0 Z% H* o2 C: s) O8 e1 j; r
适用于波动频率较高的场合
: f. o6 Z+ u3 c/ g" ]
C、缺点:
; K6 D2 t8 [" m8 C! i, X1 m! y
相位滞后,灵敏度低
, D% { z/ e2 i* S# k% B# R, N0 b
滞后程度取决于a值大小
2 g k+ z8 s$ Q- V" G2 G
不能消除滤波频率高于采样频率的1/2的干扰信号
3 ?' d. Z9 W- d9 j$ Y
* V1 X5 v7 V6 {$ `% h& I6 z8 ?/ \3 V
第8种方法、加权递推平均滤波法
; E7 K' g2 h$ j! O! X/ i
A、方法:
2 B) r ~3 a; F( `! M
是对递推平均滤波法的改进,即不同时刻的数据加以不同的权
! u" t V- E0 u) E9 r* a% X& C
通常是,越接近现时刻的数据,权取得越大。
8 P, ?( ^6 ?1 \/ ~
给予新采样值的权系数越大,则灵敏度越高,但信号平滑度越低
: @- Q w5 G( c7 b1 u- o) {
B、优点:
( S, `" I5 h: H5 j
适用于有较大纯滞后时间常数的对象
/ Z0 S2 Z m! {) s% q$ L) d
和采样周期较短的系统
6 B+ @3 S' O8 s" _8 @
C、缺点:
; a5 P7 Z+ F. O- f4 S
对于纯滞后时间常数较小,采样周期较长,变化缓慢的信号
{, o+ D# \& `& T3 o
不能迅速反应系统当前所受干扰的严重程度,滤波效果差
2 x4 a8 }0 S1 ]+ G, N$ x
* P3 n, ?1 j3 {; W- W. N
第9种方法、消抖滤波法
4 \, \" S1 I- H& G- c' i7 e
A、方法:
; L. O1 T# O, C7 v3 o9 Q* }
设置一个滤波计数器
( L! |8 l8 m& p( a
将每次采样值与当前有效值比较:
: \2 I( t- ]2 X. B( g* b% v
如果采样值=当前有效值,则计数器清零
/ V N8 N" \- p1 k& s3 @
如果采样值<>当前有效值,则计数器+1,并判断计数器是否>=上限N(溢出)
( s, T% O+ U' |; x
如果计数器溢出,则将本次值替换当前有效值,并清计数器
$ w. h: M7 S' u7 z+ ]( J
B、优点:
0 w! L$ h5 A3 t9 x: |) f
对于变化缓慢的被测参数有较好的滤波效果,
* k% a6 F: u/ I: V t$ }
可避免在临界值附近控制器的反复开/关跳动或显示器上数值抖动
: D' B- q( c5 I* L* b
C、缺点:
- [! z2 g; h5 n/ D4 Q3 g- S
对于快速变化的参数不宜
( ]1 D! a. i. k9 _8 ?
如果在计数器溢出的那一次采样到的值恰好是干扰值,则会将干扰值当作有效值导入系统
- ~& }9 x8 Z9 M: F
, P3 u: w: D [; y$ A1 |
第10种方法、限幅消抖滤波法
' C1 l$ o" g% I0 F
A、方法:
9 G, X, e* \; v/ Q* C% O& L
相当于“限幅滤波法”+“消抖滤波法”
# o M7 s3 J, W- Y/ F6 ~$ i, p
先限幅,后消抖
+ j3 Y8 x( ~8 A6 _, C
B、优点:
( {# T9 x1 ]# B, x* U/ O+ I
继承了“限幅”和“消抖”的优点
* e1 Y2 n) P% r" ^3 w9 x
改进了“消抖滤波法”中的某些缺陷,避免将干扰值导入系统
! v) e# w: G6 q+ B: M( W( l" g
C、缺点:
( y# j2 ~$ C0 o/ l, O
对于快速变化的参数不宜
9 E, k- ~7 r* T5 U1 T8 a
- i: R3 q7 E3 o3 E% L( u, r+ g
2 |% J6 [7 T, }# |+ P4 M
第11种方法:IIR 数字滤波器
% Y' [( p7 g# h; C3 s' j
5 M! }5 B3 m, z! R! Q1 \% T9 t
A. 方法:
% J) q# x# `* N* f; o9 a1 X6 N
确定信号带宽, 滤之。
) O, H) C. M4 J+ w8 w4 q) Y
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)
: W- @. T* G3 v5 R. h
* Q3 E9 P, ^, v7 E$ z1 r
B. 优点:高通,低通,带通,带阻任意。设计简单(用matlab)
, d: v1 ]/ r9 P9 @4 d
C. 缺点:运算量大。
作者:
jin_geda
时间:
2013-9-29 16:15
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5