autocorr.c

来自「AMR-NB 的编码实现,纯C, VC下建立工程即可用.」· C语言 代码 · 共 1,420 行 · 第 1/4 页

C
1,420
字号

	s = 0;                                 
	j = 39;
	i = 37;
	for (k = 0; k < 38; k++, i--, j--)
	{   
		s += h2[k]*h2[k + 2] << 1;	 
		rr[i][j] = rr[j][i] = ((s+ 0x00008000)>> 16 ) * (psign[i]*psign[j] >> 15 ) >> 15 ;

	}

	s = 0;                                 
	j = 39;
	i = 36 ;
	for (k = 0; k < 37; k++, i--, j--)
	{                       
		s += h2[k]*h2[k + 3] << 1;	 
		rr[i][j] = rr[j][i] = ((s+ 0x00008000)>> 16 ) * (psign[i]*psign[j] >> 15 ) >> 15 ;
	}

	s = 0;                                 
	j = 39;
	i = 35 ;
	for (k = 0; k < 36; k++, i--, j--)
	{                       
		s += h2[k]*h2[k + 4] << 1;	rr[i][j] = rr[j][i] = ((s+ 0x00008000)>> 16 ) * (psign[i]*psign[j] >> 15 ) >> 15 ;
	}

	s = 0;                                 
	j = 39;
	i = 34 ;
	for (k = 0; k < 35; k++, i--, j--)
	{                       
		s += h2[k]*h2[k + 5] << 1; rr[i][j] = rr[j][i] = ((s+ 0x00008000)>> 16 ) * (psign[i]*psign[j] >> 15 ) >> 15 ;

	}

	s = 0;                                 
	j = 39;
	i = 33 ;
	for (k = 0; k < 34; k++, i--, j--)
	{    
		s += h2[k]*h2[k + 6] << 1;	 
		rr[i][j] = rr[j][i] = ((s+ 0x00008000)>> 16 ) * (psign[i]*psign[j] >> 15 ) >> 15 ;
	}

	s = 0;                                 
	j = 39;
	i = 32 ;
	for (k = 0; k < 33; k++, i--, j--)
	{                       
		s += h2[k]*h2[k + 7] << 1;	 rr[i][j] = rr[j][i] = ((s+ 0x00008000)>> 16 ) * (psign[i]*psign[j] >> 15 ) >> 15 ;

	}

	s = 0;                                 
	j = 39;
	i = 31;
	for (k = 0; k < 32; k++, i--, j--)
	{                       
		s += h2[k]*h2[k + 8] << 1;	 
		rr[i][j] = rr[j][i] = ((s+ 0x00008000)>> 16 ) * (psign[i]*psign[j] >> 15 ) >> 15 ;
	}

	s = 0;                                 
	j = 39;
	i = 30;
	for (k = 0; k < 31; k++, i--, j--)
	{                       
		s += h2[k]*h2[k + 9] << 1;	 
		rr[i][j] = rr[j][i] = ((s+ 0x00008000)>> 16 ) * (psign[i]*psign[j] >> 15 ) >> 15 ;
	}

	s = 0;                                 
	j = 39;
	i = 29;
	for (k = 0; k < 30; k++, i--, j--)
	{                       
		s += h2[k]*h2[k + 10] << 1;	 
		rr[i][j] = rr[j][i] = ((s+ 0x00008000)>> 16 ) * (psign[i]*psign[j] >> 15 ) >> 15 ;
	}


	s = 0;                                 
	j = 39;
	i = 28 ;
	for (k = 0; k < 29; k++, i--, j--)
	{                       
		s += h2[k]*h2[k + 11] << 1;	 
		rr[i][j] = rr[j][i] = ((s+ 0x00008000)>> 16 ) * (psign[i]*psign[j] >> 15 ) >> 15 ;
	}

	s = 0;                                 
	j = 39;
	i = 27 ;
	for (k = 0; k < 28; k++, i--, j--)
	{                       
		s += h2[k]*h2[k + 12] << 1;	 
		rr[i][j] = rr[j][i] = ((s+ 0x00008000)>> 16 ) * (psign[i]*psign[j] >> 15 ) >> 15 ;
	}

	s = 0;                                 
	j = 39;
	i = 26 ;
	for (k = 0; k < 27; k++, i--, j--)
	{                       
		s += h2[k]*h2[k + 13] << 1;	 
		rr[i][j] = rr[j][i] = ((s+ 0x00008000)>> 16 ) * (psign[i]*psign[j] >> 15 ) >> 15 ;

	}

	s = 0;                                 
	j = 39;
	i = 25 ;
	for (k = 0; k < 26; k++, i--, j--)
	{                       
		s += h2[k]*h2[k + 14] << 1;	 
		rr[i][j] = rr[j][i] = ((s+ 0x00008000)>> 16 ) * (psign[i]*psign[j] >> 15 ) >> 15 ;

	}

	s = 0;                                 
	j = 39;
	i = 24 ;
	for (k = 0; k < 25; k++, i--, j--)
	{                       
		s += h2[k]*h2[k + 15] << 1;	 
		rr[i][j] = rr[j][i] = ((s+ 0x00008000)>> 16 ) * (psign[i]*psign[j] >> 15 ) >> 15 ;

	}

	s = 0;                                 
	j = 39;
	i = 23 ;
	for (k = 0; k < 24; k++, i--, j--)
	{                       
		s += h2[k]*h2[k + 16] << 1;	 
		rr[i][j] = rr[j][i] = ((s+ 0x00008000)>> 16 ) * (psign[i]*psign[j] >> 15 ) >> 15 ;

	}

	s = 0;                                 
	j = 39;
	i = 22 ;
	for (k = 0; k < 23; k++, i--, j--)
	{                       
		s += h2[k]*h2[k + 17] << 1;	 
		rr[i][j] = rr[j][i] = ((s+ 0x00008000)>> 16 ) * (psign[i]*psign[j] >> 15 ) >> 15 ;

	}

	s = 0;                                 
	j = 39;
	i =  21;
	for (k = 0; k < 22; k++, i--, j--)
	{                       
		s += h2[k]*h2[k + 18] << 1;	 
		rr[i][j] = rr[j][i] = ((s+ 0x00008000)>> 16 ) * (psign[i]*psign[j] >> 15 ) >> 15 ;

	}

	s = 0;                                 
	j = 39;
	i = 20;
	for (k = 0; k < 21; k++, i--, j--)
	{                       
		s += h2[k]*h2[k + 19] << 1;	 
		rr[i][j] = rr[j][i] = ((s+ 0x00008000)>> 16 ) * (psign[i]*psign[j] >> 15 ) >> 15 ;

	}

	s = 0;                                 
	j = 39;
	i = 19;
	for (k = 0; k < 20; k++, i--, j--)
	{                       
		s += h2[k]*h2[k + 20] << 1;	 
		rr[i][j] = rr[j][i] = ((s+ 0x00008000)>> 16 ) * (psign[i]*psign[j] >> 15 ) >> 15 ;

       }

	s = 0;                                 
	j = 39;
	i = 18;
	for (k = 0; k < 19; k++, i--, j--)
	{                       
		s += h2[k]*h2[k + 21] << 1;	 
		rr[i][j] = rr[j][i] = ((s+ 0x00008000)>> 16 ) * (psign[i]*psign[j] >> 15 ) >> 15 ;

	}

	s = 0;                                 
	j = 39;
	i = 17 ;
	for (k = 0; k < 18; k++, i--, j--)
	{                       
		s += h2[k]*h2[k + 22] << 1;	 
		rr[i][j] = rr[j][i] = ((s+ 0x00008000)>> 16 ) * (psign[i]*psign[j] >> 15 ) >> 15 ;

	}

	s = 0;                                 
	j = 39;
	i = 16;
	for (k = 0; k < 17; k++, i--, j--)
	{                       
		s += h2[k]*h2[k + 23] << 1;	 
		rr[i][j] = rr[j][i] = ((s+ 0x00008000)>> 16 ) * (psign[i]*psign[j] >> 15 ) >> 15 ;

	}

	s = 0;                                 
	j = 39;
	i = 15 ;
	for (k = 0; k < 16; k++, i--, j--)
	{                       
		s += h2[k]*h2[k + 24] << 1;	 
		rr[i][j] = rr[j][i] = ((s+ 0x00008000)>> 16 ) * (psign[i]*psign[j] >> 15 ) >> 15 ;

	}

	s = 0;                                 
	j = 39;
	i = 14 ;
	for (k = 0; k < 15; k++, i--, j--)
	{                       
		s += h2[k]*h2[k + 25] << 1;	 
		rr[i][j] = rr[j][i] = ((s+ 0x00008000)>> 16 ) * (psign[i]*psign[j] >> 15 ) >> 15 ;

	}

	s = 0;                                 
	j = 39;
	i = 13 ;
	for (k = 0; k < 14; k++, i--, j--)
	{                       
		s += h2[k]*h2[k + 26] << 1;	 
		rr[i][j] = rr[j][i] = ((s+ 0x00008000)>> 16 ) * (psign[i]*psign[j] >> 15 ) >> 15 ;

	}

	s = 0;                                 
	j = 39;
	i = 12 ;
	for (k = 0; k < 13; k++, i--, j--)
	{                       
		s += h2[k]*h2[k + 27] << 1;	 
		rr[i][j] = rr[j][i] = ((s+ 0x00008000)>> 16 ) * (psign[i]*psign[j] >> 15 ) >> 15 ;

	}

	s = 0;                                 
	j = 39;
	i = 11;
	for (k = 0; k < 12; k++, i--, j--)
	{                       
		s += h2[k]*h2[k + 28] << 1;	 
		rr[i][j] = rr[j][i] = ((s+ 0x00008000)>> 16 ) * (psign[i]*psign[j] >> 15 ) >> 15 ;

	}

	s = 0;                                 
	j = 39;
	i = 10 ;
	for (k = 0; k < 11; k++, i--, j--)
	{                       
		s += h2[k]*h2[k + 29] << 1;	 
		rr[i][j] = rr[j][i] = ((s+ 0x00008000)>> 16 ) * (psign[i]*psign[j] >> 15 ) >> 15 ;

	}

	s = 0;                                 
	j = 39;
	i = 9;
	for (k = 0; k < 10; k++, i--, j--)
	{                       
		s += h2[k]*h2[k + 30] << 1;	 
		rr[i][j] = rr[j][i] = ((s+ 0x00008000)>> 16 ) * (psign[i]*psign[j] >> 15 ) >> 15 ;

	}

	s = 0;                                 
	j = 39;
	i = 8 ;
	for (k = 0; k < 9; k++, i--, j--)
	{                       
		s += h2[k]*h2[k + 31] << 1;	 
		rr[i][j] = rr[j][i] = ((s+ 0x00008000)>> 16 ) * (psign[i]*psign[j] >> 15 ) >> 15 ;

	}

	s = 0;                                 
	j = 39;
	i = 7 ;
	for (k = 0; k < 8; k++, i--, j--)
	{                       
		s += h2[k]*h2[k + 32] << 1;	 
		rr[i][j] = rr[j][i] = ((s+ 0x00008000)>> 16 ) * (psign[i]*psign[j] >> 15 ) >> 15 ;

	}

	s = 0;                                 
	j = 39;
	i = 6 ;
	for (k = 0; k < 7; k++, i--, j--)
	{                       
		s += h2[k]*h2[k + 33] << 1;	 
		rr[i][j] = rr[j][i] = ((s+ 0x00008000)>> 16 ) * (psign[i]*psign[j] >> 15 ) >> 15 ;

	}

	s = 0;                                 
	j = 39;
	i = 5 ;
	for (k = 0; k < 6; k++, i--, j--)
	{                       
		s += h2[k]*h2[k + 34] << 1;	 
		rr[i][j] = rr[j][i] = ((s+ 0x00008000)>> 16 ) * (psign[i]*psign[j] >> 15 ) >> 15 ;

	}

	s = 0;                                 
	j = 39;
	i = 4;
	for (k = 0; k < 5; k++, i--, j--)
	{                       
		s += h2[k]*h2[k + 35] << 1;	 
		rr[i][j] = rr[j][i] = ((s+ 0x00008000)>> 16 ) * (psign[i]*psign[j] >> 15 ) >> 15 ;

	}

	s = 0;                                 
	j = 39;
	i = 3;
	for (k = 0; k < 4; k++, i--, j--)
	{                       
		s += h2[k]*h2[k + 36] << 1;	 
		rr[i][j] = rr[j][i] = ((s+ 0x00008000)>> 16 ) * (psign[i]*psign[j] >> 15 ) >> 15 ;

	}

	s = 0;                                 
	j = 39;
	i = 2;
	for (k = 0; k < 3; k++, i--, j--)
	{                       
		s += h2[k]*h2[k + 37] << 1;	 
		rr[i][j] = rr[j][i] = ((s+ 0x00008000)>> 16 ) * (psign[i]*psign[j] >> 15 ) >> 15 ;

	}

	s = 0;                                 
	j = 39;
	i = 1 ;
	for (k = 0; k < 2; k++, i--, j--)

⌨️ 快捷键说明

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