You are on page 1of 8

Z-Transform

DSP Labs
Partial Fraction Expansion
• The MATLAB function residue( ) can be applied to perform the partial fraction
expansion of a z-transform function X(z)/z.

• The syntax is given as


[R,P,K] = residue(B,A)

• B is B(z) and A is A(z) are the vectors consisting of coefficients for the numerator
and denominator polynomials, respectively.

• Notice that B(z) and A(z) are the polynomials with increasing positive powers of z.

B( z ) b0 .z M + b1 .z M −1 + b2 .z M − 2 + + bM
= N
A( z ) z + a1 .z N −1 + a2 .z N − 2 + + aN
• The residues in vector R, poles in vector P, and polynomial coefficients (if any) in
vector K.

• The expansion format is shown as


B( z ) r r
= 1 + 2 + + k0 + k1 z −1 +
A( z ) z − p1 z − p2
• For a pole pj of multiplicity m, the partial fraction includes the following terms:
B( z ) rj rj +1 rj + m
= + + + + + + k0 + k1 z −1 +
z − pj (z − p ) (z − p )
2 m
A( z )
j j
Example
• Find the partial expansion for each of the following z-transform functions:

1
a. X ( z ) =
(1 − z −1 )(1 − 0.5 z −1 )

z 2 ( z + 1)
b. Y ( z ) =
( z − 1)( z 2 − z + 0.5)

z2
c. X ( z ) =
( z − 1)( z − 0.5) 2
Solution
a. From MATLAB, we can show the denominator polynomial as
>> D = conv([1 -1],[1 -0.5])
D =
1.0000 -1.5000 0.5000
This leads to
1 z2
X ( z) = =
(1 − z −1 )(1 − 0.5 z −1 ) z 2 − 1.5 z + 0.5
X ( z) z
= 2
z z − 1.5 z + 0.5
From MATLAB, we have
>> [R,P,K]=residue([1 0],[1 -1.5 0.5])
R = 2
-1
P =
1.0000
0.5000
K =
[]
2z z
Then the expansion is written as X ( z ) = −
( z − 1) ( z − 0.5)
b. From MATLAB, we can show the denominator polynomial as
>> N = conv([1 0 0], [1 1])
N =
1 1 0 0
>> D = conv([1 -1], [1 -1 0.5])
D =
1.0000 -2.0000 1.5000 -0.5000
We get
z 2 ( z + 1) z3 + z 2
Y ( z) = =
( z − 1)( z 2 − z + 0.5) z 3 − 2 z 2 + 1.5 z − 0.5
Y ( z) z2 + z
= 3
z z − 2 z 2 + 1.5 z − 0.5

From MATLAB, we have


>> [R,P,K]=residue([1 1 0],[1 -2 1.5 -0.5])
R =
4.0000
-1.5000-0.5000i
-1.5000+0.5000i
P =
1.0000
0.5000 +0.5000i
0.5000 - 0.5000i
K =
[]
Bz Az A* z
Then the expansion is written as X ( z) = + +
( z − p1 ) z − p z − p*

Where B = 4, p1 = 1, A = -1.5 - 0.5j, p = 0.5 + 0.5j, A* = -1.5 + 0.5j, and p = 0.5 - 0.5j
c. From MATLAB, we can show the denominator polynomial as
>> N = conv(conv([1 -1],[1 -0.5]),[1 -0.5])
N =
1.0000 -2.0000 1.2500 -0.2500
We get
z2 z2
X ( z) = =
( z − 1)( z − 0.5) 2 z 3 − 2 z 2 + 1.25 z − 0.25
X ( z) z
= 3
z z − 2 z + 1.25 z − 0.25
2

From MATLAB, we have


>> [R,P,K]=residue([1 0],[1 -2 1.25 -0.25])
R =
4.0000
-4.0000
-1.0000
P =
1.0000
0.5000
0.5000
K =
[]
4z 4z z
Then the expansion is written as X ( z ) = − −
( z − 1) z − 0.5 ( z − 0.5) 2
Exercise
z
1. X ( z) =
z 2 + 1.2 z + 1

2. Exercise 4 no. 1a and 2a on lecture slide. Compare your answers!

You might also like