В радаре с индикацией движущейся цели (MTI) возвраты загромождения могут затруднить обнаружение и отслеживание интересующих целей. Рудиментарный способ смягчения эффектов возвратов загромождения в такой системе состоит в том, чтобы реализовать сдвинутую антенну центра фазы (DPCA), подавляющую импульс на данных медленного времени.
Можно реализовать подавитель импульса DPCA с phased.DPCACanceller
. Эта реализация принимает, что весь массив используется при передаче. При приеме массив разделяется на две подрешетки. Центры фаз подрешеток разделяются вдвое большим расстоянием, которое платформа перемещает за один интервал повторения импульса.
Подавитель импульса DPCA применим, когда оба эти условия верны:
Загромождение неподвижно между импульсами.
Движение удовлетворяет
(1) |
где:
v указывает скорость платформы
T представляет интервал повторения импульса
d указывает межэлементный интервал массива
В этом примере реализуется компенсатор импульса DPCA для отклонения загромождения. Предположим, что у вас есть воздушная радиолокационная платформа, смоделированная шестиэлементным ULA, работающим на 4 ГГц. Элементы массива разнесены на половину длины волны несущей частоты 4 ГГц. Радар излучает десять прямоугольных импульсов две микросекунды длительностью с PRF 5 кГц. Платформа перемещается вдоль оси массива со скоростью, равной половине продукта интервала между элементами и PRF. Подавление импульса DPCA применимо, потому что где
указывает скорость платформы
представляет интервал повторения импульса
указывает интервал между межэлементом для массива
Цель имеет неколеблющуюся 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');
Загромождение больших величин возвращает неясно присутствие цели. Примените выключатель импульса 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')
Выключатель импульса DPCA значительно отверг загромождение. В результате цель видна на ожидаемой области значений.