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

📄 lpc.h

📁 用AD的16位定点DSP作音频压缩器
💻 H
字号:
{ LPC.H - constant and macro defintions}

.const N = 10;                  {Predictor order}
.const FRAME_LENGTH      = 180; {22.5ms frame at 8kHz}
.const WORDS_PR_LPCFRAME = 12;  {pitch + gain + 10 reflection coeffs.}
.const WORDS_PR_PCKFRAME = 4;   {54/16}
.const mSEC_3 = 24;             {3ms * 8kHz}
.const PITCH_DETECT_LENGTH = 120 - mSEC_3 + 1; {3 - 15 ms}

{NOTE! The following constants are dependant on N or FRAME_LENGTH,
 and must be altered manually if either of these are changed}

{Used in gain}
.const G_INP_SHIFT = -2; {FRAME_LENGTH*2^(2*(G_INP_SHIFT - 2)) < 1} 
      {input is 14 bit (signextended to 16), from codec. --^ }

{Used in autocorrelation of speech}
.const AC_SHIFT = -4;    {FRAME_LENGTH*2^(2*AC_SHIFT) < 1}

{Used in pitch}
.const P_K_SHIFT = -2;   {N*2^(2*P_K_SHIFT) < 1}
.const P_R_SHIFT = -3;   {N*2^(P_R_SHIFT)*N*2^(2*P_K_SHIFT) < 1}

{Used in synthesis}
.const INTERP_FACTOR   = 0x005b; {1/(FRAME_LENGHT - 1)/2}
.const ONE_OVER_FRAMEL = 0x00b6; {1/FRAME_LENGTH}

{MACRO definitions}

{
 DIVIDE macro
   
       Input:  %0  = 16-bit divisor
               %1  = MSW of dividend 
               ay0 = LSW of dividend 
       Output: ay0 = 16-bit result
}

.macro   divide(%0,%1);

         divs %1,%0;
         divq %0;divq %0;divq %0;divq %0;
         divq %0;divq %0;divq %0;divq %0;
         divq %0;divq %0;divq %0;divq %0;
         divq %0;divq %0;divq %0;

.endmacro;

⌨️ 快捷键说明

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