注:这篇也是转载的,故原始作者不详。
 
 
1、限幅滤波法

/**************************************************** 

*函数名称:AmplitudeLimiterFilter()-限幅滤波法
*优点:能有效克服因偶然因素引起的脉冲干扰
*缺点:无法抑制那种周期性的干扰,且平滑度差

*说明:
  1、调用函数
     GetAD(),该函数用来取得当前值
  2、变量说明
     Value:最近一次有效采样的值,该变量为全局变量
     NewValue:当前采样的值
     ReturnValue:返回值
  3、常量说明
     A:两次采样的最大误差值,该值需要使用者根据实际情况设置
*入口:Value,上一次有效的采样值,在主程序里赋值
*出口:ReturnValue,返回值,本次滤波结果
****************************************************/
#define  A   10
unsigned char Value
unsigned char AmplitudeLimiterFilter()
{
   unsigned char NewValue;
   unsigned char ReturnValue;
   NewValue=GatAD();
   if(((NewValue-Value)>A))||((Value-NewValue)>A)))
   ReturnValue=Value;
   else ReturnValue=NewValue;
   return(ReturnValue);
}