消抖滤波

消抖滤波算法主要用于处理变化缓慢的被测参数,防止控制器或显示器的数值抖动。通过设置滤波计数器,当采样值连续多次不等于当前有效值时,才更新有效值,从而实现滤波效果。该方法在应对噪声干扰时有良好表现,但可能对快速变化的参数响应不及时。代码示例展示了如何实现这一算法。
摘要由CSDN通过智能技术生成

消抖滤波算法

  • 应用场景

对于变化缓慢的被测参数有较好的滤波效果, 可避免在临界值附近控制器的反复开/关跳动或显示器上数值抖动

  • 原理分析

设置一个滤波计数器,将每次采样值与当前有效值比较:如果采样值=当前有效值,则计数器清零;如果采样值<>当前有效值,则计数器+1,并判断计数器是否>=上限N(溢出);如果计数器溢出,则将本次值替换当前有效值,并清计数器。

  • 参考代码
#define N 12
typedef int filter_type;

filter_type filter( filter_type new_value)
{
    filter_type count = 0;
    filter_type value = 0;
	filter_type new_value = Read();    /*读取采样值*/
    while( value != new_value )
    {
        count++;
        if( count >= N )
        {
            value = new_value;
            return new_value;
        }
        new_value = Read();
    }
    return value;
}
 
  • 补充说明
  • 优点:
    对于变化缓慢的被测参数有较好的滤波效果, 可避免在临界值附近控制器的反复开/关跳动或显示器上数值抖动。

  • 缺点:
    对于快速变化的参数不宜 如果在计数器溢出的那一次采样到的值恰好是干扰值,则会将干扰值当作有效值导入系统。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值