主要内容gydF4y2Ba

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

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

介绍gydF4y2Ba

您可以使用来模拟车辆运动gydF4y2BadrivingScenariogydF4y2Ba自动驾驶工具箱中的对象。车辆地面真实值可以作为雷达模型的输入,以生成合成传感器检测。有关此工作流的示例,请参见gydF4y2Ba模拟多路径返回引起的雷达回波gydF4y2Ba(雷达工具箱)gydF4y2Ba. 本例中使用的汽车雷达使用根据高级雷达规范参数化的统计模型。本示例中建模的通用雷达架构不包括特定的天线配置、波形或独特的信道传播特性。当设计汽车雷达时,或当已知雷达的特定结构时,使用包含此附加信息的雷达模型。gydF4y2Ba

雷达工具箱使您能够评估不同的雷达体系结构。您可以探索不同的发射和接收阵列配置、波形和信号处理链。您还可以根据不同的信道模型评估您的设计,以评估其对不同环境条件的鲁棒性。此建模可帮助您识别最适合您的应用程序需求的特定设计。gydF4y2Ba

在本例中,您将了解如何根据远程雷达的一组系统需求定义雷达模型。然后模拟一个驾驶场景,从雷达模型生成检测。跟踪器用于处理这些检测,以生成由您的汽车雷达检测到的车辆的位置和速度的精确估计。gydF4y2Ba

根据远程雷达要求计算雷达参数gydF4y2Ba

如示例中所述,为调频连续波(FMCW)波形定义了雷达参数gydF4y2Ba基于FMCW技术的汽车自适应巡航控制gydF4y2Ba(雷达工具箱)gydF4y2Ba.雷达以77 GHz的中心频率运行。该频率通常由汽车雷达使用。对于远程运行,雷达必须在ego车辆前方250-300米的最大范围内检测车辆。要求雷达分辨距离至少1米的范围内的物体。因为这是一种前向雷达在dar应用中,雷达还需要处理接近速度高达230公里/小时的目标。gydF4y2Ba

该雷达设计使用FMCW波形。这些波形在汽车应用中很常见,因为它们可以通过计算效率高的FFT操作实现距离和多普勒估计。为了说明目的,在本例中,将雷达配置为最大射程100米。gydF4y2Ba

%为可重复的结果设置随机数生成器gydF4y2Barng (2017);gydF4y2Ba%从指定的远程需求计算硬件参数gydF4y2Bafc = 77 e9;gydF4y2Ba%中心频率(Hz)gydF4y2Bac = physconst (gydF4y2Ba“光速”gydF4y2Ba);gydF4y2Ba%空气中光速(m/s)gydF4y2Baλ= freq2wavelen (fc, c);gydF4y2Ba%波长(m)gydF4y2Ba%设置啁啾持续时间为最大范围要求的5倍gydF4y2BarangeMax = 100;gydF4y2Ba%最大范围(m)gydF4y2Batm = 5 * range2time (rangeMax c);gydF4y2Ba%啁啾持续时间(s)gydF4y2Ba%从所需的范围分辨率确定波形带宽gydF4y2Ba管理员= 1;gydF4y2Ba期望距离分辨率(m)gydF4y2Babw=范围2BW(范围,c);gydF4y2Ba%相应带宽(Hz)gydF4y2Ba%设定采样率以满足量程和速度要求gydF4y2Ba%雷达gydF4y2BasweepSlope = bw / tm;gydF4y2Ba%FMCW扫描斜率(Hz/s)gydF4y2BafbeatMax=range2beat(rangeMax,扫掠斜率,c);gydF4y2Ba%最大拍频(Hz)gydF4y2BavMax = 230 * 1000/3600;gydF4y2Ba%汽车最大速度(m/s)gydF4y2BafdopMax = speed2dop (2 * vMax,λ);gydF4y2Ba%最大多普勒频移(Hz)gydF4y2BafifMax=fbeatMax+fdopMax;gydF4y2Ba%最大接收中频(Hz)gydF4y2Bafs=最大值(2*fifMax,bw);gydF4y2Ba%采样率(Hz)gydF4y2Ba%使用从中导出的波形参数配置FMCW波形gydF4y2Ba%长期需求gydF4y2Ba波形=分阶段。FMCWWaveform (gydF4y2Ba“清扫时间”gydF4y2Batm,gydF4y2Ba“SweepBandwidth”gydF4y2Babw,gydF4y2Ba...gydF4y2Ba“SampleRate”gydF4y2Bafs,gydF4y2Ba“SweepDirection”gydF4y2Ba,gydF4y2Ba“向上”gydF4y2Ba);gydF4y2Ba如果gydF4y2Bastrcmp(波形、扫描方向、,gydF4y2Ba“下来”gydF4y2Ba) sweepSlope = -sweepSlope;gydF4y2Ba结束gydF4y2BaNsweep = 192;sig =波形();gydF4y2Ba

型号汽车雷达收发机gydF4y2Ba

该雷达使用各向同性单元发射和统一线性阵列(ULA)接收雷达波形。使用线性阵列使雷达能够估计从目标车辆接收的反射能量的方位角方向。远程雷达需要在自我飞行器前方15度范围内探测目标。六单元接收阵列通过提供17度半功率波束宽度满足这一要求。在发射时,雷达只使用一个阵列元件,使其覆盖的区域比接收时更大。gydF4y2Ba

建模天线元件gydF4y2BaantElmnt =分阶段。IsotropicAntennaElement (gydF4y2Ba“BackBaffled”gydF4y2Ba,真正的);gydF4y2Ba%构造接收数组gydF4y2Ba不= 6;rxArray =分阶段。齿龈(gydF4y2Ba“元素”gydF4y2Ba,antElmnt,gydF4y2Ba“NumElements”gydF4y2Ba不,gydF4y2Ba...gydF4y2Ba“ElementSpacing”gydF4y2Baλ/ 2);gydF4y2Ba%接收阵列的半功率波束宽度gydF4y2Bahpbw =波束宽度(rxArray、fc、gydF4y2Ba“传播速度”gydF4y2Bac)gydF4y2Ba
hpbw = 17.1800gydF4y2Ba

使用示例中定义的参数,为单个发射信道建模雷达发射机,并为每个接收信道建模接收机前置放大器gydF4y2Ba基于FMCW技术的汽车自适应巡航控制gydF4y2Ba(雷达工具箱)gydF4y2Ba.gydF4y2Ba

antAperture=6.06e-4;gydF4y2Ba天线孔径(m^2)gydF4y2BaantGain = aperture2gain (antAperture,λ);gydF4y2Ba天线增益(dB)gydF4y2BatxPkPower = db2pow (5) * 1 e - 3;gydF4y2BaTx峰值功率(W)gydF4y2BatxGain=antGain;gydF4y2Ba天线增益(dB)gydF4y2BarxGain = antGain;gydF4y2Ba天线增益(dB)gydF4y2BarxNF=4.5;gydF4y2Ba%接收机噪声系数(dB)gydF4y2Ba%波形发射机gydF4y2Ba发射机=分阶段。发射机(gydF4y2Ba“PeakPower”gydF4y2Ba,txPkPower,gydF4y2Ba“获得”gydF4y2Ba, txGain);gydF4y2Ba%散热器单发射元件gydF4y2Ba散热器=相控。散热器(gydF4y2Ba“传感器”gydF4y2Ba,antElmnt,gydF4y2Ba“OperatingFrequency”gydF4y2Ba、fc);gydF4y2Ba接收数组的%收集器gydF4y2Ba收集器=分阶段。收集器(gydF4y2Ba“传感器”gydF4y2BarxArray,gydF4y2Ba“OperatingFrequency”gydF4y2Ba、fc);gydF4y2Ba%接收机前置放大器gydF4y2Ba接收器=相控。接收器前置放大器(gydF4y2Ba“获得”gydF4y2BarxGain,gydF4y2Ba“噪音图”gydF4y2BarxNF,gydF4y2Ba...gydF4y2Ba“SampleRate”gydF4y2Bafs);gydF4y2Ba%定义雷达gydF4y2Ba雷达= radarTransceiver (gydF4y2Ba“波形”gydF4y2Ba波形,gydF4y2Ba“发射器”gydF4y2Ba发射机,gydF4y2Ba...gydF4y2Ba“Transmitantena”gydF4y2Ba散热器,gydF4y2Ba“接收天线”gydF4y2Ba收集器,gydF4y2Ba“接收者”gydF4y2Ba,收件人);gydF4y2Ba

定义雷达信号处理链gydF4y2Ba

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

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

%线相控阵信号的波达方向估计器gydF4y2BaDOEAST=相控。根音乐激励器(gydF4y2Ba...gydF4y2Ba“SensorArray”gydF4y2BarxArray,gydF4y2Ba...gydF4y2Ba“传播速度”gydF4y2BacgydF4y2Ba“OperatingFrequency”gydF4y2Ba,fc,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“OperatingFrequency”gydF4y2Ba、fc);gydF4y2Ba%形成前向光束探测自我车辆前面的物体gydF4y2Babeamformer =分阶段。PhaseShiftBeamformer (gydF4y2Ba“SensorArray”gydF4y2BarxArray,gydF4y2Ba...gydF4y2Ba“传播速度”gydF4y2BacgydF4y2Ba“OperatingFrequency”gydF4y2Ba,fc,gydF4y2Ba“方向”gydF4y2Ba, (0, 0));gydF4y2Ba

使用gydF4y2Ba分阶段。R一个ngeDopplerResponse目标对雷达数据立方体进行距离和多普勒处理。使用汉宁窗来抑制车辆靠近雷达时产生的大旁瓣。gydF4y2Ba

非功能性测试= waveform.SweepTime * waveform.SampleRate;gydF4y2Ba%快速采样次数gydF4y2BaNst=Nsweep;gydF4y2Ba%慢速采样数gydF4y2BaNr = 2 ^ nextpow2(非功能性测试);gydF4y2Ba%范围样本数gydF4y2BaNd = 2 ^ nextpow2(望远镜);gydF4y2Ba%多普勒采样数gydF4y2Barngdopresp =分阶段。R一个ngeDopplerResponse(“范围法”gydF4y2Ba,gydF4y2BaFFT的gydF4y2Ba,gydF4y2Ba...gydF4y2Ba“DopplerOutput”gydF4y2Ba,gydF4y2Ba“速度”gydF4y2Ba,gydF4y2Ba“SweepSlope”gydF4y2BasweepSlope,gydF4y2Ba...gydF4y2Ba“RangeFFTLengthSource”gydF4y2Ba,gydF4y2Ba“财产”gydF4y2Ba,gydF4y2Ba“RangeFFTLength”gydF4y2Ba,Nr,gydF4y2Ba...gydF4y2Ba“RangeWindow”gydF4y2Ba,gydF4y2Ba“损害”gydF4y2Ba,gydF4y2Ba...gydF4y2Ba“DopplerFFTLengthSource”gydF4y2Ba,gydF4y2Ba“财产”gydF4y2Ba,gydF4y2Ba“dopplerftlength”gydF4y2BaNd,gydF4y2Ba...gydF4y2Ba“DopplerWindow”gydF4y2Ba,gydF4y2Ba“损害”gydF4y2Ba,gydF4y2Ba...gydF4y2Ba“传播速度”gydF4y2BacgydF4y2Ba“OperatingFrequency”gydF4y2Ba,fc,gydF4y2Ba“SampleRate”gydF4y2Bafs);gydF4y2Ba

在处理的距离和多普勒数据中,使用恒误报警率(CFAR)探测器识别探测。CFAR探测器估计接收雷达数据的背景噪声水平。检测是在信号功率超过估计噪声下限的某个阈值的位置发现的。由于环境噪声,较低的阈值会导致较高数量的错误检测报告。增加阈值产生更少的错误检测,但也降低了在场景中检测实际目标的概率。有关CFAR检测的更多信息,请参见示例gydF4y2BaCFAR检测gydF4y2Ba(相控阵系统工具箱)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“ThresholdFactor”gydF4y2Ba,gydF4y2Ba“自定义”gydF4y2Ba,gydF4y2Ba“CustomThresholdFactor”gydF4y2Badb2pow (13)gydF4y2Ba...gydF4y2Ba“噪音功率输出端口”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对象将在距离多普勒数据中发现的探测位置转换为测量值及其相应的测量方差。这些估计器将二次曲线拟合到距离多普勒数据,以估计每次探测的峰值位置。由此产生的测量分辨率是距离和多普勒采样t的一小部分他收集数据。万博 尤文图斯gydF4y2Ba

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

σgydF4y2Ba RgydF4y2Ba 米gydF4y2Ba 年代gydF4y2Ba =gydF4y2Ba 1gydF4y2Ba 2gydF4y2Ba ΔgydF4y2Ba RgydF4y2Ba 一个gydF4y2Ba ygydF4y2Ba lgydF4y2Ba egydF4y2Ba 我gydF4y2Ba ggydF4y2Ba hgydF4y2Ba

在哪里gydF4y2Ba σgydF4y2Ba RgydF4y2Ba 米gydF4y2Ba 年代gydF4y2Ba RMS距离分辨率和gydF4y2Ba ΔgydF4y2Ba RgydF4y2Ba 一个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“NumPulses”gydF4y2Ba,Nsweep);gydF4y2Ba

为了进一步提高估计车辆位置的精度,将雷达探测传递给跟踪器。将跟踪器配置为使用扩展卡尔曼滤波器(EKF),它将球面雷达测量转换为自我飞行器的笛卡尔坐标系。还将跟踪器配置为对检测到的车辆使用恒定速度动力学。通过比较多个测量时间间隔内的车辆检测结果,跟踪器进一步提高了车辆位置的准确性,并提供了车辆速度估计。gydF4y2Ba

跟踪器=雷达跟踪器(gydF4y2Ba“FilterInitializationFcn”gydF4y2Ba@initcvekf,gydF4y2Ba...gydF4y2Ba“AssignmentThreshold”gydF4y2Ba, 50);gydF4y2Ba

模型自由空间传播信道gydF4y2Ba

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

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

模拟驾驶场景gydF4y2Ba

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

要创建驾驶场景,请使用gydF4y2BahelperAutoDrivingRadarSigProcgydF4y2Ba函数。要检查该函数的内容,请使用gydF4y2Ba编辑(“helperAutoDrivingRadarSigProc”)gydF4y2Ba命令。gydF4y2Ba

%创建驾驶场景gydF4y2Ba[场景、egoCar radarParams] =gydF4y2Ba...gydF4y2BahelperAutoDrivingRadarSigProc (gydF4y2Ba设置场景的gydF4y2Bac fc);gydF4y2Ba

下面的循环使用gydF4y2BadrivingScenariogydF4y2Ba目标在场景中推进车辆。在每个仿真时间步上,通过收集雷达波形192次扫描组装一个雷达数据立方体。然后对组装的数据立方体进行距离和多普勒处理。然后对距离和多普勒处理的数据进行波束形成,并对波束形成的数据进行CFAR检测。距离,径向速度和到达方向的测量被估计为CFAR探测。这些检测然后组装成gydF4y2BaobjectDetectiongydF4y2Ba对象,然后由gydF4y2BaradarTrackergydF4y2Ba对象。gydF4y2Ba

%初始化显示驱动场景示例gydF4y2BahelperAutoDrivingRadarSigProc (gydF4y2Ba初始化显示的gydF4y2Ba,egoCar,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=尺寸(tgtPos,2);tgtStruct=struct(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,sig);gydF4y2Ba%保存扫描到数据立方体gydF4y2BaXcube(:,:,米)= rxsig;gydF4y2Ba在下一次扫荡前移动目标gydF4y2BatgtPos=tgtPos+tgtVel*扫描时间;gydF4y2Ba结束gydF4y2Ba%计算距离-多普勒响应gydF4y2Ba[Xrngdop, rnggrid dopgrid] = rngdopresp (Xcube);gydF4y2Ba接收到的数据gydF4y2BaXbf=permute(Xrngdop[1,3,2]);Xbf=整形(Xbf,Nr*Nd,Ne);Xbf=波束形成器(Xbf);Xbf=整形(Xbf,Nr,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...gydF4y2Ba连词(Xrngdop) Xbf、detidx noisepwr, clusterIDs);azvar = azvar + radarParams.RMSBias (1) ^ 2;[rng, rngvar] = rngestimator (Xbf、rnggrid detidx, noisepwr, clusterIDs);rngvar = rngvar + radarParams.RMSBias (2) ^ 2;(rs, 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 dets{iDet}=objectDetection(时间,gydF4y2Ba...gydF4y2Ba[阿兹(iDet) rng (iDet) rr (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跟踪=追踪(依据、时间);gydF4y2Ba%更新显示gydF4y2BahelperAutoDrivingRadarSigProc (gydF4y2Ba“显示更新”gydF4y2BaegoCar侦破,跟踪,gydF4y2Ba...gydF4y2Badopgrid、rnggrid Xbf、beamscan Xrngdop);gydF4y2Ba%收集空闲空间通道指标gydF4y2BametricsFS=辅助自动驾驶雷达程序(gydF4y2Ba“收集指标”gydF4y2Ba,gydF4y2Ba...gydF4y2BaradarParams、tgtPos tgtVel,依据);gydF4y2Ba结束gydF4y2Ba

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

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

左下方的两个图显示了信号处理生成的雷达图像。上图显示了从目标车辆接收到的雷达回波在距离和径向速度上的分布情况。在这里,观察到所有三辆车。测得的径向速度与跟踪器估计的速度相对应,如鸟眼图所示。下图显示了接收到的目标回波在距离和角度上的空间分布情况。同样,三个目标都存在,它们的位置与鸟瞰图中显示的位置相匹配。gydF4y2Ba

由于它与雷达的距离很近,橙色汽车仍然可以被探测到,尽管它的位置超出了波束的3 dB波束宽度,造成了很大的波束形成损失。这些检测已经为橙色汽车生成了一个轨迹(ID3)。gydF4y2Ba

对多径信道进行建模gydF4y2Ba

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

多径传播的总体影响是接收到的雷达回波可以产生建设性干扰和破坏性干扰。这种建设性和破坏性干扰是由不同信号传播路径之间的路径长度差异造成的。当雷达和车辆之间的距离改变时,这些路径长度的差异也会改变。当这些路径之间的差异导致雷达接收到的回波相差近180度时,这些回波会破坏性地合并,雷达无法探测到那个距离。gydF4y2Ba

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

%重置驾驶场景gydF4y2Ba[场景、egoCar radarParams, pointTgts] =gydF4y2Ba...gydF4y2BahelperAutoDrivingRadarSigProc (gydF4y2Ba设置场景的gydF4y2Bac fc);gydF4y2Ba%再次运行模拟,现在使用双射线通道模型gydF4y2Bametrics2Ray = helperAutoDrivingRadarSigProc (gydF4y2Ba“双光线模拟”gydF4y2Ba,gydF4y2Ba...gydF4y2Bac、 fc、rangeMax、vMax、Nsweep、,gydF4y2Ba...gydF4y2Ba%波形参数gydF4y2Barngdopresp、波束形成器、cfar、idxCFAR、群集器、,gydF4y2Ba...gydF4y2Ba%信号处理gydF4y2Babeamscan rngestimator、dopestimator doa,追踪,gydF4y2Ba...gydF4y2Ba%的评估gydF4y2Ba雷达;gydF4y2Ba%硬件模型gydF4y2Ba

上图显示了仿真时间为1.1秒时的追逐图、鸟瞰图和雷达图像,与自由空间信道传播场景中显示的一样。对比这两幅图,可以看到,对于双射线通道,在本次仿真时紫色车辆没有检测到。这种检测损失是由于路径长度的差异,这款车是破坏性的干扰,在这个范围,导致整体检测损失。gydF4y2Ba

将CFAR处理生成的信噪比估计与从自由空间和双射线通道模拟得到的紫色汽车的距离估计绘制成图。gydF4y2Ba

helperAutoDrivingRadarSigProc (gydF4y2Ba“情节频道”gydF4y2Ba、metricsFS metrics2Ray);gydF4y2Ba

图通道传播包含一个轴对象。标题为“传播通道”的axis对象包含两个类型为line的对象。这些物体代表自由空间,双射线。gydF4y2Ba

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

总结gydF4y2Ba

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

本例中提供的工作流使您能够理解雷达架构设计决策如何影响更高级别的系统需求。使用此工作流,您可以选择满足您独特应用程序需求的雷达设计。gydF4y2Ba

参考gydF4y2Ba

[1] 理查兹,马克。gydF4y2Ba雷达信号处理基础gydF4y2Ba.纽约:McGraw Hill, 2005年。gydF4y2Ba

另请参阅gydF4y2Ba

对象gydF4y2Ba

相关的话题gydF4y2Ba