This is a guest post by Anandaswarup Gadde on simple idea in coding theory. I have made minor editing with the original version. Read on…Arunn
Coding Theory Part 1 by Anandaswarup Gadde
A simple technique in reliable communication is repetition.
Some (for example Claude Levi-Strauss) say that one of the roles of mythology is to pass on the values of one age to another and this is done through various myths which may seem different but often carry the same message. A similar idea occurs in coding theory initiated by Richard Hamming of Bell Labs in the late 40′s. Due to patent problems, his paper appeared in 1950, but the famous Hamming matrix appeared already in the paper of Claude Shannon: “A mathematical theory of communication,” Bell. Syst. Tech. J. (1948) [pdf].
The codes invented by Hamming are single error correcting linear codes and the original ideas are very simple. One of the easiest ways to communicate is by a switch by which we can communicate ‘yes’ (1) or ‘no’ (0). So, we can hope to send strings of 1′s and 0′s by simple communication devices. Each string will represent say some word.
For instance, if we want a vocabulary of 16 words, we need strings of length 4 and if we want a vocabulary of 512 words, we need strings of (0′s and 1′s) of length 9.
If there is an error in the transmission, how do we correct it?
Suppose that we start with the simplest case; strings of length one, thus just two words. If we just transmit one symbol and there is a mistake, there is no hope of correcting it. So we replace the message word 1 by code word 111 and 0 by 000 (triple repetition). If we want to send the signal 1, we send the word 111. Suppose that there is one error in transmission. Instead of 111, we may receive 011 or 101 or 110. However, this is still closer to 111 than to 000 in the sense any one of 011,101,110 differs from 111 in only one place where as they differ from 000 in two places. So we conclude that the code word sent was likely to be 111 and then conclude that the message word was most likely 1.
This is called the triple repetition code and gives rise to the notion of Hamming distance.
The Hamming distance between two strings of the same length is the number of places they differ in. The minimum of the distances between the code words is called the minimum distance of the code. In the above example, we have two code words of length three (111,000) and thus the minimum distance of the code is 3. If we make only one error or no error, then the message we receive is closer (of distance less than or equal to one) from the true message than the wrong message (from which the distance must be at least two).
In general, if the minimum distance is 2d+1 and if we make less than d errors, we can guess the right code word.
For Hamming codes (which we next describe), the minimum distance is three and thus we can only detect and correct single errors. However, if we want to use triple code with larger vocabulary, say strings of four symbols, we have to send strings of 12 symbols.
Richard Hamming found a way of manufacturing just 3 more symbols so that it is enough to send strings of 7 symbols (it gets better; for strings of 11 symbols it is enough to send strings of 15 symbols). We shall see how this idea works in our next post.
Tags: claude shannon, coding theory, cryptology, Hamming distance, Hamming matrix, richard hamming

6 responses so far ↓
Arunn // September 5, 2006 at 9:17 pm |
Swarup: Would you mind if I make a related post introducing Informational Entropy? I prepared one some 3 years back as an article, which I haven’t used anywhere yet.
gaddeswarup // September 6, 2006 at 4:10 am |
Arunn,
Please go ahead. My main research interests are Topology ( I did write a paper on Poincare conjecture in 1977) and Geometric Group Theory. Other topics, I mainly picked up a little while teaching. It will be nice to supplement them. Thanks.
Swarup
Arunn // September 6, 2006 at 10:56 am |
Swarup: OK. I will make that post soon. Maybe you could write here on the Poincare Conjecture and about the proof that Perelman has offered. It will certainly be useful for the interested readers (like me).
gaddeswarup // September 6, 2006 at 12:49 pm |
The new techniques for Poincare conjecture come from some kind of Geometric Analysis, a combination of Differential Geometry and Analysis. I sort of realized that this may be the case and did not work on the question after a while. I am not even trying to follow the proof. Harish Seshadri of IISc may be the best person to explain the new techniques. I will write on basic topological matters, for example, toplogy as the study of limits and continuity ( what was involved in the Koch curve is uniform convergence) on spaces that can be constructed from familiar spaces and may be about some pathologies in the limiting process.
Even now, Jordan-Brouwer Theorem is quite difficult and involves going from Topology to Algebra. Indians are supposed to be good in algebraic things. Negative Integers which gave problems to Europeans ( that is why they were called negative) after their introduction by Arabs were used by Indian mathematicians earlier. F.W. Levi who taught in Calcutta said in his introduction to Abstract Algebra that he found Indian students grasped some abstract concepts quicker than European students.
Anyway, this strategy of converting problems in one area to those in another area is possibly the influence of Galois Theory and is useful in many branches of mathematics. Perhaps, I can do a little bit of Field Theory to introduce some algebraic concepts and do a couple of interesting applications like Ruler and Compass constructions. Some of these concepts will be later useful in Algebraic Toplogy if we go that far. The idea would be to start with simple things and see how participants react.
Please feel free write to me directly any suggestions. Please remember that I am retired now and neglected a lot of interesting areas, including a lot of applied mathematics, and am trying to learn some of those now.
Nonoscience / Coding Theory Part 2 // September 14, 2006 at 11:44 pm |
[...] Here is Coding Theory Part 2 by Anandaswarup Gadde, introducing simple ideas in coding theory. As is the case with Part 1, I have made minor editing and addition of links etc. with the original version. Read on, beneath the fold…Arunn [...]
bharath // February 25, 2007 at 5:38 am |
hey, nice write up. I wish you had given an example of the four symbol case. :-) off to read the next one.