研讨会系列 · 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}
$$
对应关系:
- $P_{k|k-1} C^T$ 对应 $R_{xy}$:状态预测误差与新息的互协方差
- $C P_{k|k-1} C^T + R$ 对应 $R_{y}$:新息协方差
🧠 本质
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$(半正定),第二项总是不小于零的"减少量",所以协方差只减不增。测量总是携带信息的,因此不确定性降低或至少不增。