在信号处理、传感器数据处理等领域,除了卡尔曼滤波,还有很多常用的滤波算法,它们各有特点,适用于不同场景。下面用通俗易懂的方式介绍几种最常用的,并对比它们的区别和应用:
一、移动平均滤波(Moving Average Filter)
通俗理解:'取最近 N 个数据的平均值',比如连续测 5 次温度,每次都用最近 3 次的平均作为结果,平滑波动。
核心原理:
- 假设噪声是'随机波动'(忽高忽低),通过平均抵消部分噪声(正噪声和负噪声互相抵消)。
- 公式:当前滤波值 = (第 1 次 + 第 2 次 + ... + 第 N 次)÷ N(N 是窗口大小,比如 3、5、10)。
特点:
- 优点:简单到能在单片机里用几行代码实现,计算量极小。
- 缺点:窗口越大,滞后越明显(比如温度突然升高,平均后反应变慢);无法处理'持续偏移'的噪声(如传感器缓慢漂移)。
应用场景:
- 对实时性要求高、噪声是随机小波动的场景:
- 温湿度传感器数据平滑(如房间温度缓慢变化,偶尔跳变 1℃);
- 心率监测(脉搏信号有小波动,取 5 次平均更稳定)。
二、指数移动平均滤波(Exponential Moving Average, EMA)
通俗理解:'给新数据更高的权重,老数据权重逐渐降低',比如最近 1 次数据占 60%,上 1 次占 30%,再上 1 次占 10%,既平滑又减少滞后。
核心原理:
- 相比移动平均,不丢弃老数据,但老数据的影响随时间'指数级衰减'。
- 公式:当前滤波值 = 新数据 × 权重 + 上一次滤波值 ×(1 - 权重)(权重通常取 0.1-0.5)。
特点:
- 优点:比移动平均响应更快(滞后小),计算量同样很小(只需保存上一次结果)。
- 缺点:权重需要手动调(调不好会过滤不彻底或响应太慢);仍无法处理大的突变噪声。
应用场景:
- 需要平衡'平滑性'和'响应速度'的场景:
- 股票价格曲线平滑(既过滤短期波动,又能及时反映趋势变化);
- 无人机高度数据处理(气压计数据有小波动,需快速响应高度变化)。
三、中值滤波(Median Filter)
通俗理解:'取最近 N 个数据中的中间值',比如测 5 次数据为 [2, 100, 3, 5, 4],中间值是 4,直接排除掉 100 这种'跳变噪声'。
核心原理:
- 专门对付'脉冲噪声'(偶尔出现的极大 / 极小值,比如传感器突然被干扰),中间值能有效剔除异常值。
特点:
- 优点:对'突发大噪声'(如电压波动导致的传感器跳变)效果极好,计算简单。
- 缺点:对连续波动的噪声(如温度一直忽高忽低)效果不如平均滤波;窗口越大,滞后越明显。
应用场景:
- 传感器易受突发干扰的场景:
- 图像去噪(老照片中的'斑点',取周围像素的中值可消除);
- 工业传感器数据(如振动传感器偶尔因机械冲击出现异常值)。
四、巴特沃斯滤波(Butterworth Filter)
通俗理解:'只保留特定频率的信号,过滤其他频率的噪声',比如声音信号中,只保留人说话的频率(300-3400Hz),过滤高频的电流杂音。


