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

📄 g729ev_tdbwe_fir.c

📁 最新的ITU-T的宽带语音编解码标准G.729.1,是对原先的G.729的最好的调整.码流输出速率可以进行自适应调整.满足未来通信要求.希望对大家有所帮助.
💻 C
字号:
/* ITU-T G.729EV Optimization/Characterization Candidate                         *//* Version:       1.0.a                                                          *//* Revision Date: June 28, 2006                                                  *//*   ITU-T G.729EV Optimization/Characterization Candidate    ANSI-C Source Code   Copyright (c) 2006    France Telecom, Matsushita Electric, Mindspeed, Siemens AG, ETRI, VoiceAge Corp.   All rights reserved*/#include "G729EV_TDBWE_fir.h"#include "G729EV_G729_ld8k.h"/*--------------------------------------------------------------------------* *  Function  G729EV_TDBWE_fir_initialize()                                 * *  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                 * *  TDBWE FIR filter initialization                                         * *--------------------------------------------------------------------------*/void G729EV_TDBWE_fir_initialize(G729EV_TDBWE_fir_state * state,  /* (o) */                                 Word16 * filter_coeffs)          /* (i) coefficient vector for FIR fiter */{  state->filter_coeffs = filter_coeffs;  G729EV_G729_Set_zero(state->state, G729EV_TDBWE_FREQ_ENV_SHAPING_FILTER_LENGTH_M_1);}/*--------------------------------------------------------------------------* *  Function  G729EV_TDBWE_fir()                                            * *  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                            * *  TDBWE FIR filter                                                        * *                                                                          * *  direct form (non-transposed) implementation                             * *--------------------------------------------------------------------------*/void G729EV_TDBWE_fir(G729EV_TDBWE_fir_state * state, /* (i/o) */                      Word16 * input,                 /* (i)   input signal */                      Word16 * output,                /* (o)   filtered signal */                      Word16 vector_size)             /* (i)   number of elements in input[] and output[] */{  Word16    i, k;  Word16   *buf_ptr, *state_ptr, *coeffs_ptr, *coeffs_ptr_start;  Word32    acc;  Word16    buf[G729EV_TDBWE_BUFLEN_FIR];  G729EV_G729_Copy(state->state, buf, G729EV_TDBWE_FREQ_ENV_SHAPING_FILTER_LENGTH_M_1);  G729EV_G729_Copy(input, &buf[G729EV_TDBWE_FREQ_ENV_SHAPING_FILTER_LENGTH_M_1], vector_size);  buf_ptr = buf;  coeffs_ptr_start = &state->filter_coeffs[G729EV_TDBWE_FREQ_ENV_SHAPING_FILTER_LENGTH_M_1];  FOR(i = 0; i < vector_size; i++)  {    /* filtering ... */    state_ptr = buf_ptr++;    coeffs_ptr = coeffs_ptr_start;    acc = 0x000004000;          /* rounding value */#ifdef WMOPS    move32();#endif    FOR(k = 0; k < G729EV_TDBWE_FREQ_ENV_SHAPING_FILTER_LENGTH; k++)    {      acc = L_mac0(acc, *coeffs_ptr--, *state_ptr++);    }    output[i] = extract_h(L_shl(acc, 1));#ifdef WMOPS    move16();#endif  }  /* save filter state */  G729EV_G729_Copy(&buf[vector_size], state->state, G729EV_TDBWE_FREQ_ENV_SHAPING_FILTER_LENGTH_M_1);}

⌨️ 快捷键说明

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