Смотревшее искоса формирование радара с синтезированной апертурой (SAR) центра внимания изображений

В этом примере показано, как смоделировать основанную на центре внимания систему Радара с синтезированной апертурой (SAR) с помощью Линейного FM (LFM) Форма волны. В случае косого режима платформа РСА смотрится искоса или чтобы ожидать или назад определенным углом от разворота в зависимости от потребности. Косой режим помогает в областях обработки изображений, предстоящих текущему радарному местоположению платформы в будущем или к расположениям изображения, стоящим за местоположением платформы для интерферометрических приложений. Проблема в косом режиме происходит выше из-за связи азимута области значений. Поскольку разрешение РСА зависит от сигнала и настройки антенны, разрешение может быть намного выше, чем для основанных на видении систем обработки изображений. Используя режим центра внимания, этот пример выполняет алгоритм миграции области значений [1,3], чтобы отобразить стационарные цели, предстоящие местоположению платформы РСА в будущем. Линейная форма волны FM предлагает преимущество большого продукта полосы пропускания времени в значительно более низкой степени передачи, делающей его подходящий для использования в бортовых системах. Для получения дополнительной информации о терминологии, используемой в этом примере, см. Формирование Радара с синтезированной апертурой (SAR) Изображений Stripmap.

Радарная настройка

Рассмотрите бортовой РСА, действующий в C-полосе с несущей частотой на 4 ГГц и полосой пропускания сигнала 50 МГц. Эта полоса пропускания дает к разрешению области значений 3 метров. Радиолокационная система собирает данные под косым углом 33 градусов разворота как показано на рисунке выше. Задержка соответствует в целом наклонной области значений между целью и платформой. Для системы РСА наклонная область значений будет варьироваться в зависимости от времени, когда платформа пересекает путь, ортогональный к направлению луча антенны. Этот раздел ниже особого внимания при определении параметров для формы волны передачи. Полоса пропускания развертки LFM может быть решена на основе желаемого разрешения области значений.

c = physconst('LightSpeed');

Установите частоту центра РСА.

fc = 4e9;% Hz

Установите желаемую область значений и разрешение перекрестной области значений 3 метров.

rangeResolution = 3;% meters
crossRangeResolution = 3;% meters

Полоса пропускания сигнала является параметром, выведенным из желаемого разрешения области значений.

bw = c/(2*rangeResolution);

prf = 1000;% Hz
aperture = 4;% sq. meters  
tpd = 3*10^-6; % sec
fs = 120*10^6; % Hz

Сконфигурируйте сигнал LFM радара.

waveform = phased.LinearFMWaveform('SampleRate',fs, 'PulseWidth', tpd, 'PRF', prf,...
    'SweepBandwidth', bw);

Примите, что скорость самолета составляет 100 м/с с длительностью рейса 4 секунд.

speed = 100;% m/s  
flightDuration = 4;% sec
radarPlatform  = phased.Platform('InitialPosition', [0;-600;500], 'Velocity', [0; speed; 0]);
slowTime = 1/prf;
numpulses = flightDuration/slowTime +1;
eta1 = linspace(0,flightDuration ,numpulses)';

maxRange = 2500;
truncrangesamples = ceil((2*maxRange/c)*fs);
fastTime = (0:1/fs:(truncrangesamples-1)/fs);
% Set the reference range for the cross-range processing.
Rc = 1e3;% meters

Сконфигурируйте передатчик РСА и приемник. Антенна смотрит в поперечном направлении, ортогональном к направлению рейса.

antenna = phased.CosineAntennaElement('FrequencyRange', [1e9 6e9]);
antennaGain = aperture2gain(aperture,c/fc); 

transmitter = phased.Transmitter('PeakPower', 1e3, 'Gain', antennaGain);
radiator = phased.Radiator('Sensor', antenna,'OperatingFrequency', fc, 'PropagationSpeed', c);

collector = phased.Collector('Sensor', antenna, 'PropagationSpeed', c,'OperatingFrequency', fc);
receiver = phased.ReceiverPreamp('SampleRate', fs, 'NoiseFigure', 30);

Сконфигурируйте канал распространения.

channel = phased.FreeSpace('PropagationSpeed', c, 'OperatingFrequency', fc,'SampleRate', fs,...
    'TwoWayPropagation', true);

Настройка сцены

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

targetpos= [900,0,0;1000,-30,0]'; 

targetvel = [0,0,0;0,0,0]';

Косое угловое вычисление зависит от угла тангажа и центра целевой сцены, которая расположена на уровне почти 950 метров в этом случае.

squintangle = atand(600/950);
target = phased.RadarTarget('OperatingFrequency', fc, 'MeanRCS', [1,1]);
pointTargets = phased.Platform('InitialPosition', targetpos,'Velocity',targetvel);
% The figure below describes the ground truth based on the target
% locations.
figure(1);
h = axes;plot(targetpos(2,1),targetpos(1,1),'*b');hold all;plot(targetpos(2,2),targetpos(1,2),'*r');hold off;
set(h,'Ydir','reverse');xlim([-50 10]);ylim([800 1200]);
title('Ground Truth');ylabel('Range');xlabel('Cross-Range');

Figure contains an axes object. The axes object with title Ground Truth contains 2 objects of type line.

Симуляция сигнала РСА

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

rxsig = zeros(truncrangesamples,numpulses);
for ii = 1:numpulses
    % Update radar platform and target position
    [radarpos, radarvel] = radarPlatform(slowTime);
    [targetpos,targetvel] = pointTargets(slowTime);
    
    % Get the range and angle to the point targets
    [targetRange, targetAngle] = rangeangle(targetpos, radarpos);
    
    % Generate the LFM pulse
    sig = waveform();
    % Use only the pulse length that will cover the targets.
    sig = sig(1:truncrangesamples);
    
    % Transmit the pulse
    sig = transmitter(sig);
    
    % Radiate the pulse towards the targets
    sig = radiator(sig, targetAngle);
    
    % Propagate the pulse to the point targets in free space
    sig = channel(sig, radarpos, targetpos, radarvel, targetvel);
    
    % Reflect the pulse off the targets
    sig = target(sig);
    
    % Collect the reflected pulses at the antenna
    sig = collector(sig, targetAngle);
    
    % Receive the signal
    rxsig(:,ii) = receiver(sig);
    
end

kc = (2*pi*fc)/c;
% Compensate for the doppler due to the squint angle
rxsig=rxsig.*exp(-1i.*2*(kc)*sin(deg2rad(squintangle))*repmat(speed*eta1,1,truncrangesamples)).';

Визуализируйте полученный сигнал.

Полученный сигнал может теперь визуализироваться как набор нескольких импульсов, переданных в направлении перекрестной области значений. Графики показывают действительную часть сигнала для двух целей. Щебеты кажутся наклоненными из-за косого угла антенны.

imagesc(real(rxsig));title('SAR Raw Data')
xlabel('Cross-Range Samples')
ylabel('Range Samples')

Figure contains an axes object. The axes object with title SAR Raw Data contains an object of type image.

Выполните сжатие области значений.

Сжатие области значений поможет достигнуть желаемого разрешения области значений для полосы пропускания 50 МГц.

pulseCompression = phased.RangeResponse('RangeMethod', 'Matched filter', 'PropagationSpeed', c, 'SampleRate', fs);
matchingCoeff = getMatchedFilter(waveform);
[cdata, rnggrid] = pulseCompression(rxsig, matchingCoeff);

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

imagesc(real(cdata(800:1100,:)));title('SAR Range Compressed Data')
xlabel('Cross-Range Samples')
ylabel('Range Samples')

Figure contains an axes object. The axes object with title SAR Range Compressed Data contains an object of type image.

Сжатие азимута

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

rma_processed = helperSquintRangeMigration(cdata,fastTime,fc,fs,prf,speed,numpulses,c,Rc,squintangle);

Визуализируйте итоговое изображение РСА.

Постройте фокусируемое изображение РСА с помощью алгоритма миграции области значений. Только раздел изображения, сформированного с помощью алгоритма миграции области значений, как показывают, точно указывает местоположение целей. Миграция области значений как показано [1], [2] и [3] обеспечивает теоретическое разрешение в перекрестной дорожке, а также направлении вдоль дорожки.

figure(2);
imagesc(abs(rma_processed(2300:3600,1100:1400).'));
title('SAR Data focused using Range Migration algorithm ') 
xlabel('Cross-Range Samples') 
ylabel('Range Samples')

Figure contains an axes object. The axes object with title SAR Data focused using Range Migration algorithm contains an object of type image.

Сводные данные

В этом примере показано, как симулировать и разработать обработку РСА Центра внимания режима Squint, усиливающую сигнал LFM в бортовом сценарии сбора данных. Пример также демонстрирует формирование изображения от полученного сигнала с помощью модифицированного алгоритма миграции области значений, чтобы обработать эффект, должный смотреть искоса.

Ссылки

  1. Cafforio, C., Прати, C. и Рокка, F., 1991. Фокусировка данных о РСА с помощью сейсмических методов миграции. Транзакции IEEE на космических и электронных системах, 27 (2), pp.194-207.

  2. Soumekh, M., 1999. Обработка сигналов Радара с синтезированной апертурой с алгоритмами MATLAB. John Wiley & Sons, Inc.

  3. Stolt, R.H., Миграция методами преобразования Фурье, Геофизикой, 1978, 43, стр 23-48

Приложение

Алгоритм миграции области значений

function azcompresseddata = helperSquintRangeMigration(sigData,fastTime,fc,fs,prf,speed,numPulses,c,Rc,squintangle)

Эта функция демонстрирует алгоритм миграции области значений для обработки изображений стороны, выглядящей, синтетической апертурой radar.The пульсировала, сжатые синтетические апертурные данные рассматриваются в этом алгоритме.

Установите промежуток частоты области значений.

frequencyRange = linspace(fc-fs/2,fc+fs/2,length(fastTime));
krange = 2*(2*pi*frequencyRange)/c;

Установите волновое число перекрестной области значений.

kaz = 2*pi*linspace(-prf/2,prf/2,numPulses)./speed;

Сгенерируйте матрицу волновых чисел перекрестной области значений, чтобы совпадать с размером полученного двумерного сигнала РСА

kc = 2*pi*fc/3e8;
kazimuth = kaz.';
kus=2*(kc)*sin(deg2rad(squintangle));
kx = krange.^2-(kazimuth+kus).^2;

Волновое число было изменено, чтобы вместить сдвиг, должный смотреть искоса и достигнуть фокусировки азимута.

thetaRc = deg2rad(squintangle);
kx = sqrt(kx.*(kx > 0));

kFinal = exp(1i*(kx.*cos(thetaRc)+(kazimuth).*sin(thetaRc)).*Rc);
kfin = kx.*cos(thetaRc)+(kazimuth+kus).*sin(thetaRc);

Выполните двумерный БПФ на области значений сжатый сигнал.

sdata =fftshift(fft(fftshift(fft(sigData,[],1),1),[],2),2);

Выполните объемное сжатие, чтобы получить сжатие азимута в диапазоне ссылки. Выполните фильтрацию 2D сигнала БПФ с новым волновым числом перекрестной области значений, чтобы достигнуть полной фокусировки в диапазоне ссылки и как побочный продукт, частичная фокусировка целей, не лежащих в диапазоне ссылки.

fsmPol = (sdata.').*kFinal;

Выполните Интерполяцию Stolt, чтобы достигнуть фокусировки для целей, которые не лежат в диапазоне ссылки

stoltPol = fsmPol;
for i = 1:size((fsmPol),1)
    stoltPol(i,:) = interp1(kfin(i,:),fsmPol(i,:),krange(1,:));
end
stoltPol(isnan(stoltPol)) = 1e-30;

azcompresseddata = ifftshift(ifft2(stoltPol),2);

end