基于FMCW技术的汽车自适应巡航控制
作者:互联网
目录
这个例子展示了如何使用调频连续波(FMCW)技术建立汽车自适应巡航控制系统的模型。该示例执行移动车辆的距离和多普勒估计。与国防工业中常见的脉冲雷达系统不同,汽车雷达系统通常采用FMCW技术。与脉冲雷达相比,FMCW雷达体积小、功耗低、制造成本低。因此,FMCW雷达只能监视更小的距离。
FMCW波形
考虑用于自适应巡航控制(ACC)的汽车远程雷达(LRR)。这种雷达通常占用77GHz左右的频段,如[1]所示。雷达系统不断地估计它所安装的车辆和它前面的车辆之间的距离,并在两者太近时向驾驶员发出警报。下图显示了ACC的示意图。
ACC系统中常用的波形是FMCW。使用FMCW技术进行距离测量的原理可用下图说明。
接收信号是发送信号的延时副本,其中延时
Δ
t
\Delta t
Δt与范围有关。因为信号总是扫过一个频带,所以在扫频期间的任何时刻,频率差,
f
b
f_b
fb是发射信号和接收信号之间的常数。通常称为拍频。因为扫频是线性的,所以我们可以从拍频中导出时延,然后将时延转换为范围。
在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);
此外,行驶车辆的最大速度约为230km/h。因此,最大多普勒频移和最大拍频可计算为
v_max = 230*1000/3600;
fd_max = speed2dop(2*v_max,lambda);
fb_max = fr_max+fd_max;
该示例采用最大拍频和带宽的两倍中的较大者的采样率。
fs = max(2*fb_max,bw);
下表总结了雷达参数。
系统参数 值
工作频率(GHz) 77
最大目标距离(m) 200
距离分辨率(m) 1
最大目标速度(km/h) 230
扫描时间(微秒) 7.33
扫描带宽(MHz) 150
最大拍频(MHz) 27.30
采样率(MHz) 150
利用以上信息,可以建立雷达系统中使用的FMCW波形。
waveform = phased.FMCWWaveform('SweepTime',tm,'SweepBandwidth',bw,...
'SampleRate',fs);
这是一个上扫线性调频连续波信号,通常称为锯齿形。可以检查生成信号的时频图。
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雷达的目标通常是它前面的一辆车。本例假设目标车辆在雷达引导下以96 km/h的速度沿x轴向前移动50 m。
根据文献[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 km/h的速度沿x轴移动。所以目标车正以4公里/小时的相对速度接近雷达。
radar_speed = 100*1000/3600;
radarmotion = phased.Platform('InitialPosition',[0;0;0.5],...
'Velocity',[radar_speed;0;0]);
雷达信号模拟
如前几节所述,FMCW雷达通过检测去掩蔽信号中的拍频来测量距离。为了提取该频率,通过将接收信号与发送信号混合来执行去chirp操作。混合后,去模糊信号仅包含与目标范围相对应的单个频率分量。
此外,即使可以从单个扫描中提取多普勒信息,也常常在多个扫描中提取多普勒频移,因为在一个脉冲内,多普勒频率与拍频是不可区分的。为了测量距离和多普勒,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算法来提取拍频和多普勒频移。
作为旁注,虽然接收到的信号是在150mhz下采样的,因此系统可以达到所需的距离分辨率,但是在去chirp之后,人们只需要以对应于最大拍频的速率对其进行采样。由于最大拍频通常小于所需的扫频带宽,因此可以对信号进行抽取以降低硬件成本。下面的代码片段显示了抽取过程。
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微秒。因此,系统需要在很短的时间内扫过150mhz频段。这种汽车雷达可能无法满足成本要求。此外,考虑到汽车的速度,没有必要每7微秒进行一次测量。因此,汽车雷达通常使用较长的扫描时间。例如,在[2]中使用的波形具有与本示例中设计的波形相同的参数,只是扫描时间为2ms。
扫描时间越长,距离-多普勒耦合越明显。要看到这种效果,首先重新配置波形,使用2ms作为扫描时间。
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米的距离误差不能再被忽略,需要补偿。当然,我们可以考虑按照前面章节中概述的相同步骤进行,同时估计距离和多普勒,从多普勒频移计算出距离-多普勒耦合,然后从估计中消除误差。
不幸的是,这个过程不能很好地工作与长扫描时间。扫频时间越长,整个扫频的采样率越低,因此降低了雷达明确检测高速车辆的能力。例如,使用2ms的扫描时间,雷达系统可以使用传统的多普勒处理检测到的最大无模糊速度是
v_unambiguous = dop2speed(1/(2*tm),lambda)/2
v_unambiguous =
0.4870
无模糊速度仅为0.48m/s,这意味着相对速度1.11m/s不能被无模糊检测。这意味着不仅目标车在多普勒处理中会显得较慢,而且距离-多普勒耦合也无法得到正确补偿。
一种不用多普勒处理的方法是采用三角形扫描模式。下一节将展示三角形扫描如何解决这个问题。
三角形扫描
在三角形扫描中,有一个向上扫描和一个向下扫描形成一个周期,如下图所示。
两个扫掠的坡度相同,只是标志不同。从图中可以看出,多普勒频率的存在对上下扫频中的拍频(
f
b
u
f{bu}
fbu和
f
b
d
f{bd}
fbd)有不同的影响。因此,通过组合上下扫的拍频,可以平均多普勒的耦合效应,并且可以得到距离估计而不产生模糊。
首先,将波形设置为使用三角形扫描。
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
估计的射程和速度与实际值吻合,分别为43m和1.11m/s。
双射线传播
为了完成讨论,在现实中,雷达与目标飞行器之间的实际信号传播比目前的模型更为复杂。例如,无线电波也可以通过反射到达目标车辆。描述这种多路径情况的一个简单但广泛使用的模型是双射线模型,其中信号通过两条路径从雷达传播到目标车辆,一条是直接路径,另一条是道路外的反射路径,如下图所示。
道路外的反射影响信号的相位,目标车辆上的接收信号是通过两条路径的信号的相干组合。同样的情况也会发生在返程时,目标车辆反射的信号会传回雷达。因此,根据车辆之间的距离,来自不同路径的信号可能以建设性或破坏性方式增加,使得信号强度随时间波动。这种波动在连续检测阶段会带来一些挑战。
为了展示多径效应,下一节使用双射线通道模型在雷达和目标车辆之间传播信号。
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)传播信道的距离多普勒图进行比较,表明信号强度下降了近40db,这是显著的。因此,在设计时必须考虑这种影响。一个可能的选择是在垂直方向上形成一个非常尖锐的光束来消除反射。
摘要
这个例子展示了如何使用FMCW信号在汽车自动巡航控制应用中进行距离和多普勒估计。文中还举例说明了如何从接收信号中产生距离多普勒图,并讨论了如何利用三角扫描补偿FMCW信号的距离多普勒耦合效应。最后讨论了多径传播对信号电平的影响。
参考
[1] Karnfelt, C. et al… 77 GHz ACC Radar Simulation Platform, IEEE International Conferences on Intelligent Transport Systems Telecommunications (ITST), 2009.
[2] Rohling, H. and M. Meinecke. Waveform Design Principle for Automotive Radar Systems, Proceedings of CIE International Conference on Radar, 2001.
[3] References
标签:基于,FMCW,巡航,距离,多普勒,拍频,信号,雷达 来源: https://blog.csdn.net/lqtcsq/article/details/113385045