ERROR CORRECTION Error Correction • Two ways of handling error correction – The receiver can have the sender retransmit the entire data unit – The receiver can use an error-correcting code • To correct the error – Locate the invalid bit or bits Error Correction r – redundancy bits required to correct a given number of data bits (m) - must be able to indicate at least m + r +1 states (no error, error in every bit position) - this is the required number of bits to cover all the possible single bit error r bits can indicate 2^r states Therefore, 2^r >= m + r +1 Hamming Code Hamming Code Hamming Code Example of Hamming Code Single-bit error Error Detection FEC – Forward Error Correction (From Tomasi) 2^n >= m + n +1 n = number of Hamming bits m = number of bits in the data character 1) For a 12-bit data stream of 1011 0001 0010, determine the number of Hamming bits required. 2) Arbitrarily place the Hamming bits into the data string. 3) Determine the condition of each Hamming bit. 4) Assume an arbitrary single-bit transmission error. 5) And prove that the Hamming code will detect the error. FEC – Forward Error Correction (From Tomasi) 1) n = 4: 2^4 >= 12 + 4 +1 16 >= 17 n = 5: 2^5 >= 12 + 5 +1 32 >= 18 2) H101 H100 HH01 0H01 0 3) To determine the logic condition of Hamming bits, express all bit positions that contain a 1 as an nbit binary number (ex. bit position 2 = 00010) and XOR them together. The result will be the Hamming code = 10110 1101 0100 1101 0001 0 FEC – Forward Error Correction (From Tomasi) 4) 1101 0100 1101 0001 0 Assume that an error occurs at bit position 3 1101 0100 1101 0011 0 5) At the receiver, determine the bit position in error, extract the Hamming bits and XOR them with the binary code for each data bit position that contain a 1. Hamming code = 10110 bit position 2 = 00010 bit position 3 = 00011 Bit position 3 was received in bit position 6 = 00110 error bit position 12 = 01100 bit position 14 = 01110 bit position 16 = 10000 00011 EXERCISES 1. For each of the data unit of the following sizes, find the minimum number of redundancy bits needed to correct one single bit error: – 12, 16, 24, 64 2. Construct the hamming code for the bit sequence 10011101 3. A receiver receives the code 11001100111. When it uses the hamming encoding algorithm, the result is 0101. Which bit is in error? What is the correct code?