• No results found

Decoderen van de (7,4)-Hammingcode

In document leerlingentekst (pagina 37-41)

3.3.3

Verband tussen de voortbrengende matrix G en de con-

trolematrix H

Omdat de rijen van G overeenkomen met de codewoorden van (1, 0, 0, 0), (0, 1, 0, 0), (0, 0, 1, 0) en (0, 0, 0, 1), zal het product van H en ´e´en van deze rijen steeds de nulvector opleveren:

H(1, 0, 0, 0, 1, 1, 1)T = (0, 0, 0)T, H(0, 1, 0, 0, 0, 1, 1)T = (0, 0, 0)T, H(0, 0, 1, 0, 1, 0, 1)T = (0, 0, 0)T, H(0, 0, 0, 1, 1, 1, 0)T = (0, 0, 0)T.

We kunnen deze vier vergelijkingen weergeven in ´e´en matrixproduct als volgt:

H     1 0 0 0 1 1 1 0 1 0 0 0 1 1 0 0 1 0 1 0 1 0 0 0 1 1 1 0     T =     0 0 0 0 0 0 0 0 0 0 0 0     T =   0 0 0 0 0 0 0 0 0 0 0 0   of nog HGT = 0,

waarbij 0 een nulmatrix is van de gepaste dimensie, hier een 3 × 4-matrix.

3.4

Decoderen van de (7,4)-Hammingcode

In deze paragraaf zullen we ontdekken hoe we ´e´en opgetreden fout kunnen opzoeken en verbeteren. Merk nogmaals op dat we slechts ´e´en fout kunnen verbeteren.

3.4.1

Decoderen aan de hand van de definitie

We zullen aan de hand van de definitie de fout kunnen achterhalen. Toch zullen er ook eenvoudigere methodes bestaan zoals het gebruik maken van Venn-diagrammen en matri- ces (onze hulpmiddelen). Deze technieken zullen in de volgende paragraaf aan bod komen. We splitsen ons probleem in twee delen op, namelijk een fout in de informatiebits en een fout in de controlebits. Beide problemen zullen een andere aanpak vergen.

1. Fout in de controlebits

Het vergt wel wat inzicht om een fout in een ontvangen woord te achterhalen aan de hand van de definitie van de Hammingcode. Constateren dat er een fout is gebeurd, is niet zo moeilijk. Inderdaad, je controleert of de drie gelijkheden voldaan zijn:

c5 = a1+ a3+ a4

c6 = a1+ a2+ a4

c7 = a1+ a2+ a3.

Als dit niet het geval is, is er een fout opgetreden. Voor het ontvangen woord 1100101 krijgen we bijvoorbeeld

1 =? 1 + 0 + 0 = 1

0 =? 1 + 1 + 0 = 0

1 =? 1 + 1 + 0 = 0.

De eerste twee gelijkheden zijn correct, de derde gelijkheid klopt niet. We besluiten dat het ontvangen woord geen codewoord is. Vanaf nu zullen we logisch redeneren om zo de foute bit te achterhalen. Als we de zevende bit gelijk nemen aan 0 in plaats van aan 1, kloppen de vereiste gelijkheden wel. Dit geeft dus een codewoord dat op slechts ´e´en plaats afwijkt van het ontvangen woord. Omdat codewoorden in de Hammingcode op minstens drie plaatsen van elkaar verschillen, is dit het enige codewoord waarvoor dit geldt. We besluiten dus dat 1100100 het doorgezonden codewoord is, tenminste als we aannemen dat er bij het doorsturen slechts ´e´en fout gebeurd is.

Oefening 34. Zoek de fout in het ontvangen woord 1010000 aan de hand van de definitie.

2. Fout in de informatiebits

In de vorige situatie zat er een fout in de controlebits zodanig dat er slechts ´e´en van de drie vereiste gelijkheden niet klopte. Dat is anders wanneer er een fout optreedt in ´e´en van de informatiebits. We bekijken een voorbeeld. Veronderstel dat we het woord 1001010 ontvangen. We vullen de drie vergelijkingen in en verkrijgen:

0 =? 1 + 0 + 1 = 0

1 =? 1 + 0 + 1 = 0

0 =? 1 + 0 + 0 = 1.

De tweede en de derde gelijkheid kloppen niet. We constateren dat er een fout is opgetreden bij het doorzenden van het codewoord. We gaan er weer van uit dat er slechts ´e´en bit verkeerd is doorgestuurd. We gebruiken ons gezond verstand om de foute bit te achterhalen. We weten dat de tweede bit enkel een rol speelt in de tweede en de derde vergelijking. Inderdaad, de tweede bit komt enkel daar voor. Dus als we de tweede bit van een 0 naar een 1 veranderen, dan krijgen we drie geli- jkheden die kloppen. We concluderen dat 1101010 het doorgezonden codewoord was. Oefening 35. Welke bit moet aangepast worden indien de eerste en de derde ver- gelijking niet kloppen?

Oefening 36. Zoek de fout in het ontvangen woord 1100011 aan de hand van de definitie.

Samenvatting

- Hammingcode: 1 fout verbeterend, slechts 1 bit aanpassen - 1 gelijkheid klopt niet: fout in ´e´en controlebit (c5, c6 of c7)

3.4 Decoderen van de (7,4)-Hammingcode 39

3.4.2

Fouten detecteren m.b.v. Venn-diagrammen en matrices

In het begin van dit hoofdstuk (zie paragraaf 3.2) zagen we hulpmiddelen om onze code voor te stellen. Deze hulpmiddelen gaan we ook hier kunnen gebruiken om fouten op te sporen en te verbeteren in ontvangen woorden.

1. Venn-diagrammen

Denk terug aan onze schrijfwijze met behulp van Venn-diagrammen. Als we een ont- vangen woord waarin ´e´en fout is opgetreden, invullen in het Venn-diagram, kunnen we aan de hand van onze regel (even aantal enen in elk Venn-diagram) controleren of dit al dan niet een codewoord is. Kunnen we ook aan onze figuur zien waar de fout zit? Ja! Vul bijvoorbeeld het verzonden woord 1000100 in (zie figuur 3.4 op pagina 39). Dit woord kan onmogelijk een codewoord zijn omdat niet in ´elk Venn-diagram

Figuur 3.4: E´en fout in een ontvangen woord op een onbekende plaats.

een even aantal enen staat. Merk op dat in Venn-diagram I en in Venn-diagram II het aantal enen oneven is en het aantal enen in Venn-diagram III even is. Zo weten we dat bit 2 fout is omdat deze bit zowel in Venn-diagram I als in Venn-diagram II ligt, maar niet in Venn-diagram III. Als we een 1 in plaats van een 0 nemen voor de tweede bit zal er in elk Venn-diagram inderdaad een even aantal enen staan.

Samenvatting:

• Zoek in welk Venn-diagrammen het aantal enen oneven is.

• Zoek de bit die enkel in die Venn-diagrammen staat en dus niet voorkomt in andere Venn-diagrammen.

• Als deze bit wordt aangepast, zal het aantal enen in elk Venn-diagram even zijn. Oefening 37. De volgende woorden verschillen op precies ´e´en positie van een code- woord uit de Hammingcode. Bepaal de eerste vier (informatie)bits in deze gevallen.

a) 1100 001 b) 1000 101 c) 0001 000 d) 1110 110.

HINT: Je kan hiervoor gebruik maken van de figuren in bijlage C.

Deze methode is inderdaad veel eenvoudiger en effici¨enter dan de methode uitgelegd in 3.4.1.

2. Matrices (UITBREIDING)

Om in te zien waar matrices ons kunnen helpen bij het decoderingsproces, starten we vanuit twee -toch wel subtiele- observaties. Deze observaties vormen de kern van onze procedure. De eerste is vrij direct: een element c ∈ Z7

2 van de code zon-

der fouten wordt teniet gedaan door vermenigvuldiging met de controle matrix H: HcT = 0. Dit volgt uit de definitie van de controlematrix H (zie 3.3.2).

We maken eerst een opmerking voor we verder gaan met onze tweede observatie. Zij w het ontvangen woord, dan is het berekenen van H wT een techniek die vaak

gebruikt wordt in codetheorie. Het product H wT noemt men het syndroom 3 van

het woord w. Het bijzondere aan dit syndroom is dat het enkel afhangt van de fouten en niet van het doorgezonden woord. Dat zullen we in de volgende paragraaf a.d.h.v. een voorbeeld bespreken. In alle gevallen kan ´e´en fout achterhaald worden door het syndroom van naderbij te bekijken.

De tweede observatie is een diepgaander resultaat. Zij c∈ Z7

2 een element van

de code (zonder fouten) en c(5)∈ Z72 verkregen door 1 op te tellen bij de vijfde bit van c. Neem bijvoorbeeld c = 1001001, dan is c(5) = 1001101. Dan is c(5) een

woord met ´e´en fout op de vijfde positie. Er geldt dat H(c(5))T ∈ Z3

2 onafhankelijk

is van c. Inderdaad, het woord c(5) kunnen we schrijven als volgt:

c(5)=c+ 0 0 0 0 1 0 0 en dus H(c(5))T = HcT + H           0 0 0 0 1 0 0           = 0 + H           0 0 0 0 1 0 0           = H(5),

waarbij H(5)de 5de kolom van H voorstelt. We besluiten dat het syndroom H(c(5))T

de 5de kolom van H oplevert. Merk op dat alle kolommen van H verschillend zijn (zie paragraaf 3.3.2 op pagina 36). Veronderstel dat er een fout op de 5de positie van

het ontvangen woord c(5) optreedt. Dan zullen we de 5de kolom van H als uitkomst

voor het syndroom H(c(5))T van c(5) krijgen en hieruit kunnen besluiten dat de fout op de 5de positie plaatsvond.

Samengevat gaat het decoderingsproces als volgt:

bereken HwT

. &

HwT = 0 HwT is gelijk aan de ide kolom van H

↓ ↓

w is een codewoord verander wi van 0 naar 1 of van 1 naar 0

3De term syndroom komt uit de geneeskunde en beschrijft een ziekte, hier gelijk aan de fout, die

In document leerlingentekst (pagina 37-41)