ImageVerifierCode 换一换
格式:DOC , 页数:7 ,大小:42.50KB ,
资源ID:7132018      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-7132018.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(matlab粒子滤波.doc)为本站会员(hwpkd79526)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

matlab粒子滤波.doc

1、matlab 粒子滤波中,请问状态方程的 x(t)和观测方程的 y(t)表达什么意思?x(t)=f(x(t-1),u(t),w(t) (1) 状态转移方程,u(t) 为控制量,w(t) 为模型噪声 y(t)=h(x(t),e(t) (2) 观测方程,e(t)为观测噪声举个比较简单的例子,粒子滤波主要用来解决非线性非高斯问题,方法是通过蒙特卡罗方法生成具有一定概率密度分布的粒子,假设为 N 个,通过对粒子后验概率的求解,得到目标状态的最优估计,假设现在粒子初始状态为 X(0)=1,于是在 X(0)附近用正态分布生成 N 个粒子,生成的 N 个粒子可能是 1,2,0,3,1 ,1,这些粒子中肯定

2、1 出现的概率是最大的,对每个粒子初始权值 1/N; 假设现有一个状态转移方程 X(t)=X(t-1)+1+W,于是将这 N 个粒子通过状态转移方程求得了 X(1)时刻的粒子状态,2,3,1,4,2 , 2(这里没有加上噪声 W,为了看着方便,W 一般是高斯噪声) 得到状态后通过观测方程求每个粒子的权值 w(1)i,一般实际中用似然 度函数,比如对于一个图像人头通过颜色直方图进行跟踪,那这个观测方程就是颜色直方图的似然度函数,于是得到了每个粒子的似然度匹配值,假设 X(1)i(i 表示 N 个粒子中的第 i 个粒子)的似然度值为 wp(1)i,用 X(0)i 的粒子权值w(0)i*wp(1)i

3、,得到了未归一化的权值,再对其进行归一化就得到了 w(1)i,而 X 在 T=1 时刻的估计值就可以用 X(1)=SUM(X(1)i*w(1)i); i=1N 来求得,或者也可以取 w 最大的一点的 X 值 也就是说在粒子滤波器中状态转移方程求的是粒子在下一个时刻的状态,观测方程是对粒子在这一状态的评价,即这个状态与最优的状态相比好不好,好,则这一点所占的权重就大,不好,则占的权重就小粒子滤波算法源于 Montecarlo 的思想,即以某事件出现的频率来指代该事件的概率。因此在滤波过程中,需要用到概率如 P(x)的地方,一概对变量 x 采样,以大量采样的分布近似来表示 P(x)。因此,采用此一

4、思想,在滤波过程中粒子滤波可以处理任意形式的概率,而不像 Kalman 滤波只能处理高斯分布的概率问题。他的一大优势也在于此。 再来看对任意如下的状态方程 x(t)=f(x(t-1),u(t),w(t) (1)y(t)=h(x(t),e(t) (2)其中的 x(t)为 t 时刻状态,u(t) 为控制量,w(t) 和 e(t)分别为模型噪声和观测噪声。(1)当然是状态转移方程,(2) 是观测方程。那么对于这么一个问题粒子滤波怎么来从观测 y(t),和 x(t-1),u(t) 滤出真实状态 x(t)呢?看看滤波的预估阶段:粒子滤波首先根据 x(t-1) 和他的概率分布生成大量的采样,这些采样就称之

5、为粒子。那么这些采样在状态空间中的分布实际上就是x(t-1) 的概率分布了。好,接下来依据状态转移方程加上控制量可以对每一粒子得到一个预测粒子。所有的预测粒子就代表了涉及哪些参数化的东西)。进入校正阶段来:有了预测粒子,当然不是所有的预测粒子都能得到我们的时间观测值 y,越是接近真实状态的粒子,当然获得越有可能获得观测值 y。于是对所有的粒子得有个评价了,这个评价就是一个条件概率 P(y|xi),直白的说,这个条件概率代表了假设真实状态 x(t)取第 i 个粒子 xi 时获得观测 y 的概率。令这个条件概率为第 i 个粒子的权重。对所有粒子都进行这么一个评价,那么越有可能获得观测 y 的粒子,

6、当然获得的权重越高。好了预测信息融合在粒子的分布中,观测信息又融合在了每一粒子的权重中。最后采用重采样算法,去除低权值的粒子,复制高权值的粒子。所得当然是需要的真实状态 x(t)了,而这些重采样后的粒子,就代表了真实状态的概率分布了。下一轮滤波,再将重采样过后的粒子集输入到状态转移方程中,直接就能够获得预测粒子了。初始状态的问题:可以认为 x(0)在全状态空间内平均分布。于是初始采样就平均分布在整个状态空间中。然后将所有采样输入状态转移方程,得到预测粒子。再评价下所有预测粒子的权重,当然我们在整个状态空间中只有部分粒子能够获的高权值。重采样算法去除低权值的,将下一轮滤波的考虑重点缩小到高权值粒

7、子附近。下面是我最后改写和精简的一个粒子滤波 Matlab 算法。x = 0.1; % initial stateQ = 1; % process noise covarianceR = 1; % measurement noise covariancetf = 50; % simulation lengthN = 100; % number of particles in the particle filterxhat = x;P = 2;xhatPart = x;% Initialize the particle filter. 初始化粒子滤波,xpart 值用来在不同时刻生成粒子for

8、i = 1 : Nxpart(i) = x + sqrt(P) * randn;endxArr = x;xhatPartArr = xhatPart;close all;for k = 1 : tf %tf 为时间长度,k 可以理解为时间轴上的 k 时刻% System simulation% x 数据为时刻 k 的真实状态值x = 0.5 * x + 25 * x / (1 + x2) + 8 * cos(1.2*(k-1) + sqrt(Q) * randn; %状态方程(1)y = x2 / 20 + sqrt(R) * randn;%观测方程(2)% Particle filter 生

9、成 100 个粒子并根据预测和观测值差值计算各个粒子的权重for i = 1 : Nxpartminus(i) = 0.5 * xpart(i) + 25 * xpart(i) / (1 + xpart(i)2) + 8 * cos(1.2*(k-1) + sqrt(Q) * randn;ypart = xpartminus(i)2 / 20;vhat = y - ypart; %观测和预测的差q(i) = (1 / sqrt(R) / sqrt(2*pi) * exp(-vhat2 / 2 / R); %根据差值给出权重end% Normalize the likelihood of eac

10、h a priori estimate.qsum = sum(q);for i = 1 : Nq(i) = q(i) / qsum;%归一化权重end% Resample.for i = 1 : Nu = rand; % uniform random number between 0 and 1qtempsum = 0;for j = 1 : Nqtempsum = qtempsum + q(j);if qtempsum = u%重采样对低权重进行剔除,同时保留高权重,防止退化的办法xpart(i) = xpartminus(j);break;endendend% The particle f

11、ilter estimate is the mean of the particles.xhatPart = mean(xpart); %经过粒子滤波处理后的均值% Plot the estimated pdfs at a specific time.if k = 20% Particle filter pdfpdf = zeros(81,1);for m = -40 : 40for i = 1 : Nif (m = xpart(i) endendendfigure;m = -40 : 40;%此图 1 绘制 k=20 时刻 xpart(i)区间分布密度plot(m, pdf / N, r);

12、hold;title(Estimated pdf at k=20);disp(min, max xpart(i) at k = 20: , num2str(min(xpart), , , num2str(max(xpart);end% Save data in arrays for later plottingxArr = xArr x; xhatPartArr = xhatPartArr xhatPart;endt = 0 : tf;figure;plot(t, xArr, b., t, xhatPartArr, g); %此图 2 对应 xArr 为真值,xhatPartArr 为粒子滤波值xlabel(time step); ylabel(state);legend(True state, Particle filter estimate);

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报