Informatietheorie 1. Informatietheorie. Hans Melissen. j.b.m.melissen@its.tudelft.nl



Vergelijkbare documenten
Periodiciteit bij breuken

Een toelichting op het belang en het berekenen van de steekproefomvang in marktonderzoek.

Examen HAVO. wiskunde A. tijdvak 2 woensdag 19 juni uur. Bij dit examen hoort een uitwerkbijlage.

Betrouwbaarheid. Betrouwbaarheidsinterval

Praktische opdracht: Complexe getallen en de Julia-verzameling

Tentamen - Informatietheorie ( ) 22 augustus u

Convergentie, divergentie en limieten van rijen

Eindexamen wiskunde A1-2 vwo 2008-II

Rijen. 6N5p

Uitwerkingen toets 11 juni 2011

Fourierreeksen. Calculus II voor S, F, MNW. 14 november 2005

We kennen in de wiskunde de volgende getallenverzamelingen:

Julian gooit 20 keer met een dobbelsteen. Bereken de kans dat hij precies 5 keer een zes gooit.

Steekproeftrekking Onderzoekspopulatie Steekproef

Ongelijkheden. IMO trainingsweekend 2013

Buren en overlast. waar je thuis bent...

VOOR HET SECUNDAIR ONDERWIJS

1. Weten dat in het geval van compressoren rekening moet gehouden worden met thermische effecten

Eindexamen wiskunde B vwo II

Deel A. Breuken vergelijken

Appendix A: De rij van Fibonacci

Hoe los ik het op, samen met Thuisvester? Ik heb een klacht

VOOR HET SECUNDAIR ONDERWIJS. Verklarende statistiek. 6. Proporties. Werktekst voor de leerling. Prof. dr. Herman Callaert

Wijzigingsformulier Ziektekostenverzekering

Waar moet je aan denken? Verhuizen. Stap 1: Hoe zeg ik de huur op?

Evaluatie pilot ipad onder docenten

Videoles Discrete dynamische modellen

imtech Arbodienst (versie 2.0)

Inzicht in voortgang. Versnellingsvraag 9 Inzichten periode maart t/m juni

Correctievoorschrift VWO. Wiskunde B1,2 (nieuwe stijl)

Ja, ik wil. Trouwen in Vlaardingen

HET BELANG VAN. Vragen Tijdens de voordracht op 14 augustus 2007 hebben we de volgende vragen besproken.

Wijzigingsformulier Ziektekostenverzekering

Combinatoriek. Nota s in samenwerking met Anja Struyf en Sabine Verboven (Universiteit Antwerpen)

Toelichting bij Opbrengstgegevens VAVO

Op zoek naar een betaalbare starterswoning? Koop een eigen huis met korting

Tabellenrapportage CQ-index Kraamzorg

BIOLOGIE Havo / Vwo Tips examenvragen maken. Algemeen. Multiple choice vragen

OBS 't Gijmink Oudertevredenheid ods 't Gijmink Online Evaluatie Instrument maart 2016

Dit geeft ee voorwaarde die slechts afhagt va de begiwaarde va de `basisoplossige' (bij (3) is die voorwaarde a b a b 0). Hoe ka me twee lieair oafhak

UITWERKINGEN TOETS TRAININGSKAMP. Valkenswaard, 10 juni 2006

Werktekst 1: Een bos beheren

De speler die begint mag in zijn eerste beurt niet alle stenen pakken.

Hoe werkt het? Zelf uw woning aanpassen

1. Recursievergelijkingen van de 1 e orde

Eindexamen wiskunde A vwo I

Alles wat u moet weten over asbest in en om uw woning

7.1 Recursieve formules [1]

PARADOXEN 9 Dr. Luc Gheysens

1 Het trekken van ballen uit een vaas

Overlijden: uw rechten in Duitsland en Nederland

Opgaven OPGAVE OPGAVE 2. = x ( 5 stappen ). a. Itereer met F( x ) = en als startwaarden 1 en

Een andere kijk op Financiële Rekenkunde Wim Pijls, Erasmus Universiteit Rotterdam

Betrouwbaarheidsintervallen

7. Betrouwbaarheidsintervallen voor proporties

Correctievoorschrift VWO

Examen VWO. wiskunde B1. tijdvak 1 woensdag 16 mei uur. Bij dit examen hoort een uitwerkbijlage.

Dus n n (a + b) n = a n + a n 1 b + heet een binomiaalcoëfficiënt (uitspraak n boven k ). Newton vond de

REAAL GOED GEREGELD PAKKET UW WOONHUISVERZEKERING

Examen VWO. wiskunde B1. tijdvak 1 woensdag 16 mei uur. Bij dit examen hoort een uitwerkbijlage.

Scootmobiel rijden. Vertrouwd, veilig en zelfverzekerd deelnemen aan het verkeer. rijbewijs rijbewijs. www. scootmobielrijden.nl

TECHNISCHE UNIVERSITEIT EINDHOVEN. Tentamen Inleiding Experimentele Fysica (3NA10 of 3AA10) Tentamen OGO Fysisch Experimenteren voor minor AP (3MN10)

RAADS IN FORMATIE BRIE F

bewaarexemplaar Alles over ophogen Informatie voor als uw wijk wordt opgehoogd

Rekenen met levensduurkosten

Evaluatierapport. Tevredenheidsonderzoek NMV Nederlandse Montessori Vereniging Eindrapportage. BvPO

Analyse wijze en stimuleren van invullen Nationale Studenten Enquête Pascal Brenders 19 juni 2013

Een samenvatting van de CAO voor Uitzendkrachten

1. Hebben de volgende rijen een limiet, en zo ja, bepaal die dan: (i) u n = sin(πn) (d) u n = cos(2πn) (l) u n = log n

Eindexamen natuurkunde 1-2 compex havo 2007-I

Enquête social media gebruik ROC West-Brabant

12 Kansrekening Kansruimten WIS12 1

imtech Arbodienst (versie 2.0)

WOONHUISVERZEKERING. In de voorwaarden van de Thomas Assuradeuren Woonhuisverzekering

Huisstijl en logogebruik Associatie KU Leuven

imtech Arbodienst (versie 2.0) imtech arbodienst

Oefeningen op Rijen. Leon Lenders, Bree

REAAL GOED GEREGELD PAKKET UW WOONHUISVERZEKERING

Rijen met de TI-nspire vii

HANDLEIDING CONDITIONELE ORDERS

Rijen en reeksen. Mei Remy van Bergen Peter Mulder

Sloopbesluit en verhuizen

imtech Arbodienst (versie 2.1)

PROEFEXAMEN SOCIALE STATISTIEK November 2009 REEKS 1

Eindrapport Leerlingtevredenheidsonderzoek Floracollege Eindexamenklassen 2013

Mexicaanse griep: A/H1N1 griep

Een meetkundige constructie van de som van een meetkundige rij

Commissie Pensioenhervorming Nota over de actuariële neutraliteit. Bijlage III

TAF GoedGezekerd AOV. De eerste AOV waarmee u zelf de touwtjes in handen heeft

Effectief document- en risicobeheer

Polynomen groep 2. Trainingsweek, juni Complexe nulpunten. Een polynoom is van de vorm P (x) = n

Semi-orthopedische schoenen (OSB)

we willen graag zelf klussen in onze nieuwe woning.

Mobile Business Efficiënt communiceren met uw zakenrelaties

Vuilwaterafvoersystemen voor hoogbouw

TAF Overlijdensrisicoverzekering

Ziekteprotocol. Avonturijn: Nieuwe Weg 5-01 n 7261 NL Ruurlo. info@avonturijn-ruurlo.nl

Waterdichte argumenten voor Ubiflex loodvervanger! Ik stel me niet bloot aan lood

imtech Arbodienst (versie 2.0)

Formaliteiten bij overlijden Informatie voor nabestaanden

Transcriptie:

Iformatietheorie Iformatietheorie Has Melisse j.b.m.melisse@its.tudelft.l

Iformatietheorie INHOUDSOPGAVE 0 Wat is iformatietheorie?...3 Wat is iformatie?... 5. Etropie...5 Commuicatiekaale.... Wederzijdse iformatie.... Kaaalcapaciteit... 3 3 Datacompressie... 5 3. Ileidig... 5 3. Ru-legth ecodig... 6 3.3 Woordeboekcompressie... 6 3.4 Het Pascal-driehoekalgoritme... 9 3.5 Prefixcodes... 0 3.6 Shao-Fao compressie... 3.7 Huffmacompressie... 3 3.8 Shao s brocoderigstheorema... 4 3.9 Adere algoritmes... 5 4 Foutcorrectie e detectie... 6 4. Foute... 6 4. Foutdetecterede codes... 6 4.. Pariteitbit... 7 4.. De EAN code... 7 4..3 De ISBN coderig... 8 4..4 De CRC code... 9 4..5 De KIX code va PTT Post... 30 4..6 Serieummers op bakbiljette... 3 4.3 Foutcorrigerede codes... 3 4.3. Votig codes... 3 4.3. Pariteitcotrole... 33 4.3.3 Hammigafstad... 34 4.4 Hammigcodes... 35 5 Literatuur... 38

Iformatietheorie 3 0 Wat is iformatietheorie? D it dictaat behadelt de grodbegisele va het vak Iformatietheorie. Het vak is rod 947 otstaa toe de Amerikaa Claude Shao zij artikel Mathematical Theory of Commuicatio publiceerde. Ee belagrijk resultaat uit dit artikel was dat je je opslagcapaciteit optimaal kut beutte e de hoogst mogelijke trasmissieselheid kut hale als je compressie e krachtige foutcorrectie toepast. Iformatietheorie houdt zich bezig met het volgede soort vrage: Wat is iformatie eigelijk precies? Hoe ku je ee hoeveelheid iformatie getalsmatig beschrijve? Hoe ku je iformatie op ee zo compact mogelijke maier opslaa e verzede? Wat is de maximale hoeveelheid iformatie die over ee bepaald kaaal ka worde verzode? Hoe ku je iformatie veilig verzede? Hoe costateer je foute i verzode e opgeslage iformatie? Is het mogelijk om zulke foute a afloop og te corrigere? Hoe verstuur je iformatie over ee obetrouwbaar kaaal? Het gaat er dus eigelijk om iformatie te kwatificere (i getalle te vage) e om de trasmissie va data te optimalisere e betrouwbaar te make. We zulle os daarbij beperke tot discrete iformatiebroe. Hieroder zie je ee eevoudig model dat overdracht va data beschrijft. Je hebt daari te make met ee bro va iformatie: ee zeder, vervolges ee kaaal waarover de iformatie wordt verstuurd e teslotte ee plek waar de iformatie aar toe gaat: de otvager. Het ka hierbij gaa om iformatie die va de ee plak aar de adere wordt verzode (datatrasmissie), maar ook om data die wordt opgeslage om later weer te worde geraadpleegd. Fig. : Eevoudig iformatiemodel Ee kaaal ka bijvoorbeeld zij: ee telefoolij (elektrische sigale door ee koperdraad of licht door ee glasvezelkabel), de ether (ee radiosigaal, elektromagetische stralig, maar ook akoestische trasmissie (geluid)), ee laser i ee CD drive die ee sigaal leest va ee CD-ROM of DVD, ee magetisch opslagmedium, zoals ee harddisk. Ee iformatiekaaal ka oderhevig zij aa ruis. Dat beteket dat je de otvage iformatie iet helemaal kut vertrouwe. Ruis ka bijvoorbeeld worde veroorzaakt door kosmische stralig, bliksem, krasse e vuil op ee CD, overspraak (beïvloedig door ee ader kaaal), thermische ruis uit ee elektroische compoet. Ruis maakt dat ee sigaal aders ka worde otvage da het wordt verstuurd. Ee deel va ee bericht wordt da bijvoorbeeld iet otvage of ojuist geïterpreteerd. Dek hierbij bijvoorbeeld ook aa ee harde schijf met bad sectors.

Iformatietheorie 4 I ee igewikkelder iformatiemodel wordt de data door de zeder bewerkt om de datatrasmissie veiliger, efficiëter e/of betrouwbaarder te late verlope. Zo kue door de zeder de volgede stappe worde afgewerkt:. Datareductie I deze stap wordt alle overbodige iformatie uit het bericht gehaald. Uit ee source-file voor ee compiler kue bijvoorbeeld veel overbodige spaties worde verwijderd.. Brocoderig (datacompressie) De data die overblijft wordt vervolges zo compact mogelijk gecodeerd om zo weiig mogelijk geheuge of badbreedte va ee trasmissiekaaal te gebruike. Voorbeelde zij ZIP voor data e MPEG voor beeld e geluid (MP3). 3. Vercijferig (ecryptie) Om te voorkome dat de data te eevoudig te leze is voor buitestaaders ka het bericht vervolges worde vercijferd (versleuteld, ge-ecrypt) met behulp va ee geheimschrift. Veelgebruikte algoritmes zij DES e RSA. Dit soort algoritmes is erop gebaseerd dat het krake va zo algoritme te veel reketijd zou koste. 4. Kaaalcoderig (foutdetectie/-correctie) I de laatste slag wordt het bericht zodaig gecodeerd dat evetuele foute die tijdes het verzede optrede kue worde gedetecteerd, of gecorrigeerd. Dit gebeurt door middel va foutdetecterede of foutcorrigerede codes, die bepaalde extraatjes aa de data toevoege om daarmee evetueel opgetrede foute te kue costatere of zelfs te reparere. Dek hierbij aa ee pariteitsbits, of aa de Reed-Solomocoderig die voor CD s wordt gebruikt. De volgorde i deze stappe is essetieel. Kaaalcoderig moet als laatste plaatsvide wil de foutcorrectie e detectie zij werk kue doe. Brocoderig moet als eerste plaatsvide omdat vercijferig de structuur va de data ka verstore, waardoor efficiëte compressie vaak iet meer mogelijk is (Radom data is amelijk iet te comprimere). Vervolges wordt de iformatie via ee discreet kaaal verzode. Dit ka bijvoorbeeld wel betekee dat het sigaal gemoduleerd wordt e als ee aaloog sigaal door de ether gaat e vervolges weer a AD-coversie (Aaloog Digitaal) door de otvager ka worde bewerkt. Tijdes het verzede ka door ruis weer vervormig va het sigaal optrede. De otvager moet vervolges alle processtappe va de zeder i omgekeerde volgorde doorlope: kaaaldecoderig, otcijfere, brodecoderig e datarecostructie. I dit dictaat zulle we aadacht bestede aa iformatie-ihoud (etropie), datacompressie e foutdetecterede e corrigerede codes. Versleutelig komt aa bod i het dictaat Cryptografie.

Iformatietheorie 5 Wat is iformatie?. Etropie Voor de Sahara wordt door ee weerstatio dagelijks ee regevoorspellig afgegeve. De iformatiebro geeft twee mogelijke soorte iformatie: rege of droog. Nu is de kas op rege i de Sahara miimaal, dus het bericht droog heeft ee zeer grote kas. Hierdoor bevat het bericht metee ook weiig iformatie, wat de ihoud is behoorlijk voorspelbaar. Als je gokt dat de voorspellig voor de volgede dag droog zal luide, da heb je vrijwel altijd gelijk. Het bericht rege heeft daaretege ee zeer kleie kas, e daarmee ee grote iformatie-ihoud. Dit voorbeeldje maakt duidelijk dat iformatie iets met kase te make heeft. Iformatie geeft je atwoord op ee vraag, waarva je het atwoord og iet (met zekerheid) kede. Iformatie helpt je va bepaalde ozekerhede af. Zo vraag ka bijvoorbeeld ook zij: Wat zou het volgede bit va dit bericht zij?, die je stelt terwijl je ee databestad aa het bekijke bet. Om precies te zegge wat iformatie is hebbe we het begrip kasruimte odig, wat i de iformatietheorie wordt ee iformatiebro gezie als ee opeevolgig va gebeurteisse die ee bepaalde kasverdelig hebbe. De iformatie-ihoud is iet afhakelijk va de precieze ihoud va het bericht (de sematiek va de iformatie) maar allee va de kas daarop. Als op ee bepaalde dag de kas op rege i de Sahara /50000 is e de kas op ee beurscrash ook /50000, da zit er eveveel iformatie i de mededelig Het gaat morge regee, als i de bewerig Morge crasht de beurs. Ee bija zekere gebeurteis bevat weiig iformatie e uitsluitsel over ee zeer ozekere uitkomst bevat veel iformatie. Ee iformatiebro zulle we opvatte als ee geerator va symbole (letters) die kue worde gekoze uit ee eidig alfabet. Zo alfabet is bijvoorbeeld: { rege, droog }, of {0, } voor ee biair bericht, of de ASCII- of uicodetabel voor ee tekst. Iformatie bestaat dus uit ee opeevolgig va symbole die iet voorspelbaar zij (aders zou de iformatieihoud amelijk ul zij). Elk volged symbool i de tekst heeft ee bepaalde kas. Vaak zij die kase gerelateerd. Als i ee Nederladse tekst ee q voor komt, is de kas zeer groot dat het volgede symbool ee u is, veel groter da de kas op ee u i het algemee. Toch zulle we voorlopig eve aaeme dat de kase va de symbole oafhakelijk va elkaar zij. Zo iformatiebro heet ee geheugeloze iformatiebro (zero-memory iformatio source). Deze bro heeft gee geheuge, hij weet bij het verzede va ee symbool het vorige iet meer, zodat er gee correlatie is tusse opeevolgede symbole. Ee kasruimte is ee verzamelig va eidig veel mogelijke gebeurteisse X = {x, x,, x } met bijbehorede kase p, p,, p (ook wel geoteerd als p(x ), p(x ),, p(x )). Dit zij getalle tusse 0 e : 0 p j. Er treedt altijd éé va de mogelijke gebeurteisse op, dus de som va alle kase is gelijk aa : p p p =. Dek bijvoorbeeld aa het gooie met twee dobbelstee. De kas dat je gooit is /36 (dit ka amelijk op éé maier: ), de kas op 3 (= = ) is /36, de kas op 7 (= 6 = 5 = 3 4 = 4 3 = 5 = 6 ) is 6/36, etc. De som va alle kase is altijd gelijk aa : 36 3 4 5 6 5 4 3 36 = =. 36 36 36 36 36 36 36 6 36 36 36 Je kut ook deke aa iformatie i ee tekstbestad. Elk symbool is gekoze uit ee alfabet, ee collectie va symbole, bijvoorbeeld: {0,} voor ee biair gecodeerd bestad, of de

Iformatietheorie 6 ASCII karakters. Je weet ooit wat het volgede symbool zal zij, wat elk symbool heeft ee bepaalde kas om voor te kome. Als we kwatitatief wille prate over iformatie zulle we er ee getal aa moete toekee. Dit getal hagt allee af va de kas, de ozekerheid va ee gebeurteis (atwoord op ee vraag) e iet va de gebeurteis zelf. Het getal is groot voor gebeurteisse met ee kleie kas e klei als de kas i de buurt va de komt (ee bija zekere gebeurteis). We otere die iformatie-ihoud va ee kas p eve met I(p). Voor deze I(p) moet er ee speciale eigeschap gelde. Als je amelijk twee oafhakelijke gebeurteisse hebt die respectievelijk kas p e p hebbe, da is de kas dat ze allebei plaatsvide gelijk aa p x p (Let wel: allee als de gebeurteisse oafhakelijk zij!). Dit beteket dat de iformatie va deze gezamelijke gebeurteis gelijk is aa I(pp). Echter, omdat de gebeurteisse oafhakelijk zij (ze beïvloede elkaar iet) krijg je uit het tegelijkertijd plaatsvide va de twee gebeurteisse eveveel iformatie als waeer de gebeurteisse apart hadde plaatsgevode. De totale hoeveelheid iformatie is dus de som va de hoeveelheid iformatie i elk va de twee gebeurteisse: I(p ) I(p ). Dat beteket dat er moet gelde: I(p p ) = I(p ) I(p ). Ee fuctie die hieraa voldoet is de logaritme: log (p p ) = log p log p. I 97 voerde Hartley ee maat i voor de hoeveelheid iformatie i ee gebeurteis met uitkomst x j e kas p j, amelijk: I(x j) = log p j. Dit heet ook wel de zelfiformatie. Als ee gebeurteis kas heeft, is de iformatie-ihoud gelijk aa 0, wat: log = 0. Zo gebeurteis vidt zeker plaats e bevat dus gee iformatie, je leert iets ieuws va de uitkomst, wat die wist je al. Ee gebeurteis met ee kleie kas heeft ee grote iformatie-ihoud: als de kas op ee gebeurteis bijvoorbeeld /6 is, da is de iformatie-ihoud: - log(/6) = 4. Voor heel kleie kase wordt de iformatie-ihoud zeer groot. De rede voor de logaritme i de formule voor iformatiedichtheid zage we eerder al. Als twee gebeurteisse oafhakelijk zij, da is de kas op de gezamelijke gebeurteis gelijk aa p p. Bijvoorbeeld: de kas om ee 6 te gooie met ee dobbelstee (kas /6), e vervolges ee 3 (kas /6) is (/6) x (/6) = /36. De iformatie-ihoud va deze twee gebeurteisse same is: log (p p ) = log p log p, e dat is dus gelijk aa de som va de twee iformatie-ihoude afzoderlijk. Dit klopt met je gevoel over hoe dit met iformatie moet gaa: de totale hoeveelheid iformatie i twee berichte die iets met elkaar te make hebbe is gewoo de som va de twee afzoderlijke iformatie-ihoude. De rede voor het grodtal i de log is dat de iformatie-ihoud wordt uitgedrukt i bits per gebeurteis. Als je N symbole hebt met dezelfde kas, da heeft elk symbool N bits aa iformatie. Die N bits heb je amelijk odig om elk va de symbole te kue opslaa. Ee adere maier om dit te zegge is dat je N ja-ee vrage moet stelle om achter het juiste symbool te kome. De kas op ee symbool is / N e log (/ N ) is da precies gelijk aa N. Nu we wete wat de iformatie-ihoud va ee gebeurteis is kue we het ook hebbe over de gemiddelde hoeveelheid iformatie i de totale kasruimte, ook wel etropie geaamd. Die krijg je door de hoeveelheid iformatie i gebeurteis x j te vermeigvuldige met zij kas, e dit op te telle voor alle mogelijkhede. Ee gewoge gemiddelde va de hoeveelhede iformatie per gebeurteis, gewoge met de kas daarop. Dit is i het algemee de maier om ee gemiddelde i ee kasruimte te bepale:

Iformatietheorie 7 H(X) = p j I( x j ) j = = p j = j log p = p log p p log p p log p. j Dit getal moet je iterpretere als het aatal bits dat gemiddeld aa iformatie i deze kasruimte aawezig is voor éé gebeurteis. Het is ee maat voor de gemiddelde ozekerheid i de iformatiebro, de ovoorspelbaarheid va de symbole die de bro geereert. Het begrip etropie komt oorsprokelijk uit de thermodyamica. Daar is het ee maat voor de waorde i ee systeem. Geordede systeme (bijvoorbeeld kristalstructure) hebbe ee lage etropie, waordelijke (bijvoorbeeld water) ee hoge (e ee hogere temperatuur da de geordede versie). Voorbeeld: Bij het gooie met éé dobbelstee hebbe we bijvoorbeeld zes gebeurteisse, allemaal met kas /6, dus H = 6 log = log 6 = log 6 =,58496 bits. 6 6 log Dit is precies het aatal bits dat je (gemiddeld) odig hebt om ee getalle va t/m 6 te kue represetere. Voorbeeld: Bij het gooie met twee dobbelstee zij er zesedertig gebeurteisse, allemaal met kas /36 (eerst ee 3 e da ee 4 is iets aders da eerst ee 4 e da ee 3, dus H = log 36 36 log = log36 = = 5,699 bits = x,58496 bits. 36 36 log Dit is precies tweemaal de iformatie va éé worp. De twee worpe hebbe iets met elkaar te make, dus dat is logisch. Voorbeeld: Als je bij het gooie met twee dobbelstee allee aar het totale aatal gegooide pute kijkt zij er elf gebeurteisse met de volgede kase: De etropie is u: pute maiere kas /36 3 = /36 4 3==3 3/36 5 4=3=3=4 4/36 6 5=4=33=45 5/36 7 6=5=34=43=5=6 6/36 8 6=35=44=53=6 5/36 9 36=45=54=63 4/36 0 46=55=64 3/36 56=65 /36 66 /36 H = 36 log 36 36 3 log 36 36 3 log... 36 36 log 36 = 3,7440... bits. Je ziet dat de som va de oge mider iformatie bevat da waeer je de uitslag va elke dobbelstee weet, zoals i het vorige voorbeeld.

Iformatietheorie 8 Voorbeeld: Bij het werpe met twee dobbelstee ku je ook allee op de uitslage lette, zoder de volgorde va de dobbelstee erbij te betrekke, zoals je dat eigelijk altijd doet als je met twee dobbelstee gooit. Twee gelijke (zes mogelijkhede) hebbe da ee kas /36 e twee iet-gelijke oge (5 maiere) ku je op twee maiere gooie, die hebbe dus kas /36. De etropie wordt da H = 6 log 5 log = 4,33659... bits. 36 36 36 36 Dit geeft mider iformatie da waeer je va de eerste e de tweede dobbelstee apart weet wat ermee is gegooid, maar je hebt meer iformatie da waeer je allee de som weet. Voorbeeld: Ee TV scherm is opgebouwd uit 576 lije met 70 pixels per lij. Elke pixel ka 0 verschillede grijswaarde aaeme. Als we er vauit gaa dat elke mogelijkheid eve waarschijlijk is, da krijge we = 0 4470 verschillede beelde. De kas op éé zo beeld is p = / e de etropie is H = j= p log p = p log p = log p = log = log 0 4470 = 4470 log0 = = 4470 log 6 0 log 776. 0.3776 06 bits = kbyte = 68.7 kb. 8 04 Er zit dus zo 68 kilobyte aa iformatie i éé zo TV-beeld. Dit is ook precies het aatal bytes dat je odig hebt om éé zo beeld biair te codere. Voorbeeld: I ee 4x4 vierkat is éé hokje gearceerd. Hoeveel iformatie is er bevat i dit vierkat? Hoe ku je uitvide welk vierkat gearceerd is? Door te vrage: Is het?, Is het?, etc. Dit is iet zo itelligete maier, wat gemiddeld heb je 8,5 vrage odig, e i het ergste geval moet je 6 vrage stelle. Dat beteket dat je 6 bits odig hebt om de atwoorde te kue represetere. 3 4 5 6 7 8 9 0 3 4 5 6 Je kut ook vrage: Zit het vierkat i de boveste helft?, Zit het i de likerhelft? Met deze twee vrage weet je i welk x vierkat het kleie vierkatje zit. Door de twee vrage og ee keer te stelle ku je vervolges het vierkatje precies lokalisere. Hiervoor heb je dus 4 bits odig. Ee adere maier om dit te zie is als volgt: Je kut de positie va het vierkatje i het vierkat aaduide met ee getal va t/m 6. Biair ku je dit i 4 bits represetere. De etropie is i dit voorbeeld: 6 H = log = log 6 = 4 bits. 6 6 j = Er zit dus ook precies aa iformatie i wat we hierbove hebbe gevode. Ee biair symmetrische iformatiebro (Biary Symmetric Source) is ee bro die twee boodschappe (0/) ka afgeve met kase respectievelijk: p e -p (Bijvoorbeeld oze regevoorspellig i de Sahara). De etropie va deze iformatiebro is: H = p log p ( p) log ( p).

Iformatietheorie 9 Fig. : Etropie va ee biair symmetrische bro als fuctie va de kas p. I de figuur zie we dat de etropie maximaal is als p = 0,5, dat wil zegge, als beide atwoorde eve waarschijlijk zij. De maximale iformatie-ihoud is bit per bericht. Dat is ka moeilijk aders, omdat er maar éé bit per bericht wordt verstuurd. Als de kas p klei is, da is ook de etropie klei, bijvoorbeeld voor p = 0,05 is de etropie H = 0,8639 bit per bericht. De iformatie-ihoud va ee 0 is groot: log 0,05 = 4,3, maar de kas erop is klei: 0,05. De iformatie-ihoud va ee is klei: log 0,95 = 0.074, maar de kas erop is groot: 0,95. Als éé va de twee mogelijkhede met zekerheid optreedt (p = 0 of p = ), da is de etropie gelijk aa 0. Er zit gee iformatie i zo gebeurteis, omdat je zeker weet wat het atwoord zal worde. Als je p=0 i de formule va de etropie ivult zie je dat er ee probleempje optreedt. Je krijgt da amelijk -0 x log 0 e dat is 0 x, dus het is iet direct duidelijk wat daar uit komt. Er komt 0 uit, e dat ku je op twee maiere zie. De eerste is door p log p op de rekemachie uit te rekee voor steeds kleiere waarde va p. Je ziet dat er da ee steeds kleiere waarde uit komt e je kut je er zo va overtuige dat er wel ul uit zal kome. De tweede maier is etter e levert echt ee bewijs dat het zo is: lim ε ε 0 logε = ( eem ε = x ) lim x x x x = lim x x = 0, wat x gaat veel seller aar oeidig (expoetieel) da x (lieair). We hebbe gezie dat de etropie bij twee uitkomste maximaal is als de twee uitkomste gelijke kase hebbe. Dit resultaat geldt algemeer. Als er N mogelijke uitkomste zij (letters i het alfabet), da is de etropie maximaal als alle kase gelijk zij, als alle gebeurteisse (letters) eve waarschijlijk zij. Er geldt dus: 0 H(X) log N. De etropie is maximaal (amelijk log N) als alle kase gelijk zij. I dit geval is er de grootst mogelijke oduidelijkheid over het volgede symbool. Het ka elk symbool zij met gelijke kas, gee ekel symbool heeft ee voorkeurspositie. De etropie is miimaal (amelijk 0) als éé symbool kas heeft. I dat geval weet je zeker welk symbool er als volgede komt e is de iformatie-ihoud dus ul. Voorbeeld: De etropie va ee Nederladse tekst. Als je de 6 letters i ee Nederladse tekst biair wilt opslaa, da heb je mistes log 6 = 4,700 bits per letter odig (als we eve uitgaa va allemaal kleie letters). I de praktijk wordt dit vaak 5 bits/letter, omdat je ook de spatie e wat lettertekes als put e komma wilt kue represetere. Volges het etropiebeeld is deze represetatie met 4,7 bits/letter

Iformatietheorie 0 allee optimaal als alle letters precies eve vaak voorkome. I ee gewoe tekst is dat zeker iet het geval. I ormaal Nederlads komt bijvoorbeeld de letter e vaak voor, e de letter q auwelijks. Als je met de letterfrequeties va de Nederladse taal de etropie uitreket, kom je op 4,5 bits/letter (hoewel dit og afhakelijk is va het type tekst, va het gebruikte vakjargo). De etropie is dus kleier da de waarde 4,700 die je zou krijge als alle symbole eve waarschijlijk zij. Dit wordt veroorzaakt door het feit dat sommige letters veel vaker voorkome da adere. Als je ook og de cotext va de letters meeeemt (welke combiaties, of woorde kue voorkome?), da blijkt de etropie og veel lager te zij, ogeveer,5.

Iformatietheorie Commuicatiekaale Geld moet rolle e ook iformatie is utteloos als ze iet uitgewisseld ka worde. We zulle u ee aatal eigeschappe va iformatiekaale bekijke.. Wederzijdse iformatie De wederzijdse (gemeeschappelijke) iformatie is zoiets als de hoeveelheid iformatie (de ozekerheid) over ee voorval X, als ee voorval Y plaatsvidt. Je kut i ee commuicatiesysteem de verzode boodschap als X zie e de otvage boodschap als Y. Bij ormale verzedig wil je de wederzijdse iformatie tusse het verzode e het otvage bericht zo groot mogelijk hebbe: Als je ee boodschap verstuurt, wil je hem amelijk zo volledig mogelijk otvage. Als je ee boodschap versleutelt, wil je dat de wederzijdse iformatie tusse origieel bericht e versleutelde boodschap juist miimaal is: Iemad die de versleutelde boodschap otvagt moet daaruit iets te wete kue kome over het origieel. De wederzijdse iformatie tusse twee berichte die iets met elkaar te make hebbe moet atuurlijk ook zo klei mogelijk zij. De wederzijdse iformatie va twee iformatiebroe X e Y is gedefiieerd als p( x, y) I( X, Y) = p( x, y) log (bits). p( x) p( y) x X, y Y Je moet hierbij sommere over alle mogelijke combiaties va ee letter x uit het alfabet va X e ee letter y uit het alfabet va Y. Deze letters hebbe kase p(x) e p(y). De kas p(x,y) is de kas dat x e y gelijktijdig optrede. Als de twee iformatiebroe oafhakelijk zij, da is de kas dat x e y tegelijk optrede gelijk aa het product va de kase op x e y apart: p(x,y) = p(x)p(y). Dit beteket dat er i de formule telkes log = 0 staat, dus de wederzijdse iformatie is da gelijk aa ul. Voorbeeld: Voor ee biaire bro geldt dat p i(0) = 0,4 e p i() = 0,6. Dit sigaal gaat door ee kaaal, dat de iformatie doorgeeft met ee foutkas va 5%. Dat beteket dat p(0,0) = 0,4 x 0,95 = 0,38, p(,) = 0,6 x 0,95 = 0,57, p(0,) = 0,4 x 0,05 = 0,0 e p(,0) = 0,6 x 0,05 = 0,03 (p(0,) is bijvoorbeeld de kas dat er ee 0 i het kaaal gaat, terwijl er ee uitkomt). Op de uitgag krijg je dus ee 0 met kas p uit(0) = p(0,0) p(,0) = 0,4 x 0,95 0,6 x 0,05 = 0,4 (ee 0 op de igag die goed door het kaaal gaat, of ee die er fout doorhee gaat). De kas op ee is p uit() = 0,4 x 0,05 0,6 x 0,95 = 0,59. De wederzijdse iformatie tusse igag X e uitgag Y is da p(0,0) p(0,) I ( X, Y) = p(0,0) log p(0,) log pi (0) puit (0) pi(0) puit () p(,0) p(,) p (,0) log p(,) log = p () p (0) p () p () i uit = 0,46065-0,07 0,0906 0,397 = 0,6900 bits. De wederzijdse iformatie ku je zie als de iformatie die va X aar Y gaat. I het bovestaade voorbeeld beteket dat bijvoorbeeld dat va de etropie va H(X) = -0,4 log 0,4 0,6 log 0,6 = 0,9709 bits i uit

Iformatietheorie die het kaaal i gaat, gemiddeld 0,6900 bits worde doorgegeve doordat er ee trasmissiefout va 5% wordt gemaakt. Er zij twee extreme situaties i het bovestaade voorbeeld die we kue bekijke. De eerste situatie treedt op als de iput e de output va het kaaal volledig ogerelateerd zij, oafhakelijk va elkaar. I dat geval geldt bijvoorbeeld p(0,) = p i(0)p uit(), er is gee verbad tusse het optrede va ee 0 aa de igag e ee aa de uitgag. Aaloge formules gelde voor alle adere gezamelijke kase. De wederzijdse iformatie is i dat geval gelijk aa 0, zoals je zou verwachte. Er is gee iformatieoverdracht tusse igag e uitgag. I de tweede situatie is het kaaal perfect. Ee 0 of ee wordt ook precies als ee 0 of ee doorgegeve. Dat beteket dat p(0,0) = p i(0) e p(,) = p i(): als er ee 0 op de ivoer staat wordt de 0 aar de uitvoer doorgegeve. Verder is p(0,) = p(,0) = 0: er ka gee bit fout worde doorgegeve, ee bit ka i het kaaal iet va teke veradere. Hierdoor is ook p i(0) = p uit(0) e p i() = p uit(). Voor de wederzijdse iformatie krijge we: p(0,0) p(0,) I ( X, Y) = p(0,0) log p(0,) log pi(0) puit (0) pi(0) puit () p(,0) p(,) p (,0) log p(,) log = pi () puit (0) pi () puit () = pi (0) log pi () log = H ( X ). p (0) p () i De wederzijdse iformatie is dus voor ee perfect kaaal gelijk aa de etropie die je eri stopt: Alle iformatie die je eri stopt komt er doorhee. I het algemee geldt voor ee kaaal waari foute worde gemaakt, dat va de iformatie H(X) die eri wordt gestopt maar ee deel overkomt, amelijk: I(X,Y). Er geldt: 0 I(X,Y) H(X) H(Y). De eerste ogelijkheid 0 I(X,Y) zegt dat I(X,Y) iderdaad ee iformatiemaat ka zij. Er gaat altijd iets positiefs va igag aar uitgag. I het ergste geval is de overgedrage iformatie gelijk aa ul. Dat ka allee als X e Y oafhakelijk zij. De tweede ogelijkheid I(X,Y) H(X) zegt dat ee kaaal ooit meer iformatie ka doorspele da eri wordt gestopt (amelijk H(X)). Het kaaal ka wel lekke: er ka mider door gaa (I(X,Y)) da eri komt (H(X)). De derde ogelijkheid H(X) H(Y), zegt dat ee kaaal met ruis de iformatie-ihoud iet kleier maakt. Dat wil zegge dat de ozekerheid over het volgede symbool mistes eve groot is als de ozekerheid va het symbool dat je eri stopt. Dat komt omdat de uitvoer als gevolg va ruis meer radom is da de ivoer (Je heriert je dat ee volledig radom sigaal de maximale etropie heeft e dus ook de maximale hoeveelheid iformatie). I het bovestaade voorbeeld met ee foutkas bego je met kase 0,4 e 0,6 voor ee 0 e ee. Na het kaaal is dat 0,4 e 0,59. Dat lijkt meer op de radom verdelig 0,5 e 0,5. De etropie eemt daardoor ook toe: H(X) = -0,4 log 0,4 0,6 log 0,6 = 0,9709 bits, H(Y) = -0,4 log 0,4 0,59 log 0,59 = 0,896 bits. i Als ee voorbeeld va wat er i ee kaaal aa het origieel ka veradere is ee keer het volgede Egelse gedicht i het Fras vertaald, e vervolges door ee adere vertaler weer terugvertaald i het Egels. De origiele tekst was als volgt:

Iformatietheorie 3 The turtle lives twixt plated decks Which practically coceal its sex. I thik it clever of the turtle I such a fix to be so fertile. Na vertalig i het Fras e weer terug aar het Egels stod er: The turtle lives i a scaled carapace which i fact hides its sex. I fid that it is clever for the turtle to be so fertile i such a tricky situatio.. Kaaalcapaciteit We hebbe gezie dat de wederzijdse iformatie I(X,Y) ee maat is voor de hoeveelheid iformatie die door ee kaaal hee komt. Deze hoeveelheid hagt og af va de kase va de symbole i X. Je kut je voorstelle dat je deze kase zodaig bijstelt dat je ee maximale hoeveelheid iformatie door het kaaal hee krijgt. De kaaalcapaciteit is da ook gedefiieerd als C = max I(X,Y). p( x) I het algemee is deze waarde voor ee kaaal moeilijk uit te rekee. We bekijke u ee simpele situatie waarvoor dit wel gaat: Ee eevoudig model voor datatrasmissie over ee gestoord kaaal is het Biair symmetrisch kaaal (Biary Symmetric Chael BSC), zie de volgede figuur: Het biair symmetrische kaaal (BSC). Over het kaaal worde bits verstuurd, maar er is ee kas p dat de trasmissie ee fout itroduceert. Ee 0 wordt dus met kas p ee, e ee wordt met kas p ee 0 (gelijke kase, vadaar symmetrisch). Het kaaal is ook geheugeloos, et als bij ee dobbelstee: de foutkase hage iet af va eerder verzode bits. De kaaalcapaciteit voor dit kaaal blijkt te zij: C = p log p (-p) log (-p). Als de foutkas p gelijk is aa ul is de kaaalcapaciteit maximaal: gelijk aa. Alle iformatie komt door het kaaal. Hetzelfde geldt als p = (allee worde 0 e da omgekeerd i het proces). Als p = 0,5, da is de kaaalcapaciteit gelijk aa 0. Er komt gee iformatie meer door het kaaal. De kas op ee 0 of ee op de uitgag is 0,5, oafhakelijk va de ivoer.

Iformatietheorie 4 Als er foute kue optrede i ee kaaal zal dit de etropie doe toeeme. Dit lijkt i eerste istatie misschie tegestrijdig. Je voegt ruis toe e krijgt daardoor meer iformatie. Je moet iformatie hier echter zie als ozekerheid. De ozekerheid eemt toe. Etropie als fuctie va de kas a op ee 0 vóór (oder) e á (bove) ee BSC met foutkas 0%.

Iformatietheorie 5 3 Datacompressie 3. Ileidig I dit hoofdstuk gaa we i op datacompressie. De bedoelig va datacompressie is om iformatie zo compact mogelijk te codere. Dit ka gebeure om verzede seller e goedkoper te make of opslaa goedkoper e efficiëter te doe. Hierbij kue verschillede afwegige ee rol spele. Iformatie die gecomprimeerd wordt moet atuurlijk ook weer kue worde gedecomprimeerd. I het algemee wil je dat ee boodschap die je comprimeert precies zo is te decomprimere (lossless compressio), zoder dat er gegeves verlore gaa. Dit geldt met ame voor data. Daarbij ka ieder bit va belag zij. Als je ee tekstbestad opslaat wil je iet dat er a decompressie hier e daar letters zij verdwee of zij veraderd. I adere toepassige is het soms iet zo erg als er wat verlies va gegeves optreedt. Het ka zij dat trasmissieselheid of beperkte opslagcapaciteit hier veel belagrijker zij e de doorslag geve. Zo is het bij het opslaa va audio- e videoiformatie mogelijk om ee gedeelte va de iformatie weg te late zoder dat de uiteidelijke kwaliteit daar merkbaar oder lijdt. Er wordt da gesproke va lossy compressio, of irreversibele compressie, compressie die je iet voor 00% kut recostruere, omdat je echt iets weglaat. De DCC recorder maakt(e) bijvoorbeeld gebruik va het feit dat i harde muziekpassages het oor bepaalde frequeties toch iet meer ka oderscheide. Die iformatie ku je dus weglate. I bewegede beelde ka de resolutie va de afzoderlijke beelde beduided lager zij da bij ee stilstaad beeld. Door de bewegig va de beelde e de traagheid va het oog wordt er ee zekere scherpte gesuggereerd e is het resultaat veel acceptabeler da je op grod va de afzoderlijke beelde zou ischatte. I het JPEG (Joit Photographics Experts Group) algoritme, dat wordt gebruikt voor compressie va plaatjes, wordt ook ee lossy compressietechiek toegepast. De mate va geheugeverlies is daarbij i te stelle. Het is duidelijk dat hoe meer verlies je toestaat, hoe beter je compressie ka zij, maar hoe slechter de kwaliteit va het plaatje. I de ultieme lossy compressie comprimeer je alles i éé bit. Je hebt da weliswaar ee feomeale compressieverhoudig, maar het zal duidelijk zij dat het zelfs met zeer veel moeite iet mogelijk is om uit deze ee bit weer eige relevate iformatie te decomprimere. Wij zulle i het vervolg aadacht bestede aa verliesvrije compressie. De bruikbaarheid va ee compressiealgoritme wordt door ee drietal aspecte bepaald.. Allereerst is er de compressiefactor. Hoeveel procet wordt het bericht kleier?. Vervolges is va belag hoeveel tijd de compressie va de data i beslag eemt. 3. Teslotte is ook de decompressietijd belagrijk. Hoeveel tijd kost het om over de data te kue beschikke? Voor veel toepassige is de compressiefactor het belagrijkst, wat dat heeft te make met koste e beschikbare ruimte va opslag, of beodigde badbreedte va ee kaaal. Het bereike va ee hoge compressiefactor beteket i het algemee ee igewikkeld algoritme dat ee optimale coderig moet vide, e daardoor veel compressietijd i beslag eemt, e misschie ook wel veel decompressietijd. Die tijd is er iet altijd. Als je ee telefoogesprek digitaal via ee ATM etwerk wilt voere is de gemiddelde gebruikte badbreedte va belag, dus ligt het voor de had om compressie toe te passe. Compressie e decompressie moete echter razedsel kue gebeure, aders wordt zo gesprek of film tamelijk oprettig. Soms zie je op de televisie telefoische iterviews die via ee satelliet lope, waaruit je ziet dat ee vertragig va ekele secode al heel erg hiderlijk ka zij voor het voere va ee ormaal gesprek. Iets soortgelijks geldt ook i iets midere mate voor video-o-demad systeme e bij fax, hoewel daar eigszis gebufferd ka worde.

Iformatietheorie 6 Soms mag compressie best lag dure, als decompressie maar razedsel gaat. Dek bijvoorbeeld aa ee ecyclopedie die gecomprimeerd op ee CD-ROM of DVD is opgeslage. Compressie mag lag dure, wat dat hoeft maar éé keer te gebeure, vóór het perse va de schijf. Het resultaat moet allee sel kue worde geraadpleegd, dus decompressie moet erg sel plaatsvide. Hetzelfde geldt i het algemee voor ee database die zuiig met geheuge moet omsprige, maar weiig beperkige op de accesstijd moet hebbe. Als de data eerst rustig va tevore mag worde gecomprimeerd ku je ook adere type algoritmes toepasse da waeer je o the fly moet comprimere e je iet weet wat er i het vervolg og aa data komt. I het eerste geval ku je eerst de hele tekst aalysere om te kijke hoe je het beste kut comprimere, terwijl je i het tweede geval moet comprimere terwijl je de data og bie moet krijge e je dus allee de beschikkig hebt over de data die tot da verzode is. De performace va ee compressiealgoritme ka sterk afhakelijk zij va het type data dat wordt gecomprimeerd. Om optimaal te fuctioere moet ee algoritme rekeig houde met de karakteristieke va de data. Dat beteket dat er i de praktijk vaak verschillede compressiemethode zij voor tekst, audio, grafische data, video, etc. 3. Ru-legth ecodig Het idee achter ru-legth-ecodig is simpel: Als ee bepaald symbool ee groot aatal male achter elkaar voor komt zou je dat korter kue codere door dat symbool maar éémaal oeme, met daarbij het aatal male dat het symbool voor komt. Bij ru-legth ecodig oderscheidt me twee soorte data i de origiele boodschap. Ee ru is ee rijtje va gelijke symbole. Dit wordt gecodeerd als ( ) met daarbij de code voor het symbool (omdat 0 e keer ee letter toch iet worde gecomprimeerd). Daaraast is er ee sequece, ee rijtje va m symbole waari gee rus voorkome. Ee sequece wordt iet gecomprimeerd e wordt gecodeerd als (m-), gevolgd door het rijtje, waari m de legte va de sequece is. Voorbeeld: het rijtje XXXXXXXXXPOPIEJOPIE wordt gecodeerd als -8X9POPIEJOPIE. Het is duidelijk dat er allee compressie optreedt als er lage rije va gelijke symbole voor kome. Dit is lag iet bij elk type iformatiebro het geval. Radom data is het ergste dat je kut hebbe. Hierbij treedt totaal gee compressie op. I tegedeel: de tekst wordt er door de overhead lager op. Ru-legth ecodig wordt wel gebruikt voor bitmap plaatjes. Daar komt het veel voor dat er grote vlakke met gelijke kleur zij. Dat levert lage rije va gelijke pixelwaarde op. Ru-legth ecodig wordt oder adere toegepast i het Widows bitmap formaat BMP e i TIFF. De oriëtatie va ee plaatje ka uitmake voor de compressieverhoudig die je kut hale. Het ka zij dat ee plaatje dat 90 o wordt geroteerd iees kleier wordt, doordat er i de kolomme lagere rus voor kome da i de rije. 3.3 Woordeboekcompressie Bij compressie wordt er vaak vauit gegaa dat bepaalde symbole vaker voorkome da adere. Op de ee of adere maier moet ee compressiealgoritme hierva gebruik make om compressie te bewerkstellige. Als voorbeeld kijke we aar ee taal met twee symbole: A e B (je mag hiervoor ook leze: 0 e ). We eme aa dat de A tweemaal zo vaak voor komt als de B. Om het og eevoudiger te make eme we aa dat er allee woorde va zes symbole worde ge-

Iformatietheorie 7 bruikt, die elk vier A s e twee B s bevatte. Deze aaame beteket dat we iet alle mogelijke 6 = 64 woorde met zes A s e/of B s hebbe, maar allee de volgede 5: Woord Nummer AAAABB 0 AAABAB AAABBA AABAAB 3 AABABA 4 AABBAA 5 ABAAAB 6 ABAABA 7 ABABAA 8 ABBAAA 9 BAAAAB 0 BAAABA BAABAA BABAAA 3 BBAAAA 4 De 5 overgebleve woorde kue we ummere va 0 tot e met 4, zoals dat i de tabel is te zie. Als we dit ummer gebruike om het woord te codere hebbe we per woord 4 bits odig. Hoe vergelijkt dit u met de gemiddelde hoeveelheid iformatie die i deze taal aawezig is? Hiervoor moete we de etropie uitrekee: H = log log = log3 = 0,98 bits/letter. 3 3 3 3 3 Dit is mider da de voor de had liggede coderig A 0, B, die bit per letter oplevert. Voor woorde va zes letters kome we met de etropie op 6 x 0,98 = 5,509 bits aa iformatie. Hoe ka dit u? We hebbe hier ee coderig gevode die maar 4 bits odig heeft, mider da er aa iformatie i de taal zit. Ee deel va de verklarig zit i het feit dat we meer hebbe verodersteld da dat de letter A ee kas /3 heeft e B ee kas va /3. We hebbe amelijk aageome dat i elk woord va zes letters lag deze kase exact zij. Als je dit algoritme amelijk uit wilt breide voor lagere woorde (tekste) zul je aast de coderig amelijk ook de legte va de tekst moete opeme. I os geval zou bijvoorbeeld het woord BAAABA de code 0.0 krijge (het woord is 0 = 6 letters lag, het ummer va het woord is 0 = ). Als we dit aatal letters meeeme hebbe we 7 bits odig i plaats va de 4 die we eerst hadde. Dit is iees beduided meer da de 5,5 die er volges de etropie i zitte. Toch is deze methode i het algemee og iet zo slecht. Het blijkt amelijk dat als je dit doet voor lagere tekste da de zes letter die we daaret hebbe bekeke, dat de compressie steeds beter wordt, e zelfs willekeurig dicht i de buurt ka kome va de waarde die door de etropie wordt gegeve. Dit zulle we u gaa afleide, ee smulpartij voor de liefhebber! We eme aa dat we ee tekst va N = 3 letters hebbe, amelijk A s e B s. Deze tekst wordt u gecodeerd als [N].[ummer]. Hieri is N de legte va de tekst e ummer is het ummer va de betreffede tekst i het woordeboek waari alle woorde (tekste) va N lag staa die uit A s e B s bestaa. Dit zal i het algemee ee zeer groot woordeboek zij. Het aatal woorde i dit woordeboek is amelijk

Iformatietheorie 8 )!!( )! (3 N =, het aatal maiere waarop je B s kut plaatse i ee rijtje va N = 3 symbole. I het algemee geldt dat de legte (i bits) va de gecodeerde tekst gelijk is aa N log N log. Om de waarde hierva te bepale voor grote waarde va hebbe we ee formule odig die de waarde va! voor grote waarde va goed beadert. Dit is de formule va Stirlig: e! π. De waarde va! wordt hieri uitgedrukt i machte. Je ziet hieruit dat! veel harder groeit da expoetieel. Het gaat bija als. Hieri wordt iet allee de expoet steeds groter, zoals bij expoetiele groei, maar ook het grodtal. Voor = krijge we bijvoorbeeld:! = 47900600, terwijl met de formule va Stirlig: 8,5 0 4,756... = e π. Deze beaderig is behoorlijk goed. De eerste twee cijfers e de grootteorde kloppe. Met de formule va Stirlig kue we de volgede beaderig make: ( ) ( ) ( ) ( ) ( ) ( ) = = 3 3 3 3 3!!! 3 e e e π π π π 3 3 3 3 3 = π π. Uit deze beaderig kue we ee beaderig voor de legte va oze code afleide: ( ) = = 3 3 log 3 log log log N N π log log log 3 3 log log3 π. Om het aatal bits per symbool te bepale moete we dit aatal dele door N = 3:

Iformatietheorie 9 log3 3 3 log3 log π 3 log log. Voor grote waarde va wordt dit (de laatste term, de breuk, wordt da steeds kleier): log3 = 0,98... bits per letter. 3 Dit is precies de waarde va de etropie, die we eerder al hadde uitgereked. We hebbe hiermee aagetood dat als we de coderig de legte va de tekst same met het ummer va de tekst i het woordeboek va alle tekste va N = 3 lag met A s e B s eme, dat we met deze compressie voor lage tekste i de buurt va de etropie kue kome. 3.4 Het Pascal-driehoekalgoritme Het algoritme dat we zo-eve hebbe bekeke codeert ee tekst waari ee vast aatal A s e B s i voorkome door ee woordeboek te make va alle mogelijke tekste met zoveel A s e B s. Deze tekste worde vervolges geummerd e het ummer va de correspoderede tekst wordt gebruikt als coderig. Nu is het i het algemee odoelijk om ee dergelijk woordeboek echt same te stelle. Voor tekstjes va 300 letters met tweemaal zoveel A s als B s bevat het woordeboek bijvoorbeeld 458546358564744783383563640 558080466005743648708663033657304756383400860 verschillede tekste. Dit is meer da het geschatte aatal atome i het heelal. Op ee atoom ku je moeilijk og ee tekst va 300 letters schrijve, dus moete we iets aders verzie. Dat is het Driehoek-va-Pascalalgoritme. Dit algoritme vidt bij ee bepaalde tekst ee ummer, e omgekeerd, bij ee ummer weer ee tekst. Hoe dit werkt late we zie aa de had va de tekst AABABA, va zes letters lag, die tweemaal zoveel A s als B s bevat (we eme eve aa dat er iet meer B s da A s zij, aders wissel je de rol va A e B om). Allereerst maak je ee driehoek va Pascal. Zo driehoek is opgebouwd met ee aa de rad e elk ader cijfer is telkes de som va de twee bovestaade cijfers (bijvoorbeeld = 6 5, zie de figuur hieroder). We hebbe u ee woord met 4 A s e B s. Je begit i de boveste. Da ga je 4 plaatse aar liksoder (voor de 4 A s) lags de rad, e vervolges plaatse aar rechtsoder (voor de twee B s), parallel aa de adere rad. Je komt da uit i 5. Vauit 5 maak je ee pad aar de boveste door het woord AABABA te doorlope. Voor ee A ga je éé plaats aar rechtsbove, voor ee B éé plaats aar liksbove. Als het woord op is be je i de boveste terechtgekome. Elke keer dat je i de B-richtig gaat schrijf je telkes het getal op dat je i de A-richtig zou hebbe bereikt. I os geval is dat 3 e. Deze getalle tel je op e je hebt het ummer va het woord AABA- BA: 3 = 4, ofwel biair: 000.

Iformatietheorie 0 Hoe vid je u uit ee ummer weer ee woord terug? Je moet da wete dat het ee woord is met vier A s e twee B s. Dat bregt je weer aar het getal 5. Vauit dit put ga je et zolag i de A-richtig totdat het getal wat je i de driehoek va Pascal krijgt kleier is da het ummer. Elke stap levert da ee A. Als het getal kleier of gelijk is aa het ummer trek je het va het ummer af e ga je éé stap i de B-richtig. Dat levert ee B. Daar doe je weer hetzelfde e probeer je weer zolag mogelijk i de A-richtig te gaa. Voor het ummer 4 krijg je zo bijvoorbeeld: 4 < 0 A 4 < 6 A 4 3, ummer 4 4 3 = B < A, ummer = 0 B 0 < A 4 is dus het ummer va AABABA. 3.5 Prefixcodes Het codere va iformatie per symbool ka op twee maiere: De eerste maier is dat je elk symbool codeert met ee codewoord va ee vaste legte. We hebbe hierva et ee voorbeeld gezie. Bij het decodere hoef je allee maar je vaste legte va de codewoorde te wete. Vervolges kip je de tekst die je moet decodere i allemaal stukjes va die legte e ku je elk va die stukjes (de codewoorde) decodere tot letters. Ee adere maier is om ee code gebruike waarva de legte va de codewoorde per symbool verschilt, om flexibeler te zij. I dat laatste geval heb je ee probleem bij het decodere, wat hoe weet je waar ee code eidigt e ee volgede begit? Je kut da iet meer telle e groepjes make die te decodere zij. Er zij hiervoor ee aatal mogelijke oplossige. De eerste is door gebruik te make va ee zogeaamde kommacode. Het idee is daarbij dat je de codewoorde scheidt met behulp va ee scheidigsteke, de komma. Je weet da dat ee codewoord begit a ee komma e ophoudt et voor de volgede komma. Deze code levert wel eige overhead, omdat je per woord ee komma moet gebruike. Als je bijvoorbeeld ee bericht biair wilt codere da moet je éé va de tekes reservere als komma. Je kut bijvoorbeeld de 0 daarvoor gebruike. Dat beteket helaas dat je maar éé symbool over hebt om codewoorde te make, amelijk de. Dat geeft je iet veel

Iformatietheorie vrijheid. Codewoorde zij da:,,,, etc. Ee tekst met deze biaire kommacode ka eruit zie als: 000000 Deze tekst bevat zeve codewoorde. Ee adere maier om ervoor te zorge dat je weet waeer ee codewoord is afgelope werkt als volgt: Tijdes het decodere voeg je telkes letters toe aa ee ieuw woord, totdat je ee codewoord uit de lijst vidt. Vervolges begi je aa het volgede woord. Je hebt zo gee scheidigsteke odig, maar het geeft wel ee restrictie aa de codewoorde. die je daarvoor kut gebruike. Ee codewoord mag amelijk iet het begi vorme va ee ader codewoord. Deze maier va codere heet ee prefixcode. Ee prefixcode is ee code waari gee ekel codewoord ook de prefix (het begi) is va ee ader codewoord (de codewoorde 0 e 0 moge dus iet tegelijk). Ee prefixcode is daarmee ee code die va liks aar rechts wordt geleze e otcijferd. De otvager bouwt ee woord op door telkes ee symbool toe te voege e te kijke of het ieuwe woord ee codewoord is. Als dat iet zo is wordt er ee letter aa het woord toegevoegd e als het wel ee codewoord is, wordt het vertaald e wordt er met het volgede symbool aa ee ieuw woord begoe. De codewoorde hoeve iet eve lag te zij e er wordt ook gee scheidig (komma) tusse de woorde aagegeve. Het gecodeerde bericht mag gee ekele fout bevatte, aders gaa het decodere otzetted mis! Ee suffixcode is bija hetzelfde als ee prefixcode, allee ga je da va achtere aar vore codere e decodere. Voorbeeld va ee prefixcode: E 0 O 0 I 0 L 0 B Nu is 000000 als volgt te decodere: 0-0-0-0--0-0 OLIEBOL. Voorbeeld va ee code die gee prefixcode is: A 0 B 0 C 00 Het bericht 00 ka u worde vertaald als C, maar ook als BA. Ook de volgede code is gee prefixcode: A B 0 C 00 I het bericht 0 ku je de eerste vertale door A, maar vervolges heb je ee probleem, wat de 0 era hoort iet meer bij ee codewoord, dus de otvager ka het bericht iet otcijfere. Dit komt omdat er ee codewoord (A e B) is waarva de code het begistuk vormt va ee adere code (B e C). De code is trouwes wel uiek te decodere, allee iet op de prefixmaier. Je moet hier et zolag letters toevoege tot het géé codewoord meer is. Ee letter er weer af geeft da het codewoord.

Iformatietheorie Er bestaat ee criterium waaraa je kut zie of ee prefixcode met bepaalde woordlegtes bestaat, amelijk de ogelijkheid va Kraft e McMilla: Ee biaire prefixcode met woordlegtes a, a,, a bestaat precies da als a a a. Zo ku je ee code make met woordlegtes,, 3, 3, maar iet met, 3, 3, 3, 3, 3, wat 9 =, maar = >. 4 8 8 8 8 8 8 8 8 Ee optimale prefixcode krijg je allee als de legte va ee codewoord met kas p gelijk is aa l = - log p. ( - log p beteket: aar bove afrode op ee geheel getal). Optimaal wil da zegge dat je ee optimale compressie krijgt. Prefixcoderig wordt bijvoorbeeld gebruikt bij de Shao-Faocompressie e bij Huffmacoderig die we hiera behadele. Het brocoderigstheorema va Shao zegt dat je met ee prefixcode ee compressie kut hale die ligt tusse de etropie H(x) e H(X). 3.6 Shao-Fao compressie I tekstbestade worde karakters meestal opgeslage als byte (ASCII, EBCDIC va IBM) of bytes (uicode odersteud door Java). I de praktijk blijkt dat sommige karakters veel vaker voor kome da adere. Je kut je voorstelle dat er wist te behale valt als je de veel voorkomede symbole met ee kortere code represeteert. Dit cocept wordt gebruikt bij Shao-Faocompressie (949). Elk symbool uit het alfabet wordt vervage door ee vaste prefixcode. Het idee is u om symbole die vaak voor kome ee korte code te geve, terwijl symbole die weiig voor kome best ee lagere code moge hebbe, juist omdat ze toch weiig voor kome. Het algoritme werkt als volgt:. Maak ee lijst met alle symbole e bepaal hoe vaak elk symbool voor komt (frequetie).. Orde de symbole aar frequetie, de meest voorkomede boveaa. 3. Verdeel de lijst i tweeë, zodaig dat de som va de frequeties i de boveste helft zo dicht mogelijk bij die va de oderste helft ligt (als er twee gelijke mogelijkhede zij kies je die waarbij de som i de boveste helft het grootst is). 4. De boveste helft krijgt het symbool 0, de oderste helft ee. 5. Pas stap 3 e 4 recursief toe op de elk va de twee helfte. Late we dit ees toepasse op de volgede regel: ege repelsteeltjes rede tege ee stee Hieri kome verschillede symbole voor, i totaal 4 symbole. We krijge de volgede oderverdelig: symbool aatal e 5 0 0 6 spatie 5 0

Iformatietheorie 3 t 4 0 0 s 3 g 0 0 l r 0 0 d j 0 p De eerste scheidig deelt de aatalle precies doormidde: e = 56 =, spatietsgl rdjp =. I de tweede helft ku je de volgede scheidig op twee maiere make: spatiet = 9, rest =, of spatiets =, rest is 9. We kieze de tweede. Het codewoord va ee letter krijg je u door de bijbehorede ulle e ee i de tabel va liks aar rechts te leze, bijvoorbeeld: e is 00, e g is 00. De code die we zo krijge is ee prefixcode. Zo wordt de vaak voorkomede gecodeerd met de korte code 0, terwijl de j die maar éé keer voor komt ee lagere code heeft: 0. Het eerste woord ege wordt gecodeerd als 00000000 (=0 00 00 00 0). Het totale aatal bits dat odig is voor de hele tekst is: 5x 6x 5x3 4x4 3x4 x4 x4 x5 x5 x5 x5 = 6 bits. Dit is beter da biair codere. We hadde amelijk ook alle symbole ee biaire code kue geve ( e=0000, =000, etc.). Daarvoor hebbe we per symbool vier bits odig, wat er zij elf symbole. Voor de totale tekst va 4 symbole hebbe we dus 4x4=68 bits odig. We kue ook og kijke aar het theoretische miimum. Hiervoor hebbe we de etropie odig: 5 5 6 6 log log... log =,904754 bit per symbool. 4 4 4 4 4 4 Dit levert voor 4 symbole: 4x,904754 =,999669 bits. Er zij dus mistes bits odig. Dat beteket dat we met 6 lag iet slecht zitte. Gemiddeld gebruike we da 6 / 4 = 3 bits per woord. I werkelijkheid wordt de gecodeerde tekst lager, wat om te kue decodere heb je ook de biaire boom odig, dus die moet ook worde meegestuurd. De Shao-Fao compressie geeft ee gemiddelde legte L(X) waarvoor geldt: H(X) L(X) < H(X). 3.7 Huffmacompressie De Huffmacoderig (uit 95) lijkt erg op de Shao-Faocoderig, maar is et eve aders. Het idee is og steeds dat elk symbool wordt vervage door ee prefixcode waarbij de veel voorkomede symbole ee kortere code krijge da adere. Het algoritme werkt iet top-dow, zoals het Shao-Faoalgoritme, maar bottom-up:. Maak ee lijst met alle symbole e bepaal hoe vaak elk symbool voor komt (d.w.z. de frequetie). Elk symbool wordt ee koop i ee biaire boom.. Orde de kope aar frequetie, de meest voorkomede boveaa.

Iformatietheorie 4 3. De twee kope met de laagste frequetie worde samegevoegd tot ee ieuwe koop met als frequetie de som va de frequeties va de twee samegevoegde kope. 4. Stap e 3 worde et zolag uitgevoerd totdat de biaire boom (de Huffmaboom) af is, d.w.z., totdat je alles hebt samegevoegd tot éé koop. Voor de zi ege repelsteeltjes rede tege ee stee levert dit de volgede biaire boom op: Huffmaboom voor repelsteeltjes (sp=spatie). Je ziet dat de coderig iets aders uitpakt da de Shao-Faocoderig. Met deze Huffmacoderig zij er 5x 6x3 5x3 4x3 3x3 x4 x4 x4 x5 x6 x6 = 5 bits odig om de tekst te codere, éé bit mider da bij de Shao-Faocoderig. Dit is og altijd drie bits groter da het theoretisch miimum dat uit de etropieberekeig volgt. Het Huffmaalgoritme levert altijd ee optimale (miimum redudacy) code, d.w.z.: Met ee codelegte die per symbool wordt vastgelegd is dit het best haalbare. Huffmacompressie geeft ee gemiddelde gecodeerde legte per symbool L(X) waarvoor geldt: H(X) L(X) < H(X). Dit zegt dat Huffmacompressie behoorlijk optimaal is, wat je kut met de compressie heel dicht i de buurt va de etropie H(X) kome. Teves zie je hieraa ook ee beperkig. Het ka zij dat je bija va de etropie af zit. Dat is iet erg als de etropie per symbool groot is, maar als H(X) bijvoorbeeld gelijk is aa,3 is, da maakt het veel uit of L(X) gelijk is aa,3 of aa 3,. 3.8 Shao s brocoderigstheorema Shao s brocoderigtheorema zegt het volgede: Als je de iformatie uit ee geheugeloze bro met etropie H (verliesloos) comprimeert door gebruik te make va codewoorde met ee vaste legte tot R bits per letter, da ka dit allee als R H.

Iformatietheorie 5 3.9 Adere algoritmes Tot u toe hebbe we compressiemethode bekeke die elk symbool vervage door ee vast ieuw symbool. Soms ka het voordelig zij om over meerdere symbole tegelijk te kijke. I Nederladse tekst komt de letter q auwelijks voor, maar als hij voor komt, da meestal i de combiatie qu. Daar zou je gebruik va kue make door ook de frequetie va pare e tripels te bepale e die i het algoritme mee te eme. Dit worde hogere orde methode geoemd. Ee adeel va de compressietechieke die we hiervoor hebbe bekeke is dat de frequetie va de symbole va tevore beked moet zij. Als je ee tekstbestad moet comprimere ku je voordat je begit de frequeties bepale, maar als je live audio of video moet comprimere lukt dat iet. Je kut da wel de frequetiekarakteristiek va de symbole bijhoude, terwijl je ze codeert. Dat beteket wel dat de code voor bijvoorbeeld de letter a i de loop va het coderigsproces ka veradere. Als de letter vaker voor gaat kome zal hij ee kortere code krijge. Ee algoritme dat dit doet is adaptieve Huffmacoderig. De bijbehorede Huffmaboom ka tijdes het compressieproces veradere. Dit algoritme wordt bijvoorbeeld gebruikt i het commado compact i Uix. We hebbe al gezie dat ee adeel va Hufmacompressie ka zij dat je bija bit per symbool va de optimale etropie af kut blijve. Dat komt omdat je voor elke letter ee codewoord hebt dat ee atuurlijk getal als legte heeft. Ee verbeterig geeft arithmetic codig, waarbij de restrictie dat elke letter met ee geheel aatal bits correspodeert is verdwee. Het Lempel-Ziv-Welch (LZW) algoritme (977/84) bouwt adaptief (o the fly) ee woordeboek op met bijbehorede codes, waari woorde staa die vaak voor kome. De legte va de woorde is variabel (hoewel ze bij grafische toepassige vaak vast gekoze wordt), de legte va de code die ze krijge is vast. Het algoritme wordt oder adere gebruikt i het compress commado oder Uix, GNU gzip, ZIP e ARJ bestade. Het wordt ook gebruikt i het GIF (Graphics Iterchage Format) voor plaatjes. Daar heeft het het voordeel dat tijdes het decomprimere alvast ee beeld te toe is met ee lagere resolutie. Dat is hadig, bijvoorbeeld i iteretapplicaties. Het origiele algoritme LZW gebruikt ee woordeboek met 4K etries, waarva de eerste 56 de ASCII codes zij. Voor ee plaatje met 56 kleure per pixel ka bijvoorbeeld ee bits compressiecode worde gebruikt. Va de twaalf bits zij er 8 voor de pixelwaarde, dus er kue i het woordeboek 4096 woorde worde opgeslage. Het algoritme begit pas a zo hoderd bits effectief te comprimere. Het decoderigsalgoritme dat hier bij hoort is zo slim dat het tijdes het decodere het woordeboek ka recostruere, dus dat hoeft iet te worde meegestuurd. Het algoritme is sel, maar de compressiefactor is iet zo goed als bijvoorbeeld met arithmetic codig ka worde bereikt. Ee ieuwe compressietechiek voor plaatjes is fractal compressio. Het idee hierbij is dat (kleie) oderdele i ee plaatje, bijvoorbeeld ee licht-doker gres, ook op adere plekke weer kue optrede, misschie wat gedraaid e geschaald. Er is echter og gee stadaard op dit gebied. Om de performace va compressiealgoritmes te mete zij er ee aatal stadaardbibliotheke met typische bestade i gebruik. Ee voorbeeld is de Caterbury Corpus (http://www.cosc.caterbury.ac.z/~tim/corpus/idex.html), die bijvoorbeeld diverse tekstbestade bevat (bijvoorbeeld de Kig James bijbel va 4 MB), plaatjes, HTML-files, source code, object files, datafiles executables, etc.

Iformatietheorie 6 4 Foutcorrectie e detectie 4. Foute Als biaire iformatie wordt opgeslage of verzode is er altijd ee kas dat bits verkeerd worde geïterpreteerd. Dit ka gebeure als gevolg va defecte i opslagmedia (bijvoorbeeld ee kras op ee CD), elektroische ruis, defecte of thermische ruis i compoete, slechte verbidig, verouderig (bijvoorbeeld door ivloed va zolicht/warmte op floppies of zelfgebrade CD s). Als ee bit verkeerd wordt geleze, da wordt ee 0 geleze als ee of ee als ee 0, e we spreke va ee bit-fout. De foutkas is erg afhakelijk va het medium of de schakel i de kete die we bekijke. Zo heeft ee magetische (hard)disk ee foutkas i de orde va bit op elke 0 9 bits die geleze worde. Ee optische disk heeft ee foutkas va op de 00000 geleze bits. Zoder foutcorrectie zoude veel opslagmedia te obetrouwbaar zij. 4. Foutdetecterede codes Bij ee foutdetecterede code wordt de oorsprokelijke iformatie zodaig veraderd dat bepaalde foute achteraf zij te costatere. Er wordt bijvoorbeeld aa ee groepje bits ee aatal extra bits toegevoegd, redudate ( overbodige ) cotrolebits, die iets toevoege aa de iformatie-ihoud va de gecodeerde boodschap, maar die allee worde gebruikt om foute te sigalere. Het toevoege va redudatie maakt ee taal robuuster. Ee atuurlijke taal zoals het Nederlads is redudat, omdat maar ee erg klei gedeelte va alle mogelijke woorde geldig zij. Zo zij er bijvoorbeeld 4 mogelijke woorde die je kut samestelle uit éé a, éé d, éé e éé r: adr dar adr rad adr dar ard rad adr dar dar rda ard dra dra rda ard dra rad rad ard dra rda rda Maar éé va al deze woorde is ee geldig woord: rad. Er zij 6 7 = 8.03.80.76 mogelijke woorde va 7 letters, maar i de praktijk worde er daar maar zo 50.000 va gebruikt, dat is 0,0006 %. Deze redudatie maakt dat we ee zi als toch og redelijk goed kue leze. Dez# zi #evat a#lee# #aar oz## Het eerste idee dat misschie bij je opkomt als foutdetecterede code is om de hele boodschap tweemaal te versture. Het bit wordt da verstuurd als het codewoord. Als dit wordt otvage als 0 of 0 is er iets mis e moet dit bit opieuw worde verstuurd, wat de otvager weet iet welke va de twee bits fout is, het had oorsprokelijk ook 00 kue zij. De boodschap wordt door deze coderig tweemaal zo lag. Het is het simpelste voorbeeld va ee pariteitbit dat we hiera zulle bekijke. Veel foutdetecterede codes hebbe ook ee gedeeltelijk corrigered karakter.

Iformatietheorie 7 4.. Pariteitbit De eevoudigste maier om te cotrolere of ee boodschap juist is aagekome is het gebruik va pariteitbits. Dit wordt bijvoorbeeld toegepast bij de ASCII coderig. I éé byte worde 8 verschillede symbole gecodeerd. Hiervoor zij 7 bits odig. Het overgebleve bit is de biaire som va de adere zeve bits. Bij otvagst ku je dit bit cotrolere door de eerste zeve bits weer op te telle e het resultaat te vergelijke met het pariteitbit. Als het atwoord verschilt weet je zeker dat er iets mis is gegaa, maar iet wát er mis is. Het ka zij dat éé va de zeve iformatiebits verkeerd is over gekome. Het ka ook zij dat er ee fout i het pariteitbit is gemaakt (dat zou iet zo erg zij, omdat de iformatie er iet door wordt aagetast), maar er kue ook 3, 5 of 7 bits fout zij. Als het cotrolebit klopt is de iformatie waarschijlijk goed overgekome. Het ka echter ook zij dat er twee bits fout zij of zes, of zelfs acht. Deze simpele vorm va pariteitcotrole ku je dus allee zivol toepasse als de kas op twee foute i ee rijtje va 8 bits erg klei is. 4.. De EAN code Tegewoordig staat op vrijwel elk artikel ee barcode met ee ummer. Deze code heet de Europea Article Number (EAN). De code werd i 976 igevoerd e is ee variat op de Amerikaase Uiversal Product Code (UPC). De EAN-3 code bestaat uit dertie cijfers xxx3x4x5x6x7x8x9x0xxx3. De eerste twee cijfers vorme het ladummer (Nederlad = 87), da volge vijf ummers die de fabrikat aageve, vijf cijfers als artikelummer, e teslotte ee cotrolegetal. Hierbij wordt x 3 zo uitgereked dat x 3x x 33x 4 x 53x 6x 73x 8 x 93x 0x 3x x 3 deelbaar is door 0. Zo is de code voor ee TDK CD-R74: 49003050655, e er geldt: 43x903x03x303x53x063x55 = 80. Deze code ka éé fout cijfer detectere. Ee fout cijfer geeft amelijk i de som ee verschil va,, 3, 4, 5, 6, 7, 8 of 9. Dat verschil wordt evetueel vermeigvuldigd met 3. Dit totale verschil ka ooit deelbaar zij door 0, dus het geeft ee ojuiste check. Verder wordt ook het omwissele va twee cijfers die aast elkaar staa vaak gedetecteerd, maar iet altijd. Als i het bovestaade voorbeeld de eerste twee cijfers worde verwisseld: 94003050655, da is de som gelijk aa 70, ook ee tievoud, dus deze verwisselig wordt iet gedetecteerd:

Iformatietheorie 8 4 90 030 5 065 5 9 40 030 5 065 5 I het algemee wordt de verwisselig va twee buurcijfers iet opgemerkt als ze 5 verschille. Het doel va foutdetectie is hier om te voorkome dat er tijdes het scae va de barcode met ee laser ee fout wordt gemaakt (i de supermarkt geeft de scaer da gee Blieb! ) Voor credit cards wordt ee soortgelijk cotrolemechaisme gebruikt, maar dat is gebaseerd op het vermeigvuldige met,,,,,, etc., i plaats va, 3,, 3,, 3, etc. 4..3 De ISBN coderig De ISBN (Iteratioal Stadard Book Number) coderig, die sids de jare zevetig op vrijwel alle boeke staat is ee zeldzaam voorbeeld va ee geslaagde iteratioale samewerkig. De ISBN code op ee boek bestaat uit tie cijfers, die vaak og door streepje of spaties i groepe worde verdeeld, bijvoorbeeld: Het boek Iformatio Theory J. C. A. va der Lubbe, Cambridge Uiversity Press, 997, heeft als ISBN: 0-5-46760-8. De eerste 0 is ee ladcode, i dit geval ee groep va Egelstalige lade als USA, Groot Brittaië, Caada e Australië. Kleiere lade hebbe ee lagere code, zo gebruikt Nederlad 90, Suriaams is 994. De tweede groep staat voor de uitgever, hier 5 voor Cambridge Uiversity Press. Ook dit ummer is kort voor grote uitgevers e lager voor kleie uitgevers. Omdat dit ummer ook ee variabele legte heeft, e de schiedigsstreepjes tusse de ummers iet altijd worde vermeld, worde er allee maar bepaalde combiaties uitgegeve: 00 9, 00 499, 5000 6999, 70000 79999, 800000 899999. Als zo ummer bijvoorbeeld met 5 begit weet je dat het uit 4 getalle bestaat. De derde groep is ee ummer, dat de uitgever aa het boek geeft: 46760. Bij elkaar beslaa de eerste drie groepe i totaal ege cijfers. Het laatste cijfer is ee check digit, ee cotrolegetal, dat wordt gebruikt om de juistheid va het ISBN te kue agaa. Dit getal wordt als volgt bepaald. Als de ISBN code het getal x x x 3x 4x 5x 6x 7x 8x 9x 0 is, da ka het laatste cijfer als volgt worde uitgereked: x0 = (xx3x34x45x56x67x78x89x9) (mod ). I os geval geldt voor het ummer 0-5-46760-8, dat het laatste cijfer als volgt wordt uitgereked: (x0 x5 3x 4x 5x4 6x6 7x7 8x6 9x0) = 73 (mod ) = 8. Ee probleem va het rekee modulo is dat er ook wel ees 0 uit ka kome. I dat geval wordt voor het laatste cijfer ee X geschreve, om iet twee i plaats va éé positie te gerbuike, waardoor de legte va de code lager, of iet meer costat zou zij. Voorbeeld: 0-387-98643-X. De ISBN code ka foute i éé cijfer costatere. Als er amelijk i éé cijfer ee fout wordt gemaakt, beteket dat i de som ee verschil va,,, of 9, vermeigvuldigd met de positie,,, of 9. Dit getal is ooit deelbaar door, dus zo fout geeft modulo ee verschil i het eidatwoord. Dit geeft metee aa waarom je modulo reket. Als je mo-

Iformatietheorie 9 dulo 0 zou rekee, da geeft ee fout met ee verschil va op de 5 e plek ee verschil x5 (mod 0) = 0. Als beked is op welke positie er ee fout is gemaakt, da ka de juiste waarde worde gevode. Bijvoorbeeld: 73k60073 is ee ISBN, da moet gelde: (xx73x34xk5x66x07x08x9x7) mod = 3 ofwel: (334k) mod = 3 dus: 4k mod = (3-33) mod = Het eige getal dat hieraa voldoet is k = 6. Het juiste ISBN is dus 73660073. Als je iet weet waar de fout zit, da ku je hem iet corrigere. Als de som op 9 uitkomt, terwijl het laatste cijfer is, dat ka er ee fout ter grootte 8 op plek zij gemaakt, of ee fout ter grootte 4 op plek, of ee fout ter grootte op plek 4, of ee fout i de check digit. Deze code is dus gee foutcorrigerede code. De ISBN code ka verder wel verwisselig va cijfers costatere, ee meselijke fout die geregeld wordt gemaakt bij het overeme va ee ISBN. Dit is ook de rede waarom i de som elk cijfer met ee verschilled getal wordt vermeigvuldigd. Niet allee verwisselig va twee aburige cijfers wordt gecostateerd, zoals bij de EAN code, maar ee verwisselig va twee willekeurige cijfers. Bijvoorbeeld: 05467608: (x0 x5 3x 4x 5x4 6x6 7x7 8x6 9x0) = 73 = 8 (mod ). 07465608: (x0 x7 3x 4x 5x4 6x6 7x5 8x6 9x0) = 63 = 9 (mod ). ISBN s worde og veel door mese bewerkt (ivulle op bestellig, doorbelle, etc.) Uit de oderstaade tabel zie je dat de foutdetectie i de ISBN coderig mistes 90 % va de belagrijke foute ka costatere. Meestgemaakte meselijke foute Trascriptie (foute letter) a b 79, % Traspositie (verwisselig) ab ba 0, % Sprogtraspositie abc cba 0,8 % Tweeligfout (paarfout) aa bb 0,5 % Foetisch (verdubbelig) a aa 0,5 % Radom (iets aders) 8,9 % I plaats va vermeigvuldige met,, 3, 4, etc. ku je ook vermeigvuldige met 0, 9, 8, 7, 6, etc. (waarom?) De cotrole i het Nederladse SOFI ummer is gebaseerd op ee soortgelijk systeem. Het laatste cijfer i het SOFI ummer 090746 wordt als volgt bepaald: (9x0 8x9 7x0 6x 5x7 4x4 3x6 x) = 755 = (mod ). Wat gebeurt er u als hier 0 uit zou zij gekome? Nou iets! Deze ummers worde amelijk domweg iet uitgegeve! 4..4 De CRC code CRC staat voor Cyclical Redudacy Check. Het is ee soort gegeeraliseerde pariteitbit die je voor ee heel computerbestad kut uitrekee. Late we als voorbeeld de volgede fileihoud eme:

Iformatietheorie 30 0000000000000000. We eme u de stadaard CRC-6 bitstrig: 0000000000000 e we gaa deze bitstrig vaaf liks bij de filestrig optelle (bitsgewijs) om alle -e weg te krijge: 0000000000000000 0000000000000 00000000000000 0000000000000 0000000000000000 0000000000000 000000000000000000 0000000000000 0000000000000000 0000000000000 0000000000000000 0000000000000 000000000000000000 Deze laatste ka iet verder worde gereduceerd, dus dat is de CRC cotrolecode va deze file: 00000000. Deze bewerkig ka worde uitgevoerd voor ee willekeurig lage file. De CRC code geeft ee soort vigerafdruk va de file, waari zo beetje alle bits uit de file zij verwerkt. Deze cotrolecode wordt aa de file toegevoegd. Ee of meerdere foute erges i de file (dat ka ook ee otbreked stuk zij) geeft i het algemee ee verschillede CRC code. Adere CRC-strigs die wel worde gebruikt zij CRC-: 000000000, e CRC-3: 000000000000000000. 4..5 De KIX code va PTT Post PTT Post gebruikt sids 999 ee KIX code (KlatIdeX) code op bulkpost, gebaseerd op de Royal Mail 4 State Code. Deze code bestaat uit ee rij va lage e korte streepjes: Er zij vier verschillede streepjes: lag, kort, halflag aar bove e halflag aar beede.

Iformatietheorie 3 De code werkt als volgt: elk groepje va vier streepjes staat voor ee getal of letter. Er wordt gee oderscheid gemaakt tusse hoofd- e kleie letters. De vertaaltabel staat hieroder: I de code staat de postcode e het huisummer gecodeerd. Evetuele toevoegige (c, bis, etc.) kue er ook aageplakt worde, maar da wordt eerst ee scheidigsteke (X) opgeome, omdat de legte va het huisummer variabel is. Je kut je afvrage waarom er iet ee duidelijkere regelmaat i de code zit. Je zou bijvoorbeeld kue begie door te codere als vier kleie streepjes, als drie kleie streepjes plus éé half streepje omhoog, etc. Ee rede hiervoor is dat de code u foute ka corrigere. Je kut agaa dat als je i ee willekeurige code éé streepje veradert, je iet ee bestaade code krijgt. Dat beteket dat je éé fout kut costatere. Je kut gee foute corrigere. Als dat zou kue, da moest elke bol om ee code va éé fout groot disjut zij meet zo bol va ee adere code. Hoe groot is zo bol? Je kut éé streepje op drie maiere veradere. Dat levert voor elk va de vier posities mogeleijke foute codes. Same met de juiste code bevat de bol dus 3 codes. Er zij 6 0 = 36 symbole die je moet kue codere. Als de bolle om elke code disjuct zij, heb je dus mistes 36 3 4 = 468 codes odig. Dit is meer da de 4 = 56 mogelijke codes die er i dit systeem zij, dus volledige foutcorrectie va éé fout is iet mogelijk. 4..6 Serieummers op bakbiljette Op Nederlade bakbiljette va vóór 990 (zoder streepjescode) staat ee serieummer, waarva het laatste cijfer ee cotrolegetal is. Dat cotrolegetal ku je als volgt uitrekee: Tel eerst alle cijfers (behalve het laatste) bij elkaar op: 4 0 0 0 4 4 8 5 = 6. Doe dit evetueel og ee keer: 6 = 8, et zolag tot je éé cijfer hebt: 8. Trek dit cijfer va 9 af: 9 8 =. Dit is het laatste cijfer!