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

Этот пример показывает, как применить основной рабочий процесс тулбокса к следующему сценарию: Примите, что у вас есть одна изотропная антенна, действующая на уровне 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