CFAR
CFAR方法实现
This commit is contained in:
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');
|
||||
Reference in New Issue
Block a user