本文主要是介绍几种时域滤波的比较,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1)算术平均滤波
方法:连续取N个采样值进行算术平均运算。N值较大时,信号平滑度较高,但灵敏度较低;N值较小时,信号平滑度较低,但灵敏度较高。N值的选取一般规则为:流量N取12;压力N取4;温度、成分等缓变信号N可取2甚至不平均。
优点:适用于对一般具有随机干扰的信号进行滤波,这种信号的特点是有一个平均值,信号在某一数值范围附近上下波动。
缺点:对于测量速度较慢或要求数据计算速度较快的实时控制不适用,并且比较浪费RAM。
2)中位值平均滤波法(又称防脉冲干扰平均滤波法)
方法:相当于“中位值滤波法”+“算术平均滤波法”,连续采样N个数据,去掉一个最大值和一个最小值,然后计算N-2个数据的算术平均值,N值的选取:3~14。
优点:融合了两种滤波法的优点,对于偶然出现的脉冲性干扰,可消除由于脉冲干扰所引起的采样值偏差。
缺点:测量速度较慢,和算术平均滤波法一样,比较浪费RAM。
3)滑动平均滤波
上述各种平均滤波算法有一个共同点,即每取得一个有效采样值,必须连续进行若干次采样,当系统的采样速度较慢(如双积分型A/D转换)或采样信号变化较快时,系统的实时性就无法得到保证。而滑动平均滤波算法能较好地解决这一问题。它在每个采样周期只采样一次,将这一次采样值和过去的若干采样值一起求平均,所得结果即为有效采样值。
方法:把连续取N个采样值看成一个队列,队列的长度固定为N,每次采样到一个新数据就放入队尾,并扔掉原来队首的第一个数据(先进先出原则)。把队列中的N个数据进行算术平均运算,就可获得新的滤波结果。N值的一般选取方法为:流量,N=12;压力:N=4;液位,N=4~12;温度,N=1~4。
优点:对周期性干扰有良好的抑制作用,平滑度高,适用于高频振荡的系统。
缺点:灵敏度低,对偶然出现的脉冲性干扰的抑制作用较差,不易消除由于脉冲干扰所引起的采样值偏差,不适用于脉冲干扰比较严重的场合,比较浪费RAM。
2 中值滤波
方法:连续采样N次(N取奇数),把N次采样值按大小排列,取中间值为本次有效值。本算法为取中值,故采样次数应为奇数,一般3~5次即可。对于变化很慢的采样信号也可增加次数。其程序编制可采用几种常规的排序算法,如冒泡算法。
优点:能有效克服因偶然因素引起的波动干扰,对温度、液位等变化较缓慢的被测参数有良好的滤波效果。
缺点:对流量、速度等快速变化过程的参数处理效果不好。
3 限幅滤波
方法:根据经验判断,确定两次采样允许的最大偏差值(设为A) 每次检测到新值时进行判断,如果本次值与上次值之差<=A,则本次值有效;如果本次值与上次值之差>A,则本次值无效,放弃本次值,用上次值代替本次值。
优点:能有效克服因偶然因素引起的脉冲干扰,对随机干扰或采样器不稳定引起的失真有良好的滤波效果。
缺点:无法抑制那种周期性的干扰,平滑度差。
4 一阶滞后滤波法
方法:取a=0~1,本次滤波结果=(1-a)*本次采样值+a*上次滤波结果。
优点:对周期性干扰具有良好的抑制作用 适用于波动频率较高的场合。
缺点:相位滞后,灵敏度低,滞后程度取决于a值大小,不能消除滤波频率高于采样频率的1/2的干扰信号。
http://blog.sina.com.cn/s/blog_0522d5260100mm6p.html
这篇关于几种时域滤波的比较的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!