So let's see how we're going to go about designing a communication system. Probably the most important concept here is that we're going to adopt the all-digital paradigm. What this means is that we will keep everything in the digital domain until we hit the physical channel. And we were to describe this as a block diagram, it would look like this. We have a binary bitstream, can represent any sort of user data. We have a transmitter that operates entirely in the digital domain, that generates a discrete time signal, s[n]. The last element in the transmission chain is a digital to analog converter operating at a given frequency, or at a given period, as you prefer, that transforms this signal into an analog signal that we can send over the channel. So remember, the channel constraints look a little bit like a filter design problem. We have a bandwidth that is specified in term of a maximum and minimum frequency. So we can only operate over this band. And then we have a power constraint that restricts the power associated to the signal that we produce. So if you want to convert this to our all-digital paradigm, the first thing to do is to convert the specs into discrete time specs. So we choose a frequency for the D to A converter, Fs, this will be our Nyquist frequency, Fs over 2, and with this we can convert the specs. Maximum frequency will be pi and our minimum and maximum frequency bands will be omega min and omega max. Using the relation omega equal to 2 pi F over Fs, and you can put here, F min or F max. Now, here are some working hypotheses that are common to most transmission systems you will ever see. We start from a bitstream, and we will convert this bitstream into a sequence of symbols or samples a of n via something called a mapper. What the mapper does, is associate a group of bits to a specific symbol. Just to give a concrete example, assume we're going to map each group of bits to its decimal value. We want to model the sequence of symbols as a white random sequence. And in order to do, so we have to assume that the bitstream is a completely random sequence. Now, this is not necessarily the case, for instance, imagine you're digitizing audio and you have long stretches of silence. This will result into a long sequence of zeros. And so what we do is we put a scrambler in the line. What a scrambler does, it transforms a sequence of bits into a sequence that looks like a random sequence. But this randomization is completely invertible at the receiver. So we start with a sequence of zeros, for instance, and we put into the scrambler, it's going to look like a completely random sequence of 0's and 1's. But it's done algorithmically, so we can invert this randomization of the receiver and retrieve the original bitstream. With this, we can consider a sequence of symbol a[n] as a white sequence. And now we need to convert the sequence into a continuous time signal within the constraints. So here's the updated transmission scheme. User data goes into a scrambler, this is a random binary sequence. The mapper converts groups of bits to symbols, and then we have to decide what to do in here before converting this into an analog signal. The first problem is fulfilling the bandwidth constraint. If we assume that the data is randomized and therefore the symbol sequence is a white sequence, we know that the power spectral density is simply equal to the variance. And so the power of the signal will be constant over the entire frequency band. But we actually need to fit it into the small band here as specified by the bandwidth constraint. So how do we do this? Well, in order to do that, we need to introduce a new technique called upsampling, and we will see this in the next module.