研讨会系列 · KF L14 (2/2)

Kalman Filter 测量更新详解

新息、Kalman Gain、误差协方差更新 —— 测量更新的完整推导与直觉

📅 2026-05-10 📏 测量更新 🎯 Kalman Gain

🎯 学完本节,你应能

掌握Kalman Filter的系统模型、基本假设与符号体系

📖 前置知识

建议先完成前面的课程,或具备线性代数与概率论基础。

🎯 本讲目标(第二部分)

理解测量更新公式的来源与含义:新息协方差、Kalman Gain 的推导、状态更新与误差协方差更新、以及与 LMMSE 的对应关系。

🔑 核心公式

$\hat x_{k|k} = \hat x_{k|k-1} + K_{k} e_{k}$ —— 新估计 = 旧预测 + 增益 × 新息。本质就是对新息做 LMMSE 投影。

📖 目录

1. 测量更新的输入

假设当前已经有预测 $\hat x_{k|k-1}$ 和预测误差协方差 $P_{k|k-1}$。现在测量 $y_{k}$ 到来,需要更新成 $\hat x_{k|k}$ 和 $P_{k|k}$。

$$ \underbrace{\hat x_{k|k-1},\; P_{k|k-1}}_{\text{预测}} \;\xrightarrow{\;y_{k}\text{ 到来}\;}\; \underbrace{\hat x_{k|k},\; P_{k|k}}_{\text{更新}} $$

💡 核心问题

如何把新测量 $y_{k}$ 的信息融入当前估计,得到更准确的估计?

2. 新息(Innovation)

预测测量(根据旧信息预期的测量值):

$$ \hat y_{k|k-1} = C \hat x_{k|k-1} $$

实际测量:

$$ y_{k} = C x_{k} + v_{k} $$

新息 = 实际看到的一我以为会看到的:

$$ e_{k} = y_{k} - C \hat x_{k|k-1} $$

🌡️ 通俗理解

新息就是"实际测量的"和"我以为会测量到的"之间的差。如果这个差是零,说明预测完美,不需要修正。差越大,说明新信息越多。

3. 新息协方差

新息协方差:

$$ R_{e,k} = E[e_{k} e_{k}^T] $$

推导:

$$ \begin{aligned} e_{k} &= y_{k} - C \hat x_{k|k-1} \\ &= C x_{k} + v_{k} - C \hat x_{k|k-1} \\ &= C (x_{k} - \hat x_{k|k-1}) + v_{k} \\ &= C \tilde x_{k|k-1} + v_{k} \end{aligned} $$

由于预测误差 $\tilde x_{k|k-1}$ 与 $v_{k}$ 不相关:

$$ R_{e,k} = C P_{k|k-1} C^T + R $$

预测误差通过测量矩阵 $C$ 传到测量空间,贡献 $CP_{k|k-1}C^T$;测量噪声自身贡献 $R$。两者相加得到新息的"总不确定性"。

4. Kalman Gain

$$ K_{k} = P_{k|k-1} C^T R_{e,k}^{-1} $$

等价形式:

$$ K_{k} = P_{k|k-1} C^T (C P_{k|k-1} C^T + R)^{-1} $$

Kalman gain 决定新息要被转化成多大的状态修正。

🧠 直觉

  • 如果预测很不准($P_{k|k-1}$ 大),更愿意信测量 → $K_{k}$ 大
  • 如果测量噪声很大($R$ 大),更不愿意信测量 → $K_{k}$ 小
  • 所以 Kalman gain 是在"模型信任度"和"测量信任度"之间做最优权衡

5. 状态更新公式

状态更新:

$$ \hat x_{k|k} = \hat x_{k|k-1} + K_{k} e_{k} $$

也就是:

$$ \text{新估计} = \text{旧预测} + \text{增益} \times \text{新息} $$

📖 解释

先拿 prediction 当底稿,再用 measurement 带来的"纠偏量"去修正它。这个形式在工程上极其优雅:每一步只需要知道旧估计和新测量,不需要回溯历史。

6. 误差协方差更新

测量更新后,不确定性会减少:

$$ P_{k|k} = P_{k|k-1} - K_{k} R_{e,k} K_{k}^T $$

等价写法(代入 $K_{k}$ 和 $R_{e,k}$):

$$ P_{k|k} = P_{k|k-1} - P_{k|k-1} C^T R_{e,k}^{-1} C P_{k|k-1} $$

✅ 关键性质

$P_{k|k} \le P_{k|k-1}$(半正定意义)。测量总是带来信息的,所以不确定性只减不增。如果测量完美且无噪声,不确定性甚至会降到零。

7. 【补充例题】一维 Kalman 更新直觉

设预测状态 $\hat x_{k|k-1} = 10$,测量 $y_{k} = 12$,$C = 1$。

情况 A:$K_{k} = 0.25$

新息:$e_{k} = 12 - 10 = 2$

$$ \hat x_{k|k} = 10 + 0.25 \times 2 = 10.5 $$

更相信预测,小幅修正

情况 B:$K_{k} = 0.9$

新息:$e_{k} = 12 - 10 = 2$

$$ \hat x_{k|k} = 10 + 0.9 \times 2 = 11.8 $$

更相信测量,大幅修正

说明 $K$ 越大,越相信测量;$K$ 越小,越相信模型预测。

8. 两个极端行为

📊 $R \to \infty$(测量完全不可信)

$$ K_{k} \to 0 $$ $$ \hat x_{k|k} \approx \hat x_{k|k-1} $$

完全忽略测量,只用模型预测。

📊 $P_{k|k-1} \to \infty$(预测完全不可信)

$$ K_{k} \to C^{-1} $$ $$ \hat x_{k|k} \approx C^{-1} y_{k} $$

完全相信测量(若 $C$ 可逆)。

Kalman Filter 在两者之间平滑过渡,自动权衡。

9. 和 LMMSE 的对应

LMMSE 公式:

$$ K = R_{xy} R_{y}^{-1} $$

Kalman Filter 中:

$$ K_{k} = P_{k|k-1} C^T (C P_{k|k-1} C^T + R)^{-1} $$

对应关系:

🧠 本质

KF 测量更新就是对新息做 LMMSE 投影。整个 Kalman Filter 可以理解为:在递归框架下反复应用 LMMSE。

10. 完整 KF 算法总结

初始化

$$ \hat x_{0|-1} = 0,\quad P_{0|-1} = \Pi_{0} $$

对每个时刻 $k = 0, 1, 2, \ldots$

⏱ 时间更新(预测)

$$ \hat x_{k+1|k} = A \hat x_{k|k} $$ $$ P_{k+1|k} = A P_{k|k} A^T + Q $$

📏 测量更新(修正)

$$ e_{k} = y_{k} - C \hat x_{k|k-1} $$ $$ R_{e,k} = C P_{k|k-1} C^T + R $$ $$ K_{k} = P_{k|k-1} C^T R_{e,k}^{-1} $$ $$ \hat x_{k|k} = \hat x_{k|k-1} + K_{k} e_{k} $$ $$ P_{k|k} = P_{k|k-1} - K_{k} R_{e,k} K_{k}^T $$

🚀 关键性质

所有计算只需要常数时间!不依赖 $k$ 的大小。这比直接做 LMMSE($O(k^3)$)有质的飞跃。

📝 自测题

问题 1

新息 $e_{k}$ 表示什么?它可以为零吗?

点击查看答案

新息 $e_{k} = y_{k} - C\hat x_{k|k-1}$ 是实际测量与预测测量之差。它可以为零——当预测完美匹配实际测量时,意味着当前测量不包含新信息,估计不需要修正。

问题 2

如果测量噪声 $R$ 很大,Kalman gain 会倾向变大还是变小?

问题 3

为什么测量更新后 $P_{k|k}$ 通常比 $P_{k|k-1}$ 小?

点击查看答案

$P_{k|k} = P_{k|k-1} - K_{k} R_{e,k} K_{k}^T$。由于 $K_{k} R_{e,k} K_{k}^T \ge 0$(半正定),第二项总是不小于零的"减少量",所以协方差只减不增。测量总是携带信息的,因此不确定性降低或至少不增。

施老师大课堂 · 研讨会系列 KF L14 (2/2) · Kalman Filter 测量更新详解