Main Content


Scale roots of polynomial


b = polyscale(a,alpha)


b = polyscale(a,alpha) scales the roots of a polynomial in the z-plane, where a is a vector containing the polynomial coefficients and alpha is the scaling factor.

If alpha is a real value in the range [0 1], then the roots of a are radially scaled toward the origin in the z-plane. Complex values for alpha allow arbitrary changes to the root locations.


collapse all

Express the solutions to the equation x7=1 as the roots of a polynomial. Plot the roots in the complex plane.

pp = [1 0 0 0 0 0 0 -1];

Figure contains an axes object. The axes object contains 4 objects of type line, text.

Scale the roots of p in and out of the unit circle. Plot the results.

hold on

for sc = [1:-0.2:0.2 1.2 1.4];
    b = polyscale(pp,sc);

axis([-1 1 -1 1]*1.5)

hold off

Figure contains an axes object. The axes object contains 11 objects of type line, text.

Load a speech signal sampled at Fs=7418Hz. The file contains a recording of a female voice saying the word "MATLAB®."

load mtlb

Model a 100-sample section of the signal using a 12th-order autoregressive polynomial. Perform bandwidth expansion of the signal by scaling the roots of the autoregressive polynomial by 0.85.

Ao = lpc(mtlb(1000:1100),12);
Ax = polyscale(Ao,0.85);

Plot the zeros, poles, and frequency responses of the models.



[ho,w] = freqz(1,Ao);
[hx,w] = freqz(1,Ax);
plot(w/pi,abs([ho hx]))

Figure contains 3 axes objects. Axes object 1 with title Original contains 4 objects of type line, text. Axes object 2 with title Flattened contains 4 objects of type line, text. Axes object 3 contains 2 objects of type line. These objects represent Original, Flattened.


By reducing the radius of the roots in an autoregressive polynomial, the bandwidth of the spectral peaks in the frequency response is expanded (flattened). This operation is often referred to as bandwidth expansion.

Version History

Introduced before R2006a

See Also