exponenta event banner

Переход от статистических к физическим радарным моделям

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

Целью подсистемы обработки сигналов является преобразование принятых IQ сигналов в целевые детекторы. Подсистема обработки данных принимает эти обнаружения и формирует дорожки, соответствующие обнаруженным целям.

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

Инженеры-радары, которые моделируют и моделируют алгоритмы и системы, должны работать на различных уровнях абстракции, охватывающих области обработки сигналов и данных. Уровень абстракции зависит от фазы жизненного цикла развития РЛС, длины моделируемой сцены и вида выполняемых инженерных работ.

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

Этот пример начинается со статистической модели для данной сцены, а затем из статистической модели программно создается эквивалентная модель уровня IQ сигнала.

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

Определение сцены

Для начала мы определим сценарий с радиолокатором стационарного наблюдения. В поле зрения РЛС три цели. На графике ниже показаны места расположения РЛС и целей.

% Create targets.

tgt1 = struct( ...
    'PlatformID', 1, ...
    'Position', [0 -50e3 -1e3], ...
    'Velocity', [0 900*1e3/3600 0]);

tgt2 = struct( ...
    'PlatformID', 2, ...
    'Position', [20e3 0 -500], ...
    'Velocity', [700*1e3/3600 0 0]);

tgt3 = struct( ...
    'PlatformID', 3, ...
    'Position', [-20e3 0 -500], ...
    'Velocity', [300*1e3/3600 0 0]);

tp = theaterPlot('XLim',[-30e3 30e3],'YLim',[-60e3 10e3],'ZLim',[-10e3 1e3]);
gtplot = platformPlotter(tp,'DisplayName','Target Ground Truth',...
    'Marker','^','MarkerSize',8,'MarkerFaceColor','r');
plotPlatform(gtplot,[tgt1.Position;tgt2.Position;tgt3.Position],...
    [tgt1.Velocity;tgt2.Velocity;tgt3.Velocity],{'Target1','Target2','Target3'});

Figure contains an axes. The axes contains 4 objects of type line, text. This object represents Target Ground Truth.

Определение радара для генерации обнаружения

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

radarDataGenerator сформированные обнаружения статистически на основе уравнения радара.

% Create an airport surveillance radar 15 meters above the ground
rpm = 12.5;
fov = [1.4;5]; % [azimuth; elevation]

scanrate = rpm*360/60;  % deg/s
updaterate = scanrate/fov(1); % Hz

sensor = radarDataGenerator(1, 'Rotator', ...
    'UpdateRate', updaterate, ...
    'MountingLocation', [0 0 -15], ...
    'MaxAzimuthScanRate', scanrate, ...
    'FieldOfView', fov, ...
    'AzimuthResolution', fov(1));

radarPosition = [0 0 0];
radarVelocity = [0 0 0];
radarplot = platformPlotter(tp,'DisplayName','Radar',...
    'Marker','s','MarkerSize',8,'MarkerFaceColor','b');
plotPlatform(radarplot,radarPosition,radarVelocity,{'Radar'})

Figure contains an axes. The axes contains 6 objects of type line, text. These objects represent Target Ground Truth, Radar.

Генерировать статистическое радиолокационное обнаружение

Код ниже имитирует полное сканирование радара наблюдения.

% Generate detections from a full scan of the radar
simTime = 0;
detBuffer = {};

rng(2020);
while true
    [dets, numDets, config] = sensor([tgt1 tgt2 tgt3], simTime);
    detBuffer = [detBuffer;dets]; %#ok<AGROW>

    % Is full scan complete?
    if config.IsScanDone
        break % yes
    end
    simTime = simTime+1/sensor.UpdateRate;
end

stadetpos = zeros(numel(detBuffer),3);
for m = 1:numel(detBuffer)
    stadetpos(m,:) = detBuffer{m}.Measurement.';
end
stadet = detectionPlotter(tp,'DisplayName','Statistical Detection',...
    'Marker','d','MarkerSize',6,'MarkerFaceColor','g');
plotDetection(stadet,stadetpos)

Figure contains an axes. The axes contains 7 objects of type line, text. These objects represent Target Ground Truth, Radar, Statistical Detection.

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

Определение радара для генерации и обработки IQ-сигнала

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

sensor_iq = radarTransceiver(sensor)
sensor_iq = 
  radarTransceiver with properties:

                      Waveform: [1x1 phased.RectangularWaveform]
                   Transmitter: [1x1 phased.Transmitter]
               TransmitAntenna: [1x1 phased.Radiator]
                ReceiveAntenna: [1x1 phased.Collector]
                      Receiver: [1x1 phased.ReceiverPreamp]
            MechanicalScanMode: 'Circular'
    InitialMechanicalScanAngle: -0.1000
            MechanicalScanRate: 75
            ElectronicScanMode: 'None'
              MountingLocation: [0 0 -15]
                MountingAngles: [0 0 0]
          NumRepetitionsSource: 'Property'
                NumRepetitions: 1

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

% configure signal processing component
 
coeff = getMatchedFilter(sensor_iq.Waveform);
mf = phased.MatchedFilter('Coefficients',coeff,'GainOutputPort',true);
 
npower = noisepow(1/sensor_iq.Waveform.PulseWidth,...
sensor_iq.Receiver.NoiseFigure,sensor_iq.Receiver.ReferenceTemperature);
threshold = npower * db2pow(npwgnthresh(sensor.FalseAlarmRate));
 
fs = sensor_iq.Waveform.SampleRate;
prf = sensor_iq.Waveform.PRF;
c = physconst('lightspeed');
fc = sensor_iq.TransmitAntenna.OperatingFrequency;
lambda = c/fc;
Nsamp = round(fs/prf);
rgates = (0:Nsamp-1)/fs*c/2;
tvg = phased.TimeVaryingGain(...
    'RangeLoss',2*fspl(rgates,lambda),...
    'ReferenceLoss',2*fspl(Nsamp/fs*c/2,lambda));
 

Моделирование сигнала IQ и обработки

Затем мы можем выполнить моделирование IQ и проверить, может ли наш алгоритм обработки дать нам результат simialr в качестве нашего статистического датчика. Обратите внимание, что цикл моделирования для генерации IQ-сигнала почти идентичен контуру, который генерирует статистическое обнаружение. В цикле также показано, как обрабатывать IQ-сигнал, чтобы получить обнаружение.

simTime = 0;
detBuffer_iq = {};

while true
    [sig, config] = sensor_iq([tgt1 tgt2 tgt3], simTime);
    if config.IsScanDone
        break;
    end
 
    % Processing
    [sigp,Gmf] = mf(sig);
    sigp = tvg(sigp);
    
    th = sqrt(threshold*db2pow(Gmf));
    ind = abs(sigp)>th;
    if any(ind)
        [~,idx] = max(abs(sigp));
        rng_est = rgates(idx);
        meas_sensor = [0;0;rng_est];
        meas_body = local2globalcoord(meas_sensor,'sr',...
            config.OriginPosition,config.Orientation);
        dets_iq = struct('Time',simTime,'Measurement',meas_body);
        detBuffer_iq = [detBuffer_iq;dets_iq]; %#ok<AGROW>
    end
 
    simTime = simTime+1/updaterate;
end

iqdetpos = zeros(numel(detBuffer_iq),3);
for m = 1:numel(detBuffer)
    iqdetpos(m,:) = detBuffer_iq{m}.Measurement.';
end
iqdet = detectionPlotter(tp,'DisplayName','IQ Detection',...
    'Marker','o','MarkerSize',10,'MarkerEdgeColor','k');
plotDetection(iqdet,iqdetpos)

Figure contains an axes. The axes contains 8 objects of type line, text. These objects represent Target Ground Truth, Radar, Statistical Detection, IQ Detection.

График, приведенный выше, ясно показывает, что результат, полученный из генерации IQ-сигнала, аналогичен результату, сформированному из статистической модели.

Резюме

В этом примере мы построим статистическую модель для генерации обнаружений на основе уравнения радара. Затем мы создали эквивалентную модель уровня IQ сигнала для того же сценария и сравнили результаты. Этот рабочий процесс является очень удобным способом быстрого запуска модели уровня сигнала. После создания базовой сигнальной модели ее можно расширить в соответствии с требованиями проекта.