单片机从8 位 AD 中读取数据。其中子程序为 get_ad();限幅平均滤波,即“限幅滤波法”+“递推平均滤波法”
A、方法
相当于“限幅滤波法”+“递推平均滤波法”
每次采样到的新数据先进行限幅处理,
再送入队列进行递推平均滤波处理
B、优点
融合了两种滤波法的优点
对于偶然出现的脉冲性干扰,可消除由于脉冲干扰所引起的采样值偏差
C、缺点:
比较浪费 RAM
D、示例
可参考单片机常用滤波算法——平均滤波 + 单片机常用滤波算法——限幅滤波
#define A 10
char value;
void filter(char *sum)
{
char new_value;
new_value = get_ad();
if ( ( new_value - value > A ) || ( value - new_value > A )
*sum += value;
*sum +=new_value;
}
|