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