一、限幅滤波
1)方法
根据经验判断两次采样允许的最大偏差值A。
每次采新值时判断:
-
若本次值与上次值之差<=A,则本次有效;
-
若本次值与上次值之差>A,本次无效,用上次值代替本次。
2)优缺点
克服脉冲干扰,无法抑制周期性干扰,平滑度差。
3)代码
/* A值根据实际调,Value有效值,new_Value当前采样值,程序返回有效的实际值 */
#define A 10
char Value;
char filter()
{
char new_Value;
new_Value = get_ad(); //获取采样值
if( abs(new_Value - Value) > A)
return Value; //abs()取绝对值函数
return new_Value;
}
二、位值滤波
1)方法
连续采样N次,按大小排列;取中间值为本次有效值。