Симуляция пассивных радарных датчиков и радарной интерференции

Этот пример показывает вам, как смоделировать и симулировать выход активных и пассивных радарных датчиков с помощью radarDataGenerator. В этом примере вы наблюдаете, как интерференция радиочастоты (RF) влияет на эффективность обнаружения радара. Кроме того, вы используете пассивные радарные датчики, чтобы оценить местоположение и тип радиочастотной помехи.

Введение

Оценка отслеживания эффективности для радаров требует моделирования сценария радиочастоты (RF). Это включает:

  • Генерация радиочастотных излучений

  • Распространение эмиссии и отражение этих выбросов платформ

  • Получение эмиссии, вычисление интерференционных потерь и генерация обнаружений

Создайте сценарий

Этот пример показывает вам, как выполнить каждый из шагов выше использования сценария, состоящего из трех платформ:

  1. Бортовая платформа летающий север на уровне 500 км/ч от нижней части сценария

  2. Бортовая платформа летающий юг на уровне 600 км/ч от верхней части сценария

  3. Бортовая платформа летающий восток на уровне 700 км/ч посреди сценария

% Create a radar scenario to manage the movement of the platforms.
scene = radarScenario;

% Set the duration of the scenario to 10 seconds.
scene.StopTime = 10; % s

% Platform 1: Airborne and northbound at 500 km/h
spd = 500*1e3/3600; % m/s
wp1 = [0 0 -6000];
wp2 = [spd*scene.StopTime 0 -6000];
toa = [0; scene.StopTime];
platform(scene, 'Trajectory', waypointTrajectory('Waypoints', [wp1; wp2], 'TimeOfArrival', toa));

% Platform 2: Airborne and southbound at 600 km/h
spd = 600*1e3/3600; % m/s
wp1 = [30e3+spd*scene.StopTime 0 -6000];
wp2 = [30e3 0 -6000];
toa = [0; scene.StopTime];
platform(scene, 'Trajectory', waypointTrajectory('Waypoints', [wp1; wp2], 'TimeOfArrival', toa));

% Platform 3: Airborne and eastbound at 700 km/h
spd = 700*1e3/3600; % m/s
wp1 = [10e3 1e3 -6000];
wp2 = [10e3 1e3+spd*scene.StopTime -6000];
toa = [0; scene.StopTime];
platform(scene, 'Trajectory', waypointTrajectory('Waypoints', [wp1; wp2], 'TimeOfArrival', toa));

Используйте theaterPlot создать отображение, показывающее платформы в сценарии и их траекториях.

ax = axes;
theaterDisplay = theaterPlot('Parent',ax,'AxesUnit',["km" "km" "km"], 'XLim',[-10000 40000] , 'YLim', [-20000 20000], 'ZLim',[-1e7 1e7]);
view([90 -90]) % swap X and Y axis
patch('XData',[-10000 -10000 40000 40000],'YData',[-20000 20000 20000 -20000],'EdgeColor','none', 'FaceColor',[0.8 0.8 0.8],'DisplayName','Ground');

platPlotter = platformPlotter(theaterDisplay,'DisplayName','Platforms','MarkerFaceColor','k');
plotPlatform(platPlotter,vertcat(scene.platformPoses.Position));

trajPlotter = trajectoryPlotter(theaterDisplay,'DisplayName','Trajectories','LineStyle','-');
allTrajectories = cellfun(@(x) x.Trajectory.lookupPose(linspace(0,scene.StopTime,10)), scene.Platforms, 'UniformOutput', false);
plotTrajectory(trajPlotter,allTrajectories);

Figure contains an axes. The axes contains 3 objects of type patch, line. These objects represent Ground, Platforms, Trajectories.

Радарное обнаружение в присутствии вмешивающейся эмиссии

Часто, радар действует в среде, где другая нежелательная эмиссия RF вмешивается в формы волны, испускаемые радаром. Когда это произойдет, радар испытает ухудшение в эффективности обнаружения в направлении вмешивающихся сигналов. Присоедините эмиттер RF к платформе в нижней части сценария (первая платформа) и радар на платформу наверху сценария (вторая платформа).

Создайте эмиттер RF

Смоделируйте эмиссию RF с помощью radarEmitter. Эмиттер находится в перспективной настройке с азимутальным полем зрения 20 градусов, чтобы включать 2 других платформы в сценарий. Эффективная изотропная излученная степень (EIRP) устанавливает силу вмешивающегося сигнала. Тип формы волны является пользовательским значением, используемым, чтобы перечислить различные типы формы волны, которые присутствуют в сценарии. Для этого сценария используйте значение 0, чтобы указать на шумовой тип формы волны.

% Create the interference emitter.
rfEmitter = radarEmitter(1, 'No scanning', ...
    'FieldOfView', [20 5], ...       % [az el] deg
    'EIRP', 200, ...                 % dBi
    'CenterFrequency', 300e6, ...    % Hz
    'Bandwidth', 30e6, ...           % Hz
    'WaveformType', 0)               % Use 0 for noise-like emissions
rfEmitter = 
  radarEmitter with properties:

        EmitterIndex: 1
          UpdateRate: 1
            ScanMode: 'No scanning'

    MountingLocation: [0 0 0]
      MountingAngles: [0 0 0]

         FieldOfView: [2x1 double]
     MechanicalAngle: 0
           LookAngle: 0
        HasElevation: 0

                EIRP: 200
     CenterFrequency: 300000000
           Bandwidth: 30000000
        WaveformType: 0
      ProcessingGain: 0

Присоедините эмиттер к первой платформе.

platEmit = scene.Platforms{1};
platEmit.Emitters = rfEmitter
platEmit = 
  Platform with properties:

       PlatformID: 1
          ClassID: 0
         Position: [0 0 -6000]
      Orientation: [0 0 0]
       Dimensions: [1x1 struct]
       Trajectory: [1x1 waypointTrajectory]
    PoseEstimator: [1x1 insSensor]
         Emitters: {[1x1 radarEmitter]}
          Sensors: {}
       Signatures: {[1x1 rcsSignature]}

Создайте моностатический радар

Оборудуйте вторую платформу моностатическим радаром. Используйте radarDataGenerator смоделировать этот тип радара. Сконфигурируйте радар, чтобы отсканировать сектор азимута перед его платформой, которая включает другие платформы.

% Create a monostatic radar.
radar = radarDataGenerator(2, 'Sector', ...
    'DetectionMode', 'monostatic', ...
    'UpdateRate', 12.5, ...          % Hz
    'FieldOfView', [2 10]);          % [az el] deg

% Mount the radar so that it scans the sector in front of the second
% platform which includes the interfering signal and the third platform.
radar.MountingAngles = [0 0 0];      % [Z Y X] deg

% Enable the radar's INS input so that it can use the pose estimated by
% the platform's pose estimator to generate detections.
radar.HasINS = true;

% Enable the radar's interference input so that the interference signal
% created by the emitter above can be passed to the radar.
radar.InterferenceInputPort = true;

% Set coordinate system for detections to scenario
radar.DetectionCoordinates = 'scenario'
radar = 
  radarDataGenerator with properties:

              SensorIndex: 2
               UpdateRate: 12.5000
            DetectionMode: 'Monostatic'
                 ScanMode: 'Mechanical'
    InterferenceInputPort: 1
       EmissionsInputPort: 0

         MountingLocation: [0 0 0]
           MountingAngles: [0 0 0]

              FieldOfView: [2 10]
              RangeLimits: [0 100000]

     DetectionProbability: 0.9000
           FalseAlarmRate: 1.0000e-06
           ReferenceRange: 100000

       TargetReportFormat: 'Clustered detections'

  Show all properties

% Attach the radar to the second platform.
platRadar = scene.Platforms{2};
platRadar.Sensors = radar;

Обновите отображение, чтобы показать платформы, радар и эмиттер в сценарии.

emitterColor =  [0.9290 0.6940 0.1250];
radarColor = [0 0.4470 0.7410];
platEmitPlotter = platformPlotter(theaterDisplay,'DisplayName', 'RF emitter','Marker','d','MarkerFaceColor',emitterColor);
platRadarPlotter = platformPlotter(theaterDisplay,'DisplayName','Monostatic radar','Marker','d','MarkerFaceColor',radarColor);
platPlotter.DisplayName = 'Targets';
clearData(platPlotter);
covPlotter = coveragePlotter(theaterDisplay,'Alpha',[0.2 0]);
detPlotter = detectionPlotter(theaterDisplay,'DisplayName','Radar detections','MarkerFaceColor',radarColor);
title('Radar detection with an interfering emitter');

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

Figure contains an axes. The axes with title Radar detection with an interfering emitter contains 6 objects of type patch, line. These objects represent Ground, Targets, Trajectories, RF emitter, Monostatic radar, Radar detections.

На предыдущем рисунке платформа, несущая перспективный радар, показывается синим ромбом с текущим полем зрения радара как синяя область, происходящая из платформы. В нижней части фигуры платформа, несущая вмешивающуюся эмиссию RF, показывается желтым ромбом с текущим полем зрения эмиттера, показавшим соответствующей желтой областью. Платформы без любых эмиттеров или датчиков, присоединенных к ним, упоминаются как цели и отображены как черные треугольники.

Симулируйте моностатические обнаружения

В многоскоростных сценариях можно или найти частоту обновления, которая является общим делителем всех датчиков и уровней эмиттеров, заданных в сценарии, или можно использовать непрерывное обновление, которое автоматически усовершенствует сценарий к следующему допустимому разу обновления при вызове advance.

scene.UpdateRate = 0
scene = 
  radarScenario with properties:

     IsEarthCentered: 0
          UpdateRate: 0
      SimulationTime: 0
            StopTime: 10
    SimulationStatus: NotStarted
           Platforms: {1x3 cell}

Для каждого шага в следующем использовании цикла:

  1. advance перемещать все платформы согласно их траекториям.

  2. emit чтобы обновить эмиссию передают направление от platEmit.

  3. propagate распространить эмиссию непосредственно на каждую платформу в сценарии, который находится в поле зрения эмиттера. Каждая платформа, которая получает прямую эмиссию пути, генерирует отражение одно возврата, которое также распространено на любую платформу как отраженная эмиссия.

  4. detect сгенерировать обнаружения от эмиссии, полученной в platRadar.

Это распространение эмиссии эмиттера с эмиттера на радарный датчик проиллюстрировано в следующем изображении.

% Set the random seed for repeatable results.
rng(2018);

plotDets = {};
while advance(scene)
    
    % Emit the RF signal.
    txEmiss = emit(scene);
    
    % Reflect the emitted signal off of the platforms in the scenario.
    reflEmiss = propagate(scene, txEmiss);
    
    % Generate detections from the monostatic radar sensor.
    [dets, config] = detect(scene, reflEmiss);
    
    % Reset detections every time the radar completes a sector scan.
    if config.IsScanDone
        % Reset
        plotDets = dets;
    else
        % Buffer
        plotDets = [plotDets;dets]; %#ok<AGROW> 
    end
    
    % Update display with current platform positions, beam positions and detections.
    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});
    if ~isempty(plotDets)
        allDets = [plotDets{:}];
        % extract column vector of measurement positions
        meas = [allDets.Measurement]';
        plotDetection(detPlotter,meas);
    end
end

Figure contains an axes. The axes with title Radar detection with an interfering emitter contains 6 objects of type patch, line. These objects represent Ground, Targets, Trajectories, RF emitter, Monostatic radar, Radar detections.

Как показано на предыдущем рисунке, радар (отображенный синим) только может обнаружить цель посреди сценария. Обнаружения показываются синими, заполненными кругами и сделаны каждый раз, когда поле зрения радара (e.g. излучите), развертки через цель. Однако, когда развертки луча радара через платформу испускания (отображенный желтым), никакие обнаружения не сгенерированы, поскольку интерференция, сгенерированная этой платформой, предотвращает обнаружение радаром.

Пассивное обнаружение эмиссии RF

В предыдущем разделе радар не мог обнаружить местоположение платформы испускания, потому что выбросы той платформы замаскировали собственную эмиссию радара. Однако такая сильная эмиссия может быть обнаружена и идентифицирована пассивными датчиками, которые прислушиваются к эмиссии RF в сценарии. Эти датчики часто упоминаются как электронные меры по поддержке (ESM). Эти датчики обычно слушают через широкий диапазон частот и пытаются идентифицировать уникальные эмиттеры, направление прибытия выбросов тех эмиттеров, и каждый раз, когда возможно, тип формы волны, используемой эмиттером.

Создайте датчик ESM

Снова используйте сценарий от предыдущего раздела, но замените моностатический радар на первой платформе с датчиком ESM. Используйте radarDataGenerator смоделировать датчик ESM и гарантировать, что датчик сконфигурирован так, чтобы его центральная частота и пропускная способность включали спектр RF эмиттера. В противном случае это будет неспособно способный обнаружить эмиттер.

restart(scene);
esm = radarDataGenerator(1, 'No scanning', ...
    'DetectionMode', 'ESM', ...
    'UpdateRate', 12.5, ...          % Hz
    'MountingAngles', [0 0 0], ...   % [Z Y X] deg
    'FieldOfView', [30 10], ...      % [az el] deg
    'CenterFrequency', 300e6, ...    % Hz
    'Bandwidth', 30e6, ...           % Hz
    'WaveformTypes', 0, ...          % Detect the interference waveform type
    'HasINS', true)
esm = 
  radarDataGenerator with properties:

         SensorIndex: 1
        EmitterIndex: 1
          UpdateRate: 12.5000
       DetectionMode: 'ESM'
            ScanMode: 'No scanning'

    MountingLocation: [0 0 0]
      MountingAngles: [0 0 0]

         FieldOfView: [30 10]

      FalseAlarmRate: 1.0000e-06

  Show all properties

Замените радар на второй платформе с датчиком ESM.

platESM = scene.Platforms{2};
platESM.Sensors = esm;

Обновите визуализацию соответственно

platRadarPlotter.DisplayName = "ESM sensor";
esmColor = [0.4940 0.1840 0.5560];
platRadarPlotter.MarkerFaceColor = esmColor;
% use a helper to add an angle only detection plotter
delete(detPlotter);
esmDetPlotter = helperAngleOnlyDetectionPlotter(theaterDisplay,'DisplayName','ESM detections','Color',esmColor,'LineStyle','-');
clearData(covPlotter);

plotCoverage(covPlotter, coverageConfig(scene), [-1 1], {emitterColor, esmColor});
title('Passive detection of RF emissions');

Figure contains an axes. The axes with title Passive detection of RF emissions contains 6 objects of type patch, line. These objects represent Ground, Targets, Trajectories, RF emitter, ESM sensor, ESM detections.

На предыдущем рисунке радар заменяется датчиком ESM, смонтированным на второй платформе. Поле зрения датчика ESM отображают пурпурным и включает и испускание и целевые платформы.

Симулируйте обнаружения ESM

Теперь симулируйте обнаружения с помощью датчика ESM вместо радара. Вы заметите, что, потому что датчик ESM является пассивным датчиком, это не может локализовать платформу испускания, но указывает на направление прибытия эмиссия платформы. Эти обнаружения только для угла показываются лучами, происходящими из датчика ESM к платформе испускания.

% Set the random seed for repeatable results.
rng(2018);

plotDets = {};
snap = [];
while advance(scene)
    
    % Emit the RF signal.
    txEmiss = emit(scene);
    
    % Reflect the emitted signal off of the platforms in the scenario.
    reflEmiss = propagate(scene, txEmiss);
    
    % Generate detections from the ESM sensor.
    [dets, config] = detect(scene, reflEmiss);
    
    % Reset detections every time the radar completes a sector scan.
    if config.IsScanDone
        % Reset
        plotDets = dets;
    else
        % Buffer
        plotDets = [plotDets;dets]; %#ok<AGROW> 
    end
    
    % Update display with current platform positions, beam positions and detections.
    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);
        
    % Record the reflected detection at t = 2 sec
    snap = getSnap(ax, scene.SimulationTime, 2, snap);
    drawnow
end
title('RF emitter detected by an ESM sensor');

Figure contains an axes. The axes with title RF emitter detected by an ESM sensor contains 6 objects of type patch, line. These objects represent Ground, Targets, Trajectories, RF emitter, ESM sensor, ESM detections.

Эмиссия RF обнаруживается, и их направление прибытия оценивается датчиком ESM. Это показывает пурпурная линия, происходящая из датчика и тесно передающая эмиттером. В предполагаемом углу существует некоторый шум, который является, почему линия не передает непосредственно через местоположение эмиттера.

Датчик ESM классифицирует типы формы волны на свои обнаружения, о которых сообщают. Для этого эмиттера это сообщает о шумовом типе формы волны, используемом эмиттером: 0.

dets{1}.ObjectAttributes{1}
ans = struct with fields:
     TargetIndex: 1
    EmitterIndex: 1
    WaveformType: 0
             SNR: 184.8224

Заметьте, что отношение сигнал-шум (SNR) испускаемого сигнала, обнаруженного датчиком, является очень большим, 185 дБ. Поскольку эмиттер RF имеет большую силу, отражения испускаемой формы волны прочь цели будут также обнаружены датчиком ESM. Это замечено в 2 секунды в симуляции, когда цель находится в поле зрения эмиттера.

figure; imshow(snap.cdata);
title('Emitter and target detected by an ESM sensor');

Figure contains an axes. The axes with title Emitter and target detected by an ESM sensor contains an object of type image.

На предыдущем рисунке эмиссия обнаруживается и от эмиттера и от цели, когда цель получает энергию от эмиттера и повторно испускает ту форму волны назад в сценарий, заставляя его быть обнаруженной датчиком ESM также.

Пассивное обнаружение моностатических радаров

Моностатические радары также испускают формы волны в сценарий. Иногда желательно смочь обнаружить их эмиссию. Для этого необходимо смоделировать и испускание и обнаружение фрагментов радара отдельно. Эмиттер генерирует формы волны, которые становятся частью эмиссии RF сценария. Эти формы волны могут затем быть обнаружены другими датчиками, такими как датчик ESM, представленный в предыдущем разделе.

Снова используйте тот же сценарий от предыдущих разделов. Для этого сценария присоедините моностатический радар к платформе наверху сценария (вторая платформа) и присоедините датчик ESM к платформе в нижней части сценария (первая платформа). Средняя платформа остается цель без эмиттеров или датчиков, присоединенных к нему.

restart(scene);

Создайте моностатический радар путем моделирования и испускания и обнаружения фрагментов датчика. Используйте radarEmitter смоделировать моностатический радарный эмиттер. Для этого сценария используйте 1, чтобы указать на тип формы волны, используемый этим радаром, где, возможно, 1 представляет щебет LFM некоторыми предопределенными параметрами. Тип формы волны является перечислением, заданным пользователем, чтобы представлять различные виды форм волны, симулированных в сценарии. Это позволяет эмиттерам и датчикам знать, как обработать эти формы волны, чтобы сгенерировать обнаружения. Например, если эмиттер будет иметь тип формы волны 1, и датчик включает этот тип в свой список форм волны, то датчик будет знать, как обработать эмиссию эмиттера (e.g. использование согласованного фильтра), и обнаружит эмиссию и поймет усиление обработки, сопоставленное с той формой волны.

% Create the emitter for the monostatic radar.
radarTx = radarEmitter(2, 'Sector', ...
    'UpdateRate', 12.5, ...          % Hz
    'MountingAngles', [0 0 0], ...   % [Z Y X] deg
    'FieldOfView', [2 10], ...       % [az el] deg
    'CenterFrequency', 300e6, ...    % Hz
    'Bandwidth', 3e6, ...            % Hz
    'ProcessingGain', 50, ...        % dB
    'WaveformType', 1)               % Use 1 to indicate this radar's waveform
radarTx = 
  radarEmitter with properties:

             EmitterIndex: 2
               UpdateRate: 12.5000
                 ScanMode: 'Mechanical'

         MountingLocation: [0 0 0]
           MountingAngles: [0 0 0]

              FieldOfView: [2x1 double]
    MaxMechanicalScanRate: 75
     MechanicalScanLimits: [-45 45]
          MechanicalAngle: 0
                LookAngle: 0
             HasElevation: 0

                     EIRP: 100
          CenterFrequency: 300000000
                Bandwidth: 3000000
             WaveformType: 1
           ProcessingGain: 50

Используйте radarDataGenerator смоделировать распознающийся фрагмент радара, который получает эмиссию RF в сценарии, идентифицирует эмиссию, которая соответствует типу формы волны моностатического эмиттера, и генерирует обнаружения от этой полученной эмиссии. Эмиссия, которая не совпадает с типом формы волны эмиттера, обработана как интерференция.

При использовании radarDataGenerator чтобы смоделировать распознающийся фрагмент моностатического радара, установите DetectionMode свойство датчика к Monostatic. Это говорит датчику использовать настройку эмиттера при обработке полученной эмиссии RF. EmissionsInputPort свойство должно также быть установлено верное, чтобы включить обнаружения на radarEmission объекты.

radarRx = radarDataGenerator(2, ...
    'DetectionMode', 'Monostatic', ...
    'EmissionsInputPort', true, ...
    'EmitterIndex', radarTx.EmitterIndex, ...
    'HasINS', true,...
    'DetectionCoordinates','Scenario')
radarRx = 
  radarDataGenerator with properties:

              SensorIndex: 2
             EmitterIndex: 2
            DetectionMode: 'Monostatic'
    InterferenceInputPort: 0
       EmissionsInputPort: 1

              RangeLimits: [0 100000]

           FalseAlarmRate: 1.0000e-06

       TargetReportFormat: 'Clustered detections'

  Show all properties

% Attach to the radar emitter and sensor to the second platform.
platRadar = scene.Platforms{2};
platRadar.Emitters = radarTx;
platRadar.Sensors = radarRx;

Снова используйте датчик ESM от предыдущего раздела, но установите список известных типов формы волны для датчика ESM включать форму волны, испускаемую радаром. Если тип формы волны радара не будет известен датчику ESM, он не будет обнаружен.

% Add the radar's waveform to the list of known waveform types for the ESM sensor.
esm.WaveformTypes = [0 1];

% Attach the ESM sensor to the first platform.
platESM = scene.Platforms{1};
platESM.Emitters = {}; % Remove the emitter.
platESM.Sensors = esm;

Обновите отображение, чтобы показать и моностатические обнаружения и обнаружения ESM.

detPlotter = detectionPlotter(theaterDisplay,'DisplayName','Radar detections','MarkerFaceColor',radarColor);
platRadarPlotter.DisplayName = 'Monostatic radar';
platRadarPlotter.MarkerFaceColor = radarColor;
platEmitPlotter.DisplayName = 'ESM sensor';
platEmitPlotter.MarkerFaceColor = esmColor;
clearData(esmDetPlotter);
clearData(covPlotter);
covcon = coverageConfig(scene);
plotCoverage(covPlotter, covcon([1 3]) , [1 -2], {esmColor, radarColor});
title(ax,'Passive detection of a monostatic radar');

Figure contains an axes. The axes with title Passive detection of a monostatic radar contains 7 objects of type patch, line. These objects represent Ground, Targets, Trajectories, ESM sensor, Monostatic radar, ESM detections, Radar detections.

На предыдущем рисунке радар сканирует сектор азимута перед своей платформой, которая включает обоих целевая платформа, а также платформа, несущая датчик ESM. Радар сгенерирует обнаружения для обеих из этих платформ, когда его поле зрения (отображенный синим) развернется по их местоположению. Однако, когда луч радара передает по местоположению датчика ESM, датчик ESM обнаружит радар и укажет на его предполагаемое положение, чертя линию, происходя из местоположения датчика.

% Set the random seed for repeatable results.
rng(2018);

platforms = scene.Platforms;
numPlat = numel(platforms);


plotDets = {};
snap = [];
while advance(scene)
    
    % Emit the RF signal.
    [txEmiss, txConfigs] = emit(scene);
    
    % Reflect the emitted signal off of the platforms in the scenario.
    reflEmiss = propagate(scene, txEmiss);
    
    % Generate detections from the sensors.
    [dets, config] = detect(scene, reflEmiss, txConfigs);
    
    % Reset detections every time the radar completes a sector scan.
    if txConfigs(end).IsScanDone
        % Reset
        plotDets = dets;
    else
        % Buffer
        plotDets = [plotDets;dets];%#ok<AGROW>
    end
    
    % Update display with current platform positions, beam positions and detections.
    plotPlatform(platRadarPlotter, platRadar.pose.Position);
    plotPlatform(platEmitPlotter, platEmit.pose.Position);
    plotPlatform(platPlotter, scene.Platforms{3}.pose.Position);
    covcon = coverageConfig(scene);
    plotCoverage(covPlotter, covcon([1 3]) , [1 -2], {esmColor, radarColor});
    plotDetection(esmDetPlotter,plotDets);
    plotMonostaticDetection(detPlotter,plotDets);
    
    % Record the reflected detection at t = 5.6 sec
    snap = getSnap(ax, scene.SimulationTime, 5.6, snap);
    drawnow
end

Figure contains an axes. The axes with title Passive detection of a monostatic radar contains 7 objects of type patch, line. These objects represent Ground, Targets, Trajectories, ESM sensor, Monostatic radar, ESM detections, Radar detections.

Обнаружения от моностатического радара, смоделированного с помощью radarEmitter и radarDataGenerator показываются заполненными, синими кругами около цели и платформы, оборудованной датчиком ESM. Датчик ESM также может обнаружить радар, как обозначается обнаружением только для угла, показавшим линией, происходящей из датчика ESM и передающей около радарной платформы.

figure; imshow(snap.cdata);
title('Radar and target detected by an ESM sensor');

Figure contains an axes. The axes with title Radar and target detected by an ESM sensor contains an object of type image.

Из-за большой мощности (EIRP) эмиссии радара испускаемая энергия отражается прочь цели к платформе ESM также. Это приводит к датчику ESM, обнаруживающему целевую платформу время от времени, когда радарное поле зрения эмиттера проносится мимо целевой платформы, когда цель все еще в поле зрения датчика ESM.

Сводные данные

В этом примере вы изучили, как симулировать удар радиочастотной помехи на моностатическом радаре. Вы также изучили, как симулировать пассивные датчики, которые могут обнаружить эти интерференционные источники, а также радарные датчики в сценарии.

Вспомогательные Функции

getSnap Записывает снимок состояния оси в данное поспешное время.

function snap = getSnap(hAx, curTime, snapTime, prevSnap)
if ~isempty(prevSnap)
    snap = prevSnap;
elseif curTime >= snapTime && curTime < snapTime + 0.05
    hAx.Title.Visible = 'off';
    snap = getframe(hAx.Parent);
    hAx.Title.Visible = 'on';
else
    snap = [];
end
end

plotMonostaticDetection Обнаружения синтаксических анализов, чтобы построить только моностатические обнаружения с detectionPlotter.

function plotMonostaticDetection(plotter, dets)
if ~isempty(dets)
    % Pass only monostatic detections to the detectionPlotter
    radarDetId = cellfun(@(x) x.SensorIndex == 2, dets);
    if any(radarDetId)
        % extract measurement positions for the monostatic radar
        radarDets = [dets{radarDetId}];
        meas = [radarDets.Measurement]';
        plotDetection(plotter,meas);
    end
end
end
Для просмотра документации необходимо авторизоваться на сайте