Reed-Muller-code

Uit testwiki
Naar navigatie springen Naar zoeken springen

Een Reed-Muller-code is een lineaire foutcorrigerende code, die gebruikt wordt bij draadloze communicatie, in het bijzonder in communicatie in de ruimte.[1] Bovendien steunt 5G op de nauw verwante polaire codes.[2]

Reed-Mullercodes zijn een generalisatie van Reed-Solomoncodes en Walsh-Hadamardcodes. Traditioneel gebruikt met Reed-Mullercodes als binaire codes, wat betekent dat de boodschappen en codewoorden binaire tekenreeksen zijn. De codes zijn vernoemd naar David E. Muller, een Amerikaanse wiskundige en computerwetenschapper, die de codes in 1954 ontdekte[3] en naar Irving S. Reed, een Amerikaanse wiskundige, die het eerste efficiënte decodeeralgoritme voor de codes voorstelde.[4]

Constructie

Er bestaan verschillende equivalente manieren om Reed-Mullercodes te beschrijven. Hier wordt gebruik gemaakt van de methode met generatormatrix. Een andere manier is via veeltermen. De generator-matrix van een Reed-Muller-code met lengte n=2dwordt opgebouwd als volgt. Beschouw eerst de vectorruimte met dimensie d over het eindig lichaam 𝔽2=GF(2). Deze vectorruimte bevat 2d elementen.

𝔽2d={x1,,x2d}

We definiëren nu in de n-dimensionale ruimte over 𝔽2 de 'indicator-vectoren':

𝕀A𝔽2n

op deelverzamelingen A𝔽2d door:

(𝕀A)i={1 als xiA0 elders

en we definiëren in (𝔽2)n de volgende binaire bewerking 'puntproduct':

wz=(w1×z1,,wn×zn)


𝔽2d is een d-dimensionale vectorruimte over 𝔽2, en is dus te schrijven als

(𝔽2)d={(y1,,yd)|yi𝔽2}

We definiëren nu de volgende vectoren ter lengte n:v0=(1,1,1,1,1,1,1,1) en

vi=𝕀Hi

waarbij Hi hypervlakken in (𝔽2)d zijn (van dimensie 2d1):

Hi={y(𝔽2)dyi=0}

De Reed-Muller RM(d,r)-code van de orde r en lengte n=2d is de lineaire code die wordt gegenereerd door v0en de puntproducten tot en met r van de vectoren vi,1im.

Voorbeeld 1

Zij d=3. Dan is derhalve n=8 en

𝔽23={(0,0,0),(0,0,1),,(1,1,1)},

en

v0=(1,1,1,1,1,1,1,1)v1=(1,0,1,0,1,0,1,0)v2=(1,1,0,0,1,1,0,0)v3=(1,1,1,1,0,0,0,0).

De RM(3,1)-code wordt gegenereerd door de verzameling

{v0,v1,v2,v3}

of, meer expliciet geformuleerd, door de rijen van de matrix:

(11111111101010101100110011110000)

De dimensie van de code is 4, dus de code bestaat uit 16 codewoorden.

Voorbeeld 2

De RM(3,2)-code wordt gegenereerd door de verzameling

{v0,v1,v2,v3,v1v2,v1v3,v2v3}

ofwel door de volgende matrix:

(11111111101010101100110011110000100010001010000011000000)

Eigenschappen

Volgende eigenschappen gelden voor Reed-Mullercodes:

  1. De verzameling van alle mogelijke puntproducten tot en met d van de vectoren vi vormt een basis van 𝔽2n.
  2. De RM(d,r)-code heeft dimensie s=0r(ds).
  3. Er geldt RM(d,r) = RM(d-1,r) | RM(d-1,r-1) waarbij '|' voor twee lineaire codes C2C1 is gedefinieerd als C1|C2={(c1|c1+c2)c1C1,c2C2}.
  4. RM(d,r) heeft minimale Hammingafstand 2dr.

Sjabloon:Appendix