Recent from talks
Nothing was collected or created yet.
Binary Golay code
View on Wikipedia| Extended binary Golay code | |
|---|---|
| Named after | Marcel J. E. Golay |
| Classification | |
| Type | Linear block code |
| Block length | 24 |
| Message length | 12 |
| Rate | 12/24 = 0.5 |
| Distance | 8 |
| Alphabet size | 2 |
| Notation | -code |
| Perfect binary Golay code | |
|---|---|
| Named after | Marcel J. E. Golay |
| Classification | |
| Type | Linear block code |
| Block length | 23 |
| Message length | 12 |
| Rate | 12/23 ~ 0.522 |
| Distance | 7 |
| Alphabet size | 2 |
| Notation | -code |
In mathematics and electronics engineering, a binary Golay code is a type of linear error-correcting code used in digital communications. The binary Golay code, along with the ternary Golay code, has a particularly deep and interesting connection to the theory of finite sporadic groups in mathematics.[1] These codes are named in honor of Marcel J. E. Golay whose 1949 paper[2] introducing them has been called, by E. R. Berlekamp, the "best single published page" in coding theory.[3]
There are two closely related binary Golay codes. The extended binary Golay code, G24 (sometimes just called the "Golay code" in finite group theory) encodes 12 bits of data in a 24-bit word in such a way that any 3-bit errors can be corrected or any 4-bit errors can be detected. The other, the perfect binary Golay code, G23, has codewords of length 23 and is obtained from the extended binary Golay code by deleting one coordinate position (conversely, the extended binary Golay code is obtained from the perfect binary Golay code by adding a parity bit). In standard coding notation, the codes have parameters [24, 12, 8] and [23, 12, 7], corresponding to the length of the codewords, the dimension of the code, and the minimum Hamming distance between two codewords, respectively.
Mathematical definition
[edit]In mathematical terms, the extended binary Golay code G24 consists of a 12-dimensional linear subspace W of the space V = F24
2 of 24-bit words such that any two distinct elements of W differ in at least 8 coordinates. W is called a linear code because it is a vector space. In all, W comprises 4096 = 212 elements.
- The elements of W are called code words. They can also be described as subsets of a set of 24 elements, where addition is defined as taking the symmetric difference of the subsets.
- In the extended binary Golay code, all code words have Hamming weights of 0, 8, 12, 16, or 24. Code words of weight 8 are called octads and code words of weight 12 are called dodecads.
- Octads of the code G24 are elements of the S(5,8,24) Steiner system. There are 759 = 3 × 11 × 23 octads and 759 complements thereof. It follows that there are 2576 = 24 × 7 × 23 dodecads.
- Two octads intersect (have 1's in common) in 0, 2, or 4 coordinates in the binary vector representation (these are the possible intersection sizes in the subset representation). An octad and a dodecad intersect at 2, 4, or 6 coordinates.
- Up to relabeling coordinates, W is unique.
The binary Golay code, G23 is a perfect code. That is, the spheres of radius three around code words form a partition of the vector space. G23 is a 12-dimensional subspace of the space F23
2.
The automorphism group of the perfect binary Golay code G23 (meaning the subgroup of the group S23 of permutations of the coordinates of F23
2 which leave G23 invariant), is the Mathieu group . The automorphism group of the extended binary Golay code is the Mathieu group , of order 210 × 33 × 5 × 7 × 11 × 23. is transitive on octads and on dodecads. The other Mathieu groups occur as stabilizers of one or several elements of W.
There is a single word of weight 24, which is a 1-dimensional invariant subspace. therefore has an 11-dimensional irreducible representation on the field with 2 elements. In addition, since the binary golay code is a 12-dimensional subspace of a 24-dimensional space, also acts on the 12-dimensional quotient space, called the binary Golay cocode. A word in the cocode is in the same coset as a word of length 0, 1, 2, 3, or 4. In the last case, 6 (disjoint) cocode words all lie in the same coset. There is an 11-dimensional invariant subspace, consisting of cocode words with odd weight, which gives a second 11-dimensional representation on the field with 2 elements.
Constructions
[edit]- Lexicographic code: Order the vectors in V lexicographically (i.e., interpret them as unsigned 24-bit binary integers and take the usual ordering). Starting with w0 = 0, define w1, w2, ..., w12 by the rule that wn is the smallest integer which differs from all linear combinations of previous elements in at least eight coordinates. Then W can be defined as the span of w1, ..., w12.
- Mathieu group: Witt in 1938 published a construction of the largest Mathieu group that can be used to construct the extended binary Golay code.[4]
- Quadratic residue code: Consider the set N of quadratic non-residues (mod 23). This is an 11-element subset of the cyclic group Z/23Z. Consider the translates t+N of this subset. Augment each translate to a 12-element set St by adding an element ∞. Then labeling the basis elements of V by 0, 1, 2, ..., 22, ∞, W can be defined as the span of the words St together with the word consisting of all basis vectors. (The perfect code is obtained by leaving out ∞.)
- As a cyclic code: The perfect G23 code can be constructed via the factorization of over the binary field GF(2): It is the code generated by .[5] Either of degree 11 irreducible factors can be used to generate the code.[6]
- Turyn's construction of 1967, "A Simple Construction of the Binary Golay Code," that starts from the Hamming code of length 8 and does not use the quadratic residues mod 23.[7]
- From the Steiner System S(5,8,24), consisting of 759 subsets of a 24-set. If one interprets the support of each subset as a 0-1-codeword of length 24 (with Hamming-weight 8), these are the "octads" in the binary Golay code. The entire Golay code can be obtained by repeatedly taking the symmetric differences of subsets, i.e. binary addition. An easier way to write down the Steiner system resp. the octads is the Miracle Octad Generator of R. T. Curtis, that uses a particular 1:1-correspondence between the 35 partitions of an 8-set into two 4-sets and the 35 partitions of the finite vector space into 4 planes.[8] Nowadays often the compact approach of Conway's hexacode, that uses a 4×6 array of square cells, is used.
- Winning positions in the mathematical game of Mogul: a position in Mogul is a row of 24 coins. Each turn consists of flipping from one to seven coins such that the leftmost of the flipped coins goes from head to tail. The losing positions are those with no legal move. If heads are interpreted as 1 and tails as 0 then moving to a codeword from the extended binary Golay code guarantees it will be possible to force a win.
- A generator matrix for the binary Golay code is I A, where I is the 12×12 identity matrix, and A is the complement of the adjacency matrix of the icosahedron.
A convenient representation
[edit]It is convenient to use the "Miracle Octad Generator" format, with coordinates in an array of 4 rows, 6 columns. Addition is taking the symmetric difference. All 6 columns have the same parity, which equals that of the top row.
A partition of the 6 columns into 3 pairs of adjacent ones constitutes a trio. This is a partition into 3 octad sets. A subgroup, the projective special linear group PSL(2,7) x S3 of a trio subgroup of M24 is useful for generating a basis. PSL(2,7) permutes the octads internally, in parallel. S3 permutes the 3 octads bodily.
The basis begins with octad T:
0 1 1 1 1 1 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0
and 5 similar octads. The sum N of all 6 of these code words consists of all 1's. Adding N to a code word produces its complement.
Griess (p. 59) uses the labeling:
∞ 0 | ∞ 0 | ∞ 0 3 2 | 3 2 | 3 2 5 1 | 5 1 | 5 1 6 4 | 6 4 | 6 4
PSL(2,7) is naturally the linear fractional group generated by (0123456) and (0∞)(16)(23)(45). The 7-cycle acts on T to give a subspace including also the basis elements
0 1 1 0 1 0 0 0 0 0 0 0 0 1 0 1 0 1 1 1 0 0 0 0
and
0 1 1 0 1 0 0 1 0 1 0 1 1 1 0 0 0 0 0 0 0 0 0 0
The resulting 7-dimensional subspace has a 3-dimensional quotient space upon ignoring the latter 2 octads.
There are 4 other code words of similar structure that complete the basis of 12 code words for this representation of W.
W has a subspace of dimension 4, symmetric under PSL(2,7) x S3, spanned by N and 3 dodecads formed of subsets {0,3,5,6}, {0,1,4,6}, and {0,1,2,5}.
Practical applications of Golay codes
[edit]NASA deep space missions
[edit]Error correction was vital to data transmission in the Voyager 1 and 2 spacecraft particularly because memory constraints dictated offloading data virtually instantly leaving no second chances. Hundreds of color pictures of Jupiter and Saturn in their 1979, 1980, and 1981 fly-bys would be transmitted within a constrained telecommunications bandwidth. Color image transmission required three times as much data as black and white images, so the 7-error correcting Reed–Muller code that had been used to transmit the black and white Mariner images was replaced with the much higher data rate Golay (24,12,8) code.[9]
Radio communications
[edit]The MIL-STD-188 American military standards for automatic link establishment in high frequency radio systems specify the use of an extended (24,12) Golay code for forward error correction.[10][11]
In two-way radio communication digital-coded squelch (DCS, CDCSS) system uses 23-bit Golay (23,12) code word which has the ability to detect and correct errors of 3 or fewer bits.
See also
[edit]References
[edit]- ^ Thompson 1983
- ^ Golay, Marcel J. E. (1949). "Notes on Digital Coding" (PDF). Proc. IRE. 37: 657. Archived from the original (PDF) on April 10, 2023.
- ^ Berlekamp, E. R. (1974), Key Papers in the Development of Coding Theory, I.E.E.E. Press, p. 4
- ^ Hansen, Robert Peter (2011). "Construction and Simplicity of the Large Mathieu Groups". Master's Theses. doi:10.31979/etd.qnhv-a5us.
- ^ Roman 1996, p. 324 Example 7.4.3
- ^ Pless 1998, p. 114
- ^ Turyn 1967, Section VI
- ^ Cullinane, Steven H. "The Miracle Octad Generator". Finite Geometry of the Square and Cube.
- ^ Cherowitzo, Bill. "Combinatorics in Space - The Mariner 9 Telemetry System" (PDF). University of Colorado Denver. Archived from the original (PDF) on 2013-09-27. Retrieved 2012-06-06.
- ^ Johnson, Eric E. (1991-02-24). "An Efficient Golay Codec for MIL-STD-188-141A and FED-STD-1045" (PDF). Retrieved 2017-12-09.
- ^ "Military Standard: Planning and Guidance Standard for Automated Control Applique for HF Radio" (PDF). EverySpec: Specifications, Standards, Handbooks and Mil-Spec documents. 1994-04-04. Retrieved 2017-12-09.
Sources
[edit]- Conway, John Horton; Sloane, Neil J. A. (1999), Sphere Packings, Lattices and Groups, Grundlehren der Mathematischen Wissenschaften, vol. 290 (3rd ed.), Berlin, New York: Springer-Verlag, ISBN 978-0-387-98585-5, MR 0920369
- Curtis, R. T. (1976). "A new combinatorial approach to M24". Mathematical Proceedings of the Cambridge Philosophical Society. 79 (1): 25–42. Bibcode:1976MPCPS..79...25C. doi:10.1017/S0305004100052075. S2CID 122860631.
- Greferath, Marcus (2003). "Golay Codes". In Proakis, John G. (ed.). Encyclopedia of Telecommunications. Wiley. doi:10.1002/0471219282.eot371. ISBN 0471219282.
- Griess, Robert L. (1998). Twelve Sporadic Groups. Springer. p. 167. ISBN 978-3-540-62778-4.
- Pless, Vera (1998), Introduction to the Theory of Error-Correcting Codes (3rd ed.), John Wiley & Sons, ISBN 978-0-471-19047-9
- Roman, Steven (1996), Coding and Information Theory, Graduate Texts in Mathematics #134, Springer-Verlag, ISBN 0-387-97812-7
- Thompson, Thomas M. (1983). From Error Correcting Codes through Sphere Packings to Simple Groups. Carus Mathematical Monographs. Vol. 21. Mathematical Association of America. ISBN 978-0-88385-023-7.
- Turyn, Richard J.; et al. (1967). Research to Develop the Algebraic Theory of Codes (Section VI) (PDF) (Report). Air Force Cambridge Research Laboratories. Archived from the original (PDF) on October 30, 2018.
Binary Golay code
View on GrokipediaOverview and Definition
Mathematical Definition
The binary Golay codes are two related linear codes defined over the finite field . The perfect binary Golay code is the linear code consisting of all -linear combinations of the rows of its generator matrix , where denotes the identity matrix and is the standard parity submatrix. The extended binary Golay code is the linear code obtained by appending to each codeword an overall parity-check bit equal to the sum (modulo 2) of the entries of , resulting in the generator matrix , where is the column vector of all ones.[7] Equivalently, arises as a punctured version of by deleting any single coordinate from all codewords of , with the resulting code being unique up to equivalence regardless of the chosen position.[7] The perfect nature of is characterized by the fact that the spheres of radius 3 in the Hamming metric centered at its codewords form a partition of the entire ambient space , covering it completely with no overlaps or gaps.Code Parameters
The binary Golay code is a linear error-correcting code with parameters [23,12,7], where the length , dimension , and minimum distance .[1] This configuration yields codewords, making it a highly efficient structure in coding theory. As a perfect code, it achieves equality in the Hamming bound (or sphere-packing bound), meaning the spheres of radius around each codeword exactly partition the entire space of possible vectors, with no overlap or gaps. The extended binary Golay code, obtained by adding an overall parity-check bit to the [23,12,7] code, has parameters [24,12,8], retaining the dimension while increasing the length to and the minimum distance to .[1] This extension is self-dual, meaning it is equivalent to its dual code under the standard inner product. Both codes have an error-correction capability of , allowing correction of up to 3 errors in a received word; the extended code additionally detects up to 4 errors. The code rate for the [23,12,7] binary Golay code highlights its efficiency, as it transmits 12 information bits per 23 total bits while providing strong error protection through the achievement of the Hamming bound.[1] For the extended [24,12,8] code, the rate is , maintaining comparable reliability with the added detection benefits.Properties
Error-Correcting Capabilities
The binary Golay code of length 23, dimension 12, and minimum distance 7 can correct any combination of up to 3 errors in a received 23-bit vector. This error-correcting capability arises from the minimum distance , which guarantees that the spheres of radius around distinct codewords do not overlap, allowing unique decoding for error patterns of weight at most 3.[8] The code is perfect, as the disjoint Hamming spheres of radius 3 centered on the codewords exactly partition the entire ambient space , covering all possible vectors without gaps or overlaps. The volume of each sphere is , so the total coverage is , confirming the exhaustive packing.[9] This perfection implies equality in the Hamming bound (also known as the sphere-packing bound), which provides an upper limit on the size of a binary code: , where equality holds for the Golay parameters , , and . The weight distribution of the code—featuring 1 codeword each of weights 0 and 23, 253 each of weights 7 and 16, 506 each of weights 8 and 15, and 1288 each of weights 11 and 12—ensures that low-weight error patterns up to 3 cannot land on another codeword, supporting reliable correction within the packed spheres.[10] The extended binary Golay code of length 24, dimension 12, and minimum distance 8 retains the ability to correct any 3 or fewer errors while additionally detecting up to 4 errors, as the increased distance allows identification of error patterns of weight 4 without miscorrecting them as valid codewords.[11]Structural Properties
The extended binary Golay code, denoted as a [24,12,8] code, is self-dual, meaning it is equal to its dual code, and thus invariant under the transpose operation in its generator matrix representation.[12] This self-duality implies that the code's weight enumerator is invariant under certain transformations, reflecting its symmetric structure.[13] The weight distribution of the [24,12,8] extended binary Golay code consists of codewords with weights multiples of 4, specifically: one codeword of weight 0, 759 codewords of weight 8 (known as octads), 2576 codewords of weight 12 (known as dodecads), 759 codewords of weight 16, and one codeword of weight 24.[12] The weight enumerator can be expressed as This distribution underscores the code's even-weight property and its role in combinatorial designs, where the supports of the minimum-weight codewords form blocks of a Steiner system.[13] The automorphism group of the punctured binary Golay code, a [23,12,7] code, is the Mathieu group , which has order 10,200,960 and acts as a 4-transitive permutation group on the 23 coordinates. For the extended [24,12,8] code, the automorphism group is the Mathieu group , of order 244,823,040, which is 5-transitive on the 24 coordinates and preserves the code's structure.[13] These sporadic simple groups highlight the high degree of symmetry inherent in the Golay codes. The Mathieu groups and act transitively on the supports of the codewords, particularly the octads in the extended code, ensuring that any two such supports can be mapped to each other via a code automorphism.[13] This transitivity connects the codes to the Witt design , where the octads serve as blocks.[13] The binary Golay codes are invariant under permutations of the coordinates that preserve the set of octads, with the full automorphism group comprising exactly those permutations that map codewords to codewords while maintaining the minimum distance and weight structure.[13]Constructions
Algebraic Constructions
The binary Golay code of length 23, dimension 12, and minimum distance 7 can be constructed as a cyclic code over GF(2) using the generator polynomial . This polynomial is irreducible over GF(2) and is one of the two degree-11 factors of , corresponding to the minimal polynomial of a primitive element raised to quadratic residue powers modulo 23. The codewords are all multiples of modulo , forming a 12-dimensional ideal in the ring GF(2)/(x^{23} + 1).[2][14] Another algebraic construction arises from quadratic residue theory. For the prime p = 23 ≡ 3 mod 4, the binary Golay code is the quadratic residue (QR) code Q_{23}, defined as the cyclic code generated by the polynomial , whose roots in GF(2^{11}) are the images of a primitive 23rd root of unity under the quadratic residues modulo 23. Equivalently, the parity-check matrix H is an 11 × 23 matrix over GF(2) whose columns are all distinct nonzero vectors in GF(2)^{11}, ordered such that the code is cyclic. This construction yields a self-orthogonal code with the desired parameters.[2][15] The Turyn construction provides a recursive algebraic method to build the extended binary Golay code of length 24 from smaller codes, which can then be punctured to obtain the length-23 version. Specifically, let be the [7,4,3] quadratic residue code extended by a parity bit to the [8,4,4] extended Hamming code, and let be the even-weight subcode of its dual. The extended Golay code consists of codewords of the form for , , where each component is length 8. This yields a [24,12,8] code that is doubly even and self-dual, with the [23,12,7] code obtained by deleting one coordinate. The construction relies on the algebraic structure of Reed-Muller codes RM(1,3) underlying the Hamming code.[16][15] A standard generator matrix for the [23,12,7] binary Golay code in systematic form is the 12 × 23 matrix G = [I_{12} | P], where I_{12} is the 12 × 12 identity matrix and P is a 12 × 11 parity submatrix derived from the cyclic shifts corresponding to the generator polynomial. The rows of G are the cyclic shifts of the coefficient vector of g(x), ensuring linear independence and minimum weight 7; explicit forms are available in standard references for implementation. This matrix generates all 2^{12} codewords as linear combinations over GF(2).[2][14] The lexicographic construction defines the extended code as the unique [24,12,8] lexicode (the span closed under addition of the first 2^{12} vectors in lexicographic order that maintain minimum distance 8), which is even-weight and doubly even. Puncturing yields the [23,12,7] binary Golay code. This method highlights the code's optimality as a perfect code without requiring prior knowledge of polynomials or residues.[15]Geometric Constructions
The binary Golay code admits a geometric construction rooted in the Steiner system , a unique combinatorial design consisting of 759 blocks (called octads) of size 8 on a 24-point set, where every 5-point subset is contained in exactly one octad.[15] The supports of the weight-8 codewords of the [24,12,8] extended binary Golay code precisely form these 759 octads, establishing a direct equivalence between the code and the design: any construction of one yields the other.[15] This Steiner system, known as the Witt design, provides the 24 positions of the code as its points, enabling a representation of the code as the set of all even-weight vectors in that are orthogonal to every octad (i.e., have even overlap with each block).[13] The automorphism group of this construction is the Mathieu group , which acts transitively on the 24 points and preserves both the Steiner system and the Golay code, reflecting the high degree of symmetry inherent in the design.[15] This transitive action stabilizes the code, meaning permutations in map codewords to codewords, and underscores the geometric integrity of the construction.[15] A practical diagrammatic tool for generating codewords within this framework is the Miracle Octad Generator (MOG), introduced by R. T. Curtis as a 4×6 array over derived from the hexacode, which systematically produces all octads and facilitates combinatorial manipulations of the code. The MOG exploits the symmetries of the Witt design to enumerate the 759 octads without exhaustive search, serving as an efficient geometric aid for encoding and decoding. Puncturing the [24,12,8] code by deleting one coordinate yields the [23,12,7] binary Golay code, which inherits the geometric structure from the Steiner system restricted to the remaining 23 points, maintaining error-correcting properties while adapting the design's blocks accordingly.[15]Decoding Methods
Hard-Decision Decoding
Hard-decision decoding of the binary Golay code assumes binary (0/1) decisions at the receiver without using channel reliability information, focusing on correcting up to three errors via syndrome-based methods. The process begins with computing the syndrome , where is the parity-check matrix and is the received vector. This syndrome identifies the coset of the received vector in the code's dual space, and the decoding corrects by subtracting the minimum-weight error pattern (coset leader) corresponding to that syndrome. For the [23,12,7] binary Golay code, the 11×23 parity-check matrix produces syndromes in , and since the code is perfect with minimum distance 7, every possible syndrome corresponds uniquely to a coset leader of weight at most 3, enabling complete correction of all patterns with three or fewer errors.[18] A straightforward implementation of syndrome decoding uses precomputed table lookup for the coset leaders. For the [23,12,7] code, the table contains 2^{11} = 2048 entries, each mapping a syndrome to its associated error pattern of weight 0, 1, 2, or 3. The extended [24,12,8] binary Golay code, obtained by adding an overall parity bit, employs a larger 12×24 parity-check matrix, resulting in 2^{12} = 4096 possible syndromes. A lookup table of this size stores error patterns for single, double, and triple errors, allowing correction of up to three errors; if the syndrome matches no entry or the post-correction overall parity check fails, it signals four errors for detection but not correction. This approach is memory-intensive but computationally simple and widely used in hardware implementations due to the fixed small table size.[19][20] Algebraic decoding methods offer a memory-efficient alternative by exploiting the code's quadratic residue (QR) structure without full table storage. Elia's algebraic decoder for the [23,12,7] Golay code extends the three-error-correcting BCH decoding algorithm, leveraging quadratic residues modulo 23—the positions defined as squares in —to formulate and solve for the error positions directly from the syndrome. The procedure computes the syndrome components, constructs an error locator polynomial using QR properties to restrict possible error supports, and solves a low-degree system of equations over to identify the up to three error locations, achieving correction in constant time for the fixed-length code. This method is particularly effective for the Golay code's cyclic and QR-based construction, reducing computational overhead compared to exhaustive search while maintaining full error-correction capability.[21] Patterson's algorithm provides another algebraic approach tailored to the [23,12,7] Golay code, utilizing its representation as a cyclic code to derive the error locator from the syndrome polynomial. The syndrome is interpreted as a polynomial in , and the algorithm computes the square root of a modified syndrome polynomial (typically or a related form) to obtain a polynomial whose roots reveal the error positions. This step exploits the characteristic-2 field where squaring is a linear operation, followed by gcd computations or root-finding to confirm the locator and correct the errors, enabling efficient decoding up to three errors.[22]Soft-Decision Decoding
Soft-decision decoding of the binary Golay code utilizes reliability metrics from the channel output, such as log-likelihood ratios or quantized soft values, to select the most probable codeword among candidates, yielding superior bit error rate performance compared to hard-decision methods in additive white Gaussian noise (AWGN) and fading channels. This technique is essential for applications requiring robust error correction under varying noise conditions, as it accounts for the probabilistic nature of received symbols rather than binarizing them.[23] A prominent method is a variant of the Chase algorithm adapted for the (24,12,8) extended binary Golay code. The algorithm identifies the least reliable positions in the received soft vector, applies binary test patterns (e.g., flipping subsets of 5 bits) to the hard-decision message and parity parts separately, re-encodes each modified pattern to generate candidate codewords, and selects the one minimizing the Euclidean distance to the received vector. With 48 test patterns and 3-bit quantization of soft values, this approach achieves performance within 0.1–0.2 dB of maximum-likelihood decoding while requiring only about 4,000 gates for hardware implementation at 432 Mb/s throughput.[24] Trellis decoding employs the Viterbi algorithm on a tail-biting trellis representation of the code, enabling maximum-likelihood soft-decision decoding. For the (23,12,7) binary Golay code, the trellis features 64 states, with branch metrics computed from soft channel outputs; the algorithm traverses the trellis depth of 23 time units to find the minimum-metric path. The code's high symmetry, derived from its Mathieu group automorphism, facilitates optimizations such as reduced-state trellises or pruned searches, rendering the 64-state Viterbi decoder practical for real-time applications with computational complexity manageable on modern hardware.[25] The message-syndrome decoding algorithm (MSDA) provides a high-speed soft-decision option by computing the syndrome on the received message portion and using a compact lookup table of 12 candidate syndromes to identify and correct errors, which can then be extended to four-error correction in a hybrid soft framework. This method reduces average decoding latency to 0.6 μs, offering 44.5 times the speed of prior algebraic decoders while maintaining compatibility with soft inputs for overall system enhancement.[26] Post-2020 machine learning techniques have introduced auto-encoder neural networks for Golay decoding, trained end-to-end on noisy codewords to map received soft vectors to denoised outputs that feed into ordered statistics decoding (OSD). A three-layer auto-encoder with 10,787 parameters, when integrated via reliability sorting of its output, surpasses standalone OSD by over 2 dB in Rayleigh fading channels and approaches maximum-likelihood performance within 0.5 dB across AWGN and fading scenarios.[27] In terms of complexity, bounded-distance soft-decision decoding scales as O(2^t) operations for t=3 errors, but the Golay code's perfect structure and symmetry enable full maximum-likelihood variants, like trellis or Chase methods, to operate at feasible levels of around 10^4–10^5 operations per codeword without exhaustive search.History
Discovery by Golay
Marcel J. E. Golay (1902–1989), a Swiss-born mathematician and physicist who worked at Bell Laboratories, introduced the binary Golay codes in a concise one-page note titled "Notes on Digital Coding," published in the Proceedings of the IRE in June 1949.[28][29] In this work, Golay described the binary (23,12) code capable of correcting up to three errors, consisting of 12 information bits and 11 parity bits, and the ternary (11,6) code capable of correcting up to two errors, noting that the binary code achieved optimal packing efficiency for the given parameters, terming it "perfect" in the sense of maximizing correctable errors relative to redundancy.[28] He also briefly outlined an extended version by adding an overall parity bit, yielding the (24,12) code, though without a complete formal proof of its perfection at the time.[28] Golay's motivation stemmed from the need for efficient complementary coding schemes to reduce noise in early digital communication systems, building on emerging ideas in information theory to balance redundancy with reliability in binary transmissions.[28] This effort aligned with the post-World War II surge in interest for error-correcting mechanisms, driven by advances in telegraphy for long-distance signaling and the nascent field of digital computing, where reliable data handling was essential amid noisy channels and limited hardware.[30] Claude Shannon's foundational 1948 paper on information theory had recently highlighted the theoretical limits of error-free communication, spurring practical innovations like Golay's to approach those bounds in real-world applications.[30] Although Golay's contribution established priority, the codes were independently rediscovered by researchers in the 1950s amid growing focus on algebraic error correction, such as Richard Hamming's parallel work on single-error-correcting codes, yet Golay's 1949 publication remains the seminal reference.[31]Subsequent Developments
In the years following its discovery, the binary Golay code gained prominence in the study of perfect codes, which achieve the theoretical bound on error correction efficiency established by Claude Shannon's information theory. Specifically, it was recognized as one of the few nontrivial perfect binary linear codes, the only one capable of correcting up to three errors (alongside the Hamming codes, which correct single errors).[32] During the 1960s, researchers established deep connections between the binary Golay code and the Mathieu groups, particularly the sporadic simple group , which acts as its automorphism group. These links facilitated combinatorial constructions and symmetry analyses of the code. Uniqueness proofs emerged around this time, with Vera Pless demonstrating in 1968 that any binary linear code with the parameters of the Golay code—length 23, dimension 12, and minimum distance 7—is equivalent to it. Building on this, Aimo Tietäväinen's work in the early 1970s extended uniqueness results to broader classes of perfect codes, confirming the Golay code's exceptional status among binary codes.[33] The 1970s saw significant structural insights through the work of John Conway and Neil Sloane, who constructed the Leech lattice—a 24-dimensional even unimodular lattice used in sphere packing—directly from the extended binary Golay code by adding an overall parity check bit. Their approaches also popularized the miracle octad generator, a diagrammatic tool for visualizing octads (blocks of the associated Steiner system ) and generating codewords, enhancing understanding of the code's symmetries and extensions.[34] From the 1980s through the 2000s, practical implementations advanced with VLSI designs for efficient hardware decoding. For instance, maximum-likelihood decoders for the extended Golay code were realized using bit-serial architectures on custom chips, achieving high throughput for applications requiring real-time error correction. These efforts optimized syndrome-based decoding, reducing complexity while maintaining the code's triple-error-correcting capability.[35] Post-2020 research has explored the binary Golay code in quantum error correction, leveraging its structure for contextuality tests in quantum mechanics. In 2022, it was shown that codewords of the binary Golay code map to rays in real projective space that violate the Kochen-Specker theorem, providing proofs of quantum contextuality without inequalities. Additionally, machine learning enhancements to decoding have emerged, such as autoencoder-based methods combined with ordered statistics decoding, which improve performance on noisy channels beyond traditional algebraic approaches. Reinforcement learning techniques have also been applied to universal decoding of the code, demonstrating adaptability to various error patterns.[36][27]Applications
Deep Space Communications
The binary Golay code, particularly its extended (24,12) form, played a pivotal role in NASA's Voyager 1 and 2 missions, launched in 1977, for reliable telemetry during the 1979–1981 encounters with Jupiter and Saturn. In these missions, the code served as the outer component in a concatenated scheme with a rate-1/2 convolutional inner code, enabling correction of up to three bit errors per 24-bit codeword while detecting four errors, with a minimum distance of 8. This setup was applied to imaging and non-imaging data transmission, supporting data rates from 10 bits per second to 115.2 kilobits per second and achieving a bit error probability of 10^{-5} at signal-to-noise ratios of 2.5–3.0 dB. The implementation involved hardware encoders on the spacecraft and decoders at ground stations within the Deep Space Network (DSN), utilizing soft-decision Viterbi decoding with 3-bit quantization and a 4-symbol interleaver to distribute error bursts effectively.[37][38] This error-correction capability ensured high reliability over vast distances, such as the approximately 800 million miles (1.3 billion km) to Saturn, allowing the missions to transmit over 65,000 scientific images despite decreasing data rates at greater distances, such as 7.2–44.8 kilobits per second during the Saturn encounters and challenges like cosmic ray-induced bursts and signal fading. The Golay code's efficiency supported efficient transmission of image data, which comprised about 95% of the downlink, with nearly lossless reconstruction enabled by the concatenated coding scheme, which was critical for the probes' limited power and bandwidth in deep space. Its perfect code properties minimized overhead while maximizing throughput in these scenarios, proving essential for the success of Voyager's planetary flybys.[37][38][39][40] Subsequent missions adopted variants of the binary Golay code for deep-space telemetry. The Galileo orbiter, launched in 1989, employed the (24,12) Golay code for onboard coding of non-imaging science data, providing error detection and correction to handle high error rates from its faulty high-gain antenna during the 1990s Jupiter tour. Similarly, the Cassini mission, arriving at Saturn in 2004, incorporated Golay coding in packet telemetry headers for downlink protection, ensuring robust transmission of engineering and science data over interplanetary distances using DSN-compatible formats. These implementations maintained the code's legacy in correcting burst errors from cosmic rays and fading, adapting it for evolved telemetry standards while preserving reliability in resource-constrained environments.[41][37]Terrestrial Communications
The binary Golay code has found practical applications in terrestrial communications systems, particularly in ground-based radio networks where reliable short-block error correction is essential for handling channel impairments like fading and interference. Its perfect code properties enable efficient correction of up to three errors in 23-bit codewords, making it suitable for bursty error environments without excessive overhead. In high-frequency (HF) radio links, the code is employed in military standards such as MIL-STD-188-141A and MIL-STD-188-141B, developed in the 1980s and updated through the 2000s, to support automatic link establishment (ALE) for voice and data transmission over ionospheric channels. These standards utilize the (23,12) Golay code for forward error correction in protocol handshakes and linking protection, often concatenated with convolutional codes to enhance performance against multipath fading and noise, achieving robust connectivity in bandwidth-constrained environments.[42][43] In two-way radio systems, the binary Golay code underpins Digital Coded Squelch (DCS), a selective calling mechanism widely used in amateur and professional communications since the late 1980s. DCS encodes a 23-bit continuous subaudible bitstream using the (23,12,7) Golay codeword, transmitted at 134.4 bits per second alongside voice signals, to detect and correct errors in the squelch signaling sequence. This allows radios to open the audio path only for transmissions matching the programmed code, reducing false activations from interference while supporting up to 104 standard codes for group or individual addressing in systems like those from Motorola and Kenwood. The code's error-detection capability ensures reliable operation in noisy urban or mobile scenarios, where brief bursts of errors could otherwise disrupt selective signaling.[44] Recent research in the 2020s has explored the binary Golay code for short-blocklength regimes in 5G and emerging 6G ultra-reliable low-latency communications (URLLC), targeting applications like industrial automation and vehicular networks that demand block error rates below 10^{-5} with latencies under 1 ms. Although not yet standardized in 5G New Radio (e.g., which favors polar codes for control channels), Golay-based constructions are investigated for their low-complexity decoding in grant-free access and massive machine-type communications, often concatenated or combined with sparse regression codes to approach finite-blocklength bounds in fading channels. In quantum communication prototypes, the quantum analog of the Golay code supports fault-tolerant encoding for error correction in noisy intermediate-scale quantum (NISQ) devices, enabling reliable qubit transmission over optical links with rates approaching the fault-tolerant quantum capacity threshold. These efforts leverage the code's stabilizer structure to mitigate decoherence and photon loss, as demonstrated in simulations and small-scale experiments for distributed quantum networks.[45][46] A key advantage of the binary Golay code in terrestrial fading channels is its low decoding complexity—achievable via syndrome-based methods in O(n time—coupled with strong burst error correction, where it can handle error bursts up to length 7 with high probability under hard-decision decoding. This makes it preferable for real-time systems like HF links and two-way radios, where interleaving with convolutional codes disperses bursts into correctable patterns, outperforming alternatives like BCH codes in power efficiency for short messages. For instance, in the 1990s, the European Eutelsat satellite system for TV distribution incorporated Golay codes as an inner error-correcting layer in its S-band mobile interactive multimedia (S-MIM) protocol, enhancing reliability for direct-to-home broadcasting over geostationary links affected by atmospheric fading.[47][48][49]References
- https://www.[cambridge](/page/Cambridge).org/core/journals/mathematical-proceedings-of-the-cambridge-philosophical-society/article/new-combinatorial-approach-to-m24/1C79CE31BC64790A1C29447BAFB1DACA