1.序幕
- 确定性的信号滤波可以直接用常用的滤波器就可以完成,如高通低通滤波器
- 而随机信号的滤波(也可以称为信号估计)需要采用一种特殊的滤波器,如维纳滤波器(WienerFiltering),卡尔曼滤波器(KalmanFiltering),可以想象这与常规的滤波器完成的工作仍是类似的
- 维纳滤波器处理的是平稳的随机信号,卡尔曼滤波器处理的是非平稳(或平稳)的随机信号
- 且前提是线性系统,而非线性的则需要改进的方法(暂不讨论)。
- 简单而言,卡尔曼滤波是在观测值与预测值之间取一个衡量,来作为一个最优的估计值
2.基础需求
如何缕清思路:当涉及到卡尔曼滤波的时候我们先想一下下面的问题
- 为什么用卡尔曼滤波,使用的前提是什么,它可以解决什么类型的问题?
- 卡尔曼滤波使用条件:1、线性系统; 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,k⋅sk+Γk⋅nk |
系统的测量方程 | z k = H k ⋅ s k + w k z_k=H_k·s_k+w_k zk=Hk⋅sk+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/k−1=Φk,k−1⋅s^k−1/k−1 |
②预测误差的方差 | P k / k |