主要内容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)gydF4y2BaLambda = freq2waven (fc,c);gydF4y2Ba%波长(m)gydF4y2Ba将啁啾持续时间设置为最大范围要求的5倍gydF4y2BarangeMax = 100;gydF4y2Ba%最大范围(m)gydF4y2Batm = 5*range2time(rangeMax,c);gydF4y2Ba%啁啾持续时间(s)gydF4y2Ba从所需的范围分辨率确定波形带宽gydF4y2BarangeRes = 1;gydF4y2Ba期望距离分辨率(m)gydF4y2Babw = range2bw(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)来接收雷达波形。使用线性阵列使雷达能够估计从目标车辆接收到的反射能量的方位方向。远程雷达需要探测到ego车辆前方15度范围内的目标。6元接收阵列通过提供17度半功率波束宽度来满足这一要求。在发射时,雷达仅使用单个阵列元件,使其能够覆盖比接收时更大的区域。gydF4y2Ba

模拟天线元件gydF4y2BaantElmnt = phase。IsotropicAntennaElement (gydF4y2Ba“BackBaffled”gydF4y2Ba,真正的);gydF4y2Ba构造接收数组gydF4y2BaNe = 6;rxArray = phase。齿龈(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 =波形. sweeptime *波形. samplerate;gydF4y2Ba%快速采样数gydF4y2BaNst = Nsweep;gydF4y2Ba%慢时间采样的个数gydF4y2BaNr = 2^nextpow2(Nft);gydF4y2Ba%范围样本数gydF4y2BaNd = 2^nextpow2(Nst);gydF4y2Ba%多普勒采样数gydF4y2BaRngdopresp = phase。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恒定虚警率(CFAR)检测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处理gydF4y2Ba频率= ((0:Nr-1)'/Nr-0.5)*fs;rngrid = beat2range(频率,sweepSlope);iRngCUT = find(rnggrid>);iRngCUT = iRngCUT((iRngCUT>=nCUTRng)&(iRngCUT<=Nr-nCUTRng+1));iDopCUT = nCUTDop:(n -nCUTDop+1);[iringcut,iDopCUT] = meshgrid(iringcut,iDopCUT);idxCFAR = [iRng(:) iDop(:)]';gydF4y2Ba%执行聚类算法对检测结果进行分组gydF4y2Baclusterer = clusterDBSCAN(gydF4y2Ba‘ε’gydF4y2Ba2);gydF4y2Ba

的gydF4y2Ba分阶段。R一个ngeEstimator和gydF4y2Ba分阶段。DopplerEstimatorgydF4y2Ba目标将距离-多普勒数据中发现的探测位置转换为测量值及其相应的测量方差。这些估计器将二次曲线拟合到距离-多普勒数据中,以估计每个检测的峰值位置。由此产生的测量分辨率是距离和数据多普勒采样的一小部分。金宝搏官方网站gydF4y2Ba

发射波形的均方根距离分辨率(RMS)用于计算距离测量的方差。远程雷达的瑞利距离分辨率以前定义为1米。瑞利分辨率是可以分辨两个唯一目标的最小距离。该值定义雷达距离分辨单元之间的距离。然而,目标在分辨率单元内的方差是由波形的均方根分辨率决定的。对于LFM啁啾波形,瑞利分辨率和均方根分辨率之间的关系由[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)*rangeRes;Rngestimator = phase。RangeEstimator (gydF4y2Ba“ClusterInputPort”gydF4y2Ba,真的,gydF4y2Ba…gydF4y2Ba“VarianceOutputPort”gydF4y2Ba,真的,gydF4y2Ba“NoisePowerSource”gydF4y2Ba,gydF4y2Ba输入端口的gydF4y2Ba,gydF4y2Ba…gydF4y2Ba“RMSResolution”gydF4y2Ba, rmsRng);Dopestimator = phased。DopplerEstimator (gydF4y2Ba“ClusterInputPort”gydF4y2Ba,真的,gydF4y2Ba…gydF4y2Ba“VarianceOutputPort”gydF4y2Ba,真的,gydF4y2Ba“NoisePowerSource”gydF4y2Ba,gydF4y2Ba输入端口的gydF4y2Ba,gydF4y2Ba…gydF4y2Ba“NumPulses”gydF4y2Ba, Nsweep);gydF4y2Ba

为了进一步提高估计车辆位置的精度,将雷达的探测传递给跟踪器。将跟踪器配置为使用扩展卡尔曼滤波器(EKF),将球面雷达测量值转换为ego车辆的笛卡尔坐标系。还要配置跟踪器,以对检测到的车辆使用恒定速度动力学。通过比较多个测量时间间隔的车辆检测,跟踪器进一步提高了车辆位置的准确性,并提供了车辆速度估计。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%获取当前场景时间gydF4y2Batime = scenario.SimulationTime;gydF4y2Ba在车辆的参考系中获取当前目标的姿态gydF4y2Batgtpose = targetpose (egoCar);tgtPos =重塑([tgtPoses.Position],3,[]);gydF4y2Ba%定位点目标在每个目标高度的一半gydF4y2BatgtPos(3,:) = tgtPos(3,:)+0.5*tgtHeight;tgtVel =重塑([tgtpose . velocity],3,[]);gydF4y2Ba%在当前场景时间组装数据立方体gydF4y2BaXcube = 0 (Nft,Ne,Nsweep);gydF4y2Ba为gydF4y2Bam = 1:Nsweep 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,rnggrid,dopgrid] = rngdopresp(Xcube);gydF4y2Ba%波束格式接收数据gydF4y2BaXbf = permute(Xrngdop,[1 3 2]);Xbf =重塑(Xbf,Nr*Nd,Ne);Xbf =波束形成器(Xbf);Xbf =重塑(Xbf,Nr,Nd);gydF4y2Ba%检测目标gydF4y2Baxw = 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;[rngvar] = rngestimator(Xbf,rnggrid,detidx,noisepwr, clusterid);rngvar = rngvar+radarParams.RMSBias(2)^2;[rse,rsvar] = dopestimator(Xbf,dopgrid,detidx,noisepwr, clusterid);gydF4y2Ba将径向速度转换为距离速率,供跟踪器使用gydF4y2Ba休息= -休息;Rrvar = rsvar;rrvar = rrvar+radarParams.RMSBias(3)^2;gydF4y2Ba组装目标检测供跟踪器使用gydF4y2BanumDets = nummel(最长);dets = cell(numDets,1);gydF4y2Ba为gydF4y2BaiDet = 1:numDets dets{iDet} = objectDetection(time,gydF4y2Ba…gydF4y2Ba[est(t) * (t) * (t) * (t)]',gydF4y2Ba…gydF4y2Ba“MeasurementNoise”gydF4y2Ba,diag([azvar(idt) rngvar(idt) rrvar(idt)]),gydF4y2Ba…gydF4y2Ba“MeasurementParameters”gydF4y2Ba{radarParams},gydF4y2Ba…gydF4y2Ba“ObjectAttributes”gydF4y2Ba{结构(gydF4y2Ba“信噪比”gydF4y2BasnrdB (iDet))});gydF4y2Ba结束gydF4y2Ba%跟踪检测gydF4y2BaTracks = tracker(dets,time);gydF4y2Ba% Update显示gydF4y2BahelperAutoDrivingRadarSigProc (gydF4y2Ba“显示更新”gydF4y2BaegoCar侦破,跟踪,gydF4y2Ba…gydF4y2Badopgrid、rnggrid Xbf、beamscan Xrngdop);gydF4y2Ba%收集空闲空间通道指标gydF4y2BametricsFS = helperAutoDrivingRadarSigProc(gydF4y2Ba“收集指标”gydF4y2Ba,gydF4y2Ba…gydF4y2BaradarParams、tgtPos tgtVel,依据);gydF4y2Ba结束gydF4y2Ba

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

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

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

由于距离雷达很近,橙色汽车仍然可以被探测到,尽管由于其位置远远超出了波束的3db波束宽度而造成了很大的波束形成损失。这些检测生成了橙色汽车的轨迹(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

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

将CFAR处理生成的信噪比估计值与紫色汽车的自由空间和双射线通道模拟的距离估计值进行比较。gydF4y2Ba

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

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

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

总结gydF4y2Ba

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

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

参考gydF4y2Ba

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

另请参阅gydF4y2Ba

对象gydF4y2Ba

相关的话题gydF4y2Ba