Z-Transform Fundamentals
Z-transforms convert discrete-time difference equations into algebraic expressions in the Z-domain. This makes it far easier to study system behavior, stability, and frequency response. Think of it like how Laplace transforms simplify continuous-time systems, but for the discrete-time world of digital signal processing and control.
This section covers how to represent systems with transfer functions, analyze poles and zeros, check stability, and work in both the time and frequency domains.
Transfer Function and System Representation
The transfer function is the ratio of the Z-transformed output to the Z-transformed input:
This gives you a compact way to describe a system's entire input-output relationship in the Z-domain, without needing to track every time-step individually.
To find from a difference equation:
- Start with the system's difference equation (relating current output to current/past inputs and past outputs).
- Take the Z-transform of both sides, applying the time-shift property: a delay of samples in the time domain becomes multiplication by in the Z-domain.
- Collect all terms on one side and all terms on the other.
- Solve for to get .
The order of the transfer function is determined by the highest power of in the denominator (or equivalently, the highest negative power of ). A second-order system, for example, has as its highest delay term in the denominator.
Poles, Zeros, and System Characteristics
Poles are the values of that make the denominator of equal to zero. They determine the system's natural modes of behavior: how the output evolves over time even without further input. Poles control stability and the shape of the transient response (oscillatory, decaying, growing, etc.).
Zeros are the values of that make the numerator of equal to zero. Zeros shape the frequency response by introducing nulls or dips at specific frequencies. For instance, a zero at means the system completely blocks the DC (zero-frequency) component.
A pole-zero plot maps these values onto the complex Z-plane. By convention, poles are marked with '×' and zeros with '○'. This plot gives you a quick visual summary of how the system will behave in both time and frequency.
Stability Analysis using the Z-Plane
Stability in discrete-time systems comes down to where the poles sit relative to the unit circle ():
- Stable: All poles lie strictly inside the unit circle (). The system's transient response decays to zero over time.
- Unstable: Any pole lies outside the unit circle (). The output grows without bound.
- Marginally stable: Poles sit exactly on the unit circle (). The output neither decays nor grows; it oscillates or holds constant. In practice, marginally stable systems are risky because any small perturbation can push them into instability.
A useful detail: the closer a pole is to the origin (farther inside the unit circle), the faster its contribution to the transient response decays. A pole at dies out much faster than one at .

Time-Domain Analysis
Impulse Response and Convolution
The impulse response is the system's output when the input is a unit impulse (a signal that equals 1 at and 0 everywhere else). It completely characterizes a linear time-invariant (LTI) system.
To find , take the inverse Z-transform of . Common methods include partial fraction expansion and lookup tables of known Z-transform pairs.
Once you have , you can find the output for any input using the convolution sum:
The key insight here is that convolution in the time domain corresponds to simple multiplication in the Z-domain:
This is exactly why Z-transforms are so useful. Instead of computing a potentially tedious sum, you multiply two Z-domain expressions and then inverse-transform the result.
Step Response and Transient Analysis
The step response is the system's output when the input is a unit step (a signal that equals 0 for and 1 for ). Since the Z-transform of is , the step response in the Z-domain is:
The step response reveals important transient characteristics:
- Rise time: how quickly the output reaches the steady-state value
- Settling time: how long until the output stays within a small percentage of the final value
- Overshoot: how much the output exceeds the final value before settling down
These metrics tell you whether a system responds quickly, slowly, or with unwanted oscillation.

Difference Equations and System Realization
Discrete-time systems are described by difference equations that relate the current output to current and past inputs, plus past outputs. For example:
Here, and weight the current and previous input samples, while feeds back the previous output. The presence of past output terms (like ) makes this a recursive (IIR) system. If only input terms appear, it's a non-recursive (FIR) system.
When you implement a transfer function in hardware or software, you choose a realization structure:
- Direct Form I: Implements the numerator and denominator separately, requiring more delay elements.
- Direct Form II: Shares delay elements between numerator and denominator, using less memory.
- Cascade form: Breaks the transfer function into second-order sections chained together, which tends to be more robust against numerical rounding errors.
The choice of structure doesn't change the math, but it affects computational cost and how sensitive the system is to finite-precision arithmetic.
Frequency-Domain Analysis
Frequency Response and Bode Plots
The frequency response tells you how the system affects each frequency component of the input. You get it by evaluating the transfer function on the unit circle, substituting :
Here, is the normalized angular frequency, ranging from to (corresponding to DC up to the Nyquist frequency).
The frequency response has two parts:
- Magnitude response : how much the system amplifies or attenuates each frequency.
- Phase response : how much the system shifts each frequency component in time.
Bode plots display these on separate graphs. The magnitude plot is typically shown in decibels (), and the phase plot is in degrees or radians. Together, they give you a complete picture of how the system reshapes signals across frequency.
Filtering and Frequency-Selective Systems
Discrete-time systems are often designed specifically to pass certain frequencies while blocking others:
- Lowpass filters pass low frequencies and attenuate high frequencies. Used for smoothing noisy data or as anti-aliasing filters before sampling.
- Highpass filters pass high frequencies and attenuate low frequencies. Useful for edge detection in images or removing slow baseline drift from a signal.
- Bandpass filters pass only a specific band of frequencies, rejecting everything above and below.
- Bandstop (notch) filters reject a specific frequency band while passing everything else. A common application is removing 60 Hz power-line interference.
Two key parameters define a filter's selectivity:
- Cut-off frequency: the boundary between the passband and stopband.
- Transition bandwidth: how sharply the filter transitions from passing to blocking. A narrower transition band means more selective filtering but typically requires a higher-order filter.
Filter type also matters. FIR (Finite Impulse Response) filters have no feedback and are always stable, but may need many coefficients for sharp cutoffs. IIR (Infinite Impulse Response) filters use feedback, achieving sharp responses with fewer coefficients, but you have to verify stability by checking that all poles remain inside the unit circle.