Сдвинутая фаза центра антенны, импульсный выключатель

Когда использовать DPCA Pulse Canceller

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

Можно реализовать подавитель импульса DPCA с phased.DPCACanceller. Эта реализация принимает, что весь массив используется при передаче. При приеме массив разделяется на две подрешетки. Центры фаз подрешеток разделяются вдвое большим расстоянием, которое платформа перемещает за один интервал повторения импульса.

Применимость импульсного компенсатора DPCA

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

  • Загромождение неподвижно между импульсами.

  • Движение удовлетворяет

    vT=d/2(1)

    где:

    • v указывает скорость платформы

    • T представляет интервал повторения импульса

    • d указывает межэлементный интервал массива

Импульсный компенсатор DPCA для отклонения загромождения

В этом примере реализуется компенсатор импульса DPCA для отклонения загромождения. Предположим, что у вас есть воздушная радиолокационная платформа, смоделированная шестиэлементным ULA, работающим на 4 ГГц. Элементы массива разнесены на половину длины волны несущей частоты 4 ГГц. Радар излучает десять прямоугольных импульсов две микросекунды длительностью с PRF 5 кГц. Платформа перемещается вдоль оси массива со скоростью, равной половине продукта интервала между элементами и PRF. Подавление импульса DPCA применимо, потому что vT=d/2 где

  • v указывает скорость платформы

  • T представляет интервал повторения импульса

  • d указывает интервал между межэлементом для массива

Цель имеет неколеблющуюся RCS 1 квадратный метр и движется с вектором постоянной скорости (15,15,0).

PRF = 5e3;
fc = 4e9;
fs = 1e6;
c = physconst('LightSpeed');
antenna = phased.IsotropicAntennaElement...
    ('FrequencyRange',[8e8 5e9],'BackBaffled',true);
lambda = c/fc;
array = phased.ULA(6,'Element',antenna,'ElementSpacing',lambda/2);
waveform = phased.RectangularWaveform('PulseWidth',2e-6,...
    'PRF',PRF,'SampleRate',fs,'NumPulses',1);
radiator = phased.Radiator('Sensor',array,...
    'PropagationSpeed',c,...
    'OperatingFrequency',fc);
collector = phased.Collector('Sensor',array,...
    'PropagationSpeed',c,...
    'OperatingFrequency',fc);
vy = (array.ElementSpacing*PRF)/2;
transmitplatform = phased.Platform('InitialPosition',[0;0;3e3],...
    'Velocity',[0;vy;0]);

target = phased.RadarTarget('MeanRCS',1,...
    'Model','Nonfluctuating','OperatingFrequency',fc);
targetplatform = phased.Platform('InitialPosition',[5e3; 5e3; 0],...
    'Velocity',[15;15;0]);
channel = phased.FreeSpace('OperatingFrequency',fc,...
    'TwoWayPropagation',false,'SampleRate',fs);
receiver = phased.ReceiverPreamp('NoiseFigure',0,...
    'EnableInputPort',true,'SampleRate',fs,'Gain',40);
transmitter = phased.Transmitter('PeakPower',1e4,...
    'InUseOutputPort',true,'Gain',40);

% Load simulated clutter data
load clutterdata

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

NumPulses = 10;
wav = waveform();
M = fs/PRF; 
N = array.NumElements;
rxsig = zeros(M,N,NumPulses);
csig = zeros(M,N,NumPulses);
fasttime = unigrid(0,1/fs,1/PRF,'[)');
rangebins = (c*fasttime)/2;

for n = 1:NumPulses
    [txloc,txvel] = transmitplatform(1/PRF); % move transmitter
    [tgtloc,tgtvel] = targetplatform(1/PRF); % move target
    [~,tgtang] = rangeangle(tgtloc,txloc); % get angle to target
    [txsig1,txstatus] = transmitter(wav);  % transmit pulse
    txsig = radiator(txsig1,tgtang); % radiate pulse
    txsig = channel(txsig,txloc,tgtloc,...
       txvel,tgtvel); % propagate to target
    txsig = target(txsig);  % reflect off target
    txsig = channel(txsig,tgtloc,txloc,...
       tgtvel,txvel); % propagate to array
    rxsig(:,:,n) = collector(txsig,tgtang); % collect pulse
    rxsig(:,:,n) = receiver(rxsig(:,:,n) + csig(:,:,n),...
		~txstatus); % receive pulse plus clutter return 
end

Определите целевую область значений, ворота области значений и двухсторонний доплеровский сдвиг.

sp = radialspeed(tgtloc,tgtvel,txloc,txvel);
tgtdoppler = 2*speed2dop(sp,lambda); 
tgtLocation = global2localcoord(tgtloc,'rs',txloc);
tgtazang = tgtLocation(1);
tgtelang = tgtLocation(2);
tgtrng = tgtLocation(3);
tgtcell = val2ind(tgtrng,c/(2*fs));

Используйте некогерентное интегрирование импульсов, чтобы визуализировать сигнал, принятый ULA для первого из десяти импульсов. Отметьте ворота целевой области значений вертикальной штриховой линией.

firstpulse = pulsint(rxsig(:,:,1),'noncoherent');
plot([tgtrng/1e3 tgtrng/1e3],[0 0.1],'-.',rangebins/1e3,firstpulse)
title('Noncoherent Integration of 1st Pulse at the ULA')
xlabel('Range (km)')
ylabel('Magnitude');

Figure contains an axes. The axes with title Noncoherent Integration of 1st Pulse at the ULA contains 2 objects of type line.

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

canceller = phased.DPCACanceller('SensorArray',array,'PRF',PRF,...
    'PropagationSpeed',c,...
    'OperatingFrequency',fc,...
    'Direction',[0;0],'Doppler',tgtdoppler,...
    'WeightsOutputPort',true);
[y,w] = canceller(rxsig,tgtcell);

Постройте график результата применения компенсатора импульсов DPCA. Отметьте ворота целевой области значений вертикальной штриховой линией.

plot([tgtrng/1e3,tgtrng/1e3],[0 3.5e-5],'-.',rangebins/1e3,abs(y))
title('DPCA Canceller Output')
xlabel('Range (km)')
ylabel('Magnitude')

Figure contains an axes. The axes with title DPCA Canceller Output contains 2 objects of type line.

Выключатель импульса DPCA значительно отверг загромождение. В результате цель видна на ожидаемой области значений.