浅谈卡尔曼滤波器

1795年,高斯为了测定行星轨道提出了最小二乘估计法。


1942年,维纳为了解决火力控制系统精度跟踪问题,提出了维纳滤波理论。


维纳滤波理论首次将数理统计理论与线性理论有机结合,形成了对随机信号最有估计新理论~~


但是频域设计法使其应用困难,人们开始寻求时域内直接设计最有滤波的方法。


1960年,卡尔曼发表论文《A New Approach to Linear Filtering and Prediction Problems》,卡尔曼滤波器就此诞生~


卡尔曼算法使用状态空间的概念,基于时域设计,算法是递推的,大大降低算法时间和空间复杂度,被广泛应用于各种信号估计。


五条核心公式如下:

如果希望了解卡尔曼滤波的证明,可以参考这一篇aticourses.com/kalman_f

卡尔曼有好多种变形,每本书的符号系统还不一样,看起来证明的样子五花八门。这一篇应该是最简洁的,虽然有些小错,看仔细点就好了。

这里不谈证明,简单让大家理解一下卡尔曼滤波是如何工作的





因为卡尔曼如此简洁,如此使用,人们有对卡尔曼做了许多的拓展,大致可以按照一下的脉络来分类
0.首先你得到了t1到t5的观测值,运用卡尔曼算法,
如果你要对t3时刻的状态进行估计称为卡尔曼平滑,
对t5时刻状态进行估计称为卡尔曼滤波,
对t6时刻状态进行估计称为卡尔曼预测。
因为假设了噪声均值为0,所以平滑滤波和预测只要乘一项传递参数F就可以了。


1.一般我们考虑的是线性离散系统。而连续系统经过离散化处理,就可以套用离散系统的方式了。

2.有时候传递方程和观测方程是非线性的,我们可以使用扩展卡尔曼和无迹卡尔曼滤波器来处理。
EKF就是把非线性方程的一阶泰勒展开写出来,用把一阶导数算出来带入方程,然后就可以按照之前线性模型来处理了~


但是EKF只计算到一阶导数,有时候还涉及到二阶导数甚至三阶导数,或者是导数很难求的情况,这时候就用到了UKF的方法。


UKF处理非线性的方式是选几个有代表性的点(sigma-point),带入到非线传递/观测方程中去,将带入结果的均值和方差作为传递/观测结果的均值和方差。
3.K的计算中涉及计算很小的数字,而计算机算小数经常四舍五入,有个方法就是把公式中的K全部变成K的逆,这样计算出错的情况减少,就会优化结果。这个方法就叫卡尔曼信息滤波。在数学上和卡尔曼滤波是等价的。


同样因为计算机的四舍五入,公式五里面因为那个减号有时候会搞出负定矩阵来,然后滤波器就坏了……遇到这种情况可以加白噪声,或者用平方根滤波,UD分解之类的。


引用:

http://wenku.baidu.com/view/187eecec856a561252d36f5b.html
http://blog.csdn.net/lanbing510/article/details/8828109
自适应滤波器原理               ----Simon Haykin
Sigma-Point Kalman Filters for Probabilistic Inference in Dynamic State-Space Models----Rudolph van der Merwe


你可能感兴趣的:(机器学习,卡尔曼,滤波,Kalman,入门,去噪)