欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

利用MATLAB实现的NNDA、PDA和JPDA航迹关联方法详解及附带1928期Matlab源代码

最编程 2024-07-23 19:47:37
...
function JPDAF(target_position,n,T,MC_number,c)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 程序功能 :采用JPDA数据关联算法实现两个个匀速运动目标的点迹与航迹的关联 输入变量 :
% -target_position: 目标的初始位置 - n: 采样次数 - T: 采样间隔
% -MC_number:仿真次数 - c: 目标个数
% 输出变量 :
%
% 参考文献 :
% 黄玲,数据挖掘及融合技术研究与应用,西北工业大学硕士学位论文,2004

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%
%%%%% 参数定义 %%%%%
%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%
Pd=1; %检测概率
Pg=0.99; %正确量测落入跟踪门内得概率
g_sigma=9.21; %门限
lambda=2;
gamma=lambda*10^(-6); %每一个单位面积(km^2)内产生lambda个杂波
Target_measurement=zeros(c,2,n); %目标观测互联存储矩阵
target_delta=[100 100]; %目标对应的观测标准差
P=zeros(4,4,c); %协方差矩阵
P1=[target_delta(1)^2 0 0 0;0 0.01 0 0;0 0 target_delta(1)^2 0;0 0 0 0.01]; %初始协方差矩阵
P(:,:,1)=P1;
P(:,:,2)=P1;
A = [1 T 0 0;0 1 0 0;0 0 1 T;0 0 0 1]; %状态转移矩阵
C = [1 0 0 0;0 0 1 0]; %观测矩阵
R=[target_delta(1)^2 0;0 target_delta(1)^2]; %观测协方差矩阵
Q=[4 0;0 4]; %系统过程噪声协方差
G=[T^2/2 0;T 0;0 T^2/2;0 T]; %过程噪声矩阵
x_filter=zeros(4,c,n); %存储目标的各时刻的滤波值
x_filter1=zeros(4,c,n,MC_number); %MC_number次Montle Carlo仿真所得全部结果存储矩阵
data_measurement=zeros(c,2,n); %观测存储矩阵
data_measurement1=zeros(c,4,n); %实际位置坐标x,y矩阵

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%% 产生目标的实际位置 %%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
data_measurement1(:,:,1)=target_position; %实际位置矩阵初始化
for i=1:c
for ii=2:n %实际位置
data_measurement1(i,:,ii)=(A*data_measurement1(i,:,ii-1)')'+(G*sqrt(Q)*(randn(2,1)))';
end
end
a=zeros(1,n);
b=zeros(1,n);
for i=1:n
a(i)=data_measurement1(1,1,i);
b(i)=data_measurement1(1,3,i);