主要内容

恒虚警率检测

本示例介绍了恒定虚警率(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 = 1e-3;cfar。ThresholdFactor =“汽车”;cfar。ProbabilityFalseAlarm = exp_pfa;

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

cfar
Cfar =分阶段。带有属性的CFARDetector: Method: 'CA' NumGuardCells: 2 NumTrainingCells: 20 ThresholdFactor: 'Auto' ProbabilityFalseAlarm: 1.0000 -03 OutputFormat: 'CUT result' ThresholdOutputPort: false NoisePowerOutputPort: false

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

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

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

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

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

x_detected = cfar(x,CUTIdx);act_pfa = sum(x_detected)/Ntrials
Act_pfa = 9.4000e-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 = sum(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 = sum(x_detected)/Ntrials
Act_pfa = 9.6000e-04

CFAR检测门限

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

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

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

rs = RandStream(“mt19937ar”“种子”, 2010);Npoints = 1e4;rsamp = randn(rs,Npoints,1)+1i*randn(rs,Npoints,1);ramp = linspace(1,10,Npoints)';xRamp = abs(根号(npower*ramp./2).*rsamp).^2;

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

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

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

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

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

在这里,阈值随着信号噪声功率的增加而增加,以保持恒定的虚警率。当信号电平超过阈值时发生检测。

CFAR与经典Neyman-Pearson检测器的比较

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

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

这种经典的内曼-皮尔逊检测器的虚警率可以用这个理论阈值来计算。

act_Pfa_np = sum(x(CUTIdx,:)>T_ideal)/Ntrials
act_Pfa_np = 9.5000e-04

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

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

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

Npower = db2pow(-9);假设信噪比为9dBrsamp = randn(rs,Ncells,Ntrials)+1i*randn(rs,Ncells,Ntrials);X = abs(根号(npower/2)*rsamp).^2;act_Pfa_np = sum(x(CUTIdx,:)>T_ideal)/Ntrials
act_Pfa_np = 0.0041

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

x_detected = cfar(x,CUTIdx);act_pfa = sum(x_detected)/Ntrials
Act_pfa = 0.0011

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

最后,在存在彩色噪声时使用CFAR检测。我们首先对数据应用经典检测阈值。

Npower = db2pow(-10);Fcoeff = maxflat(10,“符号”, 0.2);X = abs(根号(npower/2)*filter(fcoeff,1,rsamp)).^2;%有色噪声act_Pfa_np = sum(x(CUTIdx,:)>T_ideal)/Ntrials
act_Pfa_np = 0

注意产生的误报率不能满足要求。然而,使用带有自定义阈值因子的CFAR检测器,我们可以获得所需的虚警率。

释放(cfar);cfar。ThresholdFactor =“自定义”;cfar。CustomThresholdFactor = 12.85;x_detected = cfar(x,CUTIdx);act_pfa = sum(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);

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

[resp, rngrid,dopGrid] = helperRangeDoppler;

图中包含一个轴对象。标题为Range Doppler Map的坐标轴对象包含一个类型为image的对象。

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

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

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

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

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

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

总结

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

参考

Mark Richards,雷达信号处理基础,麦格劳希尔,2005年