Discrete-Time Signals
Sequences, shifts, and building blocks
In the sampling lesson, you learned to convert a continuous signal into a sequence of numbers: x[n] = x(n · Ts). But from now on, forget the continuous signal. The sequence x[n] is all that exists.
A discrete-time signal is just a list of numbers, indexed by integers. It doesn't have to come from sampling a continuous signal. It could be stock prices, sensor readings, pixel values, or anything else that forms an ordered sequence. The math is the same.
Before we can build systems that process these signals, we need a toolkit: ways to manipulate sequences, and two fundamental building blocks that make everything else possible.
Operations on Sequences
Discrete-time signals support a handful of basic operations. Every signal processing algorithm is built from these:
- Shift: x[n - k] delays the signal by k samples. Every value moves k positions to the right. x[n + k] advances it by k positions.
- Scale: a · x[n] multiplies every sample by a constant. The shape stays the same; only the height changes.
- Add: x[n] + y[n] adds two signals sample by sample. This is how you mix or superimpose signals.
- Flip: x[-n] reverses the signal in time. The sample at n = 1 moves to n = -1, and vice versa. This operation appears in convolution.
The Unit Impulse: δ[n]
The simplest possible signal has a single non-zero sample:
δ[n] = 1 if n = 0, 0 otherwise
That's it. A spike of height 1 at time zero, silence everywhere else. It looks trivial, but it turns out to be the most important signal in DSP.
Why? Because any discrete signal can be written as a sum of shifted, scaled impulses. For example, x[n] = [2, 5, 1] (at n = 0, 1, 2) is:
x[n] = 2·δ[n] + 5·δ[n - 1] + 1·δ[n - 2]
Each sample becomes a weight on a shifted impulse. This isn't just notation; it's the idea that makes LTI systems analyzable. If you know what a system does to a single impulse, linearity and time-invariance tell you what it does to any input.
The Unit Step: u[n]
The other fundamental building block is the unit step:
u[n] = 1 if n ≥ 0, 0 if n < 0
It's zero for all negative time, then switches on to 1 and stays there forever. Think of it as flipping a switch at n = 0.
The impulse and step are intimately related:
- δ[n] = u[n] - u[n - 1] (the impulse is the first difference of the step)
- u[n] = ∑k=-∞n δ[k] (the step is the running sum of the impulse)
These two signals play the same role in discrete-time DSP that the Dirac delta and the Heaviside step play in continuous-time theory.
Impulse Decomposition
Let's see the decomposition in action. Any signal x[n] can be expressed as:
x[n] = ∑k x[k] · δ[n - k]
Each term x[k] · δ[n - k] is a copy of the impulse shifted to time k and scaled by the signal's value at k. The sum of all these weighted impulses reconstructs the original signal exactly.
Frequently Asked Questions
Why do we need special building-block signals like δ[n] and u[n]?
They play the same role as basis vectors in linear algebra. Just as any vector can be written as a combination of unit vectors, any discrete signal can be written as a combination of shifted impulses. This decomposition is the key to analyzing LTI systems: if you know what a system does to δ[n], you know what it does to everything.
What does "discrete-time" mean, and how is it different from "digital"?
Discrete-time means the signal is defined only at integer time indices n = ..., -1, 0, 1, 2, ... The values x[n] can be any real number. A digital signal is both discrete in time AND quantized in amplitude (values restricted to a finite set). DSP theory works with discrete-time signals; quantization is a separate engineering concern.
Is x[-n] the same signal as x[n]?
No. x[-n] is x[n] reflected (flipped) around n = 0. If x[n] = [1, 2, 3] for n = 0, 1, 2, then x[-n] = [3, 2, 1] for n = -2, -1, 0. Time reversal appears in convolution, where you flip the impulse response before sliding it across the input.
Quick Check
Test your understanding of the key concepts from this lesson.






