We use essential cookies to run the site (session, security, and your theme/language preferences). With your permission we also load embedded third-party content, such as YouTube videos. Cookie Policy
Reed-Muller Codes
When multivariate polynomials correct every flipped bit
Author(s):Elier Rodríguez García
Index
Introduction
Imagine sending a one-bit message across a very noisy channel. The obvious defense is repetition: send the bit many times and let the receiver take a majority vote. But repetition wastes bandwidth badly — you spend n bits to carry 1 bit of information.
Reed-Muller codes, invented by David E. Muller in 1954 and decoded by Irving S. Reed the same year, found a far richer idea: instead of repeating a single bit, evaluate a multivariate polynomial over the binary field at every possible input point. A message of k bits becomes the coefficients of a degree-r polynomial in m variables over F2; the codeword is the 2m-bit string you get by evaluating that polynomial at every point in {0,1}m.
The magic is that two distinct degree-r polynomials in m variables agree on at most r⋅2m−1 inputs — the rest differ. So even if a noisy channel flips many bits, the received word is still closer (in Hamming distance) to the correct codeword than to any other, and majority logic can recover it one coefficient at a time.
The special case r=1 is the celebrated Hadamard code (also called the first-order Reed-Muller code), which evaluates a linear polynomial. The Voyager 1 and Voyager 2 spacecraft used it in the late 1970s to transmit photographs from Jupiter and Saturn across billions of kilometers of space.
Decode by Voting
The demo below works with RM(1, 3) — the first-order Reed-Muller code in m=3 variables. Every message is a 4-bit vector (a0,a1,a2,a3); the codeword evaluates the linear polynomial f(x1,x2,x3)=a0+a1x1+a2x2+a3x3 (all arithmetic mod 2) at all 23=8 points of {0,1}3.
Pick a message, introduce noise by clicking individual codeword bits, then press Decode to watch Reed's majority-logic algorithm vote the errors away.
Notice: the code is a [8,4,4]2 code — length 8, dimension 4, minimum distance 4 — so it can correct any single error (distance ⌊(4−1)/2⌋=1) and detect up to 3 errors. Flip two bits and it still decodes correctly; flip three and it may fail.
The Real Complexity
A Reed-Muller code RM(r, m) is defined by two parameters:
r — the maximum degree of the polynomial (the order).
m — the number of variables.
The resulting code has:
Parameter
Value
Block length
n=2m
Dimension
k=∑i=0r(im)
Minimum distance
d=2m−r
The minimum distance is the key insight. Two degree-r polynomials that differ on even one coefficient must differ on at least 2m−r inputs. That large gap is what makes majority voting work: Reed's algorithm decodes by computing 2m−1 inner-product tests for each coefficient ai, and the majority of those tests tells you whether ai=0 or 1 — even if up to ⌊(2m−r−1)/2⌋ bits were flipped.
The total decoding complexity is O(m⋅2m), which is near-linear in the block length — a beautiful match between algebraic structure and algorithmic efficiency.
The extremes of the family are well-known codes:
RM(0,m) — the repetition code: one information bit, all-0 or all-1 codeword of length 2m.
RM(1,m) — the first-order / Hadamard code: evaluates a linear polynomial; distance 2m−1, corrects up to 2m−2−1 errors.
RM(m−1,m) — the even-weight code: all codewords with even Hamming weight.
RM(m,m) — the trivial code: every binary string of length 2m is a codeword.
Duality connects the ends: RM(r,m)⊥=RM(m−r−1,m). This means the dual of the Hadamard code is a repetition code and vice versa — a striking algebraic symmetry.
Reed-Muller codes are also intimately linked to boolean satisfiability: the codeword of RM(1, m) is precisely the truth table of a linear Boolean function, and the minimum distance measures how far two Boolean functions can be from each other. This connection is exploited in the PAC learning framework when learning linear threshold functions.
Where It Matters
Reed-Muller codes appear wherever strong, structured error correction is needed:
Deep-space communication: NASA's Mariner 9 (1971) used RM(1, 5) — a [32,6,16]2 code — to transmit images of Mars. Voyager 1 and 2 used a related Hadamard code for the iconic Jupiter and Saturn photographs.
Wireless standards: RM codes underlie the control-channel encoding in 5G NR (New Radio). The Polar codes standardized in 5G are constructed by a pruning process on the RM generator matrix.
Theoretical computer science: RM codewords are low-degree tests in disguise. The PCP theorem (Probabilistically Checkable Proofs) — which shows that every NP proof can be verified by reading only a constant number of bits — relies on low-degree polynomial tests that are essentially Reed-Muller encoding.
Cryptography: the bent-function analysis that underlies the security of some stream ciphers uses the distance properties of RM codes.
PAC learning: learning a noisy linear Boolean function from examples is equivalent to decoding a received RM(1, m) codeword — a direct algorithmic connection between learning theory and coding theory.
The story does not end at classic Reed-Muller codes: in 2016 Shrinivas Kudekar, Santhosh Kumar, Marco Mondelli, Henry Pfister, Eren Sasoglu, and Rüdiger Urbanke proved that Reed-Muller codes achieve the Shannon capacity of the binary erasure channel, settling a long-standing conjecture.
Conclusion
Reed-Muller codes are one of the oldest families in coding theory, yet they keep appearing at the frontier. The key insight is almost embarrassingly simple: evaluate a low-degree polynomial everywhere, and two distinct polynomials must differ on many points — which means majority voting can always find the truth.
That geometric intuition — distance in Hamming space mirrors degree in polynomial space — connects error correction to algebra, to learning theory, to the PCP theorem, and now to the capacity of the binary erasure channel.
The next time you watch a decades-old photo of Jupiter's Great Red Spot transmitted by Voyager, remember: those pixels survived billions of kilometers of cosmic noise because Irving S. Reed realized in 1954 that polynomials vote better than repetition.
Comments
Loading comments...