Signal Processing Toolbox Help Desk

residuez

Purpose

z-transform partial-fraction expansion.

Syntax

Description

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.

[r,p,k] = residuez(b,a) finds the residues, poles, and direct terms of a partial fraction expansion of the ratio of two polynomials, b(z) and a(z). Vectors b and a specify the coefficients of the polynomials of the discrete-time system b(z)/a(z) in descending powers of z:

If there are no multiple roots and a > n-1,

The returned column vector r contains the residues, column vector p contains the pole locations, and row vector k contains the direct terms. The number of poles is

The direct term coefficient vector k is empty if length(b) < length(a); otherwise

If p(j) = ... = p(j+s-1) is a pole of multiplicity s, then the expansion includes terms of the form

[b,a] = residuez(r,p,k) with three input arguments and two output arguments, converts the partial fraction expansion back to polynomials with coefficients in row vectors b and a.

The residue function in the MATLAB environment is very similar to residuez. It computes the partial fraction expansion of continuous-time systems in the Laplace domain (see reference [1]), rather than discrete-time systems in the z-domain as does residuez.

Algorithm

residuez applies standard MATLAB functions and partial fraction techniques to find r, p, and k from b and a:

  1. It finds the direct terms a using deconv (polynomial long division) when length(b)>length(a)-1.
  2. It finds the poles using p = roots(a). mpoles finds repeated poles and reorders the poles according to their multiplicities.
  3. It finds the residue for each nonrepeating pole pi by multiplying b(z)/a(z) by
    1/(1-piz-1) and evaluating the resulting rational function at z = pi.
  4. It finds the residues for the repeated poles by solving
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 overdetermination of the system of equations.

Diagnostics

If a(1) == 0 while computing the partial fraction decomposition using
[r,p,k] = residuez(b,a), residuez gives the following error message:

If the number of residues r and poles p is not the same, residuez gives the following error message:

See Also

convmtx

Convolution matrix.

deconv

Deconvolution and polynomial division (see MATLAB Function Reference).

poly

Polynomial with specified roots (see MATLAB Function Reference).

prony

Prony's method for time domain IIR filter design.

residue

Partial fraction expansion (see MATLAB Function Reference).

roots

Polynomial roots (see MATLAB Function Reference).

ss2tf

State-space to zero-pole-gain conversion.

tf2ss

Transfer function to state-space conversion.

tf2zp

Transfer function to zero-pole-gain conversion.

zp2ss

Zero-pole-gain to state-space conversion.

References

[1] Oppenheim, A.V., and R.W. Schafer. Digital Signal Processing. Englewood Cliffs, NJ: Prentice Hall, 1975. Pgs. 166-170.



[ Previous | Help Desk | Next ]