模拟海岸监视雷达
这个例子展示了如何模拟一个静止的陆基雷达,从扩展收集返回海上目标。您将看到如何配置海洋表面反射率模型,修改运动轨迹与海浪的高度,模拟low-PRF雷达系统在雷达的情况下。
配置雷达场景
设置RNG可重复的结果。
rng默认的
场景将包括一个固定雷达望着海面,观察一只小船目标混乱。
雷达
首先定义雷达系统参数。使用一个x波段雷达在10 GHz 5度名义波束宽度。将使用一个线性阵列。
频率= 10 e9;beamwidthAz = 5;
名义距离分辨率是5米。短脉冲将被用于简单。
rngRes = 5;
数据将被收集在range-time。80次脉冲将收集在100赫兹更新速度缓慢,这样目标区间迁移是可见的。
numPulses = 80;updateRate = 100;
的radarTransceiver
默认情况下样品整个明确的地带。由于多普勒处理不需要对于这个示例,您可以使用一个脉冲重复频率规范在雷达,远远大于所需的更新速度。这个减少的数量范围内加快模拟样本,避免内存溢出。50 kHz的脉冲重复频率有一个明确的范围约3公里,足以包含整个场景范围内第一个歧义。
prfAct = 50 e3;
整个夏令时间采样率必须使用多个实际的脉冲重复频率。使用所需的距离分辨率找到所需的采样率调整PRF来匹配这个约束。
Fs = 1 / range2time (rngRes);prfAct = Fs /轮(Fs / prfAct);
计算所需的uniformly-spaced元素数量达到理想的波束宽度,并创建一个线性阵列phased.ULA
。
sinc3db = 0.8859;numElems =装天花板(2 * sinc3db / (beamwidthAz *π/ 180));λ= freq2wavelen(频率);数组= phased.ULA (numElems,λ/ 2);
现在创建的radarTransceiver
与这些参数对象。
rdr = radarTransceiver;rdr.TransmitAntenna。OperatingFrequency =频率;rdr.ReceiveAntenna。OperatingFrequency =频率;rdr.TransmitAntenna。传感器=数组;rdr.ReceiveAntenna。传感器=数组;rdr.Waveform。脉冲重复频率= prfAct;rdr.Waveform。SampleRate = Fs; rdr.Receiver.SampleRate = Fs; rdr.Waveform.PulseWidth = 1/Fs;%每脉冲短脉冲和一个样本
场景
创建一个radarScenario
。使用指定的更新率并设置停止时间早些时候结束的最后更新时间间隔。
场景= radarScenario (UpdateRate = UpdateRate StopTime = numPulses / UpdateRate);
将雷达11米原点。该雷达将面临+ X方向的水平。
rdrHeight = 11;平台(= rdr场景中,传感器,位置= [0 0 rdrHeight]);
使用surfaceReflectivitySea
创建反射率模型。您将使用混合反射率垂直极化和海洋状态模型4。反射率模型具有内置的乘法噪声称为“斑点”。使用散斑的威布尔分布形状参数为0.7,并计算所需的尺度参数平均散斑保持在1。的意思是1时,散斑噪声可以增加反射率的变化无需修改意味着反射率。
seaState = 4;spckShape = 0.7;spckScale = 1 /γ(1 + 1 / spckShape);反射= = surfaceReflectivitySea(模型“混合”极化=“V”、SeaState = SeaState斑纹=“威布尔”SpeckleShape = spckShape SpeckleScale = spckScale);
现在配置表面区域。用一块650 -由650米的海面开始1公里从雷达(+ X方向)。的边界
参数中指定的两点形式列表面相反的角落。
seaStartX = 1 e3;seaLen = 650;bdry = [seaStartX;0]+ [0 1;1/2 1/2]* seaLen;
使用默认的海面光谱模型的表面分辨率不超过1/4th雷达的距离分辨率。需要使用的实际分辨率均匀分裂表面的长度。
surfRes = rngRes / 4;surfRes = seaLen /装天花板(seaLen / surfRes);规范= seaSpectrum(分辨率= surfRes);
最后,使用searoughness
函数来得到一个风速对应于指定的海况,表面并创建对象。
[~,~,windSpd] = searoughness (seaState);海平面(场景、边界= bdry SpectralModel =规范,RadarReflectivity =反射,= windSpd)风速;
目标
现在定义的表面,将目标添加到场景。一个长方体的目标将被用来模拟一个小船。使用目标尺寸6 -由- 1.5 - 1.5米。用一个结构体字段指定目标维度长度
,宽度
,高度
,OriginOffset
。我们的目标有一个固定的RCS 4 dBsm。设置原点偏移,这样目标的位置就对应于长方体的底面的中心。
tgtRcs = 4;% dBsmtgtDims =结构(长= 6,宽= 1.5,高= 1.5,OriginOffset = [0 0 1.5 / 2]);
把目标放在中间的海面补丁在海平面。对于这么大的一艘船,将底部约0.4米,被称为草案。
tgtPos = [seaStartX + seaLen / 2 0 0];tgtDraft = 0.4;
更新目标的Z坐标位置的底部表面下的指定目标草案的价值。表面的高度可以找到的高度
方法SurfaceManager
(注意,该方法以用于位置向量)。重复此操作将在模拟循环目标保持在一个固定的高度相对于表面。的目标水平以下的一些表面,观察到的RCS会减少。
tgtPos(3) =身高(scenario.SurfaceManager, tgtPos。) - - - tgtDraft;
让目标在10 m / s的航向150度,这是30度的课程直接向雷达,并形成速度矢量。
tgtSpd = 10;tgtHdg = 150;tgtVel = tgtSpd * [cosd (tgtHdg)信德(tgtHdg) 0];
与目标位置和速度的定义,创建一个运动轨迹和目标添加到现场。的取向
财产的轨迹是一个旋转矩阵,将scenario-frame向量转换为平台框架向量。使用rotz
并置结果得到旋转矩阵对应于指定的标题。
tgtOrient = rotz (tgtHdg)。”;= tgtPos tgtTraj = kinematicTrajectory(位置,速度= tgtVel取向= tgtOrient);平台(场景、轨迹= tgtTraj尺寸= tgtDims签名= rcsSignature = tgtRcs)(模式);
杂乱的一代
使用clutterGenerator
方法创建一个场景ClutterGenerator
对象,使雷达的杂乱的一代。设置杂乱1/4th距离分辨率,分辨率和禁用自动mainbeam杂乱。
clut = clutterGenerator(场景、rdr分辨率= rngRes / 4, UseBeam = false);
计算参数RingClutterRegion
将包含尽可能多的表面与一个常数方位覆盖,这样没有偏差的大小杂乱返回范围由于有限大小的表面。方位中心0由于雷达指出+ X方向。
azcov = 2 * asind (seaLen / 2 / (seaStartX + seaLen));minr =√罐内azcov / 2) ^ 2 + 1) * seaStartX;maxr = seaStartX + seaLen;azcen = 0;
检查计算方位覆盖至少是4.5 x 3 dB方位波束宽度,为了充分捕捉表面返回通过第一个旁瓣,然后使用ringClutterRegion
方法来指定地区杂乱的一代。
azcov / beamwidthAz
ans = 4.5439
ringClutterRegion (clut、minr maxr、azcov azcen);
运行仿真和收集的回报
使用theaterPlot
可视化场景配置之前运行。的surfacePlotter
和clutterRegionPlotter
用于可视化表面高度随着地区指定为杂乱的一代。的RingClutterRegion
前面创建将显示红色轮廓。杂波区域绘制在一个水平面在指定的高度。情节混乱地区使用5米高的地区明显高于表面在自顶向下的视图中。
tp = theaterPlot (XLimits = bdry (1:), YLimits = bdry (2:));页= = platformPlotter (tp,标志“o”MarkerFaceColor =“红色”MarkerEdgeColor =“红色”DisplayName =“目标”);cp = clutterRegionPlotter (tp, RegionFaceColor =“没有”RegionEdgeColor =“红色”DisplayName =“混乱地区”);sp = surfacePlotter (tp, DisplayName =“海面”);regPlotHeight = 5;plotPlatform (pp、tgtPos tgtVel、tgtDims tgtOrient) plotClutterRegion (cp, clutterRegionData (clut regPlotHeight)) plotSurface (sp, surfacePlotterData (scenario.SurfaceManager))标题(“场景概述”)
注意,环形混乱地区覆盖尽可能多的表面不外表面边界。
的推进
方法用于推进模拟的场景是由一个框架和确定停止时间。在模拟循环,首先更新目标的Z坐标位置来匹配当前表面高度。的收到
场景的方法用于收集IQ信号雷达接收到的场景。返回是求和数组元素和存储在矩阵PH值
。
帧= 0;而推进(场景)=帧+ 1;%更新目标位置tgtTraj.Position(3) =身高(scenario.SurfaceManager, tgtTraj.Position。) - - - tgtDraft;%收集sum-beam范围配置文件iqsig =接收(场景);PH值(:帧)=总和(iqsig {1}, 2);结束
使用phased.RangeResponse
对象执行匹配滤波的概要文件。所需的检索与匹配滤波器系数波形
房地产在雷达。
resp = phased.RangeResponse (RangeMethod =“匹配滤波器”SampleRate = Fs);[PH值,rngGates] = resp (PH值,getMatchedFilter (rdr.Waveform));
视频数据只包括范围包含一些杂物返回的垃圾箱,定义使用的最小和最大半径RingClutterRegion
早些时候。
minRng =√rdrHeight ^ 2 + minr ^ 2);maxRng =√rdrHeight ^ 2 + maxr ^ 2);minGate =找到(rngGates > = minRng 1“第一”);maxGate =找到(rngGates < = maxRng 1“最后一次”);rngGates = rngGates (minGate: maxGate);酸碱= (minGate: maxGate:);
现在情节range-time数据。
显示亮度图像(1:numPulses rngGates / 1 e3 20 * log10 (abs (PH))) ch = colorbar;ch.Title。字符串=“瓦分贝”;cl =爬;爬([cl(2) -60年,cl(2)])集(gca,“ydir”,“正常”)包含(“脉冲指数”)ylabel (的距离(公里))标题(“脉冲数据”)
目标信号是可见的在中心范围内,几箱子的范围迁移。
结论
在这个例子中你模拟一个静止的海岸监视雷达海面杂波。延长长方体目标被用来模拟一个附带部分闭塞的海面。迁移目标的可见范围由于高分辨率和雷达的更新速度缓慢。