又到了三部曲系列了,离上一次的三部曲有一段时间了
一、检测概率的计算 对于np>1的情况,Marcum定义的虚警概率为: np为积累脉冲数,nfa为Marcum虚警数。对于非起伏目标,单个脉冲的检测概率由公式(2)给出(参考),当np>1时,使用Gram-Charlier级数计算检测概率。此时检测概率为: 其中,常数C3、C4和C6是Gram-Charlier级数的系数,变量V为: 其中VT是检测门限值,C3、C4、C6和 二、swerling V(0)型目标的检测 对于这类目标的起伏,使用公式15计算检测概率。此时,Gram-Charlier级数的系数为: 例子:计算swerling Ⅴ型目标的检测概率: 主函数 clc clear all close all %swerling 0型效果图 %显示np=1,10时检测概率相对于SNR的曲线 pfa = 1e-9; %虚警率 b = sqrt(-2.0 * log(pfa)); index =0 ; for snr =0:0.1:20 index = index + 1; a = sqrt(2.0 * 10^(snr/10)); pro(index)=marcumsq(a,b); prob(index) = pd_swerling5(pfa,1,10,snr); end x=0:0.1:20; plot(x,pro,'k',x,prob,'k:'); axis([0 20 0 1]); xlabel('SNR(dB)'); ylabel('检测概率'); legend('np=1','np=10'); grid on title('检测概率相对于SNR的曲线,pfa=10^-9,非相干积累') marcumsq函数
pd_swerling5函数 function pd = pd_swerling5(input1,indicator,np,snrbar) %该函数是用于计算swerling Ⅴ 或者 0 模型下np>1的目标的检测概率 %input1 Pfa或nfa % Pfa:虚警概率,nfa:Marcum虚警数 %indicator: 当input1 = Pfa时,为1,当input1 = nfa时,为2 %np:脉冲积累数 %snr:信噪比 %pd: 检测概率 if(np == 1) 'stop ,np must be greater than 1' return end format long snrbar = 10.0.^(snrbar./10); eps = 1e-8; delmax = 1e-5; delta = 1e4; %计算门限值Vt %采用fehlner将虚警数定义的公式。 if(indicator ~= 1) nfa = input1; pfa = np * log(2) / nfa; else pfa = input1; nfa = np * log(2) / pfa; end 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 %计算Gram-Charlier系数 temp1 = 2.0.*snrbar+1.0; omegabar = sqrt(np.*temp1); c3 = -(snrbar+1.0/3.0)./(sqrt(np).*temp1.^1.5); c4 = (snrbar + 0.25)./(np.*temp1.^2); 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; incomplete_gamma函数
factor函数 function [val] = factor(n) %使用对数计算n的阶乘来避免溢出 format long n = n+9.0; n2 = n * n; temp = (n-1)*log(n)-n+log(sqrt(2.0 * pi*n))+((1.0-(1.0/30+(1.0/105)/n2)/n2)/12)/n; val = temp - log((n-1)*(n-2)*(n-3)*(n-4)*(n-5)*(n-6)*(n-7)*(n-8)); 上图显示了np=1,10时检测概率相对于SNR的曲线,从图中可以看出,为获得相同的检测概率,10个脉冲非相干积累需要更少的SNR。 三、 Swerling Ⅰ型目标的检测 Swerling Ⅰ型目标的检测概率准确公式: 例子1:主函数
图中显示的是np=1和 例子2:主函数 clc clear all close all pfa = 1e-11; nfa = log(2) / pfa; index = 0; for snr = -10:0.5:30 index = index + 1; prob1(index) = pd_swerling1(nfa,1,snr); prob10(index) = pd_swerling1(nfa,10,snr); prob50(index) = pd_swerling1(nfa,50,snr); prob100(index) = pd_swerling1(nfa,100,snr); end x = -10:0.5:30; plot(x,prob1,'k',x,prob10,'k:',x,prob50,'k--',x,prob100,'k-.'); axis([-10 30 0 1]); xlabel('SNR-dB'); ylabel('检测概率'); legend('np=1','np=10','np=50','np=100'); grid on; 图中显示了np=1,10,50,100时,检测概率相对于SNR曲线,其中 pd_swerling1函数
四、总结 以上是关于swerling 0(Ⅴ)和swerling Ⅰ模型相关的检测概率和模型的全部内容,其中包括了相关模型的数学公式和matlab仿真。其中swerling 0(Ⅴ)模型介绍中对照单脉冲和非相参积累,发现非相参积累只需要很小的SNR就能达到单脉冲的效果。swerlingⅠ型中对比了swerling 0和swerlingⅠ型,有起伏和无起伏相比,要达到相同的检测概率,需要更大的SNR,另外还对比了不同np条件下,swerlingⅠ模型,检测概率和SNR之间的关系。 五、参考内容 雷达系统设计MATLAB仿真 如有侵权,请联系删除: |
|