Convert prediction filter polynomial to reflection coefficients
k = poly2rc(a)
[k,r0] = poly2rc(a,efinal)
k = poly2rc(a) converts the prediction
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
1, poly2rc normalizes the prediction filter polynomial by
k is a row vector of size
[k,r0] = poly2rc(a,efinal) returns
the zero-lag autocorrelation,
r0, based on the final prediction
Find Reflection Coefficients from Prediction Filter Polynomial
Given a prediction filter polynomial,
a, and a final prediction error,
efinal, determine the reflection coefficients of the corresponding lattice structure and the zero-lag autocorrelation.
a = [1.0000 0.6149 0.9899 0.0000 0.0031 -0.0082]; efinal = 0.2; [k,r0] = poly2rc(a,efinal)
k = 5×1 0.3090 0.9801 0.0031 0.0081 -0.0082
r0 = 5.6032
abs(k(i)) == 1 for any
i, finding the
reflection coefficients is an ill-conditioned problem.
NaNs and provides a warning message in those
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 . To implement it,
poly2rc loops through
reverse order after discarding its first element. For each loop iteration
i, the function:
Applies the second relationship above to elements 1 through
iof the vector
a = (a-k(i)*fliplr(a))/(1-k(i)^2);
 Kay, Steven M. Modern Spectral Estimation. Englewood Cliffs, NJ: Prentice-Hall, 1988.
C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.
Usage notes and limitations:
See Variable-Sizing Restrictions for Code Generation of Toolbox Functions (MATLAB Coder).
Introduced before R2006a