Line 16: Line 16:
 
   
 
   
 
* '''How do Hamming Codes attempt to correct errors?'''
 
* '''How do Hamming Codes attempt to correct errors?'''
 +
Because of the limited redundancy that Hamming codes has put on the data, they can only detect and correct errors when the error rate is low. In computer memory, Hamming codes are widely used when bit errors are rare. Due to mess data transmission, transferred code words would contain errors somehow. The Hamming Code is designed to detect and correct errors in 4 bit transmissions. For example, we have transferred data is 1111010 and original data is 0001011. We need to have detection first see if this is Hamming Code. We could simply just go through the code. If it is one of the 16 code words, we know the transferred correctly. If it is not, we need to compare the data received with each code word and compute the Hamming distance for each. The Hamming distance is defined as the number of times a bit in the received message differs from the bit in the code word. So compare 1111010 with 0001011. Hamming distance is for in this case since they have 4 bits position different. Using the (7,4) Hamming Code Sheet to find all Hamming distance for each one, then we are able to get the Hamming code which produces the shortest distance for 1111010 is 1011010, which is also called “nearest” code word. This code will be the code used to correct the transmission error. If there is more than one shortest distance, we do not correct the message.
  
 
* '''Why would we want error correction in the first place?'''
 
* '''Why would we want error correction in the first place?'''
Line 24: Line 25:
 
References:
 
References:
 
[http://whatis.techtarget.com/definition/Hamming-code]
 
[http://whatis.techtarget.com/definition/Hamming-code]
 
+
[http://dimacs.rutgers.edu/drei/1997/classroom/lessons/hamming.html]
  
 
[[2014 Spring MA 375 Walther|Back to MA375 Spring 2014]]  
 
[[2014 Spring MA 375 Walther|Back to MA375 Spring 2014]]  
  
 
[[Category:MA375Spring2014Walther]] [[Category:Math]] [[Category:Project]]
 
[[Category:MA375Spring2014Walther]] [[Category:Math]] [[Category:Project]]

Revision as of 08:06, 26 April 2014

What is a code, and what could "error-correcting" mean?

Explain what Hamming codes are and how they try to correct errors. And why you would want that in the first place.

  • What is a code?

The most relevant definition for a code in this context, given by Merriam Webster, is the following: that it is "a system of signals or symbols for communication". Codes are, very commonly, obfuscated during communication such that only the sender and the receiver can understand their contents, but this is not a quality which belongs to all codes.

In essence, a code is just an agreed upon language which two people could use to communicate. The English language itself could be thought of as a code, especially when viewed from the context of someone who doesn't speak it. Another example is Morse code, which is used to communicate over analog radio signals. Finally, a common code that is used by computers in information exchange is ASCII/Unicode, which maps integer numbers to symbols in many languages. For instance, the number "1" in ASCII is not 1; it is 49.

  • What could "error-correcting" mean?
  • What are Hamming Codes?

Hamming Codes were invented by Richard Hamming in 1950. In general, Hamming code is a set of error-correction codes that can be used to detect and correct bit errors that can occur when computer data is moved or stored.[1] Hamming Codes are important invention. The simple parity codes cannot correct errors and can detect an odd number of bits error. Compared with previous simple parity codes, hamming codes can detect two-bit errors or less or correct one-bit errors. Hence, hamming codes are more effective.

  • How do Hamming Codes attempt to correct errors?

Because of the limited redundancy that Hamming codes has put on the data, they can only detect and correct errors when the error rate is low. In computer memory, Hamming codes are widely used when bit errors are rare. Due to mess data transmission, transferred code words would contain errors somehow. The Hamming Code is designed to detect and correct errors in 4 bit transmissions. For example, we have transferred data is 1111010 and original data is 0001011. We need to have detection first see if this is Hamming Code. We could simply just go through the code. If it is one of the 16 code words, we know the transferred correctly. If it is not, we need to compare the data received with each code word and compute the Hamming distance for each. The Hamming distance is defined as the number of times a bit in the received message differs from the bit in the code word. So compare 1111010 with 0001011. Hamming distance is for in this case since they have 4 bits position different. Using the (7,4) Hamming Code Sheet to find all Hamming distance for each one, then we are able to get the Hamming code which produces the shortest distance for 1111010 is 1011010, which is also called “nearest” code word. This code will be the code used to correct the transmission error. If there is more than one shortest distance, we do not correct the message.

  • Why would we want error correction in the first place?



References: [1] [2]

Back to MA375 Spring 2014

Alumni Liaison

Recent Math PhD now doing a post-doctorate at UC Riverside.

Kuei-Nuan Lin