Пример представляет сценарий, состоящий из вращающегося моностатического радара и цели с радарным сечением, описанным моделью Swerling 1. В этом примере радар и цель являются стационарными.
Для целевых моделей Swerling 1 и Swerling 2 общая RCS возникает из многих независимых малых рассеивателей примерно равной индивидуальной RCS. Общая RCS может изменяться с каждым импульсом в скане (Swerling 2) или может быть постоянной в течение полного скана, состоящего из нескольких импульсов (Swerling 1). В любом случае статистика подчиняется хи-квадратной функции плотности вероятностей с двумя степенями свободы.
Для простоты начните с вращающегося радара, имеющего время вращения 5 секунд, соответствующее скорости вращения или скорости сканирования 72 градусов/секунду.
Trot = 5.0; rotrate = 360/Trot;
Радиолокатор имеет основную ширину луча полустепени ( HPBW) 3,0 степеней. За то время, что цель освещается основным лучом, радарные импульсы поражают цель и отражаются назад к радару. Период времени, в течение которого цель освещается, называется временем задержки. Этот временной период также называется сканом. В этом примере будут обработаны 3 сканы целевого объекта.
HPBW = 3.0; Tdwell = HPBW/rotrate; Nscan = 3;
Количество импульсов, которые поступают на цель во время времени задержки, зависит от частоты повторения импульса (PRF). PRF является обратной переменной интервала повторения импульса (PRI). Предположим, что в секунду передается 5000 импульсов.
prf = 5000.0; pri = 1/prf;
Количество импульсов за одно времена задержки составляет
Np = floor(Tdwell*prf);
Вы создаете цель Swerling 1, правильно используя step
метод RadarTarget
Системные object™. Чтобы применить модель Swerling 1, установите Model
свойство phased.RadarTarget
Системные object™ к любому из 'Swerling1'
или 'Swerling2'
. И то и другое эквивалентно. Затем, при первом вызове step
метод в начале скана, установите updatercs
аргумент в true
. Задайте updatercs
на false
для остальных вызовов, чтобы step
во время скана. Это означает, что сечение радара обновляется только в начале скана и остается постоянным для оставшейся части скана.
Установите целевую модель равной 'Swerling1'
.
tgtmodel = 'Swerling1';
Установите излучающую антенну. Предположим, что рабочая частота антенны 1GHz.
fc = 1e9; antenna = phased.IsotropicAntennaElement('BackBaffled',true); radiator = phased.Radiator('OperatingFrequency',fc, ... 'Sensor',antenna);
Укажите местоположение стационарной антенны.
radarplatform = phased.Platform('InitialPosition',[0;0;0]);
Укажите местоположение стационарной цели.
targetplatform = phased.Platform('InitialPosition',[2000; 0; 0]);
Переданный сигнал является линейной FM-формой волны. Передайте один импульс на вызов в step
способ.
waveform = phased.LinearFMWaveform('PulseWidth',50e-6,... 'OutputFormat','Pulses','NumPulses',1);
Настройте усилитель передачи.
transmitter = phased.Transmitter('PeakPower',1000.0,'Gain',40);
Настройте окружение распространения как свободное пространство.
channel = phased.FreeSpace('OperatingFrequency',fc,'TwoWayPropagation',true);
Укажите радиолокационную цель, которая должна иметь среднее значение RCS 1 м2 и быть модели Swerling типа 1 или 2. Можно использовать Swerling 1 или 2 взаимозаменяемо.
target = phased.RadarTarget('MeanRCS',1,'OperatingFrequency',fc,... 'Model',tgtmodel);
Настройте коллектор радара.
collector = phased.Collector('OperatingFrequency',1e9,... 'Sensor',antenna);
Задайте согласованный фильтр, чтобы обработать входящий сигнал.
wav = step(waveform);
filter = phased.MatchedFilter('Coefficients',getMatchedFilter(waveform));
Сгенерируйте форму волны с единичной амплитудой
Усильте сигнал передачи
Излучайте форму волны в нужном направлении к цели
Распространите форму волны на цель и от нее
Отражайте форму волны от радиолокационной цели
Соберите излучение, чтобы создать принятый сигнал
Соответствие полученного сигнала фильтра
Обеспечьте память для радиолокационных амплитуд возврата
z = zeros(Nscan,Np); tp = zeros(Nscan,Np);
Введите цикл. Задайте updatercs
на true
только для первого импульса скана.
for m = 1:Nscan t0 = (m-1)*Trot; t = t0; for k = 1:Np
if k == 1 updatercs = true; else updatercs = false; end t = t + pri; txwav = transmitter(wav);
Найдите радар и положения цели
[xradar,vradar] = radarplatform(t); [xtgt,vtgt] = targetplatform(t);
Излучайте форму волны к цели
[~,ang] = rangeangle(xtgt,xradar); radwav = radiator(txwav,ang);
Распространите форму волны на цель и от нее
propwav = channel(radwav,xradar,xtgt,vradar,vtgt);
Отражайте форму волны от цели. Установите updatercs
флаг.
reflwav = target(propwav,updatercs);
Соберите полученную форму волны
collwav = collector(reflwav,ang);
Примените согласованный фильтр к входящему сигналу
y = filter(collwav); z(m,k) = max(abs(y)); tp(m,k) = t;
end end
Постройте график амплитуд импульсов для скана как функции времени.
plot(tp(:),z(:),'.') xlabel('Time (sec)') ylabel('Pulse Amplitudes')
Заметьте, что импульсные амплитуды постоянны в рамках скана.