毫米波雷达系列 | 传统CFAR检测(自适应类)
毫米波雷达系列 | 传统CFAR检测(自适应类)
VI-CFAR
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dV34CKJt-1684215839850)(毫米波雷达系列 传统CFAR检测(自适应类).assets/image-20230516131206695.png)\
均值类和有序统计类CFAR检测器在不同背景环境下,其性能各有优缺点,在实际场景下难以确定杂波边缘所在位置并且目标的分布都是随机的,大部分的CFAR检测器在非均匀环境下都会产生检测损失,针对这种问题学者们提出了一种自适应于杂波的CFAR检测器,针对不同背景环境选择不同的CFAR检测器,自适应类CFAR检测器结合了均值类和有序统计类的优点。
VI-CFAR算法是利用参考单元的变化指数VIA和VIB以及前后参考单元的均值比MR来设计的一套判决准则,判断当前目标所处的背景环境,然后根据不同的背景环境选择合适的策略。
V I = 1 + σ 2 μ 2 = 1 + 1 n − 1 ∑ i = 1 n ( x i − x ‾ ) 2 ( x ‾ ) 2 VI=1+\frac{\sigma_2}{\mu_2}=1+\frac{1}{n-1}\sum_{i=1}^{n}\frac{(x_i-\overline{x}) ^2}{(\overline{x})^2} VI=1+μ2σ2=1+n−11i=1∑n(x)2(xi−x)2
M R = x A ‾ x B ‾ = ∑ i = 1 x i ∑ j = 1 x j MR=\frac{\overline{x_A}}{\overline{x_B}}=\frac{\displaystyle\sum_{i=1}{x_i}}{\displaystyle\sum_{j=1}{x_j}} MR=xBxA=j=1∑xji=1∑xi
其中 x A ‾ \overline{x_A} xA和 x B ‾ \overline{x_B} xB分别为前后参考滑窗均值。
VI-CFAR的判决表如下:
前沿滑窗是否均匀 | 前后滑窗均值是否相同 | VI-CFAR阈值 | 后沿滑窗是否均匀 | 选用的方法 |
---|---|---|---|---|
是 | 是 | T N × ∑ A B T_N\times\sum{AB} TN×∑AB | 是 | CA-CFAR |
是 | 否 | T N / 2 × max ( ∑ A , ∑ B ) T_{N/2}\times\max{(\sum{A},\sum{B})} TN/2×max(∑A,∑B) | 是 | GO-CFAR |
否 | - | T N / 2 × ∑ B T_{N/2}\times\sum{B} TN/2×∑B | 是 | CA-CFAR |
是 | - | T N / 2 × ∑ A T_{N/2}\times\sum{A} TN/2×∑A | 否 | CA-CFAR |
否 | - | T N / 2 × min ( ∑ A , ∑ B ) T_{N/2}\times\min{(\sum{A},\sum{B})} TN/2×min(∑A,∑B) | 否 | SO-CFAR |
从表中可以看出,均匀环境前后参考滑窗均匀且前后参考滑窗均值相同,认为前后参考滑窗是一致的选择CA-CFAR检测器;对于杂波边缘环境,当某一侧参考滑窗的参考单元分别属于两种不同功率的杂波区时,一侧参考滑窗均匀而另一侧非均匀,直接取均匀一侧作为背景杂波功率估计值,选择N/2长度的CA-CFAR检测器;如果两侧滑窗均匀,但均值不处于统一功率水平,选择GO-CFAR检测器,以保证杂波边缘的虚警概率;当两侧参考滑窗均是非均匀,说明两侧参考滑窗可能都含有干扰目标或者存在杂波边缘的情况,选择SO-CFAR检测器取均值较小的一侧作为背景杂波功率估计值。
仿真对比
在均匀杂波环境、多目标环境和杂波边缘环境中对均值类CFAR检测器的性能进行比较分析。
参数设置:
虚警概率 | 10-4 |
---|---|
参考单元 | 32 |
保护单元 | 4 |
信噪比SNR | 20 |
多目标单元位置 | 110和120 |
比例系数 | 3/4 |
r1、r2 | 2、4 |
VI和MR | 4.76、1.086 |
杂波边缘功率 | 20dB、30dB |
(1)均匀环境
(2)多目标环境
(3)杂波环境
从结果中可以看出,在均匀环境中VI-CFAR检测器可以检测出目标,且检测门限不会像均值类CFAR检测器出现明显的跳变,其检测门限值与有序统计类接近。说明VI-CFAR检测器能够很好的在均匀环境下辨别出目标;在多目标环境中,设置三个临近的目标均被VI-CFAR检测器检测到,说明VI-CFAR在多目标环境中的能力与有序统计类CFAR检测器接近;VI-CFAR检测器在边缘杂波环境中可以成功检测出目标,因为在边缘杂波环境且前后参考滑窗均匀时,VI-CFAR检测器使用的GO-CFAR,GO-CFAR在杂波边缘环境下具有良好的虚警控制能力。
代码:
function [results] = cfar_vi(x,NSlide,NProt,KVI,KMR,PAD)
%FUNC_CFAR_VI 此处显示有关此函数的摘要
% x 原始杂波数据
% alpha 标称因子
% NSli 参考滑窗大小
% NPro 保护单元大小
% KVI 半滑窗是否均匀,判决门限
% KMR 前后滑窗均值是否相同,判决门限
alpha=zeros(1,2);
alpha(1,1)=PAD.^(-1./NSlide)-1;
alpha(1,2)=PAD.^(-2./NSlide)-1;
persistent left; %类似于Java中静态变量
persistent right;
persistent HalfSlide;
persistent HalfProt;
persistent len;
if isempty(left)left=1+HalfProt+HalfSlide; % 左边界right=length(x)-HalfProt-HalfSlide; % 右边界HalfSlide=NSlide/2;HalfProt=NProt/2;len=length(x);
end
T=zeros(1,len); %检测阈值
trgt = java.util.LinkedList; %目标点坐标,横轴loc
flag_out=ones(0,len);for i=1:left-1 %左边界cell_right=x(1,i+HalfProt+1:i+HalfSlide+HalfProt);T(1,i)=sum(cell_right)*alpha(1,2);if T(1,i)<x(i)trgt.add(i);end
endfor i=left:right %中间区域cell_left=x(1,i-HalfSlide-HalfProt:i-HalfProt-1);cell_right=x(1,i+HalfProt+1:i+HalfSlide+HalfProt);sumA=sum(cell_left);sumB=sum(cell_right);VIA=1+var(cell_left)./(mean(cell_left)).^2;VIB=1+var(cell_right)./(mean(cell_right)).^2;MR=sumA/sumB;flag=false(1,3);flag(1,1)=VIA<=KVI;flag(1,2)=VIB<=KVI;if 1/KMR<=MR && MR<=KMRflag(1,3)=1;endif sum(flag)==3%环境类型1T(1,i)=(sumA+sumB).*alpha(1,1);flag_out(1,i)=1;elseif sum(flag(1,1:2))==2 && ~flag(1,3)%环境类型2T(1,i)=max(sumA,sumB).*alpha(1,2);flag_out(1,i)=2;elseif sum(flag(1,1:2))==1%环境类型3if flag(1,1)==1%环境类型3-1T(1,i)=sumA.*alpha(1,2);else%环境类型3-2T(1,i)=sumB.*alpha(1,2);endflag_out(1,i)=3;elseif sum(flag(1,1:2))==0%环境类型4T(1,i)=min(sumA,sumB).*alpha(1,2);flag_out(1,i)=4;endif T(1,i)<x(i)trgt.add(i);end
endfor i=right+1:len %右边界cell_left=x(1,i-HalfSlide-HalfProt:i);T(1,i)=sum(cell_left)*alpha(1,2);if T(1,i)<x(i)trgt.add(i);end
end
results=T;
end
l_left=x(1,i-HalfSlide-HalfProt:i);
T(1,i)=sum(cell_left)*alpha(1,2);
if T(1,i)<x(i)
trgt.add(i);
end
end
results=T;
end
相关文章:

毫米波雷达系列 | 传统CFAR检测(自适应类)
毫米波雷达系列 | 传统CFAR检测(自适应类) VI-CFAR [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dV34CKJt-1684215839850)(毫米波雷达系列 传统CFAR检测(自适应类).assets/image-20230516131206695…...

【2023/05/19】NFA
Hello!大家好,我是霜淮子,2023倒计时第14天。 非确定有限状态自动机(NFA)是一种模拟复杂系统行为的数学模型 目录 一、基本概念和理论 二、优点和缺点 三、应用场景 四、问题和挑战 五、重要性、作用和使用价值 …...

汽车功能安全
前言 近些年来,功能安全在汽车传统底盘域和动力域的应用已较为成熟,各大汽车企业功能安全意识也逐渐增强。在辅助驾驶和自动驾驶爆发式增长的大趋势下,现代汽车的功能安全在目前尤为复杂的电子电气系统中就显得更为重要,功能安全…...

【Python】数据分析与可视化实践:收支日统计数据可视化的实现
Python数据分析与可视化实践:收支日统计数据可视化的实现 Author:萌狼蓝天 Date:2023-5-7 数据读入与基本处理 上图是原始数据的一部分,存放于excel中,首先使用pd读入数据。读入数据后,删除不是收入&#x…...
Halcon 中_xld算子的概念与应用? select_shape_std 和 select_shape_xld区别?
文章目录 1 halcon中XLD的概念与应用1.1 halcon中什么是XLD?1. 2 XLD相关算子1.2 XLD的应用1.2.1 生成XLD的操作1.2.2 选取特定xld1.2.3 3.3 XLD的合并操作2 select_shape_std 和 select_shape_xld区别2.1 select_shape_std 算子介绍2.2 select_shape_xld算子介绍2.3 select_s…...

[pgrx开发postgresql数据库扩展]7.返回序列的函数编写(3)多行表序列
前文再续,书接上一回。 上一回我们解析了如何通过pgrx编写srf,返回一个TableIterator,但是在具体应用的时候,我们还是针对一条记录返回了一行数据(多个字段的一行,也还是一行),并没…...

刚入职,就想跑路了...
刚入职一家公司,想离职又怕找不到新工作。 说实话,这个问题还是蛮常见的,很多时候,入职的公司并不是自己最满意的,即使是最满意的,入职后总会遇到各种各样的不顺心,公司制度不规范啊࿰…...

如何让技术架构师具有预知未来业务发展的能力
大家好,今天我们来分享业务架构,但是我们并不是以产品经理角度讲述一个业务架构是什么以及如何做?而是以一个技术架构师的角度,讲述如何承接业务架构或在没有业务架构的时候,如何判断业务变化趋势而对系统架构提前做出…...

卷麻了,新来的00后实在是太卷了...
在程序员职场上,什么样的人最让人反感呢? 是技术不好的人吗?并不是。技术不好的同事,我们可以帮他。 是技术太强的人吗?也不是。技术很强的同事,可遇不可求,向他学习还来不及呢。 真正让人反感的,是技术平平&…...

单片机--实战练习
目录 【1】GPIO 1.定义 2.应用 I - Input - 输入采集 O - Output - 输出控制 编辑编辑 3.GPIO结构框图 4.功能描述 输入功能 输出功能 5.相关寄存器 【2】点亮一盏LED灯 1.实验步骤 2.编程实现 3.编译下载 4.复位上电 练习:实现LED灯闪烁…...

Go Etcd 分布式锁实战
1 分布式锁概述 谈到分布式锁,必然是因为单机锁无法满足要求,在现阶段微服务多实例部署的情况下,单机语言级别的锁,无法满足并发互斥资源的安全访问。常见的单机锁如Java的jvm锁Lock、synchronized,golang的Mutex等 对…...

Windows环境下pcl点云库 安装配置教程
本文为Windows配置点云库pcl步骤,具体win10、visual studio 2019、pcl1.11.1。 【1】下载安装包 Releases PointCloudLibrary/pcl GitHub 其中,AllInOne是一个包含了PCL库所有模块的单独下载包,方便快速获取整个PCL库,而pdb则…...
岗位分析与可视化系统(三)
五、可视化 5.1薪资页面 在views,编写薪资分析的代码 def salary(request): uname = request.session[username] userInfo = User.objects.get(username=uname) edus, workexps = getSalary.getPageDt() defaultedu = 不限 defaultworkexp = 不限 if request.G…...
unity进阶学习笔记:json和xml
1早期的数据格式 在早期程序开发中一个简单且常用的数据格式为CSV。该格式单纯依靠逗号来分割数据。目前windows的office依然支持CSV解析,我们可以试着新建一个txt文件,在里面加入逗号分隔的信息: a, 1, 15, 30, true 将txt文件后缀改为csv&…...

数据结构之初识树与堆
前言:前面学习了顺序表,队列,栈,链表,我们知道他们都是一种线性表,是一种线性结构,而除此之外,仍有许多我们还没认识的结构,比如树形结构,不同于线性结构&…...
虚拟化技术 — VirtIO 虚拟设备接口标准
目录 文章目录 目录VirtIOVirtIO 虚拟设备接口标准VirtIO 的前后端分层架构标准VirtIO 的数控路径分离架构标准VirtIO 的传输层标准VirtIO 标准在 Linux 中的实现VirtIO VirtIO 由 Rusty Russell 开发,最初是为了支持自己开发的 lguest Hypervisor,其设计目标是在虚拟化环境…...

Dubbo——SpringBoot集成Dubbo(@Autowired和@Reference的区别、Dubbo的服务治理)
Dubbo——原生API实现远程调用_Strine的博客-CSDN博客 在上一篇文章中我们讲了如何使用原生API发起远程调用,显然这种方式肯定是非常麻烦的,因此我们这里就讲如何使用SpringBoot去集成Dubbo将这些配置简化。 生产者服务 添加配置文件 dubbo:applicat…...

高并发系统的三把利器
目录 1.限流 2.缓存 2.1.缓存的使用场景 3.降级 3.1.什么是降级? 3.2.服务降级方式 4.其他高并发手段 4.1. 集群 4.2.拆分 4.2.1 应用拆分 4.2.2 数据库 4.3. 静态化 4.4.削峰 4.5.限流 5.总结 参考 保护高并发系统的三大利器:限流、熔…...
AppiumWinAppDriver自动化测试 Failed to locate opened application window with appid问题
问题产生原因:1.期望能力选项参数丢失 例如:capabilities.setCapability("appWorkingDir", "C:\\Program Files (x86)\\Tencent\\app")) 某些app需要设置目录属性才可以启动。 问题产生原因:2.访问权限不足 例如&…...

渗透测试--6.1.aircrack-ng破解wifi密码
目录 1.Aircrack-ng简介 1.1 airdump-ng 1.2 aireplay-ng 1.3 aircrack-ng 2.Deauth攻击 3.aircrack-ng工具破解无线网络密码 步骤一:虚拟机连接实验需要用到的网卡 步骤二:设置网卡为监听模式 步骤三:使用wlan0mon网卡扫描附近wif…...

Flask RESTful 示例
目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题: 下面创建一个简单的Flask RESTful API示例。首先,我们需要创建环境,安装必要的依赖,然后…...
模型参数、模型存储精度、参数与显存
模型参数量衡量单位 M:百万(Million) B:十亿(Billion) 1 B 1000 M 1B 1000M 1B1000M 参数存储精度 模型参数是固定的,但是一个参数所表示多少字节不一定,需要看这个参数以什么…...

linux arm系统烧录
1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 (忘了有没有这步了 估计有) 刷机程序 和 镜像 就不提供了。要刷的时…...
第25节 Node.js 断言测试
Node.js的assert模块主要用于编写程序的单元测试时使用,通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试,通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...

Mac软件卸载指南,简单易懂!
刚和Adobe分手,它却总在Library里给你写"回忆录"?卸载的Final Cut Pro像电子幽灵般阴魂不散?总是会有残留文件,别慌!这份Mac软件卸载指南,将用最硬核的方式教你"数字分手术"࿰…...
GitHub 趋势日报 (2025年06月08日)
📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 884 cognee 566 dify 414 HumanSystemOptimization 414 omni-tools 321 note-gen …...
Java编程之桥接模式
定义 桥接模式(Bridge Pattern)属于结构型设计模式,它的核心意图是将抽象部分与实现部分分离,使它们可以独立地变化。这种模式通过组合关系来替代继承关系,从而降低了抽象和实现这两个可变维度之间的耦合度。 用例子…...

C/C++ 中附加包含目录、附加库目录与附加依赖项详解
在 C/C 编程的编译和链接过程中,附加包含目录、附加库目录和附加依赖项是三个至关重要的设置,它们相互配合,确保程序能够正确引用外部资源并顺利构建。虽然在学习过程中,这些概念容易让人混淆,但深入理解它们的作用和联…...
作为测试我们应该关注redis哪些方面
1、功能测试 数据结构操作:验证字符串、列表、哈希、集合和有序的基本操作是否正确 持久化:测试aof和aof持久化机制,确保数据在开启后正确恢复。 事务:检查事务的原子性和回滚机制。 发布订阅:确保消息正确传递。 2、性…...

CVPR2025重磅突破:AnomalyAny框架实现单样本生成逼真异常数据,破解视觉检测瓶颈!
本文介绍了一种名为AnomalyAny的创新框架,该方法利用Stable Diffusion的强大生成能力,仅需单个正常样本和文本描述,即可生成逼真且多样化的异常样本,有效解决了视觉异常检测中异常样本稀缺的难题,为工业质检、医疗影像…...