Этот пример выдерживает сравнение, треугольник развертываются модулируемый частотой непрерывный (FMCW) и формы волны нескольких манипулирований сдвига частоты (MFSK), используемые для одновременной области значений и оценки скорости для нескольких целей. Форма волны MFSK специально предназначена для автомобильных радиолокационных систем, используемых в продвинутых системах помощи водителю (ADAS). Это особенно привлекательно в мультицелевых сценариях, потому что это не вводит фантомные цели.
В примере Автомобильный Адаптивный Круиз-контроль Используя Технологию FMCW (Radar Toolbox) автомобильная радиолокационная система спроектирована, чтобы выполнить оценку области значений для автоматической системы круиз-контроля. В последней части того примера треугольная развертка форма волны FMCW используется, чтобы оценить область значений и скорость целевого транспортного средства одновременно.
Несмотря на то, что треугольная развертка, форма волны FMCW решает Доплера области значений, связывающего проблему изящно для единой цели, ее обработка, становится сложной в мультицелевых ситуациях. Следующий раздел показывает, как треугольная развертка, форма волны FMCW ведет себя, когда две цели присутствуют.
Сцена включает автомобиль на расстоянии в 50 метров от радара, перемещающегося на уровне 96 км/ч вдоль того же направления как радар и грузовик в на расстоянии в 55 метрах, перемещающихся на уровне 70 км/ч в противоположном направлении. Сам радар перемещается на уровне 60 км/ч.
rng(2015);
[fmcwwaveform,target,tgtmotion,channel,transmitter,receiver,...
sensormotion,c,fc,lambda,fs,maxbeatfreq] = helperMFSKSystemSetup;
Затем симулируйте радарное эхо от этих двух транспортных средств. Форма волны FMCW имеет полосу пропускания развертки 150 МГц, таким образом, разрешение области значений составляет 1 метр. Каждый или вниз развертывается, берет 1 миллисекунду, таким образом, каждая треугольная развертка берет 2 миллисекунды. Обратите внимание на то, что только одна треугольная развертка необходима, чтобы выполнить объединенную область значений и оценку скорости.
Nsweep = 2;
xr = helperFMCWSimulate(Nsweep,fmcwwaveform,sensormotion,tgtmotion,...
transmitter,channel,target,receiver);
Несмотря на то, что системе нужна полоса пропускания на 150 МГц, максимальная частота удара намного меньше. Это означает в стороне обработки, можно десятикратно уменьшить сигнал к более низкой частоте, чтобы упростить требования к аппаратным средствам. Частоты удара затем оцениваются с помощью подкошенного сигнала.
dfactor = ceil(fs/maxbeatfreq)/2; fs_d = fs/dfactor; fbu_rng = rootmusic(decimate(xr(:,1),dfactor),2,fs_d); fbd_rng = rootmusic(decimate(xr(:,2),dfactor),2,fs_d);
Теперь существует две частоты удара от развертка и две частоты удара от вниз развертки. Начиная с любой пары частот удара от развертки и вниз развертка может задать цель, существует четыре возможных комбинации области значений, и Доплер оценивает все же, что только два из них сопоставлены с действительными целями.
sweep_slope = fmcwwaveform.SweepBandwidth/fmcwwaveform.SweepTime;
rng_est = beat2range([fbu_rng fbd_rng;fbu_rng flipud(fbd_rng)],...
sweep_slope,c)
rng_est = 4×1
49.9802
54.9406
64.2998
40.6210
Остающиеся два - то, для чего часто называемый фантомом предназначается. Отношение между действительными целями и фантомными целями может быть лучше объяснено с помощью представления частоты времени.
Как показано на рисунке, каждом пересечении развертка возвращается и вниз, развертка возвращается, указывает на возможную цель. Таким образом, очень важно различать истинные цели и фантомные цели. Чтобы решить эту неоднозначность, можно передать дополнительные сигналы FMCW с различными наклонами развертки. Поскольку только истинные цели займут то же пересечение в частотном диапазоне времени, неоднозначность разрешена. Однако этот подход значительно увеличивает сложность обработки, а также время вычислений должно было получить допустимые оценки.
Форма волны нескольких манипулирований сдвига частоты (MFSK) [1] спроектирована для автомобильного радара, чтобы достигнуть одновременного оценивания дальности и радиальной скорости объектов под несколькими целевой ситуацией, не попадая в прерывание фантомных целей. Его представление частоты времени показывают в следующем рисунке.
Фигура указывает, что форма волны MFSK является комбинацией двух линейных форм волны FMCW со смещением фиксированной частоты. В отличие от регулярных форм волны FMCW, MFSK развертывает целую полосу пропускания на дискретных шагах. В каждом шаге одна частота передается непрерывный сигнал волны. Поскольку существует два тона в каждом шаге, это может быть рассмотрено как форму волны манипулирования сдвига частоты (FSK). Таким образом существует один набор области значений и Доплеровского отношения от формы волны FMCW и другой набор области значений и Доплеровского отношения от FSK. Объединение двух наборов отношений вместе может помочь разрешить связь между областью значений и Доплером независимо количество целей, существующих в сцене.
Следующие разделы симулируют предыдущий пример снова, но используют форму волны MFSK вместо этого.
Во-первых, параметрируйте форму волны MFSK, чтобы удовлетворить системному требованию, заданному в [1]. Поскольку разрешение области значений составляет 1 метр, полоса пропускания развертки установлена на уровне 150 МГц. Кроме того, смещение частоты установлено на уровне-294 кГц, как задано в [1]. Каждый шаг длится приблизительно 2 микросекунды, и целая развертка имеет 1 024 шага. Таким образом каждая развертка FMCW делает 512 шагов, и общее время развертки составляет немногим более, чем 2 мс. Обратите внимание на то, что время развертки сопоставимо с сигналом FMCW, используемым в предыдущих разделах.
mfskwaveform = phased.MFSKWaveform(... 'SampleRate',151e6,... 'SweepBandwidth',150e6,... 'StepTime',2e-6,... 'StepsPerSweep',1024,... 'FrequencyOffset',-294e3,... 'OutputFormat','Sweeps',... 'NumSweeps',1);
Рисунок ниже показывает спектрограмму формы волны. Это масштабируется на маленький интервал, чтобы лучше показать характеристики частоты времени формы волны.
numsamp_step = round(mfskwaveform.SampleRate*mfskwaveform.StepTime); sig_display = mfskwaveform(); spectrogram(sig_display(1:8192),kaiser(3*numsamp_step,100),... ceil(2*numsamp_step),linspace(0,4e6,2048),mfskwaveform.SampleRate,... 'yaxis','reassigned','minthreshold',-60)
Затем симулируйте возврат системы. Снова, только 1 развертка необходима, чтобы оценить область значений и Доплера.
Nsweep = 1;
release(channel);
channel.SampleRate = mfskwaveform.SampleRate;
release(receiver);
receiver.SampleRate = mfskwaveform.SampleRate;
xr = helperFMCWSimulate(Nsweep,mfskwaveform,sensormotion,tgtmotion,...
transmitter,channel,target,receiver);
Последующая обработка производит эхо возврата в конце каждого шага, и сгруппируйте произведенные сигналы в две последовательности, соответствующие двум разверткам. Обратите внимание на то, что частота дискретизации получившейся последовательности теперь пропорциональна времени на каждом шаге, который намного менее сравнен исходная частота дискретизации.
x_dechirp = reshape(xr(numsamp_step:numsamp_step:end),2,[]).'; fs_dechirp = 1/(2*mfskwaveform.StepTime);
Как в случае сигналов FMCW, форма волны MFSK обрабатывается в частотном диапазоне. Следующие рисунки показывают спектры частоты полученного соответствия echos двум разверткам.
xf_dechirp = fft(x_dechirp); num_xf_samp = size(xf_dechirp,1); beatfreq_vec = (0:num_xf_samp-1).'/num_xf_samp*fs_dechirp; clf; subplot(211),plot(beatfreq_vec/1e3,abs(xf_dechirp(:,1)));grid on; ylabel('Magnitude'); title('Frequency spectrum for sweep 1'); subplot(212),plot(beatfreq_vec/1e3,abs(xf_dechirp(:,2)));grid on; ylabel('Magnitude'); title('Frequency spectrum for sweep 2'); xlabel('Frequency (kHz)')
Обратите внимание на то, что существует два peaks в каждом спектре частоты, указывающем на две цели. Кроме того, peaks в идентичных местоположениях в оба, возвращается, таким образом, нет никаких фантомных целей.
Чтобы обнаружить peaks, можно использовать детектор CFAR. После того, как обнаруженный, частоты удара, а также разность фаз между двумя спектрами вычисляются в пиковых местоположениях.
cfar = phased.CFARDetector('ProbabilityFalseAlarm',1e-2,... 'NumTrainingCells',8); peakidx = cfar(abs(xf_dechirp(:,1)),1:num_xf_samp); Fbeat = beatfreq_vec(peakidx); phi = angle(xf_dechirp(peakidx,2))-angle(xf_dechirp(peakidx,1));
Наконец, частоты удара и разность фаз используются, чтобы оценить область значений и скорость. В зависимости от того, как каждый создает разность фаз, уравнения немного отличаются. Для подхода, показанного в этом примере, можно показать, что область значений и скорость удовлетворяют следующему отношению:
где частота удара, разность фаз, длина волны, скорость распространения, время шага, смещение частоты, наклон развертки, область значений, и скорость. На основе уравнения область значений и скорость оцениваются ниже:
sweep_slope = mfskwaveform.SweepBandwidth/... (mfskwaveform.StepsPerSweep*mfskwaveform.StepTime); temp = ... [1 sweep_slope;mfskwaveform.StepTime mfskwaveform.FrequencyOffset]\... [Fbeat phi/(2*pi)].'; r_est = c*temp(2,:)/2
r_est = 1×2
54.8564 49.6452
v_est = lambda*temp(1,:)/(-2)
v_est = 1×2
36.0089 -9.8495
Предполагаемая область значений и скорость совпадают с истинной областью значений и значениями скорости, как сведено в таблицу ниже, очень хорошо.
Автомобиль: r = 50 м, v =-10 м/с
Грузовик: r = 55 м, v = 36 м/с
Этот пример показывает две одновременных области значений и подходы оценки скорости, с помощью или треугольной развертки форму волны FMCW или формы волны MFSK. Показано, что форма волны MFSK имеет преимущество перед формой волны FMCW, когда несколько целей присутствуют, поскольку это не вводит фантомные цели во время обработки.
[1] Rohling, H. и М. Мейнек. Принцип разработки формы волны для автомобильных радиолокационных систем, продолжений международной конференции CIE по вопросам радара, 2001.