一直以来用过很多次KALMAN滤波,没有进行系统的总结,本次笔记将对此进行从原理到推导到代码实现及应用进行总结和分析,阐述一些个人使用的观点。首先,了解该滤波的原理及使用场景和应用范畴,然后,说明使用此滤波要达到的目的,之后,代码中如何加入该滤波模块及其调节增益,最后分析其带来的优缺点。
原理:KALMAN滤波器是一种线性的离散时间的有限维系统。卡尔曼滤波器由一系列递归数学公式描述。它们提供了一种高效可
计算的方法来估计过程的状态,并使估计均方误差最小。卡尔曼滤波器应用广泛且功能强大:它可以估计信号的过去和当前状态,甚至能估计将来的状态,即使并不知道模型的确切性质。卡尔曼滤波是以最小均方误差为估计的最佳准则,来寻求一套递推估计的算法,其基本思想是:采用信号与噪声的状态空间模型,利用前一时刻地估计值和现时刻的观测值来更新对状态变量的估计,求出现时刻的估计值。
描述状态向量的过程方程,引入一个离散控制过程的系统。可用一个线性随机微分方程来描述:X(k)=A X(k-1)+B U(k)+W(k);
式中,向量X(k-1)表示系统在离散时间k-1的状态向量,它是不可观测的;矩阵A成为状态转移矩阵,描述动态系统在时间k-1的状态到k的状态之间的转移,应为已知。而向量B代表可选的控制输入的增益。W即为状态转移中间的噪声或误差即过程激励噪声。
描述观测向量的观测方程:Z(k)=H X(k)+V(k),H为观测矩阵,描述状态经过作用,变成可预测的;应为已知。
一般情况下,在理论推导和原理说明时,假设噪声均为零均值的正态分布的白噪