问题1:
这个matlab代码让我觉得有一点不对的就是观测值的数据我觉得不能按照他这种算法算,不然观测值会越来越大越来越离谱
答1:可以这样子算,因此我们在计算X(t)的值时,采用的是X(t-1)是一个实际的值实际值产生的时候会伴随着过程噪声,也就是方差Q代表的噪声。X(:,t) = A*X(:,t-1) + B*u + sqrtm(Q)*randn(4,1);之后测量值就是实际值经过矩阵转换,再加上观测噪声的值
问题2:为什么在计算观测值的时候会有一个过程噪声,但是在卡尔曼公式中的预测状态值时,并没有这个噪声
答2:这是因为在卡尔曼公式中求出来的预测状态值是统计意义上的平均值,而过程噪声在卡尔曼滤波中被假设为零均值的高斯白噪声,而在实际中状态值必然是一个确定性的数值
学习过程:1.最简单的理解,也是最深入的理解:
如何通俗并尽可能详细地解释卡尔曼滤波? - Kent Zeng的回答 - 知乎
2.更细致一点的理解:如何通俗并尽可能详细地解释卡尔曼滤波? - 米开朗基罗赵的回答 - 知乎
上面两个理解的比较透彻了,就需要来一点点例子,帮助写程序和更深层次的理解:
- 先看这篇文章会告诉你,你的状态转移矩阵,控制增益矩阵是怎么回事:
卡尔曼滤波的理解以及参数调整_张京林要加油的技术专栏-CSDN博客_卡尔曼滤波参数
- 这篇文章说明了一个例子,可能会比较细节:kalman滤波器在GPS导航定位中的应用_shengzimao的博客-CSDN博客_卡尔曼滤波在导航中的应用
- 下面这篇文章举例较多(包含上面例子2中的例子):https://blog.csdn.net/zhangquan2015/article/details/79264540