Radar target generation and detection - Software
本文的代码均在MATLAB上运行, MATLAB在传统辅助驾驶系统的验证和模拟上相对于其他编程语言具有很强的优势.
Github: https://github.com/williamhyin/SFND_Radar_Target_Detection
Email: [email protected]
知乎专栏: 自动驾驶全栈工程师
Range and velocity estimation
在这篇博客中, 首先我们需要学会如何使用多普勒傅里叶变换技术估计距离和速度. 雷达分辨目标的能力对于准确的感知是非常关键的. 在开始之前, 让我们先来看一下有关啁啾和雷达分辨率的三个主要测量维度.
-
啁啾
啁啾(Chirp)是指频率随时间而改变(增加或减少)的信号, 这一术语可以与扫频信号(Sweep signal)互换使用. 它通常用于声纳、雷达和激光.
图片引用自此
-
距离分辨率(Range Resolution)
雷达需要具备区分两个距离非常近的目标的能力. 比如, 当雷达的距离分辨率为4米时, 它就不能区分相距1m的行人和汽车. 距离分辨率完全取决于啁啾的带宽B_sweep.
d r e s = c 2 B s w e e p d_{r e s}=\frac{c}{2 B_{s w e e p}} dres=2Bsweepc -
速度分辨率(Velocity Resolution)
如果两个目标有相同的距离, 但是当它们以不同的速度移动, 它们仍然可以被区分开来. 速度分辨率取决于啁啾的个数. 正如讨论我们的情况下, 我们选择发送128个啁啾. 较高的啁啾数量增加了速度分辨率, 但它也需要更长的时间来处理信号.
-
角度分辨率(Angle Resolution)
雷达能够在空间上分离两个目标. 即使两个目标在相同的距离以相同的速度运动, 它们仍然可以通过雷达坐标系中的角度分辨出来.
Range Estimation
雷达通过测量目标反射的电磁信号的飞行时间来确定目标的飞行距离.
但是如何确定雷达信号的传输时间呢? 我们需要测量频移.
FMCV 波形具有频率随时间线性变化的特点. 如果雷达能够确定接收频率和雷达的斜坡频率之间的差值, 那么它就可以计算雷达信号的时间和距离目标的距离.
首先我们得理解一点, 如果目标是静止的, 那么发射频率和接收频率是相同的. 但是, 雷达的斜坡频率是随时间不断变化的, 所以, 当我们取得接收频率和斜坡频率之间的差(beat frequency) , 我们就得到了信号传输时间.
如上图所表示, f_b是拍频, 通过雷达的斜坡频率减去接收到的频率来测量.
f b = f ramping − f received f_{b}=f_{\text {ramping}}-f_{\text {received}} fb=framping−freceived
如上图所示, 雷达发射信号的频率是77 GHz, 返回信号的频率是77.01, 它们的差值delta称为拍频, 拍频正比于啁啾时间(td).
t d T s = f b B sweep t d = 2 R c \frac{t_{d}}{T_{s}}=\frac{f_{b}}{B_{\text {sweep}}}\\ t_{d}=\frac{2 R}{c} Tstd=Bsweep