STM32 传感器三种滤波算法精讲|滑动均值、中值滤波、一阶低通 RC 滤波深度解析

STM32 传感器三种滤波算法精讲|滑动均值、中值滤波、一阶低通 RC 滤波深度解析
一、前言(项目真实干扰痛点)承接专栏温湿度采集、电机 PID 调速、ADC 电压检测整套工程,实际调试中遇到三类典型数据异常:1、随机尖峰干扰:电机启停、继电器吸合瞬间,温湿度、转速突然出现超大跳变值;2、高频小幅抖动:ADC 分压、长线 IIC 通讯,数值上下小幅频繁跳动,OLED 显示闪烁;3、杂波持续扰动:开关电源纹波带来连续微小噪声,导致 PID 频繁微调、电机抖动。常用处理方式缺陷:1、单纯延时采样:牺牲响应速度,控制闭环滞后严重;2、单次取平均:无法过滤突发尖峰异常值;3、网上滤波代码写死数组长度、绑定硬件,更换传感器需要大面积重构。本文核心目标:1、通俗讲清三种滤波适用场景,遇到干扰快速选对应算法;2、结构体模块化封装均值、中值、一阶低通,上层调用统一接口;3、极简无冗余代码,支持 float 浮点、uint16_t 整型两种数据;4、无硬件依赖,任意传感器、任意采集通道直接移植。二、三种滤波底层原理深度解析2.1 滑动均值滤波(算术平均滤波)原理建立固定长度缓存数组,每次采集新数据压入队列,剔除最旧数据,取队列全部数据平均值作为输出。优缺点优点:平滑高频小幅抖动,实现简单,无相位滞后;缺点:对突发尖峰异常值抑制能力弱,尖峰会拉偏均值;适配场景:ADC 电压、温湿度小幅噪声平滑。2.2 中值滤波原理缓存 N 组采样数据,从小到大排序,舍弃最大值最小值,取中间值作为有效输出。优缺点优点:完美过滤单次脉冲尖峰、突发跳变异常值;缺点:对连续小幅杂波平滑效果差,存在轻微滞后;适配场景:电机转速、继电器干扰下的传感器采集。2.3 一阶低通滤波(数字 RC 滤波)原理模拟硬件 RC 低通电路,引入滤波系数 α(0~1),新输出由上次输出与本次采样加权计算:优缺点优点:占用内存极小(仅保存上一次输出),抑制连续高频杂波;缺点:存在明显相位滞后,无法滤除超大尖峰;适配场景:连续缓慢变化量,恒温、恒速闭环控制配套滤波。2.4 三种滤波选型对照表三、项目硬件业务架构1、采集通道