FreeCalypso > hg > gsm-codec-lib
diff libtwamr/levinson.h @ 385:c713061b6edf
libtwamr: integrate levinson.c
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Mon, 06 May 2024 06:01:56 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtwamr/levinson.h Mon May 06 06:01:56 2024 +0000 @@ -0,0 +1,62 @@ +/* +******************************************************************************** +* +* 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 : levinson.h +* Purpose : Levinson-Durbin algorithm in double precision. +* : To compute the LP filter parameters from the +* : speech autocorrelations. +* +******************************************************************************** +*/ +#ifndef levinson_h +#define levinson_h "$Id $" + +/* +******************************************************************************** +* INCLUDE FILES +******************************************************************************** +*/ +#include "typedef.h" +#include "cnst.h" + +/* +******************************************************************************** +* LOCAL VARIABLES AND TABLES +******************************************************************************** +*/ + +/* +******************************************************************************** +* DEFINITION OF DATA TYPES +******************************************************************************** +*/ +typedef struct { + Word16 old_A[M + 1]; /* Last A(z) for case of unstable filter */ +} LevinsonState; + +/* +******************************************************************************** +* DECLARATION OF PROTOTYPES +******************************************************************************** +*/ + +void Levinson_reset (LevinsonState *st); +/* reset of pre processing state (i.e. set state memory to zero) + returns 0 on success + */ + +int Levinson ( + LevinsonState *st, + Word16 Rh[], /* i : Rh[m+1] Vector of autocorrelations (msb) */ + Word16 Rl[], /* i : Rl[m+1] Vector of autocorrelations (lsb) */ + Word16 A[], /* o : A[m] LPC coefficients (m = 10) */ + Word16 rc[] /* o : rc[4] First 4 reflection coefficients */ +); + +#endif