跟踪(一):跟踪常见算法和特点

最近在看跟踪,总结一哈跟踪的常见方法

其中KF和EKF的推导和证明可以参考《现代数字信号处理》何子述老师的这本书

1、KF曼滤波器为何如此受欢迎?

这就需要从高斯说起,1795年,高斯为了测定行星轨道提出了最小二乘估计法。 1942年,维纳为了解决战争中火力控制系统精度跟踪问题,提出了维纳滤波理论。 维纳滤波理论首次将数理统计理论与线性理论有机结合,形成了对随机信号最有估计新理论。但是维纳滤波器因为计算量大,需要用到全部数据而应用困难,人们开始寻求时域内直接设计最有滤波的方法。 1960年,卡尔曼发表论文《A New Approach to Linear Filtering and Prediction Problems》,卡尔曼滤波器就此诞生。卡尔曼算法使用状态空间的概念,基于时域设计,算法是递推的,大大降低算法时间和空间复杂度,被广泛应用于各种信号估计。这里先介绍一个一个一阶马尔科夫过程,就是一个系统的当前状态,只和他前一时刻的状态有关,即当前状态可以只受前一状态的影响。因此,卡尔曼滤波器是一个递推的滤波器,大大减少了计算量。

核心公式如下:  

其中x表示状态,k表示k时刻,F是状态矩阵,跟踪(一):跟踪常见算法和特点为一步预测协方差矩阵,Q是过程噪声,K为卡尔曼增益,H为观测矩阵,z为观测量,P为状态估计协方差矩阵;

第一个方程为:一步状态预测方程,就是利用前一时刻的状态一步预测当前状态

第二个方程为:一步状态预测协协方差方程,计算一步状态预测的协方差

第三个方程为:卡尔曼增益方程,计算观测在修正一步预测状态中的增益

第四个方程为:状态预测方程,利用观测修正一步预测状态得到更合理的状态估计

第五个方程为:状态预测协方差方程,状态估计的协方差矩阵

       跟踪(一):跟踪常见算法和特点

可以对卡尔曼滤波器做一下的分类

1、KF即卡尔曼滤波器,适用于线性系统。

2、EKF即扩展卡尔曼滤波器,针对非线性系统,利用一阶Taylor展开来局部线性化(把对应的非线性部分关于观测求导,代入即可,即雅克比矩阵),针对非线性大量使用;但是EKF只计算到一阶导数,有时候还涉及到二阶导数甚至三阶导数,或者是导数很难求的情况,这时候就需要用到了UKF的方法。

3、UKF即无迹卡尔曼滤波器,针对非线性系统,利用一些粒子Sigma粒子来求分布(期望、方差)即选几个有代表性的点(sigma-point)带入到非线传递/观测方程中去来近似系统的分布,针对非线性大量使用;

4、PF粒子滤波算法不受线性高斯模型的约束,与卡尔曼滤波器一样,粒子滤波算法同样需要知道系统的模型,如果不知道系统的模型,也要想办法构建一个模型来逼近真实的模型。这个真实模型就是各应用领域内系统的数学表示,主要包括状态方程和量测方程。

具体PF参考:https://blog.csdn.net/zhangquan2015/article/details/79166537