Ternary Golay codes for error correction


In 1947, Juhani Virtakallio wrote to a football pool magazine that when betting on 11 matches (which each result in a win, loss, or draw), it is possible to make 729 different bets and be guaranteed that exactly one of those 729 bets will incorrectly predict the results of only two matches or fewer. Source: "At the Dawn of the Theory of Codes" by Alexander Barg. In 1949, mathematician Marcel Golay independently came up with a similar idea, called Golay codes, which Voyager 1 and 2 used in 1979 and 1980 to transmit color photos of Jupiter and Saturn back to Earth. Source: "Combinatorics in Space: The Mariner 9 Telemetry System" by Bill Cherowitzo.

This article focuses on one type of Golay code, called the "perfect ternary Golay code", or the "(11, 6, 5) linear code". It expands the data you want to transmit by a factor of 11/6, meaning your message will take up 5/6=83% more memory, and will take 83% longer to be transmitted. But the advantage is that when parts of the message are transmitted incorrectly, you may be able to notice and correct those mistakes.


Original message:



Error rate:


Without Golay coding:



With Golay coding:





View source code
Go back to the main page