主要内容

模拟无源雷达传感器和雷达干扰

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

创建场景

评估雷达的跟踪性能需要建模射频(RF)场景。建模工作流程如下:

  • 产生射频排放。

  • 传播排放并反映这些来自平台的排放。

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

在本例中,您将使用由三个平台组成的场景执行上述每一个步骤:

  1. 空中平台以500公里/小时的速度向北飞行

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

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

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

scene = radarScenario;现场。StopTime = 10;% s一号站台:空中向北,时速500公里SPD = 500*1e3/3600;% m / sWp1 = [0 0 -6000];Wp2 = [spd*scene.]停止时间0 -6000];Toa = [0;scene.StopTime];平台(场景,“轨迹”waypointTrajectory (“锚点”, (wp1;wp2),“TimeOfArrival”toa));2号站台:空降向南,时速600公里SPD = 600*1e3/3600;% m / sWp1 = [30e3+spd*scene.]停止时间0 -6000];Wp2 = [30e3 0 -6000];Toa = [0;scene.StopTime];平台(场景,“轨迹”waypointTrajectory (“锚点”, (wp1;wp2),“TimeOfArrival”toa));三号站台:空降,东行,时速700公里SPD = 700*1e3/3600;% m / sWp1 = [10e3 1e3 -6000];Wp2 = [10e3 1e3+spd*scene.]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],“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);

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

干扰辐射存在下的雷达探测

通常,雷达工作在一个环境中,其他不希望的射频发射干扰了雷达发射的波形。当这种情况发生时,雷达在干扰信号的方向上的探测性能下降。在场景的底部(第一个平台)的平台上安装一个射频发射器,在场景的顶部(第二个平台)的平台上安装一个雷达。

创建射频发射器

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

创建干扰发射器。rfEmitter = radarEmitter(1,“没有扫描”...“FieldOfView”20 [5],...[n .] n .“附近”, 200,...% dBi“CenterFrequency”300 e6,...%赫兹“带宽”, 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.平台{1};platEmit。发射器= rfEmitter
platEmit =平台的属性:PlatformID: 1 ClassID: 0位置:[0 0 -6000]方向:[0 00]尺寸:[1x1 struct]轨迹:[1x1 waypointTrajectory] PoseEstimator: [1x1 insSensor]发射器:{[1x1 radarEmitter]}传感器:{}签名:{[1x1 rcsSignature]}

创建单站雷达

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

雷达= radarDataGenerator(2,“部门”...“DetectionMode”“单站”...“UpdateRate”, 12.5,...%赫兹“FieldOfView”, [2 10]);[n .] n .雷达。MountingAngles = [0 0 0];[Z Y X]度雷达。HasINS = true;雷达。干涉输入端口= true;雷达。DetectionCoordinates =“场景”
雷达= radarDataGenerator with properties: SensorIndex: 2 UpdateRate: 12.5000 DetectionMode: 'Monostatic' ScanMode: 'Mechanical' InterferenceInputPort: 1 EmissionsInputPort: 0 MountingLocation: [0 00] MountingAngles: [0 00] FieldOfView: [2 10] RangeLimits: [0 100000] DetectionProbability: 0.9000 FalseAlarmRate: 1.0000e-06 ReferenceRange: 100000 TargetReportFormat: 'Clustered detected '显示所有属性

把雷达接到第二个平台上。

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});

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

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

模拟单静态检测

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

现场。UpdateRate = 0
scene = radarScenario with properties: IsEarthCentered: 0 UpdateRate: 0 SimulationTime: 0 StopTime: 10 SimulationStatus: NotStarted平台:{1x3 cell} SurfaceManager: [1x1 radar.scenario.SurfaceManager]

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

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

  2. 发出更新发射的发射方向platEmit

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

  4. 检测从接收到的排放产生检测platRadar

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

为可重复的结果设置随机种子。rng (2018);plotDets = {};推进(场景)%发射射频信号。txEmiss =发射(场景);反射场景中平台发出的信号。。reflEmiss = propagate(场景,txEmiss);从单静态雷达传感器生成检测。[dets, config] = detect(scene, reflEmiss);每次雷达完成扇区扫描时重置检测。。如果配置。IsScanDone%重置plotDets = dets;其他的%的缓冲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{:}];提取测量位置的列向量meas = [allDets.Measurement]';plotDetection (detPlotter量);结束结束

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

上图显示雷达(蓝色部分)只能探测到场景中间的目标。当雷达的视场(即波束宽度)扫过目标时,这些探测就会被显示为蓝色的填充圆圈。然而,当雷达波束扫过发射平台(黄色显示)时,不会产生任何探测,因为该平台产生的干扰阻止了雷达的探测。

射频发射的被动检测

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

创建ESM传感器

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

重启(现场);esm = radarDataGenerator(1,“没有扫描”...“DetectionMode”ESM的...“UpdateRate”, 12.5,...%赫兹“MountingAngles”,[0 0 0],...[Z Y X]度“FieldOfView”30 [10],...[n .] n .“CenterFrequency”300 e6,...%赫兹“带宽”, 30 e6,...%赫兹“WaveformTypes”0,...检测干扰波形类型“之内”,真正的)
esm = radarDataGenerator with properties: SensorIndex: 1 EmitterIndex: 1 UpdateRate: 12.5000 DetectionMode: ' esm ' ScanMode: 'No scanning' MountingLocation: [0 00] MountingAngles: [0 00] FieldOfView: [30 10] FalseAlarmRate: 1.0000e-06显示所有属性

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

platESM = scene.平台{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});标题(“射频发射的被动检测”);

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

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

模拟ESM检测

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

为可重复的结果设置随机种子。rng (2018);plotDets = {};Snap = [];推进(场景)%发射射频信号。txEmiss =发射(场景);反射场景中平台发出的信号。。reflEmiss = propagate(场景,txEmiss);从ESM传感器生成检测。[dets, config] = detect(scene, reflEmiss);每次雷达完成扇区扫描时重置检测。。如果配置。IsScanDone%重置plotDets = dets;其他的%的缓冲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秒时的反射检测。snap = getSnap(ax, scene.)SimulationTime, 2, snap);drawnow结束标题(“ESM传感器检测到射频发射器”);

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

ESM传感器检测射频发射并估计其到达的方向。这一估计由发端于传感器并近距离经过发射极的洋红色线表示。角度估计是有噪声的,这就是为什么线不直接通过发射器的位置。

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

依据{1}。ObjectAttributes {1}
ans =带有字段的结构:TargetIndex: 1 EmitterIndex: 1 WaveformType: 0 SNR: 184.8224

注意,传感器检测到的发射信号的信噪比(SNR)非常大,为185 dB。由于射频发射器具有高功率,发射波形的反射远离目标也被ESM传感器检测。这是在模拟开始2秒时看到的,此时目标位于发射器的视野内。

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

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

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

单站雷达的被动探测

单静态雷达也向该场景发射波形。有时需要对这些排放进行被动检测。要做到这一点,你必须分别建模雷达的发射和感知部分。发射器产生的波形成为场景射频发射的一部分。这些波形可以被其他传感器检测到,例如ESM传感器。

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

重启(现场);

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

为单站雷达创建发射器。。radarTx = radarEmitter(2,“部门”...“UpdateRate”, 12.5,...%赫兹“MountingAngles”,[0 0 0],...[Z Y X]度“FieldOfView”, 10 [2],...[n .] n .“CenterFrequency”300 e6,...%赫兹“带宽”, 3 e6,...%赫兹“ProcessingGain”, 50岁,...% dB“WaveformType”,1)用1表示雷达的波形。
radarTx = radarEmitter with properties: EmitterIndex: 2 UpdateRate: 12.5000 ScanMode: 'Mechanical' MountingLocation: [0 00] MountingAngles: [0 00] FieldOfView: [2x1 double] MaxMechanicalScanRate: 75 mechanicalscanlimit: [-45 45] MechanicalAngle: 0 LookAngle: 0 HasElevation: 0 EIRP: 100 CenterFrequency: 300000000 Bandwidth: 3000000 WaveformType: 1 ProcessingGain: 50

使用radarDataGenerator对雷达接收射频发射的感知部分进行建模,识别与单静态发射器波形类型对应的发射,并从这些接收到的发射生成检测。不匹配发射器波形类型的发射被视为干扰。

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

radarRx = radarDataGenerator(2,...“DetectionMode”“单站”...“EmissionsInputPort”,真的,...“EmitterIndex”, radarTx。EmitterIndex,...“之内”,真的,...“DetectionCoordinates”“场景”
radarRx = radarDataGenerator 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.平台{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,“单站雷达的被动探测”);

图中包含一个axes对象。单台雷达被动探测的轴类对象包括7个贴片、线类对象。这些物体代表地面,目标,轨迹,ESM传感器,单静态雷达,ESM探测,雷达探测。

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

为可重复的结果设置随机种子。rng (2018);平台= scene.平台;numPlat = numel(平台);plotDets = {};Snap = [];推进(场景)%发射射频信号。[txEmiss, txConfigs] =发射(场景);反射场景中平台发出的信号。。reflEmiss = propagate(场景,txEmiss);从传感器生成检测。[dets, config] = detect(scene, reflEmiss, txConfigs);每次雷达完成扇区扫描时重置检测。。如果txConfigs(结束)。IsScanDone%重置plotDets = dets;其他的%的缓冲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秒时的反射探测。snap = getSnap(ax, scene.)SimulationTime, 5.6, snap);drawnow结束

图中包含一个axes对象。单台雷达被动探测的轴类对象包括7个贴片、线类对象。这些物体代表地面,目标,轨迹,ESM传感器,单静态雷达,ESM探测,雷达探测。

单站雷达的探测模型使用radarEmitter而且radarDataGenerator显示为填充的蓝色圆圈,靠近目标和装有ESM传感器的平台。ESM传感器也能够探测到雷达,正如从ESM传感器出发并经过雷达平台附近的一条直线显示的仅角度探测所表明的那样。

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

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

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

金宝app支持功能

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

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

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

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