首页 › 技术知识 › 工程笔记 › 算法笔记 › 一维卡尔曼滤波:环境数据去噪的极简实现
算法笔记 气象 卡尔曼滤波Kalman去噪估计算法

一维卡尔曼滤波:环境数据去噪的极简实现

1D Kalman Filter for Denoising

卡尔曼滤波不需要存历史、逐点更新,非常适合嵌入式与在线去噪。一维版本只有几行:在"模型预测"与"新观测"之间按不确定度加权。

约 559 字· 6 分钟阅读

核心思想

卡尔曼滤波是递归的最优估计:每一刻,它都持有"当前估计值 x 及其不确定度 P",新来一个观测 z 时:

  • 预测:x 不变(或按模型演化),P 因过程噪声 Q 增大一点;
  • 更新:用观测 z 修正 x,增益 K = P/(P+R),其中 R 是观测噪声方差;
  • 修正后 P 缩小为 P(1-K)。

K 越大,越相信新观测;R 越大(观测越不可信),K 越小,越信任历史估计。 这就是它比固定加权聪明的地方——它会根据"谁更可信"动态调整。

一维伪代码

`` x = z0; P = 1.0 每来一个 z: P = P + Q // 预测不确定度增加 K = P / (P + R) // 卡尔曼增益 x = x + K*(z - x) // 更新估计 P = (1 - K)*P // 更新不确定度 ``

怎么调 Q 和 R

  • R 大(传感器噪声大):滤波平滑强,但响应慢。
  • Q 大(信号变化快):滤波跟手,但噪声抑制弱。
  • 经验:Q 取小(如 1e-4~1e-3),R 取传感器噪声方差估计。

适用范围与坑

  • 适合缓慢变化 + 高斯噪声的信号(温度、水位趋势)——表现优于 EWMA,因为会自适应。
  • 不适合突变事件:滤波会平滑掉真实阶跃(同 EWMA 的问题)。
  • 假设噪声高斯、模型线性,强非线性/非高斯需扩展卡尔曼或无迹卡尔曼。

一维卡尔曼是"有记忆的、会变权重的 EWMA"——几乎零成本,却比固定加权更懂什么时候该信新数据。