Reed-Muller code
The Reed-Muller codes are a family of linear error-correcting codes used in communications.
| Contents |
Construction
The following describes how to construct a generating matrix of a Reed-Muller code of length n = 2d. Let us write:
We define the indicator vectors:
on subsets
by:
together with the binary operation:
referred to as the wedge product.
Let
where the Hi are the co-ordinate hyperplanes (of dimension 2d-1):
The Reed-Muller RM(d,r) code of order r and length n=2d is the code generated by v0 and the wedge products of upto r of the vi (where by convention a wedge product of fewer than one vector is the identity for the operation).
Example
Let d=3. Then n=8, and
and
The RM(3,1) code is generated by the set
or more explicitly by the rows of the matrix:
and the RM(3,2) code is generated by the set:
Properties
The following properties hold:
1 The set of all possible wedge products of upto d of the v_i form a basis for
.
2 The RM(d,r) code has rank:
3 The RM(d,r) = RM(d-1,r) | RM(d-1,r-1) where '|' denotes the bar product of two codes.
4 RM(d,r) has minimum Hamming weight 2d-r.
Proof
1
- There are
- such vectors and
has dimension n so it is sufficient to check that the n vectors span; equivalently it is sufficient to check that RM(d,r) =
.
- Let xi be an element of X and define
- Then
- Expansion via the distributivity of the wedge product gives
. Then since the vectors
span
we have RM(d,r) =
.
2
- By 1, all such wedge products must be linearly independent, so the rank of RM(d,r) must simply be the number of such vectors.
3
- Omitted.
4
- By induction.
- The RM(d,0) code is the repetition code of length n=2d and weight n = 2d-0 = 2d-0. By 1 RM(d,d) =
and has weight 1 = 20 = 2d-d.
- The article bar product (coding theory) gives a proof that the weight of the bar product of two codes C1 , C2 is given by
- min{2w(C1),w(C2)}
- If 0 < r < d and if
- i) RM(d-1,r) has weight 2d-1-r
- ii) RM(d-1,r-1) has weight 2d-1-(r-1) = 2d-r
- then the bar product has weight
