Convert zero-pole-gain filter parameters to transfer function form


[b,a] = zp2tf(z,p,k)


zp2tf forms transfer function polynomials from the zeros, poles, and gains of a system in factored form.

[b,a] = zp2tf(z,p,k) finds a rational transfer function


given a system in factored transfer function form


Column vector p specifies the pole locations, and matrix z specifies the zero locations, with as many columns as there are outputs. The gains for each numerator transfer function are in vector k. The zeros and poles must be real or come in complex conjugate pairs. The polynomial denominator coefficients are returned in row vector a and the polynomial numerator coefficients are returned in matrix b, which has as many rows as there are columns of z.

Inf values can be used as place holders in z if some columns have fewer zeros than others.


collapse all

Compute the transfer function of a damped mass-spring system that obeys the differential equation


The measurable quantity is the acceleration, y=w¨, and u(t) is the driving force. In Laplace space, the system is represented by


The system has unit gain, a double zero at s=0, and two complex-conjugate poles.

z = [0 0]';
p = roots([1 0.01 1])
p = 2×1 complex

  -0.0050 + 1.0000i
  -0.0050 - 1.0000i

k = 1;

Use zp2tf to find the transfer function.

[b,a] = zp2tf(z,p,k)
b = 1×3

     1     0     0

a = 1×3

    1.0000    0.0100    1.0000


The system is converted to transfer function form using poly with p and the columns of z.

Extended Capabilities

C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.

See Also

| | | | |

Introduced before R2006a