非线性非高斯模型的改进粒子滤波算法(Matlab代码实现)

简介: 非线性非高斯模型的改进粒子滤波算法(Matlab代码实现)

💥1 概述

由于红外、被动声纳等被动传感器具有隐蔽性好、抗干扰性强等特点,因此在现代战争中纯方位跟踪有着广泛的应用前景,吸引了许多学者进行研究。但是,纯方位跟踪又是跟踪问题的一个难点,主要是因为同主动跟踪问题相比,纯方位跟踪具有不可观测性,滤波非线性等特点。目前,针对纯方位跟踪研究多采用局部线性化的近似方法。扩展卡尔曼滤波( EKF) 是比较普遍适用的算法,此算法仅利用非线性函数 Taylor 展开的一阶项,只适用于弱非线性系统,在缺少距


离量测信息的条件下容易引起滤波的不稳定,甚至发散; 对于强非线性系统,不敏卡尔曼滤波( UKF) 有更 好的滤波效果,但是 UKF 和 EKF 都是在基于模型线性化和高斯假设的条件下,不适用于非高斯分布的模型。在处理非线性非高斯问题时,一种基于贝叶斯原理的序贯蒙特卡罗粒子滤波器表现出明显的优势[4-5]。在 用粒子滤波进行被动传感器目标跟踪时,其跟踪精度


主要取决于两个方面[5]: 一是采样得到的粒子分布是 否合理,能不能尽可能接近真实状态的后验概率分布。对这方面的研究主要通过选择好的重要性密度函数和在递推过程中克服权值退化和样本贫化问题Payne、Marron 等学者相继利用 EKF 和 UKF 产生建议分布对传统粒子滤波进行改进[6-7]。但是,在非高斯噪声或者过程噪声较大的情况下容易出现滤波发散; 文献[8]提出一种基于 EM 的高斯和粒子滤波算法,该算法通过 EM 产生量测更新过程中的加权粒子集来重新获得


后验状态密度,改善了粒子枯竭问题。但由于 EM 算法假定混合成分数为已知、迭代的结果需要依赖初始值、可能收敛到局部最大点或参数空间的边界,导致滤波过程后验状态密度估计误差增大,影响滤波精度。二是粒子滤波权值计算准确与否。粒子权值的大小代表状态在该粒子位置可能性的大小。当观测噪声突然增大时,粒子权值将会产生较大偏差。


📚2 运行结果

部分代码:

 %重要性权值计算
        for i=1:N
            zPred_pf(:,t,i)=feval('hfun',XparticlePred_pf(:,t,i),x0,y0);
            weight(t,i)=(1-eta)*inv(sqrt(2*pi*det(R1)))*exp(-.5*(Z(:,t)...
                -zPred_pf(:,t,i))'*inv(R1)*(Z(:,t)-zPred_pf(:,t,i)))...
                +eta*inv(sqrt(2*pi*det(R2)))*exp(-.5*(Z(:,t)-...
                zPred_pf(:,t,i))'*inv(R2)*(Z(:,t)-zPred_pf(:,t,i)))...
                + 1e-99; %权值计算,为避免权值为0,用1e-99
        end
        weight(t,:)=weight(t,:)./sum(weight(t,:));%归一化权值
        outIndex = randomR(1:N,weight(t,:)');     %随机采样
        Xparticle_pf(:,t,:) = XparticlePred_pf(:,t,outIndex);%获取新采样值
        %状态估计
        mx=mean(Xparticle_pf(1,t,:));
        my=mean(Xparticle_pf(3,t,:));
        mvx=mean(Xparticle_pf(2,t,:));
        mvy=mean(Xparticle_pf(4,t,:));
        Xmean_pf(j,:,t)=[mx,mvx,my,mvy]';


🌈3 Matlab代码实现

🎉4 参考文献

部分理论来源于网络,如有侵权请联系删除。

[1]周航,冯新喜,王蓉.非线性非高斯模型的改进粒子滤波算法[J].信号处理,2012,28(09):1327-1334.

相关文章
|
9天前
|
存储 算法 调度
【复现】【遗传算法】考虑储能和可再生能源消纳责任制的售电公司购售电策略(Python代码实现)
【复现】【遗传算法】考虑储能和可再生能源消纳责任制的售电公司购售电策略(Python代码实现)
107 26
|
9天前
|
存储 编解码 算法
【多光谱滤波器阵列设计的最优球体填充】使用MSFA设计方法进行各种重建算法时,图像质量可以提高至多2 dB,并在光谱相似性方面实现了显著提升(Matlab代码实现)
【多光谱滤波器阵列设计的最优球体填充】使用MSFA设计方法进行各种重建算法时,图像质量可以提高至多2 dB,并在光谱相似性方面实现了显著提升(Matlab代码实现)
|
11天前
|
传感器 机器学习/深度学习 算法
【使用 DSP 滤波器加速速度和位移】使用信号处理算法过滤加速度数据并将其转换为速度和位移研究(Matlab代码实现)
【使用 DSP 滤波器加速速度和位移】使用信号处理算法过滤加速度数据并将其转换为速度和位移研究(Matlab代码实现)
|
10天前
|
传感器 机器学习/深度学习 算法
【UASNs、AUV】无人机自主水下传感网络中遗传算法的路径规划问题研究(Matlab代码实现)
【UASNs、AUV】无人机自主水下传感网络中遗传算法的路径规划问题研究(Matlab代码实现)
|
6天前
|
机器学习/深度学习 人工智能 搜索推荐
从零构建短视频推荐系统:双塔算法架构解析与代码实现
短视频推荐看似“读心”,实则依赖双塔推荐系统:用户塔与物品塔分别将行为与内容编码为向量,通过相似度匹配实现精准推送。本文解析其架构原理、技术实现与工程挑战,揭秘抖音等平台如何用AI抓住你的注意力。
126 6
从零构建短视频推荐系统:双塔算法架构解析与代码实现
|
9天前
|
机器学习/深度学习 传感器 算法
【高创新】基于优化的自适应差分导纳算法的改进最大功率点跟踪研究(Matlab代码实现)
【高创新】基于优化的自适应差分导纳算法的改进最大功率点跟踪研究(Matlab代码实现)
91 14
|
14天前
|
机器学习/深度学习 传感器 算法
基于全局路径的无人地面车辆的横向避让路径规划研究[蚂蚁算法求解](Matlab代码实现)
基于全局路径的无人地面车辆的横向避让路径规划研究[蚂蚁算法求解](Matlab代码实现)
|
14天前
|
算法 安全 BI
基于粒子群算法的多码头连续泊位分配优化研究(Matlab代码实现)
基于粒子群算法的多码头连续泊位分配优化研究(Matlab代码实现)
|
9天前
|
机器学习/深度学习 运维 算法
【微电网多目标优化调度】多目标学习者行为优化算法MOLPB求解微电网多目标优化调度研究(Matlab代码实现)
【微电网多目标优化调度】多目标学习者行为优化算法MOLPB求解微电网多目标优化调度研究(Matlab代码实现)
|
12天前
|
机器学习/深度学习 运维 算法
【储能选址定容】基于多目标粒子群算法的配电网储能选址定容(Matlab代码实现)
【储能选址定容】基于多目标粒子群算法的配电网储能选址定容(Matlab代码实现)
100 4

热门文章

最新文章