Kalmanfliter

    • @[TOC](Kalmanfliter)
  • kalman详解
    • 贝叶斯准则(Bayes rule)
    • 全概率定理
    • 贝叶斯
    • 卡尔曼
    • matlab仿真

kalman详解



贝叶斯准则(Bayes rule)

全概率定理

两个随机变量 X 和 Y 的联合分布(joint distribution)如下:
p (x , y) = p (X = x , Y = y)(X=x,Y=y同时发生的概率)
如果 X和 Y 相互独立 (independent) , 有
p(x,y) =p(x)p(y)


假定已经知道 Y 的值是 y, 想知道基于以上事实条件 X 为 x 的概率。这样的概率表示为
p (x I y) = p (X = x I Y = y)
称为条件概率 (conditional probability)
如果p(y)>0 有p (x I y)=p(x , y) / p(y)
如果x y独立 则有p (x I y)=p( x )p( y ) / p(y)=p(x)
p(x) = LP(x I y)p(y) (离散情况)
p(x) = Jp(x I y)p(y)dy (连续情况)

贝叶斯

贝叶斯在通常的概率推测中起着主导作用。如果a是一个希望由b推测出来的数值,则概率p(a)被称为先验概率分布。b为数据,一般是传感器的测量值。P(a|b)称为a的后验分布,贝叶斯准则提供了一种由后验“逆概率”p(b|a)和先验概率p(a)来计算后验概率的方法。贝叶斯公式中的p(b)和a没有关系,通常可以测得,或者经常将写成归一化变量公式如下:

1.1置信度

置信度一般表示为bel()=p(|,)
上式中,x表示t时刻的x值或者一般表示机器人的状态,z表示t时刻的测量值,u是t时刻我们给机器人的控制,例如让它加速等等,因此置信度也就是在传感器测得z,并且执行u命令之后机器人实际状态是x的概率。

1.2贝叶斯滤波算法

贝叶斯滤波算法通常只有两步
第一步:

(最前面那个符号是积分,抱歉)
运用了全概率公式,算出的先验概率
第二步,用贝叶斯公式算出的后验概率:

式中归一化变量η用于将置信度进行归一化处理。

卡尔曼

X(k|k-1)=A X(k-1|k-1)+B U(k)
P(k|k-1)=A P(k-1|k-1) A’+Q
X(k|k)= X(k|k-1)+Kg(k) (Z(k)-H X(k|k-1))
Kg(k)= P(k|k-1) / (H P(k|k-1) + R)
P(k|k)=(I-Kg(k) H)P(k|k-1)

以上五个式子是卡尔曼算法的核心,x是置信度的均值,p为置信度的方差,u是控制量,z是传感器的数据,以上四个量都是向量

matlab仿真

创建200个均值为二十五的随机数
X(0|0)=1 ,P(0|0)=10。卡尔曼滤波和平滑滤波进行对比

clear
clc;
N=300;
CON = 25;
%%%%%%%%%%%%%%%kalman filter%%%%%%%%%%%%%%%%%%%%%%
x = zeros(1,N);
%randn(1,N)
y = 2^0.5 * randn(1,N)*0.5 + CON;%加过程噪声的状态输出
x(1) = 1;
p = 10;
cov(randn(1,N))
Q = cov(randn(1,N));%过程噪声协方差
R = cov(randn(1,N));%观测噪声协方差
for k = 2 : N
x(k) = x(k - 1);%预估计k时刻状态变量的值
p = p + Q;%对应于预估值的协方差
kg = p / (p + R);%kalman gain
x(k) = x(k) + kg * (y(k) - x(k));
p = (1 - kg) * p;
end
%%%%%%%%%%%Smoothness Filter%%%%%%%%%%%%%%%%%%%%%%%%
Filter_Wid = 10;
smooth_res = zeros(1,N);
for i = Filter_Wid + 1 : N
tempsum = 0;
for j = i - Filter_Wid : i - 1
tempsum = tempsum + y(j);
end
smooth_res(i) = tempsum / Filter_Wid;
end
% figure(1);
% hist(y);
t=1:N;
figure(1);
expValue = zeros(1,N);
for i = 1: N
expValue(i) = CON;
end
subplot(2,2,1),plot(t,expValue);
subplot(2,2,2),plot(t,x);
subplot(2,2,3),plot(t,y);
subplot(2,2,4),plot(t,smooth_res);
axis([0 N 20 30])

图一为理想值(25)
图二为卡尔曼输出的最优化结果
图三为高斯白噪音
图四为平滑滤波结果
侵删

卡尔曼(kalman)详解相关推荐

  1. 卡尔曼算法详解(C++程序)

    在学习卡尔曼滤波器之前,首先看看为什么叫"卡尔曼".跟其他著名的理论(例如傅立叶变换,泰勒级数等等)一样,卡尔曼也是一个人的名字,而跟他们不同的是,他是个现代人! 卡尔曼全名Rud ...

  2. 无迹卡尔曼滤波器详解

    文章目录 一. 非线性处理/测量模型 二.无损(迹)变换(Unscented Transformation) 2.1 一个高斯分布产生sigma point 2.2 sigma point的权重 2. ...

  3. 一. 卡尔曼滤波器开发实践之一: 五大公式详解

    既然标题名称是开发实践,本系列文章将主要介绍如何在工程实践中使用卡尔曼滤波器,至于卡尔曼滤波器的五大公式如何推导而来,网上有很多大拿们写的都很精彩,这里不再叙述.可以参考了下面两篇博文: 1. 卡尔曼 ...

  4. 多目标跟踪(MOT)中的卡尔曼滤波(Kalman filter)和匈牙利(Hungarian)算法详解

    多目标跟踪(MOT)中的卡尔曼滤波(Kalman filter)和匈牙利(Hungarian)算法详解 1. 概览 在开始具体讨论卡尔曼滤波和匈牙利算法之前,首先我们来看一下基于检测的目标跟踪算法的大 ...

  5. 四.卡尔曼滤波器(EKF)开发实践之四: ROS系统位姿估计包robot_pose_ekf详解

    本系列文章主要介绍如何在工程实践中使用卡尔曼滤波器,分七个小节介绍: 一.卡尔曼滤波器开发实践之一: 五大公式 二.卡尔曼滤波器开发实践之二:  一个简单的位置估计卡尔曼滤波器 三.卡尔曼滤波器(EK ...

  6. 学习OpenCV2——卡尔曼滤波(KalmanFilter)详解

    本文将简要回顾一下卡尔曼滤波理论,然后详细介绍如何在OpenCV中使用卡尔曼滤波进行跟踪,最后给两个程序实例. 1. 卡尔曼滤波理论回顾 对于一个动态系统,我们首先定义一组状态空间方程 状态方程:  ...

  7. OpenCV--卡尔曼滤波(KalmanFilter)详解【转载】

    本文将简要回顾一下卡尔曼滤波理论,然后详细介绍如何在OpenCV中使用卡尔曼滤波进行跟踪,最后给两个程序实例. 1. 卡尔曼滤波理论回顾 对于一个动态系统,我们首先定义一组状态空间方程 状态方程: 测 ...

  8. 超赞的卡尔曼滤波详解文章

    这么赞的文章,必须转一波,转载自详解卡尔曼滤波原理_engineerlixl的博客-CSDN博客_卡尔曼滤波原理详解卡尔曼滤波原理 在网上看了不少与卡尔曼滤波相关的博客.论文,要么是只谈理论.缺乏感性 ...

  9. 卡尔曼滤波工作原理详解

    卡尔曼滤波工作原理详解 网上看到有不少的博客翻译 How a Kalman filter works, in pictures, 这篇文章中非常有趣的解释了卡尔曼滤波,. 但是目前很多翻译的文章中公式 ...

最新文章

  1. selenium实例:unittest框架+PO开发模式
  2. Java锁详解:“独享锁/共享锁+公平锁/非公平锁+乐观锁/悲观锁+线程锁”
  3. react学习(15)-getTime selectedRowKeys是this.props取值的
  4. win7怎么清理java缓存文件夹_win7系统清理电脑缓存文件的方法
  5. 5.有2个数组,第一个数组内容为:[黑龙江省,浙江省,江西省,广东省,福建省], 第二个数组为:[哈尔滨,杭州,南昌,广州,福州], 将第一个数组元素作为key,第二个
  6. 车联网发展对汽车经销商的影响
  7. delphi连接mysql不用添加dsn_jsp中有没有像asp的非DSN连接数据库方法呢?(20分)
  8. git学习中遇到的疑难杂症
  9. 第一部分 1.2 定义OC的类和创建OC的对象
  10. 汉仪股份通过注册:年营收2.2亿 谢立群控制公司35%股权
  11. 解锁pdf文件,删除pdf密码
  12. oracle11 ssd 补丁,新装Oracle 11gR2 11.2.0.2重要说明——Patchset p10098816(附补丁下载地址).docx...
  13. 基于区块链技术的展望:搭建商业银行供应链管理和供应链金融服务平台
  14. 服务器系统怎么安全驱动精灵,服务器驱动精灵
  15. 菲律宾 软件测试,一个中国学生,2个月的菲律宾游学失败经历自白
  16. Web基础知识与常用技术
  17. 查看 Chrome 下载的文件的真实下载地址
  18. HBuilderx连接微信开发者工具
  19. Eclipse 提示内存不足
  20. 从智慧家庭到智慧社区,海尔为地产精装房智能化标准提供样本

热门文章

  1. php按住说话然后播放,小程序仿微信聊天按住说话功能
  2. SRRC/无线电发射设备型号核准全面解读
  3. php江湖源码,PHP源码包编译
  4. DNF剑皇全技能名+图标
  5. 从赛博朋克2077看未来互联网科技的发展
  6. 冯诺依曼为现代计算机的结构奠定了,冯·诺依曼为现代计算机的结构奠定了基础,他的主要设计思想是 。...
  7. 《纳瓦尔宝典》笔记二——停止出卖时间后,如何才能有收入
  8. CODE[VS]2996 Comrade 同志
  9. 51单片机点亮流水灯
  10. frame框架说明(概述)