exponenta event banner

Формирование изображения РЛС с синтетической апертурой (SAR)

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

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

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

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

  2. Дальность: этот параметр определяет дальность, ортогональную траектории полета радиолокационной платформы.

  3. Fast-time: этот параметр определяет длительность времени работы каждого импульса.

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

Конфигурация радара

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

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

c = physconst('LightSpeed');

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

fc = 4e9;

Установите требуемый диапазон и разрешение в диапазоне 3 метра.

rangeResolution = 3;  
crossRangeResolution = 3;

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

bw = c/(2*rangeResolution);

В системе SAR 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;

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

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.

Моделирование сигнала SAR

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

% 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.

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

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

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

Визуализация конечного изображения SAR.

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

Перенос дальности и точная форма алгоритма обратного проецирования, как показано на [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.

Резюме

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

Ссылки

  1. Каффорио, К., Прати, К. и Рокка, Ф., 1991. Фокусировка данных SAR с использованием методов сейсмической миграции. Сделки IEEE по аэрокосмическим и электронным системам, 27 (2), стр. 194-207.

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

  3. Na Y., Lu Y., Sun H., A Comparison of Back-Projection and Range Migration Algorithms for Ultra-Wideband SAR Imaging, четвертый семинар IEEE по матрице датчиков и многоканальной обработке, 2006., Waltham, MA., 2006, pp. 320-324.

  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;

Формирование матрицы волновых чисел перекрестного диапазона для согласования с размером принятого двумерного сигнала SAR

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

fsmPol = (sdata.').*kFinal;

Выполнить интерполяцию Столта для достижения фокусировки целей, не лежащих на опорном диапазоне

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