cc [ flag... ] file... lmlib [ library... ] #include <mlib.h> mlib_status mlib_SignalLPCAutoCorrel_F32(mlib_f32 *coeff, const mlib_f32 *signal, void *state);
The mlib_SignalLPCAutoCorrel_F32() 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.
The function takes the following arguments:
coeff
signal
state
The function returns MLIB_SUCCESS if successful. Otherwise it returns MLIB_FAILURE.
See attributes(5) for descriptions of the following attributes:

mlib_SignalLPCAutoCorrelInit_F32(3MLIB), mlib_SignalLPCAutoCorrelGetEnergy_F32(3MLIB), mlib_SignalLPCAutoCorrelGetPARCOR_F32(3MLIB), mlib_SignalLPCAutoCorrelFree_F32(3MLIB), attributes(5)