首先,简要介绍下什么是卡尔曼滤波器:
60年代初,Kalman和Bucy最先提出基于状态空间的递推滤波算法,即卡尔曼滤波算法。卡尔曼滤波器是一种自回归滤波器,建立在信号和噪声的状态空间描述基础上,要求系统状态方程和量测方程都是线性方程,系统噪声和观测噪声均为高斯白噪声且不相关,在统计特性已知的条件下,是对动态系统未知状态进行线性最小方差无偏最优估计的一种递推算法。能够通过一系列不完全和包含噪声的测量值,估计出动态系统的状态。使用状态空间法在时域内设计滤波器,适用于多维随机过程的估计;且具有连续型和离散型两类算法,其中离散型算法很容易实现数字化。算法只需利用当前时刻的测量值和前一时刻的估计值,即可由模型递推出当前时刻状态的估计值。该算法将状态变量引入滤波理论,能够解决时变、多变量、非平稳时间序列的滤波问题;由于这是一种可递推算法,容易在计算机上实现;无需存储历史测量值,计算量和存储量相对较小,便于实时在线处理,这些特点都弥补了wiener滤波的不足,随着计算机技术和计算技术的快速发展,卡尔曼滤波器逐渐得到了广泛的研究和应用。
基于卡尔曼滤波器的方法要求系统模型已知,当模型比较精确的时候,通过比较滤波器的输出与实际输出的残差,实际调整滤波器的参数,通过对系统状态估计误差协方差的极小化,得到递推估计的一组方程,由于它同时得到系统的预报方程,因此在预报领域也得到大量的应用。
下面介绍离散型卡尔曼滤波器的原理。考虑如图所示的线性、离散、定常的系统:
系统状态方程为:
系统的测量方程为:
其中 表示系统状态向量,
是测量输出,
是系统干扰,
是测量噪声,t表示离散时刻下标。
和
是不相关的均值为0的高斯随机向量,协方差分别为 Q≥0,R>0,A为转移矩阵,C为观测矩阵。其中A、B、C、Q、R保持不变。K是卡尔曼增益矩阵。假设下列初始条件成立: