贝叶斯滤波需要无穷积分,大多数情况下无解析解,解决这个问题有两种方式:(一)、做假设,对贝叶斯滤波中的状态方程和观测方程都是线性的,Q和R是正态分布,得到卡尔曼滤波(KF);或者对Q和R是正态分布,得到非线性的卡尔曼滤波(EKF、UKF)
(二)、直接对无穷积分做数值积分:(1)高斯积分(2)蒙特卡洛积分(pf)(3)直方图滤波
一维卡尔曼滤波:在贝叶斯滤波三个公式的基础上,卡尔曼滤波就是将Q和R的pdf(概率密度公式)代入,代入过程可以用Mathematics数学软件计算,就不需要看卷积、傅里叶变换等计算过程,卡尔曼滤波一共有5个公式,由于正态分布的很好的性质(只需要关注期望和方差,对正态分布卷积、相乘仍然是卡尔曼滤波)使得卡尔曼滤波的公式也很简单,但是对于非线性系统卡尔曼滤波就不合适
参考https://blog.csdn.net/bufengzj/article/details/89205966
https://blog.csdn.net/bufengzj/article/details/89205966
https://link.csdn.net/?target=http%3A%2F%2Fbilgin.esme.org%2FBitsAndBytes%2FKalmanFilterforDummies
https://blog.csdn.net/heyijia0327/article/details/17487467
矩阵形式的卡尔曼滤波,可以进行类推,先了解协方差矩阵的意义,注意:
均方误差:它是"误差"的平方的期望值(误差就是每个估计值与真实值的差),也就是多个样本的时候,均方误差等于每个样本的误差平方再乘以该样本出现的概率的和。
方差:方差是描述随机变量的离散程度,是变量离期望值的距离。
注意两者概念上稍有差别,当你的样本期望值就是真实值时,两者又完全相同。最小均方误差估计就是指估计参数时要使得估计出来的模型和真实值之间的误差平方期望值最小。
两个实变量之间的协方差:
协方差矩阵只不过就是元素多了组成了矩阵,其中协方差矩阵的对角线就是方差。写出状态方程,推导出协方差矩阵,求这个协方差矩阵,就是为了利用他的对角线元素的和计算得到均方差.
多元高斯分布:就是高斯分布的低维向高维的扩展
一、核心思想(由贝叶斯发展而来)
卡尔曼滤波就是把统计学应用到了滤波算法上,主要包括预测、更新两步。
核心思想:根据当前的仪器"测量值" 和上一刻的 "预测量" 和 "误差",计算得到当前的最优量,也就是说理论预测(先验)有了,测量值(后验)也有了,那怎么根据这两者得到最优的估计值呢?首先想到的就是加权,或者称之为反馈。。 再预测下一刻的量, 把误差纳入计算, 误差分为预测误差(本身存在的噪声)和测量误差(观测过程的误差)两种,通称为噪声,并且误差独立存在, 始终不受测量数据的影响。
二、实例
可以翻看《概率机器人》
上面的ppt有助于入门理解.
但是在编程的时候你会发现,解释里面的数值23 没有很明确的指出,是指的那个时刻的23 是预测的23 还是上一时刻测量的23
下面这段文字会有助于你更清晰的理解
另有MATLAB代码讲解见https://blog.csdn.net/heyijia0327/article/details/17667341