限副滤波法 由于单片机系统中可能存在随机脉冲干扰 ,或 由于变送器不可靠而将脉冲干扰引入输入端 , 从而 造成测量信号的严重失真。对于这种随机干扰 ,限 副滤波是一种有效的方法 。其基本方法是比较相邻 (n 和n -1 时刻的两个采样值 yn 和 yn -1 。然后根 据经验确定两次采样允许的最大偏差。如果两次采 样值yn 和yn -1 的差值超过了所允许的最大偏差 范围 ,则认为发生可随机干扰 ,并认为后一次采样值 yn 为非法值 ,应予删除 ,删除 yn 后,可用yn -1 代替 yn 。若未超过所允许的最大偏差范围 , 则认为本次 采样值有效。 下面是实现限副滤波法的程序 。
/* A 值可根据实际情况调整
value 为有效值 , new value 为当前采样值
滤波程序返回有效的实际值 */
#define A 10
char value ;
char filter()
{
char new value;
new value =get_ad();
if ((new value -value >A) ‖ (value -newvalue>A)
return value ;
return new value ;
}