Формирование изображения радара с синтезированной апертурой (SAR) карты полос

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

Радар с синтезированной апертурой изображения

РСА генерирует двумерное (2-D) изображение. Направление полета называется перекрестной областью значений или азимута. Направление борсайта антенны (широкая сторона) ортогонально угла тангажа и упоминается как направление поперечной дорожки или области значений. Эти два направления обеспечивают базис для размерностей, необходимой для формирования изображения, полученного из области в пределах ширины луча антенны, через длительность окна набора данных. Поперечное направление является направлением, в котором передаются импульсы. Это направление обеспечивает наклонную область значений до целей вдоль угла тангажа. Затем должна быть обработана энергия, полученная после отражения от целей для каждого импульса (для измерения области значений и разрешения). Перекрестная область значений или азимутальное направление являются направлением угла тангажа, и важно обрабатывать ансамбль импульсов, полученных по всему углу тангажа в этом направлении, для достижения необходимого измерения и разрешения. Правильная фокусировка в обоих направлениях подразумевает успешную генерацию изображения в направлении области значений и перекрестной области значений. Требуется, чтобы ширина луча антенны была достаточно широкой, чтобы цель освещалась в течение длительного времени лучом, когда платформа перемещается по своей траектории. Это поможет предоставить дополнительную информацию о фазе. Ключевые термины, часто встречающиеся при работе с РСА:

  1. Перекрестная область значений (азимут): этот параметр определяет область значений вдоль угла тангажа радиолокационной платформы.

  2. Область значений: этот параметр определяет область значений, ортогональный углы тангажа радиолокационной платформы.

  3. Быстрый: этот параметр определяет временной длительностью для операции каждого импульса.

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

Радиолокационные Строения

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

Установите физическую константу для скорости света.

c = physconst('LightSpeed');

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

fc = 4e9;

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

rangeResolution = 3;  
crossRangeResolution = 3;

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

bw = c/(2*rangeResolution);

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

prf = 1000; 
aperture = 4;  
tpd = 3*10^-6; 
fs = 120*10^6;

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

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

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

speed = 100;  
flightDuration = 4;
radarPlatform  = phased.Platform('InitialPosition', [0;-200;500], 'Velocity', [0; speed; 0]);
slowTime = 1/prf;
numpulses = flightDuration/slowTime +1;

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 = 1000;

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

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

transmitter = phased.Transmitter('PeakPower', 50e3, '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= [800,0,0;1000,0,0; 1300,0,0]'; 

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

target = phased.RadarTarget('OperatingFrequency', fc, 'MeanRCS', [1,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),'*g');hold all;plot(targetpos(2,2),targetpos(1,2),'*r');hold all;plot(targetpos(2,3),targetpos(1,3),'*b');hold off;
set(h,'Ydir','reverse');xlim([-10 10]);ylim([700 1500]);
title('Ground Truth');ylabel('Range');xlabel('Cross-Range');

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

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

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

% Define the broadside angle
refangle = zeros(1,size(targetpos,2));
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);
    
    % Define no tilting of beam in azimuth direction
    targetAngle(1,:) = refangle;
    
    % 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

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

Теперь принятый сигнал может быть визуализирован как набор нескольких импульсов, переданных в направлении перекрестной области значений. Графики показывают действительную часть сигнала для трех целей. Область значений и перекрестная область значений щебеты можно увидеть четко. Целевые отклики могут рассматриваться как перекрывающиеся, поскольку ширина импульса сохраняется дольше, чтобы поддерживать среднюю степень.

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.

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

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

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

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

imagesc(real(cdata));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.

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

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

rma_processed = helperRangeMigration(cdata,fastTime,fc,fs,prf,speed,numpulses,c,Rc);
bpa_processed = helperBackProjection(cdata,rnggrid,fastTime,fc,fs,prf,speed,crossRangeResolution,c);

Визуализируйте окончательное изображение РСА.

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

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

figure(1);
imagesc((abs((rma_processed(1700:2300,600: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.

figure(2)
imagesc((abs(bpa_processed(600:1400,1700:2300))));
title('SAR Data focused using Back-Projection algorithm ')
xlabel('Cross-Range Samples')
ylabel('Range Samples')

Figure contains an axes. The axes with title SAR Data focused using Back-Projection algorithm contains an object of type image.

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

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

Ссылки

  1. Cafforio, C., Prati, C. and Rocca, F., 1991. Данные РСА с учетом методов сейсмической миграции. Сделки ИЭЭЭ по аэрокосмическим и электронным системам, 27 (2), стр. 194-207.

  2. Камминг, И., Беннетт, Дж., 1979. Цифровая обработка данных Seasat SAR. Международная конференция IEEE по акустике, речи и обработке сигналов.

  3. Na Y., Lu Y., Sun H., Сравнение алгоритмов задней проекции и миграции диапазона для ультраширокополосной SAR-визуализации, Четвертый семинар IEEE по матрице датчиков и многоканальной обработке, 2006., Waltham, MA

  4. Егулальп, А. Ф., 1999. Алгоритм быстрой обратной проекции для радара с синтезированной апертурой. Материалы радиолокационной конференции IEEE 1999 года.

Приложение

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

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

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

Установите область значений частотного диапазона.

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;

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

kazimuth = kaz.';
kx = krange.^2-kazimuth.^2;

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

kx = sqrt(kx.*(kx > 0));
kFinal = exp(1i*kx.*Rc);

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

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

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

fsmPol = (sdata.').*kFinal;

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

stoltPol = fsmPol;
for i = 1:size((fsmPol),1)
    stoltPol(i,:) = interp1(kx(i,:),fsmPol(i,:),krange(1,:));
end
stoltPol(isnan(stoltPol)) = 1e-30;
stoltPol = stoltPol.*exp(-1i*krange.*Rc);
azcompresseddata = ifft2(stoltPol);
end

Алгоритм обратной проекции

function data = helperBackProjection(sigdata,rnggrid,fastTime,fc,fs,prf,speed,crossRangeResolution,c)

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

data = zeros(size(sigdata));
azimuthDist = -200:speed/prf:200;%azimuth distance

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

rangelims = [700 1400];
crossrangelims = [-10 10];

Индексируйте область значений сетку в соответствии с пределами области значений.

rangeIdx =  [find(rnggrid>rangelims(1), 1) find(rnggrid<rangelims(2),1,'last')];

Индексируйте расстояние азимута в соответствии с пределами перекрестной области значений.

crossrangeIdxStart = find(azimuthDist>crossrangelims(1),1);
crossrangeIdxStop = find(azimuthDist<crossrangelims(2),1,'last');
for i= rangeIdx(1):rangeIdx(2)  % Iterate over the range indices
    
    % Using desired cross-range resolution, compute the synthetic aperture
    % length
    lsynth= (c/fc)* (c*fastTime(i)/2)/(2*crossRangeResolution);
    lsar = round(lsynth*length(azimuthDist)/azimuthDist(end)) ;
    % Ensure lsar is an odd number
    lsar = lsar + mod(lsar,2);    
    
    % Construct hanning window for cross-range processing, to suppress the
    % azimuthal side lobes
    hn= hanning(lsar).';
    % Iterate over the cross-range indices
    for j= crossrangeIdxStart:crossrangeIdxStop 
        % azimuth distance in x direction over cross-range indices
        posx= azimuthDist(j);
        % range in y-direction over range indices
        posy= c*fastTime(i)/2;
        % initializing count to zero
        count= 0;
        % Iterate over the synthetic aperture
        for k= j-lsar/2 +1:j+ lsar/2 
            % Time delay for each of range and cross-range indices
            td= sqrt((azimuthDist(k)- posx)^2 + posy^2)*2/c;
            cell= round(td*fs) +1 ;
            signal = sigdata(cell,k);
            count= count + hn(k -(j-lsar/2))*signal *exp(1j*2*pi*fc*(td));
        end
        % Processed data at each of range and cross-range indices
        data(i,j)= count;
    end
    
end
end
Для просмотра документации необходимо авторизоваться на сайте