Convert prediction filter polynomial to reflection coefficients
k = poly2rc(a)
[k,r0] = poly2rc(a,efinal)
k = poly2rc(a)
converts the prediction
filter polynomial a
to the reflection coefficients of the
corresponding lattice structure. a
can be real or complex, and
a(1)
cannot be 0. If a(1)
is not equal
to 1
, poly2rc normalizes the prediction filter polynomial by
a(1)
. k
is a row vector of size
length(a)-1
.
[k,r0] = poly2rc(a,efinal)
returns
the zero-lag autocorrelation, r0
, based on the final prediction
error, efinal
.
If abs(k(i)) == 1
for any i
, finding the
reflection coefficients is an ill-conditioned problem. poly2rc
returns some NaN
s and provides a warning message in those
cases.
A simple, fast way to check if a
has all of its roots inside the unit circle is to check
if each of the elements of k
has magnitude less than 1.
stable = all(abs(poly2rc(a))<1)
poly2rc
implements this recursive relationship:
This relationship is based on Levinson’s recursion [1]. To implement it, poly2rc
loops through a
in
reverse order after discarding its first element. For each loop iteration
i
, the function:
Sets k(i)
equal to
a(i)
Applies the second relationship above to elements 1
through i
of the
vector a
.
a = (a-k(i)*fliplr(a))/(1-k(i)^2);
[1] Kay, Steven M. Modern Spectral Estimation. Englewood Cliffs, NJ: Prentice-Hall, 1988.