Увеличение углового разрешения с помощью виртуальных массивов

Этот пример представляет, как формирование виртуального массива в радарах MIMO может помочь увеличить угловое разрешение. Это показывает, как симулировать когерентную цепь обработки радиолокационных сигналов MIMO с помощью Toolbox™ Phased Array System.

Введение

Существует две категории нескольких входных множественных выходных (MIMO) радаров. Мультистатические радары образуют первую категорию. Их часто называют статистическими радарами MIMO. Когерентные радары MIMO образуют вторую категорию и являются особым вниманием этого примера. Преимуществом когерентной обработки радиолокационного сигнала MIMO является способность увеличивать угловое разрешение физической антенной решетки путем формирования виртуального массива.

Виртуальный массив

Виртуальный массив может быть создана квазимоностатическими радарами MIMO, где передающие и приёмные массивы тесно расположены. Чтобы лучше изучить концепцию виртуальных массивов, сначала посмотрите на двухсторонний шаблон обычного радара с фазированной решеткой. Двухсторонний шаблон радара с фазированной решеткой является продуктом его шаблона передающего массива и шаблона приёмного массива. Например, рассмотрим радар волны миллиметра на 77 ГГц с 2-х элементной передающим массивом и с 4-х элементным приёмным массивом.

fc = 77e9;
c = 3e8;
lambda = c/fc;
Nt = 2;
Nr = 4;

Если обе матрицы имеют полуволновый интервал, который иногда упоминается как полные массивы, то двухсторонний шаблон близок к шаблону приёмной решётки.

dt = lambda/2;
dr = lambda/2;

txarray = phased.ULA(Nt,dt);
rxarray = phased.ULA(Nr,dr);

ang = -90:90;

pattx = pattern(txarray,fc,ang,0,'Type','powerdb');
patrx = pattern(rxarray,fc,ang,0,'Type','powerdb');
pat2way = pattx+patrx;

helperPlotMultipledBPattern(ang,[pat2way pattx patrx],[-30 0],...
    {'Two-way Pattern','Tx Pattern','Rx Pattern'},...
    'Patterns of full/full arrays - 2Tx, 4Rx',...
    {'-','--','-.'});

Если полная передающий массив заменён тонким массивом, что означает, что интервал между элементами шире половины длины волны, то двухсторонний шаблон имеет более узкую ширину луча. Заметьте, что, несмотря на то, что тонкая передающий массив имеет лопасти решетки, эти лопасти решетки не присутствуют в двухстороннем шаблоне.

dt = Nr*lambda/2;
txarray = phased.ULA(Nt,dt);
pattx = pattern(txarray,fc,ang,0,'Type','powerdb');
pat2way = pattx+patrx;
helperPlotMultipledBPattern(ang,[pat2way pattx patrx],[-30 0],...
    {'Two-way Pattern','Tx Pattern','Rx Pattern'},...
    'Patterns of thin/full arrays - 2Tx, 4Rx',...
    {'-','--','-.'});

Двухсторонний шаблон этой системы соответствует шаблону виртуального приёмного массива с 2 x 4 = 8 элементами. Таким образом, путем тщательного выбора геометрии передающей и приёмной решёток, мы можем увеличить угловое разрешение системы, не добавляя больше антенн в массивы.

varray = phased.ULA(Nt*Nr,dr);
patv = pattern(varray,fc,ang,0,'Type','powerdb');
helperPlotMultipledBPattern(ang,[pat2way patv],[-30 0],...
    {'Two-way Pattern','Virtual Array Pattern'},...
    'Patterns of thin/full arrays and virtual array',...
    {'-','--'},[1 2]);

Виртуальный массив в радарах MIMO

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

Обратите внимание, что поскольку каждый элемент в передающем массиве излучает независимо, формирование луча передачи отсутствует, поэтому шаблон передачи является широким и охватывает большое поле зрения (FOV). Это позволяет одновременно подсвечивать все цели в БОВ. Затем приёмный массив может сгенерировать несколько пучков для обработки всех целевых эхо-сигналов. По сравнению с обычными радарами с фазированной решеткой, которые нуждаются в последовательных сканах, чтобы охватить весь FOV, это еще одно преимущество радаров MIMO для приложений, которые требуют быстрого времени реакции.

Радиолокационные

Симуляции TDM-MIMO

Мультиплексирование с временным делением (TDM) является одним из способов достижения ортогональности среди каналов передачи. Эта оставшаяся часть этого примера показов, как смоделировать и симулировать автомобильную радиолокационную систему с частотной модуляцией TDM-MIMO (FMCW). Характеристики формы волны адаптируются из примера автомобильного адаптивного круиз-контроля с использованием технологии FMCW (Radar Toolbox).

waveform = helperDesignFMCWWaveform(c,lambda);
fs = waveform.SampleRate;

Представьте, что в ФОВе две машины с разделением на 20 степени. Как видно на более ранних графиках шаблона в этом примере, 3dB ширина луча 4-элементной приёмной решётки составляет около 30 степени, поэтому обычная обработка не сможет разделить две цели в угловой области. Параметры радарного датчика следующие:

transmitter = phased.Transmitter('PeakPower',0.001,'Gain',36);
receiver = phased.ReceiverPreamp('Gain',40,'NoiseFigure',4.5,'SampleRate',fs);

txradiator = phased.Radiator('Sensor',txarray,'OperatingFrequency',fc,...
    'PropagationSpeed',c,'WeightsInputPort',true);

rxcollector = phased.Collector('Sensor',rxarray,'OperatingFrequency',fc,...
    'PropagationSpeed',c);

Определите положение и движение автомобиля , оборудованного датчиком и двух автомобилей в ФОВ.

radar_speed = 100*1000/3600;     % Ego vehicle speed 100 km/h
radarmotion = phased.Platform('InitialPosition',[0;0;0.5],'Velocity',[radar_speed;0;0]);

car_dist = [40 50];              % Distance between sensor and cars (meters)
car_speed = [-80 96]*1000/3600;  % km/h -> m/s
car_az = [-10 10];
car_rcs = [20 40];
car_pos = [car_dist.*cosd(car_az);car_dist.*sind(car_az);0.5 0.5];

cars = phased.RadarTarget('MeanRCS',car_rcs,'PropagationSpeed',c,'OperatingFrequency',fc);
carmotion = phased.Platform('InitialPosition',car_pos,'Velocity',[car_speed;0 0;0 0]);

Модель распространения принята как свободное пространство.

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

Кубик необработанных данных, полученный физическим массивом радара TDM MIMO, может затем быть моделирован следующим образом:

rng(2017);
Nsweep = 64;
Dn = 2;      % Decimation factor
fs = fs/Dn;
xr = complex(zeros(fs*waveform.SweepTime,Nr,Nsweep));

w0 = [0;1];  % weights to enable/disable radiating elements

for m = 1:Nsweep
    % Update radar and target positions
    [radar_pos,radar_vel] = radarmotion(waveform.SweepTime);
    [tgt_pos,tgt_vel] = carmotion(waveform.SweepTime);
    [~,tgt_ang] = rangeangle(tgt_pos,radar_pos);

    % Transmit FMCW waveform
    sig = waveform();
    txsig = transmitter(sig);

    % Toggle transmit element
    w0 = 1-w0;
    txsig = txradiator(txsig,tgt_ang,w0);

    % Propagate the signal and reflect off the target
    txsig = channel(txsig,radar_pos,tgt_pos,radar_vel,tgt_vel);
    txsig = cars(txsig);

    % Dechirp the received radar return
    rxsig = rxcollector(txsig,tgt_ang);
    rxsig = receiver(rxsig);
    dechirpsig = dechirp(rxsig,sig);

    % Decimate the return to reduce computation requirements
    for n = size(xr,2):-1:1
        xr(:,n,m) = decimate(dechirpsig(:,n),Dn,'FIR');
    end
end

Обработка виртуальных массивов

Кубик данных, полученный физическим массивом, должен быть обработан, чтобы сформировать кубик данных виртуального массива. Для радиолокационной системы TDM-MIMO, используемой в этом примере, измерения, соответствующие два антенных элементов передачи, могут быть восстановлены из двух последовательных сдвигов путем взятия каждой другой страницы куба данных.

Nvsweep = Nsweep/2;
xr1 = xr(:,:,1:2:end);
xr2 = xr(:,:,2:2:end);

Теперь кубик данных в xr1 содержит возврат, соответствующий первому антенному элементу передачи, и кубу данных в xr2 содержит возврат, соответствующий второму антенному элементу передачи. Следовательно, кубик данных из виртуального массива может быть сформирован как:

xrv = cat(2,xr1,xr2);

Затем выполните обработку range-Doppler на кубе виртуальных данных. Поскольку доплеровская обработка в диапазоне является линейной, информация о фазе сохраняется. Поэтому полученный ответ может быть использован позже, чтобы выполнить дальнейшую пространственную обработку виртуальной апертуры.

nfft_r = 2^nextpow2(size(xrv,1));
nfft_d = 2^nextpow2(size(xrv,3));

rngdop = phased.RangeDopplerResponse('PropagationSpeed',c,...
    'DopplerOutput','Speed','OperatingFrequency',fc,'SampleRate',fs,...
    'RangeMethod','FFT','PRFSource','Property',...
    'RangeWindow','Hann','PRF',1/(Nt*waveform.SweepTime),...
    'SweepSlope',waveform.SweepBandwidth/waveform.SweepTime,...
    'RangeFFTLengthSource','Property','RangeFFTLength',nfft_r,...
    'DopplerFFTLengthSource','Property','DopplerFFTLength',nfft_d,...
    'DopplerWindow','Hann');

[resp,r,sp] = rngdop(xrv);

Результат resp является кубом данных, содержащим ответ range-Doppler для каждого элемента в виртуальном массиве. В качестве рисунок показана карта диапазона-Допплера для первого элемента в виртуальном массиве.

plotResponse(rngdop,squeeze(xrv(:,1,:)));

Обнаружение может быть выполнено на карте диапазона-Допплера от каждой пары передающего и принимающего элемента, чтобы идентифицировать цели в сцене. В этом примере простое обнаружение на основе порога выполняется на карте, полученной между первым передающим элементом и первым принимающим элементом, которая соответствует измерению в первом элементе виртуального массива. На основе карты диапазона-Допплера, показанной на предыдущем рисунке, порог устанавливается на 10 дБ ниже максимального пика.

respmap = squeeze(mag2db(abs(resp(:,1,:))));
ridx = helperRDDetection(respmap,-10);

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

xv = squeeze(sum(resp(ridx,:,:),1))';

doa = phased.BeamscanEstimator('SensorArray',varray,'PropagationSpeed',c,...
    'OperatingFrequency',fc,'DOAOutputPort',true,'NumSignals',2,'ScanAngles',ang);
[Pdoav,target_az_est] = doa(xv);

fprintf('target_az_est = [%s]\n',num2str(target_az_est));
target_az_est = [-6  10]

Эти две цели успешно разделены. Фактические углы для двух автомобилей составляют -10 и 10 степени.

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

doarx = phased.BeamscanEstimator('SensorArray',rxarray,'PropagationSpeed',c,...
    'OperatingFrequency',fc,'DOAOutputPort',true,'ScanAngles',ang);
Pdoarx = doarx(xr);

helperPlotMultipledBPattern(ang,mag2db(abs([Pdoav Pdoarx])),[-30 0],...
    {'Virtual Array','Physical Array'},...
    'Spatial spectrum for virtual array and physical array',{'-','--'});

В этом примере обнаружение выполняется на карте диапазона-Допплера без пространственной обработки куба данных виртуального массива. Это работает, потому что ОСШ высок. Если ОСШ низок, также возможно обработать виртуальный массив вслепую по всей карте диапазона-Допплера, чтобы максимизировать ОСШ перед обнаружением.

Фазово-кодированные радары MIMO

Хотя цепь обработки радара TDM-MIMO относительно проста, он использует только одну передающую антенну за раз. Поэтому он не использует полную емкость передающего массива. Для повышения эффективности существуют другие ортогональные формы волны, которые могут использоваться в радаре MIMO.

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

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

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

В этом примере мы дали краткое введение в когерентный радар MIMO и концепцию виртуальных массивов. Мы моделировали возврат радара MIMO с 2-элементной передающим массивом и 4-элементным приёмным массивом и выполнили оценку направления прибытия моделируемого эха двух тесно расположенных целей с помощью 8-элементного виртуального массива.

Ссылки

[1] Frank Robey, et al. MIMO Radar Theory and Experimental Results, Conference Record of the Тридцать Восьмая Асиломарская конференция по сигналам, системам и компьютерам, Калифорния, pp. 300-304, 2004.

[2] Eli Brookner, MIMO Radars and Their Conventional Equivalents, IEEE Radar Conference, 2015.

[3] Sandeep Rao, MIMO Radar, Texas Instruments Application Report SWRA554, May 2017.

[4] Jian Li and Peter Stoica, MIMO Radar Signal Processing, John Wiley & Sons, 2009.