1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
|
<HTML>
<HEAD>
<TITLE>TSP (libtsp/SP) - SPpcXrc</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFACD">
<H2>SPpcXrc</H2>
<HR>
<H4>Routine</H4>
<DL>
<DT>
double SPpcXrc (const float pc[], float rc[], int Np)
</DL>
<H4>Purpose</H4>
<DL>
<DT>
Convert predictor coefficients to reflection coefficients
</DL>
<H4>Description</H4>
The given predictor coefficients are converted to reflection coefficients
using a recursive algorithm. The reflection coefficients lie between -1 and
+1 if the corresponding synthesis filter is stable. The procedure implements
the following step-down recursion to get the reflection coefficients k(j)
from the initial set of predictor coefficients. The iteration index runs
from Np to 1. For each order j, the step-down procedure finds the predictor
coefficients for a predictor of order j-1 from the predictor coefficients
for a predictor of order j. The equations are as follows, where the primed
primed quantities indicate the j-1 term predictor obtained at iteration j.
<P>
<PRE>
k(j) = -p(j)
</PRE>
<P>
<PRE>
p(i) - k(j) p(j-i)
p'(i) = ------------------ , 0 < i < j,
1 - k(j) k(j)
</PRE>
<P>
Reflection coefficients and predictor coefficients are usually expressed
algebraically as vectors with 1-offset indexing. The correspondence to the
0-offset C-arrays is as follows.
<PRE>
p(1) <==> pc[0] predictor coefficient corresponding to lag 1
p(i) <==> pc[i-1] 1 <= i < Np
k(1) <==> rc[0] first reflection coefficient
k(i) <==> rc[i-1] 1 <= i < Np
</PRE>
<H4>Parameters</H4>
<DL>
<DT>
<- double SPpcXrc
<DD>
Normalized mean-square prediction error. This is the energy of the
prediction residual for a case in which the given predictor coefficients
are matched to the signal. Note that this value may be negative if the
given predictor coefficients do not correspond to a minimum phase
prediction error filter.
<DT>
-> const float pc[]
<DD>
Vector of predictor coefficients (Np values). These are the coefficients
of the predictor filter, with pc[0] being the predictor coefficient
corresponding to lag 1, and pc[Np-1] corresponding to lag Np.
<DT>
<- float rc[]
<DD>
Vector of Np reflection coefficients. The sign of these coefficients is
such that rc[Np-1] = -pc[Np-1].
<DT>
-> int Np
<DD>
Number of coefficients
</DL>
<H4>Author / revision</H4>
P. Kabal Copyright (C) 1997
/ Revision 1.12 1997/10/10
<P>
<HR>
Main Index <A HREF="../libtsp.html">libtsp</A>
</BODY>
</HTML>
|