卡尔曼滤波器的实用方法及其实现方法

前言

卡尔曼滤波器对于不熟悉的人来说就是一种算法,它使用随时间观察的一系列观量值,,加速度计和陀螺仪在测量值是就会包含测量误差的噪声.卡尔曼滤波器将尝试根据当前和以前的状态来估计系统的状态,这往往比测量更加的精准.问题在于机器人来回的移动,加速度计在用于测量重力加速度时通常噪声会很大.陀螺仪则会随着时间的推移而漂移.

工作原理

卡尔曼滤波器的工作原理根据测量值生成系统统计的最优估计值.为此,它需要知道滤波器输入的噪声(测量噪声)以及系统本身的噪声(过程噪声).为此,噪声必须是高斯分布的,并且平均值是0,巧的是大部分都是这样.

系统状态$X_{k}$

当矩阵是常数并且不依赖于当前时间时,你不必在它们后面写k.因此,例F_k可以简化为F 。
我对符号的进行一个简短解释:
1,首先,我记录所谓的previous state(之前状态):
                                                                                        \boldsymbol{\hat{x}}_{k-1 | k-1}
这是先前状态和之前状态的估计值得出的先前估计状态.

2,先验状态:                                        
                                                                                         \boldsymbol{\hat{x}}_{k | k-1}
先验是指基于系统前一状态和之前状态的估计值,对当前时间K的状态矩阵的估计值.

3,后验状态:
                                                                                          \boldsymbol{\hat{x}}_{k | k}
后验是指基于定截至时间并包括k的观测值在时间K的状态的估计值.

问题是系统状态本身是隐藏的,只能通过观察z_k来观察.这也称作为隐马尔可夫模型(HMM).(隐马尔可夫模型:简单来说就是Y这个结果值你能观察到,但是里面的观测值你无法直接观察.HMM有一个额外的要求就是Y在{\displaystyle t=t_{0}}必须完全受X在{\displaystyle t=t_{0}},以及X和Y在{\displaystyle t<t_{0}}时必须完全独立于Y在{\displaystyle t=t_{0}}鉴于X在{\displaystyle t=t_{0}}.可以使用最大似然法,估计HMM中的参数,对于线性链HMM,可以使用Baum-Welch算法(它是一个期望最大化算法的特例)

Baum-Welch算法的示例:

假设我们有一只鸡,我们每天中午都会从中收集鸡蛋。现在鸡是否下蛋收集取决于一些隐藏的未知因素。然而,我们可以(为简单起见)假设鸡总是处于影响鸡是否下蛋的两种状态之一,并且这种状态仅取决于前一天的状态。现在我们不知道初始起点的状态,我们不知道两种状态之间的转换概率,我们不知道鸡在给定特定状态下蛋的概率。首先,我们首先猜测过渡矩阵和排放(发射)矩阵。

 

然后,我们进行一组观察(E = 鸡蛋,N = 无鸡蛋):N、N、N、N、N、E、E、N、N、N

这为我们提供了一组观察到的日期之间的转换:NN、NN、NN、NN、NE、EE、EN、NN、NN

下一步是估计新的转换矩阵。例如,序列 NN 的概率和状态为$S_{1}$⁠然后$S_{2}$⁠由以下给出,P(S1)⋅P(N|S1)⋅P(S1→S2)⋅P(N|S2).


因此,对⁠S1⁠S2现在是 {\displaystyle {\frac {0.22}{2.4234}}=0.0908}(在下表中称为“伪概率”)。然后,我们计算⁠S1,⁠S2⁠S⁠S1⁠S1transition probabilities 并标准化,以便它们加到 1。这为我们提供了更新的过渡矩阵:

接下来,我们要估计一个新的发射矩阵:

排出(发射)矩阵的新估计来自⁠S现在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值