毫米波雷达系列 | 传统CFAR检测(有序统计类)

news2024/11/28 18:54:41

毫米波雷达系列 | 传统CFAR检测(有序统计类)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-u9WGouJF-1684046119664)(毫米波雷达系列  传统CFAR检测(有序统计类).assets/image-20230514141039567.png)]

1.OS-CFAR

有序统计类CFAR检测器(OS-CFAR)与均值类CFAR检测器处理过程不同,在对背景杂波功率进行估计时,需要将所有参考单元进行升序排列得到一个新的有序数列,在新序列中选取第k个值作为背景杂波功率值,所以带检测单元的计算表达式为:
Z o s = X k Zos=X_k Zos=Xk
门限因子为k,门限值S:
S = k Z o s = k x k S=kZos=kx_k S=kZos=kxk
相较于均值类CFAR检测器来说,OS-CFAR检测器多了一个参数k,k的取值范围一般在1/2~3/4之间。

2.TM-CFAR

剔除平均(trimmed-mean)检测器在OS-CFAR检测器基础上,又剔除了r1个最小单元和r2个最大单元,对剩余的参考单元取均值作为杂波背景估计:
Z t m = ∑ i = r 1 + 1 N − r 2 x i Ztm=\sum_{i=r1+1}^{N-r2}{x_i} Ztm=i=r1+1Nr2xi
门限值S:
S = k Z t m = k ∑ i = r 1 + 1 N − r 2 x i S=kZtm=k\sum_{i=r1+1}^{N-r2}{x_i} S=kZtm=ki=r1+1Nr2xi

3.仿真对比

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

参数设置:

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

(1)均匀环境

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CWELftHz-1684046119666)(毫米波雷达系列  传统CFAR检测(有序统计类).assets/OS_TM_均匀环境单目标检测.png)]

(2)多目标

在这里插入图片描述

在这里插入图片描述

(3)杂波边缘

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uCIgTLVN-1684046119669)(毫米波雷达系列  传统CFAR检测(有序统计类).assets/PS-TM-CFAR边缘杂波环境中.png)]

从结果图中可以看出,在均匀环境中三种检测器均在第80个距离单元处检测到目标,在均匀环境中有序统计类CFAR检测器和CA-CFAR检测器一样具有良好的检测性能;在存在两个目标的环境中,只有CA-CFAR检测器发生漏警,OS-CFAR和TM-CFAR均可以检测出全部目标,并且OS-CFAR门限值更加平缓,说明在多目标环境中有序统计类CFAR检测器依旧表现出优异的检测性能。当存在三个目标时,OS-CFAR和TM-CFAR都可以检测出所有目标,而CA-CFAR仍然存在目标遮蔽现象,可以得知有序统计类CFAR检测器在多目标环境中的优势是均值类CFAR检测器无法比拟的;统计有序类CFAR检测器在边缘杂波环境下的虚警控制能力一般,在杂波边缘高功率附近容易发生虚警现象。

(4)代码

OS-CFAR

function [ XT ] = cfar_os( xc, N, k, pro_N, PAD)
%   假设回波服从高斯分布
%   alpha赋值有些问题,一个比较复杂的高次函数

%% 计算alpha
% syms alpha PFA;
% PFA(alpha)=gamma(N-1).*gamma(N-k+alpha-1)./gamma(N-k-1)./gamma(N+alpha-1);
% [alpha,~,~]=solve(PFA(alpha)==PAD,'ReturnConditions', true) ;

alpha=N.*(PAD.^(-1./N)-1);
persistent left; %类似于Java中静态变量
persistent right;
persistent HalfSlide;
persistent HalfProt;
persistent len;
persistent Ksite;
if isempty(left)
    HalfSlide=N/2;
    HalfProt=pro_N/2;
    left=1+HalfProt+HalfSlide;                              % 左边界
    right=length(xc)-HalfProt-HalfSlide;                    % 右边界
    len=length(xc);
    Ksite=round(N*k);
end
XT=zeros(1,len); %检测阈值

for i=1:left-1  %左边界
    cell_right=xc(1,i+HalfProt+1:i+HalfSlide*2+HalfProt);
    cell_right=sort(cell_right);
    XT(1,i)=cell_right(Ksite)*alpha;
end

for i=left:right    %中间区域
    cell_left=xc(1,i-HalfSlide-HalfProt:i-HalfProt-1);
    cell_right=xc(1,i+HalfProt+1:i+HalfSlide+HalfProt);
    cell=sort([cell_left,cell_right]);
    XT(1,i)=cell(Ksite)*alpha;
end

for i=right+1:len    %右边界
    cell_left=xc(1,i-HalfSlide*2-HalfProt:i);
    cell_left=sort(cell_left);
    XT(1,i)=cell_left(Ksite)*alpha;
end    
end

TM-CFAR

function [ XT ] = cfar_tm( xc, N, k, pro_N, PAD,r1,r2)
%   假设回波服从高斯分布
%   alpha赋值有些问题,一个比较复杂的高次函数
alpha=N.*(PAD.^(-1./N)-1);

persistent left; %类似于Java中静态变量
persistent right;
persistent HalfSlide;
persistent HalfProt;
persistent len;
persistent Ksite;
if isempty(left)
    HalfSlide=N/2;
    HalfProt=pro_N/2;
    left=1+HalfProt+HalfSlide;                              % 左边界
    right=length(xc)-HalfProt-HalfSlide;                    % 右边界
    len=length(xc);
    Ksite=round(N*k);
end
XT=zeros(1,len); %检测阈值

for i=1:left-1  %左边界
    cell_right=xc(1,i+HalfProt+1:i+HalfSlide*2+HalfProt);
    cell_right=sort(cell_right);
    cell_r=cell_right(1+r1:end-r2);
    XT(1,i)=cell_r(Ksite)*alpha;
end

for i=left:right    %中间区域
    cell_left=xc(1,i-HalfSlide-HalfProt:i-HalfProt-1);
    cell_right=xc(1,i+HalfProt+1:i+HalfSlide+HalfProt);
    cell=sort([cell_left,cell_right]);
    cell_r=cell(1+r1:end-r2);
    XT(1,i)=cell_r(Ksite)*alpha;
end

for i=right+1:len    %右边界
    cell_left=xc(1,i-HalfSlide*2-HalfProt:i);
    cell_left=sort(cell_left);
    cell_r=cell_left(1+r1:end-r2);
    XT(1,i)=cell_r(Ksite)*alpha;
end    
end

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/524263.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Python | 深度学习】safetensors 包的介绍和使用案例(含源代码)

safetensors 是一种用于安全存储张量(与 pickle 相反)的新型简单格式,并且仍然很快(零拷贝)。 safetensors 真的很快。 一、安装 1.1 pip 安装 pip install safetensors1.2 conda 安装 conda install -c huggingf…

【HTML5系列】第二章 · HTML5新增功能

写在前面 Hello大家好, 我是【麟-小白】,一位软件工程专业的学生,喜好计算机知识。希望大家能够一起学习进步呀!本人是一名在读大学生,专业水平有限,如发现错误或不足之处,请多多指正&#xff0…

我写了一套uniapp微信小程序投票系统实战课程 (SpringBoot2+vue3.2+element plus ) 实战课程,免费分享给CSDN的朋友们

大家好,我是锋哥,最近写了一套前后端分离的uniapp微信小程序投票系统,逼格略高,专门为Java初学者提升技术层次和方便就业而精心打造。希望你们喜欢!(文末领取) 一,Java就业实战课程简…

STC单片机使用示例分别介绍 CCP/PCA在4种工作模式下的使用

STC单片机使用示例分别介绍 CCP/PCA在4种工作模式下的使用 📍针对利用PCA对上升或下降沿捕获功能,可以看这篇有关脉宽测量《STC15单片机利用PCA功能测量脉宽应用示例》 🍁应用场景: 🎉STC15系列部分单片机集成了3路可编程计数器阵列(CCP/PCA)模块(STC15W4K32S4系列单…

DOM事件模型与事件委托

事件 JS与HTML之间的交互通过事件实现。 事件就是文档或浏览器窗口中发生的一些特定的交互瞬间。 可以使用监听器来预定事件,以便事件发生时执行相应的代码。这种在传统软件工程中被称为观察者模式 事件流 事件流描述的是从页面中接受事件的顺序 事件冒泡 微软…

【李老师云计算】实验三:在Docker中部署Hadoop集群

索引 0. 前言1. Docker1.1 安装Docker1.2 启动Docker 2. Dokcer部署Hadoop2.1 设计Hadoop集群结构2.2 拉取Hadoop镜像2.3 ★解决拉取镜像时 - no space left on device2.4 创建Docker容器2.5 ★解决docker ps没有内容2.6 通过终端进入容器2.7 关闭防火墙2.8 配置SSH2.8.1 设置主…

springboot+vue留守儿童爱心网站(源码+文档)

风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的留守儿童爱心网站。项目源码以及部署相关请联系风歌,文末附上联系信息 。 💕💕作者:风…

这个代码生成器火了…SmartSoftHelp

火了,火了…SmartSoftHelp 开源C#代码生成器,专注.NET,Sqlserver,最简单,最干净,支持自编码的开源工具,SmartSoftHelp 开发辅助优化工具! 下载地址:https://pan.baidu.…

PC端网页特效

元素偏移量offset系列:(使用其相关属性可以动态的得到该元素的位置(偏移)、大小 (1)获得元素距离带有定位父元素的位置 …

sqlserver 中的表值函数和标量函数

目录 一、表值函数 1.内联表值函数 1.创建函数 2.调用函数 3.返回结果 2.多语句的表值函数 2.调用函数 3.返回结果 3.内联表值函数和多语句的表值函数的区别 1.语法上 2.结构上 二、标量函数 1.创建函数 2.调用函数 2.返回结果 总结 一、表值函数 表值函数是返回一个Table类型…

2023年必备!这些值得信赖的问卷调查工具

随着我们进入2023年,可靠的调查问卷工具对研究和数据收集的重要性比以往任何时候都更加明显。随着在线调查和远程数据收集的兴起,越来越多的用户和企业都开始注重数据安全,所以使用值得信赖和有效的工具至关重要。在这篇文章中,小…

Spring的第十六阶段:数据库的事务隔离级别

数据库事务隔离级别 1、为什么会出现数据库的隔离级别呢? 数据库隔离级别是为了解决数据库并发访问过程中产生的各种数据安全问题. 四种事务隔离级别: 一:读未提交 read uncommitted 二:读已提交 read committed ( oracle默认 ) 三&…

教大家如何使用VS Code远程开发ubuntu和服务器项目

目录 前提条件 一、ubuntu中安装openssh服务器 二、配置本地VSCode 三、本地查看、编辑ubuntu中的代码 前提条件 1.本地已经安装了Visual Studio Code IDE软件, 2.ubuntu虚拟机安装完成 一、ubuntu中安装openssh服务器 1.1使用如下命名进行安装: …

测试老鸟总结,性能测试常见测试缺陷,卷出高级突破测试圈...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 性能测试&#xf…

【机器学习】LightGBM 解读 (集成学习_Boosting_GBM)

【机器学习】LightGBM 解读 (集成学习_Boosting_GBM) 文章目录 【机器学习】LightGBM 解读 (集成学习_Boosting_GBM)1. 介绍2. 数据预处理2.1 基于梯度的单边采样(GOSS)2.2 互斥特征捆绑(EFB&am…

免费安装注册 IDM 使用流程,简单方便易操作 IDM 在B站没有显示下载按钮

文章目录 下载 IDM运行脚本winr快捷键调出运行窗口输入powershell并运行上述脚本开始注册注册成功IDM 在B站没有显示下载按钮 下载 IDM 官网链接:Internet Download Manager: The fastest download accelerator 运行脚本 # Enable TLSv1.2 for compatibility wi…

多目标优化算法求解无人机三维路径规划

一、无人机模型 无人机三维路径规划是无人机在执行任务过程中的非常关键的环节,无人机三维路径规划的主要目的是在满足任务需求和自主飞行约束的基础上,计算出发点和目标点之间的最佳航路。 1.1路径成本 无人机三维路径规划的首要目标是寻找起飞点和目…

Python学习19:输出斐波拉契数列的前n项

描述: 斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列&a…

Unity2019配置JDK、SDK、NDK、Gradle

用Unity开发了一个使用AR Foundation的小项目,导出项目需要在安卓手机上进行测试。在导出时遇到了配置环境的问题,查找了很多方法终于解决。记录一下。 我所使用的unity版本是2019.2.12f。在完成项目需要导出时,在首选项设置中需要设置JDK、…

我的职业转型之路:从点工到自动化测试工程师仅用了四个月

目录 引言 1、知识体系化 2、我的成长路线 功能测试——>UI自动化 UI自动化——>接口自动化 接口自动化——>性能测试 软件测试工程师发展规划路线 一、测试基础 二、Linux必备知识 三、Shell脚本 四、互联网程序原理 五、MySQL数据库 六、抓包工具 七、…