lag_wind.c

来自「君正早期ucos系统(只有早期的才不没有打包成库),MPLAYER,文件系统,图」· C语言 代码 · 共 101 行

C
101
字号
/***********************************************************************************      GSM AMR-NB speech codec   R98   Version 7.6.0   December 12, 2001*                                R99   Version 3.3.0                *                                REL-4 Version 4.1.0                ***********************************************************************************      File             : lag_wind.c*      Purpose          : Lag windowing of autocorrelations.**********************************************************************************//**********************************************************************************                         MODULE INCLUDE FILE AND VERSION ID*********************************************************************************/#include "lag_wind.h"const char lag_wind_id[] = "@(#)$Id $" lag_wind_h; /**********************************************************************************                         INCLUDE FILES*********************************************************************************/#include "typedef.h"#include "basic_op.h"#include "oper_32b.h"#include "count.h" /**********************************************************************************                         LOCAL VARIABLES AND TABLES*********************************************************************************/#include "lag_wind.tab"     /* Table for Lag_Window() */#ifdef JZ4740_MXU_OPT#include "jzmedia.h"#include "fixed_op.h"#endif /**********************************************************************************                         PUBLIC PROGRAM CODE*********************************************************************************//************************************************************************* * *  FUNCTION:  Lag_window() * *  PURPOSE:  Lag windowing of autocorrelations. * *  DESCRIPTION: *         r[i] = r[i]*lag_wind[i],   i=1,...,10 * *     r[i] and lag_wind[i] are in special double precision format. *     See "oper_32b.c" for the format. * *************************************************************************/void Lag_window (    Word16 m,           /* (i)     : LPC order                        */    Word16 r_h[],       /* (i/o)   : Autocorrelations  (msb)          */    Word16 r_l[]        /* (i/o)   : Autocorrelations  (lsb)          */){    Word16 i;    Word32 x;#ifdef JZ4740_MXU_OPT    union {         Word32 r32;         Word16 r16[2];     } r_temp;    union {Word32 lag32;           Word16 lag16[2];     }lag_temp;    for (i = 1; i <= m; i++)    {        r_temp.r16[0] = r_l[i];        r_temp.r16[1] = r_h[i];        lag_temp.lag16[0] = lag_l[i - 1];        lag_temp.lag16[1] = lag_h[i - 1];                x = INSN_MULT(r_temp.r32, lag_temp.lag32);        if( x & 16384)           x += 16384;        r_h[i] = (Word16) (x >> 15);         r_l[i] = (Word16) (x - r_h[i] * 32768);    }#else    for (i = 1; i <= m; i++)    {        x = Mpy_32 (r_h[i], r_l[i], lag_h[i - 1], lag_l[i - 1]);        L_Extract (x, &r_h[i], &r_l[i]);    }#endif    return;}

⌨️ 快捷键说明

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