什么是 卡尔曼滤波(Kalman Filter)?

卡尔曼滤波(Kalman Filter)是一种递归贝叶斯估计器,它根据连续含噪观测,计算线性状态空间模型当前滤波分布的均值与协方差。

快速了解

规范文档官方规范

工作原理

预测状态及其不确定性

对 x_k = F x_(k-1) + B u_k + w_k 且 w_k ~ N(0, Q),预测步骤计算 m_k^- = F m_(k-1) + B u_k 与 P_k^- = F P_(k-1) F^T + Q。均值按动力学前移,过程噪声使不确定性增加;观测缺失时通常只保留该预测,而不是虚构一次校正。

Kalman 1960 年原始论文建立了递归线性滤波与误差协方差方程。精确贝叶斯高斯滤波还要求高斯初始状态及兼容的独立高斯噪声;只有较弱二阶矩假设时,应把最优性准确表述为线性估计器结论。

利用新息和卡尔曼增益校正

对量测 y_k = H x_k + v_k,先定义 Innovation r_k = y_k - H m_k^- 与 Innovation Covariance S_k = H P_k^- H^T + R。增益 K_k = P_k^- H^T S_k^-1 用 K_k r_k 校正均值;它是由方向性不确定性推导出的矩阵,不是人工选择的单一信任比例。

能够使用线性方程求解或 Cholesky 分解时,不应显式构造稠密逆矩阵。Joseph 协方差更新 (I-KH)P^-(I-KH)^T + K R K^T 计算稍多,但在有限精度下更有利于保持对称与半正定。

用新息统计检验模型

轨迹平滑不能证明滤波器已经校准。模型假设成立时,Whitened Innovation 应近似零均值、时间不相关,并与 S_k 一致。持续偏差、自相关或极端 Normalized Innovation Squared,可能暴露错误动力学、传感器偏置、时间错位、异常值,或失真的 Q 与 R。

应报告初始化、离散化、单位、缺失数据处理、数值形式、新息覆盖、留出数据或模拟真值上的状态误差和延迟。声明为非线性近似时可选 EKF 或 UKF;后验明显非高斯时考虑 Particle Filter;只有未来观测可合法使用时才采用 RTS Smoother。

主要特点

  • 通过均值与协方差维护高斯状态估计
  • 交替执行模型预测与观测校正
  • 根据新息协方差计算 Kalman Gain
  • 对指定线性高斯状态空间模型给出精确递推
  • 每个时间步使用有界状态内存递归运行
  • 高度依赖模型、噪声、初始化与数值质量

常见用途

  1. 位置与速度的实时跟踪
  2. 导航和控制系统中的传感器融合
  3. 时间序列潜在分量的在线估计
  4. 存在间歇观测时的状态估计
  5. 验证近似滤波器的参考解

示例

loading...
Loading code...

常见问题

卡尔曼滤波在什么条件下是精确的?

当初始状态和噪声为高斯、状态转移与观测模型为线性,并满足声明的独立性和协方差假设时,它精确给出滤波均值与协方差。其他场景可能只有线性估计最优性,或本身就是近似。

卡尔曼增益代表什么?

Kalman Gain 把量测新息映射成状态校正。它由预测状态协方差、观测模型和测量协方差共同决定,因此会按方向权衡不确定性,而不是一个任意的标量平滑系数。

过程噪声 Q 与测量噪声 R 应如何选择?

应从过程和传感器误差模型、标定数据、采样间隔与单位推导,再用留出轨迹和新息统计验证。仅为了让输出看起来平滑而调参,可能得到严重失真的协方差。

观测缺失时卡尔曼滤波如何处理?

可以只执行预测步骤,把预测均值向前传播,同时让协方差通过动力学与过程噪声增长。实现必须区分缺失观测与数值为零的真实观测。

卡尔曼滤波与 RTS 平滑器有什么区别?

Filtering 只使用截至当前时刻的观测估计当前状态。RTS Smoother 先完成前向滤波,再在后向过程中使用未来观测,因此是固定区间回顾估计,不是在线滤波的直接替代。

相关术语

相关文章