引言
一、仿真实例
为客观评价cfar检测器的性能,rohling从背景杂波区域均匀性出发,将杂波分为三种典型情况。
(1)均匀背景杂波:参考滑窗内背景杂波样本同分布;
(2)杂波边缘:参考滑窗内存在功率不同的背景杂波过渡区域情况;
(3)多干扰目标杂波:两个或者两个以上的目标,在同一参考滑窗内。
1.1 均匀背景杂波
仿真杂波数据是背景功率为15db的独立同分布瑞利包络杂波序列,在第63个多普勒单元中存在一个功率为35db的目标。设定虚警概率为
p
f
a
=
1
0
−
6
p_{fa}=10^-6
pfa=10−6,参考窗大小为8,保护窗大小为4。仿真结果如下图所示,红色虚线代表ca-cfar的检测门限,由图可知,ca-cfar在均匀背景杂波环境下可以正确检测出目标。
图1 均匀杂波背景下的ca-cfar检测
1.2 杂波边缘和多干扰目标杂波
如图2所示,假设在第1~100个多普勒单元为杂波区,杂波边缘为第95-105个多普勒单元处,之后的多普勒单元除了目标外只有底噪。杂波区的平均杂噪比为60db,在杂波边缘处,杂波功率从60db降低至0db。
假设在第63、99、160和165个多普勒单元分别存在目标,这些目标的功率相对于噪声的功率分别为75db、70db、25db和15db。设定虚警概率为
p
f
a
=
1
0
−
6
p_{fa}=10^-6
pfa=10−6,参考窗大小为8,保护窗大小为4,分别采用ca-cfar、go-cfar和so-cfar进行自动检测,3种方法的检测门限显示在图2中。
图2 杂波边缘和多干扰目标杂波背景下的均值类-cfar检测
1.2.1 杂波边缘
图3为图2中杂波边缘的局部放大图,3种cfar检测器均可以对杂波边缘的目标进行检测,但杂波边缘会导致附近高功率杂波区域的检测发生虚警,so-cfar因选择功率较低的后半部分参考窗数据进行背景功率估计,在第94-102个多普勒单元之间造成虚警;
当检测单元位于第98个多普勒单元,go-cfar将选择功率较高的后半部分参考窗数据进行背景功率估计,从而使其检测门限高于ca-cfar的检测门限,避免了虚警的出现,而利用ca-cfar进行目标检测,则在该多普勒单元会出现虚警。
图3 杂波边缘局部放大图
1.2.2 多干扰目标杂波
图4为图2中无杂波区的两个目标附近单元的局部放大图,在第160和165个多普勒单元的目标分别记为目标1和目标2。
当目标1位于检测单元时,目标2位于参考滑窗内,由于目标1的信噪比较高,目标2无法对目标1形成遮蔽,3种cfar检测器均能将目标1正确检测。
当目标2位于检测单元时,目标1位于参考滑窗内,其较高的功率提升了整体的背景功率,造成ca-cfar和go-cfar的检测门限抬高,导致目标2出现漏检。但对于so-cfar,由于其选择后半部分参考窗进行背景杂波功率估计,降低了检测门限,避免了目标1对目标2的遮蔽,可以正确地检测出相邻近的两个目标。
图4 两个目标附近单元的局部放大图
二、matlab代码
%% 全局变量
global p_fa;
global referwin;
global guradwin;
global sensitive;
sensitive = 0.15; % 灵敏度
p_fa = 1e-6; % 虚警概率
referwin = 8; % 参考窗大小
guradwin = 4; % 保护窗大小
%% 均匀背景杂波
sigma = 3; % 方差
n = 256; % 数据长度
data = get_rayleighdata(sigma,n); % 产生瑞利分布的随机数据
pos = (61:65); % 目标存在的位置
tarpow = [20,30,35,30,20]; % 目标信号功率
data(pos) = db2mag(tarpow);
chioce = 1;
[~,threshold] = ml_cfar(data,chioce);
figure;
plot(20*log10(data),'b-');
hold on;
plot(20*log10(threshold),'r--');
xlabel('多普勒单元');ylabel('杂波功率/db');
legend('杂波信号(含目标)','ca-cfar检测门限');
%% 杂波边缘/多干扰目标杂波
len = 256;
sigma = 5; % 方差
clutdata = get_rayleighdata(sigma,len); % 产生瑞利分布的随机数据
pos1 = (61:65); % 目标1存在的位置
tarpow1 = [25,30,35,30,25]; % 目标1信号功率
clutdata(pos1) = db2mag(tarpow1);
n1 = 100; % 数据长度
clutdata(1:n1) = clutdata(1:n1)*db2mag(40);
clutdata(n1+1:len) = clutdata(n1+1:len)/db2mag(15);
pos2 = (96:102); % 目标2存在的位置
tarpow2 = [45,50,60,70,45,20,0]; % 目标2信号功率
clutdata(pos2) = db2mag(tarpow2);
pos3 = (158:162); % 目标3存在的位置
tarpow3 = [5,15,25,15,5]; % 目标3信号功率
clutdata(pos3) = db2mag(tarpow3);
pos4 = (163:167); % 目标4存在的位置
tarpow4 = [-5,5,15,5,-5]; % 目标4信号功率
clutdata(pos4) = db2mag(tarpow4);
chioce = 1;
[~,ca_th] = ml_cfar(clutdata,chioce);
chioce = 2;
[~,go_th] = ml_cfar(clutdata,chioce);
chioce = 3;
[~,so_th] = ml_cfar(clutdata,chioce);
figure;
plot(20*log10(clutdata),'k-');
hold on;
plot(20*log10(ca_th),'r--');
plot(20*log10(go_th),'b--');
plot(20*log10(so_th),'m--');
xlabel('多普勒单元');ylabel('杂波功率/db');
legend('杂波信号(含目标)','ca-cfar检测门限','go-cfar检测门限','so-cfar检测门限');
参考文献
[1]陈伯孝, 等. 现代雷达系统分析与设计[m]. 西安:西安电子科技大学出版社, 2012.9.
发表评论