Kalman滤波器

卡尔曼(kalman)滤波器是一种线性滤波器,主要涉及到5个公式,包括预测部分(Predict)和更新部分(Update)。卡尔曼滤波器中加入了不确定性的估计和更新,使得其比较适合实际应用。由于项目需要对采集的时间序列数据进行处理,尝试使用卡尔曼滤波器进行数据的滤波和预测等操作。具体的卡尔曼滤波的原理和基础知识可以参考卡尔曼滤波(Kalman Filter)(1)

卡尔曼滤波中噪声的引入使用了协方差矩阵,协方差矩阵定义为:若n维随机变量 (x1,x2,...,xn) 的二阶混合中心矩
σij=cov(xi,xj)=E[(xiE(xi))(xjE(xj))]
都存在,则

Σ=a11a21an1a12a22an2a1na2nann

称为n维随机变量的协方差矩阵。协方差矩阵是对称矩阵,对角线元素是各个维度的方差。如下是两个协方差矩阵的性质:
cov(AX+a)=Acov(X)AT
cov(AX+a,BTY+b)=Acov(X,Y)B

接下来就是卡尔曼滤波的公式了
预测:
(1) xt^=Ftxt1^+Btut
说明:
Ft :状态转移矩阵
Bt :控制矩阵
xt1^ :估计值(非真值)
xt^ :根据上一次的状态推测得到的状态

(2) Σt=FΣt1FT+Q
说明:
Σt :每一时刻的不确定性(协方差矩阵),噪声服从 NoiseGaussian(0,σ)
Q :预测模型本身的噪声(协方差矩阵)

更新:
(3) Kt=ΣtHT(HΣtHT+R)1
说明:
Kt :卡尔曼系数,也叫滤波增益矩阵
H :观测矩阵
R:观测中的不确定性(协方差矩阵)

(4) xt^=xt^+Kt(ytHxt^)
说明:
此公式是状态修正公式
其中 ytHxt^ 表示实际观测值与预估值之间的残差

(5) Σt=(IKtH)Σt
说明:
此公式表明噪声分布的更新

上述5个公式即完成了数据的预测及更新过程。
项目中需要处理的数据是三维空间点数据,所以观测值维数为3,状态维数为6,即三维的位置及每一维的速度,所以状态转移矩阵可以表示为:

F=100000010000001000100100010010001001

控制矩阵设为0,观测矩阵设置为
H=100010001000000000

Q R简单的设置为对角线元素都相等。三维空间点滤波效果如下:
kalman滤波效果
很像之前采用滑动平滑的效果。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值