Main Content

tf2zpk

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

Description

example

[z,p,k] = tf2zpk(b,a) finds the matrix of zeros z, the vector of poles p, and the associated vector of gains k from the transfer function parameters b and a. The function converts a polynomial transfer-function representation

H(z)=B(z)A(z)=b1+b2z1+bnz(n1)+bn+1zna1+a2z1+amz(m1)+am+1zm

of a single-input/single-output (SISO) discrete-time system to a factored transfer function form

H(z)=Z(z)P(z)=k(zz1)(zz2)(zzm)(zp1)(zp2)(zpn).

Note

Use tf2zpk when working with transfer functions expressed in inverse powers (1 + z–1 + z–2). A similar function, tf2zp, is more useful for working with positive powers (s2 + s + 1), such as in continuous-time transfer functions.

Examples

collapse all

Design a 3rd-order Butterworth filter with normalized cutoff frequency 0.4π rad/sample. Find the poles, zeros, and gain of the filter.

[b,a] = butter(3,0.4);
[z,p,k] = tf2zpk(b,a)
z = 3×1 complex

  -1.0000 + 0.0000i
  -1.0000 - 0.0000i
  -1.0000 + 0.0000i

p = 3×1 complex

   0.2094 + 0.5582i
   0.2094 - 0.5582i
   0.1584 + 0.0000i

k = 0.0985

Plot the poles and zeros to verify that they are where expected.

zplane(b,a)
text(real(z)-0.1,imag(z)-0.1,"Zeros")
text(real(p)-0.1,imag(p)-0.1,"Poles")

Input Arguments

collapse all

Transfer function numerator coefficients, specified as a vector. b contains the coefficients in ascending powers of z–1.

Data Types: single | double

Transfer function denominator coefficients, specified as a vector. a contains the coefficients in ascending powers of z–1.

Data Types: single | double

Output Arguments

collapse all

System zeros, returned as a column vector.

System poles, returned as a column vector.

System gain, returned as a scalar.

Extended Capabilities

Version History

Introduced before R2006a

See Also

| | | | |