coeff.c
上传用户:luckfish
上传日期:2021-12-16
资源大小:77k
文件大小:10k
源码类别:

语音压缩

开发平台:

Visual C++

  1. /*
  2. 2.4 kbps MELP Proposed Federal Standard speech coder
  3. version 1.2
  4. Copyright (c) 1996, Texas Instruments, Inc.  
  5. Texas Instruments has intellectual property rights on the MELP
  6. algorithm.  The Texas Instruments contact for licensing issues for
  7. commercial and non-government use is William Gordon, Director,
  8. Government Contracts, Texas Instruments Incorporated, Semiconductor
  9. Group (phone 972 480 7442).
  10. */
  11. /*  Coeff.c: filter coefficient file */
  12. /*                                   */
  13. /*                                                                  */
  14. /* (C) 1993,1994  Texas Instruments                                 */
  15. /*                                                                  */
  16. #include <stdio.h>
  17. #include "melp.h"
  18. /* Butterworth lowpass filter */
  19. /* numerator */
  20. float lpf_num[LPF_ORD+1] = {
  21.       0.00105165,
  22.       0.00630988,
  23.       0.01577470,
  24.       0.02103294,
  25.       0.01577470,
  26.       0.00630988,
  27.       0.00105165};
  28. /* denominator */
  29. float lpf_den[LPF_ORD+1] = { 
  30.       1.00000000,
  31.      -2.97852993,
  32.       4.13608100,
  33.      -3.25976428,
  34.       1.51727884,
  35.      -0.39111723,
  36.       0.04335699};
  37. /* Butterworth bandpass filters */
  38. float bpf_num[NUM_BANDS*(BPF_ORD+1)] = {
  39.       0.00002883,
  40.       0.00017296,
  41.       0.00043239,
  42.       0.00057652,
  43.       0.00043239,
  44.       0.00017296,
  45.       0.00002883,
  46.       0.00530041,
  47.       0.00000000,
  48.      -0.01590123,
  49.       0.00000000,
  50.       0.01590123,
  51.       0.00000000,
  52.      -0.00530041,
  53.       0.03168934,
  54.       0.00000000,
  55.      -0.09506803,
  56.      -0.00000000,
  57.       0.09506803,
  58.      -0.00000000,
  59.      -0.03168934,
  60.       0.03168934,
  61.       0.00000000,
  62.      -0.09506803,
  63.       0.00000000,
  64.       0.09506803,
  65.       0.00000000,
  66.      -0.03168934,
  67.       0.00105165,
  68.      -0.00630988,
  69.       0.01577470,
  70.      -0.02103294,
  71.       0.01577470,
  72.      -0.00630988,
  73.       0.00105165};
  74. float bpf_den[NUM_BANDS*(BPF_ORD+1)] = {
  75.       1.00000000,
  76.      -4.48456301,
  77.       8.52900508,
  78.      -8.77910797,
  79.       5.14764268,
  80.      -1.62771478,
  81.       0.21658286,
  82.       1.00000000,
  83.      -4.42459751,
  84.       8.79771496,
  85.      -9.95335557,
  86.       6.75320305,
  87.      -2.60749972,
  88.       0.45354593,
  89.       1.00000000,
  90.      -1.84699031,
  91.       2.63060194,
  92.      -2.21638838,
  93.       1.57491237,
  94.      -0.62291281,
  95.       0.19782519,
  96.       1.00000000,
  97.       1.84699031,
  98.       2.63060194,
  99.       2.21638838,
  100.       1.57491237,
  101.       0.62291281,
  102.       0.19782519,
  103.       1.00000000,
  104.       2.97852993,
  105.       4.13608100,
  106.       3.25976428,
  107.       1.51727884,
  108.       0.39111723,
  109.       0.04335699};
  110. /* Hamming window coefficents */
  111. float win_cof[LPC_FRAME] = {
  112.       0.08000000,
  113.       0.08022927,
  114.       0.08091685,
  115.       0.08206205,
  116.       0.08366374,
  117.       0.08572031,
  118.       0.08822971,
  119.       0.09118945,
  120.       0.09459658,
  121.       0.09844769,
  122.       0.10273895,
  123.       0.10746609,
  124.       0.11262438,
  125.       0.11820869,
  126.       0.12421345,
  127.       0.13063268,
  128.       0.13745997,
  129.       0.14468852,
  130.       0.15231113,
  131.       0.16032019,
  132.       0.16870773,
  133.       0.17746538,
  134.       0.18658441,
  135.       0.19605574,
  136.       0.20586991,
  137.       0.21601716,
  138.       0.22648736,
  139.       0.23727007,
  140.       0.24835455,
  141.       0.25972975,
  142.       0.27138433,
  143.       0.28330667,
  144.       0.29548489,
  145.       0.30790684,
  146.       0.32056016,
  147.       0.33343221,
  148.       0.34651017,
  149.       0.35978102,
  150.       0.37323150,
  151.       0.38684823,
  152.       0.40061762,
  153.       0.41452595,
  154.       0.42855935,
  155.       0.44270384,
  156.       0.45694532,
  157.       0.47126959,
  158.       0.48566237,
  159.       0.50010932,
  160.       0.51459603,
  161.       0.52910806,
  162.       0.54363095,
  163.       0.55815022,
  164.       0.57265140,
  165.       0.58712003,
  166.       0.60154169,
  167.       0.61590200,
  168.       0.63018666,
  169.       0.64438141,
  170.       0.65847211,
  171.       0.67244472,
  172.       0.68628531,
  173.       0.69998007,
  174.       0.71351536,
  175.       0.72687769,
  176.       0.74005374,
  177.       0.75303036,
  178.       0.76579464,
  179.       0.77833383,
  180.       0.79063545,
  181.       0.80268724,
  182.       0.81447716,
  183.       0.82599349,
  184.       0.83722473,
  185.       0.84815969,
  186.       0.85878747,
  187.       0.86909747,
  188.       0.87907943,
  189.       0.88872338,
  190.       0.89801971,
  191.       0.90695917,
  192.       0.91553283,
  193.       0.92373215,
  194.       0.93154896,
  195.       0.93897547,
  196.       0.94600427,
  197.       0.95262835,
  198.       0.95884112,
  199.       0.96463638,
  200.       0.97000835,
  201.       0.97495168,
  202.       0.97946144,
  203.       0.98353313,
  204.       0.98716270,
  205.       0.99034653,
  206.       0.99308145,
  207.       0.99536472,
  208.       0.99719408,
  209.       0.99856769,
  210.       0.99948420,
  211.       0.99994268,
  212.       0.99994268,
  213.       0.99948420,
  214.       0.99856769,
  215.       0.99719408,
  216.       0.99536472,
  217.       0.99308145,
  218.       0.99034653,
  219.       0.98716270,
  220.       0.98353313,
  221.       0.97946144,
  222.       0.97495168,
  223.       0.97000835,
  224.       0.96463638,
  225.       0.95884112,
  226.       0.95262835,
  227.       0.94600427,
  228.       0.93897547,
  229.       0.93154896,
  230.       0.92373215,
  231.       0.91553283,
  232.       0.90695917,
  233.       0.89801971,
  234.       0.88872338,
  235.       0.87907943,
  236.       0.86909747,
  237.       0.85878747,
  238.       0.84815969,
  239.       0.83722473,
  240.       0.82599349,
  241.       0.81447716,
  242.       0.80268724,
  243.       0.79063545,
  244.       0.77833383,
  245.       0.76579464,
  246.       0.75303036,
  247.       0.74005374,
  248.       0.72687769,
  249.       0.71351536,
  250.       0.69998007,
  251.       0.68628531,
  252.       0.67244472,
  253.       0.65847211,
  254.       0.64438141,
  255.       0.63018666,
  256.       0.61590200,
  257.       0.60154169,
  258.       0.58712003,
  259.       0.57265140,
  260.       0.55815022,
  261.       0.54363095,
  262.       0.52910806,
  263.       0.51459603,
  264.       0.50010932,
  265.       0.48566237,
  266.       0.47126959,
  267.       0.45694532,
  268.       0.44270384,
  269.       0.42855935,
  270.       0.41452595,
  271.       0.40061762,
  272.       0.38684823,
  273.       0.37323150,
  274.       0.35978102,
  275.       0.34651017,
  276.       0.33343221,
  277.       0.32056016,
  278.       0.30790684,
  279.       0.29548489,
  280.       0.28330667,
  281.       0.27138433,
  282.       0.25972975,
  283.       0.24835455,
  284.       0.23727007,
  285.       0.22648736,
  286.       0.21601716,
  287.       0.20586991,
  288.       0.19605574,
  289.       0.18658441,
  290.       0.17746538,
  291.       0.16870773,
  292.       0.16032019,
  293.       0.15231113,
  294.       0.14468852,
  295.       0.13745997,
  296.       0.13063268,
  297.       0.12421345,
  298.       0.11820869,
  299.       0.11262438,
  300.       0.10746609,
  301.       0.10273895,
  302.       0.09844769,
  303.       0.09459658,
  304.       0.09118945,
  305.       0.08822971,
  306.       0.08572031,
  307.       0.08366374,
  308.       0.08206205,
  309.       0.08091685,
  310.       0.08022927,
  311.       0.08000000};
  312. /* Bandpass filter coeffients */
  313. float bp_cof[NUM_BANDS][MIX_ORD+1] = {
  314. {
  315.      -0.00000000,
  316.      -0.00302890,
  317.      -0.00701117,
  318.      -0.01130619,
  319.      -0.01494082,
  320.      -0.01672586,
  321.      -0.01544189,
  322.      -0.01006619,
  323.       0.00000000,
  324.       0.01474923,
  325.       0.03347158,
  326.       0.05477206,
  327.       0.07670890,
  328.       0.09703726,
  329.       0.11352143,
  330.       0.12426379,
  331.       0.12799355,
  332.       0.12426379,
  333.       0.11352143,
  334.       0.09703726,
  335.       0.07670890,
  336.       0.05477206,
  337.       0.03347158,
  338.       0.01474923,
  339.       0.00000000,
  340.      -0.01006619,
  341.      -0.01544189,
  342.      -0.01672586,
  343.      -0.01494082,
  344.      -0.01130619,
  345.      -0.00701117,
  346.      -0.00302890,
  347.      -0.00000000
  348. },
  349. {
  350.      -0.00000000,
  351.      -0.00249420,
  352.      -0.00282091,
  353.       0.00257679,
  354.       0.01451271,
  355.       0.02868120,
  356.       0.03621179,
  357.       0.02784469,
  358.      -0.00000000,
  359.      -0.04079870,
  360.      -0.07849207,
  361.      -0.09392213,
  362.      -0.07451087,
  363.      -0.02211575,
  364.       0.04567473,
  365.       0.10232715,
  366.       0.12432599,
  367.       0.10232715,
  368.       0.04567473,
  369.      -0.02211575,
  370.      -0.07451087,
  371.      -0.09392213,
  372.      -0.07849207,
  373.      -0.04079870,
  374.      -0.00000000,
  375.       0.02784469,
  376.       0.03621179,
  377.       0.02868120,
  378.       0.01451271,
  379.       0.00257679,
  380.      -0.00282091,
  381.      -0.00249420,
  382.      -0.00000000
  383. },
  384. {
  385.      -0.00000000,
  386.      -0.00231491,
  387.       0.00990113,
  388.       0.02086129,
  389.      -0.00000000,
  390.      -0.03086123,
  391.      -0.02180695,
  392.       0.00769333,
  393.      -0.00000000,
  394.      -0.01127245,
  395.       0.04726837,
  396.       0.10106105,
  397.      -0.00000000,
  398.      -0.17904543,
  399.      -0.16031428,
  400.       0.09497157,
  401.       0.25562154,
  402.       0.09497157,
  403.      -0.16031428,
  404.      -0.17904543,
  405.      -0.00000000,
  406.       0.10106105,
  407.       0.04726837,
  408.      -0.01127245,
  409.      -0.00000000,
  410.       0.00769333,
  411.      -0.02180695,
  412.      -0.03086123,
  413.      -0.00000000,
  414.       0.02086129,
  415.       0.00990113,
  416.      -0.00231491,
  417.      -0.00000000
  418. },
  419. {
  420.      -0.00000000,
  421.       0.00231491,
  422.       0.00990113,
  423.      -0.02086129,
  424.       0.00000000,
  425.       0.03086123,
  426.      -0.02180695,
  427.      -0.00769333,
  428.      -0.00000000,
  429.       0.01127245,
  430.       0.04726837,
  431.      -0.10106105,
  432.       0.00000000,
  433.       0.17904543,
  434.      -0.16031428,
  435.      -0.09497157,
  436.       0.25562154,
  437.      -0.09497157,
  438.      -0.16031428,
  439.       0.17904543,
  440.       0.00000000,
  441.      -0.10106105,
  442.       0.04726837,
  443.       0.01127245,
  444.      -0.00000000,
  445.      -0.00769333,
  446.      -0.02180695,
  447.       0.03086123,
  448.       0.00000000,
  449.      -0.02086129,
  450.       0.00990113,
  451.       0.00231491,
  452.      -0.00000000
  453. },
  454. {
  455.       0.00000000,
  456.       0.00554149,
  457.      -0.00981750,
  458.       0.00856805,
  459.      -0.00000000,
  460.      -0.01267517,
  461.       0.02162277,
  462.      -0.01841647,
  463.       0.00000000,
  464.       0.02698425,
  465.      -0.04686914,
  466.       0.04150730,
  467.      -0.00000000,
  468.      -0.07353666,
  469.       0.15896026,
  470.      -0.22734513,
  471.       0.25346255,
  472.      -0.22734513,
  473.       0.15896026,
  474.      -0.07353666,
  475.      -0.00000000,
  476.       0.04150730,
  477.      -0.04686914,
  478.       0.02698425,
  479.       0.00000000,
  480.      -0.01841647,
  481.       0.02162277,
  482.      -0.01267517,
  483.      -0.00000000,
  484.       0.00856805,
  485.      -0.00981750,
  486.       0.00554149,
  487.       0.00000000}};
  488. /* Triangle pulse dispersion filter */
  489. float disp_cof[DISP_ORD+1] = {
  490.      -0.17304259,
  491.      -0.01405709,
  492.       0.01224406,
  493.       0.11364226,
  494.       0.00198199,
  495.       0.00000658,
  496.       0.04529633,
  497.      -0.00092027,
  498.      -0.00103078,
  499.       0.02552787,
  500.      -0.06339257,
  501.      -0.00122031,
  502.       0.01412525,
  503.       0.24325127,
  504.      -0.01767043,
  505.      -0.00018612,
  506.       0.05869485,
  507.      -0.00327456,
  508.       0.00607395,
  509.       0.02753924,
  510.      -0.03351673,
  511.       0.00602189,
  512.       0.01436539,
  513.       0.82854582,
  514.       0.00033165,
  515.      -0.00360180,
  516.       0.07343483,
  517.      -0.00518645,
  518.       0.01298488,
  519.       0.02928440,
  520.      -0.01989405,
  521.       0.01216758,
  522.       0.01180979,
  523.      -0.38924775,
  524.       0.00720325,
  525.      -0.01154561,
  526.       0.08426287,
  527.      -0.00355720,
  528.       0.02151233,
  529.       0.02968464,
  530.      -0.01247640,
  531.       0.01854666,
  532.       0.00076184,
  533.      -0.07749640,
  534.       0.01244697,
  535.      -0.02721777,
  536.       0.07266098,
  537.       0.00472008,
  538.       0.03526439,
  539.       0.02674603,
  540.      -0.00744038,
  541.       0.02582623,
  542.       0.00019707,
  543.      -0.02825247,
  544.       0.01720989,
  545.      -0.06004292,
  546.      -0.07076744,
  547.       0.00914347,
  548.       0.06082730,
  549.       0.01805528,
  550.      -0.00318634,
  551.       0.03444110,
  552.       0.00026302,
  553.      -0.01053809,
  554.       0.02165922};