Note: This page has been translated by MathWorks. Please click here

To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.

To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.

Convert state-space filter parameters to zero-pole-gain form

`[z,p,k] = ss2zp(A,B,C,D,i)`

`ss2zp`

converts a state-space representation
of a given system to an equivalent zero-pole-gain representation.
The zeros, poles, and gains of state-space systems represent the transfer
function in factored form.

`[z,p,k] = ss2zp(A,B,C,D,i)`

calculates
the transfer function in factored form

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

of the continuous-time system

$$\begin{array}{l}\dot{x}=Ax+Bu\\ y=Cx+Du\end{array}$$

from the `i`

th input (using the `i`

th
columns of `B`

and `D`

). The column
vector `p`

contains the pole locations of the denominator
coefficients of the transfer function. The matrix `z`

contains
the numerator zeros in its columns, with as many columns as there
are outputs *y *(rows in `C`

). The
column vector `k`

contains the gains for each numerator
transfer function.

`ss2zp`

also works for discrete time systems.
The input state-space system must be real.

The `ss2zp`

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

`ss2zp`

finds the poles from the eigenvalues
of the `A`

array. The zeros are the finite solutions
to a generalized eigenvalue problem:

z = eig([A B;C D], diag([ones(1,n) 0]);

In many situations this algorithm produces spurious large, but
finite, zeros. `ss2zp`

interprets these large zeros
as infinite.

`ss2zp`

finds the gains by solving for the
first nonzero Markov parameters.

[1] Laub, A. J., and B. C. Moore. “Calculation
of Transmission Zeros Using QZ Techniques.” *Automatica*.
Vol. 14, 1978, p. 557.

Was this topic helpful?