毫米波雷达系列 | 传统CFAR检测(均值类)

news/2024/7/10 0:13:55 标签: 算法, 恒虚警检测, CFAR, 雷达, 目标检测

CFAR_0">毫米波雷达系列 | 传统CFAR检测(均值类)

文章目录

CFAR检测器主要用于检测背景杂波环境中的雷达目标,常见的均值类CFAR检测器包括单元平均检测器(CA-CFAR)、选择最大检测器(GO-CFAR)、选择最小检测器(SO-CFAR)。

CFAR检测器的性能取决于窗口的大小和形状,以及阈值的设置。通常,选择合适的窗口和阈值需要进行大量的实验和测试,以便在各种条件下获得最佳性能。

CFAR检测器将窗口分为三类:参考单元、保护单元和检测单元。

其中参考单元用来估算背景杂波功率值,保护单元用来防止检测单元的能量泄漏到参考单元。

CFAR_14">1.CA-CFAR算法

CA-CFAR 是指,在待检测单元两侧各取 N 个参考单元,计算总共2N 个参考单元的平均值,当作背景杂波功率估计值 Zca。所以待检测单元 D 两侧参考单元计算表达式为:

Z c a = ( X + Y ) / 2 = 1 2 N ( ∑ i = 1 N x i + ∑ i = 1 N y i ) Zca = (X+Y)/2=\frac{1}{2N}(\sum_{i=1}^{N}{x_i}+\sum_{i=1}^{N}{y_i}) Zca=(X+Y)/2=2N1i=1Nxi+i=1Nyi
将背景杂波功率估计值 Zca乘以门限乘积因子k,就得到待检测单元D的门限值S。
S = k Z c a = k 2 N ( ∑ i = 1 N x i + ∑ i = 1 N y i ) S=kZca=\frac{k}{2N}(\sum_{i=1}^{N}{x_i}+\sum_{i=1}^{N}{y_i}) S=kZca=2Nki=1Nxi+i=1Nyi

2.SO-CFRA算法

SO-CFAR 是指,对参考单元分别计算其平均值 X 和Y,并选取X 和Y中平均值较小的当作待检测单元D的背景杂波功率估计值 Zso。
Z s o = m i n ( X , Y ) Zso=min(X,Y) Zso=min(X,Y)

X = ∑ i = 1 N x i X=\sum_{i=1}^{N}{x_i} X=i=1Nxi

Y = ∑ i = 1 N y i Y=\sum_{i=1}^{N}{y_i} Y=i=1Nyi

检测门限S可以表示为:
S = k Z s o S=kZso S=kZso

CFAR_47">3.GO-CFAR算法

GO-CFAR 是指,对参考单元分别计算其平均值 X 和Y,并选取 X 和Y中平均值较大的当作待检测单元 D 的背景杂波功率估计值 ZGO
Z g o = m a x ( X , Y ) Zgo=max(X,Y) Zgo=max(X,Y)
检测门限S可以表示为:
S = k Z g o S=kZgo S=kZgo

4.仿真对比

在均匀杂波环境、多目标环境和杂波边缘环境中对均值类CFAR检测器的性能进行比较分析。

参数设置:

虚警概率10-4
参考单元32
保护单元4
信噪比SNR20
多目标单元位置110和120
杂波边缘功率20dB、30dB

1)均匀背景

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iCOpqqyN-1683428305173)(D:\学习\毫米波<a class=雷达实验代码整理版本\CFAR算法仿真代码\CM-VI-OS-ML算法在多目标检测中性能对比\CA-GO-SO均匀杂波环境下单目标检测.png)]" />

2)多目标

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ehnjEsxm-1683428305174)(D:\学习\毫米波<a class=雷达实验代码整理版本\CFAR算法仿真代码\CM-VI-OS-ML算法在多目标检测中性能对比\CA-GO-SO均匀环境下双目标的遮蔽效应.png)]" />

3)杂波边缘环境

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uBu8F6Pn-1683428305174)(D:\学习\毫米波<a class=雷达实验代码整理版本\CFAR算法仿真代码\CM-VI-OS-ML算法在多目标检测中性能对比\CA-GO-SO边缘杂波环境下漏检问题.png)]" />

三种均值类检测器在均匀环境中都可以在第110个距离单元检测出目标,三种检测器的性能基本无差异;

在多目标环境中,可以看到只有SO-CFAR成功将两个目标检测到,而CA-CFAR和GO-CFAR对第110个距离单元的目标漏检。第120个距离单元的目标为信噪比较强的信号,在运算的过程中加入到了参考单元中,使得整个背景杂波功率估计值变高,因此检测门限提高,从而导致了漏检。SO-CFAR检测器采取的策略是选择小的背景功率估计值,所以可以将两个目标都检测到;

在杂波边缘环境中,在第100个距离单位处的目标只有GO-CFAR算法检测成功,CA-CFAR和SO-CFAR均出现了漏检现象,说明GO-CFAR在杂波边缘环境下的虚警能力控制更强

clc;
close all;
clear all;
%% 均匀背景噪声(单目标&多目标)
clear
close all;
shape=200;
variance=200;
noise_db=20;
noise_p=10.^(noise_db./10);%噪声的实际功率
show_out=0;
[ xc ] = env_uniform(variance,  shape, noise_db,show_out);% 产生信号

% 多目标
locatsite=[80,110,120];
% SNR1=12;signal1_p=10.^(SNR1./10).*noise_p(1,end);
SNR2=15;signal2_p=10.^(SNR2./10).*noise_p(1,end);
SNR3=18;signal3_p=10.^(SNR3./10).*noise_p(1,end);
% xc(1,locatsite(1))=signal1_p;
xc(1,locatsite(2))=signal2_p;
xc(1,locatsite())=signal3_p;
trgt = zeros(length(locatsite),2);
% trgt(1,:) = [locatsite(1),signal1_p];
trgt(2,:) = [locatsite(2),signal2_p];
trgt(3,:) = [locatsite(3),signal3_p];
%% 算法结果&图谱显示
N=32;
pro_N=4;
PAD=10^(-4); % 虚警概率

% xc为信号;pro_N为保护单元;PAD为虚警概率
% XT为CFAR的检测门限
[ XT_CA ] = cfar_ac( abs(xc), N, pro_N, PAD);%计算CACFAR
[ XT_GO ] = cfar_go( abs(xc), N, pro_N, PAD);%计算CACFAR
[ XT_SO ] = cfar_so( abs(xc), N, pro_N, PAD);%计算CACFAR

plotNum=20;
markersize=5;
LineWidth=1.25;
len=length(xc);
figure;
plot(10.*log(abs(xc))./log(10),'LineWidth',LineWidth),hold on;
plot(10.*log(abs(XT_CA))./log(10),'g-+','MarkerIndices',1:plotNum:len),hold on;
plot(10.*log(abs(XT_GO))./log(10),'r-*','MarkerIndices',30:plotNum:len),hold on;
plot(10.*log(abs(XT_SO))./log(10),'b-^','MarkerIndices',60:plotNum:len),hold on;
trgtFlag = exist('trgt','var') ;
if trgtFlag%有无目标点
    plot(trgt(:,1),10.*log(abs(trgt(:,2)))./log(10),'s','Color',[1 0 1],'MarkerSize',markersize),hold on;
end
title('CA-GO-SO-CFAR处理效果图');
xlabel('频谱单元');ylabel('幅度/dB');
legend('信号','CA-CFAR','GO-CFAR','SO-CFAR','目标点','Location','SouthEast');

% 均匀背景
function [ xc ] = env_uniform(variance,  shape, power_db, show_out)
if (nargin==3)
    show_out=0;
end
c=10^(power_db/10);     % 这里是幅度——功率,实际的噪声功率
xc=c + random('Normal',0,variance,1,shape);%产生一个正态分布/高斯分布的噪声,期望为0,标准差为200,1*200的矩阵
if show_out==1
    figure;plot(10.*log(abs(xc))./log(10));
end
end

% 杂波背景
function [ xc ] = env_edge(variance,  shape, power_db, show_out)
if (nargin==3)
    show_out=0;
end
c=10.^(power_db./10);               % 这里是幅度——功率
xc=random('Normal',0,variance,1,shape(1,end)); % 正常分布 期望为0 方差为200 1*2矩阵
xc(1,1:end)=xc(1,1:end)+c(1,1);% 前面20
index=1;
for i=1:length(power_db)
    xc(1,index:shape(1,i))=xc(1,index:shape(1,i)).*c(1,i)./c(1,1);
    index=shape(1,i)+1;
end
if show_out==1
    figure;plot(20.*log(abs(xc))./log(10));
end
end

http://www.niftyadmin.cn/n/296640.html

相关文章

API接口TOKEN设计

API接口TOKEN设计 首先需要知道API是什么&#xff1f; API&#xff08;Application Programming Interface&#xff09;即应用程序接口。你可以认为 API 是一个软件组件或是一个 Web 服务与外界进行的交互的接口。而我们在这里要谈论的&#xff0c;是作为一家公司如何跟外界进…

Leetcode434. 字符串中的单词数

Every day a leetcode 题目来源&#xff1a;434. 字符串中的单词数 解法1&#xff1a;istringstream 我们知道&#xff0c;C默认通过空格&#xff08;或回车&#xff09;来分割字符串输入&#xff0c;即区分不同的字符串输入。 istringstream类用于执行C风格的串流的输入操…

法规标准-GB/T 39265标准解读(2020版)

GB/T 39265是做什么的&#xff1f; GB/T 39265全名为道路车辆 盲区检测系统性能要求及试验方法&#xff0c;其中主要是对BSD系统的性能要求及测试步骤进行了介绍。本文仅解读M1、N1类车辆相关内容。 一般要求 系统开启与关闭 1.BSD系统应具备手动开启和关闭的功能 2.手动关…

SpringCloud_Config配置中心和Bus消息总线和Stream消息驱动

文章目录 一、SpringCloudConfig配置中心1、SpringCloudConfig配置中心的概论2、SpringCloudConfig配置中心的gitee仓库搭建3、SpringCloudConfig配置中心服务端的搭建4、SpringCloudConfig配置中心客户端的的搭建5、SpringCloudConfig配置中心客户端动态刷新配置文件 二、Spri…

Go语言面试题--进阶提升(3)

文章目录 1.下面列举的是 recover() 的几种调用方式&#xff0c;哪些是正确的&#xff1f;2.下面代码输出什么&#xff0c;请说明&#xff1f;3.flag 是 bool 型变量&#xff0c;下面 if 表达式符合编码规范的是&#xff1f;4.下面的代码输出什么&#xff0c;请说明&#xff1f…

shell教程

面试题&#xff1a; 1.Shell中单引号和双引号区别 1)单引号不取变量值 2)双引号取变量值 3)反引号&#xff0c;执行引号中命令 4)双引号内部嵌套单引号&#xff0c;取出变量值 5)单引号内部嵌套双引号&#xff0c;不取出变量值 一、shell脚本 1.shell脚本概…

精炼计算机网络——物理层(二)

文章目录 前言2.4信道复用技术2.4.1 频分复用、时分复用和统计时分复用2.4.2 波分复用2.4.3 码分复用 2.5 数字传输系统2.6 带宽接入技术2.6.1 ADSL技术2.6.2 光纤同轴混合网&#xff08;HFC网&#xff09;2.6.3 FTTx技术 总结 前言 上篇文章&#xff0c;我们初步了解了物理层…

Java设计模式(八)过滤器模式

一、概要 过滤器模式是一种结构型设计模式&#xff0c;它允许通过一系列条件来筛选对象&#xff0c;并提供一种灵活的方式来组合和操作这些条件。过滤器模式将过滤条件封装成独立的过滤器类&#xff0c;然后使用这些过滤器来过滤对象集合&#xff0c;以满足特定的条件。 二、…