Signal Processing Toolbox | Help Desk |
residuez
z-transform partial-fraction expansion.
[r,p,k] = residuez(b,a) [b,a] = residuez(r,p,k)
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:a
> n-1
,r
contains the residues, column vector p
contains the pole locations, and row vector k
contains the direct terms. The number of poles is
n = length(a)-1 = length(r) = length(p)The direct term coefficient vector
k
is empty if length(b) < length(a)
; otherwise
length(k) = length(b) - length(a) + 1If
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
.
residuez
applies standard MATLAB functions and partial fraction techniques to find r
, p
, and k
from b
and a
:
a
using deconv
(polynomial long division) when length(b)>length(a)-1
.
p = roots(a)
. mpoles
finds repeated poles and reorders the poles according to their multiplicities.
S2The vector*
r2 = h - S1*
r1for
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, andr1
is a column containing the residues for the nonrepeating roots. Each column of matrixS2
is an impulse response. For each root pj of multiplicity sj,S2
contains sj columns representing the impulse responses of each of the following systems:
![]()
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.
If a(1) == 0
while computing the partial fraction decomposition using [r,p,k] = residuez(b,a)
, residuez
gives the following error message:
First coefficient in A vector must be nonzero.If the number of residues
r
and poles p
is not the same, residuez
gives the following error message:
R and P vectors must be the same size.
Deconvolution and polynomial division (see MATLAB Function Reference). |
|
Polynomial with specified roots (see MATLAB Function Reference). |
|