If you remember in the beginning of this class we gave you a little overview of the major improvement in throughput for channels that we implicitly use everyday. First is the Transatlantic cables that allow telephony from Europe to the United States have seen an improvement that went from five bits per second in 1866 with the first cable to 60 terabytes per second in 2012. And similarly something used every day at home, your modem that allows you to connect to the internet, has increased its data rate from 1,200 bits per second in the 50s to 24 megabits per seconds with the current incarnation of ADSL. Now what are the reasons behind this incredible success? Well, the first one clearly is the power of the DSP paradigm. The fact that DSP works with integers means that for instance, signals are very easy to regenerate. We have seen an example in the introduction and we'll see it again in a second. Also, these two filters allow us to implement very precise phase control. And we will see how important phase is in the detection of a transmitted signal. And finally, we can seamlessly integrate adaptive algorithms into a DSP system. Adaptive algorithms are algorithmic procedures that adapt their behavior as a function of the received signal. These are very hard things to do in analog hardware but very easy to do in digital hardware. As a reminder of what happens when we use digital signals for communication, think of the problem of transmitting a string of binary digits over an analog channel. To do that, we build a very simple signal, an analog signal, where we associate the values plus 5 volts to the symbol zero and minus 5 volts to the symbol one. Now the signal is analog, but it encodes binary information, namely it encodes a string of integers. When we transmit this over wire, two things happen. The signal gets attenuated and noise gets added to the signal. So what we'll receive at the other end of the channel is the original signal attenuated by a factor G, sum to some random noise that corrupts the original signal. Now if you want to regenerate the signal, the first thing we do is undo the attenuation, so we multiply the received signal by a gain factor that is the reciprocal of the attenuation. So we multiply the signal by G, we obtain a signal that has once again the amplitude of the original signal, but in so doing we also amplified noise. And so we have very unclean levels here, which could cause all sorts of problems. But since we know that the signal is bi-level, all we need to do is threshold this signal, and when we see that it's positive, we set it to plus five and when we see that it's negative we set it to minus five. This is easily accomplished in the digital domain by taking the sign of the signal before undoing the attenuation factor. And this is the signal that we get at the other end of the transmission channel. And we can repeat this procedure as many times as we need. And that explains why we can send so much information over very, very long cables that go all the way under the ocean. The second success factor for digital communications today comes from the algorithmic nature of DSP techniques. We have seen an example in image coding and JPEG, where signal processing techniques such as discreet cosign transform could be matched seamlessly to information theory techniques that involve the compression of bit streams. And this interplay between these new techniques from different domains creates such a powerful compression algorithms. Other everyday examples can be found in CDs or DVDs where you have encoding of acoustic or video information matched to powerful error correcting codes, so that DVDs or CDs that are scratched or dusty still play. And in communication systems, techniques such as trellis-coded modulation Viterbi decoding are used to exploit all the capacity of an analog communication channel. The third success factor for digital communications is related to hardware advancements. We can have today miniaturized devices that we can keep in our pocket. We can have general purpose platforms used to develop advanced communication systems, so we don't need to develop specific hardware for each different task. And communication devices have become very power efficient, so we can have large data centers or central offices that process an enormous number of communication channels in parallel.