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

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

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

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

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

Смотрите Моделирование Движения в Системах Фазированных Решеток для получения дополнительной информации о движении моделирования.

Моделирующий передатчик

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

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

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

maxrange = 1.5e4;
lambda = physconst('LightSpeed')/target.OperatingFrequency;
tau = waveform.PulseWidth;
Ts = 290;
rcs = 0.5;
Gain = 20;
dbterm = db2pow(SNR - 2*Gain);
Pt = (4*pi)^3*physconst('Boltzmann')*Ts/tau/rcs/lambda^2*maxrange^4*dbterm;

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

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

Смотрите Передатчик для получения дополнительных примеров по моделированию передатчиков и Основное Уравнение Радиолокации (Radar Toolbox) для примеров, которые используют основное уравнение радиолокации.

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

Чтобы смоделировать излучение формы волны из массива, используйте 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 Системный объект. Можно смоделировать одностороннее или двухфазное распространение путем установки 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')
xline([tgtrng/1e3,tgtrng/1e3],'r')
hold off

Figure contains an axes. The axes contains 3 objects of type line, constantline.