WEBVTT 00:00:00.440 --> 00:00:03.600 Hi and welcome to Module 9.6 of Digital Signal Processing. 00:00:03.600 --> 00:00:07.200 This is our last module in our Data Communications section, and with 00:00:07.200 --> 00:00:10.980 everything that we've learned so far we will be able to look inside an ADSL modem 00:00:10.980 --> 00:00:15.595 and see how that works. We will start by examining the nature of 00:00:15.595 --> 00:00:18.260 the channel. That ABSL works on. 00:00:18.260 --> 00:00:22.460 Namely the copper wire links your home to the nearest central office. 00:00:22.460 --> 00:00:25.587 We will look at the signaling strategy that is best put on place on such a 00:00:25.587 --> 00:00:28.219 channel. And finally we will look at a very 00:00:28.219 --> 00:00:31.180 efficient implementation of that signalling strategy that goes under the 00:00:31.180 --> 00:00:35.635 name of discrete multi-tone modulation. If we just take an abstract view of the 00:00:35.635 --> 00:00:39.880 telephone network today, we see that we have a link that goes. 00:00:39.880 --> 00:00:43.400 From the home to the central office, and in the central office, a fundamental 00:00:43.400 --> 00:00:47.895 split takes place. The voice communication, when you talk on 00:00:47.895 --> 00:00:52.823 the phone, is sent to the voice network and then relayed to the, what is called 00:00:52.823 --> 00:01:01.182 the plain old telephone system, POTS. The data part of your communication when 00:01:01.182 --> 00:01:06.235 you use the ADSL is separated from the voice content and sent to a DSLAM. 00:01:06.235 --> 00:01:10.300 DSLAM stands for digital subscriber line access multiplier. 00:01:10.300 --> 00:01:13.157 And it's fundamentally a bank of modems that manage to handle multiple 00:01:13.157 --> 00:01:17.784 communications at the same time. And the data here then goes on to the 00:01:17.784 --> 00:01:22.940 internet in digital format. So, if you want, what we're really 00:01:22.940 --> 00:01:25.388 interested in is how to send the data from your home to the central office, 00:01:25.388 --> 00:01:30.650 because what happens afterwards is already entirely in the digital domain. 00:01:30.650 --> 00:01:34.682 But here, we have what is called a last mile, a piece of copper wire, namely an 00:01:34.682 --> 00:01:38.356 analog channel. That connects your home to the central 00:01:38.356 --> 00:01:41.329 office. Now a copper wire has, naturally, a very 00:01:41.329 --> 00:01:46.508 large bandwidth in excess of one 1MHz. But because of the width of the bandwidth 00:01:46.508 --> 00:01:49.784 and because the wire is not shielded, it is actually likely to pick up a lot of 00:01:49.784 --> 00:01:54.244 interference and noise. If we look at how the ADSL channel is 00:01:54.244 --> 00:01:58.300 organized and we're showing here just the positive frequencies. 00:01:58.300 --> 00:02:02.579 We can see three distinct regions. The first one is the part reserved to the 00:02:02.579 --> 00:02:07.543 telephone conversation, this is the base band part of the channel up to about four 00:02:07.543 --> 00:02:12.154 kilohertz. Then we have a region that is devoted to 00:02:12.154 --> 00:02:15.750 the upstream part of the data communication, the data that you send up 00:02:15.750 --> 00:02:19.780 to the internet, and then a downstream part that is much larger that is used for 00:02:19.780 --> 00:02:25.177 data download. This asymmetry between upstream and 00:02:25.177 --> 00:02:30.956 downstream is actually the reason why the communication protocol is called ADSL. 00:02:30.956 --> 00:02:34.440 ADSL stands for Asymmetric Digital Subscriber Line. 00:02:34.440 --> 00:02:37.490 If we now look at all the nasty things that can happen on the channel when we 00:02:37.490 --> 00:02:41.600 send data. We can identify three fundamental sources 00:02:41.600 --> 00:02:44.602 of worry. The first one is an attenuation curve for 00:02:44.602 --> 00:02:49.379 the channel that is completely uneven. This could be due to imperfection in the 00:02:49.379 --> 00:02:53.400 wire, parasitic capacitance, and so on, so forth. 00:02:53.400 --> 00:02:57.392 Then we might have very large noise or interference in certain regions of the 00:02:57.392 --> 00:03:00.292 spectrum. For instance, you turn on your vacuum 00:03:00.292 --> 00:03:04.460 cleaner, and that raises the noise floor in the certain frequency band. 00:03:04.460 --> 00:03:08.940 And thirdly we have very localized interference from radio communications 00:03:08.940 --> 00:03:13.280 now the radio band starts well within the bandwidth of the ADSL channel for 00:03:13.280 --> 00:03:17.130 instance from 15 to a hundred kilohertz here you have ship to shore 00:03:17.130 --> 00:03:23.335 communication. Up to 500 kilohertz, you have airplane 00:03:23.335 --> 00:03:29.210 communication, and over 500 kilohertz you have the AM radio band. 00:03:29.210 --> 00:03:31.730 So if you live near a radio station, for instance, tough luck. 00:03:31.730 --> 00:03:35.440 You have a lot of interference in the upper regions of the ADSL band. 00:03:35.440 --> 00:03:38.726 Since the channel is so wide, and the type of disturbances is so diverse, it 00:03:38.726 --> 00:03:42.224 would be extraordinarily difficult to try to equalize and compensate for this 00:03:42.224 --> 00:03:47.418 problems on a global scale. So the ideal, instead, is to divide the 00:03:47.418 --> 00:03:53.480 channel into independent sub channels. And create each sub channel separately. 00:03:53.480 --> 00:03:57.575 So here for instance, this channel contains, highly localized, radio 00:03:57.575 --> 00:04:01.985 frequency interference would not probably be used because it would be to difficult 00:04:01.985 --> 00:04:06.718 to compensate for that. Here on these channels the noise level is 00:04:06.718 --> 00:04:09.961 different and so for instance we can use different signalling strategy according 00:04:09.961 --> 00:04:14.865 to the local signal to noise ratio. And similarly here for channels that have 00:04:14.865 --> 00:04:17.903 a very large attenuation, probably wouldn't be worth while to try and send 00:04:17.903 --> 00:04:21.910 data over these thins. But on the other hand that we will try to 00:04:21.910 --> 00:04:26.470 exploit the cleanest sub channels to send maximum amount of data. 00:04:26.470 --> 00:04:28.900 Now to formalize the sub channel structure. 00:04:28.900 --> 00:04:32.322 Suppose that we want to allocate N subchannels over the total positive 00:04:32.322 --> 00:04:35.398 bandwidth. We want the subchannels to have equal 00:04:35.398 --> 00:04:39.520 bandwidth, so their bandwidth will be F max over N, where F max is the maximum 00:04:39.520 --> 00:04:45.466 frequency allowed for by the channel. And we equally space the subchannels, by 00:04:45.466 --> 00:04:52.590 sensoring them over k F max over N, with k that goes from 0 to big N minus 1. 00:04:52.590 --> 00:04:58.346 This means that the first channel K equal to 0, will be bass-band. 00:04:58.346 --> 00:05:03.456 And then the subsequent channels will be bass-band, with center frequencies given 00:05:03.456 --> 00:05:07.405 by this formula. Now we want to translate this design, to 00:05:07.405 --> 00:05:10.925 the digital domain, so we pick a sampling frequency that is at least twice the 00:05:10.925 --> 00:05:16.712 maximum frequency in the channel. But careful now, because Fmax is quite 00:05:16.712 --> 00:05:19.890 high. The center frequency for each sub channel 00:05:19.890 --> 00:05:25.290 will be omega K equal to 2 pi kFmax over N divided by the sampling frequency. 00:05:25.290 --> 00:05:30.220 And if we sample at the[UNKNOWN] frequency, so Fs is equal twice Fmax, 00:05:30.220 --> 00:05:35.810 then omegak becomes simple 2 pi over 2N times k. 00:05:35.810 --> 00:05:38.930 We will not simplify the 2's in the fraction, because they will be useful 00:05:38.930 --> 00:05:43.205 later. The bandwidth of each subchannel, is also 00:05:43.205 --> 00:05:47.200 2 pi over 2N. And so, if we want to send symbols over 00:05:47.200 --> 00:05:51.156 any of these subchannels, remember the modulation scheme that we've seen in the 00:05:51.156 --> 00:05:55.186 previous modules, then we will have to use an up-sampling factor, k, that is at 00:05:55.186 --> 00:06:00.930 least 2N. If we plot the result in visual domain. 00:06:00.930 --> 00:06:04.830 Let's suppose that we just want to have three sub-channels, we have something 00:06:04.830 --> 00:06:09.635 that looks like this. The center frequencies will be multiples 00:06:09.635 --> 00:06:14.755 of 2 pi over 6, so we'll have 0. 2 pi over 6 and 4 pi over 6 and we will 00:06:14.755 --> 00:06:19.705 center channels over these frequencies and the band width of each channel will 00:06:19.705 --> 00:06:24.338 be 2 pi over 6. So the 1st channel is the base band 00:06:24.338 --> 00:06:27.922 channel and then we have two pass band channels with of course their negative 00:06:27.922 --> 00:06:32.748 frequency counterpart. The next step in ADSL communication is to 00:06:32.748 --> 00:06:36.835 put a QAM modem on each subchannel independently and we will decide on the 00:06:36.835 --> 00:06:42.160 data rate for each modem. Based on the signal to noise ratio of 00:06:42.160 --> 00:06:45.840 each sub channel. So if the noise floor is low, then we 00:06:45.840 --> 00:06:51.280 will have a large constellation for that sub channel and vice versa. 00:06:51.280 --> 00:06:55.880 On channels that are unusable because of noise or interference, we will just send 00:06:55.880 --> 00:06:59.910 zeroes and we will not care about that. The structure of the SQL scheme is of 00:06:59.910 --> 00:07:03.796 course going to be communicated From the transmitter to the receiver so that the 00:07:03.796 --> 00:07:08.985 receiver knows where to expect data. This is part of the handshaking procedure 00:07:08.985 --> 00:07:12.384 between transmitter and receiver. Now let's look more in detail at the 00:07:12.384 --> 00:07:15.340 structure of the modem that we use on each sub-channel. 00:07:15.340 --> 00:07:19.102 This is a classic modulation scheme where we start with a sequence of symbols as 00:07:19.102 --> 00:07:23.718 produced by the mapper. Then we have an up-sampling by a factor 00:07:23.718 --> 00:07:27.454 of 2 N. So inserting two n minus one zero's every 00:07:27.454 --> 00:07:31.643 other sample and then filtering the sequence with a low pass, usually a 00:07:31.643 --> 00:07:38.310 raised cosine, with a cutoff frequency two pi over two n, in this case. 00:07:38.310 --> 00:07:43.570 This produces the complex base band signal bk of n and this. 00:07:43.570 --> 00:07:47.476 Complex baseband signal gets modulated with a complex exponential whose 00:07:47.476 --> 00:07:50.870 frequency is indexed by the channel number. 00:07:50.870 --> 00:07:53.446 And this is the center frequency of each channel. 00:07:53.446 --> 00:08:00.487 Omega ck is equal to 2pi over 2n times k. And here we have, finally, the pass band 00:08:00.487 --> 00:08:03.970 signal. That fits the prescribed bandwidth of the 00:08:03.970 --> 00:08:07.550 kth channel. And normally, if we just had one channel, 00:08:07.550 --> 00:08:13.798 we would put here a block that computes the real part and then our d2a converter. 00:08:13.798 --> 00:08:18.640 But here we have several modems in parallel. 00:08:18.640 --> 00:08:20.540 And so we have a structure that looks like this. 00:08:20.540 --> 00:08:24.694 Each channel will have two things that vary with respect to the others: the 00:08:24.694 --> 00:08:28.982 frequency of the modulation and of course, the series of symbols produced by 00:08:28.982 --> 00:08:33.911 the mapper. We sum all the complex base band signals 00:08:33.911 --> 00:08:38.132 together before taking the real part, and then send in the signal To the D to A 00:08:38.132 --> 00:08:41.950 converter. Now this picture should ring a bell. 00:08:41.950 --> 00:08:46.305 An indeed we have seen something that was very very close to this back in module 00:08:46.305 --> 00:08:50.530 4.3. So here's the picture to jog your memory 00:08:50.530 --> 00:08:55.564 and remember that DFT reconstruction formula could be interpreted as. 00:08:55.564 --> 00:09:00.426 A bank of n oscillators. Each oscillator would operate at a 00:09:00.426 --> 00:09:07.650 frequency that was two pi over n times k. And we would scale each oscillator with 00:09:07.650 --> 00:09:12.910 an amplitude, a of k, and with a phase offset, five k. 00:09:12.910 --> 00:09:16.860 We would run this machine for big n samples. 00:09:16.860 --> 00:09:21.142 And we will get our signal out. Now, the difference between this scheme 00:09:21.142 --> 00:09:25.234 and what we just saw is fundamentally that, in this scheme, a of k and phi of k 00:09:25.234 --> 00:09:31.290 are kept constant for the whole duration of the generation process. 00:09:31.290 --> 00:09:37.280 So while n goes from zero to big n minus one, a of k and phi of k stay the same. 00:09:37.280 --> 00:09:40.750 Whereas in the modem scheme that we seen before. 00:09:40.750 --> 00:09:45.708 The symbol sequence which is a complex symbol sequence so embeds both magnitude 00:09:45.708 --> 00:09:50.500 and phase will change at each new value of n. 00:09:50.500 --> 00:09:55.900 So is there a way to map the modem structure to the inverse DFT structure? 00:09:55.900 --> 00:10:00.298 We can do that if we manage to find a way to keep the symbols constant over the 00:10:00.298 --> 00:10:05.654 whole duration. So we will show how to do that and we 00:10:05.654 --> 00:10:09.875 will show that if we manage to do that, then ADSL transmission can be efficiently 00:10:09.875 --> 00:10:16.372 implemented with simple an inverse FFT. The name of this technique is discrete 00:10:16.372 --> 00:10:21.230 multitone modulation. So the great ADSL trick is very simple. 00:10:21.230 --> 00:10:26.530 Instead of using a[INAUDIBLE] sign in the up sampler, let's use a bad filter. 00:10:26.530 --> 00:10:33.540 Simply the indicator function for the interval 0 to 2n-1 and see what happens. 00:10:33.540 --> 00:10:37.100 So the impulse response of the upsampling filter is now this one. 00:10:37.100 --> 00:10:41.390 And please notice that this is just an un-normalized moving average filter and 00:10:41.390 --> 00:10:47.980 the frequency response of course is this one, we have seen it many times before. 00:10:47.980 --> 00:10:52.752 With the first 0 here in pi over N. If we compare the frequency response of 00:10:52.752 --> 00:10:57.205 the moving average if you want, or the indicator function with that of the 00:10:57.205 --> 00:11:05.250 filter that we should be using, namely a low pass filter with cut of pi over 2N. 00:11:05.250 --> 00:11:08.406 Then we see that the performance of the filter is not very good. 00:11:08.406 --> 00:11:11.556 Nonetheless, the thing will work, especially thanks to some clever little 00:11:11.556 --> 00:11:14.810 tricks in the way we choose the transmission symbols. 00:11:14.810 --> 00:11:17.700 But we will not have time to go into that. 00:11:17.700 --> 00:11:20.652 So let's go back to the subchannel modem. The thing to remark here is that the 00:11:20.652 --> 00:11:24.658 symbols from the mapper. Come in at a rate of B symbols per 00:11:24.658 --> 00:11:28.541 second. And because of the upsampling, samples 00:11:28.541 --> 00:11:34.190 out of the modulator, come out at a rate of 2NB samples per second. 00:11:34.190 --> 00:11:37.150 So this part works much faster than this part here. 00:11:37.150 --> 00:11:41.545 Now the carrier, is periodic with period 2N. 00:11:41.545 --> 00:11:48.580 And so, each symbol Will influence a full period of the carrier. 00:11:48.580 --> 00:11:52.840 If we use a standard low pass filter here, for every value of n here, so for 00:11:52.840 --> 00:11:57.242 every value of the carrier there will be a different value in this Base band 00:11:57.242 --> 00:12:04.837 sequence that comes out of the sample. On the other hand if we use the indicator 00:12:04.837 --> 00:12:09.893 function as the input response the net result is that the values of bk of n will 00:12:09.893 --> 00:12:17.300 be constant over chunks of 2N samples. In that case we can simplify this whole 00:12:17.300 --> 00:12:22.220 scheme like so where now the only clock in the system is the output clock N. 00:12:22.220 --> 00:12:28.479 So now the oscillator in the modulator. Runs freely, at a frequency which is a 00:12:28.479 --> 00:12:35.462 multiple of 2 pi over 2N. This frequency is periodic, with period 00:12:35.462 --> 00:12:39.551 2N, so. And for each chunk of 2N samples, we go 00:12:39.551 --> 00:12:45.146 look for the symbol. The corresponds to this interval so if 00:12:45.146 --> 00:12:50.250 say n is equal to 0 here, n is equal to 2n here, n is equal to 4n here and n is 00:12:50.250 --> 00:12:55.618 equal to 6n here for this interval we will go look for a of zero and multiply 00:12:55.618 --> 00:13:03.572 this portion of the carrier by this value. 00:13:03.572 --> 00:13:10.300 Able to look for a one, here a two, and so on and so on. 00:13:10.300 --> 00:13:14.110 So with this simplification, the whole transmitter can be sketched like so. 00:13:14.110 --> 00:13:18.698 We have the symbols from different sub channels that get multiplied by the 00:13:18.698 --> 00:13:25.150 carrier and kept constant over intervals of two and outward samples. 00:13:25.150 --> 00:13:29.280 The whole thing gets summed together. We get the aggregate bandpass signal, we 00:13:29.280 --> 00:13:33.600 take the real part, and we're ready for the D2A converter. 00:13:33.600 --> 00:13:38.364 We can now write explicitly, the formula for the aggregate bandpass signal c n. 00:13:38.364 --> 00:13:43.124 And this is the sum over all subchannels, of the symbol For that subchannel for 00:13:43.124 --> 00:13:48.620 that interval, multiplied by e to the j two pi over two n, nk. 00:13:48.620 --> 00:13:53.100 Now because of the way the index to the ak sequence is computed, these symbols 00:13:53.100 --> 00:13:58.150 will stay constant over intervals for the output index. 00:13:58.150 --> 00:14:03.413 That are 2n long. So for instance, for small n that goes 00:14:03.413 --> 00:14:08.750 from 0, to 2n minus 1, these values will stay constant. 00:14:08.750 --> 00:14:13.980 And again, for values of the output index that g from 2n. 00:14:13.980 --> 00:14:17.434 2, 4 and minus 1. So we could compute two big N values for 00:14:17.434 --> 00:14:21.826 the sequence CN in one fell swoop if we exploit the fact that this guy looks 00:14:21.826 --> 00:14:28.540 remarkably like an inverse DFT. As a matter of fact, by looking at the 00:14:28.540 --> 00:14:32.880 argument here, we can say that this is almost an inverse DFT over two big end 00:14:32.880 --> 00:14:37.784 points. The two things that are missing are the 00:14:37.784 --> 00:14:42.950 normalizing factor in front, 1 over 2N And the terms in the sum for the index k 00:14:42.950 --> 00:14:48.570 that goes from n to 2n minus 1. But that's not a problem. 00:14:48.570 --> 00:14:52.548 We can supplement this elements. And so we can compute a chunk of two big 00:14:52.548 --> 00:14:56.900 n output samples in one go as an inverse dft over two n points of a vector that is 00:14:56.900 --> 00:15:03.994 given by n channel symbols. And has another big n zeros appended to 00:15:03.994 --> 00:15:08.273 the end of it. The index for the subchannel symbols is 00:15:08.273 --> 00:15:12.604 given by the value of the output index divided by 2 n and we take the integer 00:15:12.604 --> 00:15:16.172 part. But we can do even better because in the 00:15:16.172 --> 00:15:19.832 end, remember, we're interested in the real part of the vector c of n. 00:15:19.832 --> 00:15:23.986 And we can write that real part as c of n plus the conjugate of c of n divided by 00:15:23.986 --> 00:15:27.846 2. Now it is easy to prove, and it's left as 00:15:27.846 --> 00:15:32.582 an exercise, that the conjugate of the inverse DFT of a vector, is equal to the 00:15:32.582 --> 00:15:38.800 inverse DFT of the conjugate of the time reversed vector. 00:15:38.800 --> 00:15:42.768 And, when we time reverse a finite length vector It's useful to think of the 00:15:42.768 --> 00:15:47.658 periodic extension. With this result and knowing that c of n 00:15:47.658 --> 00:15:55.390 is equal to 2n times the inverse DFT of a vector that is zeros in its latter part. 00:15:55.390 --> 00:16:00.514 We can sum cn with it's conjugate to obtain that the real part of cn is equal 00:16:00.514 --> 00:16:05.806 to N times the inverse DFT of a vector that is given by twice the symbol for the 00:16:05.806 --> 00:16:12.960 base band sub channel. The reason why we can write this is 00:16:12.960 --> 00:16:17.985 because the baseband signal will always have real value symbols, because it's a 00:16:17.985 --> 00:16:22.485 baseband, followed by the complex symbols for the n minus one remaining 00:16:22.485 --> 00:16:27.660 subchannels, followed by The conjugate of the symbols, for the N minus 1 remaining 00:16:27.660 --> 00:16:35.854 subchannels, but going from channel N minus 1, to channel 1. 00:16:35.854 --> 00:16:41.464 Schematically, we can draw up the ADSL transmitter, as one big inverse FFT, and 00:16:41.464 --> 00:16:47.760 the inputs to this FFT are twice the baseband symbol. 00:16:47.760 --> 00:16:51.831 Followed by the symbols for the subchannels from one to n minus one, and 00:16:51.831 --> 00:16:56.385 then we take these values, we conjugate them, and we flip their order, and we put 00:16:56.385 --> 00:17:03.780 those in the remaining inputs of the FFT. Now we run the inverse FFT and we get two 00:17:03.780 --> 00:17:09.242 n output samples in one go. We use a parrel to serial device to 00:17:09.242 --> 00:17:13.338 output the samples one at a time and here we have our d to i converter to put them 00:17:13.338 --> 00:17:18.282 on the channel. Once the n samples have been put out we 00:17:18.282 --> 00:17:22.458 go back, we fetch another set of n symbols from the n mamppers of the sub 00:17:22.458 --> 00:17:26.624 channels. Then we repeat the process. 00:17:26.624 --> 00:17:32.153 An actual ADSL modem uses a maximum frequency for the channel of 1004 00:17:32.153 --> 00:17:38.766 kilohertz divides this channel in to 256 sub-channels. 00:17:38.766 --> 00:17:43.842 Each QAM modem for the sub-channel. Can independently choose between zero and 00:17:43.842 --> 00:17:48.660 fifteen bits per symbol. Now the first seven channels are left off 00:17:48.660 --> 00:17:51.665 because that is the band used by the voice communication over a telephone 00:17:51.665 --> 00:17:55.516 channel. Channels seven through 31 are used for 00:17:55.516 --> 00:17:59.329 data upstream. And the rest is left for data downstream 00:17:59.329 --> 00:18:04.690 for a maximum theoretical throughput of 14.9 megabits per second. 00:18:04.690 --> 00:18:08.274 This would happen if all the downstream sub channels could use their maximum 00:18:08.274 --> 00:18:11.510 theoretical rate Which is a rare occurrence. 00:18:11.510 --> 00:18:17.732 And these are the specs of the on-line modem that you most probably used to 00:18:17.732 --> 00:18:21.909 watch this on-line class.