# Information Coding Systems: Error Checking and Correction

## Information Coding Systems: Error Checking and Correction

#### Understanding Error Checking and Correction

• Error checking and correction procedures are critical for ensuring data integrity during transmission or storage. Potential errors may arise due to noise or inherent flaws in the system.
• Two common methods for error detection are Parity Checking and Check Digit. Both approaches involve adding additional bits to the original data, helping in checking and validating it later.
• The Checksum method and Cyclic Redundancy Check (CRC) go a step further by not only detecting errors but also correcting them. However, these methods involve more complex computation.

#### Parity Checking

• Parity checking adds an extra bit, called the parity bit, to the data, ensuring that the total number of 1-bits is either always odd (odd parity) or always even (even parity).
• For instance, if the data is ‘1011001’ and we are using even parity, the added parity bit would be ‘1’, making the total number of 1-bits even (four in this case).
• Parity checking is simple and efficient but can only detect an odd number of bit errors, limiting its effectiveness.

#### Check Digit

• A Check digit is an additional digit appended to a number, calculated from the digits. Its purpose is to check the accuracy of the other digits.
• For instance, in barcodes, the last number is often a check digit calculated using a specific algorithm from the previous digits, enabling detection of errors.
• This method is commonly used in various identification numbers elsewhere such as ISBN numbers for books, IMEI numbers for mobile phones, and so on.

#### Checksum and Cyclic Redundancy Check (CRC)

• A Checksum consists of performing a computation on the data and sending the result along with it. The operation is repeated at the receiver’s end and the results are compared for any disparities.
• The Cyclic Redundancy Check (CRC) is a more advanced and accurate error detection and correction method. It involves treating the data as a large binary number, dividing it by a fixed binary number and keeping the remainder as the CRC.
• The sender attaches the CRC with the data. The receiver performs the same computation on the received data. If the CRCs do not match, an error is identified.
• Note that while CRC is a very successful technique, it is unable to correct the errors – it can only detect them.

#### Error Checking and Correction in Data Transmission

• Error checking is crucial in data communication systems such as the internet where data might get corrupted during transmission.
• Error correction is equally important as it saves the cost and time of resending the corrupted data, especially in case of large files or when data has to be sent over significant distances.
• However, these mechanisms add overhead and complexity. Hence, an optimal balance needs to be struck between data integrity and system performance.