消抖滤波法的实现步骤为:设置一个滤波计数器,将每次采样值与当前有效值比较,如果采样值等于当前有效值,则计数器清零。如果采样值不等于当前有效值,则计数器+1,并判断计数器是否>=上限N(溢出),如果计数器溢出,则将本次值替换当前有效值,并清计数器。也就是只有采样值连续变化N次之后,才将采样值做为有效值。
下面直接看C代码的实现
主函数中实时采样AD端口的波形值,然后将采样值经过消抖滤波法进行滤波,然后用串口输出原始采样值和滤波后的值,并在串口波形软件上显示采样的数据波形。
图中蓝色曲线为原始数据曲线,橙色曲线为经过滤波算法后的曲线。
消抖滤波法对于变化缓慢的被测参数有较好的滤波效果,可避免在临界值附近控制器的反复开/关跳动或显示器上数值抖动。
但是对于快速变化的参数不宜,如果在计数器溢出的那一次采样到的值恰好是干扰值,则会将干扰值当作有效值导入系统。
文章知识点与官方知识档案匹配,可进一步学习相关知识算法技能树首页概览35213 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!