 and cost of the coder and decoder. Block Coding In an (n,k) block code, blocks of k input digits are mapped to blocks of n digits for transmission. Single-Parity Checks The simplest block coder appends a single-parity digit to each block of k message digits. This produces a systematic (k + 1,k) code known as a single-parity code. For binary digits, the parity can be the modulo-2 sum of the message bits; this is known as even parity because the sum of the k + 1 bits of the codeword (including the parity bit) is 0. If the polarity of the parity bit is inverted, that is known as odd parity. The decoder forms the sum of the bits of the received codeword. A correct codeword produces a sum of 0, SO a sum of 1 means that there has been an error, although there is no way to deduce which bit(s) are in error. Thus the error cannot be corrected. Also, if more than one error occurs, and the number of errors is even, the sum will be 0 and SO the code will not detect them. This is therefore a single-error-detecting (SED) code. Linear Block Codes The even-parity code is the simplest example of a powerful class of codes called linear block codes. For such codes, the block of k message digits is represented as the k-element row vector, d, and the n digit codeword produced by the coder is represented by the n-element vector, C. The function of the linear block coder is described by equation 4.1, where G is the (k X n) generator matrix. (4.1) The multiplications and additions in this equation are carried out in GF(M) arithmetic (i.e., modulo-2 for binary digits). The codewords generated by the equation are called valid codewords. Because there are 2k possible datawords, only 2k of the 2n possible n-digit words are valid codewords. Systematic linear block codes are produced by a generator matrix of the form shown in equation 4.2, where Ik is the (kxk) unit matrix. G=[Ik|P] (4.2) When G has this form, the codeword C has the form of equation 4.3. In other words, the first k digits of the codeword equal the dataword and the last n - k