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

传真(Fax)编程

开发平台:

Matlab

  1. function PD = marcumsq (a,b)
  2. % This function uses Parl's method to compute PD
  3. max_test_value = 5000.; 
  4. if (a < b)
  5.    alphan0 = 1.0;
  6.    dn = a / b;
  7. else
  8.    alphan0 = 0.;
  9.    dn = b / a;
  10. end
  11. alphan_1 = 0.;
  12. betan0 = 0.5;
  13. betan_1 = 0.;
  14. D1 = dn;
  15. n = 0;
  16. ratio = 2.0 / (a * b);
  17. r1 = 0.0;
  18. betan = 0.0;
  19. alphan = 0.0;
  20. while betan < 1000.,
  21.    n = n + 1;
  22.    alphan = dn + ratio * n * alphan0 + alphan;
  23.    betan = 1.0 + ratio * n * betan0 + betan;
  24.    alphan_1 = alphan0;
  25.    alphan0 = alphan;
  26.    betan_1 = betan0;
  27.    betan0 = betan;
  28.    dn = dn * D1;
  29. end
  30. PD = (alphan0 / (2.0 * betan0)) * exp( -(a-b)^2 / 2.0);
  31. if ( a >= b)
  32.    PD = 1.0 - PD;
  33. end
  34. return
  35.