4 多目标雷达程序的实现
4。1 软件开发工具的介绍
根据选择,最适合用于开发多目标雷达软件的程序是MATLAB,MATLAB是相当实用的数据处理软件
开发公司:mathworks;发行年份:1984。优点:1) 高效的数值计算及符号计算功能,能使用户从繁杂的数学运算分析中解脱出来; 2) 具有完备的图形处理功能,实现计算结果和编程的可视化; 3) 友好的用户界面及接近数学表达式的自然化语言,使学者易于学习和掌握; 4) 功能丰富的应用工具箱(如信号处理工具箱、通信工具箱等) ,为用户提供了大量方便实用的处理工具。缺点:循环运算效率较低,封装性不好。
4。2 需求分析
开发的应用软件为模拟实现雷达基本功能,可以同时追踪多个目标的软件程序,要求能在windows7。0版本及以上运行,能够较好的实现多目标追踪。具体功能需求如下:
1)实现模拟目标的生成。
2)实现杂波的产生。
3)能够设置一些雷达的基本参数。
4)可以处理数据之后将结果图像化的显示出来。
5)在实现以上功能的基础上,需要具备一些合理的人机交互。
4。3 界面 主界面展示图
4。4 功能模块
整个应用程序的设计主要分为以下三个模块,分别是目标产生、杂波生成、雷达仿真。功能模块图如图5。5所示:
功能模块图
4。5系统各模块功能
本项目的信号来源包括目标生成,杂波的产生,核心部分是雷达的模拟,其余功能还包括GUI颜色改变,一些参数的设置等。
1。目标的生成:
主要功能是生成可以被模拟的雷达系统感知到的目标,同时也是相当于实际应用中需要追踪的有意义目标,系统的主要作用就是发现并且追踪目标。代码如下:
numMountains = get(handles。nMountains,'value')-1;
for n =1: numMountains
XY = ( rand(1,2)*1。8 - 0。9*ones(1,2) )*1e5;
handles = placeClutter(handles,XY);
end
N = get(handles。nTargets,'value')-1;
if N
RCSc = cell(N,1);
vc = cell(N,1);
XYc = cell(N,1);
ac = cell(N,1);
maneuverability = cell(N,1);
RCS = get(handles。RCS,'value');
temp = rand(1,N);文献综述
targetsRCS = (1+temp) * RCS;
targetsCordinates = ( rand(N,2)*1。8 - 0。9*ones(N,2) )*1e5; %Targets X & Y initial cordinates
targetsVelocity = randn(N,2)*1e2; % Targets initial velocity m/s
for n=1:N
RCSc{n} = targetsRCS(n);
vc{n} = targetsVelocity(n,:);
XYc{n} = targetsCordinates(n,:);
ac{n} = [0 0];
maneuverability{n} = 1 + temp(n)*20; % small planes will perform more maneuvers
end
handles。Targets = struct('RCS',RCSc, 'XY',XYc, 'v', vc, 'a',ac, 'maneuverability',maneuverability);
handles。targetManeuverTime = ones(N,1)*handles。currentTime;