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

`[z,p,k] = tf2zp(b,a)`

`tf2zp`

finds the zeros, poles, and gains of
a continuous-time transfer function.

You should use `tf2zp`

when working with positive
powers (s^{2} + s + 1), such as in continuous-time transfer
functions. A similar function, `tf2zpk`

,
is more useful when working with transfer functions expressed in inverse
powers (1 + z^{-1} + z^{-2}), which
is how transfer functions are usually expressed in DSP.

`[z,p,k] = tf2zp(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 numerator polynomials are represented as columns of the matrix

`b`

.The denominator polynomial is represented in the vector

`a`

.

Given a SIMO continuous-time system in polynomial transfer function form

$$H(s)=\frac{B(s)}{A(s)}=\frac{{b}_{1}{s}^{n-1}+\cdots +{b}_{n-1}s+{b}_{n}}{{a}_{1}{s}^{m-1}+\cdots +{a}_{m-1}s+{a}_{m}}$$

you can use the output of `tf2zp`

to produce
the single-input, multi-output (SIMO) factored transfer function form

$$H(s)=\frac{Z(s)}{P(s)}=k\frac{(s-{z}_{1})(s-{z}_{2})\cdots (s-{z}_{m})}{(s-{p}_{1})(s-{p}_{2})\cdots (s-{p}_{n})}$$

The following describes the input and output arguments for `tf2zp`

:

The vector

`a`

specifies the coefficients of the denominator polynomial*A*(*s*) (or*A*(*z*)) in descending powers of*s*(*z*).^{-1}The

*i*th row of the matrix`b`

represents the coefficients of the*i*th numerator polynomial (the*i*th row of*B*(*s*) or*B*(*z*)). Specify as many rows of`b`

as there are outputs.For continuous-time systems, choose the number

*nb*of columns of`b`

to be less than or equal to the length*na*of the vector`a`

.For discrete-time systems, choose the number

*nb*of columns of`b`

to be equal to the length*na*of the vector`a`

. You can use the function`eqtflength`

to provide equal length vectors in the case that`b`

and`a`

are vectors of unequal lengths. Otherwise, pad the numerators in the matrix`b`

(and, possibly, the denominator vector`a`

) with zeros.The zero locations are returned in the columns of the matrix

`z`

, with as many columns as there are rows in`b`

.The pole locations are returned in the column vector

`p`

and the gains for each numerator transfer function in the vector`k`

.

The `tf2zp`

function is part of the standard MATLAB^{®} language.