cc [ flag... ] file... lmlib [ library... ] #include <mlib.h> mlib_status mlib_SignalLPCAutoCorrel_S16(mlib_s16 *coeff, mlib_s32 cscale, const mlib_s16 *signal, void *state);
mlib_status mlib_SignalLPCAutoCorrel_S16_Adp(mlib_s16 *coeff, mlib_s32 *cscale, const mlib_s16 *signal, void *state);
Each function performs linear predictive coding with autocorrelation method.
In linear predictive coding (LPC) model, each speech sample is represented as a linear combination of the past M samples.
M s(n) = SUM a(i) * s(ni) + G * u(n) i=1
where s(*) is the speech signal, u(*) is the excitation signal, and G is the gain constants, M is the order of the linear prediction filter. Given s(*), the goal is to find a set of coefficient a(*) that minimizes the prediction error e(*).
M e(n) = s(n)  SUM a(i) * s(ni) i=1
In autocorrelation method, the coefficients can be obtained by solving following set of linear equations.
M SUM a(i) * r(ik) = r(k), k=1,...,M i=1
where
Nk1 r(k) = SUM s(j) * s(j+k) j=0
are the autocorrelation coefficients of s(*), N is the length of the input speech vector. r(0) is the energy of the speech signal.
Note that the autocorrelation matrix R is a Toeplitz matrix (symmetric with all diagonal elements equal), and the equations can be solved efficiently with LevinsonDurbin algorithm.
See Fundamentals of Speech Recognition by Lawrence Rabiner and BiingHwang Juang, Prentice Hall, 1993.
Note for functions with adaptive scaling (with _Adp postfix), the scaling factor of the output data will be calculated based on the actual data; for functions with nonadaptive scaling (without _Adp postfix), the user supplied scaling factor will be used and the output will be saturated if necessary.
Each function takes the following arguments:
coeff
cscale
signal
state
Each function returns MLIB_SUCCESS if successful. Otherwise it returns MLIB_FAILURE.
See attributes(5) for descriptions of the following attributes:

mlib_SignalLPCAutoCorrelInit_S16(3MLIB), mlib_SignalLPCAutoCorrelGetEnergy_S16(3MLIB), mlib_SignalLPCAutoCorrelGetPARCOR_S16(3MLIB), mlib_SignalLPCAutoCorrelFree_S16(3MLIB), attributes(5)