阅读 83

粒子滤波算法及其应用,粒子滤波预测

前言

几年前写博客的时候,编辑公式都是在在线网站上编辑的。 这个网站不稳定,有时看不到贴上的公式。 如有必要,请单击pdf版本的下载位置以打开链接。 给您带来不便,非常抱歉。 祝你好运。

在博主自主学习粒子滤波的过程中,阅读了很多文献和博客,不知道是阅读文献时疏忽了,还是理解能力太低了。 看那么多公式,就无法把握粒子滤波的想法,无法将理论和实践对应起来。 例如,在理论推导过程中那么多概率公式,概率是如何对应系统的状态变量的? 状态粒子是如何一步步采样的,为什么在程序中直接用状态方程计算? 粒子的权重怎么来? 理解了一段时间,终于整理了那个上下文。 同时,我认为理论的推导应该有数,才能知道在什么地方可以使用这个算法,以及这个算法有什么不足。 因此,本文结合实际程序给出了粒子滤波的详细推导,并在推导过程中加入博主自身的理解。 如果有不方便的话,请指出来。 谢谢你。

文章架构:

从基本贝叶斯估计入手,引出蒙特卡罗采样、重要性采样、SIS粒子滤波、重采样、粒子滤波、通用粒子滤波、SIR粒子滤波。 这些概念的引入是为了解决前面概念中出现的问题而进行循环的。 最后给出了一些在matlab和python中的应用。 例行程序包括图像跟踪、滤波和机器人定位。

进一步往下看之前,看一下《卡尔曼滤波:从推导到应用》,也可以了解用这种状态方程式过滤的想法。

一、贝叶斯滤波

假设有一个系统。 已知其状态方程式和测量方程式如下。

例如(1) )。

例如(2) )。

其中,x为系统状态,y为已测量数据,f、h为状态转移函数和测量函数,v、n为过程噪声和测量噪声,噪声均独立同分布。 上面的对应示例将显示在程序中。

从贝叶斯理论的角度,状态估计问题(目标跟踪,信号滤波器),是基于之前的一系列现有数据)后验知识)递归计算当前状态的置信度。 该可靠性是概率公式,需要通过预测和更新这两个步骤进行递归计算。

预测过程使用系统模型(状态方程式1 )来预测状态的先验概率密度,也就是说,根据现有的先验知识来推测未来的状态,p(x(k )|x(k-1 ) )。 在更新过程中,使用最新的测量值修正先验概率密度,得到后验概率密度,也就是修正以前的推测。

处理这些问题时,通常假定系统的状态转移遵循一阶马尔可夫模型,即当前时间点的状态x[k]仅与先前时间点的状态x(k-1 )相关。 这是一个自然的假设,就像小时候下国际象棋一样,下一时刻飞机飞行的位置只由当前时刻的位置和骰子决定。 另一方面,假设在k时刻测量的数据y(k )只与当前状态x ) k )相关,如上述状态式2所示。

要进行递归,请假设您知道k-1时间的概率密度函数

预测:根据上一个时刻的概率密度得出。 这个公式的意思是,既然有前一个1:k-1时刻的测量数据,就可以预测下一个状态x(k )出现的概率。

计算结果如下。

等式的第一行到第二行纯粹是贝叶斯公式的应用。 由于使用一阶马尔可夫过程的假设,可获得第二行到第三行,其中状态x(k )仅由x ) k-1 )确定。

楼主看到这里的时候,想到了两个问题:

第一,因为x(k )都只由x ) k-1 )决定,也就是说,在这里制作一个是什么意思?

这两个概率公式的含义不同。 第一个纯粹基于模型进行预测,x(k )实际上由x ) k-1决定,第二个既然测量的数据和状态有关,现在已经有很多测量数据y,我可以根据现有的经验来预测你只是推测x ) k,不能决定x ) k。

第二,上面公式的最后一行假设是已知的,怎么弄?

其实是由系统的状态方程决定的,其概率分布形状与系统的过程噪声形状一模一样。 怎么理解? 观察状态方程式(1)式可知,x(k )=constant(x(k-1 ) ) v ) k-1 )也就是x ) k-1 )计算出的常数上叠加了噪声。 请看下图:

如果没有噪声,x(k )完全根据x ) k-1 )计算,概率分布的概念也消失了。 因为产生了噪声,所以x ) k )不太确定。 他的分布就像图的阴影部分,实际上形状和噪声一样,但是进行了一些平移。 了解这一点有助于在粒子过滤器程序中计算状态x(k )的采样。 x ) k )采样时,直接对过程噪声进行采样,并叠加f(x ) k-1 )这个常数即可。

更新:通过获得后验概率。 这个事后概率才是真正有用的,前一步还只是预测。 这里增加了k时刻的测量。 修改上面的预测是过滤。 这里的事后

概率也将是代入到下次的预测,形成递推。


     推导:

     

                              

其中归一化常数:

      

等式第一行到第二行是因为测量方程知道, y(k)只与x(k)有关,也称之为似然函数,由量测方程决定。也和上面的推理一样,, x(k)部分是常数,也是只和量测噪声n(k)的概率分布有关,注意这个也将为SIR粒子滤波里权重的采样提供编程依据。


       贝叶斯滤波到这里就告一段落了。但是,请注意上面的推导过程中需要用到积分,这对于一般的非线性,非高斯系统,很难得到后验概率的解析解。为了解决这个问题,就得引进蒙特卡洛采样。关于它的具体推导请见 下一篇博文。



(转载请注明作者和出处:http://blog.csdn.net/heyijia0327 未经允许请勿用于商业用途)


reference:

1.M. Sanjeev Arulampalam 《A Tutorial on Particle Filters for Online Nonlinear/Non-Gaussian Bayesian Tracking》

2.ZHE CHEN 《Bayesian Filtering: From Kalman Filters to Particle Filters, and Beyond》

3.Sebastian THRUN 《Probabilistic Robotics》

3.百度文库 《粒子滤波理论》


文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐