资源简介
多目标跟踪时的逻辑航迹起始算法,用于跟踪航迹起始,仿真效果
代码片段和文件信息
clear all; clc; close all;
warning(‘off‘)
% 扫描次数与扫描周期
N = 4;
M = 3;
T = 5; %秒
% 所考虑的正方形仿真区域
Xscope = 10^5;
Yscope = 10^5;
% 目标运动参数
v = 350; % 500m/s
theta = 0; % 水平正x轴运动
sigmax=50;
sigmay=5;
% 距离观测标准差与方位角观测标准差
sigma_r = 40;
sigma_theta = 0.3;
% 所考虑的正方形仿真区域内的杂波平均数
renbuda = 100;
% 指定4次扫描的杂波个数,每个周期的数目服从泊松分布,分布的均值由面积大小
% 以及单位面积内杂波数的乘积确定
K = poissrnd(renbuda 1 N);
% 限制关联规则中的最大与最小速度、最大加速度和连续三次扫描的夹角
vmin = 2*v/3;
vmax = 3*v/2;
% amax = 50;
thetamax = 90;
% thetamax = pi/2;
%量测方程
H = [1 0 0 0;0 0 1 0];
F = [1 T 0 0; 0 1 0 0; 0 0 1 T;0 0 0 1];
R = [80 0;0 80];
%% 仿真产生5个目标的航迹(量测数据) %%
radar1 = simutrack(55000 55000 v theta 0 0 sigma_r sigma_theta T N); %4行2列
radar2 = simutrack(45000 45000 v theta 0 0 sigma_r sigma_theta T N);
radar3 = simutrack(35000 35000 v theta 0 0 sigma_r sigma_theta T N);
radar4 = simutrack(45000 25000 v theta 0 0 sigma_r sigma_theta T N);
radar5 = simutrack(55000 15000 v theta 0 0 sigma_r sigma_theta T N);
%% 每次扫描所得点迹集合sample中的前5个点被设定为目标点 %%
i = 0;
for k = K
i = i + 1;
cycle(i).sample = [rand(k1)*Xscope rand(k1)*Yscope]; %cycle为结构体 存储杂波点
cycle(i).sample = [radar1(i:); radar2(i:); radar3(i:);
radar4(i:); radar5(i:); cycle(i).sample];
end
%% 用第一次扫描的点迹建立暂时航迹 %%
for i = 1:size(cycle(1).sample 1)
track(i).seq = cycle(1).sample(i:);
% track(i).shouldadd = [];
track(k).assoi_point = []; %存储与航迹关联的点迹的关联值
end
%% 用第二次扫描的点建立可能航迹 %%
for i = 2
tracknum = size(track2); %求得暂态航迹数
tracknum_temp = tracknum;
samplenum = size(cycle(i).sample1); %求得第二帧的量测点迹数
D = zeros(tracknumsamplenum); %存储暂态航迹与量测的关联值
%% 计算本次扫描的所有点迹与暂态航迹的关联值 %%
for j = 1:samplenum
data = cycle(i).sample(j:);
for k = 1:tracknum
if size(track(k).seq1) > 0
data1 = track(k).seq;
D(kj) = (data(1)-data1(1))^2 + (data(2)-data1(2))^2;
end
end
end
for j = 1:samplenum
flag = 0;
for k = 1:tracknum
if D(kj) >= (vmin*T)^2 && D(kj) <= (vmax*T)^2
track(k).assoi_point = [track(k).assoi_point;D(kj) j];
flag = 1;
end
end
%% 与暂态航迹未关联的点迹作为新的暂态航迹头
if flag == 0
tracknum_temp =tracknum_temp + 1;
track(tracknum_temp).seq = cycle(i).sample(j:);
track(tracknum_temp).assoi_point = [];
end
end
%% 由关联点迹判别,对暂态航迹进行处理 %%
for k = 1:tracknum
L = size(track(k).assoi_point1);
if L == 1
j = track(k).assoi_point(end2);
track(k).seq = [track(k).seq;cycle(i).sample(j:)];
end
if L > 1
min = track(k).assoi_point(1:);
for j = 2:L
if (track(k).assoi_point(j1) - (v*T
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 13736 2014-02-19 21:23 Logical starting algorithm .m
- 上一篇:爬山法的风力发电最大功率点跟踪
- 下一篇:求解四步相移法的光栅相位的matlab程序
相关资源
- Pattern Recognition and Machine Learning(高清
- MATLAB 编程 第二版 Stephen J. Chapman 著
- 均值滤波和FFT频谱分析Matlab代码
- 《MATLAB扩展编程》代码
- HDB3码、AMI码的MATLAB实现
- 3点GPS定位MATLAB仿真
- MATLAB数字信号处理85个实用案例精讲入
- matlab从入门到精通pdf94795
- 欧拉放大论文及matlab代码
- 跳一跳辅助_matlab版本
- 全面详解LTE MATLAB建模、仿真与实现
- MIMO-OFDM无线通信技术及MATLAB实现_孙锴
- MATLAB Programming for Engineers 4th - Chapman
- matlab 各种谱分析对比
- 分数阶chen混沌matlab程序
- 基于粒子群算法的非合作博弈的matl
- MATLAB车流仿真 包括跟驰、延误
- matlab空间桁架计算程序
- 基于MATLAB的图像特征点匹配和筛选
- DMA-TVP-FAVAR
- GPS信号的码捕获matlab代码.7z
- 一维光子晶体MATLAB仿真代码吸收率折
- newmark法源程序
- 传统关联成像、计算鬼成像matlab
- pri传统分选算法
- 摆动滚子推杆盘形凸轮设计
- 医学图像重建作业matlab源码
- Matlab实现混沌系统的控制
- 检测疲劳驾驶
- Matlab锁相环仿真-Phase Locked Loop.rar
评论
共有 条评论