Convert transfer function filter parameters to zero-pole-gain form
[z,p,k] = tf2zpk(b,a)
tf2zpk finds the zeros, poles, and gains
of a discrete-time transfer function.
You should use
tf2zpk when working with transfer
functions expressed in inverse powers (1 + z-1 + z-2), which
is how transfer functions are usually expressed in DSP. A similar
tf2zp, is more useful
for working with positive powers (s2 + s + 1),
such as in continuous-time transfer functions.
[z,p,k] = tf2zpk(b,a) finds
the matrix of zeros
z, the vector of poles
and the associated vector of gains
k from the transfer
The numerator polynomials are represented as columns
of the matrix
The denominator polynomial is represented in the vector
Given a single-input, multiple output (SIMO) discrete-time system in polynomial transfer function form
you can use the output of
tf2zpk to produce
the single-input, multioutput (SIMO) factored transfer function form
The following describes the input and output arguments for
a specifies the coefficients
of the denominator polynomial A(z)
in descending powers of z.
The ith row of the matrix
the coefficients of the
ith numerator polynomial
(the ith row of B(s) or B(z)).
Specify as many rows of
b as there are outputs.
The zero locations are returned in the columns of
z, with as many columns as there are
The pole locations are returned in the column vector
the gains for each numerator transfer function in the vector
Design a 3rd-order Butterworth filter with normalized cutoff frequency rad/sample. Find the poles, zeros, and gain of the filter. Plot them to verify that they are where expected.
[b,a] = butter(3,.4); fvtool(b,a,'polezero') [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
text(real(z)-0.1,imag(z)-0.1,'\bfZeros','color',[0 0.4 0]) text(real(p)-0.1,imag(p)-0.1,'\bfPoles','color',[0.6 0 0])