介绍雷达杂波仿真场景
这个例子展示了如何生成单站地面杂波信号和探测雷达的场景。混乱将生成检测单站radarDataGenerator
杂乱,返回的信号将与生成radarTransceiver,
使用这两种同质表面和实际地形数据从DTED文件。theaterPlot
用于可视化场景表面和杂乱的一代。
配置场景杂乱的一代
配置一个雷达的场景模拟表面杂物涉及创建一个radarScenario
对象,增加与安装雷达平台,增加表面的对象定义场景表面的物理性质,并使杂乱代场景中特定的雷达。
选择一个雷达模型
杂乱的一代作为场景的一部分执行检测
和收到
方法。这些方法用于生成模拟雷达探测和IQ信号,分别。检测,包括measurement-level数据以及有用的元数据,使用radarDataGenerator
。智商为原始信号,使用radarTransceiver
。
本节开始radarDataGenerator
。定义一些典型medium-PRF侧视机载雷达的脉冲多普勒参数。使用-90度安装偏航角的雷达面临着正确的平台和一个10度俯角雷达是指向地面。越来越多的横摇角可以0表示没有旋转天线孔径。使用4 GHz的中心频率,80米的距离分辨率,12 kHz脉冲重复频率128脉冲/相干处理区间(CPI)。
mountAng = (-90 10 0);fc = 4 e9;rngRes = 80;脉冲重复频率= 12 e3;numPulses = 128;
的radarDataGenerator
是一种统计模型,并不直接模拟天线模式。相反,它的属性定义的视野和角分辨率。使用10度的视野,在每个方向角分辨率。这个配置与模拟单个mainlobe没有角的估计。
fov = 10 [10];动物遗传资源=视场;
构造一个radarDataGenerator
从这些参数。每个CPI雷达更新一次。安装角点的雷达侧向方向。让视野和角分辨率等于波束宽度。集DetectionCoordinates
来“场景”
输出检测场景坐标中容易检查的结果。计算出明确的距离和径向速度,使范围和雷达数据与歧义。歧义可以计算的time2range
和dop2speed
功能。
c = physconst (“光速”);λ= freq2wavelen (fc);rangeRateRes =λ/ 2 *编码脉冲/ numPulses;unambRange = time2range(1 /脉冲重复频率);unambRadialSpd = dop2speed(脉冲/ 4,λ);cpiTime = numPulses /脉冲重复频率;rdr = radarDataGenerator (1,“没有扫描”,“UpdateRate”1 / cpiTime,“MountingAngles”mountAng,…“DetectionCoordinates”,“场景”,“之内”,真的,“HasElevation”,真的,“HasFalseAlarms”假的,…“HasRangeRate”,真的,“HasRangeAmbiguities”,真的,“HasRangeRateAmbiguities”,真的,…“MaxUnambiguousRadialSpeed”unambRadialSpd,“MaxUnambiguousRange”unambRange,“CenterFrequency”足球俱乐部,…“FieldOfView”fov,“AzimuthResolution”动物遗传资源(1)“ElevationResolution”动物遗传资源(2)…“RangeResolution”rngRes,“RangeRateResolution”,rangeRateRes);
创建一个场景
的radarScenario
对象是模拟的高层经理。雷达的情况下可能是地球,WGS84地球模型,或者它可能是平的。为了使用一个简单场景,使使用简单的运动轨迹的平台。集UpdateRate
0让场景获得场景中的对象的更新速度。
场景= radarScenario (“UpdateRate”0,“IsEarthCentered”、假);
添加一个雷达平台的场景。使用一个直线运动轨迹开始1.5公里,和移动+ Y方向的70 m / s,潜水10度角。东方平台平台框架+ X方向运动的方向。使用传感器
属性来挂载雷达。
rdrAlt = 1.5 e3;rdrSpd = 70;rdrDiveAng = 10;rdrPos = [0 0 rdrAlt];rdrVel = rdrSpd * [0 cosd (rdrDiveAng)信德(rdrDiveAng)];rdrOrient = rotz (90)。';rdrTraj = kinematicTrajectory (“位置”rdrPos,“速度”rdrVel,“定位”,rdrOrient);rdrplat =平台(场景中,“传感器”rdr,“轨迹”,rdrTraj);
定义场景表面
场景表面的物理性质可以通过使用指定的场景landSurface
和海平面
方法定义地区陆地和海洋表面的类型。每个表面添加到场景是一个矩形区域有一个关联的雷达反射率模型和参考高度。土地表面可能另外有相关联的静态地形数据,和海洋表面可能有一个关联的光谱运动模型。如果没有地形数据或光谱模型,表面可能是无界的,允许均匀杂波的一代。
创建一个简单的无限与constant-gamma地表反射率模型。使用surfaceReflectivityLand
函数创建一个反射率模型和附加的表面反射率模型RadarReflectivity
参数。使用伽马值为-20分贝。
反射= surfaceReflectivityLand (“模型”,“ConstantGamma”,“伽马”,-20);srf = landSurface(场景中,“RadarReflectivity”,反射)
srf = LandSurface属性:RadarReflectivity: [1 x1 surfaceReflectivityLand] ReflectivityMap: 1 ReferenceHeight: 0边界:[2 x2双]地形:[]
的ReferenceHeight
财产给表面的高度不变时没有指定地形,地形或原点高度如果指定地形引用。的ReflectivityMap
属性相关的只有当使用一个定制的反射率模型,并允许不同的反射率曲线有关的不同部分的表面。的边界
属性给出了矩形边界表面的两点。的元素边界
可以+ /负无穷到显示表面的在一个或多个方向。检查上面创建的表面看到的边界是无界的四面八方。
srf.Boundary
ans =2×2负无穷到正无穷正
访问SurfaceManager
场景中看到表面的财产已经添加的对象,以及任何额外的选项相关的场景表面。
scenario.SurfaceManager
ans = SurfaceManager属性:UseOcclusion: 1表面:[1 x1 radar.scenario.LandSurface]
的UseOcclusion
属性可以设置假禁用视线遮挡的表面,如地形。
使混乱的一代
杂波发生器
单站杂乱代启用特定雷达使用场景clutterGenerator
方法。这个方法接受参数名称-值对配置杂乱的一代。这个配置执行radar-by-radar基础上,同时可以模拟多个雷达杂波生成设置适合每个雷达。的clutterGenerator
方法将返回一个句柄ClutterGenerator
对象。
从大型连续反射表面散射是由一组近似点。默认情况下,ClutterGenerator
在“统一”散射体分布模式运营。在这种模式下,散射随机放置表面均匀的密度。这是一个灵活的方式,可以用于任何表面和雷达的配置。参见下面一节题为“模拟表面光滑Range-Doppler雷达杂波”的示范不同散射体分布模式,可以适应Range-Doppler决议细胞在一些情况下约束。当操作在均匀散射体分布模式,决议
属性指定杂波散射的名义间隔用来表示表面反射。
的UseBeam
房地产是一个逻辑标量指示是否应该使用自动生成mainlobe混乱(见下一节题为“杂波区域”的更多细节)。的RangeLimit
属性用于地方范围的上限杂乱的一代,这是重要的情况下mainlobe杂乱一代正在使用和有一个无界的足迹。
创建一个ClutterGenerator
对象,使杂乱的一代上面创建的雷达。使用一个决议
一半的雷达距离分辨率的为了得到一些杂波散射/样本范围。集UseBeam
真正使杂乱自动生成视野内的雷达。使用一个RangeLimit
12公里,也就是短于明确的范围。
clutRes = rngRes / 2;clutRngLimit = 12 e3;clut = clutterGenerator (rdr的场景,“决议”clutRes,“UseBeam”,真的,“RangeLimit”clutRngLimit)
clut = ClutterGenerator属性:ScattererDistribution:“制服”决议:40个区域:[1 x0 radar.scenario。RingClutterRegion] UseBeam: 1 UseShadowing: 1 RangeLimit: 12000雷达:[1 x1 radarDataGenerator] SeedSource:“自动”
的UseShadowing
属性是一个逻辑标量用于启用/禁用跟踪(表面遮挡)。阴影只是相关的表面与地形数据或谱模型。
杂波发生器有两个只读属性。的雷达
属性存储处理相关的雷达对象,传递到clutterGenerator
方法。的地区
属性包含一组用户定义的“杂波区域”。
混乱的地区
表面杂波分布在整个区间范围从雷达高度和(或范围一直延伸到地平线 如果使用平的情况下)。从-90度分布在仰角地平线仰角,所有360度方位。最后,表面杂波分布在多普勒由于平台运动。
有两个选项指定区域表面的杂物。第一个是自动mainlobe杂乱,杂乱的足迹的mainlobe雷达天线。这是只有当所使用的雷达一个定义良好的方位和仰角梁双边波束宽度小于180度。为radarDataGenerator
“梁”实际上是定义的视野FieldOfView
财产,由轮廓的足迹不断的方位角和仰角。为radarTransceiver
锥形或扇形束假定基于数组的类型,和梁是3 dB低于峰值增益。
第二个选项是使用ringClutterRegion
杂波发生器的方法指定一个环形区域的场景生成表面的混乱。这种类型的区域被定义为一个最小和最大地面范围(相对于雷达天底点)和一个范围和中心在方位角度。这个区域类型是用于捕捉旁瓣和backlobe杂乱,mainlobe杂乱返回外3 dB宽度,或从其他地区产生杂乱感兴趣的,比如在目标平台的位置。
下图说明了这两个区域类型。梁足迹地区显示为红色的椭圆光束相交的地方。两个环形区域所示,一个直接在雷达捕捉高度回报,,另一个用于捕捉一些backlobe杂乱的回报。
演示的效用可定制的环形区域捕获杂物从任意天线模式的叶,返回上述几何再次所示在自上而下的视图中,获得模式投射到地面。注意到一个重要backlobe包含了环区域。圆形区域(可以通过设置最低地面范围为0)可以用来捕获高度返回。一个额外的地区包括mainlobe也来演示如何使用这个来捕获更多的mainlobe回报,比如从零到零。
的radarDataGenerator
模拟器是一个乐此不疲检测能力,只有模拟mainlobe视野内的检测。因此,有UseBeam
的ClutterGenerator
设置为true足以完全捕捉杂波干扰的影响在使用目标检测能力的平台radarDataGenerator
。
可视化和运行情况
剧院绘图仪
的theaterPlot
可以使用对象还有各种戏剧策划者创建可定制的场景的视觉表示。首先创建戏剧情节。
tp = theaterPlot;
现在创建绘图机对象表面的场景中,杂波区域,导致雷达探测。为指定的值DisplayName
属性用于传奇条目。
surfPlotter = surfacePlotter (tp,“DisplayName的”,“场景表面”);clutPlotter = clutterRegionPlotter (tp,“DisplayName的”,“混乱地区”);detPlotter = detectionPlotter (tp,“DisplayName的”,雷达信号检测的,“标记”,“。”,“MarkerEdgeColor”,“红色”,“MarkerSize”4);
现在的场景、杂波发生器和策划者,配置使用检测
方法场景模拟一个单帧,收集检测。
依据=检测(场景);
情节混乱地区,在这种情况下仅仅是梁足迹,以及检测位置。因为这里使用的陆地表面是无界的,plotSurface
电话应该去年这样的曲面图扩展适当的轴的限制。的clutterRegionData
方法杂波发生器是用来获得数据混乱地区绘图仪的阴谋。同样,对于表面绘图仪,surfacePlotterData
表面上的场景管理器使用方法。
plotClutterRegion (clutPlotter clutterRegionData (clut) detpos = cell2mat (cellfun (@ (t) t.Measurement(1:3)。”相同,“UniformOutput”,0));plotDetection (detPlotter detpos) plotSurface (surfPlotter surfacePlotterData (scenario.SurfaceManager))
检测位置可以看到沿径向线安排相应的雷达的方位和多普勒分辨率垃圾箱。的radarDataGenerator
增加了噪声检测的位置,所以可能会返回检测与梁外的位置,足迹。
智商模拟杂波信号
现在您将创建一个radarTransceiver
具有类似雷达系统参数和模拟杂波信号电平。这个函数helperMakeTransceiver
快速创建一个收发器提供所需的系统参数。
定义所需的波束宽度。对于比较上述场景,只是让波束宽度相等的视野。
beamwidth3dB =视场;
由此产生的radarTransceiver
将使用一个phased.CustomAntennaElement
近似均匀矩形数组指定的波束宽度,这是建议加快模拟当只有一笔梁是必要的。
useCustomElem = true;rdriq = helperMakeTransceiver (fc, beamwidth3dB rngRes,脉冲重复频率,useCustomElem);
使用相同的安装角度和脉冲的数量。
rdriq。MountingAngles = mountAng;rdriq。NumRepetitions = numPulses;
重新创建相同的场景中,使用这个新的雷达模式。开始通过调用释放
对系统对象将被重用。
发行版(rdrTraj)场景= radarScenario (“UpdateRate”0,“IsEarthCentered”、假);平台(场景中,“传感器”rdriq,“轨迹”,rdrTraj);landSurface(场景中,“RadarReflectivity”,反射);
雷达使杂乱的一代。这次,禁用梁足迹混乱地区的一个定制的环形区域。
rdriq clutterGenerator(场景,“决议”clutRes,“UseBeam”假的,“RangeLimit”,clutRngLimit);
如果clutterGenerator
方法被称为没有任何输出参数,如上图,所构造的处理ClutterGenerator
可能仍然被发现的场景吗getClutterGenerator
方法通过在处理相关的雷达。
clut = getClutterGenerator(场景,rdriq);
在创建了ClutterGenerator
,你可以使用ringClutterRegion
方法来创建一个null-to-null足迹地区杂乱的一代。使用一个简单的估计null-to-null波束宽度约2.5倍3 dB波束宽度,然后找到最低仰角包括梁的边缘附近,最后把它降到最低地面范围。
beamwidthNN = 2.5 * beamwidth3dB;minel = -mountAng (2) - beamwidthNN (2) / 2;minrad = -rdrAlt /罐内(minel);
最大半径参数,只需找到相对应的地面范围混乱之前指定的限制范围。
maxrad = sqrt (clut。RangeLimit^2 - rdrAlt^2);
方位跨度将等于null-to-null波束宽度,方位中心将0度由于光束指向+ X方向在场景坐标。
azspan = beamwidthNN (1);azc = 0;ringClutterRegion (clut、minrad maxrad、azspan azc)
ans = RingClutterRegion属性:MinRadius: 3.6213 e + 03 MaxRadius: 1.1906 e + 04 AzimuthSpan: 25 AzimuthCenter: 0
使用提供的辅助函数,绘制ground-projected天线模式随着环杂波区域您刚刚创建。上面创建的环形区域很好地包含了整个mainlobe。
helperPlotGroundProjectedPattern (clut)
再次运行仿真框架,这一次使用的场景收到
方法来模拟IQ信号。
iqsig =接收(场景);PH = iqsig {1};
自radarTransceiver
使用一个自定义元素,由此产生的信号将格式化的夏令时间样品沿着第一个维度和脉冲指数(标准时间)第二个维度。这是历史阶段(PH)矩阵。画一个DC-centered range-Doppler地图(RDM)使用helperPlotRDM
函数。
图helperPlotRDM (PH值,rngRes,脉冲重复频率,numPulses)
使用提供的辅助函数来重建戏剧情节可视化和查看环混乱地区。
helperTheaterPlot (clut)
模拟表面范围扫描雷达的配置文件
支持扫描雷达自动mainlobe杂物选项。在本节中,您将重新使用一个固定的场景扫描线性阵列收集每扫描单脉冲位置。您将添加几个固定的表面目标概要文件和查看结果范围。
首先重建雷达对象。这一次,只有通过方位波束宽度helper函数,这表明应该使用一个线性阵列。自定义元素不能用于线性阵列,如果使用自动mainlobe杂物选项,这样ClutterGenerator
数组的几何知识。减少距离分辨率40米,以减少杂波在门口。
useCustomElem = false;rngRes = 40;rdriq = helperMakeTransceiver (beamwidth3dB (1), fc, rngRes,脉冲重复频率,useCustomElem);
早些时候,使用相同的安装角度集和配置收发器1重复,这表明每扫描单脉冲位置。
numPulses = 1;rdriq。MountingAngles = mountAng;rdriq。NumRepetitions = numPulses;
现在配置电子扇形扫描。设置扫描限制在方位覆盖30度,无仰角扫描。设置扫描速率每扫描PRF表示单脉冲位置。
rdriq。ElectronicScanMode =“部门”;rdriq。ElectronicScanLimits = (-15 15; 0 0);rdriq。ElectronicScanRate =[脉冲重复频率;0);
重新创建场景和平台。设置场景停止时间运行1全扫描。使用相同的均匀的地表反射率模型使用。
场景= radarScenario (“UpdateRate”0,“IsEarthCentered”假的,“StopTime”30 /脉冲重复频率);平台(场景中,“传感器”rdriq,“位置”rdrPos,“定位”rotz (90)。');landSurface(场景中,“RadarReflectivity”,反射);
使混乱的一代,只使用3 dB梁足迹杂乱的一代。
rdriq clutterGenerator(场景,“决议”clutRes,“UseBeam”,真的,“RangeLimit”,clutRngLimit);
添加三个明亮的点目标间距为2公里沿横向距离方向的down-range 8公里。
tgtRCS = 40;% dBsm平台(场景中,“位置”(8 e3 2 e3 0),“签名”rcsSignature (“模式”tgtRCS));平台(场景中,“位置”(8 e3 0 0),“签名”rcsSignature (“模式”tgtRCS));平台(场景中,“位置”(8 e3 2 e3 0),“签名”rcsSignature (“模式”tgtRCS));
仿真运行,收集概要范围在每一个扫描位置,和绘制场景概述。使用信息
输出收到
记录使用的角度看雷达在每一帧。
rangeGates = 0: rngRes: (unambRange-rngRes);帧= 0;而推进(场景)=帧+ 1;[iqsig,信息]=接收(场景);lookAng(:帧)= info.ElectronicAngle;rangeProfiles(:,帧)= 20 * log10 (abs(总和(iqsig {1}, 2)));如果帧= = 1%初始策划斧子(1)=次要情节(1、2、1);helperPlotClutterScenario(场景、[][],ax (1) ax(2) =情节(1、2、2);rpHndl =情节(ax (2), rangeGates / 1 e3, rangeProfiles(:,帧));tHndl =标题(sprintf (框架:% d,方位:%。1 f度'帧,lookAng(帧)));网格在包含(的距离(公里))ylabel (“范围概要(瓦分贝)”)其他的%更新图helperPlotClutterScenario(场景、[][],ax (1) rpHndl。YData = rangeProfiles(:,框架);tHndl。字符串= sprintf (框架:% d,方位:%。1 f度'帧,lookAng(帧));结束drawnowlimitratenocallbacks结束
情节概要对距离和方位扫描角范围。
图显示亮度图像(lookAng (1:), rangeGates / 1 e3, rangeProfiles);集(gca),“ydir”,“正常”)包含(的方位扫描角(度))ylabel (的距离(公里))标题(“杂乱范围配置文件(瓦分贝)”)colorbar
这三个目标信号几乎不可见的约8公里范围。
模拟表面光滑Range-Doppler雷达杂波
到现在你有模拟表面杂物使用“制服”散射体分布模式。对于说的场景,radarTransceiver
雷达模型,光滑的表面(没有地形或光谱模型的表面),更快range-Doppler-adaptive模式可以使用最少数量的杂波散射更准确计算杂乱力量在每个range-Doppler分辨单元。
重现radarTransceiver,再用一个线性数组。自动mainlobe地区将不会使用在本节中,所以使用一个自定义元素加快速度。
useCustomElem = true;rdriq = helperMakeTransceiver (beamwidth3dB (1), fc, rngRes,脉冲重复频率,useCustomElem);
这一次,而不是扫描,你只会模拟一个单帧128脉冲,并进行多普勒处理。的NumRepetitions
财产,以及指定的脉冲重复频率,确定自适应多普勒分辨率的散射。
numPulses = 128;rdriq。MountingAngles = mountAng;rdriq。NumRepetitions = numPulses;
创建的场景像以前一样简单的同质表面。
场景= radarScenario (“UpdateRate”0,“IsEarthCentered”、假);landSurface(场景中,“RadarReflectivity”,反射);
的雷达再次飞行而面临+ X + Y方向的方向。
释放(rdrTraj)平台(场景中,“传感器”rdriq,“轨迹”,rdrTraj);
使混乱的一代。使用range-Doppler-adaptive散射,指定“RangeDopplerCells”
为ScattererDistribution
财产。包含三个目标,用60度一个环形区域的方位,和相同的最小/最大半径。
clut = clutterGenerator(场景、rdriq“ScattererDistribution”,“RangeDopplerCells”,“UseBeam”假的,“RangeLimit”,clutRngLimit);ringClutterRegion (clut、minrad maxrad 60 0);
添加相同的三个明亮的目标。
平台(场景中,“位置”(8 e3 2 e3 0),“签名”rcsSignature (“模式”tgtRCS));平台(场景中,“位置”(8 e3 0 0),“签名”rcsSignature (“模式”tgtRCS));平台(场景中,“位置”(8 e3 2 e3 0),“签名”rcsSignature (“模式”tgtRCS));
单帧的模拟运行,总和梁形式,和绘制。
iqsig =接收(场景);PH = iqsig {1};rngRes helperPlotRDM (PH值,脉冲重复频率,numPulses);
目标比在射程角情况下可见由于杂波的多普勒扩散。与如此大的混乱地区,同样的场景可能会超过35 x长与均匀散射体分布模拟。
从地形数据混乱
在前面的章节中,您从一个无限平面模拟均匀杂波。在本节中,您将使用一个DTED文件模拟杂波返回从一个地球场景真实地形数据。你将收集两帧杂乱回报——一个启用了跟踪和一个没有阴影,并比较结果。
首先创建场景中,这个时间设置IsEarthCentered
国旗为真为了使用DTED文件,由表面高度样品在一个纬度/经度网格。
场景= radarScenario (“UpdateRate”0,“IsEarthCentered”,真正的);
再次使用landSurface
方法,传递所需的DTED文件的名称的值地形
参数。的边界
参数可以用来限制域加载数据。一般来说,尽可能少的地形数据应该加载所需的特定的应用程序。在这种情况下,您将使用一个0.15 - 0.15度部分引用给定的DTED经度坐标。
refLLA = (39.43;-105.84);bdry = refLLA + [0 1; 1/2 1/2) * 0.15;
继续使用相同的constant-gamma反射率模型。使用输出参数处理表面创建对象。
srf = landSurface(场景中,“地形”,“n39_w106_3arc_v2.dt1”,“边界”bdry,“RadarReflectivity”,反射);
使用表面高度
方法参考点上方的平台,在指定的高度。
srfHeight =身高(srf, refLLA);rdrAlt = srfHeight + rdrAlt;rdrPos1 = [refLLA;rdrAlt];
在这个场景中,雷达将西方以直线的方式行进速度相同的使用。
rdrVelWest = (-rdrSpd 0 0);
地球场景需要指定轨迹信息中转地点纬度/经度/高度(LLA)格式使用geoTrajectory
对象。设置ReferenceFrame
ENU表示,使用enu2lla函数找到第二个航点对应于所需的速度矢量。如果没有指定平台的方向,它将自动的平台+ X方向对应于运动的方向(西)。因此,-90度安装偏航角点雷达北。
toa = [0, 1];%的时候到达每一个路标rdrPos2 = enu2lla (rdrVelWest rdrPos1”。“椭球体”)”。;rdrTrajGeo = geoTrajectory (“锚点”(rdrPos1 rdrPos2]。’,“TimeOfArrival”toa,“ReferenceFrame”,“ENU表示”);平台(场景中,“传感器”rdriq,“轨迹”,rdrTrajGeo);
创建杂波发生器。表面阴影是默认启用。
clut = clutterGenerator(场景、rdriq“决议”clutRes,“UseBeam”假的,“RangeLimit”,clutRngLimit);
创建一个环形区域与前面相同的参数。对于地球场景,在场景坐标方位角度顺时针从北引用,所以一个方位0中心仍然伴随着雷达的方向。
ringClutterRegion (clut、minrad maxrad、azspan azc);
模拟杂波换取一帧并保存生成的历史阶段。
iqsig =接收(场景);PH_withShadowing = iqsig {1};
戏剧情节不支持地球的可视化场景,所以使用提供的helper函数显示场景概述在当地ENU表示框架。这一次,地形绘制雷达坐标系和杂乱的补丁。注意到阴影区域中可以看到情节杂乱的差距补丁(青色)。这些补丁被其他地区的地形阻碍接近雷达。
helperPlotClutterScenario(场景)标题(“杂乱补丁——地形阴影”)
看到的差异,当不使用跟踪关闭跟踪,运行仿真框架,并保存结果。
clut。UseShadowing = false;iqsig =接收(场景);PH_noShadowing = iqsig {1};
情节杂乱的场景概述和注意,有些地区已经被杂物填满补丁。注意仍存在一些差距明显。这是因为混乱远离雷达面临的补丁,如果他们在另一边等,永远不会是可见的,不管的价值UseShadowing
财产。
helperPlotClutterScenario(场景)标题(“杂乱补丁——没有地形阴影”)
现在看到的阴影的影响,情节杂乱返回先前记录的信号。
图次要情节(1、2、1)helperPlotRDM (PH_withShadowing rngRes,脉冲重复频率,numPulses)标题(“RDM——地形阴影”次要情节(1、2、2)helperPlotRDM (PH_noShadowing rngRes,脉冲重复频率,numPulses)标题(“RDM——没有地形阴影”)设置(gcf“位置”得到(gcf“位置”)+ (560 0 0 0))
虽然这两种情况下“空白”区域由于山边坡雷达,还有大量的表面返回正确的图可见和不可见的阴影。
跟踪是一个重要的现象,当模拟杂波回来真正的表面,但它可能被禁用用于分析或者不需要。
结论
在本例中,您看到了如何配置一个雷达场景包括杂乱返回的一部分检测
和收到
方法,产生杂波检测和IQ信号radarDataGenerator
和radarTransceiver
,分别。您看到了如何定义一个区域的场景表面有一个关联的反射率模型,以及如何为杂乱的一代指定感兴趣的区域。表面阴影模拟生成杂物时返回与地形表面,和更快的range-Doppler-adaptive模式可用于与光滑表面说的场景。
支持功能
helperTheaterPlot
函数helperTheaterPlot (clut params)参数clut参数。父母=[]参数。检测=[]参数。ShowPatches = false结束如果isempty (params.Parent)%使戏剧情节的新形象图tp = theaterPlot (“父”甘氨胆酸,);其他的%使用指定的轴班(params.Parent) tp = theaterPlot (“父”,params.Parent);结束%找到目标tgt = clut.Scenario.Platforms(2:结束);如果~ isempty (tgt) tgtPos = cell2mat (cellfun (@ (t) t.Position、tgt。“UniformOutput”,0));结束%得到检测位置如果~ isempty (params.Detections) detPos = cell2mat (cellfun (@ (t) t.Measurement (1:3)。“params.Detections,“UniformOutput”,0));结束%让策划者如果~ isempty (tgt) platPlotter = platformPlotter (tp,“DisplayName的”,“目标”,“标记”,“+”,“MarkerEdgeColor”,“r”);结束如果~ isempty (params.Detections) detPlotter = detectionPlotter (tp,“DisplayName的”,雷达信号检测的,“标记”,“。”,“MarkerEdgeColor”,“红色”,“MarkerSize”4);结束clutPlotter = clutterRegionPlotter (tp,“DisplayName的”,“混乱地区”,“ShowPatchCenters”,params.ShowPatches);surfPlotter = surfacePlotter (tp,“DisplayName的”,“场景表面”);%做策划如果~ isempty (tgt) plotPlatform (platPlotter tgtPos);结束plotHeight = 1;plotClutterRegion (clutPlotter clutterRegionData (clut plotHeight))如果~ isempty (params.Detections) plotDetection (detPlotter detPos)结束plotSurface (surfPlotter surfacePlotterData (clut.Scenario.SurfaceManager))结束
helperMakeTransceiver
函数rdr = helperMakeTransceiver (bw, fc,游侠,脉冲重复频率,useCustomElem)%这个helper函数创建了一个radarTransceiver从一些基本的系统%的参数。c = physconst (“光速”);rdr = radarTransceiver;rdr.TransmitAntenna。OperatingFrequency = fc;rdr.ReceiveAntenna。OperatingFrequency = fc;rdr.Waveform。脉冲重复频率=脉冲重复频率;sampleRate = c /(2 *管理员);sampleRate =脉冲重复频率*轮(sampleRate /脉冲重复频率);%调整与脉冲重复频率匹配约束rdr.Receiver。SampleRate = SampleRate;rdr.Waveform。SampleRate = SampleRate;rdr.Waveform。脉冲宽度= 2 *管理员/ c;如果isempty (bw)%使用一个各向同性的元素rdr.TransmitAntenna。传感器= phased.IsotropicAntennaElement;rdr.ReceiveAntenna。传感器= phased.IsotropicAntennaElement;其他的%得到所需的元素数量以满足指定的波束宽度sinc3db = 0.8859;N =圆(sinc3db * 2. / (bw(:)。*π/ 180));N =翻转(N);λ= freq2wavelen (fc, c);如果元素个数(N) = = 1%使用back-baffled齿龈数组= phased.ULA (N,λ/ 2);array.Element。BackBaffled = true;其他的%使用URA所言数组= phased.URA (N,λ/ 2);结束如果useCustomElem%使用一个自定义的元素对应和梁阿兹= -180:.4:180;el = -90: .4:90;G =模式(数组、fc az, el,“类型”,“efield”,“正常化”、假);M = 20 * log10 (abs (G));P =角(G);E = phased.CustomAntennaElement (“FrequencyVector”(fc - 1枭龙fc + 1),…“AzimuthAngles”阿兹,“ElevationAngles”埃尔,“MagnitudePattern”米,“PhasePattern”,P);rdr.TransmitAntenna。传感器= E;rdr.ReceiveAntenna。传感器= E;其他的rdr.TransmitAntenna。传感器=数组;rdr.ReceiveAntenna。传感器=数组;结束结束结束
helperPlotGroundProjectedPattern
函数helperPlotGroundProjectedPattern (clut)%输入一个ClutterGenerator radarTransceiver有关。情节%杂波区域和ground-projected增益模式。假设一个平%无限地平面在Z = 0。纳兹= 360 * 4;Nel = 90 * 4;%的力量更新补丁发电机传感器数据clut.PatchGenerator.updateSensorData (clut.Platform clut.Radar、clut.Scenario.SimulationTime clut.UseBeam);pos = clut.PatchGenerator.SensorData.Position;fc = clut.PatchGenerator.SensorData.CenterFrequency;B = clut.PatchGenerator.SensorData.SensorFrame;maxGndRng = clut.RangeLimit;%得到方位/高程在场景坐标网格纳兹azScen = linspace (-180180);maxEl = -atand (pos (3) / maxGndRng);elScen = linspace(-90年,maxEl Nel);%将阿兹/ el传感器坐标系[losxScen, losyScen loszScen] = sph2cart (azScen *π/ 180,elScen。*π/ 180,1);R = B。';losx = R (1,1) * losxScen + R (1、2) * losyScen + R (1、3) * loszScen;losy = R (2, 1) * losxScen + R (2, 2) * losyScen + R (2、3) * loszScen;losz = R (3,1) * losxScen + R (3 2) * losyScen + R (3,3) * loszScen;(阿兹,el, ~) = cart2sph (losx、losy losz);阿兹=阿兹* 180 /π;el = el * 180 /π;%得到增益模式传感器= clut.Radar.TransmitAntenna.Sensor;G =传感器(fc(阿兹(:)厄尔(:))。');G =重塑(G,大小(az));G = G / max (G (:));轮胎式龙门吊= pos (3)。/ loszScen;冲浪(losxScen。*轮胎式龙门吊,losyScen。*轮胎式龙门吊,0(大小(az)), 20 * log10 (abs (G)))轴平等的阴影平这一视图(0,90)([-60 0])在为reg = clut。地区helperPlotClutterRegion(reg,pos);结束持有从结束
helperPlotRDM
函数helperPlotRDM (PH值、测距仪、脉冲重复频率numPulses)%这个helper函数形式和阴谋一个历史阶段矩阵c = physconst (“光速”);%形式DC-centered RDM和转换为瓦分贝RDM = fftshift (fft (PH值,[],2),2);RDM = 20 * log10 (abs (RDM));%范围和多普勒垃圾箱rngBins = 0:管理员:c /(2 *脉冲重复频率);dopBins =脉冲重复频率/ 2:编码脉冲/ numPulses:脉冲重复频率/ 2-prf / numPulses;%的阴谋显示亮度图像(dopBins rngBins / 1 e3, RDM);集(gca),“ydir”,“正常”)包含(“多普勒(Hz)”)ylabel (的距离(公里))mx = max (RDM (:));如果~ isinf (mx)爬([mx-60 mx]);结束colorbar结束