杂波及其消除是雷达信号处理中的一个很重要的话题,不过对于车载毫米波雷达,考虑到其应用场景和作用范围,关于杂波我们需要考虑的东西其实并没有比如预警雷达、机载SAR雷达等那么多。特别是车载4D雷达的出现,杂波这个概念已经越来越模糊了:对于雷达能检测到的东西我们都感兴趣,都成为了我们的探测目标,似乎没有传统意义上的杂波这个概念了。
不过在一些应用场合,静止“目标”(这里说目标其实是矛盾的,因为对于目标的定义就是我们所感兴趣的东西,那感兴趣的东西咋还做去除?这也是本博文的题目后面加一个静态杂波的原因,可是静态杂波这个话题又太大了..)是需要我们做去除的。本博文谈谈毫米波雷达信号处理中的静止“目标”滤除的问题。
Blog
20230523 博文第一次写作
说明
目录
一、话题综述与概念解释
二、雷达静止条件下的静止“目标”滤除方法
三、雷达运动条件下的静止“目标”滤除方法
四、总结
五、参考资料
六、code&data
1、关于杂波
先给它定个性:杂波是一个相对的(主观的)概念,它可以随着应用场景和需求而发生变化。对于雷达所能检测到的东西,这里头有一些是我们感兴趣的(对于车载毫米波雷达这个应用场景来说,它们可以是行人、车辆等道路使用者),有些则是不想其出现的(比如车道外的树木等),判断某个“东西”的回波是杂波与否,应该放到具体应用场景中来谈。比如对于地面的回波,我们在做前向或者角雷达时,它们对于雷达而言是杂波,可是如果我们想基于地面回波来做路面识别时(可以参考我之前的一篇博文:毫米波雷达在路况识别中的应用_墨@#≯的博客-CSDN博客),地面本身就成了我所感兴趣的目标了;再比如道路护栏或者道路边上的植被所产生的回波,传统的毫米波雷达并不需要这些信息,这些东西对于检测而言就是杂波,而对于4D雷达它们却成了很重要的需要被检测出来的道路特征信息。
于是我尝试给杂波下一个定义:对于我们使用雷达做检测而言,那些我们不感兴趣的强反射体所产生的回波都可以归为杂波。这里加一个强字是为了体现两点:A、它们的回波能量足够强大,以至于我们可以将之检测出来。B、或者,它们的回波能量至少强到会影响我们对感兴趣的微弱目标的检测。如果不满足这两点之一,那其实归到噪声中也无妨…。
放在大的雷达信号处理领域,杂波及其抑制是一个蛮大的话题,涉及到杂波建模、杂波抑制的评价、杂波抑制的方法:各种滤波手段比如MTI,MTD等。本文不做讨论。
2、关于静止“目标”
本文所讨论的静止“目标”特指对地静止的物体。
传统的车载毫米波雷达不具备测高能力(俯仰向的测角能力),无法判断被检测到的物体的离地高度,如果此时把对地静止的物体都检测出来,是没法判断该物体是在高空(比如天桥)还是在地面的,也无法判断汽车是否可以轧过(比如井盖)。如果都判断为障碍物,那么雷达的检测信息可能会使得汽车的辅助驾驶系统频繁地减速刹车而严重影响驾驶体验(或者说毫米波雷达所提供的信息毫无意义),于是业内普遍都是使用静态杂波滤除的方法将这些对地静止的目标都滤除掉。当然,这样做是有风险的(虽然毫米波雷达提供的信息在决策系统中的置信度不是很高)。4D雷达因为具备俯仰向的测角能力,且分辨率高,它的出现很好地解决了上面的矛盾,但是本文暂时不讨论4D雷达。
此外,对于毫米波雷达的室内应用(比如跌倒检测等),人是在室内走动的,除此之外静止的东西都不是雷达感兴趣的,此时也是有必要做静止目标滤除的。
以上论述限定了静止目标的范围,并说明了要做静止目标滤除这件事的原因由来。但是光说我们不感兴趣就要去除它,这个理由还是不够充分的:如果它对于我们检测感兴趣的目标并没有影响,我们也没有必要多加这么一个步骤吧。
这里简单探讨一下我们要做这件事(滤除静止目标)的更底层的原因:
对于雷达静止的情况,此时二维压缩后对地静止的目标会被压缩到零多普勒的位置(具体看后文第二章),如果目标的速度很小(接近零多普勒)或者很大而恰巧耦合到零多普勒附近(也即速度模糊了,关于速度模糊可以参考我之前的博文:车载毫米波雷达信号处理中的模糊问题_墨@#≯的博客-CSDN博客),此时我们去做CFAR时,零多普勒位置上的静止目标是可能会影响我们对于噪底的估计而影响检测的。此外,如果我们不对零多普勒的数据做处理,CFAR会将这些静止目标都检测出来,如果超过CFAR的阈值个数(受限于硬件内存),会导致我们感兴趣的动目标检测不出来。对雷达静止情况下的静止目标的去除我们一般在CFAR检测之前进行,具体的处理见第二章。
对于雷达运动的情况,此时对地静止的目标都有了速度,这些对地静止的目标会因与雷达法线的夹角不同而具备不同的速度,二维压缩之后,这些目标会散布在距离-多普勒图的不同位置上。雷达运动情况下的对地静止目标的处理我们一般在得到点云信息之后做,具体的处理见第三章。这种情况下要进行处理的原因本节第二段话可以做出解释。
3、关于静止“目标”的滤除
如前文所述,需要注意的是,雷达直接测量的是和目标之间的相对的径向的速度!对于车载毫米波雷达的实际应用场合,因为车在使用时其绝大部分时间下是运动的状态,装在车上的雷达自然也是运动的,所以此时对地静止的目标相对雷达而言是有速度的!
本博文讨论的话题是毫米波雷达信号处理中如何把对地静止的“目标”进行滤除。于是需要分两种情况讨论:A、雷达静止。B、雷达运动。
关于(车载)毫米波雷达的信号处理相关的知识这里不做重复了,可以参考我之前的博文:车载与体征/手势检测 毫米波雷达信号处理流程_墨@#≯的博客-CSDN博客,当雷达静止时,对地静止的目标必然也相对雷达静止,此时对ADC数据进行二维压缩之后,这些静止目标必然都藏在了零多普勒里面:
图2.1 2D-FFT后的结果
为方便理解,上面两图是同一份数据使用不同函数画出来的两种视角。图中黄色框内的亮线对应零多普勒的位置。雷达视场范围内的所有静止目标都被压缩到了该多普勒维度中。图中红色框为我们感兴趣的动目标所在的位置(实际上其幅值相对于噪底来说还是很大的,只是在静止目标这么大的能量幅值下显得很小而已)。
【数据说明】 本文后面第六章的链接将提供一份基于Ti级联板解析好的ADC数据(读者其实也可以从我之前的博文中拿那些数据以及数据解析的代码)、以及静止目标滤除的处理代码。数据采集的场景是:级联板静止,在实验区内,人在板子前面来回跑动,采用12T16R的TDM发射模式采集数据,后面链接提供的数据为采集的数据其中一帧下的一个通道的结果。数据的距离维度为256个点,速度维度为64个点。
雷达静止条件下的静止目标滤除,是在CFAR处理之前进行的,这里介绍三种我了解的方法,实现起来都很简单,这里直接贴结果。
1、最直接的:二维压缩之后把零多普勒维度置0
图2.2 方法一处理前后结果对比
2、距离维度压缩后减均值再进行速度维压缩
图2.3 方法二处理前后结果对比
3、对消(距离压缩后,相邻多普勒维度的数据相减,一种MTI方法)
图2.4 方法三处理前后结果对比
4、小结
图中标出了动目标所在位置处(幅值最大处)的能量,以及在图上随机选取的一点的能量(用以评估噪底),因为对消法丢失了一列,故方法三在标点时其横坐标要小一列。
简单讨论一下这几种方法:
a\ 前两种方法达到的效果是一模一样的。(不过在实际的应用中我们还是用第二种方法比较多?比如加特兰SOC芯片中固化内置的就是第二种方法。单从信号处理的便利性来说,第一种方法是最简单的,第二种方法还需要用到for循环和各类运算,但是为啥第二种方法用得多,可能有硬件实现上的考量?),方法二并没有增加或降低SNR(相较于方法一)。
b\ 对消的方法会改变幅值,在一些区域里甚至会增加噪底。整体上来看,至少在车载毫米波雷达的领域,这种方法不是很推荐。
如前所述,雷达运动时,因为雷达测量的是与目标之间相对的径向的速度,此时对地静止的物体会因为与雷达法向有不同的夹角而有不同的速度,考虑最简单的情况,如下图所示:
图3.1 雷达运动时与静止目标相对运动的示意图
假设车以V0的速度匀速向前运动,安装在车正前方的雷达的速度自然也是V0,在某一时刻,对地静止的物体与雷达法线之间的夹角为θ,不难理解的是:此时雷达与目标之间的相对速度为V1 = V0*cos(θ),从雷达的视角来看,该目标以V1的速度靠近雷达。【说这种情况是最简单的情况,介绍一下更复杂的:比如雷达不是安装在车的正前方的(例如安装在车四角的角雷达),再比如车在转弯时,此时要做的一些转换会更复杂】
对于路面上众多的对地静止的物体,反映到距离-多普勒图上,就不会像图2.1那样都藏在了零多普勒那一列,而是会在这幅图中散布开来。此时我们去做处理时是在得到点云信息之后做的:先把这些目标都检测出来,然后想办法找到对地静止的目标并将之去除。
这部分的说明我手上没有实际的ADC数据可供分析,但是从我参与的一个项目的实践来看,本章提出的方法是可行的,方法其实也很简单,几句话可以说清楚(还是考虑前述最简单的情况):知道车速V0和目标的角度θ后,我们可以得到雷达在该目标方向的速度分量:V1 = V0*cos(θ),此外我们还能知道雷达测量得到的该目标的速度Vmeasure,此时我们可以求得V1和V_measure之间的差值Vd,理论上来说如果目标是静止的,那么Vmeasure是等于V1的,也即Vd = 0,但是考虑到实际可能存在的一些误差,我们可以设定一个阈值Vthrehold,如果Vd > Vthrehold那么认为该目标是运动目标,如果Vd < Vthrehold,认为该目标对地静止。对所有检测到的目标构建for循环进行判断,并删除被判断为对地静止的目标。
该方法实践的效果取决于以下几个主要因素:1、目标角度测量的准确度。2、目标速度测量的准确度(特别地,不能有速度模糊的情况发生,关于速度模糊的讨论可以参考我上面给出的模糊问题的链接)。3、车速的获取,车速信息可以从车的OBD接口中拿到(将之通过CAN口传送到雷达中)。4、Vthrehold的设置(当然这与前面几个参数的测量准确度有关,理论上来说接近于0时最好)。
核心的原理如上,更复杂的情况这里不做讨论。
本博文写作最开始的想法是要捋清楚静态杂波的问题,但是该话题有点过大了,后面还是将之局限于(车载)毫米波雷达的静止“目标”滤除问题上。本博文的内容其实比较简单,本文对杂波、静止目标的概念进行了描述,探讨了雷达静止和运动两种情况下静止目标去除的方法,其中,前者用实测数据进行了处理和说明,后者给出了解决的方法和流程。可能还有更多有意思的方法,后面如果接触到我会做补充。
雷达信号处理中的静止目标(静态杂波)滤除问题博文相对应的代码和数据资源-CSDN文库