漫谈卡尔曼滤波及MATLAB实现

1.序幕

  • 确定性的信号滤波可以直接用常用的滤波器就可以完成,如高通低通滤波器
  • 而随机信号的滤波(也可以称为信号估计)需要采用一种特殊的滤波器,如维纳滤波器(WienerFiltering)卡尔曼滤波器(KalmanFiltering),可以想象这与常规的滤波器完成的工作仍是类似的
  • 维纳滤波器处理的是平稳的随机信号,卡尔曼滤波器处理的是非平稳(或平稳)的随机信号
  • 且前提是线性系统,而非线性的则需要改进的方法(暂不讨论)。
  • 简单而言,卡尔曼滤波是在观测值与预测值之间取一个衡量,来作为一个最优的估计值

2.基础需求

如何缕清思路:当涉及到卡尔曼滤波的时候我们先想一下下面的问题

  1. 为什么用卡尔曼滤波,使用的前提是什么,它可以解决什么类型的问题?
    1. 卡尔曼滤波使用条件:1、线性系统; 2、系统中噪声(不确定性)服从高斯分布
    2. 卡尔曼滤波解决的问题:有不确定因素的动态系统,有根据的预测状态
  2. 怎么使用卡尔曼滤波器?

如果仅需要使用滤波器,那么知道下面的公式便足够了,讲实际问题缕清关系,明确输入输出,转换为程序就可以处理信号了(具体问题如何建模可以参考第四部分的实例)

part 1.系统状态和测量方程

方程类型 方程
系统的状态方程 s k + 1 = Φ k + 1 , k ⋅ s k + Γ k ⋅ n k {s}_{k+1}=\Phi_{k+1,k}·{s}_{k}+\Gamma_k·n_k sk+1=Φk+1,ksk+Γknk
系统的测量方程 z k = H k ⋅ s k + w k z_k=H_k·s_k+w_k zk=Hksk+wk

s k + 1 {s}_{k+1} sk+1--------状态矢量
Φ k + 1 , k \Phi_{k+1,k} Φk+1,k--------状态转移矩阵
Γ k \Gamma_k Γk--------扰动矩阵
n k n_k nk--------扰动矢量
z k z_k zk--------观测矢量
H k H_k Hk--------测量矩阵
w k w_k wk--------测量噪声矢量

part 2.参数计算
P 0 = 0 P_0=0 P0=0可视为约定初值
E ( n k n l T ) = Q k δ k l E(n_kn_l^T)=Q_k\delta_{kl} E(nknlT)=Qkδkl
E ( w k w l T ) = R k δ k l E(w_kw_l^T)=R_k\delta_{kl} E(wkwlT)=Rkδkl

part 3.卡尔曼滤波过程

步骤 公式
①一步预测 s ^ k / k − 1 = Φ k , k − 1 ⋅ s ^ k − 1 / k − 1 \hat{s}_{k/k-1}=\Phi_{k,k-1}·\hat{s}_{k-1/k-1} s^k/k1=Φk,k1s^k1/k1
②预测误差的方差 P k / k
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值