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

📄 mnru.h

📁 Reference Implementation of G.711 standard and other voice codecs
💻 H
字号:
/*  ============================================================================   File: MNRU.H                                              V.2.0-31.JUL-1995  ============================================================================                            UGST/ITU-T MNRU MODULE                          GLOBAL FUNCTION PROTOTYPES   History:   27.Jan.92	v1.0	First version <simao@cpqd.br>   01.Feb.95    v1.1    Smart prototypes that work with many compilers                         <simao@ctd.comsat.com>    31.Jul.95    v2.0    MNRU conforming to new P.81. State variables changed.  ============================================================================*/#ifndef MNRU_DEFINED#define MNRU_DEFINED 200/* Smart function prototypes: for [ag]cc, VaxC, and [tb]cc */#if !defined(ARGS)#if (defined(__STDC__) || defined(VMS) || defined(__DECC)  || defined(MSDOS) || defined(__MSDOS__))#define ARGS(s) s#else#define ARGS(s) ()#endif#endif#ifdef STL92_RNG#define RANDOM_state ori_RANDOM_state#else#define RANDOM_state new_RANDOM_state#endif/* Definition of type for random_MNRU state variables */typedef struct{  int             idum;  int             inext, inextp;  long            ma[56];	/* this is a special value; shall not be				 * changed [1],[2] */}               ori_RANDOM_state;/* Definition of type for random_MNRU state variables */typedef struct{  float *gauss;}               new_RANDOM_state;/* Definitions for the MNRU state variable */#define MNRU_STAGE_OUT_FLT 2         /* number of 2nd-order stages in filter *//* Definition of type for MNRU state variables */typedef struct{  /* State variables related to the rnadom number generation */  long            seed, clip;  double          signal_gain, noise_gain;  double         *vet, last_xk, last_yk, last_y20k_lp;  RANDOM_state    rnd_state;	/* for random_MNRU() */  char            rnd_mode;  /* State variables related to the output band-pass filtering */  double A[MNRU_STAGE_OUT_FLT][3];    /* numerator coefficients */  double B[MNRU_STAGE_OUT_FLT][2];    /* denominator coefficients */  double DLY[MNRU_STAGE_OUT_FLT][2];  /* delay storage elements (z-shifts) */}               MNRU_state;/* Prototype for MNRU and random function(s) */#ifdef NO_PROMOTIONdouble *MNRU_process ARGS((char operation, MNRU_state *s, float *input, 			   float *output, long n, long seed, char mode, 			   double Q));#elsedouble *MNRU_process ARGS((int operation, MNRU_state *s, float *input, 			   float *output, long n, long seed, int mode, 			   double Q));#endiffloat random_MNRU ARGS((char *mode, RANDOM_state *r, long seed));/* Definitions for the MNRU algorithm */#define MOD_NOISE    1#define NOISE_ONLY   0#define SIGNAL_ONLY -1#define MNRU_START     1#define MNRU_CONTINUE  0#define MNRU_STOP     -1/* Definitions for Knuth's subtractive Random Number Generator */#define RANDOM_RUN 0#define RANDOM_RESET 1#endif/*  ------------------------- End of MNRU.H ----------------------------- */

⌨️ 快捷键说明

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