Use Schur-Cohn algorithm to determine whether all roots of input polynomial are inside unit circle

Math Functions / Polynomial Functions

`dsppolyfun`

The Polynomial Stability Test block uses the Schur-Cohn algorithm to determine whether all roots of a polynomial are within the unit circle.

y = all(abs(roots(u)) < 1) % Equivalent MATLAB code

Each column of the M-by-N input matrix *u* contains
M coefficients from a distinct polynomial,

$$f(x)={u}_{1}{x}^{M-1}+{u}_{2}{x}^{M-2}+\dots +{u}_{M}$$

arranged in order of descending exponents, *u*_{1}, *u*_{2},
..., *u*_{M}. The polynomial
has order M-1 and positive integer exponents.

Inputs to the block represent the polynomial coefficients as shown in the previous equation. The block always treats length-M unoriented vector input as an M-by-1 matrix.

The output is a 1-by-N matrix with each column containing the
value `1`

or `0`

. The value `1`

indicates
that the polynomial in the corresponding column of the input is stable;
that is, the magnitudes of all solutions to *f(x)* =
0 are less than 1. The value `0`

indicates that the
polynomial in the corresponding column of the input might be unstable;
that is, the magnitude of at least one solution to *f*(*x*)
= 0 is greater than or equal to 1.

This block is most commonly used to check the pole locations
of the denominator polynomial, *A*(*z*),
of a transfer function, *H*(*z*).

$$H(z)=\frac{B(z)}{A(z)}=\frac{{b}_{1}+{b}_{2}{z}^{-1}+\dots +{b}_{m}{z}^{-(m-1)}}{{a}_{1}+{a}_{2}{z}^{-1}+\dots +{a}_{n}{z}^{-(n-1)}}$$

The poles are the *n*-1 roots of the denominator
polynomial, *A*(*z*). When any
poles are located outside the unit circle, the transfer function *H*(*z*)
is unstable. As is typical in DSP applications, the transfer function
above is specified in descending powers of *z*^{-1} rather
than *z*.

Double-precision floating point

Single-precision floating point

Boolean — Block outputs are always Boolean.

Least Squares Polynomial Fit | DSP System Toolbox |

Polynomial Evaluation | DSP System Toolbox |

`polyfit` | MATLAB |

Was this topic helpful?