Signals often describe the behavior of physical phenomena. When a signal describes the change in some phenomenon over time, we refer to it as a time-domain signal.1 We can think of real-world phenomena like the altitude of a plane, the temperature in a city, or the speed of an automobile as examples of time-domain signals.

Figure 1a.  Altitude of a Plane as it Travels from Paris to Berlin

Figure 1b.  Mean Temperature in Berlin, Germany, 2001.

Figure 1c.  Speed of an Automobile Traveling Down Main St.

1. Don't let the "domain" terminology throw you. Recall that the domain of a function generally corresponds to the x-axis, and the "range" of a function corresponds to the y-axis. A time-domain signal simply has some unit of time running along its x-axis.

The field of digital signal processing is concerned with measuring, recording, processing, and analyzing these sorts of real-world signals using computers. Computers are exceptionally fast and exceptionally dumb.2 Their only real competency is the rapid reading, writing, and comparison of individual numbers. If you’re into jargon, you might say that computers are only capable of operating on discrete values. When all of these discrete values happen to be represented by ones and zeros, we refer to them as digital values. Digital signal processing is therefore all about processing signals which are encoded as lists of ones and zeros.

By contrast, real-world phenomena are continuous signals. Before you can process a continuous signal using a computer, it must be translated into a digital - and thus discrete - representation. I’d like to quickly argue via a visual thought experiment that a discrete signal will always be an approximation of its continuous counterpart.3 The following animation depicts the impossible task of “covering” a continuous curve using discrete points. Whenever the curve appears to be completely and thoroughly covered, we can simply zoom-in a bit further to reveal sections of the continuous curve which are not occluded. Click the Play button to start the animation.

Figure 2.  Attempting to “Cover” a Continuous Signal Using Discrete Points

Your intuition might lead you to think that our inability to cover a continuous signal using discrete points implies that it is impossible to represent continuous signals using discrete values. As it turns out, this is not true. Given the right conditions, it’s possible to perfectly represent a continuous signal using discrete points.4 In the next few sections, we’ll re-train our intuition through the study of sampling theory and learn how to perfectly encode a continuous signal using discrete values.

2. It's worth watching this video from 1985 where Richard Feynman describes the fundamentally simplistic nature of computers by analogy with human file clerks.

3. If you find this sort of thought experiment interesting, it's worth reading up on the 5th century philosopher Zeno and his famous paradox of Achilles and the Tortoise. Zeno is sort of the grandfather of investigation into continuous vs. discrete time and space. Zeno was trying to make a point about the impossibility of motion, but we're more interested in his method for demonstrating that there are an infinite number of points between any two arbitrary points on a continuous line.

4. The best explanation of sampling is still Monty Montgomery's brilliant video.