• No results found

Decoderen

In document leerlingentekst (pagina 72-85)

6.4 Samenvattend voorbeeld

6.4.3 Decoderen

Voor de ontvangen boodschap c0 = (1, X6, X3, 0, X12, X13), berekenen we de hulp-

variabelen s en t. s = a01+ a02+ a03 + a04+ c05+ c06 = 1 + X6+ X3 + 0 + X12+ X13 = 1 + X3+ X2 + X3+ 0 + X3+ X2+ X + 1 + X3+ X2+ 1 = X2+ X + 1 = X10 t = a01X5+ a02X4+ a03X3+ a04X2+ c05X + c06 = 1 · X5+ X6· X4+ X3· X3+ 0 · X2+ X12· X + X13 = X5+ X10+ X6+ X13+ X13 = X2+ X + X2+ X + 1 + X3+ X2 = X3+ X2+ 1 = X13

Nu weten we dat het foutenpatroon gelijk is aan s, dat wil zeggen X10. De plaats

waar de fout optrad, vinden we door op zoek te gaan naar i zodanig dat Xis = t.

We vinden i = 3. De fout heeft een foutenpatroon gelijk aan X10 en trad op in de 6 − 3 = 3de informatiesymbool. We verbeteren en vinden,

6.5 Projecten 73

Hieruit kunnen we onze boodschap opnieuw afleiden:

(1, X6, X12, 0) = (0001, 1100, 1111, 0000). Dat was inderdaad onze boodschap.

We staan hier nog even stil bij de fout die bij het doorsturen gemaakt is. Slechts ´e´en van de symbolen is fout doorgestuurd, namelijk het derde informatiesymbool. Het foutenpatroon wordt gegeven door X10. In binaire schrijfwijze is dat 0111. We zien

dus dat er op het niveau van de bits niet ´e´en, maar drie fouten gemaakt zijn. Drie bits zijn dus fout doorgestuurd. Hoewel de RS-code maar ´e´en fout symbool kan ver- beteren, kan ze in bepaalde gevallen dus meerdere bits verbeteren. De voorwaarde is wel dat de foute bits allemaal bij hetzelfde symbool horen. Twee foute bits die bij verschillende symbolen horen, leiden immers tot twee foute symbolen. Fouten in bits die elkaar opvolgen, hebben we in de inleiding burst errors genoemd. Ze treden vaak op bij het versturen van gegevens via internet. Wij hebben hier gewerkt met een vereenvoudigde versie van de codes die in de realiteit gebruikt worden. In deze vereenvoudigde versie is zo’n burst error hoogstens vier bits lang. In de codes die in de realiteit gebruikt worden, kunnen ze langer zijn.

Oefening 71.

a) Maak een boodschap van 2 of 4 letters. Vertaal via de ASCII-code in een rij van nullen en enen. Encodeer deze rij van nullen en enen aan de hand van de RS-code. Verzend naar een medeleerling met een aantal foutjes. Opgelet, per 6 symbolen mag je slechts ´e´en fout symbool doorzenden. Decodeer je ontvangen boodschap. (Je kan hiervoor hetzelfde verzendformulier gebruiken als bij de Hammingcode, zie bijlage D)

b) Waarom mag onze boodschap niet uit 1, 3 of 5 letters bestaan? Oefening 72. Encodeer volgende boodschap:

1010 0011 0001 1111 0000 1110 1100 0111. Oefening 73. Decodeer volgende boodschap:

0000 1001 1101 0011 1100 1001.

6.5

Projecten

1. We maken een code met als alfabet de getallen modulo 13. We werken dus in F13 = {00, 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12}.

Aan 5 informatiesymbolen (a0, a1, a2, a3, a4) voegen we twee redundante sym-

bolen (c5, c6) toe zo dat



a0+ a1+ a2+ a3+ a4 + c5+ c6 = 0

a) Bepaal een expliciete vergelijking voor c5 en c6.

b) Zoek de codewoorden voor de volgende boodschappen (12, 05, 09, 02, 07) (03, 04, 08, 01, 11).

c) Indien er bij het doorzenden 1 fout is opgetreden, zijn we dan met behulp van deze code in staat om de fout te verbeteren? Kunnen we m.a.w. de plaats en de grootte van de fout achterhalen?

HINT: Schrijf het ontvangen woord als w = c + e en veronderstel dat er slechts ´e´en symbool fout werd doorgezonden.

d) Zoek en verbeter de fout (indien er een fout is opgetreden) in de volgende ontvangen woorden

(05, 04, 11, 10, 12, 06, 03) (01, 02, 01, 08, 06, 07, 09) (08, 02, 10, 03, 05, 00, 11) 2. We defini¨eren een (8,5)-code over F13als volgt. Een boodschap (a0, a1, a2, a3, a4)

wordt afgebeeld op een codewoord (a0, a1, a2, a3, a4, c5, c6, c7) waarbij c5, c6 en

c7 gedefinieerd zijn als volgt

   a0+ a1+ a2+ a3+ a4+ c5+ c6+ c7 = 0 a1 + 2a2+ 3a3+ 4a4+ 5c5+ 6c6+ 7c7 = 0 a1+ 4a2+ 9a3+ 3a4+ 12c5+ 10c6+ 10c7 = 0

a) Bepaal een expliciete vergelijking voor c5, c6 en c7.

b) Zoek de codewoorden voor de volgende boodschappen (12, 05, 09, 02, 07) (03, 04, 08, 01, 11).

c) Indien er bij het doorzenden 1 fout is opgetreden, zijn we dan met behulp van deze code in staat om de fout te verbeteren? Kunnen we m.a.w. de plaats en de grootte van de fout achterhalen?

HINT: Bekijk s1

s2 en

s2

s3 waarbij s1, s2 en s3 respectievelijk overeenkomen

met het eerste, tweede en derde syndroom.

d) Met behulp van deze code kunnen we eveneens ontdekken wanneer er meer dan ´e´en fout is opgetreden. Probeer dit in te zien. Op die manier kunnen we een waarschuwingsteken plaatsen bij dat woord.

e) Zoek en verbeter de fout (indien er een fout is opgetreden) in de volgende ontvangen woorden

(07, 03, 06, 11, 08, 09, 02, 00) (03, 12, 09, 11, 00, 02, 08, 12). f♥) Je ontvangen woord is gegeven door (12, 05, 08, 02, 07, 05, 10, 06). Laat zien

dat dit woord meer dan ´e´en fout bevat. Veronderstel nadien dat dit woord twee fouten bevat. In dit (uitzonderlijk) geval kunnen we deze twee fouten verbeteren. Doe dit!

Bijlage A

Het tweetallig stelsel

Er zijn ontzettend veel manieren om getallen voor te stellen. We kunnen ze schri- jven ‘zeventien’, ‘dix-sept’, ‘siebzehn’, ..., maar we kunnen ze ook noteren ‘17’, ‘||||| ||||| ||||| ||’, ‘XVII’, ... . Maar er bestaan nog meer schrijfwijzen. Zo kunnen we 17 noteren als 21oct in de octale schrijfwijze en als 10001bin in de binaire schrijfwijze.

De octale en binaire schrijfwijze zijn belangrijk omdat zij veel gebruikt worden in computers.

Het basisidee is de volgende. Normaal werken wij met een tientallig stelsel waarin we gebruik mogen maken van de cijfers ‘0’, ‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’ en ‘9’. In een achttallig stelsel zullen we enkel de eerste acht cijfers (0, 1, 2, . . . , 7) gebruiken en in een tweetallig stelsel de eerste twee (0 en 1). Maar dan bestaat het getal 8 niet meer in het achttallig stelsel en kunnen we het niet op die manier weergeven. Echter ligt het voor de hand dat -zoals we dat ook zouden doen voor het tientallig stelsel- we dan verspringen van eenheden naar tientallen, hier van eenheden naar achttallen. We krijgen op die manier de schrijfwijze 8dec = 1 · 81+ 0 · 80 = 10oct voor

het getal 8 in het achttallig talstelsel. Als we op die manier verder tellen, doen we dit als volgt; 11oct = 1 · 81+ 1 · 80, 12oct = 1 · 8 + 2 · 80, 13oct, 14oct, 15oct, 16oct, 17oct,

20oct, 21oct, ... die respectievelijk de getallen 9dec, 10dec, 11dec, 12dec, 13dec, 14dec,

15dec, 16dec, 17dec, ... Om de twee stelsels uit elkaar te houden, zullen we subscript oct of dec toevoegen aan het getal als we in het achttallig respectievelijk decimaal

talstelsel werken.

In dit werk zal enkel de binaire schrijfwijze van belang zijn. Helemaal analoog kun- nen we deze redering herhalen voor het tweetallig stelsel. We hebben nu enkel de cijfers 0 en 1. Zodat het cijfer 2 geschreven moet worden als 2dec = 1·21+0·20 = 10bin.

En ook 3dec= 1 · 21+ 1 · 20, 4dec = 1 · 22+ 0 · 21+ 0 · 20, 5dec, 6dec, 7dec, 8dec, ... worden

respectievelijk in het binair talstelsel 11bin, 100bin, 101bin, 110bin, 111bin, 1000bin, ...

Je merkt al snel op dat je veel bits nodig hebt om het getal 9 voor te stellen omdat je maar over 2 cijfers beschikt. Namelijk,

Of het getal 20 wordt in binaire schrijfwijze geschreven als

20dec = 2 · 10 = 2 · (2 · 5) = 2 · (2 · (2 · 2 + 1)) = 2 · (2 · 2 · 2 + 2) = 1 · 24+ 1 · 22 = 10100.

We kunnen ook andersom te werk gaan: zet een getal dat in binaire schrijfwijze staat om in zijn decimale schrijfwijze. Dit is eenvoudiger. We bekijken de getallen 1001bin en 10100bin

1001bin = 1 · 23+ 0 · 22+ 0 · 21+ 1 · 20 = 9dec

en

10100bin = 1 · 24 + 0 · 23+ 1 · 22+ 0 · 21+ 0 · 20 = 20dec.

Er bestaat nog een eenvoudiger systeem om getallen van hun decimale schrijfwijze om te zetten in hun binaire schrijfwijze. Het algoritme gaat als volgt:

1. Is het getal even?

Ja. Onthoud een 0 en deel door twee.

Nee. Onthoud een 1, verminder met 1 en deel door twee. 2. Herhaal stap 1 tot je getal gelijk is aan ´e´en.

3. Zet alle cijfers achter elkaar van rechts naar links. Voorbeeld:

11−1 :2−→ 5 −1 :2−→ 2−→ 1:2

1 1 0 1

zodanig dat

11 = 1011bin.

Op een gelijkaardige wijze kunnen we een getal dat in zijn binaire schrijfwijze weergegeven is, omzetten naar de decimale schrijfwijze. Dit algoritme gaat als volgt :

1. Onthoud het eerste cijfer, meest linkse cijfer. 2. Is het tweede cijfer een nul?

Ja. Vermenigvuldig het onthoudde getal met twee.

Nee. Vermenigvuldig het onthoudde getal met twee en vermeerder met 1. 3. Herhaal stap 2 tot je alle cijfers hebt doorlopen (van links naar rechts). 4. Het onthoudde getal is de decimale schrijfwijze.

Voorbeeld;

1 0 1 1

1−→ 2.2 .2 +1−→ 5 .2 +1−→ 11 zodanig dat

(1011)bin = 11.

79

Oefening 75. Hoeveel en welke getallen kan je voorstellen bij het gebruik van 5 bits?

Oefening 76. Zoek de decimale voorstelling van volgende getallen die bestaan uit 6 bits.

111100 011010 110001 110101 000110 011101

Oefening 77. Zet de volgende getallen om in hun binaire schrijfwijze. Probeer eerst te achterhalen hoeveel cijfers we nodig zullen hebben om deze getallen voor te stellen.

Bijlage B

ASCII-code

Karakter ASCII-code Karakter ASCII-code

Decimale Code Binaire Code Decimale code Binaire code spatie 032 00100000 . 046 00101110 ! 033 00100001 ? 063 00111111 A 065 01000001 a 097 01100001 B 066 01000010 b 098 01100010 C 067 01000011 c 099 01100011 D 068 01000100 d 100 01100100 E 069 01000101 e 101 01100101 F 070 01000110 f 102 01100110 G 071 01000111 g 103 01100111 H 072 01001000 h 104 01101000 I 073 01001001 i 105 01101001 J 074 01001010 j 106 01101010 K 075 01001011 k 107 01101011 L 076 01001100 l 108 01101100 M 077 01001101 m 109 01101101 N 078 01001110 n 110 01101110 O 079 01001111 o 111 01101111 P 080 01010000 p 112 01110000 Q 081 01010001 q 113 01110001 R 082 01010010 r 114 01110010 S 083 01010011 s 115 01110011 T 084 01010100 t 116 01110100 U 085 01010101 u 117 01110101 V 086 01010110 v 118 01110110 W 087 01010111 w 119 01110111 X 088 01011000 x 120 01111000 Y 098 01011001 y 121 01111001 Z 090 01011010 z 122 01111010 Tabel B.1: De ASCII-tabel.

Bijlage C

Lege Venn-diagrammen voor

oefeningen

Bijlage D

Verzendformulieren

In document leerlingentekst (pagina 72-85)