卡尔曼滤波简介
posted: 2006-5-30 10

34
最佳线性滤波理论起源于40年代美国科学家wiener和前苏联科学家Kолмогоров等人的研究工作,后人统称为维纳滤波理论。从理论上说,维纳滤波的最大缺点是必须用到无限过去的数据,不适用于实时处理。为了克服这一缺点,60年代kalman把状态空间模型引入滤波理论,并导出了一套递推估计算法,后人称之为卡尔曼滤波理论。卡尔曼滤波是以最小均方误差为估计的最佳准则,来寻求一套递推估计的算法,其基本思想是:采用信号与噪声的状态空间模型,利用前一时刻地估计值和现时刻的观测值来更新对状态变量的估计,求出现时刻的估计值。它适合于实时处理和计算机运算。
现设线性时变系统的离散状态防城和观测方程为:
x(k) = f(k,k-1)·x(k-1)+t(k,k-1)·u(k-1)
y(k) = h(k)·x(k)+n(k)
其中
x(k)和y(k)分别是k时刻的状态矢量和观测矢量
f(k,k-1)为状态转移矩阵
u(k)为k时刻动态噪声
t(k,k-1)为系统控制矩阵
h(k)为k时刻观测矩阵
n(k)为k时刻观测噪声
则卡尔曼滤波的算法流程为:
预估计x(k)^= f(k,k-1)·x(k-1)
计算预估计协方差矩阵
c(k)^=f(k,k-1)×c(k)×f(k,k-1)'+t(k,k-1)×q(k)×t(k,k-1)'
q(k) = u(k)×u(k)'
计算卡尔曼增益矩阵
k(k) = c(k)^×h(k)'×[h(k)×c(k)^×h(k)'+r(k)]^(-1)
r(k) = n(k)×n(k)'
更新估计
x(k)~=x(k)^+k(k)×[y(k)-h(k)×x(k)^]
计算更新后估计协防差矩阵
c(k)~ = [i-k(k)×h(k)]×c(k)^×[i-k(k)×h(k)]'+k(k)×r(k)×k(k)'
x(k+1) = x(k)~
c(k+1) = c(k)~
重复以上步骤