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

毫米波雷达系列 | 传统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+n11i=1n(x)2(xix)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=1xji=1xi

其中 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×ABCA-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×BCA-CFAR
- T N / 2 × ∑ A T_{N/2}\times\sum{A} TN/2×ACA-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
信噪比SNR20
多目标单元位置110和120
比例系数3/4
r1、r22、4
VI和MR4.76、1.086
杂波边缘功率20dB、30dB

(1)均匀环境

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

(2)多目标环境

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

(3)杂波环境

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4kuxSrhH-1684215839852)(毫米波雷达系列  传统CFAR检测(自适应类).assets/VI边缘杂波不存在目标情况.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bWhVCF2q-1684215839852)(毫米波雷达系列  传统CFAR检测(自适应类).assets/VI边缘杂波存在目标情况.png)]

从结果中可以看出,在均匀环境中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


http://www.lryc.cn/news/68855.html

相关文章:

  • 【2023/05/19】NFA
  • 汽车功能安全
  • 【Python】数据分析与可视化实践:收支日统计数据可视化的实现
  • Halcon 中_xld算子的概念与应用? select_shape_std 和 select_shape_xld区别?
  • [pgrx开发postgresql数据库扩展]7.返回序列的函数编写(3)多行表序列
  • 刚入职,就想跑路了...
  • 如何让技术架构师具有预知未来业务发展的能力
  • 卷麻了,新来的00后实在是太卷了...
  • 单片机--实战练习
  • Go Etcd 分布式锁实战
  • Windows环境下pcl点云库 安装配置教程
  • 岗位分析与可视化系统(三)
  • unity进阶学习笔记:json和xml
  • 数据结构之初识树与堆
  • 虚拟化技术 — VirtIO 虚拟设备接口标准
  • Dubbo——SpringBoot集成Dubbo(@Autowired和@Reference的区别、Dubbo的服务治理)
  • 高并发系统的三把利器
  • AppiumWinAppDriver自动化测试 Failed to locate opened application window with appid问题
  • 渗透测试--6.1.aircrack-ng破解wifi密码
  • C++中的继承、以及赋值兼容转换。
  • js浏览器实现简单的实时扫一扫功能
  • unity愤怒的小鸟学习制作(二)
  • 干外包3年,彻底寄了...
  • 软考高项论文范文(三)
  • 浅谈谈谈OTA召回2023
  • 【GDI+】旋转文本/斜体字
  • python3 面试题总结
  • select poll epoll有什么区别
  • Java基础面试题突击系列1
  • go-zero和dtm分布式事务实现