 r parity bits. p(x) is computed as the remainder polynomial after x'd(x) is divided by g(x). c(x)=x"d(x)+p(x) (4.12) Given the received codeword, represented as a polynomial r(x), the decoder calculates a syndrome polynomial, s(x), which is used for error detection and correction. s(x) is also calculated as the remainder after a division. These polynomial division operations are effi- ciently implemented in the way described in the next section. Implementation of Cyclic Coders and Decoders Cyclic coders and decoders are implemented using Linear Feedback Shift Registers (LFSRs). The general form of a systematic cyclic coder for the code is shown in Figure 4.1, with gen- erator g(x) given by equation 4.13. (4.13) All multiplications and additions are in GF(M) (i.e., modulo-2 for binary digits). The rectangular boxes are latches that store digits; there are r multipliers and latches. The latches Chapter 4 Coding In = d(x) 0 2 to 1 Out t==((c)x) 1 MUX Fig. 4.1 general form of a systematic cyclic coder. In = d(x) 2 to 1 Out = c(x) Fig. 4.2 Systematic binary cyclic coder. are initially cleared. During the first k cycles of operation, control line C is ON and SO AND gate G is open and the k digits of the dataword are fed through multiplexer M to the output. In the last r cycles of operation, C is OFF and SO gate G is closed and the r values stored the shift register are sequentially output through M. The function of this circuit is equivalent to the polynomial division xrd(x)/g(x); the contents of the shift register after the kth cycle are the remainder. For binary coders, multiplication by 0 is equivalent to removal of the corresponding path and adder, and multiplication by -1 or +1 is equivalent to a direct connection to the adder input. Each modulo-2 adder is an XOR gate. Hence, the systematic binary coder for the (7,4) code with the generator polynomial given by equation 4.14 (which would be rep- resented in tables as 1011 in binary or 13 in octal) is as shown in Figure 4.2. g(x)=x3+x+1 (4.14) The decoder calculate