impulse.c
上传用户:tsjrly
上传日期:2021-02-19
资源大小:107k
文件大小:1k
源码类别:

语音压缩

开发平台:

C/C++

  1. /**************************************************************************
  2. *
  3. * ROUTINE
  4. *               impulse
  5. *
  6. * FUNCTION
  7. *               compute impulse response with direct form filter
  8. * exclusive of adaptive code book contribution
  9. *
  10. * SYNOPSIS
  11. *               subroutine impulse(l)
  12. *
  13. *   formal
  14. *
  15. *                       data    I/O
  16. *       name            type    type    function
  17. *       -------------------------------------------------------------------
  18. *       l               int     i       impulse response length
  19. *
  20. *   external
  21. *                       data    I/O
  22. *       name            type    type    function
  23. *       -------------------------------------------------------------------
  24. * no int i
  25. * fc[] float i
  26. * h[] float i/o
  27. * gamma2 float i
  28. *
  29. ***************************************************************************
  30. *
  31. * Global Variables
  32. *
  33. *
  34. * SPECTRUM VARIABLE:
  35. * d5 real auxiliary array
  36. *
  37. ****************************************************************************
  38. * CALLED BY
  39. *
  40. * csub
  41. *
  42. * CALLS
  43. *
  44. * bwexp setr polefilt
  45. *
  46. **************************************************************************/
  47. #include "ccsub.h"
  48. extern int no;
  49. extern float fc[MAXNO+1], h[MAXLP], gamma2;
  50. impulse(l)
  51. int l;
  52. {
  53.   float d5[MAXNO+1], fctemp[MAXNO + 1];
  54.   setr(l, 0.0, h);
  55.   h[0] = 1.0;
  56.   setr(no + 1, 0.0, d5);
  57.   bwexp(gamma2, fc, fctemp, no);
  58.   polefilt(fctemp, no, d5, h, l);
  59. }