# Documentation

### This is machine translation

Translated by
Mouseover text to see original. Click the button below to return to the English version of the page.

Note: This page has been translated by MathWorks. Please click here
To view all translated materials including this page, select Japan from the country navigator on the bottom of this page.

# tf2zp

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

## Syntax

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

## Description

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

### Note

You should use `tf2zp` when working with positive powers (s2 + 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\left(s\right)=\frac{B\left(s\right)}{A\left(s\right)}=\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\left(s\right)=\frac{Z\left(s\right)}{P\left(s\right)}=k\frac{\left(s-{z}_{1}\right)\left(s-{z}_{2}\right)\cdots \left(s-{z}_{m}\right)}{\left(s-{p}_{1}\right)\left(s-{p}_{2}\right)\cdots \left(s-{p}_{n}\right)}$`

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.

## Examples

collapse all

Generate a system with the following transfer function.

Find the zeros, poles, and gain of the system. Use `eqtflength` to ensure the numerator and denominator have the same length. Plot the poles and zeros to verify that they are in the expected locations.

```b = [2 3]; a = [1 1/sqrt(2) 1/4]; fvtool(b,a,'polezero') [b,a] = eqtflength(b,a); [z,p,k] = tf2zp(b,a)```
```z = 0 -1.5000 ```
```p = -0.3536 + 0.3536i -0.3536 - 0.3536i ```
```k = 2 ```
```text(real(z)+.1,imag(z),'Zero') text(real(p)+.1,imag(p),'Pole')```

## See Also

#### Introduced before R2006a

Was this topic helpful?

Download ebook