雷达检测及MATLAB仿真(二)https://developer.aliyun.com/article/1472359
③、Swerling Ⅱ 型目标的检测
检测概率 P D P_DPD:
当 n p > 50 n_p > 50np>50 时:
此时:
1)MATLAB 源码
fig2_12.m
clear all pfa = 1e-10; nfa = log(2) / pfa; index = 0; for snr = -10:.5:30 index = index +1; prob1(index) = pd_swerling2 (nfa, 1, snr); prob10(index) = pd_swerling2 (nfa, 10, snr); prob50(index) = pd_swerling2 (nfa, 50, snr); prob100(index) = pd_swerling2 (nfa, 100, snr); end x = -10:.5:30; plot(x, prob1,'k',x,prob10,'k:',x,prob50,'k--', ... x, prob100,'k-.'); axis([-10 30 0 1]) xlabel ('SNR - dB') ylabel ('Probability of detection') legend('np = 1','np = 10','np = 50','np = 100') grid
2)仿真
检测概率相对于 SNR,Swerling Ⅱ,P f a = 1 0 − 10 P_{fa}=10^{-10}Pfa=10−10
上图显示了当 n p = 1 , 10 , 50 , 100 n_p=1,10,50,100np=1,10,50,100 时,检测概率作为 SNR 函数的曲线,其中 P f a = 1 0 − 10 P_{fa}=10^{-10}Pfa=10−10
④、Swerling Ⅲ 型目标的检测
检测概率 P D P_DPD:
n p = 1 , 2 n_p=1,2np=1,2 时:
n p > 2 n_p>2np>2 时:
1)MATLAB 源码
pd_swerling3.m
function pd = pd_swerling3 (nfa, np, snrbar) % This function is used to calculate the probability of detection % for Swerling 2 targets. format long snrbar = 10.0^(snrbar/10.); eps = 0.00000001; delmax = .00001; delta =10000.; % Calculate the threshold Vt pfa = np * log(2) / nfa; sqrtpfa = sqrt(-log10(pfa)); sqrtnp = sqrt(np); vt0 = np - sqrtnp + 2.3 * sqrtpfa * (sqrtpfa + sqrtnp - 1.0); vt = vt0; while (abs(delta) >= vt0) igf = incomplete_gamma(vt0,np); num = 0.5^(np/nfa) - igf; temp = (np-1) * log(vt0+eps) - vt0 - factor(np-1); deno = exp(temp); vt = vt0 + (num / (deno+eps)); delta = abs(vt - vt0) * 10000.0; vt0 = vt; end temp1 = vt / (1.0 + 0.5 * np *snrbar); temp2 = 1.0 + 2.0 / (np * snrbar); temp3 = 2.0 * (np - 2.0) / (np * snrbar); ko = exp(-temp1) * temp2^(np-2.) * (1.0 + temp1 - temp3); if (np <= 2) pd = ko; return else temp4 = vt^(np-1.) * exp(-vt) / (temp1 * exp(factor(np-2.))); temp5 = vt / (1.0 + 2.0 / (np *snrbar)); pd = temp4 + 1.0 - incomplete_gamma(vt,np-1.) + ko * ... incomplete_gamma(temp5,np-1.); end
fig2_13.m
clear all pfa = 1e-9; nfa = log(2) / pfa; index = 0; for snr = -10:.5:30 index = index +1; prob1(index) = pd_swerling3 (nfa, 1, snr); prob10(index) = pd_swerling3 (nfa, 10, snr); prob50(index) = pd_swerling3(nfa, 50, snr); prob100(index) = pd_swerling3 (nfa, 100, snr); end x = -10:.5:30; plot(x, prob1,'k',x,prob10,'k:',x,prob50,'k--', ... x, prob100,'k-.'); axis([-10 30 0 1]) xlabel ('SNR - dB') ylabel ('Probability of detection') legend('np = 1','np = 10','np = 50','np = 100') grid
2)仿真
检测概率相对于 SNR,Swerling Ⅲ,P f a = 1 0 − 9 P_{fa}=10^{-9}Pfa=10−9
上图显示了当 n p = 1 , 10 , 50 , 100 n_p=1,10,50,100np=1,10,50,100 时,检测概率作为 SNR 函数的曲线,其中 P f a = 1 0 − 9 P_{fa}=10^{-9}Pfa=10−9
⑤、Swerling Ⅳ 型目标的检测
检测概率 P D P_DPD:
n p < 50 n_p <50np<50 时:
当 n p > 50 n_p > 50np>50 时:
此时:
1)MATLAB 源码
pd_swerling4.m
function pd = pd_swerling4 (nfa, np, snrbar) % This function is used to calculate the probability of detection % for Swerling 4 targets. format long snrbar = 10.0^(snrbar/10.); eps = 0.00000001; delmax = .00001; delta =10000.; % Calculate the threshold Vt pfa = np * log(2) / nfa; sqrtpfa = sqrt(-log10(pfa)); sqrtnp = sqrt(np); vt0 = np - sqrtnp + 2.3 * sqrtpfa * (sqrtpfa + sqrtnp - 1.0); vt = vt0; while (abs(delta) >= vt0) igf = incomplete_gamma(vt0,np); num = 0.5^(np/nfa) - igf; temp = (np-1) * log(vt0+eps) - vt0 - factor(np-1); deno = exp(temp); vt = vt0 + (num / (deno+eps)); delta = abs(vt - vt0) * 10000.0; vt0 = vt; end h8 = snrbar /2.0; beta = 1.0 + h8; beta2 = 2.0 * beta^2 - 1.0; beta3 = 2.0 * beta^3; if (np >= 50) temp1 = 2.0 * beta -1; omegabar = sqrt(np * temp1); c3 = (beta3 - 1.) / 3.0 / beta2 / omegabar; c4 = (beta3 * beta3 - 1.0) / 4. / np /beta2 /beta2;; c6 = c3 * c3 /2.0; V = (vt - np * (1.0 + snrbar)) / omegabar; Vsqr = V *V; val1 = exp(-Vsqr / 2.0) / sqrt( 2.0 * pi); val2 = c3 * (V^2 -1.0) + c4 * V * (3.0 - V^2) - ... c6 * V * (V^4 - 10. * V^2 + 15.0); q = 0.5 * erfc (V/sqrt(2.0)); pd = q - val1 * val2; return else snr = 1.0; gamma0 = incomplete_gamma(vt/beta,np); a1 = (vt / beta)^np / (exp(factor(np)) * exp(vt/beta)); sum = gamma0; for i = 1:1:np temp1 = 1; if (i == 1) ai = a1; else ai = (vt / beta) * a1 / (np + i -1); end a1 = ai; gammai = gamma0 - ai; gamma0 = gammai; a1 = ai; for ii = 1:1:i temp1 = temp1 * (np + 1 - ii); end term = (snrbar /2.0)^i * gammai * temp1 / exp(factor(i)); sum = sum + term; end pd = 1.0 - sum / beta^np; end pd = max(pd,0.);
fig2_14.m
clear all pfa = 1e-9; nfa = log(2) / pfa; index = 0; for snr = -10:.5:30 index = index +1; prob1(index) = pd_swerling4 (nfa, 1, snr); prob10(index) = pd_swerling4 (nfa, 10, snr); prob50(index) = pd_swerling4(nfa, 50, snr); prob100(index) = pd_swerling4 (nfa, 100, snr); end x = -10:.5:30; plot(x, prob1,'k',x,prob10,'k:',x,prob50,'k--', ... x, prob100,'k-.'); axis([-10 30 0 1.1]) xlabel ('SNR - dB') ylabel ('Probability of detection') legend('np = 1','np = 10','np = 50','np = 100') grid axis tight
2)仿真
检测概率相对于 SNR,Swerling Ⅳ,P f a = 1 0 − 9 P_{fa}=10^{-9}Pfa=10−9
上图显示了当 n p = 1 , 10 , 50 , 100 n_p=1,10,50,100np=1,10,50,100 时,检测概率作为 SNR 函数的曲线,其中 P f a = 1 0 − 9 P_{fa}=10^{-9}Pfa=10−9