打印

【转】卡尔曼滤波器算法

[复制链接]
1862|19
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
南国先生|  楼主 | 2017-1-7 12:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

在这一部分,我们就来描述源于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个公式,其算法可以很容易的用计算机的程序实现。

相关帖子

沙发
myiclife| | 2017-1-7 22:09 | 只看该作者
有卡尔曼滤波的相关程序吗?

使用特权

评论回复
板凳
myiclife| | 2017-1-7 22:11 | 只看该作者
卡尔曼滤波怎么实现预测?

使用特权

评论回复
地板
houjiakai| | 2017-1-17 22:21 | 只看该作者
myiclife 发表于 2017-1-7 22:09
有卡尔曼滤波的相关程序吗?

这个网上有相关的卡尔曼滤波算法

使用特权

评论回复
5
houjiakai| | 2017-1-17 22:21 | 只看该作者
myiclife 发表于 2017-1-7 22:11
卡尔曼滤波怎么实现预测?

就是通过滤波算法进行计算的。

使用特权

评论回复
6
zhangmangui| | 2017-1-17 22:28 | 只看该作者
哎    基础不好   看这些都费劲

使用特权

评论回复
7
hudi008| | 2017-1-18 22:56 | 只看该作者
卡尔曼滤波算法确实帮。

使用特权

评论回复
8
hudi008| | 2017-1-18 22:58 | 只看该作者
现在的导航设计都是使用的卡尔曼滤波。

使用特权

评论回复
9
pixhw| | 2017-1-19 22:44 | 只看该作者
推荐《卡尔曼滤波原理及应用-MATLAB仿真》程序

使用特权

评论回复
10
pixhw| | 2017-1-19 22:44 | 只看该作者
《卡尔曼滤波原理及应用-MATLAB仿真》程序这个里面的程序能够直接仿真使用。

使用特权

评论回复
11
pixhw| | 2017-1-26 20:07 | 只看该作者
卡卡尔曼滤波算法确实是做预算算法。

使用特权

评论回复
12
pixhw| | 2017-1-26 20:07 | 只看该作者
这个可以用在姿态结算上。

使用特权

评论回复
13
wangdezhi| | 2017-1-26 22:43 | 只看该作者
hudi008 发表于 2017-1-18 22:56
卡尔曼滤波算法确实帮。

就是线性系统状态方程

使用特权

评论回复
14
wangdezhi| | 2017-1-26 22:44 | 只看该作者
pixhw 发表于 2017-1-26 20:07
卡卡尔曼滤波算法确实是做预算算法。

通过系统输入输出观测数据,对系统状态进行最优估计的算法。

使用特权

评论回复
15
uiint| | 2017-1-28 18:14 | 只看该作者
houjiakai 发表于 2017-1-17 22:21
这个网上有相关的卡尔曼滤波算法

可以通过matlab进行仿真设计

使用特权

评论回复
16
uiint| | 2017-1-28 18:15 | 只看该作者
houjiakai 发表于 2017-1-17 22:21
就是通过滤波算法进行计算的。

就是状态方程,通过积累误差造成的。

使用特权

评论回复
17
i1mcu| | 2017-1-29 22:44 | 只看该作者
卡尔曼滤波  利用线性系统状态方程,通过系统输入输出观测数据,对系统状态进行最优估计的算法。

使用特权

评论回复
18
i1mcu| | 2017-1-29 22:49 | 只看该作者
卡尔曼滤波是以最小均方误差为估计

使用特权

评论回复
19
tongbu2015| | 2017-1-30 17:40 | 只看该作者
这些知识介绍的很不错的,信号处理是非常复杂的

使用特权

评论回复
20
tongbu2015| | 2017-1-30 17:41 | 只看该作者
卡尔曼滤波的也是针对离散的数字信号进行处理的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

68

主题

160

帖子

3

粉丝