CFAR
CFAR方法实现
This commit is contained in:
81
GO_CFAR.m
Normal file
81
GO_CFAR.m
Normal file
@@ -0,0 +1,81 @@
|
|||||||
|
% GO-CFAR干扰目标背景下检测性能仿真-
|
||||||
|
clc;clear all;close all;
|
||||||
|
N=36; %参考单元长度
|
||||||
|
n=N/2; %半滑窗长度
|
||||||
|
M=1e4; %蒙特卡洛仿真次数
|
||||||
|
SNR_dB=5:1:35; %信噪比
|
||||||
|
SNR=10.^(SNR_dB./10);
|
||||||
|
Simul_len=length(SNR); %仿真长度
|
||||||
|
T=0.8551;
|
||||||
|
Pd_GO1=0;
|
||||||
|
for i=1:length(SNR)
|
||||||
|
count=0;
|
||||||
|
for j=1:M
|
||||||
|
%%%%%%%%%%%产生指数噪声%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
lambda=1;
|
||||||
|
u=rand(1,N-1);
|
||||||
|
exp_noise=log(u)*(-lambda);
|
||||||
|
%%%%%%%%%%%%产生目标回波%%%%%%%%%%%%%%%%%%%
|
||||||
|
lambda=SNR(i)+1;
|
||||||
|
u=rand(1,2);
|
||||||
|
exp_target=log(u(1))*(-lambda);
|
||||||
|
exp_noise(N)=log(u(2))*(-lambda);
|
||||||
|
cfar_k=exp_target/max(sum(exp_noise(1:N/2)),sum(exp_noise((N/2+1):N)));
|
||||||
|
if (cfar_k>T)
|
||||||
|
count=count+1;
|
||||||
|
end
|
||||||
|
end
|
||||||
|
Pd_GO1(i)=count/M;
|
||||||
|
end
|
||||||
|
figure;
|
||||||
|
plot(SNR_dB,Pd_GO1,'b--','LineWidth',1.5);
|
||||||
|
hold on
|
||||||
|
Pd_GO2=0;
|
||||||
|
for i=1:length(SNR)
|
||||||
|
count=0;
|
||||||
|
for j=1:M
|
||||||
|
%%%%%%%%%%%产生指数噪声%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
lambda=1;
|
||||||
|
u=rand(1,N-2);
|
||||||
|
exp_noise=log(u)*(-lambda);
|
||||||
|
%%%%%%%%%%%%产生目标回波%%%%%%%%%%%%%%%%%%%
|
||||||
|
lambda=SNR(i)+1;
|
||||||
|
u=rand(1,3);
|
||||||
|
exp_target=log(u(1))*(-lambda);
|
||||||
|
exp_noise(N)=log(u(2))*(-lambda);
|
||||||
|
exp_noise(N-1)=log(u(3))*(-lambda);
|
||||||
|
cfar_k=exp_target/max(sum(exp_noise(1:N/2)),sum(exp_noise((N/2+1):N)));
|
||||||
|
if (cfar_k>T)
|
||||||
|
count=count+1;
|
||||||
|
end
|
||||||
|
end
|
||||||
|
Pd_GO2(i)=count/M;
|
||||||
|
end
|
||||||
|
plot(SNR_dB,Pd_GO2,'r--*','LineWidth',1.5);
|
||||||
|
hold on
|
||||||
|
Pd_GO3=0;
|
||||||
|
for i=1:length(SNR)
|
||||||
|
count=0;
|
||||||
|
for j=1:M
|
||||||
|
%%%%%%%%%%%产生指数噪声%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
lambda=1;
|
||||||
|
u=rand(1,N-2);
|
||||||
|
exp_noise=log(u)*(-lambda);
|
||||||
|
%%%%%%%%%%%%产生目标回波%%%%%%%%%%%%%%%%%%%
|
||||||
|
lambda=SNR(i)+1;
|
||||||
|
u=rand(1,3);
|
||||||
|
exp_target=log(u(1))*(-lambda);
|
||||||
|
exp_noise(N)=log(u(2))*(-lambda);
|
||||||
|
exp_noise(N-1)=log(u(3))*(-lambda);
|
||||||
|
exp_noise=[exp_noise(1:n-1) exp_noise(N-1) exp_noise(n:N-1) exp_noise(N)];
|
||||||
|
cfar_k=exp_target/max(sum(exp_noise(1:N/2)),sum(exp_noise((N/2+1):N)));
|
||||||
|
if (cfar_k>T)
|
||||||
|
count=count+1;
|
||||||
|
end
|
||||||
|
end
|
||||||
|
Pd_GO3(i)=count/M;
|
||||||
|
end
|
||||||
|
plot(SNR_dB,Pd_GO3,'g-.','LineWidth',1.5);
|
||||||
|
xlabel('信噪比(dB)');ylabel('检测概率');
|
||||||
|
title('干扰目标情况下GO-CAFR检测概率N=36,Pf=1e-6');
|
||||||
|
legend('r=(0,1)','r=(0,2)','r=(1,1)');
|
||||||
72
OS_CFAR.m
Normal file
72
OS_CFAR.m
Normal file
@@ -0,0 +1,72 @@
|
|||||||
|
%-OS-CFAR检测器均匀背景与杂波干扰目标背景下性能仿真-
|
||||||
|
clc;
|
||||||
|
clear all;
|
||||||
|
N=32;
|
||||||
|
|
||||||
|
r=3; %CMLD_CFAR检测器筛除掉r个较大的参考样本单元
|
||||||
|
R=N-r; %参考单元长度
|
||||||
|
n=N/2; %半滑窗长度
|
||||||
|
k=3*N/4;
|
||||||
|
T=16.2933; %标称系数
|
||||||
|
Pfa=1e-6; %虚警概率
|
||||||
|
syms T0
|
||||||
|
g=Pfa-k*nchoosek(R,k)*gamma(R-k+1+T0)*gamma(k)/gamma(R+T0+1);
|
||||||
|
x=solve(g);
|
||||||
|
T0=double(x);
|
||||||
|
M=1e4; %蒙特卡洛仿真次数
|
||||||
|
SNR_dB=5:1:35; %信噪比
|
||||||
|
SNR=10.^(SNR_dB./10);
|
||||||
|
Simul_len=length(SNR); %仿真长度
|
||||||
|
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%OS-CFAR ideal%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
for i=1:Simul_len
|
||||||
|
Pd(i)=OS_Pd_Fun(N,k,T,SNR(i));
|
||||||
|
end
|
||||||
|
plot(SNR_dB,Pd,'b');
|
||||||
|
hold on
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%OS-CFAR simulation%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
for i=1:Simul_len
|
||||||
|
count=0;
|
||||||
|
for j=1:M
|
||||||
|
lambda=1; %产生噪声,长度为N
|
||||||
|
u=rand(1,N);
|
||||||
|
exp_noise=log(u)*(-lambda);
|
||||||
|
lambda=SNR(i); %产生待检测单元
|
||||||
|
u=rand(1,2);
|
||||||
|
CUT=log(u(1))*(-lambda);
|
||||||
|
exp_noise(N)=log(u(2))*(-lambda);
|
||||||
|
exp_noise=sort(exp_noise);
|
||||||
|
if(CUT>T*exp_noise(k))
|
||||||
|
count=count+1;
|
||||||
|
end
|
||||||
|
end
|
||||||
|
Pd_sim(i)=count/M;
|
||||||
|
end
|
||||||
|
plot(SNR_dB,Pd_sim,'-*r');
|
||||||
|
hold on
|
||||||
|
%%%%%%%%%%%%%%%CMLD_CFAR检测器筛除掉r个较大的参考样本单%%%%%%%%%%%%%%%%%%
|
||||||
|
for i=1:Simul_len
|
||||||
|
count=0;
|
||||||
|
for j=1:M
|
||||||
|
lambda=1; %产生噪声,长度为N-1
|
||||||
|
u=rand(1,N-1);
|
||||||
|
exp_noise(1:N-1)=log(u)*(-lambda);
|
||||||
|
|
||||||
|
lambda=SNR(i); %产生待检测单元及一个干扰目标
|
||||||
|
u=rand(1,2);
|
||||||
|
CUT=log(u(1))*(-lambda);
|
||||||
|
exp_noise(N)=log(u(2))*(-lambda);
|
||||||
|
exp_noise=sort(exp_noise);
|
||||||
|
exp_noise1(1:N-r)=exp_noise(1:N-r);
|
||||||
|
if(CUT>T0*exp_noise1(k))
|
||||||
|
count=count+1;
|
||||||
|
end
|
||||||
|
end
|
||||||
|
Pd_sim_1(i)=count/M;
|
||||||
|
end
|
||||||
|
plot(SNR_dB,Pd_sim_1,'--g');
|
||||||
|
hold on
|
||||||
|
|
||||||
|
title('OS-CFAR 检测概率曲线,N=32,Pf=1e-6');
|
||||||
|
xlabel('信噪比(dB)');ylabel('检测概率');
|
||||||
|
legend('OS-ideal','OS-simulation','OS-1interference');
|
||||||
4
OS_Pd_Fun.m
Normal file
4
OS_Pd_Fun.m
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
function [Pd]=OS_Pd_Fun(R,k,T,lammbd)
|
||||||
|
%计算OS-CFAR的检测概率
|
||||||
|
%输入参数位R:参考单元数据,k:选取第k个排序值作为背景估计值,lammbd:信噪比,T:检测门限
|
||||||
|
Pd=k*nchoosek(R,k)*gamma(R-k+1+T/(1+lammbd))*gamma(k)/gamma(R+T/(1+lammbd)+1);
|
||||||
86
SO_CFAR.m
Normal file
86
SO_CFAR.m
Normal file
@@ -0,0 +1,86 @@
|
|||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
% 干扰目标情况下SO-CAFR检测概率N=32,Pf=1e-6
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
clc;clear all;close all;
|
||||||
|
N=36; %参考单元长度
|
||||||
|
n=N/2; %半滑窗长度
|
||||||
|
M=1e4; %蒙特卡洛仿真次数
|
||||||
|
SNR_dB=5:1:35; %信噪比
|
||||||
|
SNR=10.^(SNR_dB./10);
|
||||||
|
Simul_len=length(SNR); %仿真长度
|
||||||
|
T=1.2379;
|
||||||
|
Pd_SO1=0;
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%1干扰目标%%%%%%%%%%%%%%%%%%%
|
||||||
|
for i=1:length(SNR)
|
||||||
|
count=0;
|
||||||
|
for j=1:M
|
||||||
|
%%%%%%%%%%%产生指数噪声%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
lambda=1;
|
||||||
|
u=rand(1,N-1);
|
||||||
|
exp_noise=log(u)*(-lambda);
|
||||||
|
%%%%%%%%%%%%产生目标回波%%%%%%%%%%%%%%%%%%%
|
||||||
|
lambda=SNR(i)+1;
|
||||||
|
u=rand(1,2);
|
||||||
|
exp_target=log(u(1))*(-lambda);
|
||||||
|
exp_noise(N)=log(u(2))*(-lambda);
|
||||||
|
cfar_k=exp_target/min(sum(exp_noise(1:N/2)),sum(exp_noise((N/2+1):N)));
|
||||||
|
if (cfar_k>T)
|
||||||
|
count=count+1;
|
||||||
|
end
|
||||||
|
end
|
||||||
|
Pd_SO1(i)=count/M;
|
||||||
|
end
|
||||||
|
figure;
|
||||||
|
plot(SNR_dB,Pd_SO1,'b--','LineWidth',1.5);
|
||||||
|
hold on
|
||||||
|
Pd_SO2=0;
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%后半参考滑窗包含2干扰目标%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
for i=1:length(SNR)
|
||||||
|
count=0;
|
||||||
|
for j=1:M
|
||||||
|
%%%%%%%%%%%产生指数噪声%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
lambda=1;
|
||||||
|
u=rand(1,N-2);
|
||||||
|
exp_noise=log(u)*(-lambda);
|
||||||
|
%%%%%%%%%%%%产生目标回波%%%%%%%%%%%%%%%%%%%
|
||||||
|
lambda=SNR(i)+1;
|
||||||
|
u=rand(1,3);
|
||||||
|
exp_target=log(u(1))*(-lambda);
|
||||||
|
exp_noise(N)=log(u(2))*(-lambda);
|
||||||
|
exp_noise(N-1)=log(u(3))*(-lambda);
|
||||||
|
cfar_k=exp_target/min(sum(exp_noise(1:N/2)),sum(exp_noise((N/2+1):N)));
|
||||||
|
if (cfar_k>T)
|
||||||
|
count=count+1;
|
||||||
|
end
|
||||||
|
end
|
||||||
|
Pd_SO2(i)=count/M;
|
||||||
|
end
|
||||||
|
plot(SNR_dB,Pd_SO2,'r--*','LineWidth',1.5);
|
||||||
|
hold on
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%前后半参考滑窗各包含1干扰目标%%%%%%%%%%%%%%
|
||||||
|
Pd_SO3=0;
|
||||||
|
for i=1:length(SNR)
|
||||||
|
count=0;
|
||||||
|
for j=1:M
|
||||||
|
%%%%%%%%%%%产生指数噪声%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
lambda=1;
|
||||||
|
u=rand(1,N-2);
|
||||||
|
exp_noise=log(u)*(-lambda);
|
||||||
|
%%%%%%%%%%%%产生目标回波%%%%%%%%%%%%%%%%%%%
|
||||||
|
lambda=SNR(i)+1;
|
||||||
|
u=rand(1,3);
|
||||||
|
exp_target=log(u(1))*(-lambda);
|
||||||
|
exp_noise(N)=log(u(2))*(-lambda);
|
||||||
|
exp_noise(N-1)=log(u(3))*(-lambda);
|
||||||
|
exp_noise=[exp_noise(1:n-1) exp_noise(N-1) exp_noise(n:N-1) exp_noise(N)];
|
||||||
|
cfar_k=exp_target/min(sum(exp_noise(1:N/2)),sum(exp_noise((N/2+1):N)));
|
||||||
|
if (cfar_k>T)
|
||||||
|
count=count+1;
|
||||||
|
end
|
||||||
|
end
|
||||||
|
Pd_SO3(i)=count/M;
|
||||||
|
end
|
||||||
|
plot(SNR_dB,Pd_SO3,'g-.','LineWidth',1.5);
|
||||||
|
title('干扰目标情况下CA-CAFR检测概率N=36,Pf=1e-6');
|
||||||
|
legend('r=(0,1)','r=(0,2)','r=(1,1)');
|
||||||
|
xlabel('信噪比(dB)');ylabel('检测概率');
|
||||||
Reference in New Issue
Block a user