Адаптивный перемещенный компенсатор импульса антенны центра фазы

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

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

  • Затор и другие эффекты взаимодействия является существенным. Импульсный компенсатор DPCA восприимчив к интерференции, потому что импульсный компенсатор DPCA не использует полученные данные.

  • Алгоритм демонстрационной матричной инверсии (SMI) является неподходящим из-за вычислительного расхода или быстро изменяющей среды.

Объект phased.ADPCAPulseCanceller реализует импульсный компенсатор ADPCA. Этот импульсный компенсатор использует данные, полученные от двух последовательных импульсов, чтобы оценить пространственно-временную интерференционную ковариационную матрицу. В частности, объект позволяет вам задать:

  • Количество учебных ячеек. Алгоритм использует учебные ячейки, чтобы оценить интерференцию. В целом большее число учебных ячеек приводит к лучшей оценке интерференции.

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

Адаптивный импульсный компенсатор DPCA, чтобы отклонить помеху и интерференцию

Этот пример реализует адаптивный импульсный компенсатор DPCA для помехи и интерференционного отклонения. Сценарий идентичен тому в Импульсном Компенсаторе DPCA, чтобы Отклонить Помеху за исключением того, что стационарный широкополосный заградительный передатчик помех добавляется в (3.5e3,1e3,0). Передатчик помех имеет эффективную излучаемую мощность 1 кВт.

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

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

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

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

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

Примечание: Этот пример запускается только в R2016b или позже. Если вы используете более ранний релиз, заменяете каждый вызов функции с эквивалентным синтаксисом step. Например, замените myObject(x) на step(myObject,x).

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;
transmitterplatform = phased.Platform('InitialPosition',[0;0;3e3],...
    'Velocity',[0;vy;0]);
clutter = phased.ConstantGammaClutter('Sensor',array,...
    'PropagationSpeed',radiator.PropagationSpeed,...
    'OperatingFrequency',radiator.OperatingFrequency,...
    'SampleRate',fs,...
    'TransmitSignalInputPort',true,...
    'PRF',PRF,...
    'Gamma',surfacegamma('woods',radiator.OperatingFrequency),...
    'EarthModel','Flat',...
    'BroadsideDepressionAngle',0,...
    'MaximumRange',radiator.PropagationSpeed/(2*PRF),...
    'PlatformHeight',transmitterplatform.InitialPosition(3),...
    'PlatformSpeed',norm(transmitterplatform.Velocity),...
    'PlatformDirection',[90;0]);
target = phased.RadarTarget('MeanRCS',1,...
    'Model','Nonfluctuating','OperatingFrequency',fc);
targetplatform = phased.Platform('InitialPosition',[5e3; 5e3; 0],...
    'Velocity',[15;15;0]);
jammer = phased.BarrageJammer('ERP',1e3,'SamplesPerFrame',200);
jammerplatform = phased.Platform(...
    'InitialPosition',[3.5e3; 1e3; 0],'Velocity',[0;0;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);

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

NumPulses = 10;
wav = waveform();
M = fs/PRF;
N = array.NumElements;
rxsig = zeros(M,N,NumPulses);
csig = zeros(M,N,NumPulses);
jsig = zeros(M,N,NumPulses);
fasttime = unigrid(0,1/fs,1/PRF,'[)');
rangebins = (c * fasttime)/2;
clutter.SeedSource = 'Property';
clutter.Seed = 40543;
jammer.SeedSource = 'Property';
jammer.Seed = 96703;
receiver.SeedSource = 'Property';
receiver.Seed = 56113;
jamloc = jammerplatform.InitialPosition;

for n = 1:NumPulses
    [txloc,txvel] = transmitterplatform(1/PRF); % move transmitter
    [tgtloc,tgtvel] = targetplatform(1/PRF); % move target
    [~,tgtang] = rangeangle(tgtloc,txloc); % get angle to target
    [txsig,txstatus] = transmitter(wav); % transmit pulse
    csig(:,:,n) = clutter(txsig(abs(txsig)>0)); % collect clutter

    txsig = radiator(txsig,tgtang); % radiate pulse
    txsig = channel(txsig,txloc,tgtloc,...
       txvel,tgtvel); % propagate pulse 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
    
    jamsig = jammer(); % generate jammer signal
    [~,jamang] = rangeangle(jamloc,txloc); % angle from jammer to transmitter
    jamsig = channel(jamsig,jamloc,txloc,...
       [0;0;0],txvel); % propagate jammer signal
    jsig(:,:,n) = collector(jamsig,jamang); % collect jammer signal
    
    rxsig(:,:,n) = receiver(...
        rxsig(:,:,n) + csig(:,:,n) + jsig(:,:,n),...
        ~txstatus); % receive pulse plus clutter return plus jammer signal   
end

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

sp = radialspeed(tgtloc, targetplatform.Velocity, ...
    txloc, transmitterplatform.Velocity);
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));

Обработайте ответы массивов с помощью неадаптивного импульсного компенсатора DPCA. Для этого создайте объект 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 7e-2],'-.',rangebins/1e3,abs(y))
axis tight
xlabel('Range (km)')
ylabel('Magnitude')
title('DPCA Canceller Output with Jamming')

Примените адаптивный импульсный компенсатор DPCA. Используйте 100 учебных ячеек и 4 защитных ячейки, два на каждой стороне логического элемента целевого диапазона.

canceller = phased.ADPCACanceller('SensorArray',array,'PRF',PRF,...
    'PropagationSpeed',c,...
    'OperatingFrequency',fc,...
    'Direction',[0;0],'Doppler',tgtdoppler,...
    'WeightsOutputPort',true,'NumGuardCells',4,...
    'NumTrainingCells',100);
[y_adpca,w_adpca] = canceller(rxsig,tgtcell);

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

plot([tgtrng/1e3,tgtrng/1e3],[0 4e-7],'-.',rangebins/1e3,abs(y_adpca))
axis tight
title('ADPCA Canceller Output with Jamming')
xlabel('Range (km)')
ylabel('Magnitude')

Исследуйте ответ углового Доплера. Заметьте присутствие гребня помехи в плоскости углового Доплера и пустом указателе под поперечным углом передатчика помех для всех Доплеровских частот.

angdopplerersponse = phased.AngleDopplerResponse('SensorArray',array,...
    'OperatingFrequency',fc,...
    'PropagationSpeed',c,...
    'PRF',PRF,'ElevationAngle',tgtelang);
plotResponse(angdopplerersponse,w_adpca)
title('Angle-Doppler Response with ADPCA Pulse Cancellation')
text(az2broadside(jamang(1),jamang(2)) + 10,...
    0,'\leftarrow Interference Null')