主要内容gydF4y2Ba

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

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

简介gydF4y2Ba

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

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

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

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

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

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

为可重复的结果设置随机数生成器gydF4y2Barng (2017);gydF4y2Ba从指定的长期需求计算硬件参数gydF4y2BaFc = 77e9;gydF4y2Ba%中心频率(Hz)gydF4y2BaC = physconst(gydF4y2Ba“光速”gydF4y2Ba);gydF4y2Ba光在空气中的速度(m/s)gydF4y2Baλ = freq2wave (fc,c);gydF4y2Ba%波长(m)gydF4y2Ba设置啁啾持续时间为最大范围要求的5倍gydF4y2BarangeMax = 100;gydF4y2Ba最大量程(m)gydF4y2Batm = 5*range2time(rangeMax,c);gydF4y2Ba%啁啾持续时间(s)gydF4y2Ba从所需的距离分辨率确定波形带宽gydF4y2BarangeRes = 1;gydF4y2Ba%期望距离分辨率(m)gydF4y2Babw = rangeres2bw(rangeRes,c);gydF4y2Ba%对应带宽(Hz)gydF4y2Ba设置采样率以满足范围和速度要求gydF4y2Ba雷达%gydF4y2BasweepSlope = bw/tm;gydF4y2Ba% FMCW扫描斜率(Hz/s)gydF4y2BafbeatMax = range2beat(rangeMax,sweepSlope,c);gydF4y2Ba最大拍频(Hz)gydF4y2BavMax = 230*1000/3600;gydF4y2Ba车辆最大速度% (m/s)gydF4y2BafdopMax = speed2dop(2*vMax,lambda);gydF4y2Ba最大多普勒频移(Hz)gydF4y2BafifMax = fbeatMax+fdopMax;gydF4y2Ba最大接收中频(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) sweepSlope = -sweepSlope;gydF4y2Ba结束gydF4y2BaNsweep = 192;Sig =波形();gydF4y2Ba

模型汽车雷达收发器gydF4y2Ba

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

为天线元件建模gydF4y2BaantElmnt =阶段性。IsotropicAntennaElement (gydF4y2Ba“BackBaffled”gydF4y2Ba,真正的);gydF4y2Ba构造接收数组gydF4y2BaNe = 6;rxArray =相控。齿龈(gydF4y2Ba“元素”gydF4y2BaantElmnt,gydF4y2Ba“NumElements”gydF4y2Ba不,gydF4y2Ba...gydF4y2Ba“ElementSpacing”gydF4y2Baλ/ 2);gydF4y2Ba接收阵列的半功率波束宽度gydF4y2Bahpbw =光束宽度(rxArray,fc,gydF4y2Ba“PropagationSpeed”gydF4y2Bac)gydF4y2Ba
HPBW = 17.1800gydF4y2Ba

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

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

定义雷达信号处理链gydF4y2Ba

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

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

线性相控阵信号到达方向估计器gydF4y2BaDoaest =阶段性。RootMUSICEstimator(...gydF4y2Ba“SensorArray”gydF4y2BarxArray,gydF4y2Ba...gydF4y2Ba“PropagationSpeed”gydF4y2BacgydF4y2Ba“OperatingFrequency”gydF4y2Ba足球俱乐部,gydF4y2Ba...gydF4y2Ba“NumSignalsSource”gydF4y2Ba,gydF4y2Ba“属性”gydF4y2Ba,gydF4y2Ba“NumSignals”gydF4y2Ba1);gydF4y2Ba扫描自我车辆前方光束进行距离-角度图像显示gydF4y2BaAngscan = -80:80;波束扫描=相控。PhaseShiftBeamformer (gydF4y2Ba“方向”gydF4y2Ba(angscan; 0 * angscan),gydF4y2Ba...gydF4y2Ba“SensorArray”gydF4y2BarxArray,gydF4y2Ba“OperatingFrequency”gydF4y2Ba、fc);gydF4y2Ba%形成面向前方的光束以探测自我车辆前方的物体gydF4y2Ba波束形成器=相控。PhaseShiftBeamformer (gydF4y2Ba“SensorArray”gydF4y2BarxArray,gydF4y2Ba...gydF4y2Ba“PropagationSpeed”gydF4y2BacgydF4y2Ba“OperatingFrequency”gydF4y2Ba足球俱乐部,gydF4y2Ba“方向”gydF4y2Ba, (0, 0));gydF4y2Ba

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

Nft = form. sweeptime * form. samplerate;gydF4y2Ba%快速采样的个数gydF4y2BaNst = Nsweep;gydF4y2Ba%慢时间样本数gydF4y2BaNr = 2^nextpow2(Nft);gydF4y2Ba%范围样本数gydF4y2BaNd = 2^nextpow2(Nst);gydF4y2Ba%多普勒采样数gydF4y2BaRngdopresp =相控。R一个ngeDopplerResponse(“RangeMethod”gydF4y2Ba,gydF4y2BaFFT的gydF4y2Ba,gydF4y2Ba...gydF4y2Ba“DopplerOutput”gydF4y2Ba,gydF4y2Ba“速度”gydF4y2Ba,gydF4y2Ba“SweepSlope”gydF4y2BasweepSlope,gydF4y2Ba...gydF4y2Ba“RangeFFTLengthSource”gydF4y2Ba,gydF4y2Ba“属性”gydF4y2Ba,gydF4y2Ba“RangeFFTLength”gydF4y2BaNr,gydF4y2Ba...gydF4y2Ba“RangeWindow”gydF4y2Ba,gydF4y2Ba“损害”gydF4y2Ba,gydF4y2Ba...gydF4y2Ba“DopplerFFTLengthSource”gydF4y2Ba,gydF4y2Ba“属性”gydF4y2Ba,gydF4y2Ba“DopplerFFTLength”gydF4y2BaNd,gydF4y2Ba...gydF4y2Ba“DopplerWindow”gydF4y2Ba,gydF4y2Ba“损害”gydF4y2Ba,gydF4y2Ba...gydF4y2Ba“PropagationSpeed”gydF4y2BacgydF4y2Ba“OperatingFrequency”gydF4y2Ba足球俱乐部,gydF4y2Ba“SampleRate”gydF4y2Bafs);gydF4y2Ba

通过使用恒定虚警率(CFAR)探测器来识别处理范围和多普勒数据中的探测。CFAR探测器估计接收到的雷达数据的背景噪声水平。在信号功率超过估计噪声底限某一阈值的位置发现检测。低阈值会导致由于环境噪声而报告的错误检测数量增加。增加阈值会产生更少的错误检测,但也会降低场景中检测到实际目标的概率。有关CFAR检测的更多信息,请参见示例gydF4y2Ba恒虚警率检测gydF4y2Ba(相控阵系统工具箱)gydF4y2Ba.gydF4y2Ba

%警戒单元和训练区域的范围尺寸gydF4y2BanGuardRng = 4;nTrainRng = 4;nCUTRng = 1+nGuardRng+nTrainRng;gydF4y2Ba%警卫细胞和训练区域的多普勒维gydF4y2BadopOver = round(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“NoisePowerOutputPort”gydF4y2Ba,真的,gydF4y2Ba“OutputFormat”gydF4y2Ba,gydF4y2Ba“检测指数”gydF4y2Ba);gydF4y2Ba在所有范围和多普勒单元上执行CFAR处理gydF4y2Bafreqs = ((0:Nr-1)'/Nr-0.5)*fs;rngrid = beat2range(freqs,sweepSlope);iRngCUT = find(rngrid >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

传输波形的均方根(RMS)距离分辨率需要计算距离测量的方差。远程雷达的瑞利距离分辨率以前被定义为1米。瑞利分辨率是两个唯一目标可以被分辨的最小距离。该值定义雷达的距离分辨率单元之间的距离。然而,目标在分辨率单元内的方差是由波形的RMS分辨率决定的。对于LFM啁啾波形,瑞利分辨率和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 =√(12)*rangeRes;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

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

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

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

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

初始化驾驶场景示例的显示gydF4y2BahelperAutoDrivingRadarSigProc (gydF4y2Ba初始化显示的gydF4y2BaegoCar radarParams,gydF4y2Ba...gydF4y2BarxArray, fc, rangeMax);tgtProfiles = actorProfiles(场景);tgtProfiles = tgtProfiles(2:end);tgtHeight = [tgtProfiles.Height];gydF4y2Ba运行模拟循环gydF4y2BasweepTime =波形。sweepTime;gydF4y2Ba而gydF4y2Ba推进(场景)gydF4y2Ba获取当前场景时间gydF4y2Ba时间= scenario.SimulationTime;gydF4y2Ba在自我车辆的参考系中获取当前目标的姿态gydF4y2Batgtpose = targetpose (egoCar);tgtPos =重塑([tgtpositions . position],3,[]);gydF4y2Ba点目标的位置为每个目标高度的一半gydF4y2BatgtPos(3,:) = tgtPos(3,:)+0.5*tgtHeight;tgtVel =重塑([tgtposts . velocity],3,[]);gydF4y2Ba%在当前场景时间组装数据多维数据集gydF4y2BaXcube = 0 (Nft,Ne,Nsweep);gydF4y2Ba为gydF4y2Bam = 1: ntgt = size(tgtPos,2);tgtStruct = struct(gydF4y2Ba“位置”gydF4y2Bamat2cell (tgtPos(:)。”,1,repmat (3 1 ntgt)),gydF4y2Ba...gydF4y2Ba“速度”gydF4y2Bamat2cell (tgtVel(:)。”,1,repmat (3 1 ntgt)),gydF4y2Ba...gydF4y2Ba“签名”gydF4y2Ba, {rcsSignature、rcsSignature rcsSignature});rxsig = radar(tgtStruct,time+(m-1)*sweepTime);gydF4y2Ba解码接收到的信号gydF4y2BaRxsig = dechirp(Rxsig,sig);gydF4y2Ba将扫描保存到数据立方体gydF4y2BaXcube(:,:,m) = rxsig;gydF4y2Ba为下一次扫描及时向前移动目标gydF4y2BatgtPos = tgtPos+tgtVel*sweepTime;gydF4y2Ba结束gydF4y2Ba计算距离-多普勒响应gydF4y2Ba[Xrngdop, rngrid,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[~, clusterid] = clusterer(detidx.');gydF4y2Ba%估计方位角、距离和径向速度测量值gydF4y2Ba[az, azvar snrdB] =gydF4y2Ba...gydF4y2BahelperAutoDrivingRadarSigProc (gydF4y2Ba“估计角”gydF4y2Badoa,gydF4y2Ba...gydF4y2Ba连词(Xrngdop) Xbf、detidx noisepwr, clusterIDs);azvar = azvar+radarParams.RMSBias(1)^2;[rngest,rngvar] = rngestimator(Xbf, rngrid,detidx,noisepwr,clusterIDs);rngvar = rngvar+radarParams.RMSBias(2)^2;[r本,rsvar] = dopestimator(Xbf,dopgrid,detidx,noisepwr,clusterIDs);gydF4y2Ba将径向速度转换为范围速度,供跟踪器使用gydF4y2Ba休息= - Rrest;Rrvar = rsvar;rrvar = rrvar+radarParams.RMSBias(3)^2;gydF4y2Ba组装对象检测供跟踪器使用gydF4y2BanumDets =数字(rngest);dets = cell(numDets,1);gydF4y2Ba为gydF4y2BaiDet = 1:numDets dets{iDet} = objectDetection(时间,gydF4y2Ba...gydF4y2Ba[azest(iDet) rnest (iDet) rest(iDet)]',gydF4y2Ba...gydF4y2Ba“MeasurementNoise”gydF4y2Ba,diag([azvar(iDet) rngvar(iDet) rrvar(iDet)]),gydF4y2Ba...gydF4y2Ba“MeasurementParameters”gydF4y2Ba{radarParams},gydF4y2Ba...gydF4y2Ba“ObjectAttributes”gydF4y2Ba{结构(gydF4y2Ba“信噪比”gydF4y2BasnrdB (iDet))});gydF4y2Ba结束gydF4y2Ba%轨迹检测gydF4y2BaTracks =跟踪器(dets,时间);gydF4y2Ba%更新显示gydF4y2BahelperAutoDrivingRadarSigProc (gydF4y2Ba“显示更新”gydF4y2BaegoCar侦破,跟踪,gydF4y2Ba...gydF4y2Badopgrid、rnggrid Xbf、beamscan Xrngdop);gydF4y2Ba收集空闲空间通道指标gydF4y2BametricsFS = helperAutoDrivingRadarSigProc(gydF4y2Ba“收集指标”gydF4y2Ba,gydF4y2Ba...gydF4y2BaradarParams、tgtPos tgtVel,依据);gydF4y2Ba结束gydF4y2Ba

FMCWExample_freespace_snapshot.pnggydF4y2Ba

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

图的右侧显示了鸟瞰图,它展示了场景的一个自顶向下的视角。所有的车辆,检测和轨道显示在自我车辆的坐标参考系中。每个雷达测量的估计信噪比(SNR)打印在每个探测旁边。跟踪器估计的车辆位置在图中显示,使用黑色方块,旁边的文本指示每个轨道的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...gydF4y2BaNsweep c fc rangeMax,,gydF4y2Ba...gydF4y2Ba%波形参数gydF4y2Barngdopresp、beamformer cfar、idxCFAR clusterer运算,gydF4y2Ba...gydF4y2Ba信号处理gydF4y2Babeamscan rngestimator、dopestimator doa,追踪,gydF4y2Ba...gydF4y2Ba%的评估gydF4y2Ba雷达、团体);gydF4y2Ba%硬件型号gydF4y2Ba

FMCWExample_tworay_snapshot.pnggydF4y2Ba上图显示了1.1秒模拟时间下的追逐图、鸟瞰图和雷达图像,与自由空间信道传播场景所显示的一样。对比这两个图,可以观察到,对于双射线通道,紫色汽车在这个模拟时刻没有检测到。这种检测损失是因为该车的路径长度差异在此范围内具有破坏性干扰,导致完全检测损失。gydF4y2Ba

将CFAR处理产生的信噪比估估值与来自自由空间和双射线通道模拟的紫色汽车的距离估估值绘制出来。gydF4y2Ba

helperAutoDrivingRadarSigProc (gydF4y2Ba“阴谋频道”gydF4y2Ba、metricsFS metrics2Ray);gydF4y2Ba

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

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

总结gydF4y2Ba

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

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

参考gydF4y2Ba

[1]理查德,马克。gydF4y2Ba雷达信号处理基础gydF4y2Ba.纽约:麦格劳希尔出版社,2005年。gydF4y2Ba

另请参阅gydF4y2Ba

对象gydF4y2Ba

相关的话题gydF4y2Ba