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

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

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

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

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

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

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

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

Задайте сцену

Чтобы запуститься, мы задаем сценарий с радаром наблюдения фиксированного местоположения. В радаре существует три цели? s поле зрения. График ниже показов местоположения радара и целей.

% 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 и проверять, может ли наш алгоритм обработки дать нам подобный результат как наш статистический датчик. Заметьте, что цикл симуляции, чтобы сгенерировать сигнал 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.

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

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

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

Для просмотра документации необходимо авторизоваться на сайте