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. from the Required Reading List.
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:
We expand $F(z)$ into a summation of terms whose inverse is known. These terms have the form:
$$k,\;\frac{r_1 z}{z - p_1},\;\frac{r_1 z}{(z - p_1)^2},\;\frac{r_3 z}{z - p_2},\ldots$$
where $k$ is a constant, and $r_i$ and $p_i$ represent the residues and poles respectively, and can be real or complex1.
$$\frac{F(z)}{z} = \frac{k}{z} + \frac{r_1}{z-p_1} + \frac{r_2}{z-p_2} + \cdots$$
$$r_k = \lim_{z\to p_k}(z - p_k)\frac{F(z)}{z} = (z - p_k)\left.\frac{F(z)}{z}\right|_{z=p_k}$$
$$z\frac{F(z)}{z} = F(z) = k + \frac{r_1z}{s-p_1} + \frac{r_2z}{s-p_2} + \cdots$$
Karris Example 9.4: use the partial fraction expansion to compute the inverse z-transform of
$$F(z) = \frac{1}{(1 - 0.5z^{-1})(1 - 0.75z^{-1})(1 - z^{-1})}$$
See example1.mlx. (Also available as example1.m.)
syms z n
The denoninator of $F(z)$
Dz = (z - 0.5)*(z - 0.75)*(z - 1);
Multiply the three factors of Dz to obtain a polynomial
Dz_poly = collect(Dz)
Dz_poly = z^3 - (9*z^2)/4 + (13*z)/8 - 3/8
$z^2$
num = [0, 1, 0, 0];
$z^3 - 9/4 z^2 - 13/8 z - 3/8$
den = sym2poly(Dz_poly)
den = 1.0000 -2.2500 1.6250 -0.3750
[r,p,k] = residue(num,den);
fprintf
works like the c-language functionfprintf('\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
$$f[n] = 2\left(\frac{1}{2}\right)^n - 9\left(\frac{3}{4}\right)^n + 8$$
% 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)
% inverse z-transform
iztrans(Fz)
ans = 2*(1/2)^n - 9*(3/4)^n + 8
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')
Karris example 9.5: use the partial fraction expansion method to to compute the inverse z-transform of
$$F(z) = \frac{12z}{(z+1)(z - 1)^2}$$
See example2.mlx. (Also available as example2.m.)
open example2
Karris example 9.6: use the partial fraction expansion method to to compute the inverse z-transform of
$$F(z) = \frac{z + 1}{(z-1)(z^2 + 2z + 2)}$$
See example3.mlx. (Also available as example3.m.)
open example3
The inversion integral states that:
$$f[n] = \frac{1}{{j2\pi }}\oint_C {F(z){z^{n - 1}}\,dz} $$
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.
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$.
Karris example 9.9: use the long division method to determine $f[n]$ for $n = 0,\,1,\,\mathrm{and}\,2$, given that
$$F(z) = \frac{1 + z^{-1} + 2z^{-2} + 3z^{-3}}{(1 - 0.25z^{-1})(1 - 0.5z^{-1})(1 - 0.75z^{-1})}$$
See example4.mlx. (also available as example4.m.)
open example4
Method | Advantages | Disadvantages |
---|---|---|
Partial Fraction Expansion |
|
|
Invsersion Integral |
|
|
Long Division |
|
|
Next time