建网站需要编程吗,福州网站建设效果,可以做百度百科参考资料的网站,网页制作与设计表白设计Hello#xff0c;大家好#xff0c;我是Xiaojie#xff0c;好久不见#xff0c;欢迎大家能够和Xiaojie一起学习毫米波雷达知识#xff0c;Xiaojie准备连载一个系列的文章—DDMA信号处理以及数据处理的流程#xff0c;本系列文章将从目标生成、信号仿真、测距、测速、cfar…Hello大家好我是Xiaojie好久不见欢迎大家能够和Xiaojie一起学习毫米波雷达知识Xiaojie准备连载一个系列的文章—DDMA信号处理以及数据处理的流程本系列文章将从目标生成、信号仿真、测距、测速、cfar检测、测角、目标聚类、目标跟踪这几个模块逐步介绍这个系列的文章大约是一个7-8篇左右。
最终效果如下 整体文件的目录树如下 本篇文章主要讲的是目标生成的部分。
目标生成部分主要是在targetGenerate目录下实现按隔随机帧数来生成目标的随机距离、随机速度、随机角度以及随机横向距离。
generateRandFrame.m介绍
generateRandFrame.m文件主要目的是生成随机的帧数目的是隔多少帧来生成一个新的目标。在下面代码中会在[18,23]中生成一个随机数。
%% 获取随机帧数表征隔几帧生成一个新目标
function frame generateRandFrame()frameMin 18; %最小帧号frameMax 23; %最大帧号%生成随机帧号范围为[frameMinframeMax]frame round(rand(1,1)*(frameMax-frameMin))frameMin;
endgenerateNewTarget.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 ) 2abs(targetLo) 2abs(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) angleInitasind(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 [rangeInit, speedInit, angleInit, targetLo]; target[rangeInit,speedInit,angleInit,targetLo];
%% 产生一个新的目标
function target generateNewTarget()loMin -10; %横距的最小值loMax 10; %横距的最大值%随机生成目标的横距范围为[loMin,loMax]targetLo round(rand(1,1)*(loMax-loMin))-loMax; speedInit 0; % 目标速度初始化为0speedMax 25; % 目标速度的最大值speedMin -25; % 目标速度的最小值% 随机生成目标的速度范围为[speedMin,speedMax]while (speedInit 0)speedInit round(rand(1,1)*(speedMax-speedMin))-speedMax;endif speedInit 0 %目标速度的小于0目标从远靠近rangeInit 125;elserangeInit 2 abs(targetLo); %目标从近到远endangleInit asind(targetLo/rangeInit); %目标角度初始化target [rangeInit, speedInit, angleInit, targetLo]; %目标信息生成
endtargetUpdate.m介绍
随着帧数的变化目标的径向速度以及角度会发生变化(假设目标的径向速度不变)targetUpdate.m文件主要目的是对生成目标的径向距离以及角度进行更新。
%% 目标信息更新
function target targetUpdate(parameter,target)for targetIdx 1:1:parameter.targetNumstargetRange 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; %角度更新endendgenerateMovingTarget.m介绍
generateMovingTarget.m是生成移动的目标当frameNumLoops为0时会生成新的目标且目标列表更新并生成下次目标生成的随机帧号且每帧都会进行目标信息更新
%% 生成动态目标
function [parameter,target] generateMovingTarget(parameter,target)parameter.frameNumLoops parameter.frameNumLoops - 1; %frameNumLoops% 如果frameNumLoops为0则生成新的目标if parameter.frameNumLoops 0newTarget generateNewTarget(); % 生成新目标parameter.targetNums parameter.targetNums 1; %目标数增加target [target ; newTarget]; %target更新parameter.frameNumLoops generateRandFrame(); %生成随机帧号endtarget targetUpdate(parameter,target); %目标信息更新end至此本片文章就此结束了。