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

语音压缩

开发平台:

Unix_Linux

  1. c==========================================================================
  2. c
  3. c ROUTINE
  4. c               distortion
  5. c
  6. c FUNCTION
  7. c                
  8. c               computes distortion/distance measures and likelihood ratio
  9. c
  10. c SYNOPSIS
  11. c
  12. c subroutine distortion(s, ts, ws, l, no, dm, sumdm, framedm)
  13. c
  14. c   formal 
  15. c
  16. c                       data    I/O
  17. c       name            type    type    function
  18. c       -------------------------------------------------------------------
  19. c s real i "reference" speech input
  20. c ts i*2 i "test" speech input
  21. c ws real i Hamming window, length l
  22. c l int i length of comparison
  23. c no int i filter order
  24. c dm real o distances array (subframe)
  25. c sumdm real o distances array (current sum)
  26. c framedm int o number of subframes  
  27. c
  28. c==========================================================================
  29. c
  30. c DESCRIPTION
  31. c
  32. c Calculate distortions/distances (log spectral error, etc.).
  33. c See the first reference below for a complete description.  A
  34. c "reference" system is compared against a "test" system.  Because
  35. c of the nonsymetric nature of the Itakura-Saito measure which some
  36. c of these distortion measures are based, poorer measures will be
  37. c obtained if the "reference" and "test" systems are reversed.
  38. c Because of gain uncertainties, a few measures are reported.
  39. c (Peter Kroon generally uses the measure DM(4).)
  40. c
  41. c==========================================================================
  42. c REFERENCES
  43. c
  44. c "Distance Measures for Speech Processing", A.H. Gray and J.D. Markel,
  45. c IEEE Trans. on ASSP, Vol. ASSP-24, no. 5, Oct. 1976
  46. c
  47. c "Quantization and Bit Allocation in Speech Processing",
  48. c A.H. Gray and J.D. Markel,IEEE Trans. on ASSP, Vol. ASSP-24
  49. c no. 6, Dec. 1976
  50. c
  51. c "A Note on Quantization and Bit Allocation in Speech Processing",
  52. c A.H. Gray and J.D. Markel,IEEE Trans. on ASSP, Vol. ASSP-25
  53. c no. 3, June 1977
  54. c
  55. c**************************************************************************
  56. c
  57. subroutine distortion(s, ts, ws, l, no, dm, sumdm, framedm)
  58. implicit undefined(a-z)
  59. c
  60. integer l, no, framedm
  61. integer*2 ts(l)
  62. real s(l), ws(l), dm(9), sumdm(10)
  63. include 'ccsub.h'
  64. convex #include "ccsub.h"
  65. real tsw(maxl), ssw(maxl)
  66. real c0hp, chp(maxno+1), c0tsw, ctsw(maxno+1)
  67. integer j
  68. c
  69. c *apply Hamming window
  70. do 140 j = 1, l
  71.    ssw(j) = ws(j)*s(j)
  72.    tsw(j) = ws(j)*float(ts(j))
  73. 140 continue
  74. c
  75. c *calculate autocorrelation sequences
  76. call cor(ssw, l, no, c0hp, chp)
  77. call cor(tsw, l, no, c0tsw, ctsw)
  78. c
  79. c *rearrange arrays for dist
  80. do 145 j = no+1, 2, -1
  81.    chp(j)  = chp(j-1)
  82.    ctsw(j) = ctsw(j-1)
  83. 145 continue
  84. chp(1)  = c0hp
  85. ctsw(1) = c0tsw
  86. c
  87. c *find distances
  88. if (chp(1) .ne. 0.0 .and. ctsw(1) .ne. 0.0) then
  89.    call dist(no, no*4, chp, ctsw, dm, sumdm, framedm)
  90. end if
  91. return
  92. end