coding techniques follow a set protocol which specifies the number of input bits to the encoder. A typical input size is a 7-bit sequence, with an output codeword of 8-bit length. The error correction coding process similarly takes at its input a block of data bits. The size the input data block may be fixed or variable depending on the class of the error correction code used. The encoder calculates an output sequence through a mathematical process and produces an extra set of parity bit sequence. This encoding process creates a mathematical relationship between the data, in that if one or more bits are received in error, then an error event may be detected. The mathematical relationship existing between the data block and the parity bits further means that a most likely transmitted sequence may be found corresponding to the received sequence, yielding a correct detection with high probability. Note that this pro- cess yields a most likely sequence if errors occur. Error correction decoding is the logical equivalent of the 'what I just heard does not make sense - it must have meant such and such'. Example 6.2 An example of an error correction coding technique is a repetition code. In this method a transmitted data bit is repeated n times. At the receiver side, any one of the transmissions may arrive in error. However, an overall error detection only occurs if the number of errors is larger than n/2. For example, if n is equal to 3, a 1 is transmitted as a '111', and a 0 as a '000' code- word. That is two redundant, non-information bits are added. If a receiver detects a '010' then it can conclude that it is more likely that a 0 than a 1 was transmitted. This is because it is more likely that one bit error '000' to '010' than two bit errors '111' to '010' have happened. Through this logical process the receiving decoder in effect corrects the '010' to '000'. Note that the receiver does not know with full certainty that indeed the middle bit was erroneously received. It only decides between the more likely of two p