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

语音压缩

开发平台:

Unix_Linux

  1. C==========================================================================
  2. C
  3. C ROUTINE
  4. C               zerofilt
  5. C
  6. C FUNCTION
  7. C               Direct form all-zero filter
  8. C
  9. C SYNOPSIS
  10. C               subroutine zerofilt(b, n, z, xy, len)
  11. C
  12. C   formal 
  13. C
  14. C                       data    I/O
  15. C       name            type    type    function
  16. C       -------------------------------------------------------------------
  17. C b real i N+1 filter coefficients
  18. C n int i Filter order 
  19. C z real i N+1 filter delay elements 
  20. C (maintained by the user)
  21. C xy real i/o Input/Output data array 
  22. C len int i Number of samples to filter
  23. C
  24. C==========================================================================
  25. C       
  26. C DESCRIPTION
  27. C
  28. C Nonrecursive all-zero in-place time-domain filter.
  29. C The filter is implemented in a direct form realisation.
  30. C
  31. C               N       -i
  32. C       H(z) = SUM b(i)z
  33. C              i=0
  34. C
  35. C       x(t) ->---(z0)----- b0 >------+-----> y(t)
  36. C                  |                  |
  37. C                  z1------ b1 >------+
  38. C                  |                  |
  39. C                  z2------ b2 >------+
  40. C                  |                  |
  41. C                  :                  :
  42. C                  |                  |
  43. C                  zN------ bN >------+
  44. C
  45. C==========================================================================
  46. C
  47. C CALLED BY
  48. C
  49. C celp confg postfilt
  50. C
  51. C CALLS
  52. C
  53. C
  54. C==========================================================================
  55. C
  56. C REFERENCES
  57. C
  58. C Oppenheim & Schafer, Digital Signal Processing, PH, 1975, p. 149.
  59. C
  60. C**************************************************************************
  61. C*-
  62. subroutine zerofilt(b, n, z, xy, len)
  63. implicit undefined(a-z)
  64. integer n, len
  65. real b(0:n), z(0:n), xy(len)
  66. integer t, j
  67. real ar
  68. C
  69. do 69 t = 1, len
  70.    z(0) = xy(t)
  71.    ar   = 0.0
  72.    do 10 j = n, 1, -1
  73.       ar   = ar + z(j)*b(j)
  74.       z(j) = z(j-1)
  75. 10    continue
  76.    xy(t) = ar + z(0)*b(0)
  77. 69 continue
  78. return
  79. end