主要内容

CFAR (Constant虚警率)检测

这个例子介绍了恒虚警率(CFAR)检测,并展示了如何使用相控阵系统工具箱™中的CFARDetector和CFARDetector2D来执行单元平均CFAR检测。

简介

雷达系统执行的一项重要任务是目标探测。检测本身是相当直接的。它将信号与阈值进行比较。因此,检测的真正工作是提出一个适当的阈值。一般来说,阈值是检测概率和虚警概率的函数。

在许多相控阵系统中,由于与误报相关的成本,需要有一个检测阈值,不仅使检测概率最大化,而且使误报概率保持在预先设定的水平以下。

关于如何确定检测阈值有大量的文献。读者可能会感兴趣高斯白噪声中的信号检测而且多样本信号检测一些众所周知的结果的例子。然而,所有这些经典的结果都是基于理论概率的,并且受限于方差(功率)已知的高斯白噪声。在实际应用中,噪声往往是有色的,其功率是未知的。

CFAR技术解决了这些问题。在CFAR中,当需要对给定的单元(通常称为被测单元(CUT))进行检测时,噪声功率从相邻的单元估计出来。那么检测阈值, T ,由

T α P n

在哪里 P n 噪声功率估计和 α 是一个称为阈值因子的比例因子。

由式可知,阈值与数据相适应。可以看出,在适当的阈值因子下, α ,由此产生的虚警概率可以保持在一个常数,因此称为CFAR。

小区平均CFAR检测

小区平均CFAR检测器可能是应用最广泛的CFAR检测器。它也被用作其他CFAR技术的基线比较。在一个单元平均CFAR检测器中,噪声样本从CUT周围的前导和滞后单元(称为训练单元)中提取。噪声估计可以计算为[1]

P n 1 N 1 N x

在哪里 N 是训练细胞的数量和 x 是每个训练单元中的样本。如果 x 正好是平方定律探测器的输出 P n 表示估计的噪声功率。一般情况下,前导训练细胞和滞后训练细胞的数量是相同的。保护细胞被放置在CUT的附近,既超前又滞后。这些保护单元的目的是避免信号组件泄漏到训练单元,这可能会对噪声估计产生不利影响。

下图显示了1-D情况下这些单元格之间的关系。

对于上述小区平均CFAR检测器,假设传入检测器的数据来自单个脉冲,即不涉及脉冲积分,则阈值因子可写成[1]

α N P f 一个 - 1 / N - 1

在哪里 P f 一个 期望的虚警率。

基于自动阈值因子的CFAR检测

在本例的其余部分中,我们将展示如何使用相控阵系统工具箱执行单元平均CFAR检测。为了简单且不丧失一般性,我们仍然假设噪声是白色高斯。这使得CFAR可以与经典的检测理论进行比较。

我们可以使用以下命令实例化CFAR检测器:

cfar =分阶段。CFARDetector (“NumTrainingCells”, 20岁,“NumGuardCells”2);

在这个检测器中,我们总共使用了20个训练细胞和2个保护细胞。这意味着在CUT的每一边都有10个训练细胞和1个警卫细胞。如前所述,如果我们假设信号来自一个没有脉冲积分的平方定律检测器,可以根据训练单元数和期望的虚警概率来计算阈值。假设期望的虚警率为0.001,我们可以将CFAR检测器配置如下,以便进行此计算。

exp_pfa = 1 e - 3;cfar。ThresholdFactor =“汽车”;cfar。ProbabilityFalseAlarm = exp_pfa;

配置的CFAR检测器如下所示。

cfar
cfar =分阶段。CFARDetector: Method: 'CA' NumGuardCells: 2 NumTrainingCells: 20 ThresholdFactor: 'Auto' ProbabilityFalseAlarm: 1.0000e-03 OutputFormat: 'CUT result' ThresholdOutputPort: false NoisePowerOutputPort: false

现在我们模拟输入数据。由于重点是要证明CFAR检测器可以将虚警率保持在一定的值下,所以我们只模拟这些单元中的噪声样本。下面是设置:

  • 数据序列有23个样本长,CUT为单元12。这样在CUT的每一侧都留下10个训练细胞和1个警卫细胞。

  • 虚警率是用10万次蒙特卡洛试验计算出来的。

rs = RandStream (“mt19937ar”“种子”, 2010);npower = db2pow (-10);假设信噪比为10dBNtrials = 1 e5;ncell = 23;CUTIdx = 12;%噪声样本经过平方定律检测器rsamp = randn (rs, ncell Ntrials) + 1我* randn (rs, ncell Ntrials);x = abs (sqrt (- / 2) * rsamp) ^ 2;

要进行检测,需要将数据通过检测器。在本例中,只有一个CUT,因此输出是一个逻辑向量,包含所有试验的检测结果。如果结果为真,则意味着在相应的试验中存在一个目标。在我们的例子中,所有的检测都是假警报,因为我们只传入了噪声。然后可以根据虚警次数和试验次数计算出产生的虚警率。

x_detected = cfar (x, CUTIdx);act_pfa = (x_detected) / Ntrials求和
act_pfa = 9.4000 e-04

结果表明,产生的虚警概率小于0.001,正如我们所指定的。

使用自定义阈值因子的CFAR检测

正如本例前面部分所解释的,只有少数几种情况下CFAR检测器可以自动计算出适当的阈值因子。例如,使用前面的场景,如果我们在数据进入检测器之前使用10个脉冲的非相干积分,自动阈值就不能再提供所需的虚警率。

npower = db2pow (-10);假设信噪比为10dBxn = 0;m = 1:10 rsamp = randn(rs,Ncells,Ntrials)+1i*randn(rs,Ncells,Ntrials);Xn = Xn + abs(√(npower/2)*rsamp).^2;%不相干的集成结束x_detected = cfar (xn CUTIdx);act_pfa = (x_detected) / Ntrials求和
act_pfa = 0

有人可能会感到困惑,为什么我们认为0的虚警率比0.001的虚警率更糟糕。毕竟,虚警率为0不是一件好事吗?这个问题的答案在于,当虚警的概率降低时,被发现的概率也会降低。此时,由于真实虚警率远低于允许值,说明检测门限设置过高。以较低的成本和我们期望的虚警概率可以实现相同的检测概率;例如,用较低的发射机功率。

在大多数情况下,需要根据具体的环境和系统配置来估计阈值因子。我们可以配置CFAR检测器以使用自定义阈值因子,如下所示。

释放(cfar);cfar。ThresholdFactor =“自定义”

继续使用脉冲集成示例并使用经验数据,我们发现可以使用2.35的自定义阈值因子来实现所需的虚警率。使用这个阈值,我们可以看到产生的虚警率与期望值匹配。

cfar。CustomThresholdFactor = 2.35;x_detected = cfar (xn CUTIdx);act_pfa = (x_detected) / Ntrials求和
act_pfa = 9.6000 e-04

CFAR检测阈值

当单元中的输入信号水平超过阈值水平时,就会发生CFAR检测。每个单元的阈值水平取决于阈值因子和训练单元的噪声功率。为了保持恒定的虚警率,检测阈值将随训练单元中的噪声功率成比例增大或减小。配置CFAR检测器输出每次检测使用的门限ThresholdOutputPort财产。使用一个自动阈值因子和200个训练单元。

释放(cfar);cfar。ThresholdOutputPort = true; cfar.ThresholdFactor =“汽车”;cfar。NumTrainingCells = 200;

接下来,创建一个增加噪声功率的平方定律输入信号。

rs = RandStream (“mt19937ar”“种子”, 2010);Npoints = 1 e4;rsamp = randn (rs Npoints 1) + 1我* randn (rs Npoints 1);斜坡= linspace(1、10、Npoints) ';xRamp = abs (sqrt (npower * ramp. / 2)。* rsamp) ^ 2;

计算信号中所有单元的检测和阈值。

[x_detected, th] = cfar (xRamp, 1:长度(xRamp));

接下来,将CFAR阈值与输入信号进行比较。

阴谋(1:长度(xRamp) xRamp, 1:长度(xRamp),...找到(x_detected) xRamp (x_detected),“o”)传说(“信号”“阈值”“检测”“位置”“西北”)包含(“时间指数”) ylabel (“水平”

图中包含一个axes对象。坐标轴对象包含3个line类型的对象。这些对象表示信号、阈值和检测。

这里,阈值随着信号噪声功率的增大而增大,以保持恒定的虚警率。当信号水平超过阈值时,就会进行检测。

CFAR与经典内曼-皮尔逊检测器的比较

在本节中,我们将CFAR探测器的性能与使用内曼-皮尔逊原理的经典检测理论进行比较。回到第一个例子,假设真实噪声功率已知,理论阈值可计算为

T_ideal = - * db2pow (npwgnthresh (exp_pfa));

该理论阈值可以计算出该经典内曼-皮尔逊检测器的虚警率。

act_Pfa_np =总和(x (CUTIdx:) > T_ideal) / Ntrials
act_Pfa_np = 9.5000 e-04

因为我们知道噪声功率,经典的检测理论也产生了期望的虚警率。CFAR探测器实现的虚警率相似。

释放(cfar);cfar。ThresholdOutputPort = false; cfar.NumTrainingCells = 20; x_detected = cfar(x,CUTIdx); act_pfa = sum(x_detected)/Ntrials
act_pfa = 9.4000 e-04

接下来,假设两个探测器都部署到现场,并且噪声功率比预期的多1分贝。在这种情况下,如果我们使用理论阈值,虚警的结果概率是我们期望的4倍。

npower = db2pow (9);%假设信噪比为9dBrsamp = randn (rs, ncell Ntrials) + 1我* randn (rs, ncell Ntrials);x = abs (sqrt (- / 2) * rsamp) ^ 2;act_Pfa_np =总和(x (CUTIdx:) > T_ideal) / Ntrials
act_Pfa_np = 0.0041

相反,CFAR探测器的性能不受影响。

x_detected = cfar (x, CUTIdx);act_pfa = (x_detected) / Ntrials求和
act_pfa = 0.0011

因此,CFAR探测器对噪声功率不确定性具有较强的鲁棒性,更适合于现场应用。

最后,在有彩色噪声的情况下使用CFAR检测。我们首先对数据应用经典检测阈值。

npower = db2pow (-10);fcoeff = maxflat (10,“符号”, 0.2);x = abs (sqrt(英国能源再生公司/ 2)*过滤器(fcoeff 1 rsamp)) ^ 2;%有色噪声act_Pfa_np =总和(x (CUTIdx:) > T_ideal) / Ntrials
act_Pfa_np = 0

但由此产生的虚警率无法满足要求。然而,使用带有自定义阈值因子的CFAR检测器,我们可以获得所需的虚警率。

释放(cfar);cfar。ThresholdFactor =“自定义”;cfar。CustomThresholdFactor = 12.85;x_detected = cfar (x, CUTIdx);act_pfa = (x_detected) / Ntrials求和
act_pfa = 0.0010

距离多普勒图像CFAR检测

在前面的章节中,噪声估计是通过在一维中领先和落后CUT的训练单元计算出来的。我们还可以对图像进行CFAR检测。细胞与图像中的像素相对应,保护细胞和训练细胞被放置在CUT周围的带中。检测阈值是从CUT周围矩形训练带中的细胞中计算出来的。

上图中,保护带大小为[2 2],训练带大小为[4 3]。大小指数分别指在行和列尺寸中CUT每边的单元格数量。保护带的大小也可以定义为2,因为行和列的大小是相同的。

接下来,创建一个二维CFAR检测器。使用1e-5的虚警概率,并指定保护带大小为5个单元,训练带大小为10个单元。

cfar2D =分阶段。CFARDetector2D (“GuardBandSize”5,“TrainingBandSize”10...“ProbabilityFalseAlarm”1 e-5);

接下来,加载并绘制距离多普勒图像。该图像包括来自两个静止目标和一个远离雷达的目标的返回。

(职责、rngGrid dopGrid] = helperRangeDoppler;

图中包含一个axes对象。标题为距离多普勒地图的轴对象包含一个类型为图像的对象。

使用CFAR搜索目标的距离-多普勒空间,并绘制探测图。搜索范围从-10到10千赫和从1000到4000米。首先,为该区域定义要测试的单元格。

[~,rangeIndx] = min(abs(rngGrid-[1000 4000]));[~,dopplerIndx] = min(abs(dopGrid-[-1e4 1e4]));[columnInds, rowInds] = meshgrid (dopplerIndx (1): dopplerIndx (2),...rangeIndx (1): rangeIndx (2));CUTIdx = [rowInds(:) columnInds(:)]';

为被测试的每个单元计算检测结果。在本例中,搜索区域中的每个像素都是一个单元格。绘制距离多普勒图像的检测结果图。

检测= cfar2D(职责、CUTIdx);helperDetectionsMap(职责、rngGrid dopGrid、rangeIndx dopplerIndx,检测)

图中包含一个axes对象。标题为“距离多普勒CFAR检测”的轴对象包含一个类型为图像的对象。

检测到这三个对象。一个随时间变化的距离多普勒图像的数据立方也可以作为输入信号提供给cfar2D,检测将在一个步骤中计算。

总结

在本例中,我们介绍了CFAR检测器背后的基本概念。特别地,我们探讨了如何使用相控阵系统工具箱对信号和距离多普勒图像执行单元平均CFAR检测。通过对单元平均CFAR检测器与配备理论计算阈值检测器的性能比较,可以清楚地看出CFAR检测器更适合于实际现场应用。

参考

[1]马克•理查兹雷达信号处理基础“,麦格劳·希尔,2005年

Baidu
map