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

📄 pre_proc.c

📁 语音编码G.729 语音编码G.729
💻 C
字号:
/*   ITU-T G.729 Annex C - Reference C code for floating point                         implementation of G.729                         Version 1.01 of 15.September.98*//*----------------------------------------------------------------------                    COPYRIGHT NOTICE----------------------------------------------------------------------   ITU-T G.729 Annex C ANSI C source code   Copyright (C) 1998, AT&T, France Telecom, NTT, University of   Sherbrooke.  All rights reserved.----------------------------------------------------------------------*//* File : PRE_PROC.C Used for the floating point version of both G.729 main body and G.729A*//*------------------------------------------------------------------------* * Function pre_process()                                                 * *                                                                        * * Preprocessing of input speech.                                         * *   - 2nd order high pass filter with cut off frequency at 140 Hz.       * *-----------------------------------------------------------------------*/#include "typedef.h"#include "ld8a.h"#include "tab_ld8a.h"/*------------------------------------------------------------------------* * 2nd order high pass filter with cut off frequency at 140 Hz.           * * Designed with SPPACK efi command -40 dB att, 0.25 ri.                  * *                                                                        * * Algorithm:                                                             * *                                                                        * *  y[i] = b[0]*x[i] + b[1]*x[i-1] + b[2]*x[i-2]                          * *                   + a[1]*y[i-1] + a[2]*y[i-2];                         * *                                                                        * *     b[3] = {0.92727435E+00, -0.18544941E+01, 0.92727435E+00};          * *     a[3] = {0.10000000E+01, 0.19059465E+01, -0.91140240E+00};          * *-----------------------------------------------------------------------*/void init_pre_process(struct preproc_state_t * state){  state->x0 = state->x1 = (F)0.0;  state->y2 = state->y1 = (F)0.0;}void pre_process(struct preproc_state_t * state,   FLOAT signal[],      /* (i/o)  : signal                     */   int lg               /* (i)    : lenght of signal           */){  int i;  FLOAT x2;  FLOAT y0;  for(i=0; i<lg; i++)  {    x2 = state->x1;    state->x1 = state->x0;    state->x0 = signal[i];    y0 = state->y1*a140[1] + state->y2*a140[2] + state->x0*b140[0] + state->x1*b140[1] + x2*b140[2];    signal[i] = y0;    state->y2 = state->y1;    state->y1 = y0;  }}

⌨️ 快捷键说明

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