当前位置: 首页 > news >正文

雷达信号处理——恒虚警检测(CFAR)

雷达信号处理的流程

雷达信号处理的一般流程:ADC数据——1D-FFT——2D-FFT——CFAR检测——测距、测速、测角。

雷达目标检测

首先要搞清楚什么是检测,检测就是判断有无。雷达在探测的时候,会出现很多峰值,这些峰值有可能是目标、噪声和干扰,那么就需要进行一种判决,来决定它是否属于目标。
雷达目标检测问题是利用信号的统计特性和噪声的统计特性解决在受噪声干扰的观测中,信号有无的判决问题。其数学基础就是统计判决理论,又称假设检验理论。假设检验是进行统计判决的重要工具,信号检测相当于数理统计中的假设检验。

恒虚警检测概念

假设就是检验对象的可能情况或状态。对于雷达检测来说,可以选用两个假设,即目标存在或不存在。用 H 0 H_0 H0 H 1 H_1 H1分别表示接收机的无信号输入和有信号输入的假设,用 D 0 D_0 D0 D 1 D_1 D1和分别表示检测器作出无信号和有信号的判决结果。于是接收机的输入与检测器的判决将有四种情况:
(1) H 0 H_0 H0为真,判为 D 0 D_0 D0,即接收机无信号输入, 检测器判为无信号, 其概率称为正确不发现概率 P a n P_{an} Pan
(2) H 0 H_0 H0为真, 判为 D 1 D_1 D1, 即接收机无信号输入, 检测器判为有信号, 其概率称为虚警概率 P f a P_{fa} Pfa
(3) H 1 H_1 H1为真, 判为 D 0 D_0 D0,即接收机有信号输入, 检测器判为无信号, 其概率称为漏警概率 P l a P_{la} Pla
(4) H 1 H_1 H1为真, 判为 D 1 D_1 D1,即接收机有信号输入, 检测器判为有信号, 其概率称为正确检测概率 P d P_{d} Pd
我们希望的是正确不发现概率 P a n P_{an} Pan和真确检测概率 P d P_{d} Pd越高越好,而虚警概率 P f a P_{fa} Pfa和漏警概率 P l a P_{la} Pla越低越好。
恒虚警检测,又称CFAR,全称是Constant False Alarm Rate Detector,是雷达目标检测的一种常见的手段。CFAR检测算法属于信号检测中的自动检测算法,在雷达信号处理中主要应用的有四种,即CA-CFAR、SO-CFAR、GO-CFAR、WCA-CFAR。

恒虚警检测算法

首先,指定一个距离多普勒单元,称为检测单元(CUT, cell under test),为了判断检测单元处是否存在目标,需要设定一个阈值 T T T,当检测单元处的检测值 Y Y Y大于 T T T时,判断为有目标,否则判断为没有目标:
d ( Y ) = { 有目标, Y ≥ T 无目标, Y < T . d(Y)= \left\{ \begin{array}{ll} 有目标,Y\geq T\\ 无目标,Y< T. \end{array} \right. d(Y)={有目标,YT无目标,Y<T.
具体的做法是先在测试单元的周围放置保护单元,以消除信号在测试单元周围的多余能量,然后再保护单元的周围选择参考单元:
在这里插入图片描述

图1 恒虚警检测的单元分布

上图展示的是同时在距离维和多普勒维进行恒虚警检测的原理,如果只是在距离维或多普勒维做CFAR,检测单元的左右两侧均有设定好数量的保护单元和参考单元。
恒虚警检测选择均值类自适应门限 CFAR 检测技术,其中单元平均方式(CA-CFAR)、两侧单元平均 选大方式(GO-CFAR)、两侧单元平均选小方式 (SO-CFAR) 三种方法在主瓣多目标的背景下,检测性能都有所下降,容易出现漏警和漏检小信号源。单限切除恒虚警概率方法
(E-CFAR),在主瓣多目标的背景下,具有较好的检 测性能。E-CFAR 方法是在进行单元平均之前设置切 除上限,切除信号的强分量,从而避免对小信号源 漏检,防止对信源数目的估计出现偏差。
如果是CA-CFAR,则取左右两边的参考单元的均值再取平均值,然后与 α \alpha α相乘( α \alpha α计算公式如下方公式),再将结果与阈值相比较。如果大于阈值则代表有目标,否则认为无目标。
在这里插入图片描述

图2 一维恒虚警检测的阈值计算方法

从上图可以看到,由于待检单元左侧还有几个单元,所以做完恒虚警检测之后会使得序列变短,这个和深度学习中的卷积类似。要想使得不变短的话可以采取补零法或者翻转法来实现。
从图中也可以看到,根据阈值的选择不同,有不同的检测器,其中CA-CFAR是取的参考单元的均值,SO-CFAR取的是参考单元的最小值,而GO-CFAR是取的参考单元的最大值。
其中最重要的是门限因子 α \alpha α的计算方法:
α = N ( P f a − 1 N − 1 ) \alpha = N(P_{fa}^{-\frac{1}{N}}-1) α=N(PfaN11)

恒虚警检测matlab编程

不同的CFAR检测器适用于不同的场景,CA-CFAR算法适用于均匀环境中的单目标或彼此相距较远的多目标环境,在邻近多目标环境会发生目标的遮蔽效应,在杂波边缘会发生杂波边缘效应。
下面是不进行补零操作的CA-CFAR的程序:

function [position, threshold, start_cell, stop_cell] = cacfar(signal, Pfa, ref_num, guard_num)
% ======>INPUT:
% signal: Data of signal(include signal and noise).[DATATYPE: row vector]
% Pfa: Probability of false alarm.[DATATYPE: scalar]
% ref_num: Number of reference cell.[DATATYPE: scalar]
% guard_num: Number of guard cell.[DATATYPE: scalar]
% ======>OUTPUT:
% position: positions of target.[DATATYPE: row vector]
% threshold: CFAR threshold of input signal.[DATATYPE: row vector]
position = [];
left_num = guard_num + ref_num;
start_cell = left_num + 1;
stop_cell = length(signal) - left_num;
N = 2*ref_num;
alpha = N * (Pfa ^ (-1/N) - 1);
threshold = zeros(1, stop_cell - start_cell + 1);
for ii = start_cell : stop_celltmp_data = [signal(ii-left_num : ii-guard_num-1), ...signal(ii+guard_num+1 : ii+left_num)];mean(tmp_data);tmp = mean(tmp_data) * alpha;% threshold(ii - left_num)tmp;threshold(ii - left_num) = tmp;if tmp < signal(ii)position = [position, ii];end
end
return

下面是进行补零操作的CA-CFAR的程序:

function [position, threshold] = MYCACFAR(signal, Pfa, ref_num, guard_num)
% 该函数用于进行CA-FAR恒虚警检测,在信号首位两端进行补零,使得输出的阈值序列和信号长度一致
% ======>INPUT:
% signal: Data of signal(include signal and noise).[DATATYPE: row vector]
% Pfa: Probability of false alarm.[DATATYPE: scalar]
% ref_num: Number of reference cell.[DATATYPE: scalar]
% guard_num: Number of guard cell.[DATATYPE: scalar]
% ======>OUTPUT:
% position: positions of target.[DATATYPE: row vector]
% threshold: CFAR threshold of input signal.[DATATYPE: row vector]
position = []; %存储高于检测门限的信号区域的位置
left_num = guard_num + ref_num; %检测单元两边的单元数
sigLen = length(signal); %信号长度
tempSig = zeros(1,sigLen+2*left_num); %补零后的信号向量
tempSig((left_num + 1) :(sigLen + left_num)) = signal; %对中间部分进行信号的赋值,首位两端各有left_num个零值
N = 2*ref_num; %参考单元总数
alpha = N * (Pfa ^ (-1/N) - 1); %门限因子,横虚警概率越小,参考单元数越多,因子越大,检测阈值也越大
threshold = zeros(1, sigLen); %用于储存检测阈值
for ii = 1 : 1 :sigLencentNum = ii+left_num; %对应的检测单元下标tmp_data = [tempSig((centNum-left_num):(centNum-guard_num-1)), ...tempSig((centNum+guard_num+1):(centNum+left_num))]; %取检测单元的值tmp = mean(tmp_data) * alpha; %与门限因子相乘得到检测阈值threshold(ii) = tmp; %进行存储if tmp < signal(ii) %阈值小于信号position = [position, ii];  %存储被检测到的下标end
end
return

下面是进行翻转补充首位的操作的CA-CFAR的程序:

function [position, threshold] = MYCACFAR2(signal, Pfa, ref_num, guard_num)
% 该函数用于进行CA-FAR恒虚警检测,在信号首位两端进行翻转,使得输出的阈值序列和信号长度一致
% ======>INPUT:
% signal: Data of signal(include signal and noise).[DATATYPE: row vector]
% Pfa: Probability of false alarm.[DATATYPE: scalar]
% ref_num: Number of reference cell.[DATATYPE: scalar]
% guard_num: Number of guard cell.[DATATYPE: scalar]
% ======>OUTPUT:
% position: positions of target.[DATATYPE: row vector]
% threshold: CFAR threshold of input signal.[DATATYPE: row vector]
position = []; %存储高于检测门限的信号区域的位置
left_num = guard_num + ref_num; %检测单元两边的单元数
sigLen = length(signal); %信号长度
tempSig = zeros(1,sigLen+2*left_num); %补零后的信号向量
tempSig(1:left_num) = signal(1:left_num);
tempSig(sigLen + left_num+1:end) = signal(sigLen-left_num+1:end);
tempSig((left_num + 1) :(sigLen + left_num)) = signal; %对中间部分进行信号的赋值,首位两端各有left_num个零值
N = 2*ref_num; %参考单元总数
alpha = N * (Pfa ^ (-1/N) - 1); %门限因子,横虚警概率越小,参考单元数越多,因子越大,检测阈值也越大
threshold = zeros(1, sigLen); %用于储存检测阈值
for ii = 1 : 1 :sigLencentNum = ii+left_num; %对应的检测单元下标tmp_data = [tempSig((centNum-left_num):(centNum-guard_num-1)), ...tempSig((centNum+guard_num+1):(centNum+left_num))]; %取检测单元的值tmp = mean(tmp_data) * alpha; %与门限因子相乘得到检测阈值threshold(ii) = tmp; %进行存储if tmp < signal(ii) %阈值小于信号position = [position, ii];  %存储被检测到的下标end
end
return

下面是仿真结果:
在这里插入图片描述

图2 单目标脉冲压缩结果及CA-CFAR阈值图

对目标峰值部分局部放大后
在这里插入图片描述

图3 局部放大

附录

二维CFAR 仿真代码地址:https://github.com/tooth2/2D-CFAR

相关文章:

雷达信号处理——恒虚警检测(CFAR)

雷达信号处理的流程 雷达信号处理的一般流程&#xff1a;ADC数据——1D-FFT——2D-FFT——CFAR检测——测距、测速、测角。 雷达目标检测 首先要搞清楚什么是检测&#xff0c;检测就是判断有无。雷达在探测的时候&#xff0c;会出现很多峰值&#xff0c;这些峰值有可能是目标…...

k8s的yaml文件中的kind类型都有哪些?(详述版Part1/2)

目录 综述 分块详述 1、Pod 2、Deployment 3、Service 4、DaemonSet 5、ReplicaSet 6、ServiceAccount 7、PodDisruptionBudget 8、PersistentVolumeClaim 9、PersistentVolume 10、Job 11、CronJob 12、StatefulSet 综述 通过yaml文件中的kind可以大致了解kube…...

企业培训系统源码:构建智能、可扩展的学习平台

企业培训系统在现代企业中扮演着至关重要的角色。本文将通过深度解析企业培训系统的源码&#xff0c;介绍如何构建一个智能、可扩展的学习平台&#xff0c;涉及关键技术和代码实例。 1. 技术栈选择与项目初始化 在构建企业培训系统之前&#xff0c;选择适当的技术栈是至关重…...

设计模式—行为型模式之状态模式

设计模式—行为型模式之状态模式 状态&#xff08;State&#xff09;模式&#xff1a;对有状态的对象&#xff0c;把复杂的“判断逻辑”提取到不同的状态对象中&#xff0c;允许状态对象在其内部状态发生改变时改变其行为。 状态模式包含以下主要角色&#xff1a; 环境类&am…...

Linux习题3

解析&#xff1a; grep&#xff1a;查找文件内的内容 gzip&#xff1a;压缩文件&#xff0c;文件经压缩后会增加 gz&#xff1a;扩展名 find&#xff1a;在指定目录下查找文件 解析&#xff1a; A hosts文件是Linux系统上一个负责ip地址与域名快速解析的文件&#xff0c;以…...

SpringBoot+策略模式实现多种文件存储模式

一、策略模式 背景 针对某种业务可能存在多种实现方式&#xff1b;传统方式是通过传统if…else…或者switch代码判断&#xff1b; 弊端&#xff1a; 代码可读性差扩展性差难以维护 策略模式简介 策略模式是一种行为型模式&#xff0c;它将对象和行为分开&#xff0c;将行…...

细说DMD芯片信号-DLP3

1&#xff0c; Block diagram 2. 信号介绍 2.1, LS interface&#xff1a; LD_Data_P/N(i), LD_CLK_P/N(i), LS_RDATA_A_BIST(O) 2.2, 视频信号: HSSI(High speed serial interface) High speed Differential Data pair lan A0~7 P/N, High speed Differential Clock A High…...

MySQL从0到1全教程【1】MySQL数据库的基本概念以及MySQL8.0版本的部署

1 MySQL数据库的相关概念 1.1 数据库中的专业术语 1.1.1 数据库 (DB) 数据库是指:保存有组织的数据的容器(通常是一个文数据库 (database)件或一组文件)。 1.1.2 数据库管理系统 (DBMS) 数据库管理系统(DBMS)又称为数据库软件(产品)&#xff0c;用于管理DB中的数据 注意:…...

grep常用命令

1. grep常用参数 -i忽略大小写-w精准匹配整词-v结果取反(匹配指定的字符串以外的内容)-A关键字所在行的后几行也一起显示-B关键字所在行的前几行也一起显示-C关键字所在行的前后几行行一起显示 2. 常用命令 2.1 从文件中查找关键词 # 精准匹配 grep linux test.txt# 从多个…...

Spring Data JPA 使用总结

本文记录了Spring data JPA 的一些细碎的规则。 findBy语法规则 :findOOXXByName 实际上等价 > findByName 比如: User findFirstByOrderByLastnameAsc();User findTopByOrderByAgeDesc();Page<User> queryFirst10ByLastname(String lastname, Pageable pageable);…...

融云 CEO 董晗荣获 51CTO 「2023 年度科技影响力人物奖」

&#xff08;&#x1f446;点击获取《社交泛娱乐出海作战地图》&#xff09; 1 月 5 日&#xff0c;由知名 IT 技术媒体 51CTO 主办的第十八届“中国企业年终评选”正式揭晓榜单&#xff0c;融云 CEO 董晗荣获“2023 年度科技影响力人物奖”。关注【融云全球互联网通信云】了解…...

数据洞察力,驱动企业财务变革

我们不得不面对一个现实&#xff0c;就是数据量的剧增。加上大部分企业并不愿意删除历史数据&#xff0c;以防未来预测分析时需要&#xff0c;这造成数据就像一个雪球&#xff0c;越滚越大。然而&#xff0c;过多的数据和数据不足一样会成为企业发展和理解分析的障碍。从海量数…...

Postgresql常见(花式)操作完全示例

案例说明 将Excel数据导入Postgresql&#xff0c;并实现常见统计&#xff08;数据示例如下&#xff09; 导入Excel数据到数据库 使用Navicat工具连接数据库&#xff0c;使用导入功能可直接导入&#xff0c;此处不做过多介绍&#xff0c;详细操作请看下图&#xff1a; 点击“下…...

【Docker】数据管理

&#x1f973;&#x1f973;Welcome 的Huihuis Code World ! !&#x1f973;&#x1f973; 接下来看看由辉辉所写的关于Docker的相关操作吧 目录 &#x1f973;&#x1f973;Welcome 的Huihuis Code World ! !&#x1f973;&#x1f973; 前言 一.数据卷 示例演示 示例剖析…...

认识异常及异常处理机制之try-catch

异常类 什么是异常&#xff1f;就像人会犯错一样&#xff0c;程序在运行的过程中也会犯错。程序中的错误有两类&#xff0c;一类称为Error&#xff08;错误&#xff09;&#xff0c;另一类称为Exception&#xff08;异常&#xff09;。Error类和Exception类都为Throwable的子类…...

html学习之路:简述html文档头部 <meta> 的 http-equiv 属性

&#x1f9cb;当输入网址打开网页时&#xff0c;设置html头部meta的http-equiv属性&#xff0c;可以帮助浏览器更加精确和正常却的显示网页内容&#xff0c;比如设置网页多久自动刷新&#xff0c;设置网页在浏览器缓存中的时限&#xff0c;设置多少事件跳转到指定的网页地址&am…...

逆矩阵计算

目录 一、逆矩阵的定义 核心&#xff1a;AB BA E 1&#xff09;定义 2&#xff09;注意 3&#xff09;逆矩阵存在的条件|A| ! 0 二、核心公式&#xff1a; 三、求逆矩阵&#xff08;核心考点&#xff09; 1、伴随矩阵法 2、初等变换法&#xff08;重点掌握&#xff…...

《豫鄂烽火燎原大小焕岭》:一部穿越时空的历史史诗

《豫鄂烽火燎原大小焕岭》&#xff1a;一部穿越时空的历史史诗 一部赓续红色血脉的生动教材 一部讴歌时代英雄和人民精神宝典 当历史的烽烟渐渐远去&#xff0c;留下的是一页页泛黄的记忆和无数英雄的壮丽诗篇。李传铭的力作《豫鄂烽火燎原大小焕岭》正是这样一部深情的回望&am…...

浅研究下 DHCP 和 chrony

服务程序&#xff1a; 1.如果有默认配置&#xff0c;请先备份&#xff0c;再进行修改 2.修改完配置文件&#xff0c;请重启服务或重新加载配置文件&#xff0c;否则不生效 有些软件&#xff0c;安装包的名字和系统里服务程序的名字不一样&#xff08;安装包名字&#xff1a;…...

【算法】动态中位数(对顶堆)

题目 依次读入一个整数序列&#xff0c;每当已经读入的整数个数为奇数时&#xff0c;输出已读入的整数构成的序列的中位数。 输入格式 第一行输入一个整数 P&#xff0c;代表后面数据集的个数&#xff0c;接下来若干行输入各个数据集。 每个数据集的第一行首先输入一个代表…...

STM32标准库-DMA直接存储器存取

文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA&#xff08;Direct Memory Access&#xff09;直接存储器存取 DMA可以提供外设…...

多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验

一、多模态商品数据接口的技术架构 &#xff08;一&#xff09;多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如&#xff0c;当用户上传一张“蓝色连衣裙”的图片时&#xff0c;接口可自动提取图像中的颜色&#xff08;RGB值&…...

镜像里切换为普通用户

如果你登录远程虚拟机默认就是 root 用户&#xff0c;但你不希望用 root 权限运行 ns-3&#xff08;这是对的&#xff0c;ns3 工具会拒绝 root&#xff09;&#xff0c;你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案&#xff1a;创建非 roo…...

现代密码学 | 椭圆曲线密码学—附py代码

Elliptic Curve Cryptography 椭圆曲线密码学&#xff08;ECC&#xff09;是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础&#xff0c;例如椭圆曲线数字签…...

深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南

&#x1f680; C extern 关键字深度解析&#xff1a;跨文件编程的终极指南 &#x1f4c5; 更新时间&#xff1a;2025年6月5日 &#x1f3f7;️ 标签&#xff1a;C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言&#x1f525;一、extern 是什么&#xff1f;&…...

学习STC51单片机32(芯片为STC89C52RCRC)OLED显示屏2

每日一言 今天的每一份坚持&#xff0c;都是在为未来积攒底气。 案例&#xff1a;OLED显示一个A 这边观察到一个点&#xff0c;怎么雪花了就是都是乱七八糟的占满了屏幕。。 解释 &#xff1a; 如果代码里信号切换太快&#xff08;比如 SDA 刚变&#xff0c;SCL 立刻变&#…...

大数据学习(132)-HIve数据分析

​​​​&#x1f34b;&#x1f34b;大数据学习&#x1f34b;&#x1f34b; &#x1f525;系列专栏&#xff1a; &#x1f451;哲学语录: 用力所能及&#xff0c;改变世界。 &#x1f496;如果觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏⭐️留言&#x1f4…...

C++.OpenGL (14/64)多光源(Multiple Lights)

多光源(Multiple Lights) 多光源渲染技术概览 #mermaid-svg-3L5e5gGn76TNh7Lq {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-3L5e5gGn76TNh7Lq .error-icon{fill:#552222;}#mermaid-svg-3L5e5gGn76TNh7Lq .erro…...

NXP S32K146 T-Box 携手 SD NAND(贴片式TF卡):驱动汽车智能革新的黄金组合

在汽车智能化的汹涌浪潮中&#xff0c;车辆不再仅仅是传统的交通工具&#xff0c;而是逐步演变为高度智能的移动终端。这一转变的核心支撑&#xff0c;来自于车内关键技术的深度融合与协同创新。车载远程信息处理盒&#xff08;T-Box&#xff09;方案&#xff1a;NXP S32K146 与…...

LCTF液晶可调谐滤波器在多光谱相机捕捉无人机目标检测中的作用

中达瑞和自2005年成立以来&#xff0c;一直在光谱成像领域深度钻研和发展&#xff0c;始终致力于研发高性能、高可靠性的光谱成像相机&#xff0c;为科研院校提供更优的产品和服务。在《低空背景下无人机目标的光谱特征研究及目标检测应用》这篇论文中提到中达瑞和 LCTF 作为多…...