本文使用 Zhihu On VSCode 创作并发布
0 前言
扩展卡尔曼滤波(Extended Kalman Filter,EKF)是标准卡尔曼滤波在非线性情形下的一种扩展形式,它是一种高效率的递归滤波器(自回归滤波器)。
EKF 的基本思想是利用泰勒级数展开将非线性系统的状态转移函数
和(或)观测函数
线性化,然后采用卡尔曼滤波框架对信号进行滤波,因此它是一种次优滤波。
1 贝叶斯滤波的三大概率密度函数
在此前的文章
石鹏:从概率到贝叶斯滤波zhuanlan.zhihu.com和
石鹏:从贝叶斯滤波到卡尔曼滤波zhuanlan.zhihu.com中,已经讲到贝叶斯滤波的先验概率密度函数、似然概率密度函数和后验概率密度函数:
(1) 先验概率密度函数
(2) 似然概率密度函数
(3) 后验概率密度函数
其中,后验概率密度函数中的归一化常数
为:
2 扩展卡尔曼滤波的假设
扩展卡尔曼滤波以贝叶斯滤波为理论基础,并作了五个前提假设。
2.1 与卡尔曼滤波相同的假设
(1) 假设一:状态量服从正态分布
(2) 假设二:观测量服从正态分布
(3) 假设三:过程噪声服从均值为 0 的正态分布
(4) 假设四:观测噪声服从均值为 0 的正态分布
2.2 与卡尔曼滤波不同的假设
(5) 假设五:状态转移函数和(或)观测函数为非线性函数
在卡尔曼滤波的前提假设中,认为状态方程中的状态转移函数
以及观测方程中的观测函数
均为线性函数。基于这种线性假设,存在常数或常矩阵
,使得
可以写成卡尔曼滤波中的线性形式,存在常数或常矩阵
,使得
也可以写成卡尔曼滤波中的线性形式。
不同于标准卡尔曼滤波,扩展卡尔曼滤波处理的是非线性系统,假设系统的状态转移函数和(或)观测函数为非线性函数。
3 扩展卡尔曼滤波的公式推导
3.1 预测步的两个公式
当状态转移函数为线性函数时,扩展卡尔曼滤波的预测步与标准卡尔曼滤波相同;当状态转移函数为非线性函数时,扩展卡尔曼滤波的预测步采用下面的推导过程。
根据假设一,
时刻状态量
服从均值为
,方差为
的正态分布:
的后验概率密度函数为:
对状态转移函数
在
的后验估计处
(即
)进行
一阶泰勒级数展开:
其中,
为高阶无穷小量,对其进行舍弃,便可得到状态转移函数
的近似形式:
令
,则近似有: