AutoCorr_GSMAMR

Estimates the autocorrelation sequence for a block of samples.

Syntax

IppStatus ippsAutoCorr_GSMAMR_16s32s(const Ipp16s* pSrcSpch, Ipp32s* pDstAutoCorr, IppSpchBitRate mode);

Parameters

pSrcSpch

Pointer to the input speech vector (240 samples), represented using Q15.0. This should be aligned on an 8‑byte boundary.

pDstAutoCorr

Pointer to the autocorrelation coefficients, of length 22. For 12.2 kbps mode, elements 0 ~ 10 contain the first set of autocorrelation lags, and elements 11 ~ 21 contain the second set of autocorrelation lags. For all other modes there is only one set of autocorrelation lags contained in vector elements 0 ~ 10.

mode

Bit rate specifier. Values between IPP_SPCHBR_4750 and IPP_SPCHBR_12200 are valid.

Description

The function ippsAutoCorr_GSMAMR is declared in ippsc.h file. This function estimates the autocorrelation sequence for a block of 240 samples (30 ms). For the12.2 kbps mode, the 160 samples associated with the current 20 ms frame are combined with the last 80 samples from the previous frame, and two autocorrelation sequences are estimated. For all other bit rates, 160 samples from the current frame are combined with the last 40 samples from the previous frame as well as the first 40 samples from the next frame, and only one autocorrelation sequence is estimated. In particular, the estimates are formed as follows:

1. Tapered windowing - asymmetric tapered windows are applied to the input speech. Different windows are selected depending on the bit rate. For 12.2 kbps frames, unique tapered windows are applied for each of the two autocorrelation estimates, that is

and

Neither w1 nor w2 has any look ahead. For all bit rates other than 12.2 kbps, a window centered on the current frame is applied, that is



2. Estimation of autocorrelation lags - autocorrelation lags are estimated from the windowed speech samples s(i), i = 0, 1, ..., 239, as follows



3. Bandwidth expansion - the following binomial lag window is applied to the autocorrelation sequence(s) obtained in step 2:



where f0 = 60 Hz and fS = 8000 Hz.

Return Values

ippStsNoErr

Indicates no error.

ippStsNullPtrErr

Indicates an error when the pSrcSpch or pDstAutoCorr pointer is NULL.

ippStsRangeErr

Indicates an error when mode is not a valid element of the enumerated type IppSpchBitRate.

Submit feedback on this help topic

Copyright © 2000 - 2011, Intel Corporation. All rights reserved.