Jump to content

Reed–Muller code

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Reetep (talk | contribs) at 21:01, 12 June 2005. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)

The Reed-Muller codes are a family of linear error-correcting codes used in communications.

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 (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.
It can be shown that the weigth of the bar product of two codes C1 , C2 is given by
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