At the beginning of our signal processing class, we have defined the concept of signal as the description of the evolution of a natural phenomenon. The language that we have chosen for this description is the language of discrete time. So that for us, a signal is as countable sequence of complex numbers. But there are other disciplines in science and in engineering that use a different language, for instance, in physics or in electronics signal would be defined as a function of a continuous time variable expressed in seconds, a variable that represents time. So we have two competing views of the world. The world's the same, but some people describe the world in so-called analog terms using calculus and functions of a real variable time, and other people like DSP engineers such as ourselves, adopt on the other hand, a digital view of the world in which things are described in terms of countable sequences and integer numbers. So let's go back to the concept of a signal being the description of a natural phenomenon. According to the worldview that you subscribe to, you will describe this phenomenon using different tools. In the digital worldview, for instance, time would be represented by a countable integer index n that doesn't have a physical dimension. It only indicates the order in which the signal samples occur. In the analog worldview on the other hand, time would be expressed in the physical unit of seconds and represented by a real valued variable. In the digital world as we know, the signal values themselves represent a sequence of complex numbers, and we require the sequence to be square summable in order to ensure that the phenomenon has finite energy. In the analog world, we will use on the other hand a function of a real variable t representing time, and the concept of finite energy is indicated by the fact that the function should be square integrable. Frequency in the digital world is represented by a dimensionless variable Omega, and we know that we can choose any 2Pi wide interval to represent all possible values for this frequency because there is a maximum angular frequency that we can have in the digital world. We cannot go too fast. In the analog worldview on the other hand, there is no such limit. So frequency is represented by a real valued variable f whose physical units are one over seconds or hertz, and f can range from minus infinity to plus infinity, so there is no limit to the maximum frequency that we can have in the analog world. Fourier analysis in the digital world is a mapping from square summable sequences to square integrable functions. There are 2Pi periodic. The same concept applies to the analog world. The Fourier transform will map a square integrable function to another square integrable function, which in this case however, is no longer periodic, and has the potential infinite support over the frequency axis. So we have two different languages to describe the same phenomenon. Our question now is, can we bridge the gap between the digital worldview and the analog worldview? Why would we want to do that? Well, consider the situation where for instance, you have a purely digital signal here like the output of some digital synthesizer, and you want to play the sound over an analog loudspeaker. So the language here for the amplifier and the circuits that are inside this analog device is the language of the analog world, and language here is the language of the digital world. The device that managed to bridge this gap is, in the case of your computer, the sound card which performs an interpolation between the sequence of discrete time samples to a function of a real variable t that the electronics can understand. Similarly, suppose you have a microphone and you want to record the sound and then use it in a digital device, well, here we're using the language of the analog world. Here, we're using the language of the digital world, and the gap is bridged again by the sound card that works as a sampler. It samples the analog function here into a sequence of values that this be algorithms can understand. So the idea is that we have a circle if you want between the analog world and the digital world, and we go from the analog world to the digital world via a sampling, and we can go back to the analog world via interpolation. The question is, do we lose information when we perform these operations or are these two worlds perfectly compatible and only the language changes? As we know, it's much more convenient nowadays to perform all over processing in the digital domain. So according to the type of application that we're designing, there will be three prototypical cases in which we will have to use sampling and\or interpolation. In the first case, we want to process signals that come from the analog world and put the result back out in the analog world. So the input will be continuous time, the output also continuous time, but the processing will be done in discrete time for efficiency reasons. So what we have is, of course, a sampler here and interpolator here that perform this conversion. A typical example is modern telephony where the speaker and the listener are both analog of entities human beings, but everything that transits in the chain of processing and brings the voice from the caller to the receiver is done in the digital domain. Sound effects for guitars would be another classical example, used to be done in analog circuitry, nowadays it's cheaper and more versatile to do them in discrete time. A second case is where we take a discrete time input that we synthesize in our digital domain, typically a communication system that takes digital data and transforms that into an analogue signal to be put out on, say a telephone cable or a radio link. So the input is discrete time, the output is continuous time, and there will be therefore an interpolator that bridges the gap between our digital processing and the analog world. So music synthesizers are classic example, computer graphics, video games, worlds that are perfectly defined digitally, but need to be brought out for fruition to analog users. Finally, we have the converse situation in which we start from a continuous time signal and the output of our processing chain is a discrete time signal. Typically, we want to do that when we want to store analog information on digital medium. Storage and compression of audio or photograph, so is a classic example, but also control systems and monitoring and other devices that use the digital data only.