CFAR 恒虚警率目标检测算法详解
一、为什么雷达需要'目标检测算法'?
在毫米波雷达中,我们最终想知道的不是'信号长什么样',而是:
哪里有目标?目标有多少?哪些是噪声?
然而,雷达接收到的信号永远是下面三者的混合:
- 真实目标回波
- 环境杂波(地面、墙面、人体、车辆反射)
- 系统噪声(热噪声、量化噪声等)
在经过 ADC → FFT → 距离谱 / 多普勒谱 后,你会看到大量起伏的谱线。
问题来了:
在一个噪声水平不断变化的环境中,如何'公平、稳定'地判断某个峰值是不是目标?
这正是 CFAR(Constant False Alarm Rate,恒虚警率)算法存在的意义。
二、CFAR 的核心思想
门限不固定,而是根据'周围环境噪声'动态调整。
换句话说:
- 噪声大 → 门限自动抬高
- 噪声小 → 门限自动降低
- 始终保持一个'近似恒定'的虚警概率
这比'固定阈值法'工程上可靠得多。
三、CFAR 的物理意义
1️⃣ 雷达不是在'找最大值',而是在'找异常'
CFAR 的本质不是:
'这个点是不是很大?'
而是:
'这个点是否显著高于它周围的统计背景?'
如果你把雷达距离谱想象成一条'地形起伏的山脉':
- 噪声 = 起伏的地面
- 目标 = 突然冒出的山峰
CFAR 做的事情就是:
先估计地面高度,再判断某个山峰是否'足够突出'。
2️⃣ 为什么必须是'周围噪声'?
因为在雷达系统中:
- 噪声功率随距离变化
- 杂波随场景变化
- AGC、窗口函数都会改变谱形
固定门限 = 工程灾难
CFAR 利用 局部统计,是唯一实用的方法。
四、CFAR 的基本结构(工程视角)
对每一个被检测单元(Cell Under Test, CUT),CFAR 都会定义三类区域:
| Training | Guard | CUT | Guard | Training |
1️⃣ CUT(被检测单元)
- 当前要判断是否为目标的点


