What is Hamming Code : History, Working and Its ApplicationsIn digital systems, the transmitted data for communication can be corrupted due to external noise and any other physical failures. If the transmitted data is not matched with the given input data, then it is called an ‘error’. The data errors can delete vital data in digital systems. The transfer of data will be in the form of bits ( 0 and 1) in digital systems. If anyone of the bit is changed, then the entire system’s performance can be affected. If the bit ‘1’ is changed to the bit ‘0’ or vice versa, then it is called bit error. There are different types of errors like single bit errors, multiple errors and burst errors. In this article, we discuss error correction and detection, and hamming code.What is Error Detection and Correction?In digital communication, the data will be lost if there is an error in the transfer of information from one system/network to another system/network. So, it is important to find and correct errors. Some error detection and correction methods are used to detect and correct the errors for effective communication. If these methods are used, then the data can be transferred with higher accuracy. Error detection is defined as, the method used to detect the errors transmitted from transmitter/sender to receiver in digital systems. Redundancy codes are added to the data during the transmission to find the errors. These are called error-detecting codes.Error correction is the correction of data transmitted from transmitter to receiver. Error correction can be done in two types.Backward Error CorrectionIn this type of error correction, the receiver requests back the sender to retransmit the data if the receiver detects the error.Forward Error Correctionif the data received by the receiver finds the error, then it executes the error-correcting codes, to correct and recover the data automatically. If there is ‘m’ no.of data bits and ‘r’ no.of redundant bits, then the combinations of information will be 2r.2r > = m+r+1 Types of Error Detection CodesThe errors in the received data can be detected by using 3 types of error detection codes. They are, parity check, cyclic redundancy check (CRC) and longitudinal redundancy check.Parity CheckThe redundant bit called parity bit is added to make the no.of bits even or odd in case of even parity or odd parity. The receiver counts the no.of bits ( 1’s) in a frame to add the parity bit. This is called parity checking. If the no.of 1’s in a frame is even, then even parity is used by adding the bit ‘1’with zero value. Similarly, of the no.of 1’s is odd, then the odd parity is used by adding the bit with value ‘1’.error-detectionHence, it is used to ensure that the frame/date received by the receiver from the source is not corrupted. In this type of error detection, the no.of 1’s should be even in the received frame. It is very less expensive among all types of error detection.Longitudinal Redundancy Check(LRC)hen the set/block of bits are organized, then the LRC method can be used to check the parity bit in every frame. It helps to send the set of parity bits along with the original data and checks the redundancy.Cyclic Redundancy Checkhis type is used to detect the data/frame received from the source is valid or not. It involves in the binary division of the data that should be sent and uses polynomials (to generate divisor). Before the transmission, a division operation is performed by the sender on the data/bits/frame to calculate the remainder.cyclic-redundancy-checkDuring the transmission of actual data from the sender, it adds the remainder at the end of the actual data. The combination of actual data and the remainder is called a codeword. The data is transmitted in the form of codewords. In this process, if the data is corrupted, then the data will be rejected by the receiver otherwise it will be accepted.What is the Hamming Code?Hamming code is defined as, a linear code that is used in the error detection process up to 2-intermediate errors. It is also capable of detecting single-bit errors. In this method, the redundant bits are added to the data/message by the sender to encode the data. In order to do error detection and correction, these redundant bits are added in certain positions for the error correction process.hamming-codeHistory of Hamming CodesIn 1950, Richard W. hamming invented Hamming codes to detect and correct the errors in data. After the evolution of computers with higher reliability, he introduced hamming codes for 1-error correcting codes and later on he extended up to 2-error detecting codes. Hamming codes are created because parity check cannot detect and correct errors in the data. The Hamming codes are inserted to any blocklength of data between actual data and redundancy bits. He developed an array of algorithms to work on the problems of error correction methods and these codes are widely used in ECC memory.Process of Encoding a Message using Hamming CodeThe process of encoding a message using a hamming code by the sender includes 3 steps.Step1: The first step is to calculate the no.of redundant bits in a messageFor example, if a message contains ‘n’ no.of bits and ‘p’ no.of redundant bits are added to the message, then ‘np’ indicates (n+p+1) different states.Where (n+p) represents the location of an error in every bit position1 (extra state) represents no error.Since ‘p’ indicates 2^p (2p ) states, which are equal to (n+p+1) states.Step2: Place the redundant bits in exact/correct position‘p’ bits are inserted in the bit positions which are the power of 2 like 1, 2, 4, 8, 16, etc. These bit positions are indicated as p1 (position 1), p2 (position 2), p3 (position 4), etc.Step 3: Calculate the values of redundant bitsHere parity bits are used to calculate the values of redundant bits.Parity bits can make the no.of 1’s in a message either even or odd.If total no.of 1’s in a message is even, then even parity is usedIf total no.of 1’s in a message is odd, then odd parity is used.Process of Decrypting a Message in Hamming CodeThe process of decrypting a message received from the sender by the receiver using the hamming code includes the following steps. This process is nothing but recalculation to detect and correct the errors in a message.Step1: Count the no.of redundant bitsThe formula to encode the message using redundant bits is,2p≥ n + p + 1Step 2: correct the positions of all redundant bits‘p’ no.of redundant bits are placed in a bit positions of power of 2 like 1,2,4,8,16,32 etcStep3: parity checking (odd parity and even parity)Parity bits are calculated based on the no.of 1’s in data bits and redundant bits.For ExampleParity of p1 would be 1, 3, 5, 7, 9, 11,…Parity of p2 would be 2, 3, 6, 7, 10, 11,…Parity of p3 would be 4-7, 12-15, 20-23,…Advantages of Hamming CodeThe main advantage of using a hamming code is cost-effective if a data stream contains single-bit errors.It can provide error detection and also indicates the bit which contains an error for correction.Hamming codes are very easy and best to use in computer memory and single-bit error correction and detection.Disadvantages of Hamming CodeIt is best only for single-bit error correction and detection. If multiple bits errors, then the entire can be corrupted.The Hamming code algorithm can resolve only single-bit errors.Applications of Hamming CodesHamming codes are used in,ComputingTelecommunicationsData compressionSolving puzzles and turbo codesSatellitesPlasma CAMShielded wiresModemsComputer memoryOpen connectorsEmbedded systems and processorFAQs1). Can the Hamming code detect 2-bit errors?Hamming codes can detect and correct up to 2-bit errors in a data stream2). How do you fix the Hamming code?Hamming codes are placed in any length of data between the actual data and redundant bits. These codes are places with a minimum distance of 3 bits3). What is the parity code?Parity code or parity bit is adding a bit to the received frame ( data contains 1’s and 0’s) to make total no.of bits (1’s) even or odd.4). What is the Hamming distance between the data?The hamming distance between the two different data streams of equal length is no.of 1’s.The hamming distance between two data strings of equal length can be calculated by using the XOR operation.For example, a=11011001b=10011101Hamming distance can be calculated as,11011001 ⊕ 10011101 = 01000100 (no.of 1-bits are 2)The hamming distance indicates the no.of 1’s in the resultant data streamSo, d(11011001, 10011101) = 2Similarly, 010 ⊕ 011 = 001, d(010, 011) = 1.5). Is Hamming code cyclic?Yes, hamming codes are equivalent to cyclic codes that can be used as error-detecting codes.Thus this is all about error correction and detection, types of error detection, hamming codes, the process of encrypting and decrypting the message using hamming codes, applications of hamming codes, advantages, and disadvantages of Hamming codes. Here is a question for you, ‘What are the applications of error detection and correction?” Share This Post: Facebook Twitter Google+ LinkedIn Pinterest Post navigation ‹ Previous What is a Single Phase Transformer : Construction and Its WorkingNext › Wha is an Owens Bridge : Circuit, Theory and Its Phasor Diagram Related Content What is a Carey Foster Bridge & Its Working What is WiFi Calling & Its Working What is a Spectrum Analyzer : Working & Its Applications What is the Splicing of Optical Fibers & Their TechniquesAdd Comment Cancel replyComment:Name * Email * Website