variance.c
上传用户:szhypcb168
上传日期:2007-01-06
资源大小:2187k
文件大小:1k
源码类别:

语音压缩

开发平台:

Unix_Linux

  1. /**************************************************************************
  2. *
  3. * ROUTINE
  4. *               variance
  5. *
  6. * FUNCTION
  7. *
  8. *               calculates variance of the input array
  9. *
  10. * SYNOPSIS
  11. *               subroutine variance(arr, no, var, avg)
  12. *
  13. *   formal
  14. *
  15. *                       data    I/O
  16. *       name            type    type    function
  17. *       -------------------------------------------------------------------
  18. *       arr float i input data array
  19. * no int i number of elements in array
  20. * var float o variance
  21. * avg real i/o average
  22. *
  23. ***************************************************************************
  24. *
  25. * DESCRIPTION
  26. *
  27. *
  28. ***************************************************************************
  29. *
  30. * CALLED BY
  31. *
  32. *       smoothcbgain   smoothtau
  33. *
  34. * CALLS
  35. *
  36. *
  37. *
  38. **************************************************************************/
  39. variance(arr, no, var, avg)
  40. int no;
  41. float arr[], *var, *avg;
  42. {
  43.   int i;
  44.   float sum, sum2;
  45.   for (sum = 0.0, i = 0; i < no; i++)
  46.     sum += arr[i];
  47.   *avg = sum / no;
  48.   for (sum2 = 0.0, i = 0; i < no; i++)
  49.     sum2 += (*avg - arr[i]) * (*avg - arr[i]);
  50.   *var = sum2 / (no - 1);
  51. }