threshold.m
上传用户:szahd2008
上传日期:2020-09-25
资源大小:1275k
文件大小:1k
源码类别:

传真(Fax)编程

开发平台:

Matlab

  1. function [pfa, vt] = threshold (nfa, np)
  2. % This function calculates the threshold value from nfa and np.
  3. % The newton-Raphson  recursive formula is used
  4. % This function uses "incomplete_gamma.m".
  5. delmax = .00001;
  6. eps = 0.000000001;
  7. delta =10000.;
  8. pfa = np * log(2) / nfa;
  9. sqrtpfa = sqrt(-log10(pfa));
  10. sqrtnp = sqrt(np); 
  11. vt0 = np - sqrtnp + 2.3 * sqrtpfa * (sqrtpfa + sqrtnp - 1.0);
  12. vt = vt0;
  13. while (abs(delta) >= vt0)
  14.    igf = incomplete_gamma(vt0,np);
  15.    num = 0.5^(np/nfa) - igf;
  16.    temp = (np-1) * log(vt0+eps) - vt0 - factor(np-1);
  17.    deno = exp(temp);
  18.    vt = vt0 + (num / (deno+eps));
  19.    delta = abs(vt - vt0) * 10000.0; 
  20.    vt0 = vt;
  21. end
  22.