当前位置: 代码网 > it编程>编程语言>C/C++ > 【雷达原理】一维CFAR检测算法——对比分析与代码实现

【雷达原理】一维CFAR检测算法——对比分析与代码实现

2024年08月06日 C/C++ 我要评论
本文利用MATLAB进行仿真,通过分析三种典型情况下的杂波和目标数据,验证均值类CFAR的优缺点,并对比不同CFAR检测器的性能。

引言

推荐博文【目标检测】雷达目标cfar检测算法

一、仿真实例

为客观评价cfar检测器的性能,rohling从背景杂波区域均匀性出发,将杂波分为三种典型情况。
(1)均匀背景杂波:参考滑窗内背景杂波样本同分布;
(2)杂波边缘:参考滑窗内存在功率不同的背景杂波过渡区域情况;
(3)多干扰目标杂波:两个或者两个以上的目标,在同一参考滑窗内。

1.1 均匀背景杂波

仿真杂波数据是背景功率为15db的独立同分布瑞利包络杂波序列,在第63个多普勒单元中存在一个功率为35db的目标。设定虚警概率为 p f a = 1 0 − 6 p_{fa}=10^-6 pfa=106,参考窗大小为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=106,参考窗大小为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.

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com