主要内容

CFAR检测

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

介绍

雷达系统执行的一项重要任务是目标探测。探测本身相当简单。它将信号与阈值进行比较。因此,实际的检测工作是提出一个适当的阈值。一般情况下,阈值是检测概率和虚警概率的函数。

在许多相控阵系统中,由于与误检测相关的成本,希望有一个检测阈值,不仅使检测概率最大化,而且使误报警概率低于预设水平。

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

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

T α P n

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

从方程中可以清楚地看出,阈值与数据是相适应的。可以看出,在适当的阈值因子下, α ,由此产生的误报概率可以保持在一个常数,因此命名为CFAR。

细胞平均CFAR检测

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

P n 1 N 1 N x

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

下图显示了在一维情况下这些单元格之间的关系。

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

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

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

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

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

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

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

在该检测器中,我们总共使用了20个训练单元和2个保卫单元。这意味着在切割区两侧各有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单元格。在切割区两侧各留下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(sqrt(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 (“水平”

图中包含一个轴对象。轴对象包含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 dB。在这种情况下,如果我们使用理论阈值,产生的误报概率是我们期望的四倍多。

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;

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

使用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(:) columnds (:)]';

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

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

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

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

总结

在本例中,我们介绍了CFAR检测器背后的基本概念。特别是,我们探索了如何使用相控阵系统工具箱对信号和距离多普勒图像进行单元平均CFAR检测。单元平均CFAR检测器与理论计算阈值检测器的性能对比表明,CFAR检测器更适合实际现场应用。

参考

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