You are on page 1of 15

23/04/2018 i-z-transform

In [ ]:

cd matlab
pwd

The Inverse Z-Transform

Scope and Background Reading

This session we will talk about the Inverse Z-Transform and illustrate its use through an examples class.

The material in this presentation and notes is based on Chapter 9 (Starting at Section 9.6) of Steven T.
Karris, Signals and Systems: with Matlab Computation and Simulink Modelling, 5th Edition.
(http://site.ebrary.com/lib/swansea/docDetail.action?docID=10547416) from the Required Reading List.

Agenda

Inverse Z-Transform

Examples using PFE

Examples using Long Division

Analysis in Matlab

The Inverse Z-Transform


The inverse Z-Transform enables us to extract a sequence f [n] from F (z). It can be found by any of the
following methods:

Partial fraction expansion


The inversion integral
Long division of polynomials

Partial fraction expansion


We expand F (z) into a summation of terms whose inverse is known. These terms have the form:

r1 z r1 z r3 z
k, , , ,…
2
z − p1 (z − p1 ) z − p2

where k is a constant, and r i and pi represent the residues and poles respectively, and can be real or
complex1.

http://localhost:8888/nbconvert/html/dev/EG-247-Resources/week9/i-z-transform.ipynb?download=false 1/15
23/04/2018 i-z-transform

Notes

1. If complex, the poles and residues will be in complex conjugate pairs



ri z r z
i
+

z − pi z − p
i

Step 1: Make Fractions Proper


Before we expand F (z) into partial fraction expansions, we must first express it as a proper rational
function.
This is done by expanding F (z)/z instead of F (z)
That is we expand

F (z) k r1 r2
= + + + ⋯
z z z − p1 z − p2

Step 2: Find residues


Find residues from

F (z) F (z) ∣
r k = lim (z − pk ) = (z − pk ) ∣
z→p
k z z ∣z=p
k

Step 3: Map back to transform tables form


Rewrite F (z)/z:

F (z) r1 z r2 z
z = F (z) = k + + + ⋯
z s − p1 s − p2

Example 1
Karris Example 9.4: use the partial fraction expansion to compute the inverse z-transform of

1
F (z) =
−1 −1 −1
(1 − 0.5z )(1 − 0.75z )(1 − z )

http://localhost:8888/nbconvert/html/dev/EG-247-Resources/week9/i-z-transform.ipynb?download=false 2/15
23/04/2018 i-z-transform

Matlab solution
See example1.mlx (https://github.com/cpjobling/EG-247-
Resources/blob/master/week9/matlab/example1.mlx). (Also available as example1.m
(https://github.com/cpjobling/EG-247-Resources/blob/master/week9/matlab/example1.m).)

Uses Matlab functions:

collect – expands a polynomial


sym2poly – converts a polynomial into a numeric polymial (vector of coefficients in descending
order of exponents)
residue – calculates poles and zeros of a polynomial
ztrans – symbolic z-transform
iztrans – symbolic inverse ze-transform
stem – plots sequence as a "lollipop" diagram

In [15]:

syms z n

The denoninator of F (z)

In [16]:

Dz = (z - 0.5)*(z - 0.75)*(z - 1);

Multiply the three factors of Dz to obtain a polynomial

http://localhost:8888/nbconvert/html/dev/EG-247-Resources/week9/i-z-transform.ipynb?download=false 3/15
23/04/2018 i-z-transform

In [17]:

Dz_poly = collect(Dz)

Dz_poly =

z^3 - (9*z^2)/4 + (13*z)/8 - 3/8

Make into a rational polynomial

2
z

In [18]:

num = [0, 1, 0, 0];

3 2
z − 9/4z − 13/8z − 3/8

In [19]:

den = sym2poly(Dz_poly)

den =

1.0000 -2.2500 1.6250 -0.3750

Compute residues and poles

In [20]:

[r,p,k] = residue(num,den);

Print results
fprintf works like the c-language function

In [21]:

fprintf('\n')
fprintf('r1 = %4.2f\t', r(1)); fprintf('p1 = %4.2f\n', p(1));...
fprintf('r2 = %4.2f\t', r(2)); fprintf('p2 = %4.2f\n', p(2));...
fprintf('r3 = %4.2f\t', r(3)); fprintf('p3 = %4.2f\n', p(3));

r1 = 8.00 p1 = 1.00
r2 = -9.00 p2 = 0.75
r3 = 2.00 p3 = 0.50

http://localhost:8888/nbconvert/html/dev/EG-247-Resources/week9/i-z-transform.ipynb?download=false 4/15
23/04/2018 i-z-transform

Symbolic proof
n n
1 3
f [n] = 2 − 9 + 8
(2) (4)

In [22]:

% z-transform
fn = 2*(1/2)^n-9*(3/4)^n + 8;
Fz = ztrans(fn)

Fz =

(8*z)/(z - 1) + (2*z)/(z - 1/2) - (9*z)/(z - 3/4)

In [23]:

% inverse z-transform
iztrans(Fz)

ans =

2*(1/2)^n - 9*(3/4)^n + 8

Sequence

http://localhost:8888/nbconvert/html/dev/EG-247-Resources/week9/i-z-transform.ipynb?download=false 5/15
23/04/2018 i-z-transform

In [24]:

n = 1:15;
sequence = subs(fn,n);
stem(n,sequence)
title('Discrete Time Sequence f[n] = 2*(1/2)^n-9*(3/4)^n + 8');
ylabel('f[n]')
xlabel('Sequence number n')

http://localhost:8888/nbconvert/html/dev/EG-247-Resources/week9/i-z-transform.ipynb?download=false 6/15
23/04/2018 i-z-transform

Example 2
Karris example 9.5: use the partial fraction expansion method to to compute the inverse z-transform of

12z
F (z) =
2
(z + 1)(z − 1)

Matlab solution
See example2.mlx (https://github.com/cpjobling/EG-247-
Resources/blob/master/week9/matlab/example2.mlx). (Also available as example2.m
(https://github.com/cpjobling/EG-247-Resources/blob/master/week9/matlab/example2.m).)

Uses additional Matlab functions:

dimpulse – computes and plots a sequence f [n] for any range of values of n

In [25]:

open example2

http://localhost:8888/nbconvert/html/dev/EG-247-Resources/week9/i-z-transform.ipynb?download=false 7/15
23/04/2018 i-z-transform

Results

'Lollipop' Plot

'Staircase' Plot

Simulates output of Zero-Order-Hold (ZOH) or Digital Analogue Converter (DAC)

http://localhost:8888/nbconvert/html/dev/EG-247-Resources/week9/i-z-transform.ipynb?download=false 8/15
23/04/2018 i-z-transform

Example 3
Karris example 9.6: use the partial fraction expansion method to to compute the inverse z-transform of

z + 1
F (z) =
2
(z − 1)(z + 2z + 2)

Matlab solution
See example3.mlx (https://github.com/cpjobling/EG-247-
Resources/blob/master/week9/matlab/example3.mlx). (Also available as example3.m
(https://github.com/cpjobling/EG-247-Resources/blob/master/week9/matlab/example3.m).)

In [26]:

open example3

http://localhost:8888/nbconvert/html/dev/EG-247-Resources/week9/i-z-transform.ipynb?download=false 9/15
23/04/2018 i-z-transform

Results

Lollipop Plot

Staircase Plot

http://localhost:8888/nbconvert/html/dev/EG-247-Resources/week9/i-z-transform.ipynb?download=false 10/15
23/04/2018 i-z-transform

Inverse Z-Transform by the Inversion Integral


The inversion integral states that:

1 n−1
f [n] = F (z)z dz
j2π ∮ C

where C is a closed curve that encloses all poles of the integrant.

This can (apparently) be solved by Cauchy's residue theorem!!

Fortunately (:-), this is beyond the scope of this module!

See Karris Section 9.6.2 (pp 9-29—9-33) if you want to find out more.

Inverse Z-Transform by the Long Division


To apply this method, F (z) must be a rational polynomial function, and the numerator and denominator must
be polynomials arranged in descending powers of z .

Example 4
Karris example 9.9: use the long division method to determine f [n] for n = 0, 1, and 2 , given that
−1 −2 −3
1 + z + 2z + 3z
F (z) =
−1 −1 −1
(1 − 0.25z )(1 − 0.5z )(1 − 0.75z )

http://localhost:8888/nbconvert/html/dev/EG-247-Resources/week9/i-z-transform.ipynb?download=false 11/15
23/04/2018 i-z-transform

Matlab
See example4.mlx (https://github.com/cpjobling/EG-247-
Resources/blob/master/week9/matlab/example4.mlx). (also available as example4.m
(https://github.com/cpjobling/EG-247-Resources/blob/master/week9/matlab/example4.m).)

In [27]:

open example4

http://localhost:8888/nbconvert/html/dev/EG-247-Resources/week9/i-z-transform.ipynb?download=false 12/15
23/04/2018 i-z-transform

Results
sym_den =

z^3 - (3*z^2)/2 + (11*z)/16 - 3/32

fn =

1.0000
2.5000
5.0625
....

Combined Staircase/Lollipop Plot

http://localhost:8888/nbconvert/html/dev/EG-247-Resources/week9/i-z-transform.ipynb?download=false 13/15
23/04/2018 i-z-transform

Methods of Evaluation of the Inverse Z-Transform


Method Advantages Disadvantages

Partial
Most familiar. Requires that F (z) is a proper
Fraction
Can use Matlab `residue` function. rational function.
Expansion

Requires familiarity with the


Invsersion Can be used whether F (z) is
*Residues theorem* of complex
Integral rational or not
variable analaysis.

Practical when only a small


sequence of numbers is desired.
Useful when z-transform has no Requires that F (z) is a proper
Long
closed-form solution. rational function.
Division
Can use Matlab `dimpulse` function Division may be endless.
to compute a large sequence of
numbers.

Summary
Inverse Z-Transform
Examples using PFE
Examples using Long Division
Analysis in Matlab

Next time

DT transfer functions, continuous system equivalents, and modelling DT systems in Matlab and
Simulink.

Answers to Examples

Answer to Example 1
n n
1 3
f [n] = 2 − 9 + 8
(2) (4)

Answer to Example 2
n
f [n] = 3(−1) + 6n − 3

http://localhost:8888/nbconvert/html/dev/EG-247-Resources/week9/i-z-transform.ipynb?download=false 14/15
23/04/2018 i-z-transform

Answer to Example 3
n n
(√2
‾) 3nπ 3(√2
‾) 3nπ
f [n] = −0.5δ[n] + 0.4 + cos − sin
10 4 10 4

Answer to Example 4
, ,
f [0] = 1 f [1] = 5/2 f [2] = 81/16 , ....

http://localhost:8888/nbconvert/html/dev/EG-247-Resources/week9/i-z-transform.ipynb?download=false 15/15

You might also like