The Kalman Filter

转载:

https://blog.csdn.net/phker/article/details/48468591

https://blog.csdn.net/u012554092/article/details/78290223

How a Kalman filter works, in pictures 必看!公式全齐了

https://www.bzarg.com/p/how-a-kalman-filter-works-in-pictures/ 

https://www.cnblogs.com/zsychanpin/p/7136015.html

算法的核心思想是,根据当前的仪器"测量值" 和上一刻的 "预测量" 和 "误差",计算得到当前的最优量.   再 预测下一刻的量, 

里面比较突出的是观点是. 把误差纳入计算, 而且分为预测误差和测量误差两种.通称为 噪声.

 还有一个非常大的特点是,误差独立存在, 始终不受测量数据的影响.

上面的ppt有助于入门理解.

但是在编程的时候你会发现,解释里面的数值23 没有很明确的指出,是指的那个时刻的23 是预测的23 还是上一课测量的23

下面这段文字会有助于你更清晰的理解

 

卡尔曼滤波是统计学的程序表达.

要想深入理解,公式三 协方差的背后意义 需要学习统计学. 

如果仅仅是使用的话,这5个公式套进程序里面还是很容易的.

看到这里如果你明白了原理, 你再回过头看看,会发现.误差是独立存在的. 误差不受数据的影响. 误差按照统计学的协方差公式更新, 跟数据无关. 而且误差是不断变化的.  

 

Kalman的数学原理

首先,我们先要引入一个离散控制过程的系统。该系统可用一个线性随机微分方程(Linear Stochastic Difference equation)来描述:

上两式子中,x(k)是k时刻的系统状态,u(k)是k时刻对系统的控制量。A和B是系统参数,对于多模型系统,他们为矩阵。y(k)是k时刻的测量值,H是测量系统的参数,对于多测量系统,H为矩阵。q(k)和r(k)分别表示过程和测量的噪声。他们被假设成高斯白噪声(White Gaussian Noise),他们的covariance分别是Q,R(这里我们假设他们不随系统状态变化而变化)。

对于满足上面的条件(线性随机微分系统,过程和测量都是高斯白噪声),卡尔曼滤波器是最优的信息处理器。下图给出KF算法的流程和五个核心更新方程如下:

五个更新方程为:

--------------------- 
作者:Kuekua-seu 
来源:CSDN 
原文:https://blog.csdn.net/u012554092/article/details/78290223 
版权声明:本文为博主原创文章,转载请附上博文链接!

 

原文链接 https://www.cnblogs.com/zsychanpin/p/7136015.html

这个样例模拟质点进行匀速直线运动(速度为1),然后引入一个非常大的噪声。再用卡尔曼滤波来对质点的运动状态进行轨迹。注意是匀速直线运动。所以当中不含有控制变量。

Z=(1:100); %观測值  
noise=randn(1,100); %方差为1的高斯噪声  
Z=Z+noise;  
  
X=[0; 0]; %状态  
Sigma = [1 0; 0 1]; %状态协方差矩阵  
F=[1 1; 0 1]; %状态转移矩阵  
Q=[0.0001, 0; 0 0.0001]; %状态转移协方差矩阵  
H=[1 0]; %观測矩阵  
R=1; %观測噪声方差  
  
figure;  
hold on;  
  
for i=1:100  
  
  X_ = F*X;  
  Sigma_ = F*Sigma*F'+Q;  
  K = Sigma_*H'/(H*Sigma_*H'+R);  
  X = X_+K*(Z(i)-H*X_);  
  Sigma = (eye(2)-K*H)*Sigma_;  
    
  plot(X(1), X(2), '.','MarkerSize',10); %画点,横轴表示位置。纵轴表示速度  
end

plot([0,100],[1,1],'r-'); 

 

下图给出了上述代码的执行结果。

 

可见经过最開始的几次迭代后。质点运动的状态预计就回到了正确轨迹上,并且预计的结果基本环绕在真实值附近,效果还是非常理想的。
 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值