72 lines
1.9 KiB
Mathematica
72 lines
1.9 KiB
Mathematica
|
|
%-OS-CFAR<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD>걳<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܷ<EFBFBD><EFBFBD><EFBFBD>-
|
|||
|
|
clc;
|
|||
|
|
clear all;
|
|||
|
|
N=32;
|
|||
|
|
|
|||
|
|
r=3; %CMLD_CFAR<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɸ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>r<EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD><EFBFBD>IJο<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԫ
|
|||
|
|
R=N-r; %<EFBFBD>ο<EFBFBD><EFBFBD><EFBFBD>Ԫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
n=N/2; %<EFBFBD>뻬<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
k=3*N/4;
|
|||
|
|
T=16.2933; %<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><EFBFBD>
|
|||
|
|
Pfa=1e-6; %<EFBFBD>龯<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
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; %<EFBFBD><EFBFBD><EFBFBD>ؿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
SNR_dB=5:1:35; %<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
SNR=10.^(SNR_dB./10);
|
|||
|
|
Simul_len=length(SNR); %<EFBFBD><EFBFBD><EFBFBD>泤<EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%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; %<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ΪN
|
|||
|
|
u=rand(1,N);
|
|||
|
|
exp_noise=log(u)*(-lambda);
|
|||
|
|
lambda=SNR(i); %<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ⵥԪ
|
|||
|
|
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<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɸ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>r<EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD><EFBFBD>IJο<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>%%%%%%%%%%%%%%%%%%
|
|||
|
|
for i=1:Simul_len
|
|||
|
|
count=0;
|
|||
|
|
for j=1:M
|
|||
|
|
lambda=1; %<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ΪN-1
|
|||
|
|
u=rand(1,N-1);
|
|||
|
|
exp_noise(1:N-1)=log(u)*(-lambda);
|
|||
|
|
|
|||
|
|
lambda=SNR(i); %<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ⵥԪ<EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><EFBFBD>
|
|||
|
|
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 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,N=32,Pf=1e-6');
|
|||
|
|
xlabel('<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(dB)');ylabel('<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
|
|||
|
|
legend('OS-ideal','OS-simulation','OS-1interference');
|