基于FMCW技术的汽车自适应巡航控制

本例展示了如何使用调频连续波(FMCW)技术对汽车自适应巡航控制系统建模。本例执行移动车辆的距离和多普勒估计。与国防工业中常见的脉冲雷达系统不同,汽车雷达系统通常采用FMCW技术。与脉冲雷达相比,FMCW雷达更小,使用更少的功率,并且制造成本更低。因此,FMCW雷达只能监视更小的距离。

FMCW波形

考虑用于自适应巡航控制(ACC)的汽车远程雷达(LRR)。这种雷达通常占用77 GHz左右的频段,如[1]所示。雷达系统会不断估计其所在车辆与前车之间的距离,并在两者靠得太近时向驾驶员发出警报。下图显示了ACC的草图。

在ACC系统中常用的波形是FMCW。使用FMCW技术的距离测量原理可以用下图来说明。

接收到的信号是传输信号的延时副本,$ \δ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);

下表总结了雷达参数。

参数值----------------------------------工作频率(GHz) 77最大目标距离(m) 200距离分辨率(m) 1最大目标速度(km/h) 230扫描时间(微秒)7.33扫描带宽(MHz) 150最大拍频(MHz) 27.30采样率(MHz) 150

有了以上所有的信息,就可以建立雷达系统中使用的FMCW波形。

波形=相控。FMCWWaveform (“SweepTime”tm,“SweepBandwidth”bw,...“SampleRate”fs);

这是一个向上扫描的线性FMCW信号,通常被称为锯齿形。人们可以检查所产生信号的时频图。

Sig =波形();次要情节(211);情节(0:1 / fs: tm-1 / fs,真实(sig));包含(“时间(s)”);ylabel (“振幅(v)”);标题(“FMCW信号”);轴;次要情节(212);32岁的谱图(32岁的团体16 fs,“桠溪”);标题(FMCW信号谱图);

目标模型

ACC雷达的目标通常是它前面的汽车。本例假设目标车在雷达引导下以96公里/小时的x轴速度在汽车前方50米移动。

汽车的雷达横截面,根据[1],可以根据雷达到目标汽车的距离来计算。

Car_dist = 43;车速= 96*1000/3600;Car_rcs = db2pow(min(10*log10(car_dist)+5,20));Cartarget =阶段性。RadarTarget (“MeanRCS”car_rcs,“PropagationSpeed”c...“OperatingFrequency”、fc);Carmotion =阶段性。平台(“InitialPosition”(car_dist; 0; 0.5),...“速度”, car_speed, 0, 0);

传播模型假定为自由空间。

通道=分阶段。空闲空间(“PropagationSpeed”c...“OperatingFrequency”足球俱乐部,“SampleRate”fs,“TwoWayPropagation”,真正的);

雷达系统设置

雷达系统的其余部分包括发射机、接收机和天线。本例使用[1]中提供的参数。注意,这个例子只对主要组件建模,忽略了其他组件的影响,比如耦合器和混合器。此外,为了简单起见,假定天线是各向同性的,天线的增益包含在发射机和接收机中。

Ant_aperture = 6.06e-4;平方米百分比Ant_gain = aperture2gain(ant_aperture,lambda);% (dB)Tx_ppower = db2pow(5)*1e-3;%瓦Tx_gain = 9+ant_gain;% (dB)Rx_gain = 15+ant_gain;% (dB)Rx_nf = 4.5;% (dB)发射机=相控。发射机(“PeakPower”tx_ppower,“获得”, tx_gain);接收器=阶段性。ReceiverPreamp (“获得”rx_gain,“NoiseFigure”rx_nf,...“SampleRate”fs);

汽车雷达一般安装在车辆上,因此它们经常处于运动状态。本例假设雷达沿x轴以100 km/h的速度运动。所以目标车正以4km /h的相对速度接近雷达。

Radar_speed = 100*1000/3600;雷达运动=相控。平台(“InitialPosition”(0, 0, 0.5),...“速度”, radar_speed, 0, 0);

雷达信号模拟

正如前面简要提到的,FMCW雷达通过检测解码信号中的拍频来测量距离。为了提取这个频率,通过将接收信号与发射信号混合来执行解码操作。混合后,解调后的信号只包含与目标范围对应的个别频率分量。

此外,尽管可以从一次扫描中提取多普勒信息,但多普勒频移通常是在多次扫描中提取的,因为在一个脉冲内,多普勒频率与拍频难以区分。为了测量距离和多普勒,FMCW雷达通常执行以下操作:

  1. 波形发生器产生FMCW信号。

  2. 发射机和天线将信号放大并向太空辐射。

  3. 信号传播到目标,被目标反射,然后传播回雷达。

  4. 接收天线收集信号。

  5. 接收到的信号被解码并保存在缓冲区中。

  6. 一旦一定数量的扫描填满缓冲区,在范围和多普勒进行傅里叶变换以提取拍频以及多普勒频移。然后就可以利用这些结果估计目标的范围和速度。距离和多普勒也可以显示为图像,并给出目标在距离和速度域的直观指示。

下一节模拟上述过程。共模拟了64次扫掠,并在最后生成了距离多普勒响应。

在模拟过程中,使用频谱分析仪显示每个接收扫描的频谱以及其解调的对应频谱。

Specanalyzer = dsp。简介(“SampleRate”fs,...“PlotAsTwoSidedSpectrum”,真的,...“标题”接收和解码信号的频谱...“ShowLegend”,真正的);

接下来,运行模拟循环。

rng (2012);Nsweep = 64;xr =复杂(零(波形。samplerate *波形。sweeptime,Nsweep));m = 1:Nsweep更新雷达和目标位置[radar_pos,radar_vel] = radarmotion(format . sweeptime);[tgt_pos,tgt_vel] = carmotion(waveform.SweepTime);发送FMCW波形Sig =波形();Txsig =发射器(sig);传播信号并反射出目标Txsig = channel(Txsig,radar_pos,tgt_pos,radar_vel,tgt_vel);Txsig = cartarget(Txsig);解密接收到的雷达返回Txsig =接收器(Txsig);Dechirpsig = dechirp(txsig,sig);%可视化频谱specanalyzer ([txsig dechirpsig]);Xr (:,m) = dechirpsig;结束

从频谱范围可以看到,虽然接收的信号是宽带(信道1),扫过整个带宽,但解调后的信号变成窄带(信道2)。

距离和多普勒估计

在估计距离和多普勒值之前,看一下所有64次扫瞄的放大距离多普勒响应可能是个好主意。

Rngdopresp =相控。RangeDopplerResponse (“PropagationSpeed”c...“DopplerOutput”“速度”“OperatingFrequency”足球俱乐部,“SampleRate”fs,...“RangeMethod”FFT的“SweepSlope”sweep_slope,...“RangeFFTLengthSource”“属性”“RangeFFTLength”, 2048,...“DopplerFFTLengthSource”“属性”“DopplerFFTLength”, 256);clf;plotResponse (rngdopresp xr);绘制距离多普勒图Axis ([-v_max v_max 0 range_max])

从距离多普勒响应,人们可以看到前面的汽车在40米多一点之外,看起来几乎是静止的。这是意料之中的,因为汽车相对于雷达的径向速度只有4公里/小时,换算成仅为1.11米/秒。

有很多方法来估计目标车的范围和速度。例如,人们几乎可以选择任何频谱分析方法来提取拍频和多普勒频移。本例使用根MUSIC算法提取拍频和多普勒频移。

作为旁注,尽管接收到的信号以150 MHz的频率采样,因此系统可以实现所需的距离分辨率,在解码之后,只需要以对应于最大拍频的速率对其采样。由于最大拍频通常小于所需的扫描带宽,因此可以对信号进行抽取以降低硬件成本。下面的代码片段展示了抽取过程。

Dn = fix(fs/(2*fb_max));m =大小(xr, 2): 1:1 xr_d(:,米)=毁掉(Dn xr(:,米),“杉”);结束fs_d = fs/Dn;

为了估计距离,首先利用相干积分扫描估计拍频,然后将拍频转换为距离。

Fb_rng = rootmusic(pulsint(xr_d,“连贯”), 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]中使用的波形具有与本例中设计的波形相同的参数,只是扫描时间为2 ms。

较长的扫描时间使得距离多普勒耦合更加突出。为了看到这种效果,首先重新配置波形,使用2 ms作为扫描时间。

Waveform_tr =克隆(波形);释放(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 ms的扫描时间,雷达系统使用传统的多普勒处理可以检测到的最大不模糊速度为

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 =“三角形”

现在模拟信号返回。由于扫描时间较长,处理前收集的扫描次数更少(16次vs. 64次)。

Nsweep = 16;xr = helperFMCWSimulate(Nsweep,waveform_tr,radarmotion,carmotion,...发射机、通道、cartarget接收机);

分别进行上扫和下扫,得到上扫和下扫对应的拍频。

Fbu_rng = rootmusic(pulsint(xr(:,1:2:end),“连贯”), 1, fs);Fbd_rng = rootmusic(pulsint(xr(:,2:2:end),“连贯”), 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 =相控。TwoRayChannel (“PropagationSpeed”c...“OperatingFrequency”足球俱乐部,“SampleRate”fs);Rxchannel =相控。TwoRayChannel (“PropagationSpeed”c...“OperatingFrequency”足球俱乐部,“SampleRate”fs);Nsweep = 64;xr = helperFMCWTwoRaySimulate(Nsweep,波形,雷达运动,carmotion,...发射机、txchannel rxchannel cartarget,接收机);plotResponse (rngdopresp xr);绘制距离多普勒图轴([-v_max v_max 0 range_max]);caxis(爬);

在所有设置保持不变的情况下,将使用两射线传播得到的距离-多普勒图与之前使用视线(LOS)传播通道获得的距离-多普勒图进行比较,表明信号强度下降了近40 dB,这是显著的。因此,在设计时必须考虑到这种影响。一个可能的选择是在垂直方向上形成一个非常尖锐的光束来消除反射。

总结

本例展示了如何在汽车自动巡航控制应用中使用FMCW信号进行距离和多普勒估计。实例还说明了如何从接收到的信号生成距离多普勒图,并讨论了如何利用三角扫描来补偿FMCW信号的距离多普勒耦合效应。最后,讨论了多径传播对信号电平的影响。

参考文献

[1] Karnfelt, C.等人。77 GHz ACC雷达仿真平台, IEEE智能交通系统通信国际会议,2009。

[2]罗林,H. M.迈内克。汽车雷达系统波形设计原理中国激光工程学报,2001。