资源简介
逻辑航迹起始算法源代码,本代码已测试通过,
代码片段和文件信息
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
- 上一篇:线结构光中心提取算法matlab
- 下一篇:多尺度排列熵matlab程序,亲测可用
相关资源
- 蚁群算法论文+源代码
- MATLAB电机仿真精华50例源代码.zip
- MATLAB电机仿真精华50例源代码269078
- BP神经网络解决手写数字识别问题 m
- MATLAB烟花算法源代码
- MATLAB R2007基础教程刘慧颖 编著--源代
-
瑞利信道simuli
nk仿真模型及源代码 - 数字识别matlab源代码
- 多种群遗传算法的函数优化算法(源
- MATLAB GUI设计学习手记第3版源代码BY罗
- MATLAB GUI设计学习手记 第3版 源代码
- Split bregman 算法MATLAB源代码
- matlab 图像傅里叶变换 (源代码)
- mn逻辑航迹起始算法
- MATLAB电机仿真精华50例源代码
- 《MATLAB电机仿真精华50例》源代码
- 字符识别matlab源代码
- matlab身份证号码识别毕业设计答辩演
- mtsp源代码MATLAB
- matlab纹理特征提取源代码
- 中央大学 EMD HHT Matlab 源代码
- MATLAB神经网络43个案例分析源代码
- MATLAB智能算法30个案例分析 源代码.
- 图像超分辨重建MATLAB源代码迭代步长
- 《MATLAB 神经网络30个案例分析》所有
- 麦克风阵列仿真的源代码
- 深度学习和matlab源代码
- 计算流体力学各种程序
- MATLAB43案例
- RMSHE的MATLAB源代码
评论
共有 条评论