exponenta event banner

Компенсатор импульсов антенны с смещенным фазовым центром

Когда использовать компенсатор импульсов DPCA

В радиолокаторе индикации движущейся цели (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 значительно отверг беспорядок. В результате цель становится видимой на ожидаемом участке диапазона.