86 lines
2.7 KiB
Mathematica
86 lines
2.7 KiB
Mathematica
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|||
|
|
% <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>SO-CAFR<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>N=32,Pf=1e-6
|
|||
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|||
|
|
clc;clear all;close all;
|
|||
|
|
N=36; %<EFBFBD>ο<EFBFBD><EFBFBD><EFBFBD>Ԫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
n=N/2; %<EFBFBD>뻬<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
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>
|
|||
|
|
T=1.2379;
|
|||
|
|
Pd_SO1=0;
|
|||
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%1<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><EFBFBD>%%%%%%%%%%%%%%%%%%%
|
|||
|
|
for i=1:length(SNR)
|
|||
|
|
count=0;
|
|||
|
|
for j=1:M
|
|||
|
|
%%%%%%%%%%%<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>%%%%%%%%%%%%%%%%%%%%%%%
|
|||
|
|
lambda=1;
|
|||
|
|
u=rand(1,N-1);
|
|||
|
|
exp_noise=log(u)*(-lambda);
|
|||
|
|
%%%%%%%%%%%%<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><EFBFBD><EFBFBD>ز<EFBFBD>%%%%%%%%%%%%%%%%%%%
|
|||
|
|
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;
|
|||
|
|
%%%%%%%%%%%%%%%%%%%%%%%%<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>2<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><EFBFBD>%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|||
|
|
for i=1:length(SNR)
|
|||
|
|
count=0;
|
|||
|
|
for j=1:M
|
|||
|
|
%%%%%%%%%%%<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>%%%%%%%%%%%%%%%%%%%%%%%
|
|||
|
|
lambda=1;
|
|||
|
|
u=rand(1,N-2);
|
|||
|
|
exp_noise=log(u)*(-lambda);
|
|||
|
|
%%%%%%%%%%%%<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><EFBFBD><EFBFBD>ز<EFBFBD>%%%%%%%%%%%%%%%%%%%
|
|||
|
|
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
|
|||
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><EFBFBD>%%%%%%%%%%%%%%
|
|||
|
|
Pd_SO3=0;
|
|||
|
|
for i=1:length(SNR)
|
|||
|
|
count=0;
|
|||
|
|
for j=1:M
|
|||
|
|
%%%%%%%%%%%<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>%%%%%%%%%%%%%%%%%%%%%%%
|
|||
|
|
lambda=1;
|
|||
|
|
u=rand(1,N-2);
|
|||
|
|
exp_noise=log(u)*(-lambda);
|
|||
|
|
%%%%%%%%%%%%<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><EFBFBD><EFBFBD>ز<EFBFBD>%%%%%%%%%%%%%%%%%%%
|
|||
|
|
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('<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>CA-CAFR<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>N=36,Pf=1e-6');
|
|||
|
|
legend('r=(0,1)','r=(0,2)','r=(1,1)');
|
|||
|
|
xlabel('<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(dB)');ylabel('<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
|