oldnewbird的个人博客分享 http://blog.sciencenet.cn/u/oldnewbird

博文

粒子滤波中重采样到底靠不靠谱?

已有 4600 次阅读 2019-10-25 15:55 |个人分类:粒子滤波|系统分类:科研笔记| 重采样

在粒子滤波中,重采样方法往往是不可或缺的一种有效预防粒子退化的step。

但重采样往往又会增加滤波的噪声。那么重采样引起的误差到底有多大呢?

这里对整个滤波过程不进行重复仿真,重点关注重采样方法引起的误差。

由于粒子滤波中最后一步进行状态估计的时候往往是对粒子及其权重进行加权求和所得,因此这里给出一个简单的仿真。

粒子:我们以gamma(2,3)分布进行采样得到1000个随机点。

1.png

权重:再以normrnd(1,1)分布采样得到1000个随机点,对这里的1000个随机点

    1. 先取绝对值;2. 进行归一化。得到与1000个粒子一一对应的权重

2.png

状态估计(模拟):利用这些粒子及其权重可以得到其状态估计

3.png

利用系统重采样依据权重对这1000个粒子进行重采样,得到重采样后的粒子

4.png

对重采样后的粒子进行状态估计

5.png

对这一过程执行100次得到如下图

6.png

总结:

首先,根据采样得到的粒子计算所得的状态估计结果并非是真正的后验概率的均值。但从统计意义上说随着粒子数的增加,根据采样得到的粒子计算所得的状态估计结果是逼近于后验概率均值的。与此同时,从统计意义上说,系统重采样所得的粒子的分布与原分布也是随着粒子数量的增加一直都在逼近的。但是粒子数量毕竟有限。当我们利用粒子滤波对动态系统的状态进行估计时,实际上上就已经只是在逼近后验分布了,而增加重采样步骤后,实际上是又进行了一次逼近。因此会出现重采样的二次误差。从上图中可以看出重采样以后的粒子所估计出来的状态总是与原有的粒子估计所得的状态存在一些偏差。这大概就是由于重采样引起的误差吧。



https://blog.sciencenet.cn/blog-3421825-1203409.html

上一篇:Matlab 生成随机数大全
下一篇:Matlab save的不同用法
收藏 IP: 219.239.227.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-24 18:56

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部