DDMA信号处置惩罚以及数据处置惩罚的流程---随机目的天生
Hello,大家好,我是Xiaojie,很久不见,接待大家可以或许和Xiaojie一起学习毫米波雷达知识,Xiaojie预备连载一个系列的文章—DDMA信号处置惩罚以及数据处置惩罚的流程,本系列文章将从目的天生、信号仿真、测距、测速、cfar检测、测角、目的聚类、目的跟踪这几个模块逐步先容,这个系列的文章约莫是一个7-8篇左右。最终结果如下:
https://img-blog.csdnimg.cn/img_convert/bf7c96c52a3d42b7cb9af6e7217a9939.gif#pic_center
整体文件的目录树如下:
https://img-blog.csdnimg.cn/img_convert/b4a6d4a33489d4918e41edceedd727f4.png#pic_center
本篇文章重要讲的是目的天生的部分。
目的天生部分重要是在targetGenerate目录下实现,按隔随机帧数来天生目的的随机距离、随机速率、随机角度以及随机横向距离。
generateRandFrame.m先容
generateRandFrame.m文件重要目的是天生随机的帧数,目的是隔多少帧来天生一个新的目的。在下面代码中会在中天生一个随机数。
%% 获取随机帧数,表征隔几帧生成一个新目标
function frame = generateRandFrame()
frameMin = 18; %最小帧号
frameMax = 23; %最大帧号
%生成随机帧号,范围为
frame = round(rand(1,1)*(frameMax-frameMin))+frameMin;
end
generateNewTarget.m先容
generateNewTarget.m文件重要目的是天生一个新的目的,包括是在目的的径向距离、径向速率、角度、横向距离。目的的横向距离 t a r g e t L o targetLo targetLo范围在 [ − 10 , 10 ] [-10,10] [−10,10]中,目的的径向速率 s p e e d I n i t speedInit speedInit范围在 [ − 25 , 25 ] [-25,25] [−25,25]中,目的的径向距离是和径向速率是相关的,当径向速率小于0时,目的径向距离为 125 125 125,当径向速率大于0时,目的径向距离为 2 + a b s ( t a r g e t L o ) 2+abs(targetLo) 2+abs(targetLo),目的角度计算为 a n g l e I n i t = a s i n d ( t a r g e t L o / r a n g e I n i t ) angleInit = asind(targetLo/rangeInit) angleInit=asind(targetLo/rangeInit),最终一个新的目的为 t a r g e t = [ r a n g e I n i t , s p e e d I n i t , a n g l e I n i t , t a r g e t L o ] ; target = ; target=;
%% 产生一个新的目标
function target = generateNewTarget()
loMin = -10; %横距的最小值
loMax = 10; %横距的最大值
%随机生成目标的横距,范围为
targetLo = round(rand(1,1)*(loMax-loMin))-loMax;
speedInit = 0; % 目标速度初始化为0
speedMax = 25; % 目标速度的最大值
speedMin = -25; % 目标速度的最小值
% 随机生成目标的速度,范围为
while (speedInit == 0)
speedInit = round(rand(1,1)*(speedMax-speedMin))-speedMax;
end
if speedInit < 0 %目标速度的小于0,目标从远靠近
rangeInit = 125;
else
rangeInit = 2 + abs(targetLo); %目标从近到远
end
angleInit = asind(targetLo/rangeInit); %目标角度初始化
target = ; %目标信息生成
end
targetUpdate.m先容
随着帧数的变化,目的的径向速率以及角度会发生变化(假设目的的径向速率不变),targetUpdate.m文件重要目的是对天生目的的径向距离以及角度进行更新。
%% 目标信息更新
function target = targetUpdate(parameter,target)
for targetIdx = 1:1:parameter.targetNums
targetRange = target(targetIdx,1); %目标的距离
targetSpeed = target(targetIdx,2); %目标的速度
targetLo = target(targetIdx,4); %目标的横距
targetRange = targetRange + targetSpeed * parameter.frameTime; %目标距离计算
targetAngle = asind(targetLo/targetRange); %目标角度计算
target(targetIdx,1) = targetRange; %距离更新
target(targetIdx,2) = targetSpeed; %速度更新
target(targetIdx,3) = targetAngle; %角度更新
end
end
generateMovingTarget.m先容
generateMovingTarget.m是天生移动的目的,当frameNumLoops为0时,会天生新的目的且目的列表更新并天生下次目的天生的随机帧号;且每帧都会进行目的信息更新
%% 生成动态目标
function = generateMovingTarget(parameter,target)
parameter.frameNumLoops = parameter.frameNumLoops - 1; %frameNumLoops
% 如果frameNumLoops为0,则生成新的目标
if parameter.frameNumLoops == 0
newTarget = generateNewTarget(); % 生成新目标
parameter.targetNums = parameter.targetNums + 1; %目标数增加
target = ; %target更新
parameter.frameNumLoops = generateRandFrame(); %生成随机帧号
end
target = targetUpdate(parameter,target); %目标信息更新
end
至此,本片文章就此竣事了。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]