【转】卡尔曼滤波器算法

2019-07-19 13:15发布


在这一部分,我们就来描述源于Dr Kalman 的卡尔曼滤波器。下面的描述,会涉及一些基本的概念知识,包括概率(Probability),随即变量(Random Variable),高斯或正态分配(Gaussian Distribution)还有State-space Model等等。但对于卡尔曼滤波器的详细证明,这里不能一一描述。

首先,我们先要引入一个离散控制过程的系统。该系统可用一个线性随机微分方程(Linear Stochastic Difference equation)来描述,我们结合下面PPT截图进行说明:
上两式子中,x(k)是k时刻的系统状态,u(k)是k时刻对系统的控制量。A和B是系统参数,对于多模型系统,他们为矩阵。y(k)是k时刻的测量值,H是测量系统的参数,对于多测量系统,H为矩阵。q(k)和r(k)分别表示过程和测量的噪声。他们被假设成高斯白噪声(White Gaussian Noise),他们的covariance分别是Q,R(这里我们假设他们不随系统状态变化而变化)。

对于满足上面的条件(线性随机微分系统,过程和测量都是高斯白噪声),卡尔曼滤波器是最优的信息处理器。先给出KF算法的流程和五个核心更新方程如下:KF算法
五个更新方程为:
编写公式不方便,所以写成了PDF然后做了截图粘在了下面,下面就上面的例子和五个核心的公式对Kalman算法进行下说明:就这样,算法就可以自回归的运算下去。看到这聪明的同学可能已经看出来了,问道卡尔曼增益为什么会是第三步中那样求,现在只大致说一下原理,具体推到比较复杂,有兴趣的同学可以参考这文献去推一推。
还记得前面我们说的误差协方差矩阵$P_k$么,即求第k次最优温度的误差协方差矩阵,对应于上例中的3和3.12....这些值。看下面PPT,我们最小化P即可得到卡尔曼增益K,对应上例求解K只最小化最优温度值的偏差,即最小化P(K):
我们由第四步可以看出,k时刻系统的最优温度值=k-1时刻状态估计值(由上一状态的最优温度值加上过程误差)+带卡尔曼增益权值项的偏差。如果观测误差远远大于估计误差,那么K就很小,k时刻的预测值约等于k时刻的状态估计值,如果对i时刻的状态估计值误差远远大于观测误差,此时相应的q较大,K较大,i时刻的状态估计值更倾向于观察的数据。卡尔曼滤波器的原理基本描述就完成了,希望能帮助大家理解这这5个公式,其算法可以很容易的用计算机的程序实现。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
19条回答
wangdezhi
1楼-- · 2019-07-21 04:34
pixhw 发表于 2017-1-26 20:07
卡卡尔曼滤波算法确实是做预算算法。

通过系统输入输出观测数据,对系统状态进行最优估计的算法。
uiint
2楼-- · 2019-07-21 05:52
houjiakai 发表于 2017-1-17 22:21
这个网上有相关的卡尔曼滤波算法

可以通过matlab进行仿真设计
uiint
3楼-- · 2019-07-21 05:54
houjiakai 发表于 2017-1-17 22:21
就是通过滤波算法进行计算的。

就是状态方程,通过积累误差造成的。
i1mcu
4楼-- · 2019-07-21 06:57
卡尔曼滤波  利用线性系统状态方程,通过系统输入输出观测数据,对系统状态进行最优估计的算法。
i1mcu
5楼-- · 2019-07-21 08:51
 精彩回答 2  元偷偷看……
tongbu2015
6楼-- · 2019-07-21 10:52
这些知识介绍的很不错的,信号处理是非常复杂的

一周热门 更多>