Golay code » History » Version 1

ABDALLAH, Hussein, 03/13/2016 12:03 PM

1 1 ABDALLAH, Hussein
h1. Golay code
2 1 ABDALLAH, Hussein
3 1 ABDALLAH, Hussein
Golay code is a perfect linear error correcting code. It is appeared in 1949 by its inventor Marcel J. E. Golay. At that time also, Claude Shannon gave his mark in the information coding by his book The Mathematical Theory of Communication in 1948. The Golay code shows its importance by providing reliability of communication on a noisy channel.  Since then, in order to increase the quality and error correction capacity, several encoding and decoding algorithm were done as the algebraic decoding algorithm, the standard array decoding etc..
4 1 ABDALLAH, Hussein
5 1 ABDALLAH, Hussein
Knowing that the theory of error detection and correction is deep, we will try to give a simplest idea about the topic without focus a lot on mathematical aspects.
6 1 ABDALLAH, Hussein
To go a little far, we need to be familiar with some definitions in our topic;
7 1 ABDALLAH, Hussein
8 1 ABDALLAH, Hussein
*Hamming distance*: it is the number of bits between two binary numbers.
9 1 ABDALLAH, Hussein
For example, the Hamming distance between bytes 4Ah and 68h is weight(4Ah XOR 6Fh) = weight(22h) = 2 bits.
10 1 ABDALLAH, Hussein
11 1 ABDALLAH, Hussein
*Weight*: it is the number of ones in a binary word. 
12 1 ABDALLAH, Hussein
For example, the byte word 11001010 has 4 as weight as it contains four 1s. 
13 1 ABDALLAH, Hussein
Now, let’s switch on the structure of the binary Golay code. 
14 1 ABDALLAH, Hussein
15 1 ABDALLAH, Hussein
The code word contains 23 bits, shared between 12 information bits and 11 appended check bits which are derived from a modulo-2 division, as with the Cyclic Redundancy Check.
16 1 ABDALLAH, Hussein
The common notation is Golay (23,12) where 23 refers to the total number of bits and 12 for the information bits. We can then obtain the check bits by the simple subtraction 23-12=11 bits.
17 1 ABDALLAH, Hussein
18 1 ABDALLAH, Hussein
This guides to obtain 2^23, or 8,388,608 possible binary values since each codeword is 23 bits long. But, because of that each of the 12-bit information field has only one corresponding set of the 11 check bits, we will have only 212, or 4096, valid Golay codewords.
19 1 ABDALLAH, Hussein
The Golay codeword are spaced from each other by the Hamming distance, which is in our case 7 or more bits. According to this distance, the maximum of error that the Golay code can detect and correct is (d-1)/2=3 bit errors, in any pattern.
20 1 ABDALLAH, Hussein
21 1 ABDALLAH, Hussein
!Golay_codeword.jpg!
22 1 ABDALLAH, Hussein
23 1 ABDALLAH, Hussein
24 1 ABDALLAH, Hussein
h1. Golay Extended
25 1 ABDALLAH, Hussein
26 1 ABDALLAH, Hussein
After several attempts to improve this code, Golay Extended code is reached. In this version, we can detect 4-bit errors thanks to adding a parity check bit to the Golay code which allows all combinations of 4 bit errors to be detected but not corrected, and then all odd numbers of bit errors can be detected in codeword. We noted it as Golay (24, 12) and it is used for deep space communication.
27 1 ABDALLAH, Hussein
Therefore, a trade-off should be taken into account between correct and detect error. Since the maximum number of error detected is 6 in any 24-codeword, 3 bits maximum can be corrected.
28 1 ABDALLAH, Hussein
29 1 ABDALLAH, Hussein
So, in any application, depending on what we favorite between error detection or error correction, we get different result;
30 1 ABDALLAH, Hussein
31 1 ABDALLAH, Hussein
Error detection case (per 24-bit) in extended Golay
32 1 ABDALLAH, Hussein
33 1 ABDALLAH, Hussein
•	100% of one- to six-bit errors detected, any pattern
34 1 ABDALLAH, Hussein
•	100% of odd bit-errors detected, any pattern
35 1 ABDALLAH, Hussein
•	99.988% of other errors detected
36 1 ABDALLAH, Hussein
37 1 ABDALLAH, Hussein
Using the error correction facilities of the code, these are the data reliability rates:
38 1 ABDALLAH, Hussein
39 1 ABDALLAH, Hussein
•	100% of one- to three-bit errors corrected, any pattern
40 1 ABDALLAH, Hussein
•	100% of four-bit errors detected, any pattern
41 1 ABDALLAH, Hussein
•	100% of odd numbers of bit errors detected, any pattern
42 1 ABDALLAH, Hussein
•	0.24% of other errors corrected (1/4096)