[疑难问答] 限幅平均滤波

[复制链接]
 楼主| jtracy3 发表于 2025-5-12 07:02 | 显示全部楼层 |阅读模式
单片机从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;
}


zhengshuai888 发表于 2025-5-12 07:59 来自手机 | 显示全部楼层
这种滤波算法对特点应用场景可能有效
您需要登录后才可以回帖 登录 | 注册

本版积分规则

20

主题

1810

帖子

0

粉丝