cc [ flag... ] file... lmlib [ library... ] #include <mlib.h> mlib_status mlib_SignalLPCPitchAnalyze_F32(mlib_s32 *pitch, const mlib_f32 *sigwgt, const mlib_s32 *region, mlib_s32 length);
The mlib_SignalLPCPitchAnalyze_F32() function performs openloop pitch analysis.
The openloop pitch analysis uses perceptual weighted signal and is done with following steps.
In the first step, three maxima of the correlation
N1 R(k) = SUM sw(j) * sw(jk) j=0
where N = length, is located for each of the three search regions.
In the second step, the retained maxima R(Ti), i=0,1,2 are normalized as following.
R(Ti) Rn(ti) = , i=0,1,2 N1 2 SQRT(SUM sw(jTi) ) j=0
where N = length.
In the third step, the best openloop delay Topt is determined as following.
Topt = T0 if (Rn(t1) ≥ (0.85 * Rn(Topt)) Topt = t1 if (Rn(t2) ≥ (0.85 * Rn(Topt)) Topt = t2
See G.729, G.729A, GSM EFR standards.
The function takes the following arguments:
pitch
sigwgt
region
length
The function returns MLIB_SUCCESS if successful. Otherwise it returns MLIB_FAILURE.
See attributes(5) for descriptions of the following attributes:

mlib_SignalLPCPitchAnalyze_S16(3MLIB), attributes(5)