粒子滤波matlab示例,[转载]粒子滤波Matlab示例
粒子滤波算法源于蒙特卡洛思想,即以某事件出现的频率来指代该事件的概率。在粒子滤波过程中,X(t)实际上是通过对大量粒子的状态进行处理得到的。
粒子滤波的5个步骤:
1)初始状态:用大量粒子模拟X(t),粒子在空间内均匀分布;
2)预测阶段:根据状态转移方程,每一个粒子得到一个预测粒子;
3)校正阶段:对预测粒子进行评价,越接近于真实状态的粒子,其权重越大;
4)重采样:根据粒子权重对粒子进行筛选,筛选过程中,既要大量保留权重大的粒子,又要有一小部分权重小的粒子;
5)滤波:将重采样后的粒子带入状态转移方程得到新的预测粒子,即步骤2。
%在二维空间,假设运动物体的一组(非线性)运动位置、速度、加速度数据,用粒子滤波方法进行处理
%实验室的博客
% 参数设置
N = 100; %粒子总数
Q =
5; %过程噪声
R =
5; %测量噪声
T =
10; %测量时间
theta =
pi/T; %旋转角度
distance =
80/T; %每次走的距离
WorldSize =
100; %世界大小
X = zeros(2,
T); %存储系统状态
Z = zeros(2,
T); %存储系统的观测状态
P = zeros(2,
N); %建立粒子群
PCenter = zeros(2, T); %所有粒子的中心位置
w = zeros(N,
1); %每个粒子的权重
err =
zeros(1,T); %误差
X(:, 1) = [50;
20]; %初始系统状态
Z(:, 1) = [50; 20] + wgn(2, 1,
10*log10(R)); %初始系统的观测状态
%初始化粒子群
for i = 1 : N
P(:, i) =
[WorldSize*rand; WorldSize*rand];
dist =
norm(P(:, i)-Z(:,
1)); %与测量位置相差的距离
w(i) = (1 /
sqrt(R) / sqrt(2 * pi)) * exp(-(dist)^2 / 2 /
R); %求权重
end
PCenter(:, 1) = sum(P, 2) /
N; %所有粒子的几何中心位置
%%
err(1) = norm(X(:, 1) - PCenter(:,
1)); %粒子几何中心与系统真实状态的误差
figure(1);
set(gca,'FontSize',12);
hold on
plot(X(1, 1), X(2, 1), 'r.',
'markersize',30) %系统状态位置
axis([0 100 0 100]);
plot(P(1, :), P(2, :), 'k.',
'markersize',5); %各个粒子位置
plot(PCenter(1, 1), PCenter(2, 1), 'b.', 'markersize',25);
%所有粒子的中心位置
legend('True State', 'Particles', 'The Center of Particles');
title('Initial State');
hold off
%%
%开始运动
for k = 2 : T
%模拟一个弧线运动的状态
X(:, k) =
X(:, k-1) + distance * [(-cos(k * theta)); sin(k * theta)] + wgn(2,
1,
10*log10(Q)); %状态方程
Z(:, k) =
X(:, k) + wgn(2, 1,
10*log10(R)); %观测方程 %粒子滤波
%预测
for i = 1 :
N
P(:, i) = P(:, i) + distance * [-cos(k * theta); sin(k * theta)] +
wgn(2, 1, 10*log10(Q));
dist = norm(P(:, i)-Z(:,
k)); %与测量位置相差的距离
w(i) = (1 / sqrt(R) / sqrt(2 * pi)) * exp(-(dist)^2 / 2 /
R); %求权重
end
%归一化权重
wsum =
sum(w);
for i = 1 :
N
w(i) = w(i) / wsum;
end
%重采样(更新)
for i = 1 :
N
wmax = 2 * max(w) * rand; %另一种重采样规则
index = randi(N, 1);
while(wmax > w(index))
wmax = wmax - w(index);
index = index + 1;
if index > N
index = 1;
end end
P(:, i) = P(:,
index); %得到新粒子
end
PCenter(:,
k) = sum(P, 2) /
N; %所有粒子的中心位置
%计算误差
err(k) =
norm(X(:, k) - PCenter(:,
k)); %粒子几何中心与系统真实状态的误差
figure(2);
set(gca,'FontSize',12);
clf;
hold
on
plot(X(1,
k), X(2, k), 'r.', 'markersize',50); %系统状态位置
axis([0 100
0 100]);
plot(P(1,
:), P(2, :), 'k.',
'markersize',5); %各个粒子位置
plot(PCenter(1, k), PCenter(2, k), 'b.', 'markersize',25);
%所有粒子的中心位置
legend('True
State', 'Particle', 'The Center of Particles');
hold
off
pause(0.1);
end
%%
figure(3);
set(gca,'FontSize',12);
plot(X(1,:), X(2,:), 'r', Z(1,:), Z(2,:), 'g', PCenter(1,:),
PCenter(2,:), 'b-');
axis([0 100 0 100]);
legend('True State', 'Measurement', 'Particle Filter');
xlabel('x', 'FontSize', 20); ylabel('y', 'FontSize', 20);
%%
figure(4);
set(gca,'FontSize',12);
plot(err,'.-');
xlabel('t', 'FontSize', 20);
title('The err');
如果你有所收获,欢迎用微信扫一扫进行打赏,赏金随意。
粒子滤波matlab示例,[转载]粒子滤波Matlab示例相关推荐
- c 使用matlab引擎,[转载]C与MATLAB混合编程之调用MATLAB引擎
Visual Studio调用MATLAB需要的配置已经在<Visual Studio调用MATLAB的配置>一文中给出了详细的步骤,本文将介绍混合编程的示例. 在C中调用MATLAB,据 ...
- 【PF三维路径规划】基于matlab改进的粒子滤波无人机三维路径规划【含Matlab源码 1269期】
⛄一.无人机简介 0 引言 随着现代技术的发展,飞行器种类不断变多,应用也日趋专一化.完善化,如专门用作植保的大疆PS-X625无人机,用作街景拍摄与监控巡察的宝鸡行翼航空科技的X8无人机,以及用作水 ...
- 【目标定位】基于matlab粒子滤波的定位算法【含Matlab源码 2161期】
一.基于粒子滤波污染源定位简介 粒子滤波定位算法是目前最精准定位可移动物体的位置,由于水域的流动,工业固体废物污染源很可能随着水流移动位置,基于粒子滤波算法将污染物定位分为预测.测量以及重新采样可大大 ...
- 蒙特卡洛粒子滤波定位算法_粒子滤波——来自哈佛的详细的粒子滤波器教程【1】...
本文原版链接:https://www.seas.harvard.edu/courses/cs281/papers/doucet-johansen.pdf 本文是哈佛大学相关研究人员于2008年发表的一 ...
- matlab图像处理-中值滤波原理
中值滤波原理 中值滤波本质上是一种统计排序滤波器.对于原图像中某点(i,j),中值滤波以该点为中心的邻域内的所有像素的统计排序中值作为(i,j)点的响应. 中值不同于均值,是指排序队列中位于中 ...
- 2021-01-28 粒子群优化算法-Python版本和Matlab函数 particleswarm 调用
粒子群优化算法-Python版本和Matlab函数 particleswarm 调用 前两天分享了粒子群优化算法的原理和Matlab原理实现,本文分享一下Python代码下的PSO实现以及Matlab ...
- matlab实现频域率滤波,基于Matlab的图像的频域滤波实现及研究.doc
摘要:图像的频域滤波是图像增强的一种方法.图像增强是图像处理的方法之一,有频率域法和空间域法.频率域法把图像看成一种二维信号,对其进行二维傅里叶变换的信号增强,采用低通滤波法可以去掉图像的噪声:采用高 ...
- matlab中基于十字形窗口的滤波算法,#215;字形滤波窗口在Matlab自适应中值滤波算法中的应用 - 21ic中国电子网...
由于种种原因,图像在生成.传输.变换等过程中往往会受到各种噪声的污染,从而导致图像质量退化.噪声信号的滤波是图像处理的基本任务之一,主要有线性滤波和非线性滤波两种方法.线性滤波方法一般具有低通特性,而 ...
- 图像相减的matlab仿真及光栅滤波法,图像相减的MATLAB 仿真及光栅滤波法实验实现...
图像相减的MATLAB 仿真及光栅滤波法实验实现 毕业设计(论文)中期报告题目图像相减的MATLAB仿真及光栅滤波法实验实现院(系)光电学院专业光信息科学与技术班级090106姓名陈凤学号090106 ...
- matlab fbp fan arc,滤波反投影重建算法(FBP)实现及应用(matlab)
滤波反投影重建算法实现及应用(matlab) 1. 滤波反投影重建算法原理 滤波反投影重建算法常用在CT成像重建中,背后的数学原理是傅立叶变换:对投影的一维傅立叶变换等效于对原图像进行二维的傅立叶变换 ...
最新文章
- php变量与数据类型,php中变量与数据类型讲解
- poj 3352 双连通分量
- java 代码 内存泄露_如何用Java编写一段代码引发内存泄露
- vue实现原理解析及一步步实现vue框架
- java学习(25):三目运算符
- ROS中自定义复杂数据类型
- Unreal Engine 4 —— Ghost Mesh Plugin的开发日志
- 字符串正反连接java_字符串正反连接(Java实现,超简单)
- c语言的课本答案,c语言课本试题答案
- Arquillian和Jboss的版本问题
- Spring Cloud(7.2):配置Producer Server
- MapGuide应用最佳实践—MapGuide Server和MapGuide WebExtension分开部署
- 人工智能基础——2.3.2产生式系统
- 掌勤综合劳务管理系统
- 敬业签Windows电脑桌面云便签提醒预设配置使用方法
- 怎么安装消息队列服务器,安装和配置消息队列(针对存档服务器)
- Flutter入门系列-Flutter读取assets文件并写入应用程序路径
- 滴滴开源 LogicFlow:专注流程可视化的前端框架
- html5手机号码数据类型,报手机号码的四种格式,你是哪种性格?
- 想给用户天涯若比邻的体验?业务全球化面临的三重挑战
热门文章
- itext tif图片转为pdf
- 欧姆龙PLC CP1H与变频器通信要点总结
- LTE学习笔记--LTE整体架构和协议架构概述
- 信息系统项目管理师(2022年) —— 第 1 章 信息化和信息系统
- WordPress主题 Modown V3.0+Erphpdown9.7.1虚拟素材资源付费下载响应式主题网站模板
- MATLAB利用ode求解二阶微分方程
- pdf页面倒序如何调整?
- List集合去重的常见几种方式
- Unity下载package到本地,Unity高版本如何安装Packager到本地,UnityPackageManager下载包到本地的保存路径
- Java基本数据类型取值范围