主要内容

模拟被动雷达传感器和雷达干扰

这个例子展示了如何建模和模拟的输出的主动和被动雷达传感器使用radarDataGenerator.在本例中,您将观察射频(RF)干扰如何影响雷达的探测性能。此外,还可以使用被动雷达传感器来估计射频干扰的位置和类型。

创建场景

评估雷达的跟踪性能需要对无线电频率(RF)场景建模。建模流程如下:

  • 产生射频排放。

  • 传播排放并反映平台的排放。

  • 接收辐射,计算干扰损失,并生成检测。

在本例中,您使用一个由三个平台组成的场景来执行这些步骤:

  1. 空中平台以每小时500公里的速度从场景底部向北飞行

  2. 机载平台以每小时600公里的速度从场景顶部向南飞行

  3. 空中平台以每小时700公里的速度向东飞行

首先,创建场景并设置场景持续时间,然后创建三个机载平台。

场景=雷达场景;scene.StopTime=10;% s1号平台:空降并以500公里/小时向北飞行社民党= 500 * 1 e3/3600;% m / sWp1 = [0 0 -6000];wp2 =(社民党*的场景。StopTime 0 -6000];toa = [0;scene.StopTime];平台(场景,“轨迹”waypointTrajectory (“锚点”, (wp1;wp2),“TimeOfArrival”toa));2号平台:空降并以600公里/小时向南行驶社民党= 600 * 1 e3/3600;% m / swp1 = [30 e3 +社民党*的场景。StopTime 0 -6000];Wp2 = [30e3 0 -6000];toa = [0;scene.StopTime];平台(场景,“轨迹”waypointTrajectory (“锚点”, (wp1;wp2),“TimeOfArrival”toa));3号平台:空降东行,时速700公里spd=700*1e3/3600;% m / sWp1 = [10e3 1e3 -6000];Wp2 = [10e3 1e3+spd*场景。StopTime -6000);toa = [0;scene.StopTime];平台(场景,“轨迹”waypointTrajectory (“锚点”, (wp1;wp2),“TimeOfArrival”toa));

使用theaterPlot创建一个显示场景中的平台及其轨迹的显示。

ax =轴;theaterDisplay = theaterPlot (“父”ax,“AxesUnit”, (“公里”“公里”“公里”],“XLim”(-10000 40000),“YLim”, [-20000 20000],“ZLim”(1) e7 1 e7));视图(-90 [90])%交换X和Y轴补丁(“XData”,[-10000 -10000 40000 40000],“YData”,[-20000 20000 20000 -20000],“EdgeColor”“没有”“FaceColor”(0.8 0.8 0.8),“DisplayName的”“地面”);platPlotter = platformPlotter (theaterDisplay,“DisplayName的”“平台”“MarkerFaceColor”“k”);plotPlatform (platPlotter vertcat (scene.platformPoses.Position));trajPlotter = trajectoryPlotter (theaterDisplay,“DisplayName的”“轨迹”“线条样式”“- - -”);alltrajectory = cellfun(@(x) x. trajectory . lookuppose (linspace(0,scene. stoptime,10)),平台,“UniformOutput”、假);plotTrajectory (trajPlotter allTrajectories);

图中包含一个轴对象。axis对象包含3个类型为patch, line的对象。这些物体代表地面,平台,轨迹。

干扰发射存在时的雷达探测

通常,雷达工作在其他不需要的射频发射干扰雷达发射的波形的环境中。当这种情况发生时,雷达在干扰信号方向的检测性能下降。将射频发射器连接到场景底部的平台(第一个平台),将雷达连接到场景顶部的平台(第二个平台)。

创建射频发射器

模型射频发射使用radarEmitter对象。发射器呈前视配置,方位视场为20度,包括场景中的其他两个平台。有效各向同性辐射功率(EIRP)决定了干扰信号的强度。波形类型是一个用户定义的值,用于枚举场景中出现的各种波形类型。对于这个场景,使用值0来指示噪声波形类型。

%创建干扰发射器。rfEmitter = radarEmitter (1,“没有扫描”...“视野”20 [5],...% [z el] deg“附近”, 200,...% dBi“CenterFrequency”,300e6,...%赫兹“带宽”, 30 e6,...%赫兹“WaveformType”, 0)%使用0表示类似噪音的排放
rfEmitter = radarEmitter with properties: EmitterIndex: 1 UpdateRate: 1 ScanMode: 'No scanning' MountingLocation: [0 00] MountingAngles: [0 00] FieldOfView: [2x1 double] MechanicalAngle: 0 LookAngle: 0 HasElevation: 0 EIRP: 200 CenterFrequency: 300000000 Bandwidth: 30000000 WaveformType: 0 ProcessingGain: 0

将发射器连接到第一个平台。

platEmit = scene.Platforms {1};platEmit。发射器= rfEmitter
platEmit = Platform with properties: PlatformID: 1 ClassID: 0 Position: [0 0 -6000] Orientation: [0 00] Dimensions: [1x1 struct] Trajectory: [1x1 waypointTrajectory] PoseEstimator: [1x1 insSensor] Emitters: {[1x1 radarEmitter]} Sensors: {} Signatures: {[1x1 rcsSignature]}

创建单站雷达

在第二平台上装备单基地雷达。使用radarDataGenerator为这种雷达建模。首先,创建一个单基地雷达使用radarDataGenerator.配置雷达的安装方向,以便它扫描平台前面的方位角扇区。启用INS输入,以便雷达可以使用平台的姿态估计器以场景坐标输出检测结果。启用干扰输入端口,使上面发射器产生的干扰信号可以传递给雷达。

雷达= radarDataGenerator (2“部门”...“DetectionMode”“单站”...“UpdateRate”, 12.5,...%赫兹“视野”10 [2]);% [z el] deg雷达。安装角度= [0 0 0];% [Z Y X雷达。之内= true;雷达。InterferenceInputPort = true;雷达。DetectionCoordinates =“场景”
雷达与属性= radarDataGenerator: SensorIndex: 2 UpdateRate: 12.5000 DetectionMode:“单站”ScanMode:“机械”InterferenceInputPort: 1 EmissionsInputPort: 0 MountingLocation: [0 0 0] MountingAngles: [0 0 0] FieldOfView: 10 [2] RangeLimits: 100000年[0]DetectionProbability: 0.9000 FalseAlarmRate: 1.0000 e-06 ReferenceRange:100000 TargetReportFormat: 'Clustered detections'显示所有属性

把雷达安装在第二个平台上。

platRadar = scene.Platforms {2};platRadar。传感器=雷达;

更新显示以显示场景中的平台、雷达和发射器。

emitterColor = [0.9290 0.6940 0.1250];radarColor = [0 0.4470 0.7410];platEmitPlotter = platformPlotter (theaterDisplay,“DisplayName的”“射频发射器”“标记”' d '“MarkerFaceColor”, emitterColor);platRadarPlotter = platformPlotter (theaterDisplay,“DisplayName的”“单站雷达”“标记”' d '“MarkerFaceColor”, radarColor);platPlotter。DisplayName =“目标”;clearData (platPlotter);covPlotter = coveragePlotter (theaterDisplay,“α”, 0.2 [0]);detPlotter = detectionPlotter (theaterDisplay,“DisplayName的”雷达信号检测的“MarkerFaceColor”, radarColor);标题(“用干扰发射器进行雷达探测”);plotPlatform (platRadarPlotter platRadar.pose.Position);plotPlatform (platEmitPlotter platEmit.pose.Position);plotPlatform (platPlotter scene.Platforms {3} .pose.Position);plotCoverage(covPlotter, coverageConfig(scene), [-1 2], {emitterColor, radarColor});

图中包含一个轴对象。标题为“雷达探测与干扰发射器”的轴对象包含6个类型为patch, line的对象。这些目标代表地面,目标,轨迹,射频发射器,单基地雷达,雷达探测。

在上图中,前视雷达所在平台用蓝色菱形表示,雷达当前视场为来自平台的蓝色区域。在图的底部,携带干扰射频发射的平台显示为黄色菱形,发射体的电流视场为相应的黄色区域。没有任何发射器或传感器的平台被称为目标并显示为黑色三角形。

模拟单站检测

在多速率场景中,您可以找到一个更新速率,它是场景中定义的所有传感器和发射器速率的公共分压器,或者您可以使用连续更新,它会在您调用时自动将场景推进到下一个有效更新时间推进

现场。UpdateRate = 0
scene = radarScenario with properties: IsEarthCentered: 0 UpdateRate: 0 SimulationTime: 0 StopTime: 10 SimulationStatus: NotStarted平台:{1x3 cell}

对于下面循环中的每一步,使用:

  1. 推进根据它们的轨迹移动所有的平台。

  2. 发出更新发射方向platEmit

  3. 传播将排放直接传播到位于发射器视场内的场景中的每个平台。每个接收到直接路径发射的平台生成一个单反射反射,该反射反射也作为反射发射传播到每个其他平台。

  4. 检测从在平板雷达

下图显示了从发射器到雷达传感器的辐射传播。

%设置可重复结果的随机种子。rng (2018);plotDets = {};推进(场景)%发射射频信号。txEmiss =排放(现场);%反映场景中平台发出的信号。reflEmiss = propagate(scene, txEmiss);%从单基地雷达传感器产生探测。[dets, config] =检测(场景,反射);每次雷达完成扇区扫描时重置探测。如果配置。IsScanDone%重置plotDets =侦破;其他的%的缓冲plotDets=[plotDets;dets];% #好< AGROW >结束%更新显示与当前平台位置,波束位置和检测。plotPlatform (platRadarPlotter platRadar.pose.Position);plotPlatform (platEmitPlotter platEmit.pose.Position);plotPlatform (platPlotter scene.Platforms {3} .pose.Position);plotCoverage(covPlotter, coverageConfig(scene), [-1 2], {emitterColor, radarColor});如果~isempty(plotDets) allDets = [plotDets{:}];%提取测量位置的列向量量= (allDets.Measurement) ';plotDetection (detPlotter量);结束结束

图中包含一个轴对象。标题为“雷达探测与干扰发射器”的轴对象包含6个类型为patch, line的对象。这些目标代表地面,目标,轨迹,射频发射器,单基地雷达,雷达探测。

上图显示了雷达(以蓝色显示)只能探测到场景中间的目标。当雷达的视场(即波束宽度)扫过目标时,探测结果就会显示为蓝色的、填充的圆圈。但是,当雷达的波束扫过发射平台(黄色显示)时,没有检测到,因为该平台产生的干扰阻止了雷达的检测。

射频发射的被动检测

在前一节中,雷达无法探测到发射平台的位置,因为该平台的辐射掩盖了雷达自身的辐射。然而,这种强烈的辐射可以被侦听射频发射的被动传感器检测和识别。这些传感器通常被称为电子支持措施(ESM)。金宝app这些传感器通常监听广泛的频率范围,并试图识别独特的发射器,这些发射器的发射到达的方向,以及发射器使用的波形类型。

创建ESM传感器

重复使用上一节中的场景,但将第一个平台上的单基地雷达替换为ESM传感器。使用radarDataGenerator对ESM传感器进行建模,并确保将传感器配置为其中心频率和带宽包括发射器的射频频谱。否则,它将无法检测发射器。

重启(现场);esm = radarDataGenerator (1,“没有扫描”...“DetectionMode”ESM的...“UpdateRate”, 12.5,...%赫兹“登山角”(0 0 0),...% [Z Y X“视野”30 [10],...% [z el] deg“CenterFrequency”,300e6,...%赫兹“带宽”, 30 e6,...%赫兹“WaveformTypes”0,...%检测干扰波形类型“之内”,真正的)
esm=具有以下属性的雷达数据生成器:传感器索引:1发射器索引:1更新率:12.5000检测模式:“esm”扫描模式:“无扫描”装载位置:[0 0 0 0]装载角度:[0 0]视野:[30 10]错误报警率:1.0000e-06显示所有属性

将第二平台上的雷达更换为ESM传感器。

platESM = scene.Platforms {2};platESM。传感器= esm;

相应地更新可视化。

platRadarPlotter。DisplayName =“ESM传感器”;esmColor = [0.4940 0.1840 0.5560];platRadarPlotter。MarkerFaceColor = esmColor;%使用助手添加角度检测绘图器删除(detPlotter);esmDetPlotter = helperAngleOnlyDetectionPlotter (theaterDisplay,“DisplayName的”“ESM检测”“颜色”esmColor,“线条样式”“- - -”);clearData (covPlotter);plotCoverage(covPlotter, coverageConfig(scene), [-1 1], {emitterColor, esmColor});标题(“射频辐射的被动探测”);

图中包含一个轴对象。标题为“射频辐射被动检测”的轴对象包含6个类型为patch、line的对象。这些对象代表地面,目标,轨迹,射频发射器,ESM传感器,ESM检测。

在上图中,雷达被安装在第二个平台上的ESM传感器所取代。ESM传感器的视场显示为洋红色,包括发射平台和目标平台。

模拟ESM信号检测

现在用ESM传感器代替雷达来模拟探测。请注意,由于ESM传感器是被动传感器,它不能定位发射平台,但指示平台发射的到达方向。这些只有角度的探测显示为从ESM传感器向发射平台发出的射线。

%设置可重复结果的随机种子。rng(2018);plotDets={};snap=[];推进(场景)%发射射频信号。txEmiss =排放(现场);%反映场景中平台发出的信号。reflEmiss = propagate(scene, txEmiss);%从ESM传感器产生检测。[dets, config] =检测(场景,反射);每次雷达完成扇区扫描时重置探测。如果配置。IsScanDone%重置plotDets =侦破;其他的%的缓冲plotDets=[plotDets;dets];% #好< AGROW >结束%用当前平台位置、波束位置和检测更新显示。plotPlatform (platRadarPlotter platRadar.pose.Position);plotPlatform (platEmitPlotter platEmit.pose.Position);plotPlatform (platPlotter scene.Platforms {3} .pose.Position);plotCoverage(covPlotter, coverageConfig(scene), [-1 1], {emitterColor, esmColor});plotDetection (esmDetPlotter plotDets);%在t = 2秒时记录反射检测。= getSnap(ax,场景。SimulationTime 2吸附);drawnow结束标题(“由ESM传感器检测到的射频发射器”);

图中包含一个轴对象。由ESM传感器检测到的带有标题射频发射器的轴对象包含6个类型为贴片、线的对象。这些对象代表地面,目标,轨迹,射频发射器,ESM传感器,ESM检测。

ESM传感器检测射频发射并估计其到达方向。这个估计用从传感器发出并近距离经过发射器的洋红线表示。角度估计是有噪声的,这就是为什么这条线不直接通过辐射源的位置。

ESM传感器在其报告的检测中对波形类型进行分类。对于这个发射器,它报告发射器使用的噪声波形类型:0。

依据{1}。ObjectAttributes {1}
ans =结构体字段:TargetIndex: 1 EmitterIndex: 1 WaveformType: 0信噪比:184.8224

注意,传感器检测到的发射信号的信噪比(SNR)非常大,为185 dB。由于射频发射器具有较高的功率,ESM传感器也可以检测发射波形对目标的反射。这是在模拟2秒后看到的,当目标位于发射器的视场内。

图;imshow (snap.cdata);标题(“ESM传感器探测发射器和目标”);

图中包含一个轴对象。标题为“ESM传感器检测到的发射器和目标”的轴对象包含类型为图像的对象。

上图显示了发射体和目标都检测到的辐射,因为目标从发射体接收能量并将该波形重新发射回场景,导致ESM传感器也检测到它。

单基地雷达的被动探测

单基地雷达也会向场景发射波形。有时需要对这些排放物进行被动检测。为此,您必须分别对雷达的发射和传感部分进行建模。发射器产生的波形成为场景射频发射的一部分。这些波形可以被其他传感器检测到,比如ESM传感器。

重用前面的相同场景。对于该方案,在方案顶部(第二个平台)的平台上安装一个单站雷达,并在方案底部(第一个平台)的平台上安装一个ESM传感器。中间平台仍然是目标,没有安装发射器或传感器。

重启(现场);

通过对传感器的发射和传感部分建模,创建一个单基地雷达。使用radarEmitter模拟单基地雷达发射器。对于这个场景,使用1来表示该雷达使用的波形类型。波形类型是用户定义的一种枚举,用来表示场景中模拟的不同类型的波形。波形枚举使发射器和传感器知道如何处理这些波形以产生检测。例如,如果发射器的波形类型为1,而传感器将其包含在其波形列表中,那么传感器就知道如何处理发射器的发射(例如,使用匹配滤波器)并实现与该波形相关的处理增益。

为单基地雷达创建发射器。radarTx = radarEmitter (2“部门”...“UpdateRate”, 12.5,...%赫兹“登山角”(0 0 0),...% [Z Y X“视野”, 10 [2],...% [z el] deg“CenterFrequency”,300e6,...%赫兹“带宽”, 3 e6,...%赫兹“ProcessingGain”, 50岁,...% dB“WaveformType”, 1)%使用1指示该雷达的波形。
radarTx = radarEmitter属性:EmitterIndex: 2 UpdateRate: 12.5000 ScanMode:“机械”MountingLocation: [0 0 0] MountingAngles: [0 0 0] FieldOfView: [2 x1双]MaxMechanicalScanRate: 75 MechanicalScanLimits: 45 [-45] MechanicalAngle: 0 LookAngle: 0 HasElevation: 0附近:100 CenterFrequency: 300000000带宽:3000000 WaveformType:1 ProcessingGain: 50

使用radarDataGenerator为场景中接收射频发射的雷达传感部分建模,识别与单基地发射器的波形类型对应的发射,并从这些接收的发射产生检测。与发射器的波形类型不匹配的发射被视为干扰。

当使用radarDataGenerator要对单基地雷达的感应部分建模,请设置DetectionMode属性的传感器单站.这告诉传感器在处理接收到的射频发射时使用发射器的配置。的排放量输出属性也必须设置为true以启用检测radarEmission对象。

radarRx = radarDataGenerator (2...“DetectionMode”“单站”...“EmissionsInputPort”,真的,...“EmitterIndex”,radarTx.EmitterIndex,...“之内”,真的,...“DetectionCoordinates”“情景”
radarx = radardatgenerator with properties: SensorIndex: 2 EmitterIndex: 2 DetectionMode: 'Monostatic' InterferenceInputPort: 0 EmissionsInputPort: 1 RangeLimits: [0 100000] FalseAlarmRate: 1.0000e-06显示所有属性

将雷达发射器和传感器连接到第二个平台上。

platRadar = scene.Platforms {2};platRadar。发射器= radarTx;platRadar。传感器= radarRx;

重用以前的ESM传感器,但设置ESM传感器的已知波形类型列表,以包括雷达发出的波形。如果ESM传感器不知道雷达的波形类型,它将不会被检测到。

%将雷达波形添加到ESM传感器的已知波形类型列表中。esm。WaveformTypes = [0 1];%将ESM传感器安装到第一个平台上。platESM = scene.Platforms {1};platESM。发射器= {};%移除发射器。platESM。传感器= esm;

更新显示,以显示单台检测和ESM检测。

detPlotter = detectionPlotter (theaterDisplay,“DisplayName的”雷达信号检测的“MarkerFaceColor”, radarColor);platRadarPlotter。DisplayName =“单站雷达”;platRadarPlotter。MarkerFaceColor = radarColor;platEmitPlotter。DisplayName =“ESM传感器”;platEmitPlotter。MarkerFaceColor = esmColor;clearData (esmDetPlotter);clearData (covPlotter);covcon = coverageConfig(现场);plotCoverage(covPlotter, covcon([1 3]), [1 -2], {esmColor, radarColor});标题(ax,“单基地雷达的被动探测”);

图中包含一个轴对象。单站雷达无源探测的轴对象包括7个斑块型、线型目标。这些目标代表地面,目标,轨迹,ESM传感器,单基地雷达,ESM探测,雷达探测。

上图显示了雷达在其平台前扫描方位扇区,其中包括目标平台以及携带ESM传感器的平台。当雷达的视场(以蓝色显示)扫过这两个平台的位置时,雷达产生了对这两个平台的探测。然而,当雷达波束经过ESM传感器的位置时,ESM传感器检测到雷达,并从传感器绘制一条线来指示估计的位置。

%设置可重复结果的随机种子。rng (2018);平台= scene.Platforms;numPlat =元素个数(平台);plotDets = {};提前= [];推进(场景)%发射射频信号。[txEmiss, txConfigs] = emit(scene);%反映场景中平台发出的信号。reflEmiss = propagate(scene, txEmiss);%从传感器产生检测。[dets, config] =检测(scene, reflEmiss, txConfigs);每次雷达完成扇区扫描时重置探测。如果txConfigs(结束)。IsScanDone%重置plotDets =侦破;其他的%的缓冲plotDets=[plotDets;dets];% #好< AGROW >结束%用当前平台位置、波束位置和检测更新显示。plotPlatform (platRadarPlotter platRadar.pose.Position);plotPlatform (platEmitPlotter platEmit.pose.Position);plotPlatform (platPlotter scene.Platforms {3} .pose.Position);covcon = coverageConfig(现场);plotCoverage(covPlotter, covcon([1 3]), [1 -2], {esmColor, radarColor});plotDetection (esmDetPlotter plotDets);plotMonostaticDetection (detPlotter plotDets);%在t = 5.6秒时记录反射探测。= getSnap(ax,场景。SimulationTime, 5.6,吸附);drawnow结束

图中包含一个轴对象。单站雷达无源探测的轴对象包括7个斑块型、线型目标。这些目标代表地面,目标,轨迹,ESM传感器,单基地雷达,ESM探测,雷达探测。

单基地雷达的探测模型使用radarEmitterradarDataGenerator在目标和装有ESM传感器的平台附近显示为填充的蓝色圆圈。ESM传感器也能够检测雷达,正如从ESM传感器和通过雷达平台附近的线显示的仅角度检测所示。

图;imshow (snap.cdata);标题(“ESM传感器检测到的雷达和目标”);

图中包含一个轴对象。以ESM传感器检测到的雷达和目标为标题的轴对象包含类型为图像的对象。

由于雷达发射的高功率(EIRP),发射的能量被目标反射到ESM平台。因此,当雷达发射体的视场扫过目标平台时,目标仍在ESM传感器的视场内,ESM传感器检测到目标平台。

金宝app支持功能

getSnap在给定的快照时间记录轴的快照。

函数= getSnap(hAx, curTime, snapTime, prevSnap)如果~isempty(prevSnap)snap=prevSnap;elseifcurTime = snapTime && curTime < snapTime + 0.05 hAx.Title.Visible =“关闭”;提前= getframe (hAx.Parent);hAx.Title.Visible =“上”其他的提前= [];结束结束

plotMonostaticDetection解析检测仅绘制单静态检测与detectionPlotter

函数plotMonostaticDetection(绘图仪,依据)如果~ isempty(依据)%只对detectionPlotter进行单静态检测radarDetId = cellfun(@(x) x. sensorindex == 2, dets);如果任何(radarDetId)%单基地雷达测量位置的提取radarDets =[侦破{radarDetId}];量= (radarDets.Measurement) ';plotDetection(绘图仪、量);结束结束结束