⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cor.c

📁 this the source code of addio compression standard CELP. Also, it is optimizied for the execution sp
💻 C
字号:
/**************************************************************************
*
* NAME
*	cor
*
* FUNCTION
*
*	compute auto-correlation coefficients by direct multiplication
*
* SYNOPSIS
*
*	subroutine cor(rar, idim, n, c0, c)
*
*   formal 
*                       data    I/O
*       name            type    type    function
*       -------------------------------------------------------------------
*       rar             float   i       Input data frame
*       idim            int     i       frame size
*       n               int     i       Number of correlation terms, 
*                                        exclusive C0
*       c0              float   o       C(0)
*       c               float   o       Auto correlation terms C(i), i=1,n
*       
***************************************************************************
*       
* DESCRIPTION
*
*       COR computes the autocorrelation coefficients of the data
*       sequence rar according to the following formula:
*
*              idim
*       C(i) = SUM   rar(k) * rar(k-i)   , where i = 0, ..., n lags
*              k=i+1
*
*       c0 = C(0)
*
*	NOTE:  rar(k-i) is truncated, so C(i) are true autocorrelations.
*
***************************************************************************
*
* CALLED BY
*
*	autohf	distortion
*
* CALLS
*
*
*
**************************************************************************/
cor(rar, idim, n, c0, c)
int idim, n;
float *rar, *c0, *c;
{
  register int i, k;
/*
  for (*c0 = 0.0, i = 0; i < idim; i++)
    *c0 += *(rar+i) * *(rar+i);
*/
    register float ar = 0.0, *tmp;
             float *tmp1;
#define STEP(K)    tmp = K + rar; ar += *tmp * *tmp;
        STEP(0);  STEP(1);  STEP(2);  STEP(3);  STEP(4);  STEP(5);
        STEP(6);  STEP(7);  STEP(8);  STEP(9);  STEP(10); STEP(11);
        STEP(12); STEP(13); STEP(14); STEP(15); STEP(16); STEP(17);
        STEP(18); STEP(19); STEP(20); STEP(21); STEP(22); STEP(23);
        STEP(24); STEP(25); STEP(26); STEP(27); STEP(28); STEP(29);
        STEP(30); STEP(31); STEP(32); STEP(33); STEP(34); STEP(35);
        STEP(36); STEP(37); STEP(38); STEP(39); STEP(40); STEP(41);
        STEP(42); STEP(43); STEP(44); STEP(45); STEP(46); STEP(47);
        STEP(48); STEP(49); STEP(50); STEP(51); STEP(52); STEP(53);
        STEP(54); STEP(55); STEP(56); STEP(57); STEP(58); STEP(59);

        STEP(60); STEP(61); STEP(62); STEP(63); STEP(64); STEP(65);
        STEP(66); STEP(67); STEP(68); STEP(69); 
        STEP(70); STEP(71); STEP(72); STEP(73); STEP(74); STEP(75);
        STEP(76); STEP(77); STEP(78); STEP(79); 
        STEP(80); STEP(81); STEP(82); STEP(83); STEP(84); STEP(85);
        STEP(86); STEP(87); STEP(88); STEP(89); 
        STEP(90); STEP(91); STEP(92); STEP(93); STEP(94); STEP(95);
        STEP(96); STEP(97); STEP(98); STEP(99); 

        STEP(100); STEP(101); STEP(102); STEP(103); STEP(104);
        STEP(105); STEP(106); STEP(107); STEP(108); STEP(109);
        STEP(110); STEP(111); STEP(112); STEP(113); STEP(114);
        STEP(115); STEP(116); STEP(117); STEP(118); STEP(119); 
        STEP(120); STEP(121); STEP(122); STEP(123); STEP(124); 
        STEP(125); STEP(126); STEP(127); STEP(128); STEP(129);
        STEP(130); STEP(131); STEP(132); STEP(133); STEP(134); 
        STEP(135); STEP(136); STEP(137); STEP(138); STEP(139); 
        STEP(140); STEP(141); STEP(142); STEP(143); STEP(144);
        STEP(145); STEP(146); STEP(147); STEP(148); STEP(149); 
        STEP(150); STEP(151); STEP(152); STEP(153); STEP(154); 
        STEP(155); STEP(156); STEP(157); STEP(158); STEP(159);

        STEP(160); STEP(161); STEP(162); STEP(163); STEP(164); 
        STEP(165); STEP(166); STEP(167); STEP(168); STEP(169); 
        STEP(170); STEP(171); STEP(172); STEP(173); STEP(174); 
        STEP(175); STEP(176); STEP(177); STEP(178); STEP(179); 
        STEP(180); STEP(181); STEP(182); STEP(183); STEP(184); 
        STEP(185); STEP(186); STEP(187); STEP(188); STEP(189); 
        STEP(190); STEP(191); STEP(192); STEP(193); STEP(194); 
        STEP(195); STEP(196); STEP(197); STEP(198); STEP(199); 
        STEP(200); STEP(201); STEP(202); STEP(203); STEP(204);
        STEP(205); STEP(206); STEP(207); STEP(208); STEP(209);
        STEP(210); STEP(211); STEP(212); STEP(213); STEP(214);
        STEP(215); STEP(216); STEP(217); STEP(218); STEP(219); 
        STEP(220); STEP(221); STEP(222); STEP(223); STEP(224); 
        STEP(225); STEP(226); STEP(227); STEP(228); STEP(229);
        STEP(230); STEP(231); STEP(232); STEP(233); STEP(234); 
        STEP(235); STEP(236); STEP(237); STEP(238); STEP(239); 

    *c0 = ar;

  for (i = 0; i < n; i++)
  {
    tmp = c + i;
    for (*tmp = 0.0, k = i+1; k < idim; k++)
    {
       tmp1 = rar+k;
      *tmp += *tmp1 * *(tmp1-i-1);
    }
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -