这个例子展示了如何对汽车雷达的硬件、信号处理和传播环境建模。首先,使用自动驾驶工具箱™建模高速公路场景。然后,使用radar Toolbox™开发雷达发射和接收硬件、信号处理和跟踪器的模型。最后,在雷达模型上模拟多路径传播效果。gydF4y2Ba
你可以用模型来模拟车辆的运动gydF4y2BadrivingScenariogydF4y2Ba
自动驾驶工具箱中的对象。车辆地面真实值可以作为雷达模型的输入,以生成合成传感器检测。有关此工作流的示例,请参见gydF4y2Ba模拟多路径返回引起的雷达回波gydF4y2Ba.在该示例中使用的汽车雷达使用根据高级雷达规范参数化的统计模型。在该示例中建模的通用雷达架构不包括特定天线配置,波形或唯一信道传播特性。在设计汽车雷达时,或者知道雷达的特定架构时,使用包括该附加信息的雷达模型。gydF4y2Ba
雷达工具箱使您能够评估不同的雷达架构。您可以探索不同的发射和接收阵列配置、波形和信号处理链。您还可以根据不同的通道模型评估设计,以评估它们对不同环境条件的健壮性。这种建模帮助您确定最适合您的应用程序需求的特定设计。gydF4y2Ba
在本例中,您将了解如何根据远程雷达的一组系统需求定义雷达模型。然后模拟一个驾驶场景,从雷达模型生成检测。跟踪器用于处理这些检测,以生成由您的汽车雷达检测到的车辆的位置和速度的精确估计。gydF4y2Ba
如示例中所述,为调频连续波(FMCW)波形定义了雷达参数gydF4y2Ba基于FMCW技术的汽车自适应巡航控制gydF4y2Ba.雷达的工作中心频率为77 GHz。这个频率通常用于汽车雷达。对于远程操作,雷达必须探测到在ego车辆前面的最大距离为250-300米的车辆。雷达需要分辨距离至少为1米的目标。由于这是一种面向前方的雷达应用,雷达还需要处理接近速度高达230公里/小时的目标。gydF4y2Ba
该雷达设计使用FMCW波形。这些波形在汽车应用中很常见,因为它们可以通过计算效率高的FFT操作实现距离和多普勒估计。为了说明目的,在本例中,将雷达配置为最大射程100米。gydF4y2Ba
%为可重复的结果设置随机数生成器gydF4y2Barng (2017);gydF4y2Ba%从指定的远程需求计算硬件参数gydF4y2Bafc = 77 e9;gydF4y2Ba中心频率(Hz)gydF4y2Bac = physconst (gydF4y2Ba“光速”gydF4y2Ba);gydF4y2Ba%空气中光速(m/s)gydF4y2Baλ=频率2小波(fc,c);gydF4y2Ba%波长(m)gydF4y2Ba%将啁啾持续时间设置为最大范围要求的5倍gydF4y2Ba最大范围=100;gydF4y2Ba%最大范围(m)gydF4y2Batm = 5 * range2time (rangeMax c);gydF4y2Ba%啁啾持续时间(s)gydF4y2Ba%从所需的范围分辨率确定波形带宽gydF4y2Ba管理员= 1;gydF4y2Ba%所需距离分辨率(m)gydF4y2Babw =范围2bw(rangeres,c);gydF4y2Ba%对应带宽(Hz)gydF4y2Ba%设定采样率以满足量程和速度要求gydF4y2Ba雷达百分比gydF4y2BasweepSlope = bw / tm;gydF4y2BaFMCW扫描斜率(Hz/s)gydF4y2Bafbeatmax =范围2beat(rangemax,sweepslope,c);gydF4y2Ba%最大拍频(Hz)gydF4y2BavMax = 230 * 1000/3600;gydF4y2Ba%汽车最大速度(m/s)gydF4y2BafdopMax = speed2dop (2 * vMax,λ);gydF4y2Ba%最大多普勒频移(Hz)gydF4y2BafifMax = fbeatMax + fdopMax;gydF4y2Baif(Hz)收到的最大值最大值gydF4y2Bafs = max (2 * fifMax bw);gydF4y2Ba%采样率(Hz)gydF4y2Ba使用导出的波形参数配置FMCW波形gydF4y2Ba%长期需求gydF4y2Ba波形=分阶段。FMCWWaveform (gydF4y2Ba'SWEEPTIME'gydF4y2Batm,gydF4y2Ba“SweepBandwidth”gydF4y2Babw,gydF4y2Ba...gydF4y2Ba“SampleRate”gydF4y2Bafs,gydF4y2Ba“SweepDirection”gydF4y2Ba,gydF4y2Ba“了”gydF4y2Ba);gydF4y2Ba如果gydF4y2Ba比较字符串(波形。SweepDirection,gydF4y2Ba“向下”gydF4y2Ba)扫掠坡度=-扫掠坡度;gydF4y2Ba结束gydF4y2BaNsweep = 192;sig =波形();gydF4y2Ba
该雷达使用各向同性单元发射和统一线性阵列(ULA)接收雷达波形。使用线性阵列使雷达能够估计从目标车辆接收的反射能量的方位角方向。远程雷达需要在自我飞行器前方15度范围内探测目标。六单元接收阵列通过提供17度半功率波束宽度满足这一要求。在发射时,雷达只使用一个阵列元件,使其覆盖的区域比接收时更大。gydF4y2Ba
建模天线元件gydF4y2BaantElmnt =分阶段。IsotropicAntennaElement (gydF4y2Ba“背靠背”gydF4y2Ba,真正的);gydF4y2Ba%构造接收阵列gydF4y2Ba不= 6;rxArray =分阶段。齿龈(gydF4y2Ba“元素”gydF4y2BaantElmnt,gydF4y2Ba“NumElements”gydF4y2Ba,Ne,gydF4y2Ba...gydF4y2Ba“元素间距”gydF4y2Baλ/ 2);gydF4y2Ba接收阵列的半功率波束宽度gydF4y2Bahpbw =波束宽度(rxArray、fc、gydF4y2Ba“PropagationSpeed”gydF4y2Bac)gydF4y2Ba
hpbw = 17.1800gydF4y2Ba
使用示例中定义的参数,为单个发射信道建模雷达发射机,并为每个接收信道建模接收机前置放大器gydF4y2Ba基于FMCW技术的汽车自适应巡航控制gydF4y2Ba.gydF4y2Ba
Antaperture = 6.06e-4;gydF4y2Ba天线孔径(m^2)gydF4y2BaantGain=孔径2Gain(孔径,λ);gydF4y2Ba天线增益(dB)gydF4y2BatxPkPower=db2pow(5)*1e-3;gydF4y2BaTx峰值功率(W)gydF4y2BatxGain = antGain;gydF4y2Ba天线增益(dB)gydF4y2BarxGain = antGain;gydF4y2Ba天线增益(dB)gydF4y2Barxnf = 4.5;gydF4y2Ba%接收机噪声系数(dB)gydF4y2Ba%波形变送器gydF4y2Ba发射机=分阶段。发射机(gydF4y2Ba“PeakPower”gydF4y2BatxPkPower,gydF4y2Ba“收益”gydF4y2Ba, txGain);gydF4y2Ba%散热器单发射元件gydF4y2Ba散热器=相位。gydF4y2Ba“传感器”gydF4y2BaantElmnt,gydF4y2Ba“工作频率”gydF4y2Ba、fc);gydF4y2Ba接收数组的%收集器gydF4y2Ba收集器=分阶段。收集器(gydF4y2Ba“传感器”gydF4y2BarxArray,gydF4y2Ba“工作频率”gydF4y2Ba、fc);gydF4y2Ba%接收器前置放大器gydF4y2Ba接收机=分阶段。ReceiverPreamp (gydF4y2Ba“收益”gydF4y2Ba,rxGain,gydF4y2Ba“NoiseFigure”gydF4y2BarxNF,gydF4y2Ba...gydF4y2Ba“SampleRate”gydF4y2Bafs);gydF4y2Ba%定义雷达gydF4y2Ba雷达= radarTransceiver (gydF4y2Ba“波形”gydF4y2Ba波形,gydF4y2Ba“发射机”gydF4y2Ba发射机,gydF4y2Ba...gydF4y2Ba'transiptantenna'gydF4y2Ba散热器,gydF4y2Ba'收款人'gydF4y2Ba,收藏家,gydF4y2Ba'接收者'gydF4y2Ba、接收机);gydF4y2Ba
雷达在每个线性相控阵天线单元上收集多次扫描的波形。这些收集的扫描形成一个数据立方体,定义为gydF4y2Ba雷达数据立方体gydF4y2Ba.这些扫描沿着数据立方体的快时间和慢时间维度进行相干处理,以估计车辆的距离和多普勒。gydF4y2Ba
使用根MUSIC估计器估计接收信号的到达方向。波束扫描也用于说明目的,以帮助可视化接收信号能量的空间分布。gydF4y2Ba
用于线性相位阵列信号的%到达方向估计器gydF4y2Badoa =分阶段。RootMUSICEstimator(...gydF4y2Ba“SensorArray”gydF4y2BarxArray,gydF4y2Ba...gydF4y2Ba“PropagationSpeed”gydF4y2BacgydF4y2Ba“工作频率”gydF4y2Ba足球俱乐部,gydF4y2Ba...gydF4y2Ba“NumSignalsSource”gydF4y2Ba,gydF4y2Ba“属性”gydF4y2Ba,gydF4y2Ba“NumSignals”gydF4y2Ba1);gydF4y2Ba%在自我车前扫描光束进行距离-角度图像显示gydF4y2Baangscan = 80:80;beamscan =分阶段。PhaseShiftBeamformer (gydF4y2Ba“方向”gydF4y2Ba(angscan; 0 * angscan),gydF4y2Ba...gydF4y2Ba“SensorArray”gydF4y2BarxArray,gydF4y2Ba“工作频率”gydF4y2Ba、fc);gydF4y2Ba%形成前向光束探测自我车辆前面的物体gydF4y2Babeamformer =分阶段。PhaseShiftBeamformer (gydF4y2Ba“SensorArray”gydF4y2BarxArray,gydF4y2Ba...gydF4y2Ba“PropagationSpeed”gydF4y2BacgydF4y2Ba“工作频率”gydF4y2Ba足球俱乐部,gydF4y2Ba“方向”gydF4y2Ba, (0, 0));gydF4y2Ba
使用gydF4y2Ba分阶段。R一个ngeDopplerResponse
目的对雷达数据立方体进行距离和多普勒处理。当车辆靠近雷达时,使用汉宁窗抑制车辆产生的大旁瓣。gydF4y2Ba
非功能性测试= waveform.SweepTime * waveform.SampleRate;gydF4y2Ba%快速采样次数gydF4y2Ba望远镜= Nsweep;gydF4y2Ba%慢时间采样数gydF4y2BaNr=2^nextpow2(Nft);gydF4y2Ba%范围样本数gydF4y2BaNd = 2 ^ nextpow2(望远镜);gydF4y2Ba%多普勒样品数量gydF4y2Barngdopresp=相控.RangeDopplerResponse(gydF4y2Ba“RangeMethod”gydF4y2Ba,gydF4y2Ba“FFT”gydF4y2Ba,gydF4y2Ba...gydF4y2Ba“DopplerOutput”gydF4y2Ba,gydF4y2Ba“速度”gydF4y2Ba,gydF4y2Ba“SweepSlope”gydF4y2BasweepSlope,gydF4y2Ba...gydF4y2Ba“RangeFFTLengthSource”gydF4y2Ba,gydF4y2Ba“属性”gydF4y2Ba,gydF4y2Ba“RangeFFTLength”gydF4y2BaNr,gydF4y2Ba...gydF4y2Ba“射程窗”gydF4y2Ba,gydF4y2Ba“损害”gydF4y2Ba,gydF4y2Ba...gydF4y2Ba“DopplerFFTLengthSource”gydF4y2Ba,gydF4y2Ba“属性”gydF4y2Ba,gydF4y2Ba“DopplerFFTLength”gydF4y2BaNd,gydF4y2Ba...gydF4y2Ba“DopplerWindow”gydF4y2Ba,gydF4y2Ba“损害”gydF4y2Ba,gydF4y2Ba...gydF4y2Ba“PropagationSpeed”gydF4y2BacgydF4y2Ba“工作频率”gydF4y2Ba足球俱乐部,gydF4y2Ba“SampleRate”gydF4y2Bafs);gydF4y2Ba
在处理的距离和多普勒数据中,使用恒误报警率(CFAR)探测器识别探测。CFAR探测器估计接收雷达数据的背景噪声水平。检测是在信号功率超过估计噪声下限的某个阈值的位置发现的。由于环境噪声,较低的阈值会导致较高数量的错误检测报告。增加阈值产生更少的错误检测,但也降低了在场景中检测实际目标的概率。有关CFAR检测的更多信息,请参见示例gydF4y2BaCFAR检测gydF4y2Ba.gydF4y2Ba
保卫单元和训练区域的距离尺寸gydF4y2BanGuardRng = 4;nTrainRng = 4;nCUTRng = 1 + nGuardRng + nTrainRng;gydF4y2Ba%多普勒维警戒单元和训练区域gydF4y2BadopOver =圆(Nd / Nsweep);nGuardDop = 4 * dopOver;nTrainDop = 4 * dopOver;nCUTDop = 1 + nGuardDop + nTrainDop;cfar =分阶段。CFARDetector2D (gydF4y2Ba“GuardBandSize”gydF4y2Ba, (nGuardRng nGuardDop),gydF4y2Ba...gydF4y2Ba“TrainingBandSize”gydF4y2Ba, (nTrainRng nTrainDop),gydF4y2Ba...gydF4y2Ba“阈值因子”gydF4y2Ba,gydF4y2Ba“自定义”gydF4y2Ba,gydF4y2Ba“CustomThresholdFactor”gydF4y2Badb2pow (13)gydF4y2Ba...gydF4y2Ba'noisepoweroutputport'gydF4y2Ba符合事实的gydF4y2Ba“OutputFormat”gydF4y2Ba,gydF4y2Ba“检测指数”gydF4y2Ba);gydF4y2Ba%对所有距离和多普勒单元进行CFAR处理gydF4y2Ba频率= ((0:Nr-1) / nr - 0.5) * fs;rnggrid = beat2range(频率、sweepSlope);iRngCUT =找到(rnggrid > 0);iRngCUT = iRngCUT ((iRngCUT > = nCUTRng) & (iRngCUT < = Nr-nCUTRng + 1));iDopCUT = nCUTDop: (Nd-nCUTDop + 1);[iRng, iDop] = meshgrid (iRngCUT iDopCUT);idxCFAR = [iRng(:) iDop(:)]';gydF4y2Ba%执行聚类算法进行组检测gydF4y2Baclusterer运算= clusterDBSCAN (gydF4y2Ba‘ε’gydF4y2Ba2);gydF4y2Ba
的gydF4y2Ba分阶段。R一个ngeEstimator
和gydF4y2Ba分阶段。DopplerEstimatorgydF4y2Ba
目标将在距离多普勒数据中发现的探测位置转换为测量值及其相应的测量方差。这些估计器拟合二次曲线的距离-多普勒数据,以估计每个检测的峰值位置。由此产生的测量分辨率只是距离和多普勒采样数据的一小部分。金宝搏官方网站gydF4y2Ba
为了计算距离测量的方差,需要传输波形的均方根距离分辨率。远程雷达的瑞利距离分辨率以前被定义为1米。瑞利分辨率是两个唯一目标能被分辨的最小距离。此值定义雷达的距离分辨率单元之间的距离。然而,目标在一个分辨率单元内的方差是由波形的均方根分辨率决定的。对于LFM啁啾波形,Rayleigh分辨率和RMS分辨率的关系由[1]给出。gydF4y2Ba
在哪里gydF4y2Ba 是RMS范围分辨率和gydF4y2Ba 为瑞利距离分辨率。gydF4y2Ba
多普勒测量的方差取决于所处理的扫描次数。gydF4y2Ba
现在,使用前面定义的参数创建距离和多普勒估计对象。gydF4y2Ba
rmsRng = sqrt(12) *管理员;rngestimator =分阶段。RangeEstimator (gydF4y2Ba“ClusterInputPort”gydF4y2Ba符合事实的gydF4y2Ba...gydF4y2Ba“VarianceOutputPort”gydF4y2Ba符合事实的gydF4y2Ba“NoisePowerSource”gydF4y2Ba,gydF4y2Ba输入端口的gydF4y2Ba,gydF4y2Ba...gydF4y2Ba“RMSResolution”gydF4y2Ba,rmsRng);dopestimator=相控DopplerEstimator(gydF4y2Ba“ClusterInputPort”gydF4y2Ba符合事实的gydF4y2Ba...gydF4y2Ba“VarianceOutputPort”gydF4y2Ba符合事实的gydF4y2Ba“NoisePowerSource”gydF4y2Ba,gydF4y2Ba输入端口的gydF4y2Ba,gydF4y2Ba...gydF4y2Ba“小脉冲”gydF4y2Ba, Nsweep);gydF4y2Ba
为了进一步提高估计车辆位置的精度,将雷达探测传递给跟踪器。将跟踪器配置为使用扩展卡尔曼滤波器(EKF),它将球面雷达测量转换为自我飞行器的笛卡尔坐标系。还将跟踪器配置为对检测到的车辆使用恒定速度动力学。通过比较多个测量时间间隔内的车辆检测结果,跟踪器进一步提高了车辆位置的准确性,并提供了车辆速度估计。gydF4y2Ba
追踪= radarTracker (gydF4y2Ba“FilterInitializationFcn”gydF4y2Ba@initcvekf,gydF4y2Ba...gydF4y2Ba“AssignmentThreshold”gydF4y2Ba,50);gydF4y2Ba
利用自由空间信道对发射和接收的雷达信号的传播进行建模。gydF4y2Ba
在自由空间模型中,雷达能量沿雷达和目标飞行器之间的直线传播,如下图所示。gydF4y2Ba
创建一个高速公路驾驶场景,有三辆车在自我车辆附近行驶。车辆建模为长方体,在驾驶场景中定义了不同的速度和位置。ego车以80公里/小时的速度行驶,其他3辆车分别以110公里/小时、100公里/小时和130公里/小时的速度行驶。有关建模驾驶场景的详细信息,请参见示例gydF4y2Ba以编程方式创建参与者和车辆轨迹gydF4y2Ba(自动驾驶工具箱)gydF4y2Ba.雷达传感器安装在ego车辆的前面。gydF4y2Ba
要创建驱动场景,请使用gydF4y2Ba辅助自动驾驶雷达GPROCgydF4y2Ba
函数。要检查该函数的内容,请使用gydF4y2Ba编辑(“helperAutoDrivingRadarSigProc”)gydF4y2Ba
命令。gydF4y2Ba
%创建驾驶场景gydF4y2Ba[场景、egoCar radarParams] =gydF4y2Ba...gydF4y2BahelperAutoDrivingRadarSigProc (gydF4y2Ba设置场景的gydF4y2Bac fc);gydF4y2Ba
下面的循环使用gydF4y2BadrivingScenariogydF4y2Ba
对象来推进场景中的车辆。在每个模拟时间步,通过收集192次雷达波形扫描来组装雷达数据立方体。然后对组装好的数据立方体进行距离和多普勒处理。然后对距离和多普勒处理后的数据进行波束形成,并对波束形成后的数据执行恒虚警检测。对CFAR检测的距离、径向速度和到达方向测量值进行估计。然后将这些检测组合成gydF4y2BaobjectDetectiongydF4y2Ba
对象,然后由gydF4y2BaradarTrackergydF4y2Ba
对象gydF4y2Ba
%初始化显示驱动场景示例gydF4y2BahelperAutoDrivingRadarSigProc (gydF4y2Ba初始化显示的gydF4y2BaegoCar radarParams,gydF4y2Ba...gydF4y2BarxArray, fc, rangeMax);tgtProfiles = actorProfiles(场景);tgtProfiles = tgtProfiles(2:结束);tgtHeight = [tgtProfiles.Height];gydF4y2Ba%运行模拟循环gydF4y2BasweepTime = waveform.SweepTime;gydF4y2Ba虽然gydF4y2Ba推进(场景)gydF4y2Ba%获取当前场景时间gydF4y2Ba时间= scenario.SimulationTime;gydF4y2Ba%获取ego车辆参考坐标系中的当前目标姿势gydF4y2BatgtPoses = targetPoses (egoCar);tgtPos =重塑([tgtPoses.Position] 3 []);gydF4y2Ba在每个目标高度的一半位置点目标gydF4y2BatgtPos (3) = tgtPos (3:) + 0.5 * tgtHeight;tgtVel =重塑([tgtPoses.Velocity] 3 []);gydF4y2Ba%在当前场景时组装数据立方体gydF4y2BaXcube = 0(非功能性测试,Ne Nsweep);gydF4y2Ba为gydF4y2Bam = 1:Nsweep ntgt = size(tgtPos,2);tgtStruct =结构(gydF4y2Ba'位置'gydF4y2Bamat2cell (tgtPos(:)。”,1,repmat (3 1 ntgt)),gydF4y2Ba...gydF4y2Ba“速度”gydF4y2Ba,mat2cell(tgtvel(:)',1,Repmat(3,1,NTGT)),gydF4y2Ba...gydF4y2Ba“签名”gydF4y2Ba, {rcsSignature、rcsSignature rcsSignature});rxsig =雷达(tgtStruct,时间+ (m - 1) * sweepTime);gydF4y2Ba%对接收的信号进行解码gydF4y2Barxsig = dechirp (rxsig、团体);gydF4y2Ba%保存扫描到数据立方体gydF4y2BaXcube(:,:,米)= rxsig;gydF4y2Ba在下一次扫荡前移动目标gydF4y2BatgtPos = tgtPos + tgtVel * sweepTime;gydF4y2Ba结束gydF4y2Ba%计算距离多普勒响应gydF4y2Ba[Xrngdop, rnggrid dopgrid] = rngdopresp (Xcube);gydF4y2Ba接收到的数据gydF4y2BaXrngdop = permute(Xrngdop,[1 3 2]);Xbf =重塑(Xbf Nr * Nd, Ne);Xbf = beamformer (Xbf);Xbf =重塑(Nr, Xbf Nd);gydF4y2Ba%检测目标gydF4y2BaXpow = abs (Xbf) ^ 2;[detidx, noisepwr] = cfar (Xpow idxCFAR);gydF4y2Ba%集群检测gydF4y2Ba[~, clusterIDs] = clusterer运算(detidx。');gydF4y2Ba%估计方位角、距离和径向速度测量值gydF4y2Ba[az, azvar snrdB] =gydF4y2Ba...gydF4y2BahelperAutoDrivingRadarSigProc (gydF4y2Ba“估计角度”gydF4y2Badoa,gydF4y2Ba...gydF4y2Baconj(Xrngdop)、Xbf、detidx、noisepwr、clusterIDs);azvar=azvar+radarParams.RMSBias(1)^2;[rngest,rngvar]=rngestimator(Xbf,rnggrid,detidx,noisepwr,clusterIDs);rngvar=rngvar+雷达参数。RMSBias(2)^2;[rsest,rsvar]=dopestimator(Xbf,dopgrid,detidx,noisepwr,clusterIDs);gydF4y2Ba%将径向速度转换为跟踪器使用的范围速率gydF4y2Barr = -rsest;rrvar = rsvar;rrvar = rrvar + radarParams.RMSBias (3) ^ 2;gydF4y2Ba%装配对象检测以供跟踪器使用gydF4y2BanumDets =元素个数(rng);依据=细胞(numDets, 1);gydF4y2Ba为gydF4y2BaiDET = 1:NUMDETS DECS {IDET} = ObjectDetection(时间,gydF4y2Ba...gydF4y2Ba[azest(iDet)rngest(iDet)rrest(iDet)],gydF4y2Ba...gydF4y2Ba“MeasurementNoise”gydF4y2Ba诊断接头([azvar (iDet) rngvar (iDet) rrvar (iDet)]),gydF4y2Ba...gydF4y2Ba“MeasurementParameters”gydF4y2Ba,{radarParams},gydF4y2Ba...gydF4y2Ba“ObjectAttributes”gydF4y2Ba{结构(gydF4y2Ba“信噪比”gydF4y2BasnrdB (iDet))});gydF4y2Ba结束gydF4y2Ba%跟踪检测gydF4y2Ba轨迹=跟踪器(dets,时间);gydF4y2Ba%更新显示gydF4y2BahelperAutoDrivingRadarSigProc (gydF4y2Ba“更新显示”gydF4y2BaegoCar侦破,跟踪,gydF4y2Ba...gydF4y2Badopgrid、rnggrid、Xbf、beamscan、Xrngdop);gydF4y2Ba%收集可用空间通道度量gydF4y2BametricsFS = helperAutoDrivingRadarSigProc (gydF4y2Ba“收集指标”gydF4y2Ba,gydF4y2Ba...gydF4y2Ba雷达参数、tgtPos、tgtVel、dets);gydF4y2Ba结束gydF4y2Ba
上图显示了模拟时间为1.1秒时三辆目标车辆的雷达探测和跟踪。左上角的图显示了从ego车辆的角度(以蓝色显示)驾驶场景的chase camera视图。作为参考,ego车辆的行驶速度为80公里/小时,其他三辆车的行驶速度分别为110公里/小时(橙色车)、100公里/小时(黄色车)和130公里/小时(紫色车)。gydF4y2Ba
图的右侧显示了鸟瞰图,该图呈现了场景的自上而下的透视图。所有车辆、检测和轨迹显示在ego车辆的坐标参考框架中。估计的信噪比(SNR)对于每个雷达测量,在每个检测的旁边打印。跟踪器估计的车辆位置在图中使用黑色方框显示,方框旁边的文本指示每个轨道的ID。跟踪器估计的每辆车辆的速度显示为指向车辆速度方向的黑线。l线路长度对应于估计速度,较长的线路表示相对于ego车辆速度较高的车辆。紫色车辆(ID2)的轨道具有最长的线路,而黄色车辆(ID1)的轨道具有最短的线路。跟踪速度与前面列出的模型车辆速度一致。gydF4y2Ba
左下角的两幅图是经过信号处理后生成的雷达图像。上图显示了从目标车辆接收到的雷达回波如何在距离和径向速度上分布。在这里,所有三辆车都被观察到。测得的径向速度与跟踪器估计的速度相对应,如图所示。下面的图显示了接收目标回波在距离和角度上的空间分布情况。同样,三个目标都出现了,它们的位置与鸟瞰图中显示的一致。gydF4y2Ba
由于它与雷达的距离很近,橙色汽车仍然可以被探测到,尽管它的位置超出了波束的3 dB波束宽度,造成了很大的波束形成损失。这些检测已经为橙色汽车生成了一个轨迹(ID3)。gydF4y2Ba
前面的驾驶场景模拟使用自由空间传播。这是一个简单的模型,只模拟雷达和每个目标之间的直接视线传播。在现实中,雷达信号的传播要复杂得多,涉及到在到达每个目标并返回到雷达之前来自多个障碍的反射。这种现象被称为gydF4y2Ba多路径传播gydF4y2Ba.下图显示了多路径传播的一个例子,其中影响目标的信号来自两个方向:视线和道路表面的单一反弹。gydF4y2Ba
多径传播的总体影响是接收到的雷达回波可以产生建设性干扰和破坏性干扰。这种建设性和破坏性干扰是由不同信号传播路径之间的路径长度差异造成的。当雷达和车辆之间的距离改变时,这些路径长度的差异也会改变。当这些路径之间的差异导致雷达接收到的回波相差近180度时,这些回波会破坏性地合并,雷达无法探测到那个距离。gydF4y2Ba
将自由空间信道模型替换为双射线信道模型,以演示前面插图中所示的传播环境。重用驾驶场景和雷达模型中的其余参数,并再次运行模拟。gydF4y2Ba
%重新设置驾驶场景gydF4y2Ba[场景,电子汽车,雷达参数,指针]=gydF4y2Ba...gydF4y2BahelperAutoDrivingRadarSigProc (gydF4y2Ba设置场景的gydF4y2Bac fc);gydF4y2Ba%再次运行模拟,现在使用双射线通道模型gydF4y2Bametrics2Ray=辅助自动驾驶雷达GPROC(gydF4y2Ba“两线模拟”gydF4y2Ba,gydF4y2Ba...gydF4y2BaNsweep c fc rangeMax,,gydF4y2Ba...gydF4y2Ba%波形参数gydF4y2Barngdopresp、beamformer cfar、idxCFAR clusterer运算,gydF4y2Ba...gydF4y2Ba%信号处理gydF4y2Babeamscan rngestimator、dopestimator doa,追踪,gydF4y2Ba...gydF4y2Ba%的评估gydF4y2Ba雷达、团体);gydF4y2Ba%的硬件模型gydF4y2Ba
上图显示了模拟时间为1.1秒时的追逐图、鸟瞰图和雷达图像,正如自由空间通道传播场景所示。比较这两个图,观察到对于两个光线通道,紫色车在模拟时间内没有检测到。此检测损失是因为这辆车的ath长度差在这个范围内会产生破坏性干扰,导致完全失去检测能力。gydF4y2Ba
将CFAR处理生成的信噪比估计与从自由空间和双射线通道模拟得到的紫色汽车的距离估计绘制成图。gydF4y2Ba
helperAutoDrivingRadarSigProc (gydF4y2Ba'绘图频道'gydF4y2Ba、metricsFS metrics2Ray);gydF4y2Ba
当汽车接近距离雷达72米的范围时,与自由空间通道相比,观察到双射线通道的估计信噪比有很大损失。在这个范围附近,多径干扰的破坏性结合,导致信号检测的损失。然而,观察跟踪器能够在这些信号丢失的时间滑行轨道,并为紫色车提供预测的位置和速度。gydF4y2Ba
这个例子展示了如何使用雷达工具箱建模汽车雷达的硬件和信号处理。您还将了解如何将该雷达模型与自动驾驶工具箱的驾驶场景模拟集成。首先你生成合成雷达探测。然后,通过使用跟踪器进一步处理这些检测,在ego车辆的坐标系中生成精确的位置和速度估计。最后,您将学习如何模拟多路径传播效果。gydF4y2Ba
本例中提供的工作流使您能够理解雷达架构设计决策如何影响更高级别的系统需求。使用此工作流,您可以选择满足您独特应用程序需求的雷达设计。gydF4y2Ba
[1] Richards,Mark。gydF4y2Ba雷达信号处理基础gydF4y2Ba.纽约:McGraw Hill, 2005年。gydF4y2Ba