JPDA的matlab程序.doc
- 文档编号:157058
- 上传时间:2022-10-04
- 格式:DOC
- 页数:11
- 大小:80.50KB
JPDA的matlab程序.doc
《JPDA的matlab程序.doc》由会员分享,可在线阅读,更多相关《JPDA的matlab程序.doc(11页珍藏版)》请在冰豆网上搜索。
functionJPDAF(target_position,n,T,MC_number,c)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%程序功能:
采用JPDA数据关联算法实现两个个匀速运动目标的点迹与航迹的关联
%输入变量:
%-target_position:
目标的初始位置
%-n:
采样次数
%-T:
采样间隔
%-MC_number:
仿真次数
%-c:
目标个数
%输出变量:
%无
%参考文献:
%黄玲,数据挖掘及融合技术研究与应用,西北工业大学硕士学位论文,2004年
%声明:
%该代码为作者毕业设计内容,鉴于学术交流的角度,现在公开发布该代码
%该代码非本人原创,修改自网上另一位作者的JPDA代码
%该代码仅用于学术交流,请勿用于任何其它商业用途,请大家自觉遵守
%如果有人用该代码进行不合适的用途,该代码作者不承担任何责任
%请遵守作者的劳动成果,转载请标明
%作者邮箱:
%wangzexun@
%%%%%%%%%%%%%%%%%%%%%%%%%%参数定义%%%%%
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=[100100];%目标对应的观测标准差
P=zeros(4,4,c);%协方差矩阵
P1=[target_delta
(1)^2000;00.0100;00target_delta
(1)^20;0000.01];%初始协方差矩阵
P(:
:
1)=P1;
P(:
:
2)=P1;
A=[1T00;0100;001T;0001];%状态转移矩阵
C=[1000;0010];%观测矩阵
R=[target_delta
(1)^20;0target_delta
(1)^2];%观测协方差矩阵
Q=[40;04];%系统过程噪声协方差
G=[T^2/20;T0;0T^2/2;0T];%过程噪声矩阵
x_filter=zeros(4,c,n);%存储目标的各时刻的滤波值
x_filter1=zeros(4,c,n,MC_number);%MC_number次MontleCarlo仿真所得全部结果存储矩阵
data_measurement=zeros(c,2,n);%观测存储矩阵
data_measurement1=zeros(c,4,n);%实际位置坐标x,y矩阵
%%%%%%%%产生目标的实际位置
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
data_measurement1(:
:
1)=target_position;
%实际位置矩阵初始化
fori=1:
c
forii=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);
fori=1:
n
a(i)=data_measurement1(1,1,i);
b(i)=data_measurement1(1,3,i);
end
plot(a,b,'b-');
holdon;
a=zeros(1,n);
b=zeros(1,n);
fori=1:
n
a(i)=data_measurement1(2,1,i);
b(i)=data_measurement1(2,3,i);
end
plot(a,b,'r-');
xlabel('x(m)'),ylabel('y(m)');
legend('目标a的实际位置','目标b的实际位置',1);
grid;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%程序主体
%%%%%%%%%%%%%%%%%%%%%%
forM=1:
MC_number
%%%%%%%%%%%%%%%%%%%%%%%1.产生路径%%%%%%%%%%%%%%%%%%%%%%%
Noise=[];
fori=1:
n
forj=1:
c%各传感器观测的位置
data_measurement(j,1,i)=data_measurement1(j,1,i)+rand
(1)*target_delta(j);
data_measurement(j,2,i)=data_measurement1(j,3,i)+rand
(1)*target_delta(j);
end
end
%%%%%%%%%%%%%%%%%%%%%%%%%%2.产生杂波,并确定有效观测%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%
S=zeros(2,2,c);
Z_predic=zeros(2,2);%存储两个目标的观测预测值,即只包括x,y坐标
x_predic=zeros(4,2);%存储两个目标的状态预测值,即包括x,y坐标和x,y方向速度
ellipse_Volume=zeros(1,2);
NOISE_sum_a=[];%存储目标1的杂波
NOISE_sum_b=[];%存储目标2的杂波
fort=1:
n
y1=[];
y=[];
Noise=[];
NOISE=[];
fori=1:
c
ift~=1
x_predic(:
i)=A*x_filter(:
i,t-1);%用前一时刻的滤波值来预测当前的值(kalman滤波的第一个表达式)
else
x_predic(:
i)=target_position(i,:
)';%第一次采样我们用真实位置当预测值
end
P_predic=A*P(:
:
i)*A'+G*Q*G';%更新x_predic协方差矩阵(kalman滤波的第二个表达式)
Z_predic(:
i)=C*x_predic(:
i);%提取预测值的x,y坐标,舍弃x,y速度
R=[target_delta(i)^20;0target_delta(i)^2];
S(:
:
i)=C*P_predic*C'+R;%定义中间变量S
ellipse_Volume(i)=pi*g_sigma*sqrt(det(S(:
:
i)));
%计算椭圆跟踪门的面积
number_returns=floor(ellipse_Volume(i)*gamma+1);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JPDA matlab 程序
![提示](https://static.bdocx.com/images/bang_tan.gif)