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

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

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

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

c = physconst('LightSpeed');

Установите частоту центра SAR.

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

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

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);

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

В этом примере две статических цели точки сконфигурированы в местоположениях, заданных ниже. Целая сцена как показано далее в симуляции предстоит платформе в будущем. Концы сбора данных перед бортовой платформой имеют в ряд целевое местоположение. Все цели имеют среднее значение RCS 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. The axes with title Ground Truth contains 2 objects of type line.

Симуляция сигнала SAR

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

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. The axes 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. The axes with title SAR Range Compressed Data contains an object of type image.

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

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

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

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

Постройте фокусируемое изображение SAR с помощью алгоритма миграции области значений. Только раздел изображения, сформированного с помощью алгоритма миграции области значений, как показывают, точно указывает местоположение целей. Миграция области значений как показано [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. The axes with title SAR Data focused using Range Migration algorithm contains an object of type image.

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

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

Ссылки

  1. Cafforio, C., Прати, C. и Рокка, F., 1991. Фокусировка данных о SAR с помощью сейсмических методов миграции. Транзакции 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;

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

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

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

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

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

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 сигнала БПФ с новой перекрестной областью значений wavenumber, чтобы достигнуть полной фокусировки в диапазоне ссылки и как побочный продукт, частичная фокусировка целей, не лежащих в диапазоне ссылки.

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
Для просмотра документации необходимо авторизоваться на сайте