В этом примере показано, как смоделировать автомобильную адаптивную систему круиз-контроля с помощью метода частоты модулировала непрерывную волну (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 часто занимает огромную пропускную способность, устанавливание частоты дискретизации вслепую к дважды пропускной способности часто подчеркивает возможность оборудования конвертера A/D. Чтобы решить эту проблему, можно часто выбирать более низкую частоту дискретизации. Две вещи могут быть рассмотрены здесь:
Для комплекса произведенный сигнал частота дискретизации может быть установлена в то же самое как пропускная способность.
Радары FMCW оценивают целевой диапазон с помощью частоты удара, встроенной в сигнал dechirped. Максимальная частота удара, которую должен обнаружить радар, является суммой частоты удара, соответствующей максимальной области значений и максимуму Доплеровская частота. Следовательно, частота дискретизации только должна быть дважды максимальной частотой удара.
В этом примере частотой удара, соответствующей максимальной области значений, дают
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);
Остальная часть радиолокационной системы включает передатчик, получатель и антенну. Этот пример использует параметры, представленные в [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 измеряет область значений путем исследования частоты удара в сигнале dechirped. Чтобы извлечь эту частоту, dechirp операция выполняется путем смешивания полученного сигнала с переданным сигналом. После смешивания сигнал dechirped содержит только отдельные частотные составляющие, которые соответствуют целевому диапазону.
Кроме того, даже при том, что возможно извлечь информацию о Доплере из одной развертки, эффект Доплера часто извлекается среди нескольких разверток, потому что в одном импульсе, Доплеровская частота неотличима от частоты удара. Чтобы измерить область значений и Доплера, радар FMCW обычно выполняет следующие операции:
Генератор формы волны генерирует сигнал FMCW.
Передатчик и антенна усиливают сигнал и излучают сигнал в космос.
Сигнал распространяет к цели, отражается к установленному сроку и перемещается назад в радар.
Антенна получения собирает сигнал.
Полученный сигнал является dechirped и сохраненный в буфере.
Однажды определенное число разверток заполняют буфер, преобразование Фурье выполняется и в области значений и в Доплере, чтобы извлечь частоту удара, а также эффект Доплера. Можно затем оценить область значений и скорость цели с помощью этих результатов. Область значений и Доплер могут также показаться изображением и дать интуитивную индикацию относительно того, где цель находится в области скорости и области значений.
Следующий раздел симулирует процесс, обрисованный в общих чертах выше. В общей сложности 64 развертки симулированы и область значений, Доплеровский ответ сгенерирован в конце.
Во время симуляции спектр анализатор используется, чтобы показать спектр каждой полученной развертки, а также ее dechirped дубликата.
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), развертывающийся через целую пропускную способность, сигнал dechirped становится узкополосной связью (канал 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 МГц, таким образом, система может достигнуть необходимого разрешения области значений, после dechirp, единственные потребности произвести его на уровне, который соответствует максимальной частоте удара. Поскольку максимальная частота удара в целом меньше необходимой широкой пропускной способности, сигнал может быть подкошен, чтобы облегчить затраты на оборудование. Следующий фрагмент кода показывает процесс децимации.
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 м больше не может игнорироваться и должна быть компенсирована. Естественно, можно думать о выполнении настолько выполняющего ту же процедуру, обрисованную в общих чертах в более ранних разделах, оценивая и область значений и Доплера, выясняя диапазон Доплер, связывающийся от эффекта Доплера, и затем удалить ошибку из оценки.
К сожалению, этот процесс не работает очень хорошо с долгим временем развертки. Более длительное время развертки приводит к более низкому уровню выборки через развертки, таким образом уменьшая возможность радара однозначного обнаружения скоростных транспортных средств. Например, с помощью времени развертки 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 м/с, очень хорошо.
Завершать обсуждение, в действительности, фактическое распространение сигнала между радаром и целевым транспортным средством более сложно, чем, что моделируется до сих пор. Например, радиоволна может также прибыть в целевое транспортное средство через отражения. Простая все же широко используемая модель, чтобы описать такой многопутевой сценарий является моделью 2D луча, где сигнал распространяет от радара до целевого транспортного средства через два пути, один прямой путь и один отраженный путь от дороги, как показано в следующем рисунке.
Отражение от дороги влияет на фазу сигнала, и сигнал получения в целевом транспортном средстве является когерентной комбинацией сигналов через эти два пути. То же самое происходит в обратной поездке также, куда отраженный сигнал от целевого транспортного средства перемещается назад в радар. Следовательно в зависимости от расстояния между транспортными средствами, сигналы от различных путей могут добавить конструктивно или пагубно, делая силу сигнала, колеблющуюся в зависимости от времени. Такое колебание может поставить некоторую проблему на последовательном этапе обнаружения.
Чтобы продемонстрировать многопутевой эффект, затем разделите, использует две модели канала луча, чтобы распространить сигнал между радаром и целевым транспортным средством.
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);
Со всеми настройками, остающимися, то же самое, сравнение получившейся карты Доплера области значений с распространением 2D луча и карты Доплера области значений, полученной прежде с каналом распространения угла обзора (LOS), предполагают, что сила сигнала понизилась почти на 40 дБ, который является значительным. Поэтому такой эффект должен быть рассмотрен во время проекта. Один возможный выбор состоит в том, чтобы сформировать очень резкий луч на вертикальном направлении к пустому указателю отражения.
В этом примере показано, как использовать сигнал FMCW выполнить оценивание дальности и радиальной скорости объектов в автомобильном автоматическом приложении круиз-контроля. Пример также показывает, как сгенерировать диапазон Доплеровская карта от полученного сигнала и обсудил, как использовать треугольную развертку, чтобы компенсировать область значений Доплера, связывающего эффект для сигнала FMCW. Наконец, эффект на уровне сигнала из-за многопутевого распространения обсужден.
[1] Karnfelt, C. и др. 77 Радарных Платформ Симуляции GHz ACC, Международные конференции IEEE по вопросам Интеллектуальных телекоммуникаций транспортных систем (ITST), 2009.
[2] Rohling, H. и М. Мейнек. Принцип разработки формы волны для автомобильных радиолокационных систем, продолжений международной конференции CIE по вопросам радара, 2001.