SS Notes
Understanding causal and non-causal systems — causality condition, physical realizability, and implications for real-time signal processing.
Introduction
Causality addresses a fundamental physical constraint: the output of a real system at time $t$ can depend only on input values at time $t$ and earlier — never on future inputs that have not yet occurred. This seems obvious for physical hardware, but in mathematical analysis and offline processing, non-causal systems (which use future input values) are perfectly valid and sometimes optimal.
The distinction matters enormously in engineering. If you are designing a real-time system (processing signals as they arrive), causality is mandatory. But if you are processing stored recordings (where the entire signal is available), non-causal operations are permissible and can yield superior results.
Formal Definition
Causal System
A system is causal if the output at any time $t_0$ depends only on the input at times $t \leq t_0$:
$$y(t_0) = f(x(t), t \leq t_0)$$
For discrete-time: $y[n_0]$ depends only on $x[n]$ for $n \leq n_0$.
Non-Causal System
A system is non-causal if the output at some time depends on future input values:
$$y(t_0) = f(\ldots, x(t_0 + \tau), \ldots) \quad \text{for some } \tau > 0$$
Anti-Causal System
A system is anti-causal if the output depends only on future inputs: $y(t_0) = f(x(t), t \geq t_0)$.
Causality in Terms of Impulse Response
For LTI systems, the causality condition has a clean characterization:
A causal LTI system has an impulse response that is zero for negative time:
$$h(t) = 0 \quad \text{for } t < 0 \quad \text{(continuous-time)}$$ $$h[n] = 0 \quad \text{for } n < 0 \quad \text{(discrete-time)}$$
This makes physical sense: the impulse is applied at $t = 0$, and a causal system cannot respond before the impulse arrives.
Examples
Causal Systems
Delay: $y[n] = x[n-2]$ — uses past input (2 samples ago). Causal ✓
Recursive filter: $y[n] = 0.5y[n-1] + x[n]$ — uses present input and past output. Causal ✓
Running sum: $y[n] = \sum_{k=-\infty}^{n} x[k]$ — integrates past and present. Causal ✓
RC circuit: $y(t) = \int_0^{\infty} \frac{1}{RC}e^{-\tau/RC}x(t-\tau)d\tau$ — causal impulse response ✓
Non-Causal Systems
Forward average: $y[n] = \frac{1}{3}(x[n-1] + x[n] + x[n+1])$ — uses next sample. Non-causal ✗
Ideal low-pass filter: $h(t) = \text{sinc}(t/T)$ extends from $-\infty$ to $+\infty$. Non-causal ✗
Time reversal: $y[n] = x[-n]$ — for $n < 0$, output depends on positive-time input (future). Non-causal ✗
Central difference: $y(t) = x(t+1) - x(t-1)$ — uses one future sample. Non-causal ✗
Physical Realizability
Causality is a necessary condition for physical realizability — you cannot build a hardware system that uses future inputs because those inputs do not yet exist. This has direct implications:
Ideal filters are unrealizable: The ideal low-pass filter has a sinc impulse response extending to $-\infty$, making it non-causal. All physically realizable filters approximate the ideal response but cannot match it exactly.
Practical approximation: A non-causal system can be made causal by introducing sufficient delay. If $h(t)$ is non-zero for $t > -T$, then $h(t-T)$ is causal (all non-zero values shifted to positive time). This introduces a processing delay of $T$ seconds.
Example: The non-causal filter $y[n] = \frac{1}{3}(x[n-1] + x[n] + x[n+1])$ can be implemented causally as $y[n] = \frac{1}{3}(x[n-2] + x[n-1] + x[n])$ by accepting a 1-sample delay in the output.
Causality in the Transform Domain
Laplace Domain
A causal system\'s ROC extends to the right: $\text{Re}\{s\} > \sigma_0$ (includes $s \to \infty$).
A causal AND stable system has all poles in the left half-plane with ROC including the $j\omega$ axis and extending right to infinity.
Z-Domain
A causal system\'s ROC includes $z = \infty$ (extends outward from the outermost pole).
A causal AND stable system has all poles inside the unit circle (ROC: $|z| > r_{max}$ with $r_{max} < 1$).
Non-Causal Processing in Practice
Non-causal systems are perfectly valid and widely used in offline processing scenarios:
Audio editing: When processing a complete recorded song, the software has access to the entire file. Non-causal filters (e.g., zero-phase filtering) produce superior results because they do not introduce phase distortion.
Image processing: 2D filters are inherently non-causal in at least one direction — processing pixels uses both past and future neighbors.
Optimal filtering: The Wiener filter (optimal for minimizing mean-squared error) is generally non-causal. Its causal version (causal Wiener filter) trades optimality for realizability.
Video compression: B-frames in video coding reference both past and future frames.
Testing Causality
For a system described by an equation, check whether the output at any time $n_0$ requires knowledge of inputs at $n > n_0$:
- $y[n] = x[2n]$: At $n = 1$, output uses $x[2]$ — a future value if we\'re at time 1. Non-causal.
- $y[n] = x[n^2]$: At $n = 2$, output uses $x[4]$ — future value. Non-causal.
- $y[n] = x[n] \cdot x[n-1]$: Uses present and past only. Causal.
Key Takeaways
- Causal: output depends only on present and past inputs — physically realizable
- Non-causal: output depends on future inputs — valid for offline/stored-data processing
- LTI causality: impulse response $h(t) = 0$ for $t < 0$
- Ideal filters are non-causal; practical filters approximate them with finite delay
- Any non-causal FIR filter can be made causal by adding sufficient delay
- In the s-domain: causal systems have ROC extending to $\text{Re}\{s\} = +\infty$
- In the z-domain: causal systems have ROC including $z = \infty$
Exam Focus
Revise definitions, diagrams, examples, and short-answer points for Causal and Non-Causal Systems.
Interview Use
Prepare one clear explanation, one practical example, and one common mistake for this Signals & Systems topic.
Search Terms
signal-systems, signals & systems, signal, systems, system, basics, causal, and
Related Signals & Systems Topics