常见的几种数字滤波算法及特点

一、均值滤波

均值滤波即对多个采样值进行求和、取平均,是消除随机误差最常用的方法,主要分为以下几种:

1. 算术平均滤波

原理: 在采样周期T内,对测量信号y连续进行m次采样,并把m个采样值相加取算术平均值作为本次的有效采样值。即:
Y = (y1+y2+y3+···+ym) / m ;
其中采样次数m的值决定了信号的平滑度和灵敏度。提高m的值可以改善平滑度,但系统灵敏度随之降低。因此,采样次数m 取值随被控对象的不同而不同。一般情况下,流量信号可取10左右,压力信号可取4左右,而温度、成分等缓慢变化信号可取2甚至不进行算术平均。在编程时m一般取2、4、8等(2的整数幂),以便用移位来代替除法运算求得平均值。

特点: 采样的平滑度与灵敏度之间存在矛盾(采样次数少则平滑性差,次数多则灵敏度下降);且无法消除偶然的干扰脉冲,只是将均值作为了结果,测量精度有所降低。

2. 去极值平均滤波

原理: 去极值平均滤波与算术平均滤波原理相似,只是在算术平均滤波的基础上,先将m个数据中的最大值与最小值剔除,再计算余下的m-2个数据的算术平均值。即:
Y = [ (y1+y2+y3+···+ym) - ymax - ymin ] / (m-2) ;
相应地,在编程时m一般取4、6、10等(2的整数幂+2),以便用移位来代替除法运算求得平均值。其中剔除最值常用的排序方法是冒泡排序或选择排序。

特点: 采样的平滑度与灵敏度之间存在矛盾(采样次数少则平滑性差,次数多则灵敏度下降)。

3. 加权平均滤波

原理: 对每次的采样值以不同的权系数(越新鲜的采样值权重越大)相加,m一般取到4即可,即:
Y = (C1·y1+C2·y2+C3·y3+···+Cm·ym) ;
例如m=4时,权系数可以取:C1=e-3t/R, C2=e-2t/R, C3=e-t/R, C4=1/R,其中R=e-3t+e-2t+e-t+1;

特点: 可以协调系统平滑性与灵敏度之间的矛盾,在不降低平滑性的前提下提高灵敏度,更适用于纯滞后较大的对象。

4. 滑动平均滤波

原理: 滑动平均滤波是在每个采样周期只采样一次,将这一次的采样值和过去的若干采样值一起求平均,所得结果为有效采样值。
不妨以取m个采样值求滑动平均为例,利用循环队列的结构方式来暂存数据,每新采集一个数据便并入该队列的队尾,同时“挤”掉队首的一个数据,这样在队列中能够始终保持有m个不断更新的数列。

特点: 当系统的采样速度较慢或采样信号变化较快时,能够保证系统的实时性。

二、中值滤波

原理: 将信号y进行连续采样,把所得到的m个采样值按大小进行排序,取中值作为本次采样的有效采样值。(当m为奇数时取中间数,当m为偶数时取中间两数的均值;一般m取3~5次即可)。

特点: 对于 缓慢变化过程中的偶然因素所引起的波动 或 采样器不稳定造成的误差所引起的脉动干扰 比较有效;但由于采样点的限制,应用范围不宽,不适用于快速变化过程(如流量)的信号采样。

三、限幅滤波

经验说明,生产过程中许多物理量变化需要一定时间,因此相邻两次采样值之间的变化幅度应在一定限度内,即 |Yn - Yn-1| ≤ ΔY。

原理: 限幅滤波就是通过比较两次相邻采样值差的绝对值和最大允差ΔY(取决于采样周期和信号变化率),从而得到有效采样值。
即:当 |Yn - Yn-1| ≤ ΔY 时,表明本次采样真实,取本次采样值为有效采样值;当 |Yn - Yn-1| > ΔY时,表明本次采样不真实,取前1次采样值为有效采样值。简易理解如下:
Y = Yn, (| Yn - Yn-1 | ≤ ΔY)------差距合理,此次测量有效
Y = Yn-1,(| Yn - Yn-1 | > ΔY)----差距过大,此次测量不作数

特点: 限幅滤波对随机干扰或因采样器不稳定引起的失真有良好的滤波效果。主要用于变化比较缓慢的参数,如温度、物理位置等测量系统。具体应用时,关键的问题是最大允差ΔY的选取,ΔY太大,各种干扰信号“乘虚而入”,使系统误差增大;ΔY太小,又会使某些有用信号被“拒之门外”,使采样效率变低。因此,门限值ΔY的选取非常重要,通常可根据经验数据获得,必要时也可由实验得出。

四、限速滤波

原理: 把当前采样值Yn与前两次采样值Yn-1、Yn-2进行比较,取差值的绝对值ΔY作为比较依据,分别得到有效采样值Y,即:
Y=Yn-1,( | Yn-1-Yn-2 | ≤ ΔY )-----仅前两次的差值<ΔY,取前1次的采样值
Y=Yn, ( | Yn-1-Yn-2 | > ΔY 且 | Yn-Yn-1 | ≤ ΔY )----仅当后两次差值<ΔY时,取本次
Y=(Yn+ Yn-1)/2------前、后两次差值均>ΔY,即当 |Yn-1-Yn-2|>ΔY 且 | Yn-Yn-1|>ΔY时,取该两次均值

特点: 保证了采样的实时性和连续性;但ΔY的确定不够灵活,必须根据现场的情况不断更换新值,且不能反映当采样点数N>3时各采样值受干扰的情况。

五、惯性滤波

原理: 惯性滤波(又称一阶滞后滤波)是模仿硬件RC低通滤波器的数字实现。

常用的RC滤波器的传递函数是:Y(s) / X(s) = 1 / (1+Tf·s) ------①

式①中,Tf是滤波器的滤波时间常数,其大小关系到滤波效果。一般来说,Tf越大,滤波器的截止频率(滤出的干扰频率)越低,滤出的电压波纹较小,但输出滞后较大。由于时间常数大以及高精度的RC电路不易制作,所以硬件RC不可能对极低频率的信号进行滤波。为此可以模仿硬件RC滤波器的特性参数,用软件做成低通滤波器,从而实现一阶惯性的数字滤波。

将①式写成差分方程形式:Tf · [y(k) - y(k-1)] / T + y(k) = x(k) ------②

将②式整理后,得到:y(k)= T/(T+Tf)·x(k) + Tf/(T+Tf)· y(k-1) ------③

令 α =T/(T+Tf),亦即:y(k) = α·x(k) + (1-α)·y(k-1) ------④

式③中,x(k)为第k次采样的滤波输入值,即第k次采样值;y(k-1)为第k-1次采样的滤波输出值;y(k)为第k次采样的滤波输出值;α即T/(T+Tf)为滤波系数;Tf为滤波环节的时间常数;T为采样周期。一般当T远小于Tf即α远小于1时,本次的有效采样值(滤波输出值)主要取决于上次的有效采样值(滤波输出值),而本次的采样值(滤波输入值)仅起到一点修正作用。假定采样周期T足够小,则有
α ≈ T/Tf ,滤波算法的截止频率为:f = 1/(2·Π·RC) = α/(2·Π·T) ----⑤

式④中,f 为截止频率,Π为圆周率,RC为电路分析中常见的的阻容参数,T为采样周期。当采样周期 T一定时,滤波系数 α 越小,数字滤波器的截止频率 f 就越低。

特点: 模拟了具有惯性的RC滤波器,对频率较低随机变化的信号滤波效果很好;但不能滤除高于1/2采样频率的干扰信号。

六、复合滤波

为了进一步提高滤波效果,有时可以把2种或2种以上不同功能的数字滤波器组合起来,组成复合数字滤波器,或称多级数字滤波器。
例如防脉冲干扰平均值滤波就是一种应用实例,由于这种滤波方法兼顾了中值滤波和算术平均值滤波的优点,所以无论对缓慢变化的信号,还是对快速变化的信号,都能获得较好的滤波效果。
再如对高频和低频部分都需要滤波的信号,就可以用复合滤波;也可采用双重滤波的方法,即把采样值经过低通滤波后,再经过一次高通滤波。这样,结果更接近理想值,这实际上相当于多级RC滤波器。

附、常用的排序方法

  1. 冒泡排序法
    https://www.cnblogs.com/Xloading/p/12003652.html
  2. 选择排序法
    https://blog.csdn.net/changhangshi/article/details/82740541
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大胜s

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值