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 | ![]() |