Introduction This collection door CFAR algorithm CA, SO, GO, OS, and other clutter map threshold factor solution method and function
1, CA-CFAR [very simple and can be directly solved]
%% _ Mean CFAR threshold factor is calculated %% Version: V1 %% Time: 2019.11.08 %% final optimized version [not] function [Alpha] = form_ALPHA_ca (the PFA, N) % for this function is shown here FORM_ALPHA_CA summary % PFA: probability of false alarm % N: the number of reference cells . Alpha = N * (the PFA ^ (- 1./N)-1);. End
2, SO-CFAR threshold factor [Solving this is a very complex higher-order functions, can not be solved essentially by the inverse function, as used herein, binary solution] Solution of
PFA calculation function
%% _ mean probability of false alarm is selected from small %% Time: 2019.11.27 %% Version: [V1] is not optimized function [the PFA] = form_PFA_so (ALPHA, N) % FORM_PFA_GO shown here on this function summaries % ALPHA: Threshold factor % N: the number of the reference window the PFA = 0; n-= N / 2; for I = 0:. 1-n- the PFA + 2. * Gamma the PFA = (n-I +) Gamma ./ (. 1 + I) ./ Gamma . (n-) * (2 + ALPHA / n-.) ^ (- (n-I +));. End End
2,GO-CFAR
PFA calculation function
%% _ mean probability of false alarm is selected from a large %% Time: 2019.11.27 %% Version: [V1] is not optimized function [the PFA] = form_PFA_go (ALPHA, N) % FORM_PFA_GO here show summaries on this function % ALPHA: Threshold factor % N: the number of reference windows the PFA = 0; n-= N / 2; for I = 0:. 1-n- the PFA-2 * Gamma the PFA = (n-I +) Gamma ./ (. 1 + I) ./ Gamma. . (n-) * (2 + ALPHA / n-.) ^ (- (n-I +));. End the PFA = the PFA * 2 + (. 1 + ALPHA / n-.) ^ (- n-);.. End
3, SO WHAT
Ordered false alarm probability %% _ %% Time: 2019.11.27 %% Version: [V1] is not optimized function [the PFA] = form_PFA_os (ALPHA, N, Rate) % FORM_PFA_GO shown here on this function summaries % ALPHA: threshold factor % N: the number of reference windows % Rate: point ratio K = ceil (N. * Rate); . Gamma the PFA = (. 1 + N) * Gamma (N-K +. 1 + ALPHA) ./ Gamma (N- . 1 + K) Gamma ./ (. 1 + N + ALPHA); End
4, FIG Clutter
Point parameters
False alarm probability %% _ _ clutter map point parameter %% time: 2019.11.27 %% Version: [V1] is not optimized function [the PFA] = form_PFA_cm_point (ALPHA, m, R & lt) % FORM_PFA_CM shown here on this function summary % ALPHA: threshold factor % m: an antenna rotation period of the PFA =. 1; for n-= 0: m-. 1 the PFA = the PFA * (. 1 + ALPHA * R & lt * (. 1-R & lt) ^ n-...) ^ -.. 1; End End
Surface parameters
False alarm probability %% _ _ surface clutter map parameters %% Time: 2019.11.27 %% Version: [V1] is not optimized function [the PFA] = form_PFA_cm_surface (ALPHA, m, R & lt, M) % FORM_PFA_CM shown here on this digest function of % ALPHA: threshold factor % m: an antenna rotation period % m: a reference number of cells the PFA =. 1; for n-= 0: m-. 1 . the PFA = the PFA * (. 1 + ALPHA * R & lt * (. 1-R & lt.. .) ^ n./M).^-1; End End
5, two points Solution of the core functions
%% dichotomy solve the equations %% Time: 2019.11.27 %% Version: v1 [not] optimization function [d1] = func_SOLUTION_binary (d1_scope, d2_precision, FUNC, the Parameter) % FUNC_SOLUTION_BINARY here displays a summary about this function % d1: known values % d2: a target value % d2_scope: [small initial target value range, a large value} % d1_precision: numerical precision target precision value [] % func: formula % parameter: customized parameters [type] 1 = ALPHA , D2 = End Shape = size (parameter); IF Shape (2) == 2% additional parameter only need to enter a parameter the while. 1 D1 = Mean (d1_scope); D2 = FUNC (D1, parameter (1,1)); % on essentially PFA_pre d2_difference =. 1 / D2-1 / Parameter (. 1, End); IF ABS (d2_difference) <d2_precision || ABS (d1_scope (1,1) -d1_scope (1,2)) <from 0.001 return; ELSEIF d2_difference < 0 d1_scope(1,1)=d1; else d1_scope(1,2)=d1; end end elseif shape(2)==3 % 用于OS_CFAR门限因子的计算 while 1 d1=mean(d1_scope); d2=func(d1,parameter(1,1),parameter(1,2)); % 本质上是PFA_pre d2_difference=1/d2-1/parameter(1,end); if abs(d2_difference)<d2_precision || abs(d1_scope(1,1)-d1_scope(1,2))<0.001 return; elseif d2_difference<0 d1_scope(1,1)=d1; else d1_scope(1,2)=d1; end end end end
6, the test sample and output
clear; PFA=10^(-4); N=36; Rate=0.5; [ ALPHA ] = form_ALPHA_ca( PFA,N ); [ PFA1 ] = form_PFA_ca( ALPHA,N ); d1_scope=[0,100]; d2_precision=1; func1=@form_PFA_ca; func2=@form_PFA_so; func3=@form_PFA_go; func4=@form_PFA_os; func5=@form_PFA_cm_point; parameter=[N,PFA]; parameter4=[N,Rate,PFA]; parameter5=[100,1./512,PFA]; [ ALPHA1 ] = func_SOLUTION_binary( d1_scope,d2_precision,func1,parameter); [ ALPHA2 ] = func_SOLUTION_binary( d1_scope,d2_precision,func2,parameter); [ ALPHA3 ] = func_SOLUTION_binary( d1_scope,d2_precision,func3,parameter); ALPHA3_1=form_ALPHA_os (N,Rate,PFA); [ ALPHA4 ] = func_SOLUTION_binary( d1_scope,d2_precision,func4,parameter4); [ ALPHA5 ] = func_SOLUTION_binary( d1_scope,d2_precision,func5,parameter5);
The output shows:
Link: https: //pan.baidu.com/s/1mQjpBfzgAFYtsQLPPEAe7Q extraction code: 48p6