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

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

Принятый сигнал является временной копией передаваемого сигнала, где задержка,,
связана с диапазоном. Поскольку сигнал всегда проходит через полосу частот, в любой момент во время сдвига разность частот
является постоянной между переданным сигналом и принятым сигналом.
обычно называется частотой биений. Поскольку сдвиг является линейным, можно вывести временную задержку из частоты биений и затем перевести задержку в диапазон.
При установке 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 часто занимает огромную полосу пропускания, установка частоты дискретизации вслепую в два раза больше полосы пропускания часто подчеркивает способность аппаратных средств АЦП. Для решения этой проблемы часто можно выбрать более низкую частоту выборки. Здесь можно рассмотреть две вещи:
Для комплексного дискретизированного сигнала частота дискретизации может быть установлена равной полосе пропускания.
РЛС 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 км/ч вдоль оси х.
Сечение РЛС автомобиля, согласно [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);
Остальная часть радиолокационной системы включает в себя передатчик, приемник и антенну. В этом примере используются параметры, представленные в [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 км/ч вдоль оси х. Так машина-мишень приближается к радару с относительной скоростью 4 км/ч.
radar_speed = 100*1000/3600; radarmotion = phased.Platform('InitialPosition',[0;0;0.5],... 'Velocity',[radar_speed;0;0]);
Как кратко упоминалось в предыдущих разделах, радар FMCW измеряет дальность, исследуя частоту биений в дехирпированном сигнале. Для выделения этой частоты выполняют операцию дехирпирования путем смешивания принятого сигнала с переданным сигналом. После смешивания дехирпированный сигнал содержит только отдельные частотные составляющие, которые соответствуют целевому диапазону.
Кроме того, даже если можно извлечь доплеровскую информацию из одного свипа, доплеровский сдвиг часто извлекается из нескольких свипов, поскольку в пределах одного импульса доплеровская частота неотличима от частоты биений. Для измерения дальности и доплеровского диапазона радар FMCW обычно выполняет следующие операции:
Генератор сигнала генерирует сигнал FMCW.
Передатчик и антенна усиливают сигнал и излучают его в пространство.
Сигнал распространяется на цель, отражается от цели и перемещается обратно на радар.
Приемная антенна собирает сигнал.
Принятый сигнал дефиксируется и сохраняется в буфере.
Как только определенное число свипов заполняет буфер, преобразование Фурье выполняется как в диапазоне, так и в доплеровском диапазоне для извлечения частоты биений, а также доплеровского сдвига. Затем можно оценить дальность и скорость цели, используя эти результаты. Дальность и Доплер также могут быть показаны как изображение и дают интуитивную индикацию того, где цель находится в области дальности и скорости.
Следующий раздел моделирует процесс, описанный выше. Всего моделируется 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
Следует отметить, что и дальность, и доплеровская оценка являются достаточно точными.
Одной проблемой, связанной с линейными ЧМ-сигналами, такими как 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 м больше не может игнорироваться и должна компенсироваться. Естественно, можно подумать о том, чтобы сделать это, следуя той же процедуре, что изложена в предыдущих разделах, оценивая как диапазон, так и доплеровскую связь, вычисляя диапазон доплеровской связи из доплеровского сдвига, а затем удаляя ошибку из оценки.
К сожалению, этот процесс не очень хорошо работает с длительным временем зачистки. Более продолжительное время развертки приводит к более низкой частоте дискретизации через развертки, тем самым снижая способность радара однозначно обнаруживать высокоскоростные транспортные средства. Например, используя время развертки 2 мс, максимальная однозначная скорость, которую радиолокационная система может обнаружить, используя традиционную доплеровскую обработку, составляет
v_unambiguous = dop2speed(1/(2*tm),lambda)/2
v_unambiguous =
0.4870
Однозначная скорость составляет всего 0,48 м/с, что означает, что относительная скорость 1,11 м/с не может быть однозначно обнаружена. Это означает, что в доплеровской обработке не только целевой автомобиль будет появляться медленнее, но и дальность доплеровской связи также нельзя правильно компенсировать.
Один из способов разрешить такую неоднозначность без доплеровской обработки состоит в принятии схемы развертки треугольника. В следующем разделе показано, как протягивание треугольника устраняет проблему.
В треугольной развертке имеется одна развертка вверх и одна развертка вниз для образования одного периода, как показано на следующем рисунке.

Два протягивания имеют одинаковый наклон, за исключением разных знаков. Из рисунка видно, что наличие доплеровской частоты,,
по-разному влияет на частоты биений (
и)
в свипах вверх и вниз. Следовательно, путем комбинирования частот биений как от развертки вверх, так и от развертки вниз эффект связи от доплеровского эффекта может быть усреднен, и оценка диапазона может быть получена без неоднозначности.
Сначала задайте форму сигнала для использования треугольной развертки.
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] Карнфельт, C. et al. Платформа радиолокационного моделирования ACC с тактовой частотой 77 ГГц, Международные конференции IEEE по телекоммуникациям интеллектуальных транспортных систем (ITST), 2009 год.
[2] Rohling, H. и М. Мейнек. Принцип проектирования формы сигнала для автомобильных радиолокационных систем, материалы Международной конференции КИПиИ по радиолокационным системам, 2001 год.