| Signal Processing Toolbox | ![]() |
Syntax
b = polystab(a)
Description
polystab stabilizes a polynomial with respect to the unit circle; it reflects roots with magnitudes greater than 1 inside the unit circle.
b returns a row vector = polystab(a)
b containing the stabilized polynomial, where a is a vector of polynomial coefficients, normally in the z-domain.
Examples
polystab can convert a linear-phase filter into a minimum-phase filter with the same magnitude response.
h=fir1(25,0.4); hmin=polystab(h) * norm(h)/norm(polystab(h));
Algorithm
polystab finds the roots of the polynomial and maps those roots found outside the unit circle to the inside of the unit circle.
v=roots(a); vs=0.5*(sign(abs(v)-1)+1); v=(1-vs).*v + vs./conj(v); b=a(1)*poly(v);
See Also
|
Polynomial roots (see the MATLAB documentation). |
| polyscale | prony | ![]() |