Сквозная радиолокационная система

В этом примере показано, как применить основной рабочий процесс тулбокса к следующему сценарию: Примите, что у вас есть одна изотропная антенна, действующая на уровне 4 ГГц. Примите, что антенна расположена в начале координат вашей глобальной системы координат. Существует цель с неколеблющимся радарным сечением 0,5 квадратных метров, первоначально расположенных в (7000,5000,0). Цель перемещается с постоянным вектором скорости (-15;-10; 0). Ваша антенна передает десять меандров с длительностью 1 μs в импульсной частоте повторения (PRF) 5 кГц. Импульсы распространяют к цели, отражаются от цели, распространяют назад к антенне и собраны антенной. Антенна действует в моностатическом режиме, получая только, когда передатчик неактивен.

Примечание: Этот пример запускается только в R2016b или позже. Если вы используете более ранний релиз, заменяете каждый вызов функции с эквивалентным step синтаксис. Например, замените myObject(x) с step(myObject,x).

Модель формы волны

Чтобы создать форму волны, используйте phased.RectangularWaveform Система object™ и набор свойства к требуемым значениям.

waveform = phased.RectangularWaveform('PulseWidth',1e-6,...
    'PRF',5e3,'OutputFormat','Pulses','NumPulses',1);

Смотрите Формы волны Меандра для более подробных примеров при создании формы волны.

Модель антенны

Чтобы смоделировать антенну, используйте phased.IsotropicAntennaElement Системный объект. Установите операционный частотный диапазон антенны к (1,10) ГГц. Изотропная антенна излучает равную энергию для углов азимута от-180 ° до 180 ° и углов вертикального изменения от-90 ° до 90 °.

antenna = phased.IsotropicAntennaElement('FrequencyRange',[1e9 10e9]);

Целевая модель

Чтобы смоделировать цель, используйте phased.RadarTarget Системный объект. Цель имеет неколебание, RCS 0,5 квадратных метров и инцидент формы волны на цели имеют несущую частоту 4 ГГц. Форма волны, отражающаяся от цели, распространяет со скоростью света. Параметрируйте эту информацию в определении вашей цели.

target = phased.RadarTarget('Model','Nonfluctuating','MeanRCS',0.5,...
    'PropagationSpeed',physconst('LightSpeed'),'OperatingFrequency',4e9);

Антенна и целевые платформы

Чтобы смоделировать местоположение и перемещение антенны и цели, используйте phased.Platform Системный объект. Антенна является стационарной в этом сценарии и расположена в начале координат глобальной системы координат. Цель первоначально расположена в (7000,5000,0) и перемещается с постоянным вектором скорости (-15,-10,0).

antennaplatform = phased.Platform('InitialPosition',[0;0;0],'Velocity',[0;0;0]);
targetplatform = phased.Platform('InitialPosition',[7000; 5000; 0],...
    'Velocity',[-15;-10;0]);

Для определений и соглашений относительно систем координат, смотрите Системы Глобальной и Локальной координаты.

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

[tgtrng,tgtang] = rangeangle(targetplatform.InitialPosition,...
    antennaplatform.InitialPosition);

Смотрите Движение Моделировать в Поэтапных Системах Массивов для получения дополнительной информации о моделировании движения.

Моделирование передатчика

Чтобы смоделировать технические требования передатчика, используйте phased.Transmitter Системный объект. Основной параметр в моделировании передатчика является пиковой степенью передачи. Чтобы определить пиковую степень передачи, примите, что желаемая вероятность обнаружения 0.9, и максимальная терпимая ложно-сигнальная вероятность 10-6. Примите, что эти десять меандров некогерентно интегрированы в получателе. Можно использовать albersheim функция, чтобы определить необходимое отношение сигнал-шум (SNR).

Pd = 0.9;
Pfa = 1e-6;
numpulses = 10;
SNR = albersheim(Pd,Pfa,10);

Необходимый ОСШ составляет приблизительно 5 дБ. Примите, что вы хотите привести в порядок пиковую степень передачи достигнуть необходимого ОСШ для вашей цели в области значений до 15 км. Примите, что передатчик имеет 20 усилений дБ. Используйте radareqpow функция, чтобы определить необходимую пиковую степень передачи.

maxrange = 1.5e4;
lambda = physconst('LightSpeed')/4e9;
tau = waveform.PulseWidth;
Pt = radareqpow(lambda,maxrange,SNR,tau,'RCS',0.5,'Gain',20);

Необходимая пиковая степень передачи составляет приблизительно 45 киловатт. Чтобы быть консервативными, используйте пиковую мощность 50 киловатт в моделировании вашего передатчика. Чтобы обеспечить постоянную фазу в импульсных сигналах, установите CoherentOnTransmit свойство к true. Поскольку вы управляете передатчиком в моностатическом (передача - получают), режим, установите InUseOutputPort свойство к true записывать состояние передатчика.

transmitter = phased.Transmitter('PeakPower',50e3,'Gain',20,'LossFactor',0,...
    'InUseOutputPort',true,'CoherentOnTransmit',true);

Смотрите Передатчик для большего количества примеров при моделировании передатчиков и Основного уравнения радиолокации для примеров, которые используют основное уравнение радиолокации.

Моделирование излучения формы волны и набора

К излучению формы волны модели от массива используйте phased.Radiator Системный объект. К узкополосному набору сигнала модели в массиве используйте phased.Collector Системный объект. Для широкополосного набора сигнала используйте phased.WidebandCollector Системный объект.

В этом примере импульс удовлетворяет узкополосному предположению сигнала. Несущая частота составляет 4 ГГц. Для значения Sensor свойство, вставьте, используют указатель в изотропной антенне. В phased.Collector Системный объект, набор Wavefront свойство к 'Plane' указывать, что инцидентная форма волны на антенне является плоской волной.

radiator = phased.Radiator('Sensor',antenna,...
    'PropagationSpeed',physconst('LightSpeed'),'OperatingFrequency',4e9);
collector = phased.Collector('Sensor',antenna,...
    'PropagationSpeed',physconst('LightSpeed'),'Wavefront','Plane',...
    'OperatingFrequency',4e9);

Моделирование получателя

Чтобы смоделировать получатель, используйте phased.ReceiverPreamp Системный объект. В получателе вы задаете шумовую фигуру и ссылочную температуру, которые являются ключевыми факторами внутреннего шума вашей системы. В этом примере, набор шумовая фигура к 2 дБ и ссылочная температура к 290 кельвинам. Отберите генератор случайных чисел к фиксированному значению для восстанавливаемых результатов.

receiver = phased.ReceiverPreamp('Gain',20,'NoiseFigure',2,...
    'ReferenceTemperature',290,'SampleRate',1e6,...
    'EnableInputPort',true,'SeedSource','Property','Seed',1e3);

Дополнительную информацию см. в Предусилителе Получателя.

Моделирование распространения

Чтобы смоделировать среду распространения, используйте phased.FreeSpace Системный объект. Можно смоделировать односторонний или 2D распространение путем установки TwoWayPropagation свойство. В этом примере, набор это свойство к false смоделировать одностороннее распространение.

channel = phased.FreeSpace(...
    'PropagationSpeed',physconst('LightSpeed'),...
    'OperatingFrequency',4e9,'TwoWayPropagation',false,...
    'SampleRate',1e6);

Дополнительную информацию см. в Потерях при распространении в свободном пространстве.

Реализация основной радарной модели

Параметрировав все необходимые компоненты для сценария, вы готовы сгенерировать импульсы, распространить импульсы к и от цели и собрать эхо.

Следующий код готовится к основному циклу симуляции. Временной шаг между импульсами

T = 1/waveform.PRF;
% Get antenna position
txpos = antennaplatform.InitialPosition;
% Allocate array for received echoes
rxsig = zeros(waveform.SampleRate*T,numpulses);

Можно выполнить основной цикл симуляции со следующим кодом:

for n = 1:numpulses
    % Update the target position
    [tgtpos,tgtvel] = targetplatform(T);
    % Get the range and angle to the target
    [tgtrng,tgtang] = rangeangle(tgtpos,txpos);
    % Generate the pulse
    sig = waveform();
    % Transmit the pulse. Output transmitter status
    [sig,txstatus] = transmitter(sig);
    % Radiate the pulse toward the target
    sig = radiator(sig,tgtang);
    % Propagate the pulse to the target in free space
    sig = channel(sig,txpos,tgtpos,[0;0;0],tgtvel);
    % Reflect the pulse off the target
    sig = target(sig);
    % Propagate the echo to the antenna in free space
    sig = channel(sig,tgtpos,txpos,tgtvel,[0;0;0]);
    % Collect the echo from the incident angle at the antenna
    sig = collector(sig,tgtang);
    % Receive the echo at the antenna when not transmitting
    rxsig(:,n) = receiver(sig,~txstatus);
end

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

rxsig = pulsint(rxsig,'noncoherent');
t = unigrid(0,1/receiver.SampleRate,T,'[)');
rangegates = (physconst('LightSpeed')*t)/2;
plot(rangegates/1e3,rxsig)
hold on
xlabel('range (km)')
ylabel('Power');
ylim = get(gca,'YLim');
plot([tgtrng/1e3,tgtrng/1e3],[0 ylim(2)],'r')
hold off