/knowledge/kalman-filter
状态空间模型与卡尔曼滤波
每一个带噪声的测量背后,都有一个你无法直接看见的真实值。卡尔曼滤波实时地把它恢复出来——把你预测的与你测量的融合起来,各自按它有多值得被信任来加权。
- 学于
- 状态空间模型与卡尔曼滤波进阶 · 递归估计
- 时间
- 统计学与信号
- 应用于
- 在线跟踪与平滑
- 阅读 / 复习
- 约 15 分钟阅读2026-06-26
每一个传感器都撒一点谎。一个 GPS 读数、一支温度计、一个移动物体位置的带噪估计——每一个都是真实值加上某种测量误差。卡尔曼滤波是一个优雅、影响极大的算法,用于从一串 带噪声的测量中、实时地恢复那个真实的、隐藏的值——而它靠一个漂亮的想法做到:在 每一步,它把它预测会发生的、与它实际测量到的融合起来,各自按有多可信来加权。
它是 GPS、航天器导航、物体跟踪与传感器融合背后的引擎,也是一个有别于ARIMA 式时间序列页的工具——那一页对单条观测 到的序列建模;这一页则在数据流入时估计一个隐藏状态。这一页从状态空间的想法出发,经由 预测-更新循环,抵达让它豁然开朗的直觉。它连到贝叶斯 更新与流式分析。
01
隐藏的真实状态
核心的框架是状态空间模型,它干净地分开了我们通常混为一谈的两样东西:世界的 真实状态,与我们对它的带噪一瞥。有一个隐藏的状态——比方说一个物体 真实的位置与速度——我们无法直接观测到它。它随时间按某种动态演化。我们得到的全部,是观测:那些等于真实状态、被噪声污染过的测量。
任务是从带噪的观测中估计隐藏状态,在它们到达时,一次一个。「递归」这个词是关键—— 滤波器在每一步并不重新处理全部历史;它向前携带一个运行中的最佳估计,并用每一个新测量去更新它, 而这恰恰是让它能在一条实时流上、用极小的内存运作的东西。
02
两个方程:动态与测量
一个线性状态空间模型不过是两个方程。状态转移方程说明隐藏状态 如何从一步演化到下一步:
而观测方程说明一个测量 如何与那个(看不见 的)状态相关联:
这里 编码动态(状态如何移动——例如位置按速度更新), 把状态映射到测量,而两个噪声项 、 是过程与测量的不确定性。整个滤波器的 任务,是在给定迄今所有带噪的 的条件下估计 ——而关键地,要追踪那个估计有多不确定,因为正是 那份不确定性驱动着整件事。
03
递归:先预测,再更新
卡尔曼滤波对每一个新测量都循环两步——一种「先猜测再修正」的节奏:
- 预测——用动态()把当前估计向前投射到下一个时间步。 估计移动,而——因为世界是不确定的——它的不确定性增长。这是滤波器在看到新数据之前的最佳猜测。
- 更新——一个新测量到达。把预测朝它修正,修正量取决于相对的不确定性,而估计的 不确定性缩小(你学到了一些东西)。这个修正后的估计,成为下一次预测的起点。
先预测再修正,永远如此。结果是一个被持续更新的最佳估计,它比原始测量更平滑、更准确——而且在 一种精确的意义上,对线性-高斯系统是最优的。
04
卡尔曼增益:信任谁
更新的核心是一个量:卡尔曼增益 。它决定把预测朝 新测量移动多少——也就是,相对于你自己的预测,要多信任那个测量。修正后的估计本质上是:
那个括号——测量减去预测——是新息,那个惊讶。增益 缩放 你吸收多少惊讶,而它由相对的不确定性来设定:
05
它用在哪里
卡尔曼滤波是工程中部署得最多的算法之一——它真的帮助把阿波罗送上了月球。它的归宿:
- 跟踪与导航——从带噪的、断断续续的定位中,估计一个移动物体(飞机、导弹、你手机的 位置)的位置与速度。
- 传感器融合——把多个带噪传感器(GPS + 加速度计 + 陀螺仪)最优地组合成一个 连贯的估计,各自按其可靠度加权。这是它的杀手级应用——一部手机或一架无人机正是这样知道自己在 哪里的。
- 平滑带噪信号——任何你有一个埋在噪声里的实时信号、想要一个干净的运行估计之处 (金融、控制系统、生物医学信号)。
06
超越线性-高斯
经典的卡尔曼滤波在两个假设下被证明是最优的:动态是线性的、噪声是高斯的。真实世界常常把两者都打破——所以这个家族有一些扩展:
- 扩展 / 无迹卡尔曼滤波(EKF/UKF)——通过在当前估计周围线性化(EKF)或巧妙采样 (UKF),来处理非线性的动态。
- 粒子滤波——彻底丢掉高斯假设,用一团加权的样本来表示状态的不确定性(把蒙特卡洛的想法应用到滤波)。更灵活, 更昂贵。
在底下,所有这些做的都是递归贝叶斯估计——滤波器的预测-更新,正是贝叶斯的先验→后验循环,每个测量跑一次。 卡尔曼滤波,是那个一切都线性且高斯、因而有着漂亮闭式解的特例。
07
它在我工作中的体现
08
60 秒回顾
状态空间的表述、预测-更新的递归、卡尔曼增益的直觉,以及非线性扩展,反映了当前的估计/传感器 融合参考文献以及课程。