Z-transform partial-fraction expansion

`residuez`

converts a discrete time system, expressed as the ratio of two
polynomials, to partial fraction expansion, or residue, form. It also converts the partial
fraction expansion back to the original polynomial coefficients.

**Note**

Numerically, the partial fraction expansion of a ratio of polynomials is an ill-posed problem. If the denominator polynomial is near a polynomial with multiple roots, then small changes in the data, including round-off errors, can cause arbitrarily large changes in the resulting poles and residues. You should use state-space or pole-zero representations instead.

`residuez`

applies standard MATLAB^{®} functions and partial fraction techniques to find `r`

,
`p`

, and `k`

from `b`

and
`a`

. It finds

The direct terms

`a`

using`deconv`

(polynomial long division) when`length(b)`

>`length(a)-1`

.The poles using

`p`

=`roots`

`(a)`

.Any repeated poles, reordering the poles according to their multiplicities.

The residue for each nonrepeating pole

*p*by multiplying_{j}*b*(*z*)/*a*(*z*) by 1/(1 -*p*_{j}*z*^{−1}) and evaluating the resulting rational function at*z*=*p*._{j}The residues for the repeated poles by solving

S2*r2 = h - S1*r1

for

`r2`

using`\`

.`h`

is the impulse response of the reduced*b*(*z*)/*a*(*z*),`S1`

is a matrix whose columns are impulse responses of the first-order systems made up of the nonrepeating roots, and`r1`

is a column containing the residues for the nonrepeating roots. Each column of matrix`S2`

is an impulse response. For each root*p*of multiplicity_{j}*s*,_{j}`S2`

contains*s*columns representing the impulse responses of each of the following systems._{j}$$\frac{1}{1-{p}_{j}{z}^{-1}},\frac{1}{{(1-{p}_{j}{z}^{-1})}^{2}},\cdots ,\frac{1}{{(1-{p}_{j}{z}^{-1})}^{{s}_{j}}}$$

The vector

`h`

and matrices`S1`

and`S2`

have`n`

`+`

`xtra`

rows, where`n`

is the total number of roots and the internal parameter`xtra`

, set to 1 by default, determines the degree of over-determination of the system of equations.

[1] Oppenheim, Alan V., Ronald W.
Schafer, and John R. Buck. *Discrete-Time Signal Processing*. 2nd Ed.
Upper Saddle River, NJ: Prentice Hall, 1999.