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.
Note
You should use |
[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 ith row of the matrix b
represents
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.
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.