Автомобильный адаптивный круиз-контроль с использованием технологии FMCW

Этот пример показывает, как смоделировать автомобильную адаптивную систему круиз-контроля с помощью частотно-модулированного метода непрерывной волны (FMCW). Этот пример выполняет оценивание дальности и радиальной скорости объектов движущегося транспортного средства. В отличие от импульсных радиолокационных систем, которые обычно встречаются в оборонной промышленности, автомобильные радиолокационные системы часто используют технологию FMCW. По сравнению с импульсными радарами радары FMCW меньше, используют меньше мощности и намного дешевле в производстве. Как следствие, радары FMCW могут контролировать только намного меньшее расстояние.

Сигнал FMCW

Рассмотрим автомобильный радар большой области значений (LRR), используемый для адаптивного круиз-контроля (ACC). Этот вид радара обычно занимает полосу около 77 ГГц, как показано на [1]. Радиолокационная система постоянно оценивает расстояние между транспортным средством, на котором она установлена, и транспортное средство перед ней и предупреждает драйвер, когда они становятся слишком близкими. Рисунок ниже показывает эскиз ACC.

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

Принятый сигнал является копией переданного сигнала с задержкой во времени, где задержка,, $\Delta t$связана с областью значений. Поскольку сигнал всегда протекает через полосу, в любой момент во время свипа, различие частот, $f_b$является константой между переданным сигналом и принятым сигналом.$f_b$ обычно называется частотой пульсации. Поскольку свип является линейным, можно вывести задержку времени из частоты пульсации и затем перевести задержку в область значений.

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

fc = 77e9;
c = 3e8;
lambda = c/fc;

Время развертки может быть вычислено на основе времени, необходимого для прохождения сигнала однозначной максимальной области значений. В целом для радиолокационной системы FMCW время сдвига должно быть не менее 5-6 раз больше времени переключения туда и обратно. Этот пример использует коэффициент 5,5.

range_max = 200;
tm = 5.5*range2time(range_max,c);

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

range_res = 1;
bw = range2bw(range_res,c);
sweep_slope = bw/tm;

Поскольку сигнал FMCW часто занимает огромную полосу пропускания, установка скорости дискретизации вслепую удвоенной полосы пропускания часто подчеркивает возможности оборудования A/D-преобразователя. Чтобы решить эту проблему, часто можно выбрать более низкую частоту дискретизации. Здесь можно рассмотреть две вещи:

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

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

В этом примере частота пульсации, соответствующая максимальной области значений, задается как

fr_max = range2beat(range_max,sweep_slope,c);

В сложение максимальная скорость передвижного автомобиля составляет около 230 км/ч. Следовательно, максимальный доплеровский сдвиг и максимальная частота пульсации могут быть вычислены как

v_max = 230*1000/3600;
fd_max = speed2dop(2*v_max,lambda);

fb_max = fr_max+fd_max;

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

fs = max(2*fb_max,bw);

В следующей таблице представлены радиолокационные параметры.

System parameters            Value
----------------------------------
Operating frequency (GHz)    77
Maximum target range (m)     200
Range resolution (m)         1
Maximum target speed (km/h)  230
Sweep time (microseconds)    7.33
Sweep bandwidth (MHz)        150
Maximum beat frequency (MHz) 27.30
Sample rate (MHz)            150

Со всей приведенной выше информацией можно настроить сигнал FMCW, используемый в радиолокационной системе.

waveform = phased.FMCWWaveform('SweepTime',tm,'SweepBandwidth',bw,...
    'SampleRate',fs);

Это линейный сигнал FMCW повышающей свип частоты, часто называемый формой пилообразного зуба. Можно изучить частотно-временной график сгенерированного сигнала.

sig = waveform();
subplot(211); plot(0:1/fs:tm-1/fs,real(sig));
xlabel('Time (s)'); ylabel('Amplitude (v)');
title('FMCW signal'); axis tight;
subplot(212); spectrogram(sig,32,16,32,fs,'yaxis');
title('FMCW signal spectrogram');

Целевая модель

Цель радара ACC обычно является автомобилем перед ним. Этот пример предполагает, что автомобиль-мишень движется на 50 м вперед от автомобиля с радаром со скоростью 96 км/ч вдоль оси X.

Радарное сечение автомобиля, согласно [1], может быть вычислено на основе расстояния между радаром и автомобилем-мишенью.

car_dist = 43;
car_speed = 96*1000/3600;
car_rcs = db2pow(min(10*log10(car_dist)+5,20));

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

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

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

Система радиолокации Setup

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

ant_aperture = 6.06e-4;                         % in square meter
ant_gain = aperture2gain(ant_aperture,lambda);  % in dB

tx_ppower = db2pow(5)*1e-3;                     % in watts
tx_gain = 9+ant_gain;                           % in dB

rx_gain = 15+ant_gain;                          % in dB
rx_nf = 4.5;                                    % in dB

transmitter = phased.Transmitter('PeakPower',tx_ppower,'Gain',tx_gain);
receiver = phased.ReceiverPreamp('Gain',rx_gain,'NoiseFigure',rx_nf,...
    'SampleRate',fs);

Автомобильные радары обычно монтируются на транспортных средствах, поэтому они часто находятся в движении. Этот пример предполагает, что радар перемещается со скоростью 100 км/ч по оси X. Так что машина-мишень приближается к радару с относительной скоростью 4 км/ч.

radar_speed = 100*1000/3600;
radarmotion = phased.Platform('InitialPosition',[0;0;0.5],...
    'Velocity',[radar_speed;0;0]);

Симуляция радиолокационного сигнала

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

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

  1. Генератор формы волны генерирует сигнал FMCW.

  2. Передатчик и антенна усиливают сигнал и излучают сигнал в пространство.

  3. Сигнал распространяется на цель, отражается от цели и перемещается назад к радару.

  4. Приемная антенна собирает сигнал.

  5. Принятый сигнал дешифрован и сохранен в буфере.

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

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

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

specanalyzer = dsp.SpectrumAnalyzer('SampleRate',fs,...
    'PlotAsTwoSidedSpectrum',true,...
    'Title','Spectrum for received and dechirped signal',...
    'ShowLegend',true);

Далее запустите цикл симуляции.

rng(2012);
Nsweep = 64;
xr = complex(zeros(waveform.SampleRate*waveform.SweepTime,Nsweep));

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

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

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

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

    % Visualize the spectrum
    specanalyzer([txsig dechirpsig]);

    xr(:,m) = dechirpsig;
end

Из возможностей спектра можно увидеть, что, хотя принятый сигнал является широкополосным (канал 1), проходящим через всю полосу пропускания, дешифрованный сигнал становится узкополосным (канал 2).

Оценивание дальности и радиальной скорости объектов

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

rngdopresp = phased.RangeDopplerResponse('PropagationSpeed',c,...
    'DopplerOutput','Speed','OperatingFrequency',fc,'SampleRate',fs,...
    'RangeMethod','FFT','SweepSlope',sweep_slope,...
    'RangeFFTLengthSource','Property','RangeFFTLength',2048,...
    'DopplerFFTLengthSource','Property','DopplerFFTLength',256);

clf;
plotResponse(rngdopresp,xr);                     % Plot range Doppler map
axis([-v_max v_max 0 range_max])
clim = caxis;

Из области значений Доплеровского отклика видно, что машина спереди находится немного более чем в 40 м и выглядит почти статичной. Это ожидается, потому что радиальная скорость автомобиля относительно радара составляет всего 4 км/ч, что переводится просто на 1,11 м/с.

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

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

Dn = fix(fs/(2*fb_max));
for m = size(xr,2):-1:1
    xr_d(:,m) = decimate(xr(:,m),Dn,'FIR');
end
fs_d = fs/Dn;

Чтобы оценить область значений, во-первых, частота пульсации оценивается с помощью когерентно интегрированных свипов и затем преобразуется в область значений.

fb_rng = rootmusic(pulsint(xr_d,'coherent'),1,fs_d);
rng_est = beat2range(fb_rng,sweep_slope,c)
rng_est =

   42.9976

Во-вторых, доплеровский сдвиг оценивается через свипы в область значений, где присутствует цель.

peak_loc = val2ind(rng_est,c/(fs_d*2));
fd = -rootmusic(xr_d(peak_loc,:),1,1/tm);
v_est = dop2speed(fd,lambda)/2
v_est =

    1.0830

Обратите внимание, что оба оценивания дальности и радиальной скорости объектов довольно точны.

Диапазонный эффект допплеровского связывания

Одной проблемой, связанной с линейными FM сигналами, такими как сигнал FMCW, является эффект Допплеровской связи области значений. Как обсуждалось ранее, целевая область значений соответствует частоте пульсации. Следовательно, точная оценка области значений зависит от точной оценки частоты пульсации. Однако наличие доплеровского сдвига изменяет частоту пульсации, приводя к смещенной оценке области значений.

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

deltaR = rdcoupling(fd,sweep_slope,c)
deltaR =

   -0.0041

Эта ошибка настолько мала, что мы можем ее смело игнорировать.

Несмотря на то, что текущий проект достигает желаемой эффективности, один параметр заслуживает дальнейшего внимания. В текущем строении время свипа составляет около 7 микросекунд. Поэтому системе необходимо проложить полосу частотой 150 МГц за очень короткий период времени. Такой автомобильный радар может не соответствовать требованиям к стоимости. Кроме того, учитывая скорость автомобиля, нет необходимости делать измерения каждые 7 микросекунд. Следовательно, автомобильные радары часто используют более длительное время свипа. Например, форма волны, используемая в [2], имеет те же параметры, что и форма волны, разработанная в этом примере, за исключением времени свипа 2 мс.

Более длительное время свипа делает область значений Допплер связывания более заметным. Чтобы увидеть этот эффект, сначала перенастройте форму волны, чтобы использовать 2 мс в качестве времени свипа.

waveform_tr = clone(waveform);
release(waveform_tr);
tm = 2e-3;
waveform_tr.SweepTime = tm;
sweep_slope = bw/tm;

Теперь вычислите область значений Допплеровского связывания.

deltaR = rdcoupling(fd,sweep_slope,c)
deltaR =

   -1.1118

Ошибка области значений 1,14 m больше не может быть проигнорирована и должна быть компенсирована. Естественно, можно думать, что сделать это, следуя той же процедуре, которая описана в предыдущих разделах, оценивая и область значений, и Доплер, вычисляя область значений Допплеровского связывания из Доплеровского сдвига, и затем удаляя ошибку из оценки.

К сожалению, этот процесс работает не очень хорошо с длительным временем свипа. Более длительное время свипа приводит к снижению частоты дискретизации через свипы, таким образом снижая способность радара однозначно обнаруживать высокоскоростные транспортные средства. Для образца, используя время развертки 2 мс, максимально однозначная скорость, которую радиолокационная система может обнаружить, используя традиционную доплеровскую обработку,

v_unambiguous = dop2speed(1/(2*tm),lambda)/2
v_unambiguous =

    0.4870

Однозначная скорость составляет всего 0,48 м/с, что означает, что относительная скорость, 1,11 м/с, не может быть однозначно обнаружена. Это означает, что не только целевой автомобиль будет появляться медленнее в Доплеровской обработке, но область значений Допплеровского связывания также не может быть правильно компенсирован.

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

Треугольный сдвиг

В треугольном сдвиге существует один сдвиг вверх и один сдвиг вниз для формирования одного периода, как показано на следующем рисунке.

Два сдвига имеют одинаковый наклон, кроме разных знаков. Из рисунка видно, что наличие Доплеровской частоты,, $f_d$влияет на частоты биения ($f_{bu}$и) $f_{bd}$по-разному в восходящем и нисходящем свипах. Следовательно, путем объединения частот пульсации как вверх, так и вниз, эффект связывания от Доплера может быть усреднен, и оценка области значений может быть получена без неоднозначности.

Сначала установите форму волны, чтобы использовать треугольный свип.

waveform_tr.SweepDirection = 'Triangle';

Теперь симулируйте возврат сигнала. Из-за более длительного времени свипа перед обработкой собирается меньше свипов (16 по сравнению с 64).

Nsweep = 16;
xr = helperFMCWSimulate(Nsweep,waveform_tr,radarmotion,carmotion,...
    transmitter,channel,cartarget,receiver);

Развертку вверх и вниз обрабатывают отдельно, получая частоты пульсации, соответствующие развертке вверх и вниз.

fbu_rng = rootmusic(pulsint(xr(:,1:2:end),'coherent'),1,fs);
fbd_rng = rootmusic(pulsint(xr(:,2:2:end),'coherent'),1,fs);

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

rng_est = beat2range([fbu_rng fbd_rng],sweep_slope,c)
rng_est =

   42.9658

Кроме того, доплеровский сдвиг и скорость также могут быть восстановлены подобным образом.

fd = -(fbu_rng+fbd_rng)/2;
v_est = dop2speed(fd,lambda)/2
v_est =

    1.1114

Расчетная область значений и скорость соответствуют истинным значениям, 43 м и 1,11 м/с, очень хорошо.

Двухлучевое распространение

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

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

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

txchannel = phased.TwoRayChannel('PropagationSpeed',c,...
    'OperatingFrequency',fc,'SampleRate',fs);
rxchannel = phased.TwoRayChannel('PropagationSpeed',c,...
    'OperatingFrequency',fc,'SampleRate',fs);
Nsweep = 64;
xr = helperFMCWTwoRaySimulate(Nsweep,waveform,radarmotion,carmotion,...
    transmitter,txchannel,rxchannel,cartarget,receiver);
plotResponse(rngdopresp,xr);                     % Plot range Doppler map
axis([-v_max v_max 0 range_max]);
caxis(clim);

При всех настройках, оставшихся неизменными, сравнение полученной карты диапазона-Допплера с двухлучевым распространением и карты диапазона-Допплера, полученной ранее с каналом распространения линии визирования (LOS), предполагает, что сила сигнала упала почти на 40 дБ, что является значительным. Поэтому такой эффект должен быть рассмотрен во время проекта. Одним из возможных элементов для выбора является образование очень острого луча в вертикальном направлении, чтобы обнулить отражения.

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

Этот пример показывает, как использовать сигнал FMCW для выполнения оценки оценивания дальности и радиальной скорости объектов в автомобильном автоматическом круиз-контроле. Пример также показывает, как сгенерировать Допплеровскую карту области значений из принятого сигнала и обсудил, как использовать треугольную свип для компенсации эффекта Допплеровской связи области значений для сигнала FMCW. Наконец, обсуждается влияние на уровень сигнала из-за многолучевого распространения.

Ссылки

[1] Karnfelt, C. et al. 77 Radar Симуляции Platform АКК на ГГц, IEEE International Conferences on Intelligent Transport Systems Telecommunications (ITST), 2009.

[2] Ролинг, Х. и М. Мейнеке. Принцип проекта формы волны для автомобильных радиолокационных систем, материалы Международной конференции CIE по радиолокации, 2001.