ll be 1. If there is an error in one of the rows, then the sum will be 1 for that row. You can see clearly from the sums formed in Figure 6.7 that you can locate the exact column and the exact row indicating where the single error has occurred, SO you know what bit is in error. Knowing the bit in error, you can correct the bit by changing its value. There- fore, from Figure 6.7, we see that rectangular codes can easily correct one bit error. Now this is a nice thing, especially when compared to the case of a single parity check bit, where you could only detect an error but not correct it. As you can see, we are building up to more and more sophisticated block coders. sum = 1111 0001 1100 0110 bit in 1 error in row! error sum= 0100 error column! Figure 6.7 Channel decoder for rectangular codes Example 6.2 Given a rate (2x2) / (3x3) rectangular coder, determine the output for input bits 1101. Solution: First the four bits are mapped to a 2x2 matrix, and then parity bits are added along the columns and rows to make the sum of each column and the sum of each row 0. This is shown in Figure E6.1. Then, these bits are output serially (that is, as one long set), leading to the output 110 011 101. Channel Coding and Decoding: Part 1 -Block Coding and Decoding Figure E6.1 Determining rectangular code output 6.2 Linear block codes 6.2.1 Introduction In general, a channel coder grabs each k-bit set and throws out an n-bit set. Let's say it takes in a 3-bit set and it throws out a 6-bit set. There are eight possible 3-bit sets that can come in, whereas there are 64 possible 6-bit sets that can come out of the channel coder. Figure 6.8(a) shows one possible 3-bit to 6-bit channel coder. Figure 6.8(b) shows a second possible 3-bit to 6-bit channel coder. In either case, we see that each 3-bit set input to a channel coder is mapped to a 6-bit set at the output. But the difference between the two is that the 6 bits output when, for example, 111 comes in, are different for the two coders. In general, how would we decide which 6-bi