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

语音压缩

开发平台:

Unix_Linux

  1. C==========================================================================
  2. C
  3. C ROUTINE
  4. C bwexp
  5. C
  6. C FUNCTION
  7. c Bandwidth expansion of LPC predictor coefficients
  8. C
  9. C SYNOPSIS
  10. C subroutine bwexp(alpha, pc, pcexp, n)
  11. C
  12. C   formal 
  13. C                       data    I/O
  14. C       name            type    type    function
  15. C       -------------------------------------------------------------------
  16. c alpha r i Bandwidth expansion factor
  17. c pc r i predictor coefficients
  18. c pcexp r o expanded predictor coefficients
  19. c n i i predictor order
  20. c==========================================================================
  21. c
  22. c DESCRIPTION
  23. c
  24. c   Subroutine to perform bandwidth modification by moving the poles
  25. c (or zeros) radially in the z plane.  If the bandwidth expansion
  26. c factor (alpha) is less than unity, the bandwidths are expanded by
  27. c shifting the poles (or zeros) toward the origin of the z plane.
  28. c The predictor coefficients are scaled directly according to:
  29. c
  30. c               i-1
  31. c a' = a  alpha where i = 1, . . . , order+1
  32. c  i    i
  33. c
  34. c Resulting in a bandwidth expansion of:
  35. c
  36. c -(fs/pi)ln(alpha) Hz
  37. c
  38. c (e.g., fs = 8 kHz, alpha = 0.994127 -> 15 Hz bandwidth expansion)
  39. c
  40. c CELP's LPC predictor coefficient convention is:
  41. c              p+1         -(i-1)
  42. c       A(z) = SUM   a   z          where a  = +1.0
  43. c              i=1    i                    1
  44. c
  45. C**************************************************************************
  46. c
  47. c
  48. c
  49. subroutine bwexp(alpha, pc, pcexp, n)
  50. implicit undefined(a-z)
  51. integer n
  52. real alpha, pc(n+1), pcexp(n+1)
  53. integer i
  54. c
  55. do 69 i = 1, n+1
  56.   pcexp(i)=pc(i)*alpha**(i-1)
  57. 69 continue
  58. c
  59. return
  60. end