Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

zplane - don't the zeros and poles need to be complex?

Asked by Tom on 22 May 2012

I'm just getting my head around the zplane function. I'm not how the values of z and p are mapped onto the pole-zero plot. I thought zeros and poles were supposed to have both real and imaginary parts - as these are the axes of the pole-zero plot. But in the examples of zplane code given in the help documentation the z and p values are just single real values. Also, for a 4 pole/zero filter there are 5 values for z and also for p. Shouldn't this be four?

1 Comment

Matt Fig on 2 Nov 2012

I'm just getting my head around the zplane function. I'm not how the values of z and p are mapped onto the pole-zero plot. I thought zeros and poles were supposed to have both real and imaginary parts - as these are the axes of the pole-zero plot. But in the examples of zplane code given in the help documentation the z and p values are just single real values. Also, for a 4 pole/zero filter there are 5 values for z and also for p. Shouldn't this be four?

Tom

Tags

Products

1 Answer

Answer by Honglei Chen on 22 May 2012
Accepted answer

zplane is a little subtle. When B and A are rows, they represent transfer functions. However, if B and A are columns, they are zeros and poles.

Compare

    [b,a] = ellip(4,.5,20,.6);
    zplane(b,a)
    zplane(roots(b),roots(a))

6 Comments

Honglei Chen on 24 May 2012

You can do A(:), but A' should work if all elements in the row vector are real

Tom on 24 May 2012

great thanks :)

Honglei Chen on 24 May 2012

Hi Tom, in your code, b and a are coefficients. So if you want to use zplane, you need to keep them in the row form and zplane will automatically calculate zeros and poles for you and display in the figure.

On the other hand, if you want to pass in column vectors, then zplane treat them as just zeros and poles. In this case, you need to compute zeros and poles yourself before passing it into the function. So you need to do zplane(roots(b),roots(a)).

HTH

Honglei Chen

Contact us