1 前言

专栏之前的文章中介绍了基于深度学习的毫米波雷达感知算法。从目前的趋势来看,感知算法倾向于从雷达底层的Range-Angle-Doppler(RAD)数据出发,来提取特征和去除噪声。

如何从原始的雷达接收信号得到RAD数据,这部分就属于传统的雷达信号处理的范畴。虽然说深度学习目前是感知算法的主流,但是当我们以RAD数据作为神经网络的输入时,还是非常有必要了解传统的信号处理是如何做的。实际上,很多基于深度学习的方法也是神经网络和传统雷达信号处理相结合的结果。

雷达信号处理是一个比较复杂的过程,如果想要深入研究的话还是需要一定的专业背景知识。这篇文章的目的只是进行一个入门级的介绍,关注的也只是自动驾驶中常用的调频连续波(Frequency Modulated Continuous Wave,FMCW)雷达。只要具备基本的数字信号处理的知识,了解离散傅里叶变换,应该都可以很好的理解本文所介绍的毫米波雷达信号处理的基本原理。

2 雷达的分类

雷达是一种运用无线电定位方法,探测和识别各种目标,测定目标坐标和其它相关信息的设备。其基本的工作原理是发射电磁波对目标进行照射并接收其回波,由此获得目标至发射点的距离、距离变化率(径向速度)、方位、高度等信息。雷达的种类有很多,按照不同的标准可以有不同的分类。

按照波长来分的话,可以分为长波雷达和短波雷达。长波雷达的波长是米或者分米级别的,其分辨率较低,但穿透性较强,一般用于广播,军事预警和卫星通讯。短波雷达的波长是厘米或者毫米级的,其分辨率较高,但穿透性较差,一般用于测绘,短程通讯和车载应用。

按照波形来分的话,可以分为脉冲雷达和连续波雷达。脉冲雷达通过脉冲发送和接收的时间差来确定目标的距离,无法测量目标的速度。这个原理与激光雷达(LiDAR)非常相似。连续波雷达的发射信号在时间上是连续的,而且发射信号的频率是随着时间变化的,因此也成为连续调频波。

标题不同波形的雷达

本文所要介绍的基于连续调频波(FMCW)的毫米波雷达,这也是目前自动驾驶中最常用的传感器之一。

3 信号处理

在介绍具体的信号处理过程之前,有必要先来讲一下FMCW雷达的信号是如何生成的。这个流程大致分为4步。

  1. 合成器生成一个连续调频脉冲。

  2. 发射天线(TX )发射连续调频脉冲。

  3. 接收天线(RX )捕获目标对连续调频脉冲的反射。

  4. 混频器将 RX 和 TX 信号合并到一起,生成 一个中频(IF)信号。

标FMCW雷达的信号生成流程题

下面我们来具体的介绍一下这步骤1和4,而步骤2和3相对比较直观,这里就直接略过了。

合成器负责生成连续调频脉冲。如下图所示,在一个脉冲的时间范围内,信号的频率随时间线性升高(线性调频脉冲)。当然也可以有别的变化方式,总之信号的频率是变化的。在下图的例子中,信号的起始频率fc为77GHz,在一个脉冲的时间Tc(通常也称之为一个Chirp,这里是40μs)内线性升高到81GHz。在一个Chirp时间内频率变化的范围就是该雷达的带宽B(这里是4GHz),而频率的变化率则记为S(4GHz/40μs=100MHz/μs)。

标题线性调频脉冲信号

混频器将发射和接收信号进行混合,得到一个具有新频率的信号,称之为中频信号(IF)。如下图所示,接收信号和发射信号的频率和相位都是不同的(由目标的距离和速度决定,后面会详细介绍)。混频器将这两个信号叠加,得到的中频信号具有新的频率和相位,分别对应发射和接收信号的频率差∆f和相位差∆∅。后续所有的信号处理都是在这个中频信号的基础上来完成的。信号处理的任务是从中频信号中解析出目标的距离(对应∆f),速度(对应∆∅)和角度(对应多个接收天线)。 

标题混频器输出的中频信号

3.1 目标距离估计

首先我们来看一下单目标的情况,同时我们也假设只有一对发射和接收天线。在这种情况下,接收和发射信号之间的时间差τ=2r/c,其中r为目标距离,c表示光速。同时,接收信号和发射信号之间的频率差可以根据时间差τ和频率变化率S来计算,也就是∆f=τS。这样我们就把频率差∆f和距离r联系起来了:将以上两个公式进行简单的代入就可以得到距离估计的公式r=∆fc/2S。在这个公式中,c和S都是固定值,因此目标距离r与频率差∆f(IF信号的频率)成正比关系。

对于单个目标来说,最大的探测距离则受限于IF信号的最大频率,而IF的频率则受限于两个因素:信号的带宽和IF信号的采样频率。前者比较容易理解,因为发射和接收信号的频率差无论如何也不能大于信号的带宽,也就是说∆f<B。后者的理解需要用到数字信号处理中的采样定理。简单来说,也就是说要想完全恢复一个信号,则需要该信号自身频率两倍的采样频率。对于雷达来说,其处理芯片的采样频率是受到硬件限制的。假设一个Chirp内的采样个数为N,Chirp的时间为Tc,那么信号的采样频率就是Fs=N/Tc。而根据采样定理,中频信号的频率必须要小于Fs/2,也就是说∆f<Fs/2。根据前面推导的距离计算公式,以及上图中发射信号的参数,可以计算得到:∆f<B的限制条件对应的最大测量距离为6000米,而∆f<Fs/2对应的最大探测距离为38.4米(假设N=2048)。因此,最大测量距离主要受限于IF的采样频率。

对于多个目标来说,RX天线会接收到多个返回信号,每个信号都有不同的延时,对应了不同的频率差。也就是说,混频器得到的IF信号不再是单一频率的信号,而是多个单频信号的叠加。对该信号进行傅里叶变换,会产生一个具有不同的峰值的频谱,每个峰值表示在特定距离处的一个目标。根据每个峰值对应的频率就可以计算目标的距离。

这里要引入一个非常重要的概念,距离分辨率,也就是雷达能区分两个不同目标的最小距离。由于我们采用傅里叶变换(距离FFT)来分离来自多个目标的频谱峰值,因此问题就转化为傅里叶变换能分辨多小的频率差别。傅里叶变换理论指出:观测时间窗口T,可以分辨间隔超过 1/THz的频率分量。因此,两个目标反射信号频率差的差值需要满足:|∆f1-∆f2 |>1/Tc(一个Chirp的时间Tc就是一个观测窗口)。根据前面推导的测距公式,可以得到目标距离差必须满足∆r>c/(2STc )=c/2B,才能从傅里叶变换的频谱上分离出来。也就是说,距离分辨率与信号带宽成正比。要提高距离分辨率,就必须增加带宽,或者说在频率变化率不变的情况下增加Chirp时间。以前文采用的发射信号为例,4GHz的带宽对应了3.75cm的距离分辨率。

3.2 目标速度估计

FMCW雷达的一大优势就是可以精确估计目标的速度。为了完成测速的任务,需要多个调频脉冲信号,也就是多个Chirp。下面我们以两个Chirp为例先介绍一下单目标的速度估计,然后再推广到多目标的情况。

如下图所示,假设类雷达发出两个线性调频脉冲(两个Chirp),每个脉冲的时间都是Tc。混频器把两个接收信号与相应的发射信号混合以后,会得到两个相应的IF信号x1和x2。假设目标的速度为10m/s,那么在一个Chirp时间(比如Tc=40μs )内物体距离变化只有0.4mm。这么小的距离变化不会对IF的频率∆f产生显著的影响,因此我们认为两个IF信号的频率是基本保持不变的,也就是∆f1≈∆f2。

标两个连续的调频脉冲信号以及相应的中频信号题

我们再来看一下这两个IF信号的相位,也就是发射和接收信号的相位差。相位差也与发射和接收的时间差τ相关,也就是∆∅=2πfτ=2πcτ/λ=4πr/λ(可以类比前文介绍的频率差计算∆f=τS)。这里因为τ的值与Tc相比非常的小,因为可以粗略认为f是恒定值。那么,两个IF信号的相位变化为∆∅1-∆∅2= (4π(r1-r2))/λ=(4πv*Tc)/λ,这里的v表示目标的速度。根据这个公式,10m/s的速度对应了0.4π的相位变化,这显然是一个比较显著的值。

根据以上分析,目标的速度会导致两个IF信号的相位产生显著变化。我们可以根据这个相位变化来估计速度v=(∆∅1-∆∅2 )*λ/(4π*Tc)。∆∅1-∆∅2的绝对值需要小于π,才能保证没有歧义性,也就是|∆∅1-∆∅2 |<π。根据这个限制,可以推导出最大测量速度为v<λ/(4Tc)。按照之前的参数Tc=40μs , 测量速度的范围是[-25m/s,25m/s]。

对于多个目标来说,如果距离不同,那么可以通过距离将其区分。如果距离相同,那么只能通过速度对其进行区分。每个目标都会产生具有不同相位差异的IF信号,可以利用傅里叶变换(速度FFT)来从频谱中提取这种变化。与多目标的距离估计类似,傅里叶变换的频谱也会具有多个峰值,每个峰值对应特定速度的目标。根据每个峰值对应的相位就可以计算目标的速度。

与距离估计类似,速度估计也有分辨率的概念。速度分辨率是指当距离相同时,雷达能区分两个不同目标的最小速度差。这个问题同样可以转换为傅里叶变换能分辨多小的频率差别。这里需要再次用到傅里叶变换理论:两个离散频率ω1和ω2 在满足∇ω=ω1-ω2>2π/M时,是可以分辨的。这里的M是指采样的个数,在我们的任务中就是雷达一帧信号中Chirp的个数。根据速度估计公式可以得到∇∅1-∇∅2=(4π*Tc)/λ*(v1-v2 )>2π/M,也就是(v1-v2 )>λ/(2Tc*M),其中Tc*M就是一帧的时间。因此,速度分辨率与帧时间成正比。如果Chirp时间固定的话,速度分辨率也就正比于Chirp个数M。

3.3 目标角度估计

除了距离和速度,另外一个重要的信息就是目标相对于雷达的角度,也就是下图中的θ。估计角度θ需要多个接收天线。目标到达多个接收天线的距离不同,会导致接收信号的相位出现差别。接收信号的频率基本不会发生变化,因为接收天线之间的距离d是以毫米为单位的,与目标距离r相比可以忽略不计。

目标的角度估计示意图标题

上图的蓝色线段表示目标相对不同接收天线的距离差∇r,红色线段表示接收天线之间的距离d。d和∇r的关系可以表示为∇r=dsin(θ)。而∇r又可以用相位差来表示:∇∅1-∇∅2=2π∇r/λ(可以参考速度估计部分对相位差的计算公式)。根据以上两个等式,可以推导出角度估计的公式:θ=arcsin(λ(∇∅1-∇∅2))/2πd)。与速度估计类似,相位差的绝对值也需要小于π,以保证没有歧义性,也就是|∇∅1-∇∅2|<π。由此也可以推导出角度测量的范围,也就是雷达的视场角:θ<arcsin(λ/2d)。当d= λ/2时,视场角达到最大值±90度。

想要测量目标的方位角,至少需要两个接收天线。当有多个目标的时候,如果它们的距离和速度都相同,那么两根接收天线就很难区分这些目标。为了提高角度分辨率,需要增加接收天线的个数。下面我们来看一下这个结论是如何得到的。

在有多个接收天线时,每个接收信号与前一个接收信号之间的相位差都是ω。以下图为例,假设有4个接收天线,以第一个接收天线为基准,4个接收信号的相位差分别为0,ω,2 ω,3 ω。这个序列信号的变化频率就是ω,因此我们通过傅里叶变换来提取这个分量(也就是角度FFT)。

基于多个接收天线的角度估计标题

下面的公式简要推导了角度分辨率的计算。假设场景中有两个目标,方位角分别为θ和θ+∇θ,其对应的相位差为ω1 和ω2。由于sin(θ)的导数是cos(θ) ,因此ω1和ω2的差值最后可以写成2πd/λ*(cos(θ)∇θ)的形式。

根据傅里叶变换理论,K点的FFT可以区分的频率分量最小为2π/K,这里的K就是接收天线的个数。这样我们就可以得到可以分辨的最小角度差,也就是角度分辨率。

通常来说,我们取d=λ/2,θ=0 ,(boresight方向,也就是雷达的中心朝向)。这时,角度分辨率公式为∇θ>2/N。从上述公式可以看出,角度分辨率主要依赖于两个因素:1)目标的方位角。在boresight方向分辨率最高。越靠近雷达FOV的边缘,角度分辨率越低。2)天线的个数。角度分辨率与天线个数成正比关系。第一个因素我们无法控制,而提高FMCW雷达角度分辨率的主要手段就是增加天线个数。按照上述公式计算一下,2个接收天线可以达到的角分辨率约57度。以此类推,4,8,16个接收天线可以达到约28度,14度,7度的角度分辨率。

总结一下以上介绍了的解析过程。发射天线在每一帧中都会发出M个Chirp的信号,每个Chirp的采样个数为N。同时,K个接收天线会收到K组返回信号,混频器将它们与发射信号混合后得到中频信号IF。IF信号是三维的数据块KxMxN,对其进行三次FFT操作,就可以解析出目标的距离,速度和角度。最后得到的RAD数据块就是之前在介绍毫米波雷达感知算法时所采用的稠密底层数据。当然,有的算法也会采用神经网络来替代FFT。比如说保留Chirp维度,采用神经网络来提取速度信息。或者保留天线维度,采用神经网络来提取角度信息。

3.4 点云生成

RDA数据依然是稠密的数据,为了得到毫米波雷达最常用的点云数据,还需要进行一步稀疏化的处理。这个稀疏化的操作通常在range和doppler维度的FFT之后,也就是在RD数据上进行。这时因为,除了FFT,角度估计经常会采用高分辨率的算法,比如IAA,MUSIC等。这些算法运算量比较大,因此我们一般先对RD map进行稀疏化,去除无用的噪声数据,然后只在少量的数据上解析角度值,从而降低计算量。

如果把RDA(或者RD)数据块中的每个cell都看作一个点,那么这个数据其实就是一个点云。只不过这种点云是稠密的,我们需要按照某种规则从中选择一个子集,也就是稀疏的点云。在毫米波雷达的数据中,每个点都有一个反映能量的值(RCS值),那么最简单快速的方法就是设定一个固定的能量阈值来进行过滤。

但是,阈值如何选择呢?下图是一个1维点的示例,点的X坐标表示位置,Y坐标表示能量值,绿色和红色的点分别表示目标点和噪声点。我们的目标就是要尽可能的保留目标点,过滤噪声点。在下图左侧,有两个可选的阈值。如果采用较大的阈值1,那么噪声点基本都会被过滤,但是也过滤掉了很多目标点。如果采用较小的阈值2,则会保留更多的目标点,但同时也包含了很多噪声。

CFAR算法的出现就是为了解决这个两难的问题。它是一种基于动态阈值的方法。如下图右侧所示,阈值是根据位置动态变化的。这样的阈值设置可以保证保留更多的目标点,同时也尽可能的过滤噪声点。

CFAR算法就是基于以上思想设计的,下面我们来看看具体的实现方法。这里同样是用一维数据来作为例子。对于输入数据的每个单元(比如下图中绿色的待处理单元),我们首先计算其邻域单元(下图中棕色的单元)能量值的均值。该均值乘以一个比例因子后与当前单元的能量值进行对比。如果当前单元值大,则认为是目标点,反之则认为的噪声点。

在这个过程中,动态阈值是通过邻域单元的均值来设置的,而比例因子则控制着噪声的级别。此外,下图中的黄色的单元被称为保护单元,它们并不参与邻域均值的计算。这是因为,在CFAR的计算过程中,邻域单元代表的是噪声点,所以需要跟当前处理单元进行对比。但是,场景中真实目标具有一定尺寸,所以当前处理单元周围并不一定全是噪声点,还会有一定数量的真实目标点。考虑到这一点,CFAR会设置一个保护区域,这个区域内的点不参与邻域均值(或者说噪声水平)的计算。这个保护范围通常是一个固定值,也可以根据目标类型的先验知识来设定,比如车辆目标设置大一些,行人目标设置小一些。

参考文献

[1] 德州仪器 毫米波雷达传感器基础知识 https://www.ti.com/cn/lit/pdf/zhcy075

[2] 德州仪器 MIMO Radar https://www.ti.com/lit/pdf/swra554

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐