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

引言

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

上述文章介绍了四种典型CFAR检测算法的特点及性能对比。本文将利用MATLAB进行仿真,通过实例验证和对比这几种算法的优缺点。

一、仿真实例

为客观评价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.2 杂波边缘

1.3 多干扰目标杂波

在这里插入图片描述

二、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.

最近更新

  1. TCP协议是安全的吗?

    2024-06-08 02:08:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-08 02:08:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-08 02:08:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-08 02:08:02       20 阅读

热门阅读

  1. Debezium日常分享系列之:Debezium 2.7.0.Beta1发布

    2024-06-08 02:08:02       6 阅读
  2. 面试题--this关键字

    2024-06-08 02:08:02       10 阅读
  3. Vue3视图渲染技术

    2024-06-08 02:08:02       6 阅读
  4. Python怎么把数据从CSV文件导入到MySQL数据库?

    2024-06-08 02:08:02       12 阅读
  5. 【Qt快速入门(二)】- Qt 整体目录结构

    2024-06-08 02:08:02       12 阅读
  6. 深入探讨Qt中的QVariant

    2024-06-08 02:08:02       10 阅读
  7. ChatGPT的基本原理

    2024-06-08 02:08:02       8 阅读
  8. 是时候让临床预测模型进入临床实践

    2024-06-08 02:08:02       10 阅读
  9. Elasticsearch搜索优化-自定义路由规划(routing)

    2024-06-08 02:08:02       10 阅读
  10. Linux系统管理磁盘管理004

    2024-06-08 02:08:02       11 阅读