FreeCalypso > hg > gsm-codec-lib
comparison libgsmefr/sig_proc.h @ 39:36e1363ad885
libgsmefr: initial import of ETSI header files
| author | Mychaela Falconia <falcon@freecalypso.org> |
|---|---|
| date | Thu, 24 Nov 2022 07:38:23 +0000 |
| parents | |
| children | 988fd7ff514f |
comparison
equal
deleted
inserted
replaced
| 38:38326102fc43 | 39:36e1363ad885 |
|---|---|
| 1 /*--------------------------------------------------------------* | |
| 2 * Function prototypes for general SIGnal PROCessing functions. * | |
| 3 *--------------------------------------------------------------*/ | |
| 4 | |
| 5 /* Mathematic functions */ | |
| 6 | |
| 7 Word32 Inv_sqrt ( /* (o) : output value (range: 0<=val<1) */ | |
| 8 Word32 L_x /* (i) : input value (range: 0<=val<=7fffffff) */ | |
| 9 ); | |
| 10 void Log2 ( | |
| 11 Word32 L_x, /* (i) : input value */ | |
| 12 Word16 *exponent, /* (o) : Integer part of Log2. (range: 0<=val<=30) */ | |
| 13 Word16 *fraction /* (o) : Fractional part of Log2. (range: 0<=val<1)*/ | |
| 14 ); | |
| 15 Word32 Pow2 ( /* (o) : result (range: 0<=val<=0x7fffffff) */ | |
| 16 Word16 exponent, /* (i) : Integer part. (range: 0<=val<=30) */ | |
| 17 Word16 fraction /* (i) : Fractional part. (range: 0.0<=val<1.0) */ | |
| 18 ); | |
| 19 | |
| 20 /* General signal processing */ | |
| 21 | |
| 22 void Init_Pre_Process (void); | |
| 23 void Pre_Process ( | |
| 24 Word16 signal[], /* Input/output signal */ | |
| 25 Word16 lg /* Lenght of signal */ | |
| 26 ); | |
| 27 | |
| 28 Word16 Autocorr ( | |
| 29 Word16 x[], /* (i) : Input signal */ | |
| 30 Word16 m, /* (i) : LPC order */ | |
| 31 Word16 r_h[], /* (o) : Autocorrelations (msb) */ | |
| 32 Word16 r_l[], /* (o) : Autocorrelations (lsb) */ | |
| 33 const Word16 wind[]/* (i) : window for LPC analysis. */ | |
| 34 ); | |
| 35 void Lag_window ( | |
| 36 Word16 m, /* (i) : LPC order */ | |
| 37 Word16 r_h[], /* (i/o) : Autocorrelations (msb) */ | |
| 38 Word16 r_l[] /* (i/o) : Autocorrelations (lsb) */ | |
| 39 ); | |
| 40 void Levinson ( | |
| 41 Word16 Rh[], /* (i) : Rh[m+1] Vector of autocorrelations (msb) */ | |
| 42 Word16 Rl[], /* (i) : Rl[m+1] Vector of autocorrelations (lsb) */ | |
| 43 Word16 A[], /* (o) : A[m] LPC coefficients (m = 10) */ | |
| 44 Word16 rc[] /* (o) : rc[4] First 4 reflection coefficients */ | |
| 45 ); | |
| 46 void Az_lsp ( | |
| 47 Word16 a[], /* (i) : predictor coefficients */ | |
| 48 Word16 lsp[], /* (o) : line spectral pairs */ | |
| 49 Word16 old_lsp[] /* (i) : old lsp[] (in case not found 10 roots) */ | |
| 50 ); | |
| 51 void Lsp_Az ( | |
| 52 Word16 lsp[], /* (i) : line spectral frequencies */ | |
| 53 Word16 a[] /* (o) : predictor coefficients (order = 10) */ | |
| 54 ); | |
| 55 void Lsf_lsp ( | |
| 56 Word16 lsf[], /* (i) : lsf[m] normalized (range: 0.0<=val<=0.5) */ | |
| 57 Word16 lsp[], /* (o) : lsp[m] (range: -1<=val<1) */ | |
| 58 Word16 m /* (i) : LPC order */ | |
| 59 ); | |
| 60 void Lsp_lsf ( | |
| 61 Word16 lsp[], /* (i) : lsp[m] (range: -1<=val<1) */ | |
| 62 Word16 lsf[], /* (o) : lsf[m] normalized (range: 0.0<=val<=0.5) */ | |
| 63 Word16 m /* (i) : LPC order */ | |
| 64 ); | |
| 65 void Reorder_lsf ( | |
| 66 Word16 *lsf, /* (i/o) : vector of LSFs (range: 0<=val<=0.5) */ | |
| 67 Word16 min_dist, /* (i) : minimum required distance */ | |
| 68 Word16 n /* (i) : LPC order */ | |
| 69 ); | |
| 70 void Weight_Fac ( | |
| 71 Word16 gamma, /* (i) : Spectral expansion. */ | |
| 72 Word16 fac[] /* (i/o) : Computed factors. */ | |
| 73 ); | |
| 74 void Weight_Ai ( | |
| 75 Word16 a[], /* (i) : a[m+1] LPC coefficients (m=10) */ | |
| 76 const Word16 fac[],/* (i) : Spectral expansion factors. */ | |
| 77 Word16 a_exp[] /* (o) : Spectral expanded LPC coefficients */ | |
| 78 ); | |
| 79 void Residu ( | |
| 80 Word16 a[], /* (i) : prediction coefficients */ | |
| 81 Word16 x[], /* (i) : speech signal */ | |
| 82 Word16 y[], /* (o) : residual signal */ | |
| 83 Word16 lg /* (i) : size of filtering */ | |
| 84 ); | |
| 85 void Syn_filt ( | |
| 86 Word16 a[], /* (i) : a[m+1] prediction coefficients (m=10) */ | |
| 87 Word16 x[], /* (i) : input signal */ | |
| 88 Word16 y[], /* (o) : output signal */ | |
| 89 Word16 lg, /* (i) : size of filtering */ | |
| 90 Word16 mem[], /* (i/o): memory associated with this filtering. */ | |
| 91 Word16 update /* (i) : 0=no update, 1=update of memory. */ | |
| 92 ); | |
| 93 void Convolve ( | |
| 94 Word16 x[], /* (i) : input vector */ | |
| 95 Word16 h[], /* (i) : impulse response */ | |
| 96 Word16 y[], /* (o) : output vector */ | |
| 97 Word16 L /* (i) : vector size */ | |
| 98 ); | |
| 99 void agc ( | |
| 100 Word16 *sig_in, /* (i) : postfilter input signal */ | |
| 101 Word16 *sig_out, /* (i/o): postfilter output signal */ | |
| 102 Word16 agc_fac, /* (i) : AGC factor */ | |
| 103 Word16 l_trm /* (i) : subframe size */ | |
| 104 ); | |
| 105 void agc2 ( | |
| 106 Word16 *sig_in, /* (i) : postfilter input signal */ | |
| 107 Word16 *sig_out, /* (i/o): postfilter output signal */ | |
| 108 Word16 l_trm /* (i) : subframe size */ | |
| 109 ); | |
| 110 void preemphasis ( | |
| 111 Word16 *signal, /* (i/o): input signal overwritten by the output */ | |
| 112 Word16 g, /* (i) : preemphasis coefficient */ | |
| 113 Word16 L /* (i) : size of filtering */ | |
| 114 ); |
