В радаре перемещения целевой индикации (MTI) возвраты помехи могут сделать более трудным обнаружить и отследить цели интереса. Элементарный способ смягчить последствия помехи возвращается в такой системе, должен реализовать компенсатор импульса перемещенной антенны центра фазы (DPCA) на медленно-разовых данных.
Можно реализовать импульсный компенсатор DPCA с phased.DPCACanceller
. Эта реализация принимает, что целый массив используется на передаче. На получают, массив разделен на два подмассива. Центры фазы подмассивов разделяются дважды расстоянием перемещения платформы в одном импульсном интервале повторения.
Импульсный компенсатор DPCA применим, когда оба этих условия верны:
Помеха является стационарной через импульсы.
Движение удовлетворяет
(1) |
где:
v указывает на скорость платформы
T представляет импульсный интервал повторения
d указывает на межэлементный интервал массива
Этот пример реализует импульсный компенсатор DPCA для отклонения помехи. Примите, что у вас есть бортовая радарная платформа, смоделированная ULA с шестью элементами, действующим на уровне 4 ГГц. Элементы массива расположены с интервалами в половине длины волны несущей частоты на 4 ГГц. Радар испускает десять меандров две микросекунды в длительности с PRF 5 кГц. Платформа проходит ось массивов со скоростью, равной половине продукта интервала элемента и PRF. Отмена импульса DPCA применима потому что где
указывает на скорость платформы
представляет импульсный интервал повторения
указывает на межэлементный интервал массива
Цель имеет неколебание 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; transmitplatform = 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',transmitplatform.InitialPosition(3),... 'PlatformSpeed',norm(transmitplatform.Velocity),... 'PlatformDirection',[90;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);
Распространите десять меандров, чтобы предназначаться и поддержать, и собрать ответы в массиве. Кроме того, вычислите эхо помехи с помощью постоянной гамма модели с гамма значением, соответствующим лесистому ландшафту.
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; clutter.SeedSource = 'Property'; clutter.Seed = 5; 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 csig(:,:,n) = clutter(txsig1(abs(txsig1)>0)); % collect clutter 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 значительно отклонил помеху. В результате цель отображается в ожидаемом логическом элементе области значений.