毫米波雷达系列 | 传统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
end
for 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<=KMR
flag(1,3)=1;
end
if sum(flag)==3%环境类型1
T(1,i)=(sumA+sumB).*alpha(1,1);
flag_out(1,i)=1;
elseif sum(flag(1,1:2))==2 && ~flag(1,3)%环境类型2
T(1,i)=max(sumA,sumB).*alpha(1,2);
flag_out(1,i)=2;
elseif sum(flag(1,1:2))==1%环境类型3
if flag(1,1)==1%环境类型3-1
T(1,i)=sumA.*alpha(1,2);
else%环境类型3-2
T(1,i)=sumB.*alpha(1,2);
end
flag_out(1,i)=3;
elseif sum(flag(1,1:2))==0%环境类型4
T(1,i)=min(sumA,sumB).*alpha(1,2);
flag_out(1,i)=4;
end
if T(1,i)<x(i)
trgt.add(i);
end
end
for 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