clc
clear all;
close all;
%{
本程序實現的功能:
CA-CFAR,GO-CFAR,SO-CFAR,OS-CFAR的檢測概率與SNR_dB的關系
程序的參考公式來自於文獻:基於雜波圖的恆虛警處理技術研究
Detection Loss Due to Interfering Targets in Ordered Statistics CFAR
%}
R=32; %參考單元長度
n=R/2; %半滑窗長度
k=3*R/4;
pfa=10^(-6); %虛警概率
%% CA-CFAR檢測概率和SNR的關系
T_ca=pfa.^(-1./R)-1; %閾值系數
SNR_dB=0:30;
SNR=10.^(SNR_dB./10);
pd_ca=(1+(T_ca./(1+SNR))).^(-R); %CA-CFAR檢測概率
%% OS-CFAR檢測概率和SNR的關系
syms T
g=pfa-k*nchoosek(R,k)*gamma(R-k+1-T)*gamma(k)/gamma(R+T+1);
x=solve(g);
T=double(x);
T_os=T(T==abs(T)); %OS-CFAR檢測門限
pd_os=k*nchoosek(R,k)*gamma(R-k+1+T_os./(1+SNR))*gamma(k)./gamma(R+T_os./(1+SNR)+1);
%%
pd=0;
syms T4;
for i=1:n
pd=pd+2.*nchoosek(n+i-2,i-1).*(2+T4).^(-n-i+1);
end
T_SO=solve(pd==pfa,T4);
T_SO=double(T_SO);
T_SO=T_SO(T_SO==abs(T_SO)); %求得SO-CFAR的門限因子。
pfa_go=2.*(1+T4).^(-n)-pd;
T_GO=solve(pfa_go==pfa,T4);
T_GO=double(T_GO);
T_GO=T_GO(T_GO==abs(T_GO)); %求得GO-CFAR的門限因子。
pd_so=0;
pd_go
for i=1:n
pd_so=pd_so+2.*nchoosek(n+i-2,i-1).*(2+T_SO./(1+SNR)).^(-n-i+1);
pd_go=pd_go+2.*nchoosek(n+i-2,i-1).*(2+T_GO./(1+SNR)).^(-n-i+1);
%SO-CFAR的檢測概率
end
pd_go=2.*(1+T_GO./(1+SNR)).^(-n)-pd_go; %GO-CFAR的檢測概率
plot(SNR_dB,pd_ca,'r');
hold on;
plot(SNR_dB,pd_go,'b');
hold on;
plot(SNR_dB,pd_so,'y');
hold on;
plot(SNR_dB,pd_os,'g');
grid on