cc [ flag... ] file... lmlib [ library... ] #include <mlib.h> mlib_status mlib_SignalLPCCovariance_F32(mlib_f32 *coeff, const mlib_f32 *signal, void *state);
The mlib_SignalLPCCovariance_F32() function performs linear predictive coding with covariance 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 covariance method, the coefficients can be obtained by solving following set of linear equations.
M SUM a(i) * c(i,k) = c(0,k), k=1,...,M i=1
where
Nk1 c(i,k) = SUM s(j) * s(j+ki) j=0
are the covariance coefficients of s(*), N is the length of the input speech vector.
Note that the covariance matrix R is a symmetric matrix, and the equations can be solved efficiently with Cholesky decomposition method.
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_SignalLPCCovarianceInit_F32(3MLIB), mlib_SignalLPCCovarianceFree_F32(3MLIB), attributes(5)