主要内容GYdF4y2Ba

自动驾驶雷达信号仿真与处理GYdF4y2Ba

这个示例展示了如何为驾驶场景建模雷达的硬件、信号处理和传播环境。首先,使用自动驾驶工具箱™建模高速公路场景。然后,使用radar Toolbox™开发雷达发射和接收硬件、信号处理和跟踪器的模型。最后,在雷达模型上模拟多路径传播效果。GYdF4y2Ba

介绍GYdF4y2Ba

你可以用模型来模拟车辆的运动GYdF4y2BadrivingScenarioGYdF4y2Ba自动驾驶工具箱中的对象。车辆地面真实值可以作为雷达模型的输入,以生成合成传感器检测。有关此工作流的示例,请参见GYdF4y2Ba模拟多路径返回引起的雷达回波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=物理常数(GYdF4y2Ba“光速”GYdF4y2Ba);GYdF4y2Ba%空气中的光速(m/s)GYdF4y2Baλ=频率2小波(fc,c);GYdF4y2Ba%波长(m)GYdF4y2Ba%将啁啾持续时间设置为最大范围要求的5倍GYdF4y2Ba最大范围=100;GYdF4y2Ba%最大范围(m)GYdF4y2Batm = 5 * range2time (rangeMax c);GYdF4y2Ba%啁啾持续时间(秒)GYdF4y2Ba%从所需的范围分辨率确定波形带宽GYdF4y2Ba管理员= 1;GYdF4y2Ba%所需距离分辨率(m)GYdF4y2Babw = range2bw(管理员,c);GYdF4y2Ba%对应带宽(Hz)GYdF4y2Ba%设定采样率以满足量程和速度要求GYdF4y2Ba雷达百分比GYdF4y2Ba扫掠斜率=bw/tm;GYdF4y2BaFMCW扫描斜率(Hz/s)GYdF4y2BafbeatMax = range2beat (rangeMax sweepSlope c);GYdF4y2Ba%最大拍频(Hz)GYdF4y2BavMax=230*1000/3600;GYdF4y2Ba%汽车最大速度(m/s)GYdF4y2BafdopMax = speed2dop (2 * vMax,λ);GYdF4y2Ba%最大多普勒频移(Hz)GYdF4y2BafifMax = fbeatMax + fdopMax;GYdF4y2Ba%最大接收中频(Hz)GYdF4y2Bafs = max (2 * fifMax bw);GYdF4y2Ba%采样率(Hz)GYdF4y2Ba使用导出的波形参数配置FMCW波形GYdF4y2Ba%长期需求GYdF4y2Ba波形=分阶段。FMCWWaveform (GYdF4y2Ba“SweepTime”GYdF4y2Batm,GYdF4y2Ba“扫频带宽”GYdF4y2Babw,GYdF4y2Ba...GYdF4y2Ba“SampleRate”GYdF4y2Bafs,GYdF4y2Ba“SweepDirection”GYdF4y2Ba,GYdF4y2Ba“了”GYdF4y2Ba);GYdF4y2Ba如果GYdF4y2Ba比较字符串(波形。SweepDirection,GYdF4y2Ba“向下”GYdF4y2Ba)扫掠坡度=-扫掠坡度;GYdF4y2Ba结束GYdF4y2BaNsweep=192;sig=波形();GYdF4y2Ba

型号汽车雷达收发器GYdF4y2Ba

该雷达使用各向同性元件发射和均匀线阵(ULA)接收雷达波形。使用线性阵列使雷达能够估计从目标车辆接收到的反射能量的方位角方向。远程雷达需要在ego车辆前方15度的覆盖范围内检测目标。6单元接收阵列满足providi的这一要求一个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.06的军医;GYdF4y2Ba%天线孔径(m^2)GYdF4y2BaantGain=孔径2Gain(孔径,λ);GYdF4y2Ba%天线增益(dB)GYdF4y2BatxPkPower=db2pow(5)*1e-3;GYdF4y2Ba%Tx峰值功率(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“传感器”GYdF4y2Ba,rxArray,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“TransmitAntenna”GYdF4y2Ba散热器,GYdF4y2Ba“ReceiveAntenna”GYdF4y2Ba,收藏家,GYdF4y2Ba“接收方”GYdF4y2Ba、接收机);GYdF4y2Ba

定义雷达信号处理链GYdF4y2Ba

雷达在每个线性相控阵天线单元上收集多次扫描的波形。这些收集的扫描形成一个数据立方体,定义为GYdF4y2Ba雷达数据立方体GYdF4y2Ba。这些扫描沿数据立方体的快速和慢速时间维度进行相干处理,以估计车辆的距离和多普勒。GYdF4y2Ba

使用根MUSIC估计器估计接收信号的到达方向。波束扫描也用于说明目的,以帮助可视化接收信号能量的空间分布。GYdF4y2Ba

线性相控阵信号的到达方向估计器GYdF4y2Badoa =分阶段。RootMUSICEstimator(...GYdF4y2Ba“传感器阵列”GYdF4y2Ba,rxArray,GYdF4y2Ba...GYdF4y2Ba“PropagationSpeed”GYdF4y2BacGYdF4y2Ba“工作频率”GYdF4y2Ba足球俱乐部,GYdF4y2Ba...GYdF4y2Ba“NumSignalsSource”GYdF4y2Ba,GYdF4y2Ba“属性”GYdF4y2Ba,GYdF4y2Ba“NumSignals”GYdF4y2Ba1);GYdF4y2Ba%在自我车前扫描光束进行距离-角度图像显示GYdF4y2Baangscan=-80:80;波束扫描=相控。相移波束形成器(GYdF4y2Ba“方向”GYdF4y2Ba(angscan; 0 * angscan),GYdF4y2Ba...GYdF4y2Ba“传感器阵列”GYdF4y2Ba,rxArray,GYdF4y2Ba“工作频率”GYdF4y2Ba、fc);GYdF4y2Ba%形成前向光束以检测车辆前方的物体GYdF4y2Babeamformer =分阶段。PhaseShiftBeamformer (GYdF4y2Ba“传感器阵列”GYdF4y2Ba,rxArray,GYdF4y2Ba...GYdF4y2Ba“PropagationSpeed”GYdF4y2BacGYdF4y2Ba“工作频率”GYdF4y2Ba足球俱乐部,GYdF4y2Ba“方向”GYdF4y2Ba, (0, 0));GYdF4y2Ba

使用GYdF4y2Ba分阶段。RA.ngeDopplerResponse目的对雷达数据立方体进行距离和多普勒处理。当车辆靠近雷达时,使用汉宁窗抑制车辆产生的大旁瓣。GYdF4y2Ba

非功能性测试= waveform.SweepTime * waveform.SampleRate;GYdF4y2Ba%快速采样次数GYdF4y2Ba望远镜= Nsweep;GYdF4y2Ba%慢时间采样数GYdF4y2BaNr=2^nextpow2(Nft);GYdF4y2Ba%范围样本数GYdF4y2BaNd=2^nextpow2(Nst);GYdF4y2Ba%多普勒样本数GYdF4y2Barngdopresp=相控.RangeDopplerResponse(GYdF4y2Ba“RangeMethod”GYdF4y2Ba,GYdF4y2Ba“FFT”GYdF4y2Ba,GYdF4y2Ba...GYdF4y2Ba“DopplerOutput”GYdF4y2Ba,GYdF4y2Ba“速度”GYdF4y2Ba,GYdF4y2Ba“SweepSlope”GYdF4y2Ba,扫掠斜坡,GYdF4y2Ba...GYdF4y2Ba“RangeFFTLengthSource”GYdF4y2Ba,GYdF4y2Ba“属性”GYdF4y2Ba,GYdF4y2Ba“RangeFFTLength”GYdF4y2BaNr,GYdF4y2Ba...GYdF4y2Ba“射程窗”GYdF4y2Ba,GYdF4y2Ba“汉恩”GYdF4y2Ba,GYdF4y2Ba...GYdF4y2Ba“DopplerFFTLengthSource”GYdF4y2Ba,GYdF4y2Ba“属性”GYdF4y2Ba,GYdF4y2Ba“DopplerFFTLength”GYdF4y2Ba,Nd,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=phased.CFARDetector2D(GYdF4y2Ba“GuardBandSize”GYdF4y2Ba, (nGuardRng nGuardDop),GYdF4y2Ba...GYdF4y2Ba“训练带宽”GYdF4y2Ba,[nTrainRng nTrainDop],GYdF4y2Ba...GYdF4y2Ba“阈值因子”GYdF4y2Ba,GYdF4y2Ba“自定义”GYdF4y2Ba,GYdF4y2Ba“CustomThresholdFactor”GYdF4y2Badb2pow (13)GYdF4y2Ba...GYdF4y2Ba“NoisePowerOutputPort”GYdF4y2Ba符合事实的GYdF4y2Ba“OutputFormat”GYdF4y2Ba,GYdF4y2Ba“检测指数”GYdF4y2Ba);GYdF4y2Ba%在所有距离和多普勒单元上执行恒虚警处理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相位距离估计器GYdF4y2Ba和GYdF4y2Ba分阶段。DopplerEstimatorGYdF4y2Ba目标将在距离多普勒数据中发现的探测位置转换为测量值及其相应的测量方差。这些估计器拟合二次曲线的距离-多普勒数据,以估计每个检测的峰值位置。由此产生的测量分辨率只是距离和多普勒采样数据的一小部分。金宝搏官方网站GYdF4y2Ba

为了计算距离测量的方差,需要传输波形的均方根距离分辨率。远程雷达的瑞利距离分辨率以前被定义为1米。瑞利分辨率是两个唯一目标能被分辨的最小距离。此值定义雷达的距离分辨率单元之间的距离。然而,目标在分辨率单元内的方差是由波形的均方根分辨率决定的。对于LFM啁啾波形,Rayleigh分辨率和RMS分辨率的关系由[1]给出。GYdF4y2Ba

σGYdF4y2Ba RGYdF4y2Ba MGYdF4y2Ba sGYdF4y2Ba =GYdF4y2Ba 1.GYdF4y2Ba 2.GYdF4y2Ba ΔGYdF4y2Ba RGYdF4y2Ba A.GYdF4y2Ba YGYdF4y2Ba LGYdF4y2Ba EGYdF4y2Ba 我GYdF4y2Ba GGYdF4y2Ba HGYdF4y2Ba

在哪里GYdF4y2Ba σGYdF4y2Ba RGYdF4y2Ba MGYdF4y2Ba sGYdF4y2Ba 是RMS范围分辨率和GYdF4y2Ba ΔGYdF4y2Ba RGYdF4y2Ba A.GYdF4y2Ba YGYdF4y2Ba LGYdF4y2Ba EGYdF4y2Ba 我GYdF4y2Ba GGYdF4y2Ba HGYdF4y2Ba 是瑞利距离分辨率。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),该滤波器将球形雷达测量值转换为ego车辆的笛卡尔坐标系。还应配置跟踪器,以便对检测到的车辆使用恒定速度动力学。通过比较多个测量时间间隔内的车辆检测,跟踪器进一步提高了车辆位置的准确性,并提供了车辆速度估计。GYdF4y2Ba

追踪= radarTracker (GYdF4y2Ba“FilterInitializationFcn”GYdF4y2Ba@initcvekf,GYdF4y2Ba...GYdF4y2Ba“AssignmentThreshold”GYdF4y2Ba,50);GYdF4y2Ba

自由空间传播信道模型GYdF4y2Ba

使用自由空间信道对发射和接收的雷达信号的传播进行建模。GYdF4y2Ba

在自由空间模型中,雷达能量沿雷达和目标飞行器之间的直线传播,如下图所示。GYdF4y2Ba

模拟驾驶场景GYdF4y2Ba

创建一个高速公路驾驶场景,三辆车在车辆附近行驶。车辆建模为长方体,在驾驶场景中定义了不同的速度和位置。ego车辆以80 km/h的速度行驶,其他三辆车分别以110 km/h、100 km/h和130 km/h的速度行驶。有关驾驶场景建模的详细信息,请参见示例GYdF4y2Ba以编程方式创建参与者和车辆轨迹GYdF4y2Ba(自动驾驶工具箱)GYdF4y2Ba.雷达传感器安装在ego车辆的前面。GYdF4y2Ba

要创建驱动场景,请使用GYdF4y2Ba辅助自动驾驶雷达GPROCGYdF4y2Ba函数。要检查该函数的内容,请使用GYdF4y2Ba编辑(“helperAutoDrivingRadarSigProc”)GYdF4y2Ba命令。GYdF4y2Ba

%创建驾驶场景GYdF4y2Ba[场景、egoCar radarParams] =GYdF4y2Ba...GYdF4y2Ba辅助自动驾驶雷达GPROC(GYdF4y2Ba设置场景的GYdF4y2Bac fc);GYdF4y2Ba

下面的循环使用GYdF4y2BadrivingScenarioGYdF4y2Ba对象来推进场景中的车辆。在每个模拟时间步,通过收集192次雷达波形扫描来组装雷达数据立方体。然后对组装好的数据立方体进行距离和多普勒处理。然后对距离和多普勒处理后的数据进行波束形成,并对波束形成后的数据执行恒虚警检测。对CFAR检测的距离、径向速度和到达方向测量值进行估计。然后将这些检测组合成GYdF4y2Ba目标检测GYdF4y2Ba对象,然后由GYdF4y2BaradarTrackerGYdF4y2Ba对象GYdF4y2Ba

%初始化显示驱动场景示例GYdF4y2Ba辅助自动驾驶雷达GPROC(GYdF4y2Ba初始化显示的GYdF4y2BaegoCar radarParams,GYdF4y2Ba...GYdF4y2BarxArray, fc, rangeMax);tgtProfiles = actorProfiles(场景);tgtProfiles = tgtProfiles(2:结束);tgtHeight = [tgtProfiles.Height];GYdF4y2Ba%运行模拟循环GYdF4y2Ba扫描时间=波形。扫描时间;GYdF4y2Ba虽然GYdF4y2Ba推进(场景)GYdF4y2Ba%获取当前场景时间GYdF4y2Ba时间= scenario.SimulationTime;GYdF4y2Ba%获取ego车辆参考坐标系中的当前目标姿势GYdF4y2BatgtPoses = targetPoses (egoCar);tgtPos =重塑([tgtPoses.Position] 3 []);GYdF4y2Ba%将点目标定位在每个目标高度的一半处GYdF4y2BatgtPos(3,:)=tgtPos(3,:)+0.5*tgtHeight;tgtVel=重塑([tgtPos.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“速度”GYdF4y2Bamat2cell (tgtVel(:)。”,1,repmat (3 1 ntgt)),GYdF4y2Ba...GYdF4y2Ba“签名”GYdF4y2Ba,{rcsSignature,rcsSignature,rcsSignature});rxsig=雷达(TGT结构,时间+(m-1)*扫描时间);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...GYdF4y2Ba辅助自动驾驶雷达GPROC(GYdF4y2Ba“估计角度”GYdF4y2Ba,doeast,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对于GYdF4y2Badets{iDet} = objectDetection(time,GYdF4y2Ba...GYdF4y2Ba[azest(iDet)rngest(iDet)rrest(iDet)],GYdF4y2Ba...GYdF4y2Ba“MeasurementNoise”GYdF4y2Ba,diag([azvar(iDet)rngvar(iDet)rrvar(iDet)],GYdF4y2Ba...GYdF4y2Ba“测量参数”GYdF4y2Ba,{radarParams},GYdF4y2Ba...GYdF4y2Ba“对象属性”GYdF4y2Ba{结构(GYdF4y2Ba“信噪比”GYdF4y2Ba,snrdB(iDet))};GYdF4y2Ba结束GYdF4y2Ba%航迹探测GYdF4y2Ba轨迹=跟踪器(dets,时间);GYdF4y2Ba%更新显示GYdF4y2Ba辅助自动驾驶雷达GPROC(GYdF4y2Ba“更新显示”GYdF4y2Ba,egoCar,dets,tracks,GYdF4y2Ba...GYdF4y2Badopgrid、rnggrid、Xbf、beamscan、Xrngdop);GYdF4y2Ba%收集可用空间通道度量GYdF4y2BametricsFS = helperAutoDrivingRadarSigProc (GYdF4y2Ba“收集指标”GYdF4y2Ba,GYdF4y2Ba...GYdF4y2Ba雷达参数、tgtPos、tgtVel、dets);GYdF4y2Ba结束GYdF4y2Ba

上图为仿真时间1.1秒时3辆目标车辆的雷达探测与跟踪。左上方的情节显示了从自我车辆的角度(以蓝色显示)拍摄的驾驶场景。作为参考,ego的车速为80公里/小时,其他3辆的车速分别为110公里/小时(橙色)、100公里/小时(黄色)和130公里/小时(紫色)。GYdF4y2Ba

图的右侧显示了鸟瞰图,它表示了场景的“自上而下”视角。所有的车辆、检测和轨迹都显示在ego车辆的坐标系中。每个雷达测量的估计信噪比(SNR)被打印在每个检测的旁边。跟踪器估计的车辆位置用黑色方块显示在plot中,黑色方块旁边的文本表示每个轨道的ID。跟踪器对每辆车的估计速度显示为指向车辆速度方向的黑线。线的长度对应于估计的速度,较长的线表示相对于自我车辆具有更高速度的车辆。紫色车的轨道(ID2)是最长的,黄色车的轨道(ID1)是最短的。履带速度与前面列出的模型车辆速度一致。GYdF4y2Ba

左下角的两幅图是经过信号处理后生成的雷达图像。上图显示了从目标车辆接收到的雷达回波如何在距离和径向速度上分布。在这里,所有三辆车都被观察到。测得的径向速度与跟踪器估计的速度相对应,如图所示。下面的图显示了接收目标回波在距离和角度上的空间分布情况。同样,三个目标都出现了,它们的位置与鸟瞰图中显示的一致。GYdF4y2Ba

由于橙色车离雷达很近,尽管其位置远超出波束的3 dB波束宽度,波束形成损失很大,但仍然可以检测到橙色车。这些检测为橙色车生成了一条航迹(ID3)。GYdF4y2Ba

多路径通道模型GYdF4y2Ba

前面的驾驶场景模拟使用自由空间传播。这是一个简单的模型,只模拟雷达和每个目标之间的直接视线传播。在现实中,雷达信号的传播要复杂得多,涉及到在到达每个目标并返回到雷达之前来自多个障碍的反射。这种现象被称为GYdF4y2Ba多路径传播GYdF4y2Ba.下图显示了多路径传播的一个例子,其中影响目标的信号来自两个方向:视线和道路表面的单一反弹。GYdF4y2Ba

多径传播的总体影响是,接收到的雷达回波可以进行建设性干扰和破坏性干扰。这种建设性干扰和破坏性干扰是由不同信号传播路径之间的路径长度差异造成的。随着雷达和车辆之间距离的变化,这些路径长度差异会减小o变化。当这些路径之间的差异导致雷达接收到的回波几乎与相位相差180度时,回波会破坏性地合并,雷达不会对该范围进行检测。GYdF4y2Ba

将自由空间信道模型替换为双射线信道模型,以演示前面插图中所示的传播环境。重用驾驶场景和雷达模型中的其余参数,并再次运行模拟。GYdF4y2Ba

%重新设置驾驶场景GYdF4y2Ba[场景,电子汽车,雷达参数,指针]=GYdF4y2Ba...GYdF4y2Ba辅助自动驾驶雷达GPROC(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

辅助自动驾驶雷达GPROC(GYdF4y2Ba“阴谋频道”GYdF4y2Ba、metricsFS metrics2Ray);GYdF4y2Ba

Figure通道传播包含一个轴。带有标题传播通道的轴包含两个类型为line的对象。这些对象表示自由空间,两条光线。GYdF4y2Ba

当汽车接近距离雷达72米的范围时,与自由空间通道相比,观察到双射线通道的估计信噪比有很大损失。在这个范围附近,多径干扰的破坏性结合,导致信号检测的损失。然而,观察跟踪器能够在这些信号丢失的时间滑行轨道,并为紫色车提供预测的位置和速度。GYdF4y2Ba

总结GYdF4y2Ba

这个示例演示了如何使用雷达工具箱建模汽车雷达的硬件和信号处理。您还了解了如何将该雷达模型与自动驾驶工具箱的驾驶场景模拟集成。首先你生成了合成雷达探测。然后通过使用跟踪器进一步处理这些检测,在ego车辆的坐标系中生成精确的位置和速度估计。最后,您学习了如何模拟多路径传播效果。GYdF4y2Ba

通过所提供的工作流,您可以了解雷达体系结构设计决策如何影响更高级别的系统需求。使用此工作流,您可以选择满足独特应用程序需求的雷达设计。GYdF4y2Ba

参考GYdF4y2Ba

理查兹[1],马克。GYdF4y2Ba雷达信号处理基础GYdF4y2Ba纽约:麦格劳·希尔,2005年。GYdF4y2Ba