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

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

Введение

Существует две категории радаров нескольких вводят несколько выходов (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 каждая антенна передающей решётки передает ортогональную форму волны. Из-за этой ортогональности возможно восстановить переданные сигналы в приёмной решётке. Измерения в физической приёмной решётке, соответствующий каждой ортогональной форме волны, могут затем быть сложены, чтобы сформировать измерения виртуальной решётки.

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

Радарная симуляция TDM-MIMO

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

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

Предположите, что существует два автомобиля в FOV с разделением 20 градусов. Как замечено в более ранних графиках диаграммы направленности антенной решетки этого примера, ширина луча на 3 дБ с 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);

Задайте положение и движение автомобиля, оборудованного датчиком и этих двух автомобилей в FOV.

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

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

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

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

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

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

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

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 для каждой развертки. Таким образом, оба элемента передачи активны во всех развертках. Для первой развертки эти два элемента передают ту же форму волны, и для второй развертки, эти два элемента передают форму волны с противоположной фазой и так далее. Это по существу кодирует последовательные развертки от различных элементов с кодом Адамара. Это похоже на коды Alamouti, используемые в системах связи MIMO.

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

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

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

Ссылки

[1] Франк Роби, и др. Радарная Теория MIMO и Результаты эксперимента, Запись Конференции Тридцать восьмой Конференции Asilomar по Сигналам, Системам и Компьютерсу, Калифорния, стр 300-304, 2004.

[2] Ила Брунер, радары MIMO и их обычные эквиваленты, радарная конференция по IEEE, 2015.

[3] Сэндип Рао, радар MIMO, отчет SWRA554 приложения Texas Instruments, май 2017.

[4] Цзянь Ли и Peter Stoica, MIMO Radar Signal Processing, John Wiley & Sons, 2009.