千锋教育-做有情怀、有良心、有品质的职业教育机构

400-811-9990
手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

上海
  • 北京
  • 郑州
  • 武汉
  • 成都
  • 西安
  • 沈阳
  • 广州
  • 南京
  • 深圳
  • 大连
  • 青岛
  • 杭州
  • 重庆
当前位置:哈尔滨千锋IT培训  >  技术干货  >  原始卡尔曼滤波算法(KF)、扩展卡尔曼滤波算法(EKF)以及无迹卡尔曼滤波算法(UKF)三者之间的区别?

原始卡尔曼滤波算法(KF)、扩展卡尔曼滤波算法(EKF)以及无迹卡尔曼滤波算法(UKF)三者之间的区别?

来源:千锋教育
发布人:xqq
时间:2023-10-20 09:12:18

一、原始卡尔曼滤波算法(KF)、扩展卡尔曼滤波算法(EKF)以及无迹卡尔曼滤波算法(UKF)三者之间的区别

1.如果本来就是线性高斯的系统,那么其实贝叶斯滤波中预测步和更新步中所用到的某些概率分布本身就是高斯分布,不需要逼近,此时本身就能够解析地递推计算,算出来的结果就是KF,因为它取得是后验期望,所以此时KF在MAP和MMSE意义下均为优异。另外,KF并不一定非得用贝叶斯滤波的框架推导,在线性非高斯系统,只要噪声假设依然是白噪声,KF也可以用序列的LMMSE(线性估计中均方误差最小者)估计的方式推导,此时KF是LMMSE,但不一定是MMSE,也就是说此时可能存在非线性的滤波估计的均方误差比KF小

2.如果是非线性高斯系统,那么此时贝叶斯滤波中预测步和更新步中所用到的某些概率分布因为进行了非线性变换,可能不再服从高斯分布,但是我们此时依然希望能够简单地像之前KF一样通过计算均值和方差实现递推的滤波算法,于是我们希望对计算过程中出现的分布采用高斯分布进行逼近

3.EKF的逼近方法就是把非线性的系统线性化,利用的是泰勒展开,是函数/解析线性化的方法,线性化之后,由于高斯分布的线性变换依然是高斯分布,所以我们就直接可以按照之前的KF的方式往下算了,所以当系统的非线性程度越小时,EKF效果越好。

4.UKF的逼近方法则是采用的矩匹配(Moment Matching)方法,即用与想要逼近的分布同期望、同协方差矩阵的高斯分布去逼近它,这里面就涉及到了计算非线性函数在高斯分布下的期望,这是一个积分问题,一个直接的方法是利用蒙特卡洛方法计算,但是蒙特卡洛方法的缺点是需要较多的样本数目才能保证较好的近似效果,对于非线性函数在高斯分布下的期望,有一类特殊的方法,叫做Sigma Point Method, 这类方法的思想是通过选取确定性的较少的具有代表性的样本点,用这些点的加权平均就能对所要计算的期望值做到很好的逼近,UKF中的无味变换(Unscented Transform)就是一种选取Sigma Point的方法,它选取的是正态分布的中心点以及其他2n个对称的点,出中心点外其余点的权重都是相同的,保证了这样选取的样本的在这些权重的加权下的样本期望和样本方差都和要计算期望的高斯分布的期望和方差相同,于是这些点带入到那个非线性函数中,再按照这些权重加权,能够做到较好地逼近该非线性函数在这一高斯分布下的期望,事实上,对于3阶以内的多项式的期望,计算结果是精确的。可以看到,UKF之类(还有一个CKF,就是去掉UKF中的中心点,只采样2n个Sigma Point的方法)的方法实际上并没有将非线性函数线性化,二是用矩匹配以及取样本点的方法来得到一个近似的高斯分布来逼近原来的分布,其核心思想是认为逼近一个分布比起逼近一个非线性函数更简单,可以理解为一种”统计线性化”的方法

5.KF,EKF,UKF都是高斯滤波,他们都采用了高斯分布去逼近计算中的某些分布,而如果其中的某些分布是严重非高斯的,比如多峰的情况,这时高斯分布去逼近的方式并不会太好,所以PF粒子滤波等其他的滤波算法采用了另外的方式去逼近,会更适用于这些更一般的情况

延伸阅读:

二、KF算法局限性

该算法线性化会引入阶段误差从而导致滤波精度下降,同时当初始状态误差较大或系统模型非线性程度较高时,滤波精度会受到严重影响甚至发散。

需要计算雅克比矩阵,复杂,计算量大,影响系统的实时性,还会导致EKF算法的数值稳定性差。

当系统存在模型失配,量测干扰,量测丢失,量测延迟或状态突变等复杂情况时,EKF算法鲁棒性差。

以上就是关于原始卡尔曼滤波算法(KF)、扩展卡尔曼滤波算法(EKF)以及无迹卡尔曼滤波算 法(UKF)三者之间的区别的内容希望对大家有帮助。

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

猜你喜欢LIKE

python函数中的参数有哪些?

2023-11-14

python中pygal模块如何使用?

2023-11-14

Python描述符中有哪三种方法?

2023-11-14

最新文章NEW

如何使用python any()判断多元素?

2023-11-14

python中doctest库是什么?

2023-11-14

python模块引入的三种方式

2023-11-14

相关推荐HOT

更多>>

快速通道 更多>>

最新开班信息 更多>>

网友热搜 更多>>