(element 1)+0101 (element 2)= 0101 (element 2); and 1010 (element 3) + 1111 (element 4) 0101 (element 2); and SO on. Yes, every element sum leads to a new element. With the two rules satisfied, we can safely say that Table E6.1 can represent a linear block code. Table E6.1 A linear block code? 6.2.2 Understanding Why This unusual rule that a linear block code must satisfy might seem like a randomly chosen rule. But, as you will now see, this rule actually makes sense. To understand it, let's consider how we can build a block coder. The most obvious way to do it is shown in Figure 6.9. The block coder gets the 3-bit input, uses a look-up table, and selects a 6- bit output using its look-up table. How wonderfully simple. Until... There are some block coders that map each incom- Channel coder: uses look-up table ing 92-bit set into an output Input Output 110110 000000 127-bit set-a (127, 92) code. 001 110001 If we want to use a look-up 010 011010 table for this, we're stuck with 101011 having to construct a look-up 101100 table with one input-output 101 011101 pair for each possible 92-bit 110110- input, and there are about 111 000111 1028 possible 92-bit pairs. That makes for an unbelievably Figure 6.9 Channel coder built using look-up table large and expensive look-up table! With linear block codes, there is another way to generate the output bits given those input bits, and it's an easy method requiring a lot less memory. It works like this: you give me the input bits (let's say 3 input bits) in the form of a vector m (101), and I'll give you the output bits (let's say 6 output bits) in the form of a vector u = (011101) by using the simple matrix multiplication u = m G. (6.1) G is a k by n matrix of O's and 1's called the generator matrix. Also, whenever you do an addition when computing m G, you'll want to do a modulo 2 addition for the equation to work. You can only use this simple way to create an output from an input if you satisfy the linear block code rule we saw earlier. This is a handy way to generate Cha