# LPCToLSP_GSMAMR

Converts LP coefficients to line spectrum pairs.

## Syntax

IppStatus ippsLPCToLSP_GSMAMR_16s(const Ipp16s* pSrcLpc, const Ipp16s* pSrcPrevLsp, Ipp16s* pDstLsp);

## Parameters

 pSrcLpc Pointer to the LP coefficient vector, represented using Q3.12. The LP coefficient vector has 11 elements. pSrcPrevLsp Pointer to the LSP coefficient vector associated with the previous frame, represented using Q0.15. The LSP coefficient vector has ten elements. pDstLsp Pointer to the LSP coefficient vector, represented using Q0.15. The LSP coefficient vector has ten elements.

## Description

The function ippsLPCToLSP_GSMAMR is declared in ippsc.h file. This function converts a set of 10th-order LP coefficients to an equivalent set of line spectrum pairs (LSPs). The functionality is as follows:

Calculate the polynomial coefficients of F1(z) and F2(z) using the recursive relations

f1(i+1) = ai+1 + ai-1 - f1(i),

f2(i+1) = ai+1 + ai-1 + f1(i)

i = 0...4 ,

where f1(0) = f2(0) =1.0

Use Chebyshev polynomials to evaluate F1(z) and F2(z) . The Chebyshev polynomials are given by the following formulas:

c1(ω) = cos (5ω) + f1(1) cos (4ω) + f1(2) cos (3ω) + f1(3) cos (2ω) + f1(4) cos (ω) + f1(5) / 2

c2(ω) = cos (5ω) + f2(1) cos (4ω) + f2(2) cos (3ω) + f2(3) cos (2ω) + f2(4) cos (ω) + f2(5) / 2

Evaluate F1(z) and F2(z) on 60 points equally spaced between 0 and π, checking for sign changes. A sign change indicates the existence of a root and the sign change interval is then divided 4 times to track the root.

If 10 roots for LSP coefficients are not found during the search, the previous set of LSPs is used.

## Return Values

 ippStsNoErr Indicates no error. IppStsNullPtrErr Indicates an error when one of the specified pointers is NULL.