1 00:00:00,000 --> 00:00:02,560 PROFESSOR: Welcome to class again. 2 00:00:02,560 --> 00:00:05,560 This time it's not Professor Forney it's me, so my name is 3 00:00:05,560 --> 00:00:06,810 Ralf Koetter. 4 00:00:11,650 --> 00:00:14,150 You guys have some substantial chalk here at MIT. 5 00:00:20,130 --> 00:00:24,390 And I'm visiting here from the University of Illinois, so 6 00:00:24,390 --> 00:00:26,860 Professor Forney thought I could teach this class here. 7 00:00:31,530 --> 00:00:31,722 All right, let's see. 8 00:00:31,722 --> 00:00:35,070 So I understand that last time, last Wednesday, you went 9 00:00:35,070 --> 00:00:40,060 through all the finite field stuff, meaning, so you know 10 00:00:40,060 --> 00:00:46,080 what that would mean, the finite field. 11 00:00:46,080 --> 00:00:48,620 There's p elements, p to the m elements. 12 00:00:48,620 --> 00:00:53,190 Whatever q you have here, is a power of a prime in order to 13 00:00:53,190 --> 00:00:54,440 be a field. 14 00:00:56,710 --> 00:01:02,740 So this one, as a notation, is a ring of polynomials. 15 00:01:02,740 --> 00:01:06,010 You've seen that too. 16 00:01:06,010 --> 00:01:09,170 So I assume you know everything about finite fields 17 00:01:09,170 --> 00:01:12,660 that you will need to know here, at least, except for one 18 00:01:12,660 --> 00:01:14,460 more theorem which Professor Forney told 19 00:01:14,460 --> 00:01:17,870 me he did not cover. 20 00:01:17,870 --> 00:01:21,192 And this is the fundamental theorem of algebra. 21 00:01:21,192 --> 00:01:23,630 I have to write a little bit smaller with this thing here, 22 00:01:23,630 --> 00:01:26,626 otherwise I'll run out. 23 00:01:26,626 --> 00:01:27,876 AUDIENCE: [UNINTELLIGIBLE PHRASE] 24 00:01:29,950 --> 00:01:33,440 PROFESSOR: Oh, I know, that's probably better. 25 00:01:33,440 --> 00:01:34,690 Better. 26 00:01:40,540 --> 00:01:53,175 With the algebra, at least that's what it's often called, 27 00:01:53,175 --> 00:01:57,420 and really, about 60 percent of all the proofs in algebra 28 00:01:57,420 --> 00:01:59,520 eventually boil down to this here. 29 00:01:59,520 --> 00:02:30,510 And what it says is, polynomial of degree m, f beta 30 00:02:30,510 --> 00:02:46,490 equals zero, at most, m of beta. 31 00:02:46,490 --> 00:02:48,310 At least, that's one way to formulate it. 32 00:02:48,310 --> 00:02:49,560 Let me see. 33 00:02:52,420 --> 00:02:54,400 So that's fine. 34 00:02:54,400 --> 00:02:57,490 So what it says is a polynomial of degree m has at 35 00:02:57,490 --> 00:03:00,560 most m roots. 36 00:03:00,560 --> 00:03:02,910 Once you all have seen that, probably one way or another, 37 00:03:02,910 --> 00:03:06,250 but because of its importance, I want to 38 00:03:06,250 --> 00:03:07,500 emphasize it once more. 39 00:03:11,140 --> 00:03:14,670 Do we need a proof of this? 40 00:03:14,670 --> 00:03:17,940 In true MIT spirit we do. 41 00:03:17,940 --> 00:03:23,460 And the proof would go something like this. 42 00:03:23,460 --> 00:03:27,020 You look at problem number one in your homework assignment, 43 00:03:27,020 --> 00:03:30,630 and from problem number one, I could prove that here, too, 44 00:03:30,630 --> 00:03:32,280 but since it's in the homework, I won't. 45 00:03:35,790 --> 00:03:38,170 You can write the following given any beta. 46 00:03:42,810 --> 00:03:57,440 Write f of x as f of x is equal to plus alpha. 47 00:04:01,064 --> 00:04:05,340 Alphas are the field so that's by some sort of long division 48 00:04:05,340 --> 00:04:07,754 you get to that. 49 00:04:07,754 --> 00:04:09,480 That's what I'm not going to prove. 50 00:04:09,480 --> 00:04:17,710 Then f of beta is equal zero is the same as saying that 51 00:04:17,710 --> 00:04:19,160 alpha is equal to zero. 52 00:04:19,160 --> 00:04:29,570 So if either is a root of the polynomial, zero, it follows 53 00:04:29,570 --> 00:04:39,464 that f of x has this thing here as a factor, this h of x, 54 00:04:39,464 --> 00:04:52,010 x minus beta, where because of the degree properties of 55 00:04:52,010 --> 00:05:01,740 polynomials, h of x is m minus 1. 56 00:05:01,740 --> 00:05:05,740 And so the rest follows by induction. 57 00:05:05,740 --> 00:05:08,580 So basically, then we can prove that this polynomial 58 00:05:08,580 --> 00:05:10,870 has, at most, m minus 1 roots, and so on. 59 00:05:10,870 --> 00:05:13,450 And you can descend this route, and so the rest follows 60 00:05:13,450 --> 00:05:14,700 by induction. 61 00:05:18,480 --> 00:05:33,180 In particular we can say if f of x has m distinct roots beta 62 00:05:33,180 --> 00:05:51,040 one, beta m, then it factors completely into the linear 63 00:05:51,040 --> 00:05:53,310 factors like this. 64 00:05:53,310 --> 00:05:59,490 So I just wanted to quickly state the fundamental theorem 65 00:05:59,490 --> 00:06:03,380 of algebra, since we need it in a proof later on, and I 66 00:06:03,380 --> 00:06:04,630 think you didn't go through it. 67 00:06:09,660 --> 00:06:09,760 OK. 68 00:06:09,760 --> 00:06:13,080 So last time, you learned everything about fields, 69 00:06:13,080 --> 00:06:17,010 finite fields, extension fields, so chapter eight is 70 00:06:17,010 --> 00:06:18,750 pretty much what we have to cover now. 71 00:06:22,310 --> 00:06:25,120 What is the whole idea of chapter eight? 72 00:06:25,120 --> 00:06:41,190 It's linear codes, codes, MDS codes, and redundant codes. 73 00:06:41,190 --> 00:06:44,520 Oh, by the way, do you have any questions about this here? 74 00:06:44,520 --> 00:06:45,020 That in any way? 75 00:06:45,020 --> 00:06:46,270 It's pretty straight, right? 76 00:06:48,350 --> 00:06:52,280 OK, so I understand in chapter six or so, you had already 77 00:06:52,280 --> 00:06:53,876 linear codes over the binary fields. 78 00:06:56,540 --> 00:07:05,610 So let's just define codes over a larger field, formally, 79 00:07:05,610 --> 00:07:12,380 a linear code C of length n. 80 00:07:31,180 --> 00:07:39,620 No subspace of Fn. 81 00:07:39,620 --> 00:07:41,050 So whatever the field is. 82 00:07:41,050 --> 00:07:43,890 So F could be any extension field, could be the binary 83 00:07:43,890 --> 00:07:49,080 field, so it really generalizes a definition of 84 00:07:49,080 --> 00:07:51,670 code, of what a linear code is. 85 00:07:51,670 --> 00:07:54,330 OK, so it's a subspace. 86 00:07:54,330 --> 00:07:57,690 What can be derived from that? 87 00:07:57,690 --> 00:08:00,580 Since it's a subspace, it's a group. 88 00:08:00,580 --> 00:08:05,440 And then we can derive minimum distance properties. 89 00:08:05,440 --> 00:08:09,620 So let's first define it again, since it's slightly 90 00:08:09,620 --> 00:08:11,865 different than the definition for binary codes. 91 00:08:21,310 --> 00:08:32,480 Between Fn, say Fqn. 92 00:08:32,480 --> 00:08:35,530 So I denote the vectors with an underscore. 93 00:08:35,530 --> 00:08:38,840 I think in the notes, it's boldface notation, so 94 00:08:38,840 --> 00:08:41,835 translate that online as I go here. 95 00:08:41,835 --> 00:08:53,920 The distance between two words x and y, given as dx, the 96 00:08:53,920 --> 00:09:00,786 number of positions that x_i is unequal to y_i. 97 00:09:00,786 --> 00:09:02,540 AUDIENCE: What's the subscript? 98 00:09:02,540 --> 00:09:04,230 PROFESSOR: There, a q. 99 00:09:04,230 --> 00:09:06,650 Oh, this is another thing I should warn you about. 100 00:09:06,650 --> 00:09:10,890 My handwriting is bound to deteriorate during class. 101 00:09:10,890 --> 00:09:13,830 So I usually start out reasonably okay, towards the 102 00:09:13,830 --> 00:09:15,570 end of the class it's -- 103 00:09:15,570 --> 00:09:18,370 I tell my students to throw little pieces of chalk at me 104 00:09:18,370 --> 00:09:23,710 when it gets too bad and I'm not facing them, so please 105 00:09:23,710 --> 00:09:25,400 just say something if it gets too bad. 106 00:09:28,720 --> 00:09:30,595 So distance is defined as that, quickly. 107 00:09:33,770 --> 00:09:36,290 So it doesn't really matter what the values are here. 108 00:09:36,290 --> 00:09:39,700 The x_i and the y_i could assume different values. 109 00:09:39,700 --> 00:09:44,050 It's a somewhat coarse measure for the real, the difference 110 00:09:44,050 --> 00:09:49,520 between code words, or difference between words. 111 00:09:49,520 --> 00:09:52,560 Why do you think I say it's coarse? 112 00:09:52,560 --> 00:09:53,965 In digital communications in particular? 113 00:09:58,760 --> 00:09:59,670 Good question, right? 114 00:09:59,670 --> 00:10:04,600 In the end, we want to map that into a modulation scheme. 115 00:10:04,600 --> 00:10:06,870 In the end, we want to map our codes that we are deriving 116 00:10:06,870 --> 00:10:08,210 here into modulation schemes. 117 00:10:08,210 --> 00:10:09,630 In the end, we want to embed them into 118 00:10:09,630 --> 00:10:11,610 some Euclidean space. 119 00:10:11,610 --> 00:10:15,060 Now, different elements of our alphabet we will map to 120 00:10:15,060 --> 00:10:17,900 different elements in Euclidean space. 121 00:10:17,900 --> 00:10:22,650 So basically, approximating their distance relation in 122 00:10:22,650 --> 00:10:25,410 Euclidean space, which we are really interested in with the 123 00:10:25,410 --> 00:10:30,630 Hamming distance here is pretty coarse, but we can do, 124 00:10:30,630 --> 00:10:31,290 so we do that. 125 00:10:31,290 --> 00:10:32,540 It's an approximation, at least. 126 00:10:35,660 --> 00:10:36,145 That clear? 127 00:10:36,145 --> 00:10:37,770 All set? 128 00:10:37,770 --> 00:10:38,285 All right. 129 00:10:38,285 --> 00:10:38,855 AUDIENCE: [UNINTELLIGIBLE PHRASE] the 130 00:10:38,855 --> 00:10:39,926 Hamming distance [UNINTELLIGIBLE] the same as 131 00:10:39,926 --> 00:10:42,450 the Euclidean distance? 132 00:10:42,450 --> 00:10:44,035 PROFESSOR: Well, it depends on the modulation scheme. 133 00:10:44,035 --> 00:10:45,970 It very much depends on the modulation scheme. 134 00:10:45,970 --> 00:10:54,890 If you have a 8-PSK scheme, where you would label, put in 135 00:10:54,890 --> 00:10:58,730 the words, here, with three bit symbols, or with the 136 00:10:58,730 --> 00:11:05,900 symbol from F8, then it's definitely different. 137 00:11:05,900 --> 00:11:08,690 It's definitely different. 138 00:11:08,690 --> 00:11:10,460 So if you do anti-polar signaling, then 139 00:11:10,460 --> 00:11:13,970 it's directly reflected. 140 00:11:13,970 --> 00:11:17,510 OK, I'm starting to digress already. 141 00:11:22,930 --> 00:11:32,440 So just for completeness, minimum distance, minimum 142 00:11:32,440 --> 00:12:01,540 Hamming, of a code subset Fqn is d as a minimum code of dxy, 143 00:12:01,540 --> 00:12:04,682 and they have to be different, it's the same as before. 144 00:12:08,250 --> 00:12:10,340 So now if I claim that -- 145 00:12:15,610 --> 00:12:21,400 so the minimum distance of a code is also given by the 146 00:12:21,400 --> 00:12:36,870 minimum between 0 and x in the code 0 and x, and this is 147 00:12:36,870 --> 00:12:46,260 minimum of the Hamming weight of x, and you could 148 00:12:46,260 --> 00:12:50,080 do 0 x in the code. 149 00:12:50,080 --> 00:12:51,440 So that's all old stuff. 150 00:12:51,440 --> 00:12:55,850 I just write it down so we get started here. 151 00:12:55,850 --> 00:13:00,050 Is that clear, from the group property, why 152 00:13:00,050 --> 00:13:01,680 this would be true? 153 00:13:01,680 --> 00:13:05,990 So if you just take this, we can add basically x to both x 154 00:13:05,990 --> 00:13:08,890 and y, just translating the whole relation 155 00:13:08,890 --> 00:13:10,380 to somewhere else. 156 00:13:10,380 --> 00:13:13,380 So in particular, we translate it here, once we have it here, 157 00:13:13,380 --> 00:13:16,890 than the distance between 0 and x is just the weight. 158 00:13:16,890 --> 00:13:18,660 OK. 159 00:13:18,660 --> 00:13:21,140 So far, so good. 160 00:13:21,140 --> 00:13:22,410 Now what is next? 161 00:13:22,410 --> 00:13:25,060 Generate a matrix. 162 00:13:25,060 --> 00:13:26,710 This is not really in the notes, but 163 00:13:26,710 --> 00:13:27,960 I think it's important. 164 00:13:35,100 --> 00:13:39,160 So see, the code here is a subspace. 165 00:13:39,160 --> 00:13:42,190 It's a linear space, so it has a generator, it has 166 00:13:42,190 --> 00:13:44,210 generators, k generators. 167 00:13:44,210 --> 00:13:59,793 So let g1 be k, write this off the code. 168 00:14:02,430 --> 00:14:07,080 So as a basis of the vector space, that this would be a 169 00:14:07,080 --> 00:14:09,610 basis of the vector space, any basis would be fine here. 170 00:14:12,710 --> 00:14:27,370 Then C may be defined as all the x in Fqn such that x is 171 00:14:27,370 --> 00:14:29,260 sum over -- 172 00:14:29,260 --> 00:14:30,510 what do I call it -- 173 00:14:32,440 --> 00:14:47,050 fi gi, where fi is in Fq. 174 00:14:47,050 --> 00:14:56,690 And the reason I introduce this, we can -- 175 00:14:56,690 --> 00:14:58,900 this is just the definition of a space, right? 176 00:14:58,900 --> 00:14:59,450 That's clear. 177 00:14:59,450 --> 00:15:08,620 So if you have these generators, you find a 178 00:15:08,620 --> 00:15:13,866 generator matrix, uh-oh, it already starts. 179 00:15:13,866 --> 00:15:15,116 Let me -- 180 00:15:24,420 --> 00:15:42,940 matrix g which contains, as a m matrix 181 00:15:42,940 --> 00:15:48,680 containing the rows gi. 182 00:15:48,680 --> 00:15:52,320 So the i-th row in the generator matrix is just gi. 183 00:15:52,320 --> 00:16:12,540 Then you also can write as x is equal to f times g, f 184 00:16:12,540 --> 00:16:20,040 element Fqk, or just the same statement as this one, so 185 00:16:20,040 --> 00:16:21,290 nothing has happened. 186 00:16:25,280 --> 00:16:28,260 So basically, the reason I did that, I wanted to introduce 187 00:16:28,260 --> 00:16:34,350 the term generator matrix, which is sort of important. 188 00:16:34,350 --> 00:16:52,220 And one more property of this orthogonal complement 189 00:16:52,220 --> 00:16:54,750 of C, of the code. 190 00:16:54,750 --> 00:16:57,270 So what does that mean? 191 00:16:57,270 --> 00:17:09,030 So the orthogonal complement of the code you could write as 192 00:17:09,030 --> 00:17:22,140 Fqn such that sum of x_i y_i is equal to 0. 193 00:17:22,140 --> 00:17:29,210 The sum is obviously over the field for all y in the code. 194 00:17:32,560 --> 00:17:37,084 What's the dimension of this, of the orthogonal complement? 195 00:17:37,084 --> 00:17:38,240 AUDIENCE: n minus k. 196 00:17:38,240 --> 00:17:41,400 PROFESSOR: n minus k, clearly, because we have ambient space 197 00:17:41,400 --> 00:17:46,330 is n dimensional, we impose k linear constraints on this, by 198 00:17:46,330 --> 00:17:50,830 the k generators, so the k dimensions of, take note, by 199 00:17:50,830 --> 00:17:52,680 the generators drop out. 200 00:17:52,680 --> 00:17:58,310 So the dimension of the orthogonal 201 00:17:58,310 --> 00:18:00,910 complement is n minus k. 202 00:18:06,100 --> 00:18:08,400 So what else do we need to say about this? 203 00:18:13,390 --> 00:18:22,910 C is called the dual code for this reason. 204 00:18:25,510 --> 00:18:26,470 C is called dual code. 205 00:18:26,470 --> 00:18:29,300 In particular, it's a code that's a linear space. 206 00:18:29,300 --> 00:18:32,160 It's a subspace of Fqn again, it's a code. 207 00:18:32,160 --> 00:18:36,130 So it's just as nice a code as C at this 208 00:18:36,130 --> 00:18:37,380 point in time at least. 209 00:18:42,740 --> 00:18:45,110 So it's called a dual code. 210 00:18:45,110 --> 00:18:48,785 To C, if it is a code, it has a generator matrix. 211 00:18:51,400 --> 00:19:04,630 Let h be a generator matrix for C dual. 212 00:19:04,630 --> 00:19:07,470 So in particular, we could define C dual now, for 213 00:19:07,470 --> 00:19:10,810 example, by the equivalent of this relation here. 214 00:19:10,810 --> 00:19:17,700 But because it's a dual code, we now also can define the 215 00:19:17,700 --> 00:19:34,420 original code in an equivalent way such that x times h 216 00:19:34,420 --> 00:19:37,990 transpose is 0. 217 00:19:37,990 --> 00:19:43,330 We could define our original code C either as the image of 218 00:19:43,330 --> 00:19:49,580 a matrix g, of a generator matrix g, or as a kernel of a 219 00:19:49,580 --> 00:19:52,470 parity-check matrix h. 220 00:19:52,470 --> 00:19:55,440 So h is a ...WRITING ON BOARD... 221 00:20:03,790 --> 00:20:07,960 for C. So that's all pretty much straight linear algebra, 222 00:20:07,960 --> 00:20:12,340 and I'm sure you've seen that in many different places. 223 00:20:12,340 --> 00:20:13,660 Any questions about any of this? 224 00:20:17,962 --> 00:20:19,396 AUDIENCE: So the addition of the dual 225 00:20:19,396 --> 00:20:20,840 [UNINTELLIGIBLE PHRASE] 226 00:20:20,840 --> 00:20:22,430 the summation [UNINTELLIGIBLE PHRASE] 227 00:20:22,430 --> 00:20:24,994 equals 0 for all [INAUDIBLE] other than x, right? 228 00:20:24,994 --> 00:20:26,260 [UNINTELLIGIBLE PHRASE] 229 00:20:26,260 --> 00:20:28,170 PROFESSOR: Oh no, no, no, it doesn't have to be 230 00:20:28,170 --> 00:20:29,740 different from x. 231 00:20:29,740 --> 00:20:35,460 If y is in the code, if y is in C, then x has to be 232 00:20:35,460 --> 00:20:37,020 orthogonal to it. 233 00:20:37,020 --> 00:20:38,850 They can be the same vector, in particular, if you have 234 00:20:38,850 --> 00:20:41,630 binary vectors, an even made binary vector is 235 00:20:41,630 --> 00:20:43,560 orthogonal to itself. 236 00:20:43,560 --> 00:20:45,820 It's a little bit odd, but that's the 237 00:20:45,820 --> 00:20:47,070 magic of finite fields. 238 00:20:51,100 --> 00:20:51,275 OK. 239 00:20:51,275 --> 00:20:51,830 Good. 240 00:20:51,830 --> 00:20:53,430 So these are codes, now we could stop. 241 00:20:53,430 --> 00:20:57,100 We have defined the object, and obviously it exists, 242 00:20:57,100 --> 00:21:02,720 because we could just write something down and it exists. 243 00:21:02,720 --> 00:21:06,050 So once we have defined it, the next question is, what 244 00:21:06,050 --> 00:21:09,120 sort of codes do exist? 245 00:21:09,120 --> 00:21:13,140 So that's what we're going to do next. 246 00:21:16,650 --> 00:21:17,900 First, question one. 247 00:21:30,000 --> 00:21:36,880 Codes do, what type of codes do exist? 248 00:21:36,880 --> 00:21:40,130 So which codes do you know? 249 00:21:40,130 --> 00:21:42,920 AUDIENCE: [INAUDIBLE] 250 00:21:42,920 --> 00:21:45,800 PROFESSOR: You know Reed-Muller codes, you know 251 00:21:45,800 --> 00:21:49,330 probably sporadic binary codes that are out there. 252 00:21:51,900 --> 00:21:53,430 These are all binary codes. 253 00:21:53,430 --> 00:21:58,220 So what type of codes exist over larger fields? 254 00:22:01,600 --> 00:22:03,070 Many, many classes. 255 00:22:03,070 --> 00:22:07,400 There exists the equivalent of the Reed-Muller codes, there 256 00:22:07,400 --> 00:22:10,910 exist QRE Reed-Muller codes, and there exist generalized 257 00:22:10,910 --> 00:22:13,690 Reed-Muller codes, and, and, and, and, and. 258 00:22:13,690 --> 00:22:19,700 But we are interested in a very special class today, 259 00:22:19,700 --> 00:22:23,080 which is MDS codes. 260 00:22:23,080 --> 00:22:35,475 It stands for Maximum Distance Separable. 261 00:22:38,520 --> 00:22:40,020 It's a strange name. 262 00:22:40,020 --> 00:22:42,350 There's no particular reason for MDS. 263 00:22:51,440 --> 00:22:52,690 But, let's see what we can do with that. 264 00:22:55,400 --> 00:22:58,420 What type of codes do exist? 265 00:22:58,420 --> 00:23:04,640 So we have parameters of codes -- oh, I think you write the 266 00:23:04,640 --> 00:23:06,740 curly bracket, right -- 267 00:23:06,740 --> 00:23:09,730 n, k and d. 268 00:23:09,730 --> 00:23:14,040 So that would mean a code of length n, dimension k, and 269 00:23:14,040 --> 00:23:16,140 distance d. 270 00:23:16,140 --> 00:23:20,450 And let me add something to it a q, if you want to emphasize 271 00:23:20,450 --> 00:23:21,925 that this is a query field. 272 00:23:24,810 --> 00:23:29,140 So are all numbers possible here? 273 00:23:29,140 --> 00:23:36,345 What do we have, a 20, 19, 17 code over, I 274 00:23:36,345 --> 00:23:39,390 don't know, over F8. 275 00:23:39,390 --> 00:23:41,580 Is this possible? 276 00:23:41,580 --> 00:23:42,830 What would you think? 277 00:23:49,750 --> 00:23:51,482 No? 278 00:23:51,482 --> 00:23:52,430 AUDIENCE: [INAUDIBLE] 279 00:23:52,430 --> 00:23:54,100 PROFESSOR: It's not possible. 280 00:23:54,100 --> 00:23:56,160 It doesn't seem likely. 281 00:23:56,160 --> 00:24:01,430 What conflicts here, is the dimension and the distance. 282 00:24:01,430 --> 00:24:03,900 If you get a large dimension, in particular, if we would 283 00:24:03,900 --> 00:24:07,170 make this 20, what would that mean? 284 00:24:07,170 --> 00:24:09,840 It would mean we have to take the entire space. 285 00:24:09,840 --> 00:24:11,990 If you take the entire space, then the minimum 286 00:24:11,990 --> 00:24:13,780 weight word is 1. 287 00:24:13,780 --> 00:24:16,870 So this is possible. 288 00:24:16,870 --> 00:24:17,940 You know this is possible. 289 00:24:17,940 --> 00:24:22,240 If you drop this by 1, that seems very unlikely that we 290 00:24:22,240 --> 00:24:25,920 would get a 17 here. 291 00:24:25,920 --> 00:24:29,080 But what do we get here? 292 00:24:29,080 --> 00:24:30,330 2. 293 00:24:31,920 --> 00:24:34,910 You get a 2 because that's what we can achieve with a 294 00:24:34,910 --> 00:24:37,290 single parity-check code. 295 00:24:37,290 --> 00:24:38,810 The parity-check code doesn't have to be 296 00:24:38,810 --> 00:24:41,820 restrained to binary. 297 00:24:41,820 --> 00:24:42,130 Why? 298 00:24:42,130 --> 00:24:43,520 Why would it be restrained to binary? 299 00:24:46,850 --> 00:24:56,430 You could just, the set of all vectors let's define the 300 00:24:56,430 --> 00:25:03,900 single parity-check codes s p c, q, as the set of all 301 00:25:03,900 --> 00:25:11,165 vectors such that sum of the x_i is equal to 0. 302 00:25:14,320 --> 00:25:18,380 So could we have a word of weight 1 in here? 303 00:25:18,380 --> 00:25:19,270 Obviously not, right? 304 00:25:19,270 --> 00:25:22,970 If it has a weight 1, how would it add up to 0? 305 00:25:22,970 --> 00:25:25,745 Because one position would never cancel 306 00:25:25,745 --> 00:25:27,070 with any other position. 307 00:25:27,070 --> 00:25:29,820 So the minimum weight is 2 here, and we get 308 00:25:29,820 --> 00:25:30,600 a distance of 2. 309 00:25:30,600 --> 00:25:32,940 So what's the next one? 310 00:25:37,250 --> 00:25:41,740 It's tempting to say 3, right? 311 00:25:41,740 --> 00:25:47,190 3, but this is very much a question, now. 312 00:25:47,190 --> 00:25:50,710 Because this is not as easy to come by as a single 313 00:25:50,710 --> 00:25:53,060 parity-check. 314 00:25:53,060 --> 00:25:56,320 And that's what we're going to do next. 315 00:25:56,320 --> 00:26:04,010 We're going to define bounds on the maximum distance that a 316 00:26:04,010 --> 00:26:07,310 code can have altogether. 317 00:26:07,310 --> 00:26:12,210 OK, so let's do the following. 318 00:26:14,750 --> 00:26:27,720 Which parameter is possible? 319 00:26:27,720 --> 00:26:28,970 OK. 320 00:26:30,690 --> 00:26:34,270 So let's assume you have a code, an n,k,d code, and now 321 00:26:34,270 --> 00:26:38,720 we want to find a relation, a bound between n, k and d. 322 00:26:38,720 --> 00:26:39,970 How do we do this? 323 00:26:43,220 --> 00:26:44,470 Any ideas? 324 00:26:46,720 --> 00:26:48,740 Let a computer run for eternity and find 325 00:26:48,740 --> 00:26:49,790 all possible codes? 326 00:26:49,790 --> 00:26:51,190 No, no, no, no. 327 00:26:51,190 --> 00:26:53,256 We don't do this. 328 00:26:53,256 --> 00:26:56,770 We wouldn't get far. 329 00:26:56,770 --> 00:27:07,190 Let's assume we have an n,k,d code. 330 00:27:10,910 --> 00:27:12,990 What does that mean? 331 00:27:12,990 --> 00:27:15,660 Well, let's write the code words all down in a huge 332 00:27:15,660 --> 00:27:26,790 matrix, so each row in this matrix 333 00:27:26,790 --> 00:27:28,240 corresponds to one code word. 334 00:27:28,240 --> 00:27:36,330 So this has a length n, this is q to the k, q is whatever 335 00:27:36,330 --> 00:27:41,200 the alphabet is of the code in question, and now we say it's 336 00:27:41,200 --> 00:27:43,640 an n,k,d code. 337 00:27:43,640 --> 00:27:49,660 What that means, it means, among other things is, say we 338 00:27:49,660 --> 00:27:57,850 delete, just punch out, d minus 1 positions. 339 00:28:01,100 --> 00:28:04,450 We punch out d minus 1 positions of all code words 340 00:28:04,450 --> 00:28:07,020 and we look at the code that remains. 341 00:28:07,020 --> 00:28:08,350 You guys don't have colored chalk here, huh? 342 00:28:12,020 --> 00:28:14,270 We look at the code that remains, it means we look at 343 00:28:14,270 --> 00:28:19,875 this part of the matrix. 344 00:28:22,930 --> 00:28:24,180 Is that clear, what I'm doing here? 345 00:28:26,440 --> 00:28:32,470 So if the code indeed had distance d, can there be any 346 00:28:32,470 --> 00:28:36,110 two rows equal in this part? 347 00:28:36,110 --> 00:28:38,150 Remember, we punch out all d minus 1. 348 00:28:40,790 --> 00:28:45,160 Can there be any rows in this part that are equal? 349 00:28:45,160 --> 00:28:46,130 No, right? 350 00:28:46,130 --> 00:28:47,290 Couldn't be. 351 00:28:47,290 --> 00:28:50,360 They all have to be different. 352 00:28:50,360 --> 00:28:51,560 What does that mean? 353 00:28:51,560 --> 00:28:58,070 They all have to be different, but how many different tuples 354 00:28:58,070 --> 00:29:00,650 can we have in this part? 355 00:29:00,650 --> 00:29:10,200 Well, we have at most q to the n minus d minus 1. 356 00:29:10,200 --> 00:29:11,450 That's the length here. 357 00:29:14,200 --> 00:29:17,650 This n minus d minus 1. 358 00:29:17,650 --> 00:29:18,900 Different tuples. 359 00:29:32,350 --> 00:29:35,130 So how can we patch that together into a relation on 360 00:29:35,130 --> 00:29:36,380 the parameters? 361 00:29:42,840 --> 00:29:46,820 It basically says, q, this is q to the k. 362 00:29:46,820 --> 00:29:51,460 q to the k is upper bounded by this. 363 00:29:56,790 --> 00:29:58,040 It's upper bounded by this. 364 00:30:00,740 --> 00:30:04,660 And let me take the logarithm on here, 365 00:30:04,660 --> 00:30:11,600 and we get this relation. 366 00:30:11,600 --> 00:30:14,265 That's a first incarnation of the tension that we get on 367 00:30:14,265 --> 00:30:16,950 code construction, on codes. 368 00:30:16,950 --> 00:30:18,270 And bound on this, at least. 369 00:30:18,270 --> 00:30:22,730 If you choose d large, the distance large, 370 00:30:22,730 --> 00:30:25,930 then k has to go. 371 00:30:25,930 --> 00:30:30,700 If you choose k large, the distance cannot be very large. 372 00:30:30,700 --> 00:30:34,620 So this is where we, for the first time, see this tension. 373 00:30:34,620 --> 00:30:38,210 And it's also important, I'm sorry that I run around like 374 00:30:38,210 --> 00:30:47,605 this here, n has to be at least k plus d, k 375 00:30:47,605 --> 00:30:48,960 plus d minus 1. 376 00:30:51,590 --> 00:31:02,040 So here, you see this 28 in 3, it would just satisfy this. 377 00:31:02,040 --> 00:31:05,580 It would just satisfy this. 378 00:31:05,580 --> 00:31:06,830 So do we know it exists? 379 00:31:09,180 --> 00:31:10,430 No. 380 00:31:10,430 --> 00:31:11,690 No, why would it? 381 00:31:11,690 --> 00:31:18,710 So far, we only have looked at this here, and so, if it would 382 00:31:18,710 --> 00:31:20,420 exist, it would have to satisfy that. 383 00:31:20,420 --> 00:31:23,110 But there's no reason to assume it exists. 384 00:31:23,110 --> 00:31:26,250 At the moment, at least. 385 00:31:26,250 --> 00:31:27,680 OK. 386 00:31:27,680 --> 00:31:29,180 This is called the Singleton bound. 387 00:31:44,290 --> 00:32:02,570 Any code over any field, phi n, this relationship on the 388 00:32:02,570 --> 00:32:03,440 parameters. 389 00:32:03,440 --> 00:32:04,690 Good. 390 00:32:11,040 --> 00:32:36,740 Any code satisfying and bound with equality is called MDS. 391 00:32:36,740 --> 00:32:39,750 So we have an MDS code if and only if it satisfies the 392 00:32:39,750 --> 00:32:42,070 Singleton bound with equality. 393 00:32:42,070 --> 00:32:44,670 That's the definition of MDS codes. 394 00:32:44,670 --> 00:32:48,280 And now it makes maybe a little bit more sense to talk 395 00:32:48,280 --> 00:32:51,530 about Maximum Distance Separable codes, well, in a 396 00:32:51,530 --> 00:32:55,020 sense, they have the maximum distance among all codes. 397 00:32:55,020 --> 00:32:58,300 You find all codes with the given n and k, if they're MDS, 398 00:32:58,300 --> 00:33:01,780 they have the maximum distance. 399 00:33:01,780 --> 00:33:05,720 OK, let's think about this a little here. 400 00:33:09,080 --> 00:33:11,000 AUDIENCE: [INAUDIBLE] 401 00:33:11,000 --> 00:33:13,925 dependence on q [UNINTELLIGIBLE]? 402 00:33:13,925 --> 00:33:15,850 PROFESSOR: Yeah, there's a very strong dependence on q. 403 00:33:15,850 --> 00:33:17,800 The bound, not. 404 00:33:17,800 --> 00:33:20,610 The bound has no dependence on q. 405 00:33:20,610 --> 00:33:23,800 If the guys exist or not, that's very much 406 00:33:23,800 --> 00:33:24,680 dependent on q. 407 00:33:24,680 --> 00:33:26,185 We'll get to that. 408 00:33:26,185 --> 00:33:28,000 AUDIENCE: [INAUDIBLE] when the q is large, we have more 409 00:33:28,000 --> 00:33:30,090 options to [UNINTELLIGIBLE]? 410 00:33:30,090 --> 00:33:30,445 PROFESSOR: Absolutely. 411 00:33:30,445 --> 00:33:31,190 Absolutely. 412 00:33:31,190 --> 00:33:39,180 For binary, there's a very simple argument to show that 413 00:33:39,180 --> 00:33:43,200 there are no binary MDS codes except for the parity-check 414 00:33:43,200 --> 00:33:45,790 codes and the repetition codes and trivial code. 415 00:33:53,290 --> 00:34:09,380 So say we have a binary code, a binary n,k,d code with a 416 00:34:09,380 --> 00:34:12,150 generator matrix. 417 00:34:12,150 --> 00:34:13,929 So what could the generator matrix be? 418 00:34:13,929 --> 00:34:22,159 There will be an identity part, and then there will be 419 00:34:22,159 --> 00:34:26,270 the rest of the generator matrix, and how could we 420 00:34:26,270 --> 00:34:30,489 possibly fill that in, in order to make it MDS? 421 00:34:30,489 --> 00:34:39,460 Because this is n, this is k, and we see in order to make it 422 00:34:39,460 --> 00:34:46,730 MDS, every single row has to have all entries equal to 1. 423 00:34:46,730 --> 00:34:50,250 Because if not all entries are equal to 1, here, then we 424 00:34:50,250 --> 00:34:53,780 immediately have exhibited a code word with a weight less 425 00:34:53,780 --> 00:34:57,560 than n minus k plus 1. 426 00:34:57,560 --> 00:35:01,420 So OK, we know the first row has to have all 1's. 427 00:35:01,420 --> 00:35:05,110 Because now, the weight of this row is exactly on the MDS 428 00:35:05,110 --> 00:35:05,950 [INAUDIBLE]. 429 00:35:05,950 --> 00:35:07,200 What about the next one? 430 00:35:09,490 --> 00:35:11,080 The next one, same thing. 431 00:35:13,880 --> 00:35:16,030 All entries have to be 1. 432 00:35:16,030 --> 00:35:17,500 But now we see the problem, right? 433 00:35:17,500 --> 00:35:20,050 Now we add those two guys, it should again be a code word, 434 00:35:20,050 --> 00:35:22,220 and we have a grade two code word. 435 00:35:22,220 --> 00:35:29,370 So this is, in a nutshell, to prove that there are no binary 436 00:35:29,370 --> 00:35:32,410 MDS codes except the trivial ones. 437 00:35:32,410 --> 00:35:43,390 So the trivial ones are n, n1, n, n minus 1, 2 and n1, n. 438 00:35:43,390 --> 00:35:45,920 These are the trivial ones. 439 00:35:45,920 --> 00:35:48,355 The space itself, so it's in a parity-check code, and the 440 00:35:48,355 --> 00:35:50,890 repetition code. 441 00:35:50,890 --> 00:35:53,510 These are the only binary MDS codes. 442 00:35:53,510 --> 00:35:57,270 And the argument is roughly there. 443 00:35:57,270 --> 00:35:58,520 OK, where was I? 444 00:36:03,170 --> 00:36:05,000 Yeah, let's think about this a little bit more. 445 00:36:05,000 --> 00:36:07,370 And we are getting to exactly your question about the 446 00:36:07,370 --> 00:36:08,620 [UNINTELLIGIBLE]. 447 00:36:11,380 --> 00:36:17,380 This here has to hold, this argument has to hold 448 00:36:17,380 --> 00:36:23,300 regardless of which d minus 1 positions we punch out. 449 00:36:23,300 --> 00:36:25,520 This argument has always to hold. 450 00:36:25,520 --> 00:36:29,100 Which means, think about it, it's an enormously strong 451 00:36:29,100 --> 00:36:32,030 combinatorial condition on the code. 452 00:36:32,030 --> 00:36:39,620 So you have a code, that means you have a code, you write it 453 00:36:39,620 --> 00:36:42,990 in a matrix like this, all the code words. 454 00:36:42,990 --> 00:36:49,000 You punch out an arbitrary collection of d minus 1one 455 00:36:49,000 --> 00:36:53,920 positions, and the rest, the remaining positions, have to 456 00:36:53,920 --> 00:36:58,100 make up the entire space here. 457 00:36:58,100 --> 00:37:02,910 The entire space Fqn minus to that right exponent. 458 00:37:02,910 --> 00:37:04,340 This is a very -- 459 00:37:04,340 --> 00:37:07,830 think about it, I mean, just writing down this is an 460 00:37:07,830 --> 00:37:11,290 enormously strong combinatorial condition. 461 00:37:11,290 --> 00:37:17,870 So that will actually lead to the codes existing only for a 462 00:37:17,870 --> 00:37:22,820 very, very special, for a subset of field sizes. 463 00:37:22,820 --> 00:37:26,360 In particular, like you said, we have to have enough freedom 464 00:37:26,360 --> 00:37:31,800 in the field size to fill up this matrix to satisfy this. 465 00:37:34,360 --> 00:37:42,230 OK, before we get to that, before I say a word about the 466 00:37:42,230 --> 00:37:50,880 field size, let me formalize what I just said here, namely, 467 00:37:50,880 --> 00:37:54,850 that all of the other positions have to be exactly 468 00:37:54,850 --> 00:37:59,450 the q to the n minus d minus 1, different tuples. 469 00:37:59,450 --> 00:38:17,610 And the definition, let the code with q to the k, code 470 00:38:17,610 --> 00:38:30,190 words over alphabet Fq. 471 00:38:35,410 --> 00:39:02,990 Let subset of the positions in C, i is called an information 472 00:39:02,990 --> 00:39:30,970 set if C constrained to i runs exactly through all the q to 473 00:39:30,970 --> 00:39:37,395 the k, runs through all the q to the k. 474 00:39:46,060 --> 00:39:48,570 Fqk. 475 00:39:48,570 --> 00:39:53,300 So what it means is, you have a code, and you have a subset 476 00:39:53,300 --> 00:39:58,960 of positions, maybe this one, this one, this one, this one. 477 00:39:58,960 --> 00:40:03,090 This is a subset of positions if the code words. 478 00:40:03,090 --> 00:40:06,230 So if the matrix that remains after you take out the 479 00:40:06,230 --> 00:40:10,470 punctured columns, runs through all the q to the k 480 00:40:10,470 --> 00:40:14,298 elements of Fqk, then this is an information search. 481 00:40:14,298 --> 00:40:15,548 AUDIENCE: [INAUDIBLE] 482 00:40:18,040 --> 00:40:21,870 PROFESSOR: Constrained to i, because i has size k. 483 00:40:21,870 --> 00:40:25,275 i is just -- its just about enough to describe every code 484 00:40:25,275 --> 00:40:31,830 word, if the restraint of C to the set would indeed be giving 485 00:40:31,830 --> 00:40:35,700 a unique vector for each code word. 486 00:40:35,700 --> 00:40:38,210 The reason to call it -- so this is the definition of 487 00:40:38,210 --> 00:40:40,220 information set. 488 00:40:40,220 --> 00:40:44,910 The reason to call it an information set, it's pretty 489 00:40:44,910 --> 00:40:45,620 straight, right? 490 00:40:45,620 --> 00:40:47,685 Why is it called an information set? 491 00:40:53,740 --> 00:40:55,500 Because it's enough, right? 492 00:40:55,500 --> 00:40:56,250 Because it's enough. 493 00:40:56,250 --> 00:40:59,320 If you know exactly the value of a code word in these 494 00:40:59,320 --> 00:41:02,820 positions, then it is enough to recover 495 00:41:02,820 --> 00:41:04,706 the entire code word. 496 00:41:04,706 --> 00:41:07,210 When some genie tells you, gives you a code world which 497 00:41:07,210 --> 00:41:10,110 was corrupted by noise or something, but tells you, 498 00:41:10,110 --> 00:41:12,930 these k positions are OK. 499 00:41:12,930 --> 00:41:14,030 That's enough, that's all you need. 500 00:41:14,030 --> 00:41:15,050 That's an information set. 501 00:41:15,050 --> 00:41:17,420 You can recover the information from them. 502 00:41:17,420 --> 00:41:21,130 Actually, it is an application that pops up sometimes. 503 00:41:21,130 --> 00:41:23,870 That somehow, you get side information about some 504 00:41:23,870 --> 00:41:26,230 positions in the code word indeed being correct, and 505 00:41:26,230 --> 00:41:27,560 others not. 506 00:41:27,560 --> 00:41:30,340 And others you don't know about. 507 00:41:30,340 --> 00:41:35,755 So that's the information set, with respect to our MDS code. 508 00:41:38,300 --> 00:41:45,180 So with respect to our MDS code, a corollary of the thing 509 00:41:45,180 --> 00:42:14,410 that involved any k positions in an MDS code, 510 00:42:14,410 --> 00:42:15,660 an information set. 511 00:42:22,170 --> 00:42:25,380 So any k positions on information set. 512 00:42:25,380 --> 00:42:26,910 It's a really strong property. 513 00:42:26,910 --> 00:42:30,000 Really strong combinatorial property. 514 00:42:30,000 --> 00:42:33,420 OK, so far, so good. 515 00:42:42,470 --> 00:42:46,970 This is so strong, this property, that we can say 516 00:42:46,970 --> 00:42:50,700 something about these codes even without even knowing if 517 00:42:50,700 --> 00:42:51,950 they exist. 518 00:42:54,210 --> 00:42:57,320 So, so far, we have talked about these codes as if we 519 00:42:57,320 --> 00:42:59,080 knew they existed. 520 00:42:59,080 --> 00:43:01,890 Well, it's not entirely trivial, since we know those 521 00:43:01,890 --> 00:43:03,400 guys here exist. 522 00:43:03,400 --> 00:43:05,710 So it's not entirely empty, we're not out in 523 00:43:05,710 --> 00:43:08,250 cuckoo space, here. 524 00:43:08,250 --> 00:43:12,750 But do any other one exist, except for those? 525 00:43:12,750 --> 00:43:15,480 That's the question. 526 00:43:15,480 --> 00:43:16,470 We don't know that yet. 527 00:43:16,470 --> 00:43:19,920 We will show in a little while that they do, but we don't 528 00:43:19,920 --> 00:43:21,170 know that yet. 529 00:43:23,960 --> 00:43:26,160 But the interesting part is that we can derive properties 530 00:43:26,160 --> 00:43:29,870 of those codes without even knowing they exist. 531 00:43:29,870 --> 00:43:31,470 And how do we do that? 532 00:43:31,470 --> 00:43:40,470 For example, we want to derive the following property, how 533 00:43:40,470 --> 00:44:00,620 many words of weight d exists in linear MDS code? 534 00:44:00,620 --> 00:44:01,960 One could ask that, right? 535 00:44:01,960 --> 00:44:05,280 If they exist, they're nice, and if they exist, we also 536 00:44:05,280 --> 00:44:09,820 want to know how many words do exist at minimum distance. 537 00:44:09,820 --> 00:44:12,460 Because that translates, again, directly into union 538 00:44:12,460 --> 00:44:17,060 bound arguments later on, and probability of error. 539 00:44:17,060 --> 00:44:18,210 So that's a good question. 540 00:44:18,210 --> 00:44:23,300 How many words of weight d exist in a MDS code? 541 00:44:23,300 --> 00:44:28,630 Let's call this n d, and we want to know how many. 542 00:44:34,550 --> 00:44:37,000 So I'll let you think about this for a sec while I erase 543 00:44:37,000 --> 00:44:40,130 the board, and then somebody will tell me the answer. 544 00:44:52,058 --> 00:44:53,984 So how can we think about this? 545 00:45:00,290 --> 00:45:04,030 Let's try to do a similar argument as this one. 546 00:45:04,030 --> 00:45:18,780 Let's look at a single word, and let's assume that d 547 00:45:18,780 --> 00:45:23,600 positions, we ask the questions does there exist a 548 00:45:23,600 --> 00:45:27,730 code word within the first d positions? 549 00:45:27,730 --> 00:45:29,970 It is equivalent to the question, does there exist a 550 00:45:29,970 --> 00:45:35,410 code word that covers exactly all d positions? 551 00:45:35,410 --> 00:45:37,140 Any set of d positions. 552 00:45:43,522 --> 00:45:44,480 AUDIENCE: 0 everywhere else? 553 00:45:44,480 --> 00:45:47,400 PROFESSOR: And 0 everywhere else. 554 00:45:47,400 --> 00:45:48,660 Why is that nice? 555 00:45:48,660 --> 00:45:51,880 If you could prove that, that there exists a word for all d 556 00:45:51,880 --> 00:45:57,800 positions, because then, we pretty much know what happens. 557 00:45:57,800 --> 00:46:02,837 Then we know that, well, if this is true, then there are n 558 00:46:02,837 --> 00:46:04,700 choose d ways to choose those d positions. 559 00:46:08,210 --> 00:46:11,810 And then within those d positions, and since it's a 560 00:46:11,810 --> 00:46:16,690 linear code, we can multiply with the q minus 1 on the 561 00:46:16,690 --> 00:46:17,940 repeated element. 562 00:46:20,200 --> 00:46:23,540 So if we can choose our d positions arbitrarily, then 563 00:46:23,540 --> 00:46:28,540 this is the number over words at distance d. 564 00:46:28,540 --> 00:46:31,540 So let's look at a word, and let's, without loss of 565 00:46:31,540 --> 00:46:33,515 generality, assume it's a first d positions. 566 00:46:36,960 --> 00:46:39,770 So the first d positions. 567 00:46:39,770 --> 00:46:43,710 So in particular, these would be the first d minus 1 568 00:46:43,710 --> 00:46:58,200 positions, which would mean that this have length k. 569 00:46:58,200 --> 00:47:04,450 So if we have an MDS code, this is an information set. 570 00:47:04,450 --> 00:47:08,020 So if this is an information set, then we can fill up this 571 00:47:08,020 --> 00:47:11,880 thing with just about anything we want. 572 00:47:11,880 --> 00:47:18,330 So we choose this information set to be equal to 1. 573 00:47:18,330 --> 00:47:21,360 This is how we choose this information set, and by the 574 00:47:21,360 --> 00:47:24,840 property of MDS code, we are guaranteed that there exists a 575 00:47:24,840 --> 00:47:27,576 code word which is this part in the information set. 576 00:47:30,590 --> 00:47:34,070 But we also are guaranteed it's a weight d word, right? 577 00:47:34,070 --> 00:47:37,240 The minimum distance is d, that means all of these m 578 00:47:37,240 --> 00:47:44,680 entries here, they must all be non-zero, in this part. 579 00:47:44,680 --> 00:47:47,370 Otherwise, it wouldn't have weight d. 580 00:47:47,370 --> 00:47:48,330 OK? 581 00:47:48,330 --> 00:47:49,435 And there we have it. 582 00:47:49,435 --> 00:47:51,180 That was all we needed to show. 583 00:47:51,180 --> 00:47:51,910 Right? 584 00:47:51,910 --> 00:47:56,160 Because now we have shown that there exists a word of weight 585 00:47:56,160 --> 00:47:59,840 d in the first d positions. 586 00:47:59,840 --> 00:48:01,090 Is that clear? 587 00:48:14,650 --> 00:48:15,250 Let's try again. 588 00:48:15,250 --> 00:48:16,270 I will say the same words. 589 00:48:16,270 --> 00:48:17,575 Maybe it becomes clearer by that. 590 00:48:22,710 --> 00:48:24,130 Let's look at a code word. 591 00:48:24,130 --> 00:48:27,790 This is a generic code word, at first, and we want to 592 00:48:27,790 --> 00:48:31,410 answer the question, does there exist a code word 593 00:48:31,410 --> 00:48:34,240 within, which has support only in the first d positions? 594 00:48:36,890 --> 00:48:42,026 So does there exist a code word which is non-zero here, 595 00:48:42,026 --> 00:48:46,626 up to d, and which is zero everywhere else? 596 00:48:46,626 --> 00:48:49,225 That's the question we want to answer. 597 00:48:55,575 --> 00:48:55,817 OK. 598 00:48:55,817 --> 00:48:57,930 Now here's what we do. 599 00:48:57,930 --> 00:48:59,700 We look at this road and say, you know what? 600 00:48:59,700 --> 00:49:04,890 Let's look at the last k positions, which have an 601 00:49:04,890 --> 00:49:08,380 overlap of 1 with this word here, 602 00:49:08,380 --> 00:49:10,130 because it's an MDS property. 603 00:49:10,130 --> 00:49:14,160 So we have this relation between n, k, and d. 604 00:49:14,160 --> 00:49:17,760 And since any k positions in the word are in information 605 00:49:17,760 --> 00:49:24,210 set, so we can choose whatever we want in this part, and this 606 00:49:24,210 --> 00:49:25,460 is what we choose. 607 00:49:28,030 --> 00:49:33,050 By the property of MDS codes, this corollary, we are 608 00:49:33,050 --> 00:49:37,600 guaranteed there exists the code word which in the second 609 00:49:37,600 --> 00:49:41,180 half of the code word looks like this. 610 00:49:41,180 --> 00:49:44,570 And in the first half, it looks different. 611 00:49:44,570 --> 00:49:48,110 There's something else here, and I say, well it cannot have 612 00:49:48,110 --> 00:49:51,640 any 0 in here, because then it would have 613 00:49:51,640 --> 00:49:53,610 weighed less that d. 614 00:49:53,610 --> 00:49:56,330 So it has non-zeros here. 615 00:49:56,330 --> 00:50:00,780 So indeed, we have shown the existence of a code word which 616 00:50:00,780 --> 00:50:05,630 has non-zeroes in the first d positions. 617 00:50:05,630 --> 00:50:07,870 Very simple. 618 00:50:07,870 --> 00:50:10,320 And that was without loss of generality. 619 00:50:10,320 --> 00:50:14,310 You could make the same argument for any d positions. 620 00:50:14,310 --> 00:50:15,250 What have we shown? 621 00:50:15,250 --> 00:50:19,480 We have shown that indeed, we can choose any d positions in 622 00:50:19,480 --> 00:50:22,325 the code to support the minimum weight code 623 00:50:22,325 --> 00:50:25,540 word of weight d. 624 00:50:25,540 --> 00:50:29,440 This is how many ways we can choose this, then we have to 625 00:50:29,440 --> 00:50:32,840 multiply it with q minus 1. 626 00:50:32,840 --> 00:50:34,970 All non-zero field elements. 627 00:50:34,970 --> 00:50:37,550 The reason is, we might have chosen this, or we might have 628 00:50:37,550 --> 00:50:40,920 chosen omega or omega squared here, or just the multiples, 629 00:50:40,920 --> 00:50:42,812 the scalar multiples of it. 630 00:50:47,320 --> 00:50:48,740 Interesting, right? 631 00:50:48,740 --> 00:50:54,230 This property, that any k positions on information set 632 00:50:54,230 --> 00:50:56,520 is really strong enough to prove the -- 633 00:50:56,520 --> 00:50:58,570 actually, it's strong enough to prove the entire weight 634 00:50:58,570 --> 00:51:00,980 distribution of an MDS code. 635 00:51:00,980 --> 00:51:03,175 AUDIENCE: [INAUDIBLE] 636 00:51:03,175 --> 00:51:04,425 [UNINTELLIGIBLE]? 637 00:51:06,870 --> 00:51:10,030 PROFESSOR: No, no, no, why no, no, no, no. 638 00:51:13,660 --> 00:51:16,190 So then you would get too much. 639 00:51:16,190 --> 00:51:21,000 If you write q minus 1 to the d, then you would want to 640 00:51:21,000 --> 00:51:22,920 multiply each position with a different value. 641 00:51:26,590 --> 00:51:31,440 That would imply that there's more than one code word in the 642 00:51:31,440 --> 00:51:33,380 first d positions. 643 00:51:33,380 --> 00:51:36,790 More than one code word so that they are not scalar 644 00:51:36,790 --> 00:51:38,900 multiples of each other. 645 00:51:38,900 --> 00:51:42,060 If that would be true, then you could find a linear 646 00:51:42,060 --> 00:51:45,940 combination which is still 0 in this part, but has 647 00:51:45,940 --> 00:51:48,470 additional 0 here somewhere. 648 00:51:48,470 --> 00:51:50,470 But if that is true, then we don't have 649 00:51:50,470 --> 00:51:51,730 enough distance anymore. 650 00:51:51,730 --> 00:51:52,980 Then it's not an MDS code. 651 00:51:56,630 --> 00:51:59,850 All right, so it's indeed q minus 1. 652 00:51:59,850 --> 00:52:02,870 Within each d positions, we have one dimensional space. 653 00:52:02,870 --> 00:52:06,184 It's just one dimension. 654 00:52:06,184 --> 00:52:07,434 AUDIENCE: [INAUDIBLE] 655 00:52:09,940 --> 00:52:11,250 far off minimum weight code words? 656 00:52:14,230 --> 00:52:15,690 PROFESSOR: Yeah, yeah, definitely. 657 00:52:18,440 --> 00:52:20,665 Any other code must have less, so it would have less. 658 00:52:23,950 --> 00:52:25,310 But every other code would have a 659 00:52:25,310 --> 00:52:26,560 smaller minimum distance. 660 00:52:31,803 --> 00:52:34,629 AUDIENCE: [INAUDIBLE]. 661 00:52:34,629 --> 00:52:40,172 Suppose we let the last k minus 1 position zero, and the 662 00:52:40,172 --> 00:52:43,670 one before that, [UNINTELLIGIBLE PHRASE]. 663 00:52:43,670 --> 00:52:47,540 And you said that we can do it for any of [UNINTELLIGIBLE] 664 00:52:47,540 --> 00:52:48,490 total field? 665 00:52:48,490 --> 00:52:49,786 PROFESSOR: Sure. 666 00:52:49,786 --> 00:52:55,770 AUDIENCE: Since it's a linear code, some of those code words 667 00:52:55,770 --> 00:52:59,220 should be in the linear code, right? 668 00:52:59,220 --> 00:53:01,240 PROFESSOR: Sure. 669 00:53:01,240 --> 00:53:05,030 AUDIENCE: So because it's a field, also we are going to 670 00:53:05,030 --> 00:53:06,700 [INAUDIBLE] 671 00:53:06,700 --> 00:53:12,830 there exists an inverse [UNINTELLIGIBLE]? 672 00:53:12,830 --> 00:53:14,230 PROFESSOR: Absolutely. 673 00:53:14,230 --> 00:53:20,740 AUDIENCE: So if we add those two code words, we should have 674 00:53:20,740 --> 00:53:22,510 all zero, [UNINTELLIGIBLE] 675 00:53:22,510 --> 00:53:27,590 k minus 1, and have inverse at the one before. 676 00:53:27,590 --> 00:53:34,910 We get that code word which has a minimum weight, which is 677 00:53:34,910 --> 00:53:37,862 less that the one we have here? 678 00:53:37,862 --> 00:53:39,030 PROFESSOR: Good question. 679 00:53:39,030 --> 00:53:40,670 There is a trick out. 680 00:53:40,670 --> 00:53:43,640 There's a way out of this. 681 00:53:43,640 --> 00:53:45,610 Great argument. 682 00:53:45,610 --> 00:53:46,895 But there's a trick out. 683 00:53:46,895 --> 00:53:47,990 AUDIENCE: There's gotta be an upper bound 684 00:53:47,990 --> 00:53:49,390 PROFESSOR: No, no, there is a trick, there 685 00:53:49,390 --> 00:53:51,220 is a way out here. 686 00:53:51,220 --> 00:53:55,580 Namely, so let's put it like this. 687 00:53:55,580 --> 00:53:59,880 Right here we put in a 1, just for simplicity, let's assume 688 00:53:59,880 --> 00:54:01,550 all the other positions are also 1. 689 00:54:04,160 --> 00:54:07,540 And then you say, this would be another code word, which 690 00:54:07,540 --> 00:54:11,300 has here an omega. 691 00:54:11,300 --> 00:54:12,300 I say, you know what? 692 00:54:12,300 --> 00:54:12,850 What's going to happen? 693 00:54:12,850 --> 00:54:15,330 All the other positions are going to be omega 2. 694 00:54:18,110 --> 00:54:20,790 There's no way to combine these two guys to get an 695 00:54:20,790 --> 00:54:23,650 additional 0, unless you get all 0's. 696 00:54:23,650 --> 00:54:24,800 Unless you get to 0. 697 00:54:24,800 --> 00:54:26,250 That's what I said, it's a one-dimensional 698 00:54:26,250 --> 00:54:28,030 space in these positions. 699 00:54:28,030 --> 00:54:29,280 When it's a soft code . 700 00:54:31,889 --> 00:54:33,139 AUDIENCE: [UNINTELLIGIBLE PHRASE] 701 00:54:39,710 --> 00:54:43,870 PROFESSOR: It tells you that if you write down the minimum 702 00:54:43,870 --> 00:54:49,520 weight code words in the q minus 1 times d matrix, that 703 00:54:49,520 --> 00:54:53,620 is, you have a Latin square, basically. 704 00:54:53,620 --> 00:54:54,790 That's what it tells you. 705 00:54:54,790 --> 00:54:58,460 There's in no position, if you have anywhere in here an 706 00:54:58,460 --> 00:55:03,390 element alpha and element omega, the same omega pops up 707 00:55:03,390 --> 00:55:04,640 nowhere else. 708 00:55:07,770 --> 00:55:12,410 There's ramifications of MDS codes in combinatorics left 709 00:55:12,410 --> 00:55:14,060 and right, so this would be a Latin square. 710 00:55:18,390 --> 00:55:21,320 You know, you can learn a lot a lot about MDS codes if you 711 00:55:21,320 --> 00:55:23,750 think a little bit about that, and about combinatorics 712 00:55:23,750 --> 00:55:25,220 altogether. 713 00:55:25,220 --> 00:55:26,760 OK, where was I? 714 00:55:26,760 --> 00:55:29,608 So we know that's fun. 715 00:55:29,608 --> 00:55:38,250 And actually, in the homework, you going to do n d plus 1. 716 00:55:40,900 --> 00:55:42,900 So the next one. 717 00:55:42,900 --> 00:55:49,100 But once you do n d plus 1, do all of them. 718 00:55:49,100 --> 00:55:52,370 In a sense it's just inclusion and exclusion from then on. 719 00:55:52,370 --> 00:55:54,430 The first one is sort of the toughest one, the rest is 720 00:55:54,430 --> 00:55:56,140 inclusion exclusion. 721 00:55:56,140 --> 00:56:00,610 And just for the heck of it, when you go home and do the 722 00:56:00,610 --> 00:56:02,950 homework, write them all out. 723 00:56:02,950 --> 00:56:06,910 It's a pretty looking formula, in the end. 724 00:56:06,910 --> 00:56:10,030 OK, so far, so good. 725 00:56:10,030 --> 00:56:12,955 So we have still talked about MDS codes without knowing if 726 00:56:12,955 --> 00:56:15,840 they exist. 727 00:56:15,840 --> 00:56:17,430 Except for the trivial ones here. 728 00:56:21,250 --> 00:56:31,310 And the existence of MDS codes is actually not known for 729 00:56:31,310 --> 00:56:33,830 which parameters they exist. 730 00:56:33,830 --> 00:56:39,270 So I give you a research problem. 731 00:56:39,270 --> 00:56:56,580 The research problem is the main conjecture on MDS codes. 732 00:57:00,320 --> 00:57:01,520 And it's always sort of tricky. 733 00:57:01,520 --> 00:57:04,330 When a research problem has a name, then 734 00:57:04,330 --> 00:57:07,590 that signifies danger. 735 00:57:07,590 --> 00:57:12,340 Then it means that it's not trivial. 736 00:57:12,340 --> 00:57:20,790 The question is, for which k d and q, for which sets of 737 00:57:20,790 --> 00:57:28,000 parameters n k d q, do MDS codes exist? 738 00:57:28,000 --> 00:57:44,250 And the conjecture this is that n k q, because in MDS 739 00:57:44,250 --> 00:57:46,930 code we can actually get rid of the d here. 740 00:57:46,930 --> 00:58:03,022 e, the longest length of an MDS code. 741 00:58:03,022 --> 00:58:17,150 The longest length of an MDS code, I mentioned k over an 742 00:58:17,150 --> 00:58:26,582 alphabet of size q. 743 00:58:26,582 --> 00:58:45,530 The conjecture is that n, k, d is less than q plus 1 for k at 744 00:58:45,530 --> 00:58:48,360 least 2, unless -- 745 00:58:48,360 --> 00:58:50,310 I always have to look that up -- 746 00:58:53,394 --> 00:58:54,644 I think 2q. 747 00:58:58,010 --> 00:59:07,480 And k plus 1 for k greater than q. 748 00:59:11,350 --> 00:59:22,680 We talk about it in a second, except that n, there's 749 00:59:22,680 --> 00:59:29,380 a 3, 2 to the s. 750 00:59:29,380 --> 00:59:33,830 So if the alphabet is a power of 2, alphabet size an 751 00:59:33,830 --> 00:59:35,185 extension field of 2, basically. 752 00:59:38,460 --> 00:59:49,640 q plus 2 and q minus 1 q to the s. 753 00:59:49,640 --> 00:59:52,740 q plus 2. 754 00:59:52,740 --> 00:59:55,680 OK, so this is the main conjecture on MDS codes. 755 00:59:58,700 --> 01:00:03,970 Basically, it says that the length can essentially be as 756 01:00:03,970 --> 01:00:08,212 large as the alphabet size, but not larger. 757 01:00:08,212 --> 01:00:10,190 AUDIENCE: [INAUDIBLE] 758 01:00:10,190 --> 01:00:12,410 PROFESSOR: This q, yeah? 759 01:00:12,410 --> 01:00:13,490 Oh, yeah, n k q, sorry. 760 01:00:13,490 --> 01:00:15,650 It doesn't make sense otherwise. 761 01:00:18,780 --> 01:00:22,210 So the lengths can be in the same order of magnitude as the 762 01:00:22,210 --> 01:00:23,140 alphabet size. 763 01:00:23,140 --> 01:00:27,700 That gives enough room, enough choices, to fill up this 764 01:00:27,700 --> 01:00:31,390 matrix with the information set, with the MDS property on 765 01:00:31,390 --> 01:00:34,240 the information sets. 766 01:00:34,240 --> 01:00:39,390 This is the parity-check code, this row is just taken out as 767 01:00:39,390 --> 01:00:40,640 a trivial code. 768 01:00:43,970 --> 01:00:49,750 And then, the demon of mathematics conspired that 769 01:00:49,750 --> 01:00:51,940 this would also be true. 770 01:00:51,940 --> 01:00:55,810 So if you have an extension field of 2, and you want to 771 01:00:55,810 --> 01:01:00,720 give it a dimension three, MDS code, they exist for q plus 2. 772 01:01:05,130 --> 01:01:05,241 Right. 773 01:01:05,241 --> 01:01:08,130 There are, of course, reasons for this, but they go pretty 774 01:01:08,130 --> 01:01:11,400 deep, why they exist for those parameters, and this is just 775 01:01:11,400 --> 01:01:14,150 mysterious. 776 01:01:14,150 --> 01:01:15,830 One can give reasons, so on another hand, 777 01:01:15,830 --> 01:01:17,080 it's just so, right. 778 01:01:20,610 --> 01:01:22,870 There are exceptionally enough that they have names. 779 01:01:22,870 --> 01:01:29,370 The first one is the Hexacode, it's something with a 780 01:01:29,370 --> 01:01:42,230 generator matrix, and this goes over F4. 781 01:01:42,230 --> 01:01:49,110 So that's an MDS code of length six, so this is a n6, 782 01:01:49,110 --> 01:01:54,380 3, 4, MDS code over alphabet size 4. 783 01:01:54,380 --> 01:01:58,650 That's the first one, in that sequence here. 784 01:01:58,650 --> 01:02:00,790 Anyway. 785 01:02:00,790 --> 01:02:02,180 Otherwise, we have this conjecture. 786 01:02:02,180 --> 01:02:05,850 If you solve this, you are going to be rich and famous, 787 01:02:05,850 --> 01:02:10,660 you're going to live in Hollywood, and 788 01:02:10,660 --> 01:02:11,760 maybe, maybe not. 789 01:02:11,760 --> 01:02:15,530 But you're going to be probably not rich, you're 790 01:02:15,530 --> 01:02:17,730 going to be famous about a couple of hundred people who 791 01:02:17,730 --> 01:02:23,160 know about this MDS conjecture, but very smart 792 01:02:23,160 --> 01:02:25,475 people have been looking for this for a long, long time. 793 01:02:25,475 --> 01:02:26,725 OK. 794 01:02:29,356 --> 01:02:31,260 All right, 20 minutes left. 795 01:02:31,260 --> 01:02:34,840 So it's better we define, we make sure those codes exist. 796 01:02:34,840 --> 01:02:36,964 Do we have any question about this MDS conjecture? 797 01:02:46,220 --> 01:02:50,070 OK, last 20 minutes, let's at least make sure 798 01:02:50,070 --> 01:02:51,410 those things exist. 799 01:02:51,410 --> 01:02:52,660 Reed-Solomon codes. 800 01:03:00,550 --> 01:03:07,210 So Reed-Solomon codes cover this case. 801 01:03:07,210 --> 01:03:09,970 They are examples of codes which lie, which 802 01:03:09,970 --> 01:03:12,690 satisfy this equality. 803 01:03:12,690 --> 01:03:14,840 OK, so how do we define Reed-Solomon codes? 804 01:03:20,780 --> 01:03:24,590 Now, just in a true mathematician spirit, write 805 01:03:24,590 --> 01:03:27,010 down consider the following. 806 01:03:27,010 --> 01:03:31,593 Consider the following code. 807 01:03:37,510 --> 01:03:38,760 See? 808 01:03:49,100 --> 01:04:01,135 Beta 0 beta q minus 1. 809 01:04:09,808 --> 01:04:14,520 The beta i are the distinct field elements, the distinct 810 01:04:14,520 --> 01:04:17,310 elements in the finite field. 811 01:04:17,310 --> 01:04:21,075 f is a polynomial. 812 01:04:24,590 --> 01:04:33,810 f is a polynomial, and the degree is less than k. 813 01:04:33,810 --> 01:04:34,950 OK, good. 814 01:04:34,950 --> 01:04:37,280 So we have defined a code. 815 01:04:37,280 --> 01:04:40,540 So what that means is we start from polynomials. 816 01:04:40,540 --> 01:04:46,496 The set of all polynomials of degree at most k. 817 01:04:46,496 --> 01:04:48,160 So what do we know about that set? 818 01:04:48,160 --> 01:04:50,520 It's a vector space, right? 819 01:04:50,520 --> 01:04:53,000 The set of all polynomials of degree at most k. 820 01:04:53,000 --> 01:04:55,640 We can add them to get a polynomial of degree at most 821 01:04:55,640 --> 01:04:58,320 k, we can multiply them with a scalar to get a polynomial 822 01:04:58,320 --> 01:05:00,390 with degree at most k. 823 01:05:00,390 --> 01:05:03,790 It's a vector space. 824 01:05:03,790 --> 01:05:10,820 So we take this vector space and evaluate for any element 825 01:05:10,820 --> 01:05:12,090 in that vector space. 826 01:05:12,090 --> 01:05:21,740 This element in all non-zero elements of the field and we 827 01:05:21,740 --> 01:05:22,270 get a code. 828 01:05:22,270 --> 01:05:31,160 We get a set of vectors, so we get a set of 829 01:05:31,160 --> 01:05:33,830 vectors, and that -- 830 01:05:33,830 --> 01:05:35,830 AUDIENCE: [INAUDIBLE] 831 01:05:35,830 --> 01:05:37,180 PROFESSOR: Yeah, I took all elements. 832 01:05:37,180 --> 01:05:38,310 Why not? 833 01:05:38,310 --> 01:05:40,260 Why not all elements? 834 01:05:40,260 --> 01:05:43,910 Strictly speaking, I should have taken one more in order 835 01:05:43,910 --> 01:05:46,070 to get the one here. 836 01:05:46,070 --> 01:05:47,800 We can talk about that in a sec. 837 01:05:47,800 --> 01:05:49,420 But this one more element would be -- 838 01:05:53,980 --> 01:05:55,170 so it's a code. 839 01:05:55,170 --> 01:05:56,130 First of all, it's a code. 840 01:05:56,130 --> 01:05:56,370 Right? 841 01:05:56,370 --> 01:05:58,410 We all see it's a code. 842 01:05:58,410 --> 01:06:01,200 And once you see it's a code, we ask, what are the 843 01:06:01,200 --> 01:06:02,450 parameters? 844 01:06:09,310 --> 01:06:10,560 The parameters. 845 01:06:16,640 --> 01:06:22,440 So length, length is the easy one. 846 01:06:22,440 --> 01:06:25,450 Well, it's q. 847 01:06:25,450 --> 01:06:26,700 What is dimension? 848 01:06:29,810 --> 01:06:33,660 Dimension of C. What's the dimension? 849 01:06:38,810 --> 01:06:40,480 It's a little bit tricky, that question. 850 01:06:45,020 --> 01:06:48,550 I actually, at Illinois, we have to 851 01:06:48,550 --> 01:06:51,560 take a class on teaching. 852 01:06:51,560 --> 01:06:53,840 How to become an effective teacher. 853 01:06:53,840 --> 01:06:58,070 And one of the things they told us is that if you ask a 854 01:06:58,070 --> 01:07:03,610 question, you have to wait for 12 seconds to get an answer. 855 01:07:03,610 --> 01:07:05,760 So what's the dimension? 856 01:07:05,760 --> 01:07:07,010 There you go. 857 01:07:12,560 --> 01:07:16,700 This mapping, this mapping from a vector space to a 858 01:07:16,700 --> 01:07:17,950 vector space. 859 01:07:20,170 --> 01:07:22,070 This mapping, also called evaluation 860 01:07:22,070 --> 01:07:25,300 map, is a linear map. 861 01:07:25,300 --> 01:07:32,810 It's a linear map, meaning that, well, let's start 862 01:07:32,810 --> 01:07:34,140 differently. 863 01:07:34,140 --> 01:07:35,750 Let's start differently. 864 01:07:35,750 --> 01:07:38,900 Do any two polynomials map to the same code word? 865 01:07:42,430 --> 01:07:43,140 That you know. 866 01:07:43,140 --> 01:07:46,760 That you cannot. 867 01:07:46,760 --> 01:07:54,860 Are there any two codes, two polynomials, so are there f of 868 01:07:54,860 --> 01:08:10,740 x, g of x, such that f of beta 0, so that they coincide in 869 01:08:10,740 --> 01:08:13,520 all positions? 870 01:08:13,520 --> 01:08:15,370 No, then they would be the same, right? 871 01:08:15,370 --> 01:08:18,700 And the reason is because if there would be something like 872 01:08:18,700 --> 01:08:25,880 that, then you could just look at h is f of x minus g of x, 873 01:08:25,880 --> 01:08:29,130 which is just another polynomial of degree k. 874 01:08:29,130 --> 01:08:33,100 And this would have to vanish in all positions. 875 01:08:33,100 --> 01:08:40,950 If k is less than q, it could not possibly vanish in all 876 01:08:40,950 --> 01:08:44,399 positions, because then the polynomial of degree k would 877 01:08:44,399 --> 01:08:47,200 vanish in more than k positions. 878 01:08:47,200 --> 01:08:48,720 Fundamental theorem of algebra. 879 01:08:48,720 --> 01:08:50,430 The very beginning. 880 01:08:50,430 --> 01:08:54,859 So the dimension of C is indeed k, the same as the 881 01:08:54,859 --> 01:08:58,740 dimension of this vector space. 882 01:08:58,740 --> 01:09:00,850 The dimension of the vector space of polynomials of the 883 01:09:00,850 --> 01:09:03,000 degree k minus 1. 884 01:09:03,000 --> 01:09:05,950 And the distance, if k is less than q, the 885 01:09:05,950 --> 01:09:11,072 distance is equal to q. 886 01:09:11,072 --> 01:09:18,920 The distance, what is it? 887 01:09:18,920 --> 01:09:21,770 Same argument, roughly the same argument. 888 01:09:21,770 --> 01:09:27,120 I think that's a linear code, so if it's a linear code, the 889 01:09:27,120 --> 01:09:29,490 minimum distance of the code is the same as the minimum 890 01:09:29,490 --> 01:09:32,580 weight of a non-zero word. 891 01:09:32,580 --> 01:09:34,580 What's the minimum weight of a non-zero word? 892 01:09:37,200 --> 01:09:41,319 These are polynomials of degree k minus 1. 893 01:09:41,319 --> 01:09:43,920 What's the minimum weight of a non-zero word? 894 01:09:43,920 --> 01:09:46,910 Well, we start out with the weight 1, and whenever the 895 01:09:46,910 --> 01:09:52,300 polynomial evaluates to 0, one of the weights drops out. 896 01:09:52,300 --> 01:09:55,470 So I claim the minimum distance as the minimum 897 01:09:55,470 --> 01:10:12,100 weight, weight of the non-zero word, and this is n minus, 898 01:10:12,100 --> 01:10:16,090 well, if any of these polynomials vanishes in all, 899 01:10:16,090 --> 01:10:19,990 it vanishes in at most, k minus 1 positions. 900 01:10:19,990 --> 01:10:25,210 At most, k minus 1 of these vectors here, of these 901 01:10:25,210 --> 01:10:27,220 entries, is equal to 0. 902 01:10:27,220 --> 01:10:31,970 So it drops by, at most, k minus 1. 903 01:10:31,970 --> 01:10:35,260 Drops by at most, k minus 1. 904 01:10:35,260 --> 01:10:36,510 And there we have it. 905 01:10:39,454 --> 01:10:40,380 There we have it. 906 01:10:40,380 --> 01:10:43,114 There we have, oh, this is q. 907 01:10:46,150 --> 01:10:46,960 There we have it. 908 01:10:46,960 --> 01:10:53,280 There we have that the minimum distance of the code satisfies 909 01:10:53,280 --> 01:10:54,598 this equation. 910 01:10:54,598 --> 01:10:56,470 AUDIENCE: [INAUDIBLE] 911 01:10:56,470 --> 01:10:57,640 PROFESSOR: What? 912 01:10:57,640 --> 01:10:58,230 AUDIENCE: The dimension? 913 01:10:58,230 --> 01:10:58,760 PROFESSOR: The dimension. 914 01:10:58,760 --> 01:11:01,900 So, it's the same argument, roughly. 915 01:11:01,900 --> 01:11:07,410 So I say, the dimension, so let's just say the size of the 916 01:11:07,410 --> 01:11:11,710 code is q to the k. 917 01:11:11,710 --> 01:11:15,730 When is the size of the q to the k, if no two elements in 918 01:11:15,730 --> 01:11:18,540 the space evaluate to the same code word? 919 01:11:18,540 --> 01:11:21,432 But if two of them would evaluate to the same code 920 01:11:21,432 --> 01:11:26,930 word, then we would less size than the vector space had. 921 01:11:26,930 --> 01:11:30,320 But if two of them evaluate to the same code word, that means 922 01:11:30,320 --> 01:11:37,070 this is true for all four positions. 923 01:11:37,070 --> 01:11:41,160 Then we could define a polynomial h of the 924 01:11:41,160 --> 01:11:42,990 degree k minus 1. 925 01:11:42,990 --> 01:11:49,645 which disappears in more than k minus 1 positions. 926 01:11:49,645 --> 01:11:52,510 I mean, all positions. 927 01:11:52,510 --> 01:11:56,230 Cannot be, hence the size of the code is q to the k, so 928 01:11:56,230 --> 01:11:58,370 this is a linear map, dimension is k. 929 01:12:01,660 --> 01:12:03,120 OK. 930 01:12:03,120 --> 01:12:03,660 So cool. 931 01:12:03,660 --> 01:12:04,600 So we have it, right? 932 01:12:04,600 --> 01:12:06,050 We have our MDS codes. 933 01:12:06,050 --> 01:12:07,195 They exist. 934 01:12:07,195 --> 01:12:08,080 Here they are. 935 01:12:08,080 --> 01:12:10,610 They are Reed-Solomon codes. 936 01:12:10,610 --> 01:12:15,840 Not all MDS codes are Reed-Solomon codes, but the 937 01:12:15,840 --> 01:12:19,220 ones we are interested in, they are. 938 01:12:19,220 --> 01:12:21,400 AUDIENCE: [INAUDIBLE] 939 01:12:21,400 --> 01:12:25,000 PROFESSOR: Well, the distance is at least this, but the MDS 940 01:12:25,000 --> 01:12:30,270 bounds is at most this, so it's equal to this. 941 01:12:30,270 --> 01:12:43,720 But the MDS bounds, so the MDS bound has this is. 942 01:12:43,720 --> 01:12:46,760 So with that. 943 01:12:46,760 --> 01:12:52,140 So it's indeed, they lie exactly bang on to this. 944 01:12:52,140 --> 01:12:54,840 There are MDS codes, Reed-Solomon codes. 945 01:12:54,840 --> 01:12:55,910 So that is good. 946 01:12:55,910 --> 01:12:57,612 So we know what they are. 947 01:12:57,612 --> 01:13:03,280 So incidentally, where do you think this one more point is 948 01:13:03,280 --> 01:13:04,980 that you would evaluate our polynomials in? 949 01:13:11,120 --> 01:13:12,400 You've heard about projective geometries? 950 01:13:16,840 --> 01:13:20,400 There's one more point, it's infinity. 951 01:13:20,400 --> 01:13:24,940 You have, basically, if you look at the numbers, in order 952 01:13:24,940 --> 01:13:27,410 to close it up, you want to add infinity to that, too. 953 01:13:32,020 --> 01:13:37,690 In order to get this one more, this one addition in length, 954 01:13:37,690 --> 01:13:40,450 you want to evaluate this also at infinity. 955 01:13:40,450 --> 01:13:43,440 You will have opportunity to do that in the homework. 956 01:13:43,440 --> 01:13:45,420 I looked at the homework and I was pleased to see this 957 01:13:45,420 --> 01:13:47,220 problem there. 958 01:13:47,220 --> 01:13:50,190 I hope you will be pleased, too. 959 01:13:50,190 --> 01:13:53,780 OK, all right. 960 01:13:53,780 --> 01:13:55,030 Any questions about this? 961 01:13:58,616 --> 01:14:00,200 Let's see what else I wanted to say. 962 01:14:10,300 --> 01:14:14,240 Because it just gives me a few minutes to talk about a few 963 01:14:14,240 --> 01:14:28,570 properties of Reed-Solomon codes, a few properties of 964 01:14:28,570 --> 01:14:29,820 Reed-Solomon codes. 965 01:14:31,890 --> 01:14:34,035 And what did I want to say there? 966 01:14:46,430 --> 01:14:59,620 On nested codes, so an RS code with parameters n k, maybe we 967 01:14:59,620 --> 01:15:00,945 define them [UNINTELLIGIBLE] like this. 968 01:15:09,140 --> 01:15:21,965 q is properly contained, k minus 1, minus 1. 969 01:15:26,730 --> 01:15:31,840 This is pretty straight from the definition of RS codes. 970 01:15:34,850 --> 01:15:39,480 The set of polynomials of degree at most k minus 1 971 01:15:39,480 --> 01:15:41,990 contains the set of polynomials of degree at 972 01:15:41,990 --> 01:15:44,170 most k minus 1. 973 01:15:44,170 --> 01:15:51,270 So they are nested codes, property one. 974 01:15:54,030 --> 01:15:55,960 You will see this is important, that they are 975 01:15:55,960 --> 01:15:59,170 nested codes, for various constructions where 976 01:15:59,170 --> 01:16:01,160 Reed-Solomon codes take part in later on. 977 01:16:04,000 --> 01:16:15,990 A punctured RS code is again an MDS code. 978 01:16:20,050 --> 01:16:22,460 Why is that so? 979 01:16:22,460 --> 01:16:23,710 Why is that so? 980 01:16:27,610 --> 01:16:30,510 Well, you see it? 981 01:16:33,670 --> 01:16:36,490 Say if you puncture a Reed-Solomon code. 982 01:16:36,490 --> 01:16:41,640 That means we just choose to not evaluate our code in this, 983 01:16:41,640 --> 01:16:43,450 this position. 984 01:16:43,450 --> 01:16:44,610 And this field element. 985 01:16:44,610 --> 01:16:45,960 Well, we just drop that coordinate. 986 01:16:48,830 --> 01:16:51,810 Does anything change in the arguments we have made? 987 01:16:51,810 --> 01:16:58,450 Well, the length is now 1 less, the dimension, well, the 988 01:16:58,450 --> 01:17:03,630 dimension is still the same, as long as k is not larger 989 01:17:03,630 --> 01:17:05,680 than the length of the code. 990 01:17:05,680 --> 01:17:10,650 The distance, still the same as the length, the distance is 991 01:17:10,650 --> 01:17:16,240 at least the length minus the number of 0's. 992 01:17:16,240 --> 01:17:18,630 So that equation still holds. 993 01:17:18,630 --> 01:17:20,390 Well, but that's all we needed. 994 01:17:20,390 --> 01:17:22,360 Still MDS code. 995 01:17:22,360 --> 01:17:25,460 So there was really no -- it was not important. 996 01:17:25,460 --> 01:17:28,640 It was not important if you took all field elements, or a 997 01:17:28,640 --> 01:17:31,870 subset of the field elements with MDS property. 998 01:17:31,870 --> 01:17:34,230 That has nothing to do with it. 999 01:17:34,230 --> 01:17:36,220 In particular, we often in the end, we often 1000 01:17:36,220 --> 01:17:40,240 will drop the 0 element. 1001 01:17:40,240 --> 01:17:44,590 We often choose not to evaluate these polynomials in 1002 01:17:44,590 --> 01:17:48,270 the 0 of the field. 1003 01:17:48,270 --> 01:17:51,775 A punctured Reed-Solomon code is an MDS code. 1004 01:17:56,030 --> 01:17:58,350 So what else did I want to say about this? 1005 01:18:01,801 --> 01:18:04,270 What else did I want to say about this? 1006 01:18:09,610 --> 01:18:10,860 A generator matrix. 1007 01:18:17,180 --> 01:18:19,060 How would a generator matrix look like? 1008 01:18:28,389 --> 01:18:30,160 Yeah, how would it look like? 1009 01:18:32,850 --> 01:18:34,260 Basically, we can come from here, right? 1010 01:18:34,260 --> 01:18:37,085 We can take the generators of that space. 1011 01:18:40,360 --> 01:18:43,820 So basically, we say that one -- 1012 01:18:52,070 --> 01:19:02,780 generate the set of polynomials, that vector space 1013 01:19:02,780 --> 01:19:04,800 of polynomials with -- 1014 01:19:09,910 --> 01:19:12,060 so this is the basis of that vector space. 1015 01:19:14,610 --> 01:19:20,840 So if we map that basis, then we get a basis of the image of 1016 01:19:20,840 --> 01:19:22,090 the mapping. 1017 01:19:24,200 --> 01:19:27,610 And the mapping of that basis would give this. 1018 01:19:27,610 --> 01:19:32,080 So we evaluate the function 1 in all field elements -- 1019 01:19:32,080 --> 01:19:35,960 gives us 1. 1020 01:19:35,960 --> 01:19:39,410 We evaluate the function x in all field elements. 1021 01:19:39,410 --> 01:19:41,610 This gives us the next generator of the 1022 01:19:41,610 --> 01:19:43,220 Reed-Solomon code. 1023 01:19:43,220 --> 01:19:54,880 Well, 0 gives 0, 1 gives, oh, let's write like this. 1024 01:19:54,880 --> 01:19:57,160 We evaluate it in all field elements. 1025 01:20:01,740 --> 01:20:04,910 These are all the field elements. 1026 01:20:04,910 --> 01:20:23,103 The next one, and this goes up to beta -- 1027 01:20:28,630 --> 01:20:30,745 OK, so this would be a generator matrix. 1028 01:20:34,150 --> 01:20:35,320 That's fine. 1029 01:20:35,320 --> 01:20:45,030 So now, in order to make things a bit more interesting, 1030 01:20:45,030 --> 01:20:46,645 do you have to stop five minutes early? 1031 01:20:46,645 --> 01:20:47,895 We just started five minutes late? 1032 01:20:50,980 --> 01:20:54,435 OK then, I think that's over. 1033 01:20:54,435 --> 01:20:56,550 I think it's over. 1034 01:20:56,550 --> 01:21:02,150 One more thing for you guys to think about until you reach 1035 01:21:02,150 --> 01:21:06,250 home, then the rest you do next time. 1036 01:21:06,250 --> 01:21:18,820 So let beta 0 be equal to 0 beta 1, or beta i equal to 1037 01:21:18,820 --> 01:21:21,745 omega i minus 1 where omega is primitive in the field. 1038 01:21:32,690 --> 01:21:41,885 Then we can write the matrix v of omega. 1039 01:22:03,310 --> 01:22:07,410 I tend to see that the first k columns, the first k rows of 1040 01:22:07,410 --> 01:22:09,860 this matrix would be a generator matrix of a 1041 01:22:09,860 --> 01:22:10,830 Reed-Solomon code. 1042 01:22:10,830 --> 01:22:13,330 Of course it's the same as [UNINTELLIGIBLE]. 1043 01:22:13,330 --> 01:22:20,390 If we now delete the first position, we erase the first, 1044 01:22:20,390 --> 01:22:23,580 we puncture the first position all out, and we look at the 1045 01:22:23,580 --> 01:22:25,500 rest of the matrix. 1046 01:22:25,500 --> 01:22:26,370 This factor of the matrix. 1047 01:22:26,370 --> 01:22:30,180 Does this remind anybody of anything? 1048 01:22:30,180 --> 01:22:32,740 It's a DFT, it's a Fourier transform. 1049 01:22:32,740 --> 01:22:35,980 And that's what we start with next time. 1050 01:22:35,980 --> 01:22:41,780 So think about why this is a Fourier transform. 1051 01:22:41,780 --> 01:22:45,890 And maybe that's a nice analogy. 1052 01:22:45,890 --> 01:22:47,790 So we get the distance. 1053 01:22:47,790 --> 01:22:51,560 The distance is at least something, which means it's 1054 01:22:51,560 --> 01:22:52,360 not impulsive. 1055 01:22:52,360 --> 01:22:54,000 It's not a single 1 somewhere. 1056 01:22:54,000 --> 01:22:56,400 The vector that we get is not impulsive. 1057 01:22:56,400 --> 01:22:59,680 Maybe it has something to do with the bandwidth constraint 1058 01:22:59,680 --> 01:23:02,380 and the frequency domain. 1059 01:23:02,380 --> 01:23:03,990 That's what you have to think about on the way 1060 01:23:03,990 --> 01:23:05,690 home, and that's it. 1061 01:23:05,690 --> 01:23:06,940 Thanks so much.