Classifying Discrete-Time Systems
A discrete-time system is a rule that transforms an input sequence x[n] into an output sequence y[n]. That rule might be as simple as y[n] = 2x[n] (scaling), or as complex as a recursive filter that mixes hundreds of past samples. Before designing or analyzing any system, engineers need a common vocabulary for describing how a system behaves — independent of its specific coefficients.
That vocabulary consists of five fundamental properties: linearity, time-invariance, causality, stability, and memory. Every discrete-time system can be characterized along these dimensions. The most important combination — linearity and time-invariance together — defines the class of LTI systems, which are fully described by a single sequence called the impulse response.
What Is a Discrete-Time System?
Formally, a discrete-time system is an operator T{·} that maps each input sequence x[n] to an output sequence y[n]. The notation y[n] = T{x[n]} encapsulates this idea. The operator T could represent a single difference equation, a cascade of filters, a neural network, or any algorithm that processes samples sequentially.
A simple example: the accumulator y[n] = ∑k=−∞n x[k] sums all past and present inputs. A moving average y[n] = ½(x[n] + x[n−1]) blends two consecutive samples. An ideal delay y[n] = x[n−n0] shifts the signal by n0 samples. Each is a different operator T, with different properties.
Linearity: The Superposition Principle
A system is linear if it obeys the superposition principle: the response to a sum of inputs equals the sum of the individual responses. More precisely, T is linear if and only if for any two inputs x1[n] and x2[n] and any constants a and b:
Linearity is enormously powerful. Because any signal can be decomposed into a sum of scaled, shifted impulses (the sifting property from the previous lesson), knowing the response of a linear system to a single impulse tells us its response to every possible input. This insight is the foundation of convolution and the entire theory of LTI systems.
To test whether y[n] = x²[n] is linear, apply superposition: T{ax₁ + bx₂} = (ax₁[n] + bx₂[n])² = a²x₁²[n] + 2abx₁[n]x₂[n] + b²x₂²[n]. This does not equal aT{x₁} + bT{x₂} = ax₁²[n] + bx₂²[n] in general. The squarer is nonlinear. In contrast, y[n] = 3x[n] − x[n−1] is linear because T{ax₁ + bx₂} = 3(ax₁ + bx₂) − (ax₁[n−1] + bx₂[n−1]) = aT{x₁} + bT{x₂}.
Time-Invariance: The System Doesn't Change
A system is time-invariant if shifting the input in time produces an identical shift in the output — nothing else changes. If y[n] is the response to x[n], then the response to x[n−k] must be y[n−k] for any integer k:
Time-invariance means the system has no internal clock or calendar. Most digital filters are time-invariant: the same coefficient set applies at every sample instant. A time-varying system, by contrast, has parameters that change over time — for example, a filter whose cutoff frequency tracks a control signal, or a communication channel whose characteristics vary second to second.
A useful test: if the system description explicitly contains the index n as a multiplier or coefficient (e.g., y[n] = n⋅x[n]), it is likely time-varying. The factor n makes the gain depend on when in time the signal arrives.
Causality: No Peeking into the Future
A system is causal if its output at any time n depends only on the input at time n and at earlier times (n−1, n−2, …). It cannot depend on future input values x[n+1], x[n+2], and so on — values that have not yet arrived at a real-time processor.
All real-time hardware systems must be causal — a microphone cannot anticipate speech, and a radar receiver cannot know the echo before the pulse is transmitted. However, offline processing is different: when working on pre-recorded data, a system can access future samples freely. Non-causal filters often achieve superior frequency selectivity because they can use both past and future context. Audio mastering, image processing, and scientific data analysis routinely use non-causal algorithms for this reason.
A causal moving average y[n] = ½(x[n] + x[n−1]) uses only past and present samples. A centered moving average y[n] = ⅓(x[n+1] + x[n] + x[n−1]) uses a future sample and is non-causal. The centered version is symmetric and achieves zero phase shift — desirable for ECG or audio analysis — but cannot run in real time.
Causal → real-time capable | Non-causal → offline only, often better performanceStability: Bounded Input, Bounded Output
A system is BIBO stable (Bounded-Input Bounded-Output stable) if every bounded input produces a bounded output. Formally: if there exists a finite constant Bx such that |x[n]| ≤ Bx for all n, then there must exist a finite constant By such that |y[n]| ≤ By for all n:
An unstable system is dangerous in practice: a finite-energy input (a clap, a voltage transient) can trigger runaway growth that saturates hardware, blows speakers, or crashes processors. The accumulator y[n] = ∑k=−∞n x[k] is unstable: apply a unit step input (all ones) and the output grows without bound. The first-order recursive filter y[n] = αy[n−1] + x[n] with |α| < 1 is stable: its impulse response is αnu[n], which is absolutely summable.
Memory: Does the Past Matter?
A system has memory if its output at time n depends on more than just the current input sample x[n]. In other words, past input values (or past output values in a recursive system) influence the present output. A system is memoryless if y[n] = f(x[n]) for some function f — the output depends only on the instantaneous input.
Memory is what makes filtering possible. A memoryless system cannot smooth noise, remove frequency components, or detect patterns across time — those tasks require combining multiple samples. The length of a system's memory (how far back in time the current output depends) is related to the order of the difference equation and the duration of the impulse response.
LTI Systems: The Most Important Class
When a system is both linear and time-invariant, it belongs to the class of LTI systems (Linear Time-Invariant systems). This combination unlocks a complete analytical framework: an LTI system is fully characterized by its impulse response h[n], and its output is the convolution of the input with h[n]:
Why is this so powerful? Because linearity and time-invariance together allow the impulse decomposition from the previous lesson to be applied to the output as well. The linearity ensures we can add the scaled responses; the time-invariance ensures that each shifted impulse in x[n] produces a shifted copy of h[n]. The result is the convolution sum.
Practically every useful discrete-time processing block — low-pass filters, equalizers, echo cancellers, channel estimators, correlators — is either exactly LTI or well-approximated as LTI over the operating range. The Z-transform and the DFT are both tools for analyzing LTI systems in the frequency domain. The entire machinery of classical DSP is built on this foundation.
- A discrete-time system T maps input sequences x[n] to output sequences y[n]; its properties determine how it can be analyzed and implemented.
- Linearity means T{ax₁ + bx₂} = aT{x₁} + bT{x₂}: the superposition principle holds.
- Time-invariance means a time-shifted input produces a time-shifted output; the system's behavior is constant over time.
- A causal system's output depends only on present and past inputs — required for real-time processing; non-causal systems are used offline for better performance.
- BIBO stability ensures bounded inputs always produce bounded outputs; for LTI systems this is equivalent to the impulse response being absolutely summable.
- Memory means past samples affect the current output; memoryless systems process each sample in isolation and cannot perform filtering.
- LTI systems (linear + time-invariant) are fully described by their impulse response h[n]; the output is the convolution y[n] = x[n] * h[n].