雷达信号处理:CFAR 恒虚警检测原理与 MATLAB 实战
在雷达信号处理中,从噪声和杂波背景里准确提取目标回波是一项核心挑战。恒虚警率(Constant False Alarm Rate, CFAR)技术正是为了解决这个问题而生的自适应阈值检测方法。它的核心逻辑很简单:无论背景噪声或杂波的功率如何波动,都要把虚警概率 $P_{fa}$ 控制在一个预先设定的常数水平。
基本原理与流程
CFAR 算法通过实时估计待检测单元(Cell Under Test, CUT)周围的背景功率,结合期望的虚警率自适应地确定检测阈值 $T$。
滑动窗口与单元划分
在实际操作中,我们通常会在距离 - 多普勒图或距离向数据上设定一个固定大小的滑动窗口。窗口内的单元被划分为三个关键部分:
- 待检测单元(CUT):位于窗口中心,是我们需要判断是否包含目标的单元。
- 保护单元(Guard Cells):紧邻 CUT 两侧,数量记为 $G$。它们的作用是防止目标能量泄露(旁瓣效应)污染噪声估计,因此不参与噪声功率计算。
- 参考/训练单元(Training Cells):位于保护单元外侧,数量记为 $N$。这些单元用于估计背景噪声或杂波的平均功率。
门限计算与判决
得到背景功率估计值 $\hat{\sigma}^2$ 后,我们需要计算检测阈值 $T$。公式如下:
$$ T = \alpha \cdot \hat{\sigma}^2 $$
其中,$\alpha$ 是比例因子(门限系数),它是根据期望的虚警率 $P_{fa}$ 和噪声统计分布(如瑞利分布、韦伯分布等,工程上常简化为指数分布或高斯分布)推导出来的。
最后进行判决:
- 若 $P_{\text{CUT}} \le T$,判断不存在目标。
- 若 $P_{\text{CUT}} > T$,判断存在目标。
常见 CFAR 算法分类
不同的杂波环境需要不同的参考单元功率计算方式。以下是几种主流算法的对比:
| 算法类型 | 噪声估计方式 | 适用场景 | 关键特点 |
|---|---|---|---|
| CA-CFAR (Cell Averaging) | 对所有参考单元的功率进行算术平均 | 背景噪声/杂波均匀、同性 | 性能最优良的基准算法,但在多目标或杂波边界处表现不佳 |
| GO-CFAR (Greatest Of) | 分别计算左右侧平均功率,取较大值 | 杂波功率突变(如杂波边界) | 能有效抑制杂波边界处的虚警 |
| SO-CFAR (Smallest Of) | 分别计算左右侧平均功率,取较小值 | 多目标环境 | 避免强目标泄露到训练单元抬高门限,双目标下优于 CA-CFAR |
| OS-CFAR (Order Statistic) | 对参考单元功率排序,选取第 $k$ 个值 | 多目标、非均匀杂波 | 鲁棒性强,可有效去除训练单元中的干扰目标 |
MATLAB 实际用例:CA-CFAR 实现
理论讲完了,咱们直接看代码。下面是一个基于 MATLAB 的单元平均恒虚警率(CA-CFAR)算法的一维实现,用于雷达距离向数据检测。这段代码模拟了典型的雷达接收机输出,并展示了如何动态调整阈值。

