龙空技术网

单片机常用的消抖滤波法

零势能面 280

前言:

此时朋友们对“消抖滤波算法实例视频讲解”可能比较关注,我们都需要知道一些“消抖滤波算法实例视频讲解”的相关内容。那么小编在网络上收集了一些有关“消抖滤波算法实例视频讲解””的相关文章,希望兄弟们能喜欢,看官们快快来学习一下吧!

大家经常可以看到两种情况:一种是传感器采样的时候数据会抖动,会跳动,另一种是单片机按键时去抖。两种情况原因都很简单,可以用去抖滤波法解决。

首先先说一下传感器采样的时候在临界线的时候可能前一帧采集到数据,然后下一帧采集不到数据了,后面一直采集到数据。然后数据简单的模拟就是1-0-1-1-1-1,多了个1-0-1的变化,这个是我们不需要的,这就可以采取滤波算法进行处理了。

滤波算法都十几种,比如中位值滤波法、算术平均滤波法、加权递推平均滤波法等等,下面介绍的是消抖滤波法。

消抖滤波法

方法:

设置一个滤波计数器

将每次采样值与当前有效值比较:

如果采样值=当前有效值,则计数器清零

如果采样值<>当前有效值,则计数器+1,并判断计数器是否>=上限N(溢出)

如果计数器溢出,则将本次值替换当前有效值,并清计数器

优点:

对于变化缓慢的被测参数有较好的滤波效果,

可避免在临界值附近控制器的反复开/关跳动或显示器上数值抖动

缺点:

对于快速变化的参数不宜

如果在计数器溢出的那一次采样到的值恰好是干扰值,则会将干扰值当作有效值导入系统

#define N 6int filter(bool state){static count = 0;static lastState = 0;if(!state){if((++count)<N)return lastState;}count = 0;lastState = state;}

标签: #消抖滤波算法实例视频讲解