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

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

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

Рассмотрите бортовой 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');

Симуляция сигнала 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')

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

Сжатие области значений поможет достигнуть желаемого разрешения области значений для пропускной способности 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')

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

Существует несколько методов, чтобы обработать данные перекрестной области значений и получить итоговое изображение от необработанных данных 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')

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

В этом примере показано, как симулировать и разработать обработку 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)

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

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

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