 So, this is going to be a tutorial class, we will begin with linear block codes, ok. So, I hope all of you have a copy of the tutorial problems, but he has copies and bad luck. What can I say? He will make copies. Do you have a chance to look at it? Ok, so my style is usually to ask people if there is any problem that they would like me to work out once again or go through in more detail. If you have any problem like that, we can start with that, ok. But that is under the assumption that you will at least look at it once. 14B. No, you have gone straight to 14B, ok. So, let us go, let us say first page. First five problems. If there is anything in the first five, no? Ok, so I think given that I am not sure if you have looked at it in any kind of detail, I will just pick some problems and then go through them. Ok, the first problem, I think it is a simple one, but I think it is an electrical one. So, let us look at the first question. So, there are two parity thicknesses given. Ok, so look for 1. 1, 0, 1, 0. 1, 1, 0, 1. And then there is another parity check matrix, which is 2, which is 0, 1, 1, 1. 1, 1, 0, 1. Ok. So, the first part of the question asks you to list all code words after two codes. Ok, so there is a code C1, parity check matrix. And there is a code C2, parity check matrix, H2. Ok, so that is the definition. What are the code words we will see? Ok, that is the first question. How do you find the code words we will see? Ok. Yeah, ok. So, there is a method that let us see if we can come up with the answers. What is the answer? Yeah, how many code words will that be? That is the first question, right? Four. Four. How did you get that four? Ok, so you can quickly identify that n equals 4. And then the rank of this matrix is 2. You can see that there is a 1, 0, 0, 1. So, it is 2, so m minus k is 2. So, k has to be 2. And there you get that there should be 2 part k, which is four code words in this code. And to find the code word, the best way to do it is to assign message words and then parity bits. Ok. Why did I assign it this way? Yeah, so you see the standard form, right? It is already very close to the standard form. There is an identity here. And then there is some other matrix here. On top of some other matrix, you assign the messages. On top of the identity, you assign the parity, p1, p2. Ok. So, basically this means that there are two equations to satisfy, right? So, p1 equals. So, once you assign it this way, what are the equations? p1 equals m1 and then p2 equals m1 plus m2. So, that is all. That is the rule. And m1 and m2 are arbitrary, any of the four possibilities are over. So, you start with 0, 0 and then you get 0, 0. To use the rule, p1 equals m1. p2 equals m1 xr. What about 0, 1? 0, 1. Right? What about 1, 0? 1, 1. 1, 1. What about 1, 1? 1, 2. Ok. So, those are the four code words to call. So, it is very easy to list them all. What about the second code? Yeah, I mean the answer might be same, but how do you proceed? So now, so why do you put the message puts and why do you put the parity bus? Ok. You can do it in various ways if you observe. For instance, the first and the third column, you already see there is 0, 1, 1, 0, which is hidden. You can do it that way or you can even take the third and the fourth columns. But then you don't directly have an identity matrix there, but you can convert it into an identity matrix. How will you convert it into an identity matrix? We place the first row by XORS, first row and second row. You can do that. In fact, if you do that, what will you get? So, you will get the exact same matrix as H1. Ok. So, you do the linear operation row 1 equals row 1 XOR, row 2. Ok. If you do that, what do you get? Row 2 remains the same. Row 1 becomes 1, 0, 1, 0. And you quickly see that this is the same as H1. So, C2 is not really any other code. It has to be the same code as we have before. Ok. It's just the same code, same matrix, same space, a thing in this case. Alright. So, there's also a question that you have to find the part B of this same question. It's basically to find generator matrix and parity check matrix in systematic form for both the codes. Ok. So, that you can do with a too much trouble. So, you see that both codes are the same. You generate a matrix. What do you do here? You have to have I and then transpose of this matrix. Ok. So, in this case, it's not too hard. So, you see, you generate a matrix. I am 1, 1, 0, 1. Ok. So, you transpose that matrix together. So, both codes. Right. And that is in systematic form. And the two parity check matrices should basically H1 itself. Right. So, it's the same matrix H1 as this one. Ok. So, that's the first question. The second question is also a very generic question. What is given as a generator matrix? Ok. The generator matrix is slightly big. Let me write it down. 1, 1, 1, 1. 1, 1, 1. 0, 0, 0, 0, 0, 1, 1, 1. 0, 0, 1, 1. 0, 0, 1, 1. 0, 1, 0, 1. 0, 1, 0, 1. Then 1, 0, 0, 1. 1, 0, 1. Ok. So, hardly complex looking generator matrix. The first question is to find n and k. Ok. So, given a generator matrix, how do you find n and k? What is n? n equals number of columns. And that is simply k. Ok. So, that's very easy. What is k? k is the rank of g. Right. So, you have to find rank of g. How do you find rank of g? You have to do this in elimination. Am I right? All right. So, or you have to cleverly come up with some answer. Ok. So, please just know. I say cleverness here. I will do the first in elimination. That's all. You do first in elimination, you get the answer. You can also reorder the rows and then do it a bit bigger if you like. But you should do that. That's the step. Ok. So, you do that. I am sorry. It's 4. It's 5. It's 4. How do you know the first 4 rows are linearly independent? You did something like that. Ok. So, I guess if you do linear Gaussian elimination, you will get rank of g equals 4. Ok. So, this you have to do by Gaussian elimination. Ok. So, you do that, you get 4. The next question, part b is ask you to find the minimum distance of this 4. How will you find minimum distance of this 4? I am sorry. Well, you can try that. But maybe you can do it very directly. What would be a very direct method? Yeah. List out all the code words, find the code word with minimum weight. Ok. So, that is like for a small code, that's no big deal. There are 16 code words in this code. Just list out all the code words and find the code word with minimum weight. So, the find minimum distance of the method was list out code words. Ok. So, what are 16 as one? Find minimum weight. Ok. What's the number? What do you think the answer will be? Hmm? Ok. So, the answer here depends on what you throw it. Ok. So, what you have is 184 code words. Ok. Ok. So, let's keep going along. The third question is also very interesting. I will give you a list of properties of the hamming distance and all that. I think it's good to go through. Ok. So, let's say u and v and w. Ok. So, each, these are binary amplitudes. Binary like how it's supposed to be. So, the first part for a diamond class. It says the hamming distance between u and v equals weight of u x or v. Right? So, that's an easy result for a diamond class. Ok. So, a distance between u and v is number of places in which they differ. u x or v is one whenever they decide in that place and it is zero otherwise. Weight is the number of ones in it which is exactly the same. So, both left hand side and right hand side refer to the very exact same point. Ok. So, that we will show. Ok. The next thing is the following. You define another vector u star v which is u and v1, u2 v2, u and vm. Ok. What you have to show is the following. The hamming distance between u and v is weight of u plus weight of v. Ok. When we are hamming distance between u and v will be equal to weight of u plus weight of v. If there are. If there are. Yeah. There should be no common ones. Right? So, no position you should have. One minute. Both the player, both the vectors. Then you have hamming distance being equal to weight of u plus v. But in general, ok, you cannot write this equation. Ok. So, you have to subtract something from it. What will you subtract? It is just weight of u star v. 2 times the weight of u star v. Why is it 2 times? Because in weight of u you are adding it once and in weight of v also you are adding it once. Ok. So, you have to subtract 2 times weight of u star v. Ok. So, this say remember this is what it is actually weight of u plus v. Right? Ok. So, this gives you an interesting result. Which is what is path c. Path c is kind of a corollary to path b. It says if weight of u and weight of v are even. Ok. If you have 2 even weight vectors, what has to be the weight of u plus v? U has to be even. Ok. So, it is a bit of a not maybe not immediately obvious result. There are 2 vectors of u and weight. Whatever happens you add them up. You will always have only an even weight difference. Ok. So, it is maybe it is not obvious. So, compare this is here and for that the proof is just the sequence. Ok. So, u is even v is even 2 times something is always even. So, clearly sum of 2 even numbers minus another even number will be eventually another even number. Ok. So, next result is what is known as triangle inequality. dhwv is first one is equal to dhww plus dhwv. Ok. On form of the triangle inequality. Ok. So, again in words this proof is very easy. If I also write it down it is not very hard. Ok. So, the way you argue is dhwv is what? Number of places in which u and v differ. Ok. So, this case number of places in which u and w differ. This is number of places in which w and v differ. And there is no way this sum can be smaller than the sum of u and v. Ok. So, that is some argument you can make in words. But if you want to write down a proof what can you do? You want to do a very precise proof. Ok. So, you can do that. So, that is a that is something you can show that this plus this will be this guy plus something else which is possible. So, you can show that. So, you can show that this is d greater than or equal to that. Ok. Think about how you might want to do it. You can do it in you can do it in so many ways but it is not so hard. So, think of it. So, the way to think about it is you have u as a vector or v as a vector or w as a vector ok. These are all vectors. And this is the distance between u and v. This is the distance between w and u, w and v. Oops. That is why I said it was the triangle inequality. Ok. So, this distance is smaller than going from there and coming back there again. Ok. So, one way of arguing it you start with u. Ok. You flip as many bits as needed to go to w. And then from w you flip as many bits as needed to go to v. Ok. The sum of these two is definitely greater than or equal to the number of flips needed to go from u to v directly. It is just one way of going from u to v. Ok. So, many other ways. So, it is always least as large as the minimum number of flips needed to go from u to v. Ok. So, that step could be another way of arguing it. Ok. Think of it as going from u to v. You are flipping as many bits needed to go from u to v. The minimum number of flips needed is dh of u, w. But how else can you go from u to v? You go from u to w first. How many flips do you need for that? Minimum number is dh of u, w. Then you go from w to v. How many flips do you need for that minimum? dh of w, w. So, sum of these two flips must be greater than or equal to the minimum distance. Ok. So, that is your idea. Ok. So, it is not too hard to write down. So, you can write it down like that. The next place might be a little bit more obvious. dh of u plus v is greater than or equal to dh of u minus dh of u plus v. Yeah. So, maybe he is suggesting that these two are the same. Are they the same? Yes. How are they the same? Same. I am sorry. They are the same. They are the same. Ok. But then, do we use the same problem? Ok. So, you can see, you can set w as something suitable so that this k becomes dh of u comma w. And then this k becomes dh of w comma v. The notation is a bit confusing, but you know what I mean, right? So, this is the same picture. And then here, you can get dh of u comma v. So, you can reassign it suitably so that you get that. So, this is basically the same equation as this in this case. Ok. Or you can also prove this directly. It is not too hard to prove it directly. So, you think of u and think of v. There will be some overlap between u and v. There will be no overlap also. When you do u plus v, the overlap go away. And what is not overlapping will remain. Ok. So, if you do weight of u minus weight of v. You have to only subtract the places where it overlaps. It is subtracting much more. So, it will be large. That is another way to argue it out directly also. So, you can also argue this directly. But it is also a consequence of the triangle inequality. It is not anything. Ok. So, the way you want to write down a proof, if you write down u and then you write down v and say the overlap between u and v is in such and such places. Now, weight of u plus v you can precisely write. Weight of u also, you know, weight of v also, you know. And you can show the subtractions. It will be smaller than the weight of v. Ok. So, that is a direct proof. Ok. So, that is about. So, this is probably an interesting result. In fact, the two even weight vectors always have to give you another even weight vector. It is not too difficult to prove. Ok. So, I will give you another way to think about it. Let me go back and comment on that. So, we have a vector v which is v0 v1 vn minus 1. Ok. Suppose I know the weight is even. Ok. Suppose the weight is even. One more way to think about this, which is another reason why that property, means one more way of proving this property. If you think of this v as a polynomial, a binary polynomial, v1x plus, vm minus 1 x bar n minus 1. Ok. Weight of v is even is equivalent to something about this polynomial. What is the property of polynomial? Then, where are the weight vectors? One is a root. Right. So, we have weight of v is even. The same as. It is different only if v of 1 equals 0. Ok. So, one is a root of v of x. It is an only if. Weight of v is even. Ok. So, what does it mean to say one is a root? x plus 1 divides v of x. Ok. So, if you have u of x which is weight even, means u of x is a multiple of 1 plus x. v of x is weight even. Again, v of x is a multiple of 1 plus x. What happens if you do u of x plus v of x? You will again get 1 plus x product also. So, it will also be a multiple of 1 plus x. It means its weight will also be even. Ok. So, 1 plus x is a nice factor which brings out the even weight characteristics of vector. Ok. So, in terms of polynomials, this is another way of proving that even weight stuff. Ok. Alright. So, let us move on to problem 4 which is a little bit more interesting. Ok. So, this question asks you to construct n comma 8 comma 4 code with minimum n. Ok. So, you construct h for n comma 8 comma 4 code with minimum possible n. Ok. How would you go about doing something? Ok. Ok. No, I mean you have to construct. You cannot just say n should be at least 12. That is not a construct. Ok. Ok. So, you have to do some construction of paradigm matrix. Right? For 3, the answer is very easy. Right? So, usually if you have n 8 4, it means you can also think of some n minus 1 8 3. Right? How will you get an n minus? If you have an n minus 1 8 3 with minimum possible n minus 1, that will also give you, that can give you potentially an n 8 4 code with maybe minimum possible n. Maybe then after that you can convince yourself that will give you minimum possible n. Ok. So, let us try that. So, first thing to do here is to construct a. So, first step is to construct a for n minus 1 8 3. Ok. So, this is a crucial idea. How will I go from n minus 1 8 3 to n 8 4? Extend. Where do I extend? Extension will take me to n minus 1 8 3. Ok. So, the next step is extend to get. Ok. The fact that you cannot get a smaller n for which this will be linear is something that needs proof. But this seems like a reasonable idea. I mean, you may not want to prove this very rigorously. Maybe you can prove it. Maybe it is possible to prove it also. But this is how it will work. Yes, it is a very nice way of constructing it. And this will be quite minute. Ok. So, how do you do this? How will you construct n minus 1 8 3? See, for 3 what is the idea? When you construct palliative check matrix, what should happen? There is a way to construct columns of palliative check matrix. Say, what is the property that the columns have to satisfy to have minimum distance 3? No 2 should be same. No 2 should be same and 0 should not be there. There should be no 0 column. No 2 columns should be the same. So, I need 8 distinct columns. What are columns? Columns are some weight vectors, same weight vectors. How can I get 8 distinct non-zero columns with minimum number of, minimum length? No minimum number of entries in the column. You see the question I am asking. So, suppose I want to construct a hedge. Ok. I want 8 distinct non-zero columns. Ok. So, what is the minimum number of rows I need? I don't think you need. It's not so complicated. 4, right? Answer is 4. That's all. I think the best answer is just 4. It cannot be 3. So, you start from 1, 2, 3 and eliminate. It cannot be 1 obviously. It cannot be 2. It cannot be 3. What can it be 3? You have 8 different 3 weight vectors, but then all 0s also pop up. So, you can't pick 0. So, you need 4 minimum. So, 4 there are several possibilities. So, you need 4 minimum rows. So, what does it mean to say you have 4 minimum rows? What will be n minus 1? That kind of makes sense. So, I think this 8 distinct was not correct. So, let me go back and fix this. What you really need is n minus 1 distinct non-zero columns. So, you need n minus 1 distinct non-zero columns. And then what do I want? I want k to be equal to 8. Which means what? I said this is r. So, sorry for this complicated mixture here. So, I want n minus 1 distinct non-zero columns. Suppose I have r rows, I want k equals 8. So, let's say this is a full run. So, let's assume that this is full run. Then what is k? n minus 1 minus r. So, n minus 1 becomes 8 plus r. Am I right? So, you want 8 plus r distinct non-zero columns in your characteristic matrix. Now, we start with each r and see when it's best. Before r equals 1, you need 9 distinct non-zero columns with one row. It's not going to happen. Before r equals 2, you need what? 10 distinct non-zero columns with just 2 rows. It's also not going to happen. Before r equals 3, you need 11 distinct non-zero columns with just 3 rows. That's also not going to happen. But if you put r equals 4, it works out. You have 12 unique 12 distinct non-zero columns with 4 rows. And that's possible. So, this is possible for r equals 4, 5, etc. So, minimizing n minus 1 is the same as minimizing r. So, you just minimize r and pick r equals 4. So, that's our choice and you can fill out the n minus 1. So, you can do it in multiple ways. One way of doing it is to simply take 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0. Is that enough? Is that 12? 4, 8, 12. And then what do you do? Oh my God. Then what do you do? You have to extend. What is extending? You put a 1 all the way below and then you put 0. So, for this paradigmatic matrix, so this way is what you construct out. Look for 3 and then the extension is finally n minus 1 plus 1. So, the number of rows is 5, not 13 columns. So, the smallest one n for which is possible is 3. So, of course, I mean this needs some more proving to say that 12, 8, 4 does not exist. You have to kind of show that's not possible to get 12, 8, 4. So, one way of doing it is to take 12, 8, 4 and if you say what is the opposite of sharpening, functioning is sharpening, right? Extending you have to shorten. So, you put, not shorten. What is the thing? No, no, no, no. You puncture it. You puncture it. Suppose you puncture that 12, 8, 4 columns. You will get a 11, 8, greater than or equal to 3 columns. Let's say you get a 11, 8, 3 columns and that's not possible. You cannot have a 11, 8, 3 columns. That you can easily show. So, that's the solid we are showing that 12, 8, 4 cannot exist. Is that clear? Okay, so that's the next proof. So, you say you have a 13, 8, 4. You can show the 12, 8, 4 cannot exist. How do you do that? Suppose somebody gives you 12, 8, 4. You puncture one of the bits. You will get 11, 8, at least 3. But 11, 8, 3 is not possible. Why is 11, 8, 3 not possible? You have just 3 rows. You cannot have 11 distinct non-zero columns. It's not possible. So, you can show that 11, 8, 3 is not possible and that you conclude your proof that 13, 8, 4 is the best possible. Okay? So, it could be that 11, 8, 3 itself is not possible. I will leave it at 11, 8, 4. So, if you want, you can prove that also. If you don't have an MKD code, you cannot have an MKD code. MKD code is also inside that. Okay? So, the question also asks you to go ahead and do the following things. 16, 4 and N32, 4 with minimal N. Okay? So, I will do that. That's the idea here. For N16, 4, what do you need? N minus 1, 16, 3. Okay? So, there again, you have to keep arguing. So, you have to start with 1, 2, 3, 4, maybe for 5 it's possible. Okay? R equals 5. You can have, yeah. I think you can have an N minus 1, 16, 4, 4. So, that would be N minus 1 equals 21, right? You can have a 21, 16, 3 code. Am I right? 20, 16, 4 is not, 3 is not possible. So, 21, 16, 3 is possible. So, from there you go to 22, 16, 4. Okay? Then you have to again argue that if somebody gives you a 21, 16, 4 code, you can start and then go to a 20, 16, 3, which you know is not possible and show that this is. Okay? So, you can show that the same thing for M32, 4 also. Okay? So, this is a way to construct with the guaranteed minimum distance. So, you see the crucial idea is for minimum distance 3 we have a good handle on the best possible parameters. A very solid handle on the best possible parameters. A linear code thing. What non-linear codes? It's more tricky, but linear codes you have a very good handle on it. Okay? All right. So, the next question, question 5 asks you to find Okay? So, this we did in class. Okay? In quite some detail, but anyway. So, the question is to find dual of M1 and repetition code. What is the dual? What is the dual? N. N minus 1. 2 even weight code. Right? So, that's the dual. Part B asks you to find the dual of the even weight code. What is the dual of the even weight code? We can go back to this. Part B and Part B, yeah. Quite a link. This question is quite easy. Okay? The next question is as follows. Okay? So, there is a code C. It has a generator matrix that is invertible. Okay? Has an invertible generator matrix G. So, what does it mean? What is G? What is C? So, G has to be squared. Not only squared, it's also invertible. So, what does it mean? Yeah. Fill rank. Okay? So, G is a N plus N matrix. With rank equals N. So, what will be the code that is generated by G? That implies C equals, what will it be? Identity code, right? So, it will be identity code, isn't it? What? The entire NB will be directly like this. Okay? See, it will be that. Okay? So, it's as good as having an invertible generator matrix. It's as good as having a generator matrix which is equal to the identity. So, any basis equal. Okay? So, the next question is a little bit more involved. So, you have two codes, M1 K D1 code which has a generator matrix G1. Then you have an M2 K D2 code which has a generator matrix G2. Okay? So, now I'm going to concentrate the new code with G equals G1 G2. Okay? So, remember, this is a well-defined operation because what is the dimension of G1? K cross N1, what is the dimension of G2? Again, same number of rows, the problems is different. So, this is a perfectly fine concatenation. MATLAB will not complain against this. Okay? So, whatever the dimensions of G, K cross N1 plus N2. Okay? So, the question is what are N, K and D for code with generator matrix? Okay? So, what would be N, K and D? What is N? N is N1 plus N2. It's very easy. What about K? K is equal to K. How do you argue? I mean, you have to argue that rank of G equals K. Okay? So, that's reasonably clear because G1 itself has rank K. So, G2 also has rank K. So, clearly, if we put these two together, rank is not going to go down. Okay? So, G equals rank of G and that will be equal to K. Okay? There's no problem. Okay? So, that means some argument. Okay? So, you can argue that... So, if you want a very clear argument, you can say there are K columns of G1, which are linearly independent. It means there are K columns of G which are also linearly independent and that gives you rank equals K. Okay? Rank cannot be greater than K, right? Why can't rank of G greater than K? There are many K rows. We cannot have rank greater than K. Okay? Why are there minimum distance? Okay? So, here's a claim. The claim is minimum distance equals... equals... we want to go up to G2. Are you saying equals? Yes. Okay? So, you're saying greater than or equal to? Is it? No. Reasonable claim? Yes. Less than or equal to? Okay. Somebody is arguing that this cannot be true. But I think to believe greater than or equal to. Okay? So, how do you go about proving something like that? So, suppose I say I believe greater than or equal to D1 plus D2. Okay? You have to prove it, right? So, let's see. How do you prove it? So, you have to prove something about some property. First thing is you have to think of the definition of the property. Okay? So, you might have been used to engineering ways of thinking about computing and all that. First thing is definition, right? Yeah. So, you have to think of definition, right? So, what are the definitions for minimum distance that you know? What is the first definition? Minimum distance between any two codewords. What is the other definition that you know? Minimum weight of a non-zero codeword. Okay? Usually the minimum weight of a non-zero codeword is a much more usable definition. Okay? Suppose, how do I think of a minimum non-zero codeword of G? Okay? I have to take a non-zero m and multiply with G. Okay? So, if I take a non-zero m and multiply with G, what do I get? m times G1, G2. So, that would be the same as m G1, m G2. Do you have the... Okay? So, I can just compare it again. Multiply it separately and compare it. It's same as metric multiplication. So, m is non-zero. What is this? This is non-zero. What is this? This is also non-zero. But what do we know about m G1? m G1 is a codeword of the first codeword, which means weight is at least D1. Okay? Weight is at least D1. What about m G2? Weight is at least D2. Both of them are non-zero. Okay? So, clearly weight of m G has to be greater than or equal to D1 plus. Okay? It's the weight of this plus weight of that. It has to be greater than or equal to D1 plus. When will you have equality in this bound? Yeah. So, when you have the same message generating a minimum codeword weight in both the first codeword and the second codeword, then it will be equality. Otherwise, it will be strictly inequality. Okay? So, that's the way to go. Okay? So, here's the next problem. I'm going to use the same G1, G2, but then construct it differently. Okay? G1, 0, 0, G2. Okay? So, remember whatever dimensions here, G1 is k cross m1. G2 is k cross n2. Okay? So, the 0s, you must expand suitably. Okay? So, this 0 will be a k cross n2, 0. This 0 will be a k cross n1, 0. Okay? So, that expands suitably. So, what will be nk and d4? This k. Okay? So, n is easy. n is going to be n1 plus n2. What about k? Okay? So, 2k. I think it's 2k. So, let me not write k. I'll say dimension. Or maybe rank of G. Equals 2k. How do you say that? That's k. Yeah. Yeah. So, that's the thing. So, you have to take the k independent, linearly independent rows of G1. You know they're linearly independent. So, k rows of G2 are also linearly independent. So, you put 0 and 0 here. So, together also they have to be linearly independent. If you want, you can prove that. If there is like a linear combination of this which is 0, then there should be a linear combination of G1 which is 0. There should be a linear combination of G2 which is 0. And that can only happen if all of them are identically 0. So, there has to be rank of k plus k which is 2k. So, you can prove it that way. What about minimum distance? So, it will be equal to d1. Did you say d1? So, the correct answer here is minimum of d1 comma d2. So, once again you have to first think of all possible non-zero codewords. So, if you have all possible non-zero codewords here, you're not doing m times G here. So, it's a different kind of computation. So, when you do 1 times G, you're not doing mG1 and mG2. You're doing what? See, you have to split mS, m1 and m2, each being kk each. And then this will become m1, g1, m2, g2. And m1 and m2 are chosen independently. So, what you can do? You can put m2 as 0 and keep m1 alone as non-zero and generate a non-zero codeword of the bigger code. You can do that. So, if you want mG to be non-zero, it's necessary. Either m1 or m2 is non-zero. Both of them may not be non-zero. So, you pick m1 as 0 and you let m2 be non-zero. What's the minimum possible rate you can get? You can definitely get d2. There is an m2 for which the rate will be d2. Similarly, you put m2 as 0 and then you put non-zero m1. There will be a codeword for which you will get minimum possible d1. So, why am I arguing this is an equality? How can I say that there will be an equality here? How can there be no other codeword with both m1 and m2 being 0 having weight lesser than minimum of m1, d2? Is it possible? It's not possible. You can quickly roll out. If both m1 and m2 are non-zero, and usually they are both non-zero, so at least d1 here, at least d2 here, the weight will be greater than or equal to d1 plus d2. So, it's going to be much larger than minimum of d1. So, this will be an equality. I also know it's an equality. How do you know it's an inequality? Equality is not a burden. I can actually achieve it. d1 is lesser. I pick m2 as 0, and I pick m1 as that message, which gives me one of the minimum weight codewords for the first code. I can do that. I know that happens. So, I can maybe equal it. So, this is generator matrix. And the one question which is, I think it's not there in the test page. It's there in my later updated version. So, I'll change it tomorrow. So, it's kind of similar in spirit. So, I'm going to take five more minutes. Is that okay? Sorry about that. I've been missing too many classes. So, this is problem 20, which is currently not in the test page, but I'll put it up soon. So, here what we do is, we have two paradigmatic matrices. H1, which is i n minus k p1. And H2, which is i n minus k p2. So, this is a parity check matrix for an nk3 code. This is a parity check matrix for an nk5 code. So, these are two systematic parity check matrices for an nk3 code and nk5 code. Now, what I'm going to do is, I'm going to construct like the four or two codes. I want to construct a code with a parity check matrix sequence. So, the reason why this happens is I'm not managed to figure it out. Okay, I'll go to the next page. I want to now think of a code with a parity check matrix, H1, H2. Okay, so remember what was H1 and H2. Okay, so what happened for a code with a parity check matrix that equals H1, H2? So, first thing that's easy to find is n, right? What is n? 2n, right? So, what is n plus 2n? 1 plus 2n. What about dimension? Okay, right? So, rank is going to be rank of H is n minus k again, because you have i n minus k sitting right there. So, dimension is going to be k. What about minimum distance? Less than or equal to 3. Okay, so this is part a. And part b is very simple construction, where you do H1, 0. 0, okay? So, once again, we have 11th will be 2n, what will be the dimension? 2k, right? It's going to be 2k. What about b? 8, here it's 8. What is it here? 3 less than or equal to 3 or equal to 3? Yeah. So, it's equal to 3 here is not very easy statement to make. We need proving, right? Because you could have a column of, you definitely have columns of H1, which are equal to columns of H2. Don't you have? What are the columns? i n d d is equal, right? So, what should be the minimum distance? It should be equal to, okay? So, it's the factor when you put things together like this, okay? Minimum distance is equal to 2, okay? It cannot be lesser than 2 because you'll never have an algebra column. Individually, they have, they don't have good, they don't have minimum distance. Once it cannot have an algebra column, but clearly one column of H1 is equal to another column of H2, right? So, there are two columns of H which are identical. This is i, i is there, right? So, there are several of them. Minimum distance will be 2. Here, 8 is correct or not? Think about it once again. You can split that more if you see once again. So, once again, remember the first thing to remember when you answer such questions is think about the definition of what you are trying to prove, okay? So, that's how you prove things in even applied mathematics. You have to think about the definition of what you are trying to prove. What is the definition of minimum distance with respect to the paradigmatics? What is the property that connects it? Minimum number of columns that are linearly dependent in H, okay? So, think about that. Don't think of C1, C2 putting it together. You can do that way also, but it's kind of a dangerous slope. You cannot very carefully miss out something that is very plain and obvious, okay? The best and direct definition to use in these things is minimum number of linearly dependent columns. So, clearly in H, there is no one column which is linearly dependent. Are there two columns in H which are linearly dependent? For the first part, yes, the answer is clear. Okay? So, immediately you see minimum distance has to be 2. What is the same thing for H in this form? 3. There are three columns of H1 which are linearly dependent. And then once you have 0, okay? It doesn't change linearly dependent in any way. Okay? So, D equals 3 for this. Can there be less than 3? It's not possible. So, you cannot have one column from H1, another column from H2 being linearly dependent because they have 0s different. Okay? That cannot happen. Okay? So, minimum distance will be 2. Okay? So, think about these things. It's interesting. We'll stop here for now. Thanks for the extra time.