CFAR,全称是Constant False Alarm Rate Detector,恒定虚警概率下的检测器,是雷达目标检测的一种常见的手段。
但是不论名字怎么起,检测器功能都在于判断目标存在的有和无。因此检测器的作用就变成了在含有噪声的情况下确定信号存在还是不存在。在我们不知道目标是否存在的情况下,目标检测就变成了根据两种可能的假设来做出判决,此时这个问题我们称为二元假设检验问题。来复习一下学过的课程,二元假设检验问题。
何为二元假设检验问题?我们做一个简单的数学描述,假设存在一个方差为
由于我们假定噪声的均值为0,如果我将判决门限定为
clear
那么如果标准差变化,假设我们让
如果将标准差改为
如果标准差还为
因此我们可以看到,检测器的性能是随着pdf距离的增加,或者随着
我们把以上检测问题看做为在两种假设
对应于不同的假设,PDF分别用
当
这称为pdf的参数检验。
复习完了原来的知识后,肯定有小伙伴会有疑问了。雷达工作的情况下,大部分时候并没有电平为1的目标信号,那么在我们是不知道目标回波信号的电平大小的情况下,如何确定检测门限呢?
当回波信号只有噪声的时候,门限判决把噪声分为两种情况
当回波信号只有信号的时候,门限判决把信号也分为两种情况
我们就得到了四种情况,如表格所示:
回波信号 | 判决结果 |
---|---|
信号不存在 | 目标不存在 |
信号不存在 | 目标存在(虚警概率) |
信号存在 | 目标不存在(漏检概率) |
信号存在 | 目标存在(检测概率) |
从图上可以看出,蓝色为回波信号不存在时候的概率密度函数,红色为回波信号存在时候的概率密度函数。这样子我们就将表格对应的四种情况如图所示了。
同时我们也引入一个虚警概率的概念,那么虚警概率实际上就是信号是噪声(蓝色部分),但是门限判决为目标的时候,认为是目标(蓝色pdf被黄色门限切割后靠右侧的部分),图中蓝色箭头指向的蓝色区域的面积即为虚警概率。
真实的雷达回波信号往往不知道信号的概率密度函数,大部分回波信号都是噪声,我们并不能向上面所述那样确定一个门限1/2为最佳判决门限,因此从噪声下手,我们可以计算噪声回波信号的统计特性,复习一下高斯分布与标准差关系。
我们看一个高斯分布的标准差,高斯分布的标准差始终和概率密度函数绑定起来,也就是说,随着噪声的统计特性起伏变化,标准差也在起伏变化,那么如果我们把门限定为
基础知识就复习完了,理论上的细节部分自己看书复习,那么下来我们来看工程实现。
对于雷达系统来说,雷达检测器要求要尽可能的简单。实际工作过程中,将信号与阈值比较是很快的一种工程方法,因此这个阈值的计算本身就隐含了检测概率和虚警概率。通过前置知识复习之后,我们认识到,对于雷达系统来说,阈值的选择目的在于保证最大化的检测概率以及虚警概率小于一定的量级。上述理论介绍中,我们都是基于理想假设以及已知方差(功率)的白噪声,实际的应用过程中常常是色噪声并且其功率未知。因此CFAR技术主要就是用于解决这个问题的。
在CFAR中,检测需要一个指定的距离单元,常被成为被,称为检测单元(CUT, cell under test),噪声功率根据临近的距离单元得到。检测的阈值为T,有如下表达式:
式中
以平均单元CFAR检测CA-CFAR举例,CA-CFAR检测应该是雷达系统里面目前最广泛的CFAR检测器,因此我们学习这个东西就先把基础打好,从最基本的CA-CFAR开始。
在一个平均单元CFAR检测中,在CUT单元的前后,噪声采样被提取出来。噪声功率估计采用如下方式计算:
式中N表示X的长度,即为训练单元的数量。X的值按照平方律检波是功率信号的输出。而CFAR检测器一般情况下起始和结尾的训练单元都是一样的,守护单元被放在测试单元的两侧,目的是用于消除信号进入新联大院开始和结尾的多余能量,以1维CFAR检测器举例,训练单元,守护单元,测试单元排列结构如下:
|□| 训练单元 |■| 守护单元 |◎| 检测单元
一维CFAR检测器如图所示
|□□□□□□|■|◎|■|□□□□□□|
根据上述单元平均CFAR检测,假设一个单脉冲数据通过检测器,如果没有脉冲进来,那么阈值因子可以表示为
式中P表虚警率(这里是概率,不是功率,注意区分)。
说了这么多,下来就是上代码部分了,CFAR的学习其中有一篇MATLAB的文档,官方打包好了CFAR检测器。
Constant False Alarm Rate (CFAR) Detectionww2.mathworks.cn文档中理论代码都有,不过CFAR是官方打包好的,你看里面的实现估计学习起来会费劲一些,如果自己动手写一遍的话,上手会快很多,所以我自己写了一个
%--------------------------------------------------------------------------
有些小伙问我工具箱怎么用?这个其实挺简单的
只需要将文件夹+rt放到执行目录,写程序的时候函数前面带个rt.即可。
https://github.com/qwe14789cn/radar_toolsgithub.com最后受限于文章篇幅,我不想在这里长篇大论的跟上课一样,还是希望大家自学,因此有些内容就很快的略过了。目的还是让你觉得雷达学习有趣,兴趣起来了自己花时间看书打好基础即可。
例如前文中提到门限定1/2直觉上是没错,有没有理论证明过程?CFAR有没有 二维形式?除了CA-CFAR有没有其他形式检测器?欢迎各位小伙伴自行探索学习。
今天的内容就到这里了,代码少理论多,有不足之处欢迎指正,转载请注明知乎来源,谢谢~