python起步之粒子滤波(二)

一、粒子滤波介绍

粒子滤波法是指通过寻找一组在状态空间传播的随机样本对概率密度函数进行近似,以样本均值代替积分运算,从而获得状态最小方差分布的过程。

二、算法实现

python版本,一个简明的粒子滤波实例[3]

# -*- coding=utf-8 -*-

# 直接运行代码可以看到跟踪效果
# 红色的小点代表粒子位置
# 蓝色的大点表示跟踪的结果
# 白色的方框表示要跟踪的目标
# 看懂下面两个函数即可

from numpy import *
from numpy.random import *
# 说实话,不太赞同这种 import 方法
# 第一是可能导致名字冲突,第二,很多函数方法都不知道是哪个模块里


def resample(weights):
    n = len(weights)
    indices = []
    # 求出离散累积密度函数(CDF)
    C = [0.] + [sum(weights[:i+1]) for i in range(n)] 
    # 选定一个随机初始点
    u0, j = random(), 0
    for u in [(u0+i)/n for i in range(n)]: # u 线性增长到 1
        while u > C[j]: # 碰到小粒子,跳过
            j+=1
  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值