Converts LSPs to LP coefficients.

IppStatus ippsLSPToLPC_GSMAMR_16s(const Ipp16s* pSrcLsp, Ipp16s* pDstLpc);

pSrcLsp |
Pointer to the LSP coefficient vector with ten elements, represented using Q0.15. |

pDstLpc |
Pointer to the LP coefficient vector with 11 elements, represented using Q3.12. |

The function ippsLSPToLPC_GSMAMR is declared in ippsc.h file. This function converts a set of 10th-order LSPs to LP coefficients. The functionality is as follows:

- Calculate the polynomial coefficients
of F
_{1}(z) and F_{2}(z), using the recursive relations

for i = 1 .. 5

`f`_{1}(`i`) = 2`q`_{2i-1 }* `f`_{1}(`i`-1)
+
2`f`_{1}(`i`-2)

for j = i-1 .. 1

`f`_{1}(`j`) = `f`_{1}(`j`)
- 2`q`_{2i-1 }* `f`_{1}(`j`-1)
+
2`f`_{1}(`j`-2)

where initial values *f*_{1}(0)
= 1 and *f*_{1}
(-1) = 0.

The coefficients
*f*_{2}(i) are
computed similarly by replacing *q*_{2i-1} by
*q*_{2i}.

2. MultiplyF_{1}(z) and F_{2}(z) by
1+z^{-1} and
1-z^{-1} ,
respectively, to obtain F'_{1}(z) and F'_{2}(z),
using
the following relations:

`f`'_{1}(`i`) =
`f`_{1}(`i`) + `f`_{1}(`i`-1),

`f`'_{2}(`i`) =
`f`_{2}(`i`) + `f`_{2}(`i`-1), for i = 1,2, ..., 5.

3. Compute the LP coefficients from the polynomials
F'_{1}(z) and F'_{2}(z)
as
follows:

a_{i} =
0.5`f`'_{1}(`i`)
+ 0.5`f`'_{2}(`i`) for i
= 1,2, ..., 5, and

a_{i} =
0.5`f`'_{1}(11 - `i`)
+ 0.5`f`'_{2}(11 - `i`) for i
= 6,7, ..., 11.

ippStsNoErr |
Indicates no error. |

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

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