The Z-Transform - Discrete Signals in the Frequency Domain
Helpful context:
- Sequences & Series - Infinite Sums That Sometimes Converge
- The Laplace Transform - Turning Differential Equations Into Algebra
- Complex Analysis - Where Calculus Works Better in the Complex Plane
The Laplace transform turns differential equations into algebra. Given a continuous-time system - say, a circuit described by $LC\frac{d^2i}{dt^2} + R\frac{di}{dt} + \frac{i}{C} = v(t)$ - you transform both sides, divide to get the transfer function, then invert to find the output for any given input. Clean, systematic, powerful.
But computers do not work in continuous time. A digital audio processor does not receive the function $f(t)$; it receives samples $f(0), f(0.001), f(0.002), \ldots$ - one number per millisecond. A weather simulation updates discrete grid cells at discrete time steps. A trading algorithm sees daily closing prices. The native material of computation is sequences: discrete, indexed by integers.
The Z-transform is the Laplace transform for sequences. It turns difference equations - the discrete analog of differential equations - into polynomial equations in a complex variable $z$. Every concept from Laplace theory has a Z-transform counterpart, shifted from continuous to discrete. Poles, stability, transfer functions, frequency response - all carry over, with the imaginary axis of the $s$-plane replaced by the unit circle of the $z$-plane.
Section 1: Sequences and Difference Equations
A discrete-time signal is a sequence $x[n]$ for $n \in \mathbb{Z}$ (or $n \geq 0$). The index $n$ represents time, measured in discrete steps. The values $x[n]$ are real or complex numbers.
Two fundamental sequences appear everywhere.
The unit impulse (Kronecker delta):
$$\delta[n] = \begin{cases} 1 & n = 0 \\ 0 & n \neq 0 \end{cases}$$
It is $1$ at exactly one moment and zero everywhere else. It plays the role of the Dirac delta function from continuous-time analysis.
The unit step:
$$u[n] = \begin{cases} 1 & n \geq 0 \\ 0 & n < 0 \end{cases}$$
It switches on at $n = 0$ and stays on. Every causal sequence (one that is zero before some starting time) can be written as $x[n]u[n]$ after appropriate shifting.
A difference equation is a relation involving the current output, past outputs, and the input. The simplest example:
$$y[n] = a \cdot y[n-1] + x[n].$$
This says: the output at time $n$ equals $a$ times the previous output plus the current input. Compare with the continuous-time ODE $y'(t) + \alpha y(t) = x(t)$: the difference equation is the discrete analog, with $y[n-1]$ playing the role of $y'$.
Difference equations arise everywhere: digital filters, recurrence relations (Fibonacci: $F[n] = F[n-1] + F[n-2]$), autoregressive models in time series analysis, accumulation processes (a bank account: balance today equals yesterday’s balance times $(1 + r)$ plus today’s deposit).
Solving a difference equation means finding the sequence $y[n]$ satisfying it for a given input $x[n]$ and initial conditions. Direct solution by substitution works for simple cases but becomes unwieldy. The Z-transform gives a systematic method.
Section 2: The Z-Transform Defined
Definition. The (bilateral) Z-transform of a sequence $x[n]$ is:
$$X(z) = \mathcal{Z}\{x[n]\} = \sum_{n=-\infty}^{\infty} x[n] z^{-n}$$
where $z$ is a complex variable.
The input is a sequence of numbers; the output is a function of a complex variable. This is the same structural move as the Laplace transform: convert a time-domain object into a frequency-domain function.
The region of convergence (ROC) is the set of $z \in \mathbb{C}$ for which the sum $\sum x[n]z^{-n}$ converges absolutely. The Z-transform is only meaningful for $z$ in the ROC.
Standard transform pairs. These appear constantly; derive them once and use them forever.
$\mathcal{Z}\{\delta[n]\} = \sum_{n=-\infty}^{\infty} \delta[n]z^{-n} = z^0 = 1$, for all $z \neq 0$.
$\mathcal{Z}\{u[n]\}$: the sum is $\sum_{n=0}^{\infty} z^{-n} = \sum_{n=0}^{\infty}(1/z)^n = \frac{1}{1 - 1/z} = \frac{z}{z-1}$ for $|z| > 1$.
$\mathcal{Z}\{a^n u[n]\}$: $\sum_{n=0}^{\infty}(a/z)^n = \frac{z}{z-a}$ for $|z| > |a|$.
$\mathcal{Z}\{-a^n u[-n-1]\} = \frac{z}{z-a}$ for $|z| < |a|$.
Notice: the last two have the same algebraic expression $z/(z-a)$ but different ROCs. The sequence corresponding to $X(z) = z/(z-a)$ is not determined by the formula alone - you need the ROC. This ambiguity is a key subtlety of the Z-transform.
Section 3: The Shift Property - The Key to Everything
The shift property is why the Z-transform is useful for difference equations.
Theorem. If $\mathcal{Z}\{x[n]\} = X(z)$, then:
$$\mathcal{Z}\{x[n-k]\} = z^{-k} X(z).$$
Delaying a sequence by $k$ samples multiplies its Z-transform by $z^{-k}$.
Proof for $k = 1$.
$$\mathcal{Z}\{x[n-1]\} = \sum_{n=-\infty}^{\infty} x[n-1] z^{-n}.$$
Substitute $m = n-1$, so $n = m+1$:
$$= \sum_{m=-\infty}^{\infty} x[m] z^{-(m+1)} = z^{-1}\sum_{m=-\infty}^{\infty} x[m]z^{-m} = z^{-1}X(z). \qquad \square$$
The general case follows by induction.
Discomfort check. Why does $z^{-1}$ represent a unit delay? Here is the direct reason: the Z-transform represents a sequence as $X(z) = \sum x[n]z^{-n}$. The term $x[n]$ appears with weight $z^{-n}$. If you delay the sequence by one sample, each element $x[n]$ moves to position $n+1$, carrying weight $z^{-(n+1)} = z^{-1} \cdot z^{-n}$. The extra factor of $z^{-1}$ appears for every term - factor it out and you get $z^{-1}X(z)$. The variable $z^{-1}$ is the unit delay operator. In filter design, you will see $z^{-1}$ drawn as a box labeled “D” for delay.
This one property transforms difference equations into polynomial equations. The difference equation $y[n] - a y[n-1] = x[n]$ becomes, after Z-transforming:
$$Y(z) - a z^{-1} Y(z) = X(z).$$
Factor:
$$Y(z)(1 - az^{-1}) = X(z) \implies Y(z) = \frac{X(z)}{1 - az^{-1}} = \frac{zX(z)}{z - a}.$$
The difference equation is now an algebraic equation in $z$. Solve it algebraically; invert to recover $y[n]$.
Section 4: Solving a Difference Equation - Full Example
Problem. Solve $y[n] - \frac{1}{2}y[n-1] = x[n]$ for the input $x[n] = u[n]$ (a unit step), with zero initial conditions ($y[n] = 0$ for $n < 0$).
Step 1: Z-transform both sides.
The shift property gives $\mathcal{Z}\{y[n-1]\} = z^{-1}Y(z)$. The transform of $u[n]$ is $z/(z-1)$. So:
$$Y(z) - \frac{1}{2}z^{-1}Y(z) = \frac{z}{z-1}.$$
Step 2: Solve for $Y(z)$.
$$Y(z)\left(1 - \frac{1}{2}z^{-1}\right) = \frac{z}{z-1} \implies Y(z) = \frac{z}{z-1} \cdot \frac{1}{1 - \frac{1}{2}z^{-1}} = \frac{z}{z-1} \cdot \frac{z}{z - \frac{1}{2}} = \frac{z^2}{(z-1)(z-\frac{1}{2})}.$$
Step 3: Partial fractions to invert. Write $Y(z)/z$ in partial fractions:
$$\frac{Y(z)}{z} = \frac{z}{(z-1)(z-\frac{1}{2})} = \frac{A}{z-1} + \frac{B}{z - \frac{1}{2}}.$$
$A = \lim_{z\to 1}(z-1)\frac{z}{(z-1)(z-\frac{1}{2})} = \frac{1}{1 - \frac{1}{2}} = 2$.
$B = \lim_{z\to\frac{1}{2}}(z-\frac{1}{2})\frac{z}{(z-1)(z-\frac{1}{2})} = \frac{\frac{1}{2}}{\frac{1}{2} - 1} = -1$.
So $Y(z) = \frac{2z}{z-1} - \frac{z}{z-\frac{1}{2}}$.
Step 4: Invert using tables.
$\mathcal{Z}^{-1}\left\{\frac{z}{z-a}\right\} = a^n u[n]$ (ROC $|z| > |a|$).
$$y[n] = 2(1)^n u[n] - \left(\frac{1}{2}\right)^n u[n] = \left[2 - \left(\frac{1}{2}\right)^n\right]u[n].$$
Check: at $n = 0$: $y[0] = 2 - 1 = 1 = x[0] + \frac{1}{2}\cdot 0$. Correct. At $n = 1$: $y[1] = 2 - \frac{1}{2} = \frac{3}{2} = x[1] + \frac{1}{2}y[0] = 1 + \frac{1}{2} = \frac{3}{2}$. Correct. As $n \to \infty$: $y[n] \to 2$ - the system reaches a steady-state value of $2$ in response to a unit step.
Section 5: Transfer Functions
The transfer function of a linear, time-invariant (LTI) discrete-time system is:
$$H(z) = \frac{Y(z)}{X(z)}.$$
This characterizes the system independent of any particular input. For a general difference equation with input $x[n]$ and output $y[n]$:
$$\sum_{k=0}^{M} b_k y[n-k] = \sum_{k=0}^{N} a_k x[n-k],$$
Z-transforming both sides:
$$B(z^{-1})Y(z) = A(z^{-1})X(z) \implies H(z) = \frac{A(z^{-1})}{B(z^{-1})} = \frac{\sum_{k=0}^{N} a_k z^{-k}}{\sum_{k=0}^{M} b_k z^{-k}}.$$
Multiplying numerator and denominator by $z^{\max(M,N)}$ converts this to a ratio of polynomials in $z$.
The zeros of $H(z)$ are where the numerator is zero; the poles are where the denominator is zero (and $H = \infty$). Zeros and poles in the $z$-plane completely characterize the system’s behavior.
Example. The first-order system $y[n] - ay[n-1] = x[n]$ has:
$$H(z) = \frac{z}{z - a}.$$
This has one zero (at $z = 0$) and one pole (at $z = a$). For inputs of the form $z_0^n$, the output is $H(z_0)z_0^n$ - the system multiplies the amplitude by $|H(z_0)|$ and shifts the phase by $\arg(H(z_0))$.
The impulse response $h[n] = \mathcal{Z}^{-1}\{H(z)\}$ is the output when $x[n] = \delta[n]$. For any input, the output is:
$$y[n] = h[n] * x[n] = \sum_{k=-\infty}^{\infty} h[k]x[n-k].$$
Convolution in the time domain corresponds to multiplication in the Z-domain: $Y(z) = H(z)X(z)$.
Section 6: Stability
A system is BIBO stable (Bounded-Input Bounded-Output stable) if every bounded input produces a bounded output. The stability condition translates directly to the location of poles.
Stability criterion. A causal LTI system is BIBO stable if and only if all poles of $H(z)$ lie strictly inside the unit circle $|z| = 1$.
Why. A causal system has impulse response $h[n] = 0$ for $n < 0$. BIBO stability is equivalent to $\sum_{n=0}^{\infty} |h[n]| < \infty$. The partial fractions of $H(z)$ produce terms $A_k(z/(z-p_k))^{m_k}$; inverting gives terms involving $p_k^n$. For these to be summable, we need $|p_k| < 1$ for every pole $p_k$.
| Pole location | Impulse response behavior | Stability |
|---|---|---|
| All poles inside unit circle $|p_k| < 1$ | Decays to zero | BIBO stable |
| Any pole on unit circle $|p_k| = 1$ | Oscillates without decaying | Marginally stable |
| Any pole outside unit circle $|p_k| > 1$ | Grows without bound | Unstable |
Discomfort check. Why is the stability boundary the unit circle $|z| = 1$, when in Laplace theory it was the imaginary axis $\text{Re}(s) = 0$? The mapping is $z = e^{sT}$ where $T$ is the sampling period. The imaginary axis $\text{Re}(s) = 0$ (i.e., $s = j\omega$) maps to $|z| = |e^{j\omega T}| = 1$ - the unit circle. The left half $s$-plane ($\text{Re}(s) < 0$) maps to the inside of the unit circle ($|z| < 1$). The right half-plane maps to the outside. Stability in continuous time (poles in left half-plane) exactly corresponds to stability in discrete time (poles inside unit circle). The unit circle is the imaginary axis of discrete time.
Example. The system $y[n] = 1.5 y[n-1] - 0.5 y[n-2] + x[n]$ has transfer function $H(z) = z^2/(z^2 - 1.5z + 0.5) = z^2/[(z-1)(z-0.5)]$. Poles are at $z = 1$ (on the unit circle) and $z = 0.5$ (inside). The pole at $z = 1$ is on the boundary - the system is marginally stable, not BIBO stable (a step input produces an output that grows linearly).
Section 7: The Region of Convergence
The Z-transform sum $\sum x[n]z^{-n}$ converges only for certain values of $z$. The ROC must be specified along with $X(z)$ for the transform to be unambiguous.
ROC for right-sided sequences. If $x[n] = 0$ for $n < n_0$ (causal or right-sided), the ROC is the exterior of some circle: $|z| > r_{\min}$ (possibly $r_{\min} = 0$).
ROC for left-sided sequences. If $x[n] = 0$ for $n > n_0$ (anti-causal or left-sided), the ROC is the interior: $|z| < r_{\max}$ (possibly $r_{\max} = \infty$).
ROC for two-sided sequences. The ROC is an annulus $r_{\min} < |z| < r_{\max}$, or empty if no such annulus exists.
Discomfort check. The same formula can correspond to two different sequences depending on the ROC. The formula $X(z) = z/(z - a)$ with ROC $|z| > |a|$ gives $x[n] = a^n u[n]$ - a right-sided sequence that starts at $n = 0$ and grows (or decays) forward in time. The same formula with ROC $|z| < |a|$ gives $x[n] = -a^n u[-n-1]$ - a left-sided sequence that is zero for $n \geq 0$ and extends backward. The formula tells you the algebraic relationship; the ROC tells you which of the multiple sequences sharing that formula is intended.
Rules for determining ROC.
- The ROC cannot contain any poles.
- For a rational $X(z)$ with poles at $p_1, p_2, \ldots$: the ROC is bounded by circles through the poles.
- For causal sequences: ROC extends outward from the outermost pole ($|z| > \max|p_k|$).
- For the system to be stable and causal: ROC must contain the unit circle, so all poles must be inside the unit circle.
Example. $X(z) = \frac{z}{(z - \frac{1}{3})(z - 3)}$ has poles at $z = 1/3$ and $z = 3$.
- ROC $|z| > 3$ (right-sided): inverse Z-transform gives $x[n] = \left[\frac{1}{3}(1/3)^n + \frac{-1}{something}(3)^n\right]u[n]$ - a growing sequence.
- ROC $\frac{1}{3} < |z| < 3$ (two-sided): the unit circle is inside the ROC, so this corresponds to a stable but non-causal sequence.
- ROC $|z| < \frac{1}{3}$ (left-sided): anti-causal sequence.
Section 8: Inverse Z-Transform
Given $X(z)$ and its ROC, find the sequence $x[n]$. Several methods are available.
Method 1: Partial fractions. For rational $X(z)$, write $X(z)/z$ (or $X(z)$ itself) in partial fractions, then match each term to a table entry. This is the method of Section 4.
Method 2: Power series expansion. Expand $X(z)$ as a power series in $z^{-1}$: $X(z) = \sum_n c_n z^{-n}$. Then $x[n] = c_n$ directly.
Example: $X(z) = \frac{1}{1 - az^{-1}}$ for $|z| > |a|$. This is a geometric series: $X(z) = \sum_{n=0}^{\infty}(az^{-1})^n = \sum_{n=0}^{\infty} a^n z^{-n}$. So $x[n] = a^n u[n]$.
For $|z| < |a|$: rewrite $X(z) = \frac{1}{1 - az^{-1}} = \frac{-z/a}{1 - z/a} = -\frac{z}{a}\sum_{n=0}^{\infty}(z/a)^n = -\sum_{n=0}^{\infty}z^{n+1}/a^{n+1}$. Reindexing: $X(z) = -\sum_{m=1}^{\infty}z^m/a^m = -\sum_{m=-\infty}^{-1}(1/a)^{-m}z^{-(-m)}$… this gets complicated; partial fractions are usually cleaner for two-sided sequences.
Method 3: Contour integration (residue theorem). The formal inversion formula is:
$$x[n] = \frac{1}{2\pi i}\oint_C X(z)z^{n-1} dz$$
where $C$ is a closed contour inside the ROC encircling the origin counterclockwise. Evaluating this by the residue theorem: $x[n] = \sum_{\text{poles inside } C} \text{Res}(X(z)z^{n-1}, z_k)$.
This is the exact discrete-time analog of the Bromwich contour integral for the inverse Laplace transform.
Section 9: Z-Transform Table and Properties
For reference, here are the most-used Z-transform pairs. In all cases, $|z| > |a|$ for right-sided (causal) sequences.
| Sequence $x[n]$ | Z-transform $X(z)$ | Notes |
|---|---|---|
| $\delta[n]$ | $1$ | All $z$ |
| $\delta[n - k]$ | $z^{-k}$ | Delayed impulse |
| $u[n]$ | $z/(z-1)$ | Unit step |
| $a^n u[n]$ | $z/(z-a)$ | Exponential; converges for $|z| > |a|$ |
| $n u[n]$ | $z/(z-1)^2$ | Ramp |
| $n a^n u[n]$ | $az/(z-a)^2$ | Weighted exponential |
| $\cos(\omega_0 n)u[n]$ | $z(z - \cos\omega_0)/(z^2 - 2z\cos\omega_0 + 1)$ | Cosine |
| $\sin(\omega_0 n)u[n]$ | $z\sin\omega_0/(z^2 - 2z\cos\omega_0 + 1)$ | Sine |
| $a^n\cos(\omega_0 n)u[n]$ | $z(z - a\cos\omega_0)/(z^2 - 2az\cos\omega_0 + a^2)$ | Damped cosine |
Key properties, stated for Z-transforms $X(z)$ and $Y(z)$:
| Property | Time domain | Z-domain |
|---|---|---|
| Linearity | $ax[n] + by[n]$ | $aX(z) + bY(z)$ |
| Time shift | $x[n-k]$ | $z^{-k}X(z)$ |
| Scaling | $a^n x[n]$ | $X(z/a)$ |
| Time reversal | $x[-n]$ | $X(1/z)$ |
| Convolution | $x[n] * y[n]$ | $X(z)Y(z)$ |
| Multiplication by $n$ | $n x[n]$ | $-z\frac{d}{dz}X(z)$ |
| Initial value | $x[0]$ | $\lim_{z\to\infty} X(z)$ |
| Final value | $\lim_{n\to\infty} x[n]$ | $\lim_{z\to 1}(z-1)X(z)$ (if stable) |
The final value theorem is particularly useful: it gives the steady-state output of a stable system to a step input without inverting the full Z-transform.
Section 10: Frequency Response
The frequency response of a discrete-time system is the transfer function evaluated on the unit circle:
$$H(e^{j\omega}) = H(z)\big|{z = e^{j\omega}} = \sum{n=-\infty}^{\infty} h[n]e^{-j\omega n}.$$
This is the Discrete-Time Fourier Transform (DTFT) of the impulse response. It tells you how the system responds to sinusoidal inputs. If the input is $x[n] = e^{j\omega_0 n}$ (a complex sinusoid at frequency $\omega_0$), the output of a stable LTI system is $y[n] = H(e^{j\omega_0})e^{j\omega_0 n}$ - the same sinusoid, multiplied by the complex number $H(e^{j\omega_0})$.
In other words: the magnitude $|H(e^{j\omega})|$ tells you how much the system amplifies frequency $\omega$. The phase $\arg(H(e^{j\omega}))$ tells you how much it delays it.
Geometric interpretation. The frequency response $H(e^{j\omega})$ can be computed geometrically from the pole-zero plot. For each frequency $\omega$:
- $H(e^{j\omega})$ equals $\prod_k (e^{j\omega} - z_k) / \prod_k (e^{j\omega} - p_k)$ (up to a scale factor), where $z_k$ are zeros and $p_k$ are poles.
- $|H(e^{j\omega})|$ is the product of distances from $e^{j\omega}$ to each zero, divided by the product of distances to each pole.
- A zero near the unit circle at angle $\omega_0$ suppresses frequencies near $\omega_0$.
- A pole near the unit circle at angle $\omega_0$ amplifies frequencies near $\omega_0$.
This gives immediate geometric intuition for filter design: place zeros where you want to reject frequencies; place poles where you want to amplify.
Section 11: Digital Filters
The Z-transform is the natural language for designing discrete-time filters.
FIR filters (Finite Impulse Response). The difference equation involves only current and past inputs, not past outputs:
$$y[n] = \sum_{k=0}^{N} b_k x[n-k].$$
The transfer function is $H(z) = \sum_{k=0}^{N} b_k z^{-k}$ - a polynomial in $z^{-1}$. This has zeros but no poles (except at $z = 0$, which is benign). The impulse response is $h[n] = b_n$ for $0 \leq n \leq N$ and zero otherwise - it is finite.
FIR filters have two decisive advantages: (1) they are always stable, since a polynomial has no poles in the finite $z$-plane; (2) they can be designed to have exactly linear phase - all frequencies are delayed by the same number of samples, so the shape of transients is preserved. The cost: achieving a sharp frequency cutoff requires a large $N$ (many coefficients).
IIR filters (Infinite Impulse Response). The difference equation involves past outputs too:
$$\sum_{k=0}^{M} b_k y[n-k] = \sum_{k=0}^{N} a_k x[n-k].$$
The transfer function $H(z) = A(z^{-1})/B(z^{-1})$ is a rational function with poles and zeros. The impulse response is infinite - it never exactly reaches zero. IIR filters achieve steep frequency cutoffs with far fewer coefficients than FIR filters (the feedback from past outputs provides memory “for free”). The cost: potential instability (poles can escape the unit circle if not carefully designed) and nonlinear phase.
Classic analog filter designs - Butterworth (maximally flat passband), Chebyshev (equiripple passband), elliptic (equiripple passband and stopband) - can all be converted to digital IIR filters using the bilinear transform.
Section 12: Connection to Laplace and the Bilinear Transform
The relationship between the Z-transform and the Laplace transform is exact.
Sample a continuous-time signal $x(t)$ at rate $T$ to get $x[n] = x(nT)$. The Z-transform of the sample sequence relates to the Laplace transform of the continuous signal via:
$$z = e^{sT}.$$
This mapping sends:
- Left half-plane $\text{Re}(s) < 0$ to inside the unit circle $|z| < 1$.
- Right half-plane $\text{Re}(s) > 0$ to outside the unit circle $|z| > 1$.
- Imaginary axis $\text{Re}(s) = 0$ to the unit circle $|z| = 1$.
This is the precise mathematical reason for the stability analogy: a stable continuous-time system has poles in the left half-plane; a stable discrete-time system has poles inside the unit circle. The exponential map $z = e^{sT}$ is the bridge.
The bilinear transform converts an analog filter design (in the $s$-domain) to a digital filter design (in the $z$-domain). The substitution is:
$$s = \frac{2}{T} \cdot \frac{z-1}{z+1}.$$
This maps the imaginary axis in $s$ bijectively to the unit circle in $z$, and the left half-plane to the interior of the unit circle. The stability properties of the analog filter are exactly preserved. The tradeoff: a nonlinear frequency warping between analog and digital frequencies, given by $\omega_{\text{analog}} = (2/T)\tan(\omega_{\text{digital}}T/2)$. This warping must be compensated in the design phase (pre-warping the critical frequencies), but after compensation, the bilinear transform is the standard tool for converting analog prototype filters to digital filters.
Section 13: Poles, Zeros, and the Pole-Zero Plot
The transfer function $H(z)$ of a discrete-time system is a rational function. Its zeros and poles live in the complex plane and determine everything about the system.
Finding the frequency response from the pole-zero plot. At frequency $\omega$, evaluate $H(z)$ at $z = e^{j\omega}$ on the unit circle. Write $H(z) = K\prod_k(z - z_k)/\prod_k(z - p_k)$ where $z_k$ are zeros and $p_k$ are poles. Then:
$$|H(e^{j\omega})| = |K|\frac{\prod_k |e^{j\omega} - z_k|}{\prod_k |e^{j\omega} - p_k|}.$$
The magnitude response at frequency $\omega$ is the ratio: product of distances from the point $e^{j\omega}$ on the unit circle to each zero, divided by product of distances to each pole.
This gives immediate geometric insight:
-
A zero placed exactly on the unit circle at angle $\omega_0$ (that is, at $z_0 = e^{j\omega_0}$) makes $|H(e^{j\omega_0})| = 0$. That frequency is completely blocked - this is a notch filter.
-
A pole placed close to the unit circle at angle $\omega_0$ makes the distance $|e^{j\omega_0} - p|$ very small, so $|H(e^{j\omega_0})|$ is very large. That frequency is strongly amplified.
-
Poles far from the unit circle (but inside it) have less effect on the frequency response - the distance does not change much as $\omega$ varies.
Design example: a simple notch filter. Suppose you want to eliminate 60 Hz noise from a signal sampled at 1000 Hz. The normalized frequency is $\omega_0 = 2\pi \cdot 60/1000 = 0.12\pi$ radians per sample. Place zeros at $z = e^{\pm j\omega_0}$ - this creates a transfer function $H(z) = (z - e^{j\omega_0})(z - e^{-j\omega_0}) = z^2 - 2\cos(\omega_0)z + 1$. This FIR filter perfectly rejects 60 Hz. To avoid disturbing other frequencies too much, place poles near the zeros (inside the unit circle) to flatten the response: this is the IIR notch filter design.
Discomfort check. Poles must be inside the unit circle for stability. But placing poles close to the unit circle is exactly how you get sharp, peaked frequency responses (resonances). There is no contradiction: the pole can be at $r e^{j\omega_0}$ with $r = 0.95$ (close to the unit circle, so it creates a strong resonance) while still satisfying $|r| = 0.95 < 1$ (inside the unit circle, so the system is stable). The closer $r$ is to $1$, the sharper the resonance - but also the more sensitive the system is to coefficient quantization errors. This is the fundamental design tension in IIR filter design.
Section 14: One-Sided Z-Transform and Initial Conditions
In practice, signals often start at $n = 0$ (causal systems with given initial conditions). The unilateral (one-sided) Z-transform is:
$$X^+(z) = \sum_{n=0}^{\infty} x[n] z^{-n}.$$
This is the Z-transform restricted to $n \geq 0$. Its shift property, when initial conditions are nonzero, picks up extra terms:
$$\mathcal{Z}^+\{x[n-1]\} = z^{-1}X^+(z) + x[-1].$$
More generally:
$$\mathcal{Z}^+\{x[n-k]\} = z^{-k}X^+(z) + \sum_{m=1}^{k} z^{-(k-m)}x[-m].$$
The initial conditions $x[-1], x[-2], \ldots, x[-k]$ appear explicitly in the transform. This allows the Z-transform to handle initial value problems directly, just as the unilateral Laplace transform handles initial conditions for ODEs.
Example with initial conditions. Solve $y[n] - \frac{3}{4}y[n-1] = u[n]$ with initial condition $y[-1] = 2$.
Taking the unilateral Z-transform:
$$Y(z) - \frac{3}{4}(z^{-1}Y(z) + y[-1]) = \frac{z}{z-1}.$$
$$Y(z) - \frac{3}{4}z^{-1}Y(z) - \frac{3}{4}(2) = \frac{z}{z-1}.$$
$$Y(z)(1 - \frac{3}{4}z^{-1}) = \frac{z}{z-1} + \frac{3}{2} = \frac{z + \frac{3}{2}(z-1)}{z-1} = \frac{\frac{5}{2}z - \frac{3}{2}}{z-1}.$$
Multiply through and use partial fractions to invert. The point: initial conditions enter algebraically, exactly as in the Laplace transform for ODEs.
Section 15: The Full Chain
The various transforms form a coherent framework. The Z-transform lives at the center of discrete-time signal processing:
- The Laplace transform handles continuous-time signals; poles in the left half $s$-plane for stability.
- The Z-transform handles discrete-time sequences; poles inside the unit circle for stability.
- The Fourier transform (continuous) is the Laplace transform on the imaginary axis.
- The DTFT is the Z-transform on the unit circle.
- The DFT samples the DTFT at $N$ equally spaced frequencies.
- The FFT computes the DFT efficiently.
Each step is a specialization or discretization of the previous. The underlying theory - complex analysis, contour integration, residues - runs through all of them. Understanding the Z-transform means understanding how all these pieces fit together.
Summary
| Concept | Content |
|---|---|
| Discrete-time signal | Sequence $x[n]$ for $n \in \mathbb{Z}$ |
| Unit impulse | $\delta[n] = 1$ at $n=0$; zero elsewhere |
| Unit step | $u[n] = 1$ for $n \geq 0$; zero for $n < 0$ |
| Z-transform | $X(z) = \sum_{n=-\infty}^{\infty}x[n]z^{-n}$ |
| $\mathcal{Z}\{a^n u[n]\}$ | $z/(z-a)$ for $|z| > |a|$ |
| Shift property | $\mathcal{Z}\{x[n-k]\} = z^{-k}X(z)$; delay by $k$ = multiply by $z^{-k}$ |
| Transfer function | $H(z) = Y(z)/X(z)$; characterizes system independent of input |
| ROC | Set of $z$ where sum converges; annulus in $\mathbb{C}$; specifies which sequence |
| Stability | All poles inside unit circle $|z| = 1$ |
| Frequency response | $H(e^{j\omega})$; Z-transform on unit circle; magnitude = gain, phase = delay |
| DTFT | $X(e^{j\omega}) = X(z)|_{z=e^{j\omega}}$; discrete-time frequency analysis |
| FIR filter | Polynomial $H(z)$; zeros only; always stable; can have linear phase |
| IIR filter | Rational $H(z)$; poles and zeros; efficient; stability must be checked |
| $z = e^{sT}$ | Maps left half $s$-plane to inside unit disk; stability correspondence |
| Bilinear transform | $s = \frac{2}{T}\frac{z-1}{z+1}$; converts analog to digital filter; frequency warping |
Why the Z-Transform Is the Right Tool
Three points deserve emphasis at the end.
It is the Laplace transform for computers. Everything you know from Laplace theory - transfer functions, pole-zero analysis, convolution via multiplication, stability from pole locations - transfers directly to the discrete setting. The unit circle replaces the imaginary axis. The interior of the unit disk replaces the left half-plane. The mathematics is the same; the geometry is different.
The ROC is not optional. Unlike the Fourier transform, where you typically assume a signal is in $L^2$ and proceed, the Z-transform requires specifying the ROC to identify the signal. The ROC distinguishes causal from anti-causal sequences, stable from unstable systems, and right-sided from two-sided signals. Ignoring it leads to errors that are hard to debug because the algebraic expression looks identical for different sequences.
Stability is a geometric statement. The condition “all poles inside the unit circle” is not an algebraic rule to memorize - it is the statement that the impulse response decays to zero, because pole at $z = p$ gives impulse response term $p^n$, and $|p|^n \to 0$ iff $|p| < 1$. Once you see stability as a geometric condition on the $z$-plane, pole-zero plots become interpretable at a glance.
Read next: