Skip to main content
Engineering LibreTexts

5.4: Inverse Z-Transform

  • Page ID
    103988
  • \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)

    \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)

    \( \newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\)

    ( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\)

    \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\)

    \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\)

    \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\)

    \( \newcommand{\Span}{\mathrm{span}}\)

    \( \newcommand{\id}{\mathrm{id}}\)

    \( \newcommand{\Span}{\mathrm{span}}\)

    \( \newcommand{\kernel}{\mathrm{null}\,}\)

    \( \newcommand{\range}{\mathrm{range}\,}\)

    \( \newcommand{\RealPart}{\mathrm{Re}}\)

    \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\)

    \( \newcommand{\Argument}{\mathrm{Arg}}\)

    \( \newcommand{\norm}[1]{\| #1 \|}\)

    \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\)

    \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\AA}{\unicode[.8,0]{x212B}}\)

    \( \newcommand{\vectorA}[1]{\vec{#1}}      % arrow\)

    \( \newcommand{\vectorAt}[1]{\vec{\text{#1}}}      % arrow\)

    \( \newcommand{\vectorB}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)

    \( \newcommand{\vectorC}[1]{\textbf{#1}} \)

    \( \newcommand{\vectorD}[1]{\overrightarrow{#1}} \)

    \( \newcommand{\vectorDt}[1]{\overrightarrow{\text{#1}}} \)

    \( \newcommand{\vectE}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash{\mathbf {#1}}}} \)

    \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)

    \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)

    \(\newcommand{\avec}{\mathbf a}\) \(\newcommand{\bvec}{\mathbf b}\) \(\newcommand{\cvec}{\mathbf c}\) \(\newcommand{\dvec}{\mathbf d}\) \(\newcommand{\dtil}{\widetilde{\mathbf d}}\) \(\newcommand{\evec}{\mathbf e}\) \(\newcommand{\fvec}{\mathbf f}\) \(\newcommand{\nvec}{\mathbf n}\) \(\newcommand{\pvec}{\mathbf p}\) \(\newcommand{\qvec}{\mathbf q}\) \(\newcommand{\svec}{\mathbf s}\) \(\newcommand{\tvec}{\mathbf t}\) \(\newcommand{\uvec}{\mathbf u}\) \(\newcommand{\vvec}{\mathbf v}\) \(\newcommand{\wvec}{\mathbf w}\) \(\newcommand{\xvec}{\mathbf x}\) \(\newcommand{\yvec}{\mathbf y}\) \(\newcommand{\zvec}{\mathbf z}\) \(\newcommand{\rvec}{\mathbf r}\) \(\newcommand{\mvec}{\mathbf m}\) \(\newcommand{\zerovec}{\mathbf 0}\) \(\newcommand{\onevec}{\mathbf 1}\) \(\newcommand{\real}{\mathbb R}\) \(\newcommand{\twovec}[2]{\left[\begin{array}{r}#1 \\ #2 \end{array}\right]}\) \(\newcommand{\ctwovec}[2]{\left[\begin{array}{c}#1 \\ #2 \end{array}\right]}\) \(\newcommand{\threevec}[3]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \end{array}\right]}\) \(\newcommand{\cthreevec}[3]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \end{array}\right]}\) \(\newcommand{\fourvec}[4]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \\ #4 \end{array}\right]}\) \(\newcommand{\cfourvec}[4]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \\ #4 \end{array}\right]}\) \(\newcommand{\fivevec}[5]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \\ #4 \\ #5 \\ \end{array}\right]}\) \(\newcommand{\cfivevec}[5]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \\ #4 \\ #5 \\ \end{array}\right]}\) \(\newcommand{\mattwo}[4]{\left[\begin{array}{rr}#1 \amp #2 \\ #3 \amp #4 \\ \end{array}\right]}\) \(\newcommand{\laspan}[1]{\text{Span}\{#1\}}\) \(\newcommand{\bcal}{\cal B}\) \(\newcommand{\ccal}{\cal C}\) \(\newcommand{\scal}{\cal S}\) \(\newcommand{\wcal}{\cal W}\) \(\newcommand{\ecal}{\cal E}\) \(\newcommand{\coords}[2]{\left\{#1\right\}_{#2}}\) \(\newcommand{\gray}[1]{\color{gray}{#1}}\) \(\newcommand{\lgray}[1]{\color{lightgray}{#1}}\) \(\newcommand{\rank}{\operatorname{rank}}\) \(\newcommand{\row}{\text{Row}}\) \(\newcommand{\col}{\text{Col}}\) \(\renewcommand{\row}{\text{Row}}\) \(\newcommand{\nul}{\text{Nul}}\) \(\newcommand{\var}{\text{Var}}\) \(\newcommand{\corr}{\text{corr}}\) \(\newcommand{\len}[1]{\left|#1\right|}\) \(\newcommand{\bbar}{\overline{\bvec}}\) \(\newcommand{\bhat}{\widehat{\bvec}}\) \(\newcommand{\bperp}{\bvec^\perp}\) \(\newcommand{\xhat}{\widehat{\xvec}}\) \(\newcommand{\vhat}{\widehat{\vvec}}\) \(\newcommand{\uhat}{\widehat{\uvec}}\) \(\newcommand{\what}{\widehat{\wvec}}\) \(\newcommand{\Sighat}{\widehat{\Sigma}}\) \(\newcommand{\lt}{<}\) \(\newcommand{\gt}{>}\) \(\newcommand{\amp}{&}\) \(\definecolor{fillinmathshade}{gray}{0.9}\)

    Introduction

    When using the z-transform

    \[X(z)=\sum_{n=-\infty}^{\infty} x[n] z^{-n} \nonumber \]

    it is often useful to be able to find \(x[n]\) given \(X(z)\). There are at least 4 different methods to do this:

    1. Inspection
    2. Partial-Fraction Expansion
    3. Power Series Expansion
    4. Contour Integration

    Inspection Method

    This "method" is to basically become familiar with the z-transform pair tables and then "reverse engineer".

    Example \(\PageIndex{1}\)

    When given

    \[X(z)=\frac{z}{z-\alpha} \nonumber \]

    with an ROC (Section 12.6) of

    \[|z|>\alpha \nonumber \]

    we could determine "by inspection" that

    \[x[n]=\alpha^{n} u[n] \nonumber \]

    Partial-Fraction Expansion Method

    When dealing with linear time-invariant systems the z-transform is often of the form

    \[\begin{align}
    X(z) &=\frac{B(z)}{A(z)} \nonumber \\
    &=\frac{\sum_{k=0}^{M} b_{k} z^{-k}}{\sum_{k=0}^{N} a_{k} z^{-k}}
    \end{align} \nonumber \]

    This can also expressed as

    \[X(z)=\frac{a_{0}}{b_{0}} \frac{\prod_{k=1}^{M} 1-c_{k} z^{-1}}{\prod_{k=1}^{N} 1-d_{k} z^{-1}} \nonumber \]

    where \(c_k\) represents the nonzero zeros of \(X(z)\) and \(d_k\) represents the nonzero poles.

    If \(M<N\) then \(X(z)\) can be represented as

    \[X(z)=\sum_{k=1}^{N} \frac{A_{k}}{1-d_{k} z^{-1}} \nonumber \]

    This form allows for easy inversions of each term of the sum using the inspection method and the transform table. If the numerator is a polynomial, however, then it becomes necessary to use partial-fraction expansion to put \(X(z)\) in the above form. If \(M≥N\) then \(X(z)\) can be expressed as

    \[X(z)=\sum_{r=0}^{M-N} B_{r} z^{-r}+\frac{\sum_{k=0}^{N-1} b_{k}^{\prime} z^{-k}}{\sum_{k=0}^{N} a_{k} z^{-k}} \nonumber \]

    Example \(\PageIndex{2}\)

    Find the inverse z-transform of

    \[X(z)=\frac{1+2 z^{-1}+z^{-2}}{1-3 z^{-1}+2 z^{-2}} \nonumber \]

    where the ROC is \(|z|>2\). In this case \(M=N=2\), so we have to use long division to get

    \[X(z)=\frac{1}{2}+\frac{\frac{1}{2}+\frac{7}{2} z^{-1}}{1-3 z^{-1}+2 z^{-2}} \nonumber \]

    Next factor the denominator.

    \[X(z)=2+\frac{-1+5 z^{-1}}{\left(1-2 z^{-1}\right)\left(1-z^{-1}\right)} \nonumber \]

    Now do partial-fraction expansion.

    \[X(z)=\frac{1}{2}+\frac{A_{1}}{1-2 z^{-1}}+\frac{A_{2}}{1-z^{-1}}=\frac{1}{2}+\frac{\frac{9}{2}}{1-2 z^{-1}}+\frac{-4}{1-z^{-1}} \nonumber \]

    Now each term can be inverted using the inspection method and the z-transform table. Thus, since the ROC is \(|z|>2\),

    \[x[n]=\frac{1}{2} \delta[n]+\frac{9}{2} 2^{n} u[n]-4 u[n] \nonumber \]

    Demonstration of Partial Fraction Expansion

    A demonstration involving Partial Fraction Expansion
    Figure \(\PageIndex{1}\): Interactive experiment illustrating how the Partial Fraction Expansion method is used to solve a variety of numerator and denominator problems. (To view and interact with the simulation, download the free Mathematica player at www.wolfram.com/products/player/download.cgi)
    Khan Lecture on Partial Fraction Expansion
    Figure \(\PageIndex{2}\): video from Khan Academy

    Power Series Expansion Method

    When the z-transform is defined as a power series in the form

    \[X(z)=\sum_{n=-\infty}^{\infty} x[n] z^{-n} \nonumber \]

    then each term of the sequence \(x[n]\) can be determined by looking at the coefficients of the respective power of \(z^{−n}\).

    Example \(\PageIndex{3}\)

    Now look at the z-transform of a finite-length sequence.

    \[\begin{aligned}
    X(z) &=z^{2}\left(1+2 z^{-1}\right)\left(1-\frac{1}{2} z^{-1}\right)\left(1+z^{-1}\right) \\
    &=z^{2}+\frac{5}{2} z+\frac{1}{2}+-z^{-1}
    \end{aligned} \nonumber \]

    In this case, since there were no poles, we multiplied the factors of \(X(z)\). Now, by inspection, it is clear that

    \[x[n]=\delta[n+2]+\frac{5}{2} \delta[n+1]+\frac{1}{2} \delta[n]+-\delta[n-1] \nonumber \]

    One of the advantages of the power series expansion method is that many functions encountered in engineering problems have their power series' tabulated. Thus functions such as log, sin, exponent, sinh, etc, can be easily inverted.

    Example \(\PageIndex{4}\)

    Suppose

    \[X(z)=\log _{n}\left(1+\alpha z^{-1}\right) \nonumber \]

    Noting that

    \[\log _{n}(1+x)=\sum_{n=1}^{\infty} \frac{-1^{n+1} x^{n}}{n} \nonumber \]

    Then

    \[X(z)=\sum_{n=1}^{\infty} \frac{-1^{n+1} \alpha^{n} z^{-n}}{n} \nonumber \]

    Therefore

    \[X(z)=\left\{\begin{array}{l}
    \frac{-1^{n+1} \alpha^{n}}{n} \text { if } n \geq 1 \\
    0 \text { if } n \leq 0
    \end{array}\right. \nonumber \]

    Contour Integration Method

    Without going in to much detail

    \[x[n]=\frac{1}{2 \pi j} \oint_{r} X(z) z^{n-1} \mathrm{d} z \nonumber \]

    where \(r\) is a counter-clockwise contour in the ROC of \(X(z)\) encircling the origin of the z-plane. To further expand on this method of finding the inverse requires the knowledge of complex variable theory and thus will not be addressed in this module.

    Demonstration of Contour Integration

    A demonstration involving Contour Integration
    Figure \(\PageIndex{3}\): Interactive experiment illustrating how the contour integral is applied on a simple example. For a more in-depth discussion of this method, some background in complex analysis is required. (To view and interact with the simulation, download the free Mathematica player at www.wolfram.com/products/player/download.cgi)

    Conclusion

    The Inverse Z-transform is very useful to know for the purposes of designing a filter, and there are many ways in which to calculate it, drawing from many disparate areas of mathematics. All nevertheless assist the user in reaching the desired time-domain signal that can then be synthesized in hardware(or software) for implementation in a real-world filter.


    This page titled 5.4: Inverse Z-Transform is shared under a CC BY license and was authored, remixed, and/or curated by Richard Baraniuk et al..