Reed–Muller code

Reed–Muller code

Reed-Muller codes are a family of linear error-correcting codes used in communications. They are named after their discoverers, Irving S. Reed and D. E. Muller. Muller discovered the codes, and Reed proposed the majority logic decoding for the first time. A first order Reed-Muller code is equivalent to a Hadamard code. Reed-Muller codes are listed as RM(d,r), where d is the order of the code, and r is parameterrelated to the length of code, n=2^r. RM codes are related to binary functions on field GF(2^r) over the elements [0,1] .

RM(0,r) codes are repetition codes of length n=2^r, rate {R= frac{1}{n and minimum distance d_{min} = frac{n}{2}.

RM(1,r) codes are parity check codes of length n=2^r, rate R= frac{r+1}{n} and minimum distance d_{min} = frac{n}{2}.

RM(r-1,r) codes are parity check codes of length n=2^r.

RM(r-2,r) codes are the family of extended Hamming codes of length n = 2^r with minimum distance d_{min}=4. [Trellis and Turbo Coding, C. Schlegel & L. Perez, Wiley Interscience, 2004, p149.]

Construction

A generating matrix for a Reed–Muller code of length "n" = 2"d" can be constructed like this. Let us write:

: X = mathbb{F}_2^d = { x_1, ldots, x_{2^d} }.

We define in n-dimensional space mathbb{F}_2^n the indicator vectors

:mathbb{I}_A in mathbb{F}_2^n

on subsets A subset X by:

:left( mathbb{I}_A ight)_i = egin{cases} 1 & mbox{ if } x_i in A \ 0 & mbox{ otherwise} \ end{cases}

together with, also in mathbb{F}_2^n, the binary operation

: w wedge z = (w_1 imes z_1, ldots , w_n imes z_n ),

referred to as the "wedge product".

mathbb{F}_2^d is a "d"-dimensional vector space over the field mathbb{F}_2, so it is possible to write

(mathbb{F}_2)^d = { (y_d, ldots , y_1) | y_i in mathbb{F}_2 }
We define in "n"-dimensional space mathbb{F}_2^n the following vectors with length "n": "v"0 = (1, 1, 1, 1, 1, 1, 1, 1) and

: v_i = mathbb{I}_{ H_i }

where the "H""i" are hyperplanes in (mathbb{F}_2)^d (with dimension d −1):

:H_i = { y in ( mathbb{F}_2 ) ^d mid y_i = 0 }

The Reed–Muller RM("d", "r") code of order "r" and length "n" = 2"d" is the code generated by "v"0 and the wedge products of up to "r" of the "v""i" (where by convention a wedge product of fewer than one vector is the identity for the operation).

Example 1

Let "d" = 3. Then "n" = 8, and

: X = mathbb{F}_2^3 = { (0,0,0), (0,0,1), ldots, (1,1,1) },

and

:egin{matrix}v_0 & = & (1,1,1,1,1,1,1,1) \ [2pt] v_1 & = & (1,0,1,0,1,0,1,0) \ [2pt] v_2 & = & (1,1,0,0,1,1,0,0) \ [2pt] v_3 & = & (1,1,1,1,0,0,0,0). \end{matrix}

The RM(3,1) code is generated by the set

: { v_0, v_1, v_2, v_3 },,

or more explicitly by the rows of the matrix

:egin{pmatrix}1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 \1 & 0 & 1 & 0 & 1 & 0 & 1 & 0 \1 & 1 & 0 & 0 & 1 & 1 & 0 & 0 \1 & 1 & 1 & 1 & 0 & 0 & 0 & 0 \end{pmatrix}

Example 2

The RM(3,2) code is generated by the set:: { v_0, v_1, v_2, v_3, v_1 wedge v_2, v_1 wedge v_3, v_2 wedge v_3 }

or more explicitly by the rows of the matrix:

:egin{pmatrix}1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 \1 & 0 & 1 & 0 & 1 & 0 & 1 & 0 \1 & 1 & 0 & 0 & 1 & 1 & 0 & 0 \1 & 1 & 1 & 1 & 0 & 0 & 0 & 0 \1 & 0 & 0 & 0 & 1 & 0 & 0 & 0 \1 & 0 & 1 & 0 & 0 & 0 & 0 & 0 \1 & 1 & 0 & 0 & 0 & 0 & 0 & 0 \end{pmatrix}

Properties

The following properties hold:

1 The set of all possible wedge products of up to "d" of the "v""i" form a basis for mathbb{F}_2^n.

2 The RM ("d", "r") code has rank:: sum_{s=0}^r {d choose s}.

3 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 2"d" − "r".

Proof

1:There are

:: sum_{s=0}^d { d choose s } = 2^d = n

:such vectors and mathbb{F}_2^n has dimension "n" so it is sufficient to check that the "n" vectors span; equivalently it is sufficient to check that RM(d, d) = mathbb{F}_2^n.

:Let "x" be an element of "X" and define

::y_i = egin{cases} v_i & mbox{ if } x_i = 0 \ 1+v_i & mbox{ if } x_i = 1 \ end{cases}

:Then mathbb{I}_{ { x } } = y_i wedge ldots wedge y_d

:Expansion via the distributivity of the wedge product gives mathbb{I}_{ { x } } in mbox{ RM(d,d)} . Then since the vectors { mathbb{I}_{ { x } } mid x in X } span mathbb{F}_2^n we have RM(d, d) = mathbb{F}_2^n.

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) = mathbb{F}_2^n 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(C_1), w(C_2) }

: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

::min { 2 imes d^{d-1-r}, 2^{d-r} } = 2^{d-r} .

Decoding RM codes

RM(r,m) codes can be decoded using the majority logic decoding. The basic idea of majority logic decoding isto build several checksums for each received code word element. Since each of the different checksums must all have the same value (i.e the value of the message word element weight), we can use a majority logic decoding to decipherthe value of the message word element. Once each order of the polynomial is decoded, the received word is modifiedaccordingly by removing the corresponding codewords weighted by the decoded message contributions, up to the present stage.So for a r-th order RM code, we have to decode iteratively r+1, times before we arrive at the finalreceived code-word. Also, the values of the message bits are calculated through this scheme; finally we can calculatethe codeword by multiplying the message word (just decoded) with the generator matrix.

One clue if the decoding succeeded, is to have an all-zero modified received word, at the end of r+1-stage decodingthrough the majority logic decoding. This technique was proposed by Irving. S. Reed, and is more general when appliedto other finite geometry codes.

See also

* Reed-Solomon code

References

* Chapter 4.
* Chapter 4.5.


Wikimedia Foundation. 2010.

Игры ⚽ Поможем решить контрольную работу

Look at other dictionaries:

  • Reed-Muller-Code — Die Reed Muller Codes sind eine Familie von linearen, fehlerkorrigierenden Codes, die im Bereich der Kanalcodierung zur gesicherten Datenübertragung und Datenspeicherung Verwendung finden. Diese Klasse von Codes wurden von Irving S. Reed und… …   Deutsch Wikipedia

  • Code De Reed-Müller — Les codes de Reed Müller sont des codes correcteurs linéaires. Cette famille de codes, initialement binaire, doit son nom aux travaux de D.E. Muller qui proposa le principe du code et à Irving S. Reed qui proposa une technique de décodage,… …   Wikipédia en Français

  • Code de Reed-Muller — Code de Reed Müller Les codes de Reed Müller sont des codes correcteurs linéaires. Cette famille de codes, initialement binaire, doit son nom aux travaux de D.E. Muller qui proposa le principe du code et à Irving S. Reed qui proposa une technique …   Wikipédia en Français

  • Code de reed-müller — Les codes de Reed Müller sont des codes correcteurs linéaires. Cette famille de codes, initialement binaire, doit son nom aux travaux de D.E. Muller qui proposa le principe du code et à Irving S. Reed qui proposa une technique de décodage,… …   Wikipédia en Français

  • Code de Reed-Müller — Les codes de Reed Müller sont des codes correcteurs linéaires. Cette famille de codes, initialement binaire, doit son nom aux travaux de D.E. Muller qui proposa le principe du code et à Irving S. Reed qui proposa une technique de décodage,… …   Wikipédia en Français

  • Muller — may refer to: Contents 1 People 2 Characters 3 Other 4 …   Wikipedia

  • Code Correcteur — Un code correcteur est une technique de codage basée sur la redondance. Elle est destinée à corriger les erreurs de transmission d une information (plus souvent appelée message) sur une voie de communication peu fiable. La théorie des codes… …   Wikipédia en Français

  • Code — redirects here. CODE may also refer to Cultural Olympiad Digital Edition. Decoded redirects here. For the television show, see Brad Meltzer s Decoded. For code (computer programming), see source code. For other uses, see Code (disambiguation).… …   Wikipedia

  • Reed — Cette page d’homonymie répertorie les différents sujets et articles partageant un même nom. Reed, qui signifie roseau en anglais, peut désigner : Patronyme Alan Reed (1907 1977), acteur américain. Andre Reed (1964 ), joueur américain de… …   Wikipédia en Français

  • Code correcteur — Un code correcteur est une technique de codage basée sur la redondance. Elle est destinée à corriger les erreurs de transmission d une information (plus souvent appelée message) sur une voie de communication peu fiable. La théorie des codes… …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”