一维卡尔曼滤波(无过程噪声)详解
卡尔曼滤波是一种最优线性滤波器,用于从含噪声的测量中估计系统状态。本文聚焦于一维且不带过程噪声的卡尔曼滤波,解析其核心原理与公式推导。
一、状态预测:从当前状态外推未来状态
卡尔曼滤波的 “预测” 阶段包含状态外推和协方差外推(估计不确定性外推),两者均由系统的动态模型决定。
1. 状态外推(State Extrapolation)
状态外推是利用系统动态模型,从 “当前状态估计” 推导 “下一时刻先验状态估计”。
例子 1:系统状态恒定(如金条重量测量)
若系统状态(如金条重量)不随时间变化,动态模型为 “恒定”,则状态外推公式为:其中:
:第 n 时刻后验状态估计(结合测量后的最优估计)。
:第
时刻先验状态估计(仅由动态模型外推的估计)。
例子 2:一维运动模型(如雷达跟踪位置与速度)
若系统是 “位置 - 速度” 的一维运动(速度恒定),动态模型为:
其中:
:位置的状态估计,
:速度的状态估计。
:时间步长,速度假设恒定(因此
),位置由“当前位置 + 速度×时间”更新。
2. 协方差外推(Covariance Extrapolation)
“协方差”描述状态估计的不确定性(方差)。协方差外推是从“当前状态的不确定性”推导“下一时刻先验状态的不确定性”。
例子1:系统状态恒定
由于状态无变化,不确定性也不传播,因此协方差外推公式为:
其中表示状态估计的方差(不确定性)。
例子2:一维运动模型(位置-速度)
位置的不确定性会因速度的不确定性而传播,由 ,方差满足
,而速度不确定性恒定。因此协方差外推公式为:
其中:
:位置估计的方差(不确定性)。
:速度估计的方差(不确定性)。
二、状态更新:结合测量优化估计
“更新”阶段通过结合先验状态估计和当前测量,得到“后验状态估计”(更优的状态估计),同时更新不确定性(协方差)。
1. 状态更新的思想:加权平均最小化方差
当前状态估计是“先验状态估计”和“测量值”的加权平均:
其中:
:第
时刻的测量值。
:第
时刻的先验状态估计(由预测阶段得到)。
:测量值的权重,
:先验估计的权重。
我们的目标是最小化当前状态估计的方差 。根据方差的性质(若随机变量 ( X ) 的方差为
,则
的方差为
;独立变量和的方差为方差和),当前状态估计的方差为:
其中:
:测量值
的方差(测量不确定性)。
:先验状态估计
的方差(先验不确定性)。
2. 卡尔曼增益:最优权重的推导
为了最小化 ,对
关于
求偏导并令导数为0:
解得最优权重:
这个最优权重就是卡尔曼增益 ( ),因此卡尔曼增益公式为:
卡尔曼增益 ( ) 满足 (
):
- 若测量不确定性 (
) 小(测量准确),则 (
) 大(更信任测量)。
- 若先验不确定性 (
) 小(先验估计准确),则 (
) 小(更信任先验)。
3. 状态更新公式
将卡尔曼增益 代入“加权平均”的状态估计公式,得到更简洁的形式:
其中 称为创新(Innovation),表示“测量与先验估计的差异”,卡尔曼增益决定了“创新”对状态更新的贡献程度。
4. 协方差更新公式
将代入方差公式
,经过化简(展开、合并同类项)可得:
该公式表明:更新后的状态不确定性(方差)是“先验不确定性”乘以 。由于 (
),因此 (
),即估计的不确定性随滤波迭代逐渐减小。
三、总结:一维无过程噪声卡尔曼滤波的流程
一维无过程噪声的卡尔曼滤波分为预测和更新两个核心阶段:
预测阶段:
- 状态外推:用系统动态模型,从当前后验状态估计外推下一时刻先验状态估计(如 (
) 或 (
))。
- 协方差外推:用动态模型传播不确定性(如
或
)。
- 状态外推:用系统动态模型,从当前后验状态估计外推下一时刻先验状态估计(如 (
更新阶段:
- 计算卡尔曼增益
,确定测量与先验估计的权重。
- 状态更新:结合先验估计和测量,得到后验状态估计
。
- 协方差更新:更新后验不确定性
。
- 计算卡尔曼增益
通过“预测-更新”的迭代,卡尔曼滤波能在最小化不确定性的前提下,不断优化状态估计。