AURIX TC3xx雷达信号处理CFAR算法详解
CFAR是非常普遍的信号过滤手段,用于提取超过动态阈值的点目标信息。AURIX™ TC3xx单片机的雷达信号处理单元SPU集成了该硬件功能,并且提供两种典型的CFAR算法。
本文引用地址:http://www.amcfsurvey.com/article/202309/450981.htm英飞凌技术专家 钱伟喆
背景介绍
当雷达回波信号功率幅值超过某个阈值时,能被检测到,该阈值不可能是固定的,必须根据周围环境、目标分布反射强弱,杂波噪声干扰等动态变化,而CFAR(constant false alarm rate)就是用于计算动态阈值的典型手段。CFAR直接影响检测概率(probability of detection)【1】,同样的收发机信噪比,较大的CFAR能获得较大的检测概率。
算法实现
由于CFAR使用非常普遍,AURIX™ TC3xx单片机的雷达信号处理单元SPU集成了该硬件功能,并且提供两种典型的CFAR算法,分别是CA-CFAR (cell-averaging CFAR)和GOS-CFAR (generalized order statistic CFAR)。图1是典型CA-CFAR算法结构,摘自Matlab参考文献【1】。SPU还集成了两种算法的子分类,提供更多的检测方法。两种算法各有优缺点,GOS-CFAR在多目标场景性能较优,且其适应性强,参数的微小调整对杂波噪声的滤除影响较小【2】,【3】。
图1. 典型的CA-CFAR(摘自【1】)
为防止带相位信息的各天线信号互相干涉,通常使用不带相位的NCI(non-coherent integer)功率数据进行CFAR处理,这样能准确表征回波信号在各天线上的功率加总。得到的CFAR结果以位(bit)为基本单元,每个位对应NCI矩阵中的一个数据,该数据可能是32位或16位存储格式。NCI矩阵的维度是距离点数乘以多普勒点数。CFAR结果中置一的位,代表该对应NCI的数据被检测出;置零的位(图2中CFAR bit mask未置一的位),代表该对应NCI的数据未被检测出。
CFAR检测出的结果代表该数据点的功率幅值超过动态阈值,极大可能是来自某目标的反射点。该数据点在每个天线上的信息需要保留,用于下一步的到达角运算。而没超过动态阈值的数据点可能是噪声杂波等,可被删除。CFAR结果可以配合SPU内的Bin rejection单元用于过滤距离-多普勒FFT结果,删除不需要的数据点。图2形象地展示了如何用CFAR 结果过滤距离-多普勒FFT数据。
图2. CFAR结果对距离-多普勒FFT过滤示意图
SPU内的Bin rejection单元可以方便的实现滤波功能。Bin rejection单元可以设定多种灵活的判断条件,比如跟设定的阈值比较,或者设定需要保留的数据向量维度,或者配合CFAR单元设定需要保留的bit mask等等。不满足条件的数据单元可以被清零或删除。
将CFAR结果依次配置到Bin rejection的掩码寄存器中,该寄存器是32位,有64组,总共对应2048(=32x64)个数据。但距离-多普勒FFT数据维度往往较大,而且还要考虑天线维度,所以需要多次配置掩码寄存器,才能过滤全部三维数据。
使用SPU一维CFAR实现二维CFAR
SPU中CFAR硬件实现是一维的,可以沿距离维度,或者多普勒维度,而实际工程应用中往往需要二维CFAR。理论上的二维CFAR实现,是通过被测点与周围一圈点合成计算出的阈值进行比较,计算量较大,尤其使用GOS-CFAR时,因为需要进行排序的运算量是O(n^2),而一维是O(n)。文献【2】中提出一种分别由距离和多普勒维度CFAR合成的二维CFAR,这种方法有效降低了工程计算量,保持实时性的同时,也能兼顾在噪声环境下的性能。下面将详细介绍如何使用SPU的一维CFAR实现二维CFAR并进行检测。
图3. 二维CFAR、点目标检测和到达角计算流程,以及仿真结果
图3的第一行流程,提供了二维CFAR、点目标检测和到达角计算流程,其中淡蓝色显示的步骤使用SPU实现,而绿色则代表CPU实现的步骤。图3的第二行给出了每个步骤的仿真结果,能直观表现二维CFAR的计算方法。图中前两步是典型的毫米波雷达信号预处理步骤,只是在第一步同时计算了距离维的NCI及GOS-CFAR,等第二步获得多普勒维的CFAR后,就能合成二维结果。
需要注意的是,由于CFAR的存储方式是以一个位元(bit)代表一个数据点,而第二步完成的多普勒结果是距离结果的转置,所以第三步中要实现的位与(bit AND)操作并不简单,需要对两个互为转置的CFAR结果进行位寻址。Tricore™ CPU提供了位操作指令EXTR.U,能够方便地将某个32位字中的某个位元提取出来进行处理【4】。在某些频繁调用,或时间裕量较短的场景,建议使用汇编代码,减少耗时较长的存储器访问次数,使能CPU 指令缓存,并配合编译器的时间优化选项,来降低代码执行时间。举个例子,使用CPU计算512*128维度的二维CFAR,并进行检测提取出128个点目标,同时将提取出的目标数据搬运到连续内存,方便实施第四步骤的角度傅里叶运算,整个图3中第三步骤耗时大约是1ms ,CPU运行主频是300MHz。
总结
CFAR是非常普遍的信号过滤手段,用于提取超过动态阈值的点目标信息。AURIX ™ TC3xx单片机的雷达信号处理单元SPU集成了该硬件功能,并且提供两种典型的CFAR算法。配合SPU中的bin rejection硬件功能,CFAR结果用于过滤距离-多普勒FFT,将可能来自目标的反射点提取出来,进行下一步到达角计算。另外,AURIX™ TC3xx CPU能在较短时间内,将两次SPU的一维CFAR结果,进行位与操作,实现二维CFAR过滤功能,提取目标。
参考文献
【1】 RADAR SYSTEMS ANALYSIS AND DESIGN USING MATLAB’, Bassem R. Mahafza.
【2】Fast Two-Dimensional CFAR Procedure’, Matthias Kronauge, Hermann Rohling, IEEE Trans. on Aerospace and electronic systems Vol. 49, No. 3 July 2013.
【3】Ordered Statistic CFAR Technique – an Overview’, Hermann Rohling, Hamburg University of Technology.
【4】TC1.6_DSP_Optimization_Guide_part1_v1.2’, Infineon Technologies AG.
评论