1.滤波
1.1.什么是滤波
这里的卡尔曼滤波实际上和信号处理里面的滤波有很大的不同。
信号处理里面的滤波,假设一个正弦信号有很多毛刺,想要对其进行滤波滤除毛刺。信号处理里面的做法是把信号进行FFT变换到频域,然后用一个低通滤波器滤掉高频信号,然后再用IFFT变换到时域,就完成了滤波过程。如下图所示:
而状态估计中的滤波,更属于是一种状态的融合,使用卡尔曼滤波。
1.2.卡尔曼滤波的例子
一个例子:现在一个人玩荒野求生需要确定自己的位置,他手上有一个GPS传感器,定位的可信度是±2m,但是这个GPS的信号发送频率比较低。同时这个人每次走一步可以自己估计出自己这一步走了多远,并且估计的可信度是±0.1m。
假设这个人从开始走了四步,每一步估计自己走了多远的可信度是0.1m,注意这是每一步的,那么他走了四步之后估计出的自己的最终位置的置信度肯定是要比0.1m高的,因为误差在这个过程中是会传递的。假设最终对位置的这个估计是
x
a
x_a
xa(状态转移),置信度是0.8m(实际计算需要严格的推导,这里只是距离)。此时来了一个GPS信号定位的位置是
x
b
x_b
xb(观测),置信度是2m,那么这个时候就需要使用卡尔曼滤波融合这两个结果,比如最后得到的结果是
x
c
x_c
xc,并且融合的结果的置信度一定比之前两个的置信度都要高,假设是0.6m。整个过程如下图所示:
1.3.卡尔曼滤波方程
1.3.1.使用条件
注意普通的卡尔曼滤波的使用条件是系统是线性的,并且状态方程和观测方程的噪声都服从高斯分布。
1.3.2.五大方程
1.4.非线性的EKF
扩展卡尔曼滤波EKF本质上还是KF,他是在工作点附近对状态方程和观测方程都进行了线性化,从而得到线性KF中的A和H。
但是这样存在的一个问题是我们求的偏导都是在预测的
x
k
x_k
xk处的结果,并非最后真正的
x
k
x_k
xk,所以如果预测的结果和真值差的比较远的话,那么线性化不成立,这样EKF的效果自然也就不好了。
2.优化
优化的思想和滤波不同之处在于,滤波只是在上一个状态的基础上考虑当前状态的最佳估计,而不考虑之前的其他状态。但是优化是考虑当前状态和之间的所有状态,以及之前的所有观测,同时优化所有的状态让总的误差最小,也就是寻找在所有观测下的所有状态最大后验估计。
使用贝叶斯公式可以知道,优化的求的最大后验估计其实可以转化为求最大似然估计。原来的最大后验估计问题的描述是找到
x
i
x_i
xi使得
P
(
x
i
∣
z
i
)
P(x_i|z_i)
P(xi∣zi)最大,而转成最大似然估计后问题的描述变成找到一个
x
i
x_i
xi使得最可能产生当前的观测值
z
i
z_i
zi。比如在高中物理测电阻的实验中,得到一组数据
(
I
i
,
U
i
)
(I_i, U_i)
(Ii,Ui),据此拟合一条直线得到电阻
R
R
R。实际上这个过程就是一个最大似然估计,就是寻找一个电阻
R
R
R,使得物理系统的电阻阻值为
R
R
R时最可能产生得到的这些数据
(
I
i
,
U
i
)
(I_i, U_i)
(Ii,Ui)。
PS:在这里我好像还是没有特别理解最大似然和最大后验的区别,如果按照上面的说法,对电阻测量的这个实验来说,最大似然估计很好解释的通,那么最大后验估计使得后验概率最大是什么意思?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)