cc [ flag... ] file... –lmlib [ library... ] #include <mlib.h> mlib_status mlib_SignalLSP2LPC_S16(mlib_s16 *lpc, mlib_s32 lscale, const mlib_s16 *lsp, mlib_s32 order);
mlib_status mlib_SignalLSP2LPC_S16_Adp(mlib_s16 *lpc, mlib_s32 *lscale, const mlib_s16 *lsp, mlib_s32 order);
Each of the functions in this group converts line spectral pair coefficients to linear prediction coefficients.
The line spectral pair (LPS) coefficients are defined as the roots of the following two polynomials:
-(M+1) -1 P(z) = A(z) + z * A(z ) -(M+1) -1 Q(z) = A(z) - z * A(z )
where A(z) is the inverse filter
M -i A(z) = 1- SUM a(i) * z i=1
Note that since P(z) is symmetric and Q(z) is antisymmetric all roots of these polynomials are on the unit circle and they alternate each other. P(z) has a root at z = -1 (w = PI) and Q(z) has a root at z = 1 (w = 0).
The line spectral frequency (LPF) are the angular frequency of the line spectral pair (LPS) coefficients.
q = cos(w)
where q is the LPS and w is the LPF.
See Fundamentals of Speech Recognition by Lawrence Rabiner and Biing-Hwang 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 non-adaptive 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:
The linear prediction coefficients.
The scaling factor of the line spectral pair coefficients, where actual_data = output_data * 2**(-scaling_factor).
The line spectral pair coefficients in Q15 format.
The order of the linear prediction filter.
Each function returns MLIB_SUCCESS if successful. Otherwise it returns MLIB_FAILURE.
See attributes(5) for descriptions of the following attributes: