top of page
All Posts: Blog2

[Math Evenings] ECCs and Hamming Codes

From working at home to online lessons, never have electronic signal transmission been more relevant to our lives than the time of the Coronavirus outbreak. The way in which information is sent from one to another is quite widespread knowledge; wired, optical, or electromagnetic waves would often be the means to transmit information to another computer. But...is it really that obvious?

**Vsauce music starts**

Often, when we transmit information from one electronic gadget to another, the information is corrupted due to external factors from scratches on a CD to atmospheric interference. Hence, Error Correcting Codes (ECCs) are embedded within our transmission systems so computers can modify the error to some extent.

Richard W. Hamming, the founder of the hamming code (left) is one that devised one of the most prominent forms of ECCs. The Hamming code functions by appending redundant information that is utilized to verify the data that has been transmitted.

The most well-known form of Hamming code is the (7,4) Hamming code among the vast family of hamming codes, a form where 4 bits of information is delivered and a total of 7 bits, including the redundant appended information, is sent. For the code to function, the transmitter notes down each of the bits into the overlapping areas of a venn diagram by arbitrary order. After that, the transmitter appends information so that the number of 1s in each circle is even.

Then, let us assume that noise of the environment corrupted the information as below. (Number in red)

The receiver begins to count the number of 1s in each circle. In the example, by knowing which circle does not have an even number of 1s, the code can immediately locate the error and change it, because the information is binary.

As noted above, it is possible to have any (2^m-1,m) Hamming Codes, and there is a vast family of Hamming Codes. More formally, a (2^m-1,m) Hamming code would operate as the following.

1. We place the parity bits at every power of two, and insert the message bits in between.

2. After transmission, we count the number of "1"s for a given set of bits.

3. Detect the error and correct the data.

However, the code also has its own limitations. In the case of the (7,4) Hamming code, it is unable to detect whether a burst error has occurred, and where a double error has occurred.

Hence, what most ECCs in real life do, is that they intersect the bits so that we are able to cross-check whether an error has occurred.

So next time, at a math camp, if you meet a girl that happens to really be your type, tell her "hey girl, are you a hamming code? Because you're so perfect," and she'll immediately fall for you.

15 views
bottom of page