【滤波跟踪】基于北方苍鹰和粒子群算法优化粒子滤波器实现目标滤波跟踪附matlab代码

简介: 【滤波跟踪】基于北方苍鹰和粒子群算法优化粒子滤波器实现目标滤波跟踪附matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法  神经网络预测雷达通信 无线传感器

信号处理图像处理路径规划元胞自动机无人机 电力系统

⛄ 内容介绍

传统粒子滤波算法中在重要性采样部分存在采样粒子位置不精确的问题,可用粒子群优化算法优化,.仿真结果表明,经过北方苍鹰和粒子群算法可有效提高粒子滤波算法的准确性,使跟踪误差减小.

⛄ 部分代码

function main

rand('seed',3);

randn('seed',6);

T=50;

R=1e-5;

P=1;%观测误差

Q=0.01;%预测误差

X=zeros(1,T);

Z=zeros(1,T);

X(1)=1;

Z(1)=1;


%基本粒子滤波设置

N=50;

Xpf=zeros(1,T);

Xpfset=ones(T,N);

Tpf=zeros(1,T);

%

% %PSOPF

Xpsopf=zeros(1,T);

Xpsopfset=ones(T,N);

Tpsopf=zeros(1,T);


%NGOPF

Xngopf=zeros(1,T);

Xngopfset=ones(T,N);

Tngopf=zeros(1,T);


%模拟运行

for t=2:T

X(t)=feval('ffun',X(t-1),t,Q);

Z(t)=feval('hfun',X(t),P);


% %PF

tic

[Xpf(t),Xpfset(t,:)]=pf(Xpfset(t-1,:),Z(t),N,t,R,P,Q);

Tpf(t)=toc;

 

% %PSOPF

tic

[Xpsopf(t),Xpsopfset(t,:)]=pso_pf(Xpsopfset(t-1,:),Z(t),N,t,R,P,Q);

Tpsopf(t)=toc;


%NGOPF

tic

[Xngopf(t),Xngopfset(t,:)]=ngo_pf(Xngopfset(t-1,:),Z(t),N,t,R,P,Q);

%[Xngopf(t),Xngopfset(t,:)]=ngo_pf1(Xngopfset(t-1,:),Z(t),N,t,R,P,Q);

Tngopf(t)=toc;


end;


ErrorPf=abs(Xpf-X);

ErrorPsoPf=abs(Xpsopf-X);

ErrorNgoPf=abs(Xngopf-X);


%picture

figure

hold on;

box on;

p1=plot(1:T,X,'-k.','LineWidth',1);

p2=plot(1:T,Xpf,'-ro','LineWidth',1);

p3=plot(1:T,Xpsopf,'-bx','LineWidth',1);

p4=plot(1:T,Xngopf,'-gd','LineWidth',1);

legend([p1,p2,p3,p4],'真实状态','PF估计','PSO估计','NGO估计')

xlabel('Time','fontsize',10)

title('Filter estmates (posterior means) vs. ture state','fontsize',10)


%偏差比较

figure

hold on;

box on;

p1=plot(1:T,ErrorPf,'-ro','LineWidth',1);

p2=plot(1:T,ErrorPsoPf,'-bx','LineWidth',1);

p3=plot(1:T,ErrorNgoPf,'-gd','LineWidth',1);

legend([p1,p2,p3],'PF偏差','PSO偏差','NGO偏差')


%算法Time比较图

figure

hold on;

box on;

p1=plot(1:T,Tpf,'-ro','LineWidth',1);

p2=plot(1:T,Tpsopf,'-bx','LineWidth',1);

p3=plot(1:T,Tngopf,'-gd','LineWidth',1);

legend([p1,p2,p3],'PF时间','PSOPF时间','NGOPF时间')

⛄ 运行结果

⛄ 参考文献

[1]王俊鹏, 侯小毛. 基于优化粒子滤波器的体育视频目标跟踪算法设计(英文)[J]. 机床与液压, 2018.

[2]周奇. 基于改进粒子滤波的人脸跟踪算法的研究[D]. 重庆大学, 2011.

⛄ Matlab代码关注

❤️部分理论引用网络文献,若有侵权联系博主删除
❤️ 关注我领取海量matlab电子书和数学建模资料


相关文章
|
7天前
|
存储 编解码 算法
【多光谱滤波器阵列设计的最优球体填充】使用MSFA设计方法进行各种重建算法时,图像质量可以提高至多2 dB,并在光谱相似性方面实现了显著提升(Matlab代码实现)
【多光谱滤波器阵列设计的最优球体填充】使用MSFA设计方法进行各种重建算法时,图像质量可以提高至多2 dB,并在光谱相似性方面实现了显著提升(Matlab代码实现)
|
7天前
|
机器学习/深度学习 传感器 算法
【高创新】基于优化的自适应差分导纳算法的改进最大功率点跟踪研究(Matlab代码实现)
【高创新】基于优化的自适应差分导纳算法的改进最大功率点跟踪研究(Matlab代码实现)
86 14
|
7天前
|
存储 算法 安全
【多目标工程应用】基于MOGWO的地铁隧道上方基坑工程优化设计研究(Matlab代码实现)
【多目标工程应用】基于MOGWO的地铁隧道上方基坑工程优化设计研究(Matlab代码实现)
|
7天前
|
机器学习/深度学习 运维 算法
【微电网多目标优化调度】多目标学习者行为优化算法MOLPB求解微电网多目标优化调度研究(Matlab代码实现)
【微电网多目标优化调度】多目标学习者行为优化算法MOLPB求解微电网多目标优化调度研究(Matlab代码实现)
|
7天前
|
算法 数据可视化 异构计算
【车辆路径问题VRPTW】基于北极海鹦优化(APO)算法求解带时间窗的车辆路径问题VRPTW研究(Matlab代码实现)
【车辆路径问题VRPTW】基于北极海鹦优化(APO)算法求解带时间窗的车辆路径问题VRPTW研究(Matlab代码实现)
|
10天前
|
传感器 机器学习/深度学习 算法
【使用 DSP 滤波器加速速度和位移】使用信号处理算法过滤加速度数据并将其转换为速度和位移研究(Matlab代码实现)
【使用 DSP 滤波器加速速度和位移】使用信号处理算法过滤加速度数据并将其转换为速度和位移研究(Matlab代码实现)
|
9天前
|
传感器 机器学习/深度学习 算法
【UASNs、AUV】无人机自主水下传感网络中遗传算法的路径规划问题研究(Matlab代码实现)
【UASNs、AUV】无人机自主水下传感网络中遗传算法的路径规划问题研究(Matlab代码实现)
|
11天前
|
传感器 算法 数据挖掘
基于协方差交叉(CI)的多传感器融合算法matlab仿真,对比单传感器和SCC融合
基于协方差交叉(CI)的多传感器融合算法,通过MATLAB仿真对比单传感器、SCC与CI融合在位置/速度估计误差(RMSE)及等概率椭圆上的性能。采用MATLAB2022A实现,结果表明CI融合在未知相关性下仍具鲁棒性,有效降低估计误差。
111 15
|
12天前
|
机器学习/深度学习 传感器 算法
基于全局路径的无人地面车辆的横向避让路径规划研究[蚂蚁算法求解](Matlab代码实现)
基于全局路径的无人地面车辆的横向避让路径规划研究[蚂蚁算法求解](Matlab代码实现)
|
12天前
|
算法 安全 BI
基于粒子群算法的多码头连续泊位分配优化研究(Matlab代码实现)
基于粒子群算法的多码头连续泊位分配优化研究(Matlab代码实现)

热门文章

最新文章