Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Kapitel 5 Fehlererkennende Codes. Kapitel 5 © Beutelspacher Juni 2004 Seite 2 Inhalt 5.1 Grundlagen: Was sind Vehler? 5.2 Vertuaschungsfehler 5.3 Der.

Ähnliche Präsentationen


Präsentation zum Thema: "Kapitel 5 Fehlererkennende Codes. Kapitel 5 © Beutelspacher Juni 2004 Seite 2 Inhalt 5.1 Grundlagen: Was sind Vehler? 5.2 Vertuaschungsfehler 5.3 Der."—  Präsentation transkript:

1 Kapitel 5 Fehlererkennende Codes

2 Kapitel 5 © Beutelspacher Juni 2004 Seite 2 Inhalt 5.1 Grundlagen: Was sind Vehler? 5.2 Vertuaschungsfehler 5.3 Der ISBN-Code Der EAN-Code (Strichcode) 5.1 Grundlagen: Was sind Vehler? 5.2 Vertuaschungsfehler 5.3 Der ISBN-Code Der EAN-Code (Strichcode)

3 Kapitel 5 © Beutelspacher Juni 2004 Seite Grundlagen: Was sind Vehler? Bei der Speicherung und Übertragung von Daten (Texten, Zahlen) entstehen Fehler: Zeichen können verändert werden, vertauscht werden, wegfallen usw.: Vehler, Feler, Fehlerrr,... Definition: Ein Fehler eines Textes (d.h. Buchstaben oder Zahlenfolge) besteht (für uns) darin, dass ein oder mehrerer Zeichen verändert werden (d.h. zu anderen Zeichen werden). Ziel: Der Empfänger soll erkennen können: ob ein (oder mehrere) Fehler passiert sind (Fehlererkennung) wie die Originalzeichen aussehen (Fehlerkorrektur). Bei der Speicherung und Übertragung von Daten (Texten, Zahlen) entstehen Fehler: Zeichen können verändert werden, vertauscht werden, wegfallen usw.: Vehler, Feler, Fehlerrr,... Definition: Ein Fehler eines Textes (d.h. Buchstaben oder Zahlenfolge) besteht (für uns) darin, dass ein oder mehrerer Zeichen verändert werden (d.h. zu anderen Zeichen werden). Ziel: Der Empfänger soll erkennen können: ob ein (oder mehrere) Fehler passiert sind (Fehlererkennung) wie die Originalzeichen aussehen (Fehlerkorrektur).

4 Kapitel 5 © Beutelspacher Juni 2004 Seite 4 Die Methode Grundidee: Man fügt der Nachricht etwas hinzu, eine Kontrollinformation, die dazu dient, eventuelle Übertragungsfehler zu erkennen. Beispiele: Namen buchstabieren (Emm o enn enn te a ge) Buchstabieralphabete (A wie Anton, B wie Berta,...) Natürliche Sprachen sind redundant (haben überflüssige Information): man vrsteht alls, auc wnn einge Bchstbn fhln. Selpst wen groppe recktscreib Felr auftren, ged dr ßinn nich färlohn. Grundidee: Man fügt der Nachricht etwas hinzu, eine Kontrollinformation, die dazu dient, eventuelle Übertragungsfehler zu erkennen. Beispiele: Namen buchstabieren (Emm o enn enn te a ge) Buchstabieralphabete (A wie Anton, B wie Berta,...) Natürliche Sprachen sind redundant (haben überflüssige Information): man vrsteht alls, auc wnn einge Bchstbn fhln. Selpst wen groppe recktscreib Felr auftren, ged dr ßinn nich färlohn.

5 Kapitel 5 © Beutelspacher Juni 2004 Seite 5 Die Prüfziffer Beispiel: Wir wollen 4-stellige Zahlen übermitteln. Der Empfänger soll merken, ob die Daten korrekt sind. Da man dies an den Daten selbst nicht erkennen kann, fügt man eine Ziffer hinzu (man erhält also eine 5-stellige Zahl), und zwar so, dass die Quersumme dieser Zahl eine Zehnerzahl ist. Die Ziffer an der hinzugefügten Stelle heißt Prüfziffer. Konkret: man bestimmt die Summe der ersten vier Ziffern und ergänzt diese Summe durch die Prüfziffer zur nächsten Zehnerzahl. Beispiel: Wenn die Daten die Zahl 1234 sind, so ist die Prüfziffer 0; der Datensatz 4813 hat die Prüfziffer 4. Übermittelt wird dann die Folge bzw Beispiel: Wir wollen 4-stellige Zahlen übermitteln. Der Empfänger soll merken, ob die Daten korrekt sind. Da man dies an den Daten selbst nicht erkennen kann, fügt man eine Ziffer hinzu (man erhält also eine 5-stellige Zahl), und zwar so, dass die Quersumme dieser Zahl eine Zehnerzahl ist. Die Ziffer an der hinzugefügten Stelle heißt Prüfziffer. Konkret: man bestimmt die Summe der ersten vier Ziffern und ergänzt diese Summe durch die Prüfziffer zur nächsten Zehnerzahl. Beispiel: Wenn die Daten die Zahl 1234 sind, so ist die Prüfziffer 0; der Datensatz 4813 hat die Prüfziffer 4. Übermittelt wird dann die Folge bzw

6 Kapitel 5 © Beutelspacher Juni 2004 Seite 6 Code Man spricht von einem Code. Im Beispiel ist der Code die Menge aller 5-stelligen Zahlen, deren Quersumme durch 10 teilbar ist: C = {a 1 a 2 a 3 a 4 a 5 a i {0, 1,..., 9}, a 1 +a 2 +a 3 +a 4 +a 5 ist durch 10 teilb.}. Die Elemente eines Codes nennt man Codewörter. Der Empfänger akzeptiert eine Nachricht nur, wenn sie ein Codewort ist. Konkret: Der Empfänger summiert die Ziffern (inklusive der Prüfziffer). Er akzeptiert die Nachricht nur, wenn dies eine Zehnerzahl ist. Beispiel: wird akzeptiert nicht. Man spricht von einem Code. Im Beispiel ist der Code die Menge aller 5-stelligen Zahlen, deren Quersumme durch 10 teilbar ist: C = {a 1 a 2 a 3 a 4 a 5 a i {0, 1,..., 9}, a 1 +a 2 +a 3 +a 4 +a 5 ist durch 10 teilb.}. Die Elemente eines Codes nennt man Codewörter. Der Empfänger akzeptiert eine Nachricht nur, wenn sie ein Codewort ist. Konkret: Der Empfänger summiert die Ziffern (inklusive der Prüfziffer). Er akzeptiert die Nachricht nur, wenn dies eine Zehnerzahl ist. Beispiel: wird akzeptiert nicht.

7 Kapitel 5 © Beutelspacher Juni 2004 Seite 7 Definition eines Paritätscodes Definition. Man bezeichnet die Menge C = {a 1 a 2... a n a i {0, 1,..., 9}, a 1 + a a n ist durch 10 teilbar} als Paritätscode der Länge n zur Basis Satz: Jeder Paritätscode erkennt Einzelfehler. Beweis. Sei a 1 a 2...a n ein Codewort. Dann ist a 1 +a a n durch 10 teilbar. Es sei ein Fehler der ersten Stelle aufgetreten. D.h. a 1 wurde in eine andere Ziffer a 1 ' a 1 verwandelt. Angenommen, auch a 1 a 2...a n wäre ein Codewort. Dann wäre auch a 1 +a a n durch 10 teilbar. Definition. Man bezeichnet die Menge C = {a 1 a 2... a n a i {0, 1,..., 9}, a 1 + a a n ist durch 10 teilbar} als Paritätscode der Länge n zur Basis Satz: Jeder Paritätscode erkennt Einzelfehler. Beweis. Sei a 1 a 2...a n ein Codewort. Dann ist a 1 +a a n durch 10 teilbar. Es sei ein Fehler der ersten Stelle aufgetreten. D.h. a 1 wurde in eine andere Ziffer a 1 ' a 1 verwandelt. Angenommen, auch a 1 a 2...a n wäre ein Codewort. Dann wäre auch a 1 +a a n durch 10 teilbar.

8 Kapitel 5 © Beutelspacher Juni 2004 Seite 8 Beweis (Fortsetzung) Dann ist (2.1.1) auch die Differenz (a 1 + a a n ) – (a 1 ' + a a n ) = a 1 – a 1 durch 10 teilbar. Da a 1 und a 1 Ziffern aus {0, 1,..., 9} sind, muss gelten: –9 a 1 – a 1 9. Die einzige Zahl in diesem Bereich, die durch 10 teilbar ist, ist 0. Also folgt: a 1 – a 1 = 0, d.h. a 1 = a 1. Das ist ein Widerspruch, also ist a 1 a 2...a n kein Codewort. Dann ist (2.1.1) auch die Differenz (a 1 + a a n ) – (a 1 ' + a a n ) = a 1 – a 1 durch 10 teilbar. Da a 1 und a 1 Ziffern aus {0, 1,..., 9} sind, muss gelten: –9 a 1 – a 1 9. Die einzige Zahl in diesem Bereich, die durch 10 teilbar ist, ist 0. Also folgt: a 1 – a 1 = 0, d.h. a 1 = a 1. Das ist ein Widerspruch, also ist a 1 a 2...a n kein Codewort.

9 Kapitel 5 © Beutelspacher Juni 2004 Seite Vertuaschungsfehler Definition. Wir sagen: Ein Code C erkennt Vertauschungsfehler, falls für jedes Codewort a 1 a 2... a i a i+1...a n gilt: Die durch Vertau- schung der Elemente a i und a i+1 (mit a i a i+1 ) erzeugte Folge a 1 a 2... a i+1 a i...a n ist kein Codewort. Die bisherigen Paritätscodes erkennen keine Vertauschungsfehler. Da = ist, kann man nicht erkennen. Wunsch: Die einzelnen Stellen sollen unterschiedlich stark in die Quersumme eingehen. Idee: Jede Stelle wird mit einem Gewicht versehen. Die entsprechende Ziffer wird mit diesem Gewicht multipliziert, bevor sie in die Quersumme eingeht. Definition. Wir sagen: Ein Code C erkennt Vertauschungsfehler, falls für jedes Codewort a 1 a 2... a i a i+1...a n gilt: Die durch Vertau- schung der Elemente a i und a i+1 (mit a i a i+1 ) erzeugte Folge a 1 a 2... a i+1 a i...a n ist kein Codewort. Die bisherigen Paritätscodes erkennen keine Vertauschungsfehler. Da = ist, kann man nicht erkennen. Wunsch: Die einzelnen Stellen sollen unterschiedlich stark in die Quersumme eingehen. Idee: Jede Stelle wird mit einem Gewicht versehen. Die entsprechende Ziffer wird mit diesem Gewicht multipliziert, bevor sie in die Quersumme eingeht.

10 Kapitel 5 © Beutelspacher Juni 2004 Seite 10 Beispiel (Kontonummern, Loknummern...) (Konto)nummer ohne Prüfziffer: Gewichtung Produkte (Ziffer Gewicht) Dann wird die Summe S dieser Produkte bestimmt; es ergibt sich S = = 62. Diese Zahl wird durch die Prüfziffer zur nächsten Zehnerzahl ergänzt. Die Prüfziffer ist also gleich 8, und die vollständige Kontonummer lautet (Konto)nummer ohne Prüfziffer: Gewichtung Produkte (Ziffer Gewicht) Dann wird die Summe S dieser Produkte bestimmt; es ergibt sich S = = 62. Diese Zahl wird durch die Prüfziffer zur nächsten Zehnerzahl ergänzt. Die Prüfziffer ist also gleich 8, und die vollständige Kontonummer lautet

11 Kapitel 5 © Beutelspacher Juni 2004 Seite 11 Code 1 Wir beschreiben diesen Code (Code 1) formal: C 1 = {a 1 a 2 a 3 a 4 a 5 a 6 a 7 a 8 a 9 10 teilt a 1 + 2a 2 + a 3 + 2a 4 + a 5 + 2a 6 + a 7 + 2a 8 + a 9 }. Vorteil: In diesem Code 1 können wir prinzipiell Vertauschungsfehler erkennen, da benachbarte Stellen verschieden gewichtet werden. Nachteil: Code 1 erkennt nicht alle Einzelfehler! Wenn an einer mit 2 gewichteten Stelle die Zahl 8 mit der Zahl 3 vertauscht wird, so liefert die 8 den Beitrag 16, die Zahl 3 den Beitrag 6 zur Summe S; also ergibt sich die gleiche Prüfziffer. Ebenso werden 7 2, 6 1, 5 0 und 9 4 nicht erkannt. Wir beschreiben diesen Code (Code 1) formal: C 1 = {a 1 a 2 a 3 a 4 a 5 a 6 a 7 a 8 a 9 10 teilt a 1 + 2a 2 + a 3 + 2a 4 + a 5 + 2a 6 + a 7 + 2a 8 + a 9 }. Vorteil: In diesem Code 1 können wir prinzipiell Vertauschungsfehler erkennen, da benachbarte Stellen verschieden gewichtet werden. Nachteil: Code 1 erkennt nicht alle Einzelfehler! Wenn an einer mit 2 gewichteten Stelle die Zahl 8 mit der Zahl 3 vertauscht wird, so liefert die 8 den Beitrag 16, die Zahl 3 den Beitrag 6 zur Summe S; also ergibt sich die gleiche Prüfziffer. Ebenso werden 7 2, 6 1, 5 0 und 9 4 nicht erkannt.

12 Kapitel 5 © Beutelspacher Juni 2004 Seite 12 Code 2 Kontonummer ohne Prüfziffer: Gewichtung Produkte (Ziffer Gewicht) Quersummen dieser Produkte Dann wird die Summe S dieser Quersummen bestimmt: S = = 35. Diese Zahl wird durch die Prüfziffer zur nächsten Zehnerzahl ergänzt. Die Prüfziffer ist also 5, und die vollständige Kontonummer lautet Kontonummer ohne Prüfziffer: Gewichtung Produkte (Ziffer Gewicht) Quersummen dieser Produkte Dann wird die Summe S dieser Quersummen bestimmt: S = = 35. Diese Zahl wird durch die Prüfziffer zur nächsten Zehnerzahl ergänzt. Die Prüfziffer ist also 5, und die vollständige Kontonummer lautet

13 Kapitel 5 © Beutelspacher Juni 2004 Seite 13 Code 2 erkennt Einzelfehler Satz. Der Code 2 erkennt alle Einzelfehler. Beweis. Stellen, die mit 1 gewichtet sind: o.k. (vergleiche ) Wir betrachten eine mit 2 gewichtete Stelle. Zu zeigen: Die Quer- summen des Doppelten der Ziffern sind verschieden. (Das ist der Beitrag, der von dieser Stelle in die Summe S eingeht. Wenn diese Zahlen alle verschieden sind, dann werden alle Einzelfehler erkannt.) Ziffer Produkt (Ziffer Gewicht) Quersumme des Produkts Satz. Der Code 2 erkennt alle Einzelfehler. Beweis. Stellen, die mit 1 gewichtet sind: o.k. (vergleiche ) Wir betrachten eine mit 2 gewichtete Stelle. Zu zeigen: Die Quer- summen des Doppelten der Ziffern sind verschieden. (Das ist der Beitrag, der von dieser Stelle in die Summe S eingeht. Wenn diese Zahlen alle verschieden sind, dann werden alle Einzelfehler erkannt.) Ziffer Produkt (Ziffer Gewicht) Quersumme des Produkts

14 Kapitel 5 © Beutelspacher Juni 2004 Seite Der ISBN-Code ISBN = Internationale Standard Buch Nummer Jede ISBN hat zehn Stellen, die in vier Gruppen eingeteilt sind. Erste Gruppe: Sprachraum (0, 1: englisch, 2: französisch, 3: deutsch,..., 88: italienisch,...) Zweite Gruppe: Verlag (528: Verlag Vieweg) Dritte Gruppe: Nummer des Buches (z.B : In Mathe war ich immer schlecht...). Vierte Gruppe: Prüfsymbol. ISBN = Internationale Standard Buch Nummer Jede ISBN hat zehn Stellen, die in vier Gruppen eingeteilt sind. Erste Gruppe: Sprachraum (0, 1: englisch, 2: französisch, 3: deutsch,..., 88: italienisch,...) Zweite Gruppe: Verlag (528: Verlag Vieweg) Dritte Gruppe: Nummer des Buches (z.B : In Mathe war ich immer schlecht...). Vierte Gruppe: Prüfsymbol.

15 Kapitel 5 © Beutelspacher Juni 2004 Seite 15 Berechnung des Prüfsymbols Sei a 1 a 2 a 3... a 9 a 10 eine ISBN (also ist a 10 das Prüfsymbol). Dieses wird so bestimmt, dass die Zahl 10 a a a a a a a a a a 10 eine Elferzahl ist. Das bedeutet: Man bestimmt die Zahl S = 10 a a a a a a a a a 9 und ergänzt diese durch das Prüfsymbol a 10 zur nächsten Elferzahl. Welche Werte kann a 10 annehmen? 0, 1, 2, 3,..., 9 oder 10. Wenn sich 10 ergibt, so schreibt man X (römische Zehn). Sei a 1 a 2 a 3... a 9 a 10 eine ISBN (also ist a 10 das Prüfsymbol). Dieses wird so bestimmt, dass die Zahl 10 a a a a a a a a a a 10 eine Elferzahl ist. Das bedeutet: Man bestimmt die Zahl S = 10 a a a a a a a a a 9 und ergänzt diese durch das Prüfsymbol a 10 zur nächsten Elferzahl. Welche Werte kann a 10 annehmen? 0, 1, 2, 3,..., 9 oder 10. Wenn sich 10 ergibt, so schreibt man X (römische Zehn).

16 Kapitel 5 © Beutelspacher Juni 2004 Seite 16 Qualität des ISBN-Codes Formale Beschreibung des ISBN-Codes: C ISBN = {a 1 a 2...a teilt 10 a a a a a a a 10 }. Dass der ISBN-Code super ist, sagt der folgende Satz: Satz. (a) Der ISBN-Code erkennt alle Einzelfehler. (b) Der ISBN-Code erkennt alle Vertauschungsfehler – sogar an beliebigen Stellen. Formale Beschreibung des ISBN-Codes: C ISBN = {a 1 a 2...a teilt 10 a a a a a a a 10 }. Dass der ISBN-Code super ist, sagt der folgende Satz: Satz. (a) Der ISBN-Code erkennt alle Einzelfehler. (b) Der ISBN-Code erkennt alle Vertauschungsfehler – sogar an beliebigen Stellen.

17 Kapitel 5 © Beutelspacher Juni 2004 Seite 17 Beweis Beweis. (a): Übungsaufgabe. (b) Wir zeigen, dass der ISBN-Code jede Vertauschung der ersten beiden Stelle erkennt. Sei dazu a 1 a 2 a 3... a 9 a 10 eine ISBN. Also ist 10 a a a a a a a a a a 10 eine durch 11 teilbare Zahl. Nun mögen die ersten beiden Ziffern vertauscht werden; es entsteht also die Folge a 2 a 1 a 3... a 9 a 10. Wir können a 1 a 2 voraussetzen. Angenommen, auch dies wäre ein Codewort. Dann wäre auch 10 a a a a a a a a a a 10 eine durch 11 teilbare Zahl. Beweis. (a): Übungsaufgabe. (b) Wir zeigen, dass der ISBN-Code jede Vertauschung der ersten beiden Stelle erkennt. Sei dazu a 1 a 2 a 3... a 9 a 10 eine ISBN. Also ist 10 a a a a a a a a a a 10 eine durch 11 teilbare Zahl. Nun mögen die ersten beiden Ziffern vertauscht werden; es entsteht also die Folge a 2 a 1 a 3... a 9 a 10. Wir können a 1 a 2 voraussetzen. Angenommen, auch dies wäre ein Codewort. Dann wäre auch 10 a a a a a a a a a a 10 eine durch 11 teilbare Zahl.

18 Kapitel 5 © Beutelspacher Juni 2004 Seite 18 Beweis (Fortsetzung) Zusammen folgt mit 2.1.2, dass 11 auch folgende Zahl teilt: 10 a a 2 – (10 a a 1 ) = a 1 – a 2. Nun argumentieren wir wie im Beweis von 3.4.1: Da a 1 und a 2 beide zwischen 0 und 9 liegen, ist die Differenz a 1 – a 2 eine Zahl zwischen –9 und +9. Die einzige durch 11 teilbare Zahl in diesem Bereich ist aber 0. Daher ist a 1 – a 2 = 0, das heißt a 1 = a 2. Dieser Widerspruch zeigt, dass der ISBN-Code Vertauschungen der ersten beiden Stellen 100%ig erkennt. Zusammen folgt mit 2.1.2, dass 11 auch folgende Zahl teilt: 10 a a 2 – (10 a a 1 ) = a 1 – a 2. Nun argumentieren wir wie im Beweis von 3.4.1: Da a 1 und a 2 beide zwischen 0 und 9 liegen, ist die Differenz a 1 – a 2 eine Zahl zwischen –9 und +9. Die einzige durch 11 teilbare Zahl in diesem Bereich ist aber 0. Daher ist a 1 – a 2 = 0, das heißt a 1 = a 2. Dieser Widerspruch zeigt, dass der ISBN-Code Vertauschungen der ersten beiden Stellen 100%ig erkennt.

19 Kapitel 5 © Beutelspacher Juni 2004 Seite Der EAN-Code EAN = Europäische Artikel Nummer Ziele: (a) Schutz gegen Einzelfehler und (in geringerem Umfang) gegen Vertauschungsfehler (b) Nummer sowohl menschen- als auch maschinenlesbar. Methoden: (a) Prüfziffer (b) Strichcode (Barcode) (für Lesbarkeit durch einen Scanner) Konsequenz: In den Strichen steckt die gleiche Information wie in den Ziffern; darin ist keine Geheiminformation verborgen. EAN = Europäische Artikel Nummer Ziele: (a) Schutz gegen Einzelfehler und (in geringerem Umfang) gegen Vertauschungsfehler (b) Nummer sowohl menschen- als auch maschinenlesbar. Methoden: (a) Prüfziffer (b) Strichcode (Barcode) (für Lesbarkeit durch einen Scanner) Konsequenz: In den Strichen steckt die gleiche Information wie in den Ziffern; darin ist keine Geheiminformation verborgen.

20 Kapitel 5 © Beutelspacher Juni 2004 Seite 20 EAN Eine EAN hat 13 (oder, bei kleinen Artikeln, 8) Stellen, die in vier Gruppen eingeteilt sind. Erste Gruppe (2 Ziffern): Land der Herstellung (00-09: U.S.A., Canada, 30-37: Frankreich, 40-43: Deutschland, 50: U.K., 54: Belgien, 57: Dänemark, 76: Schweiz, 80-81: Italien, 90-91: Österreich,...) Zweite Gruppe (5 Ziffern): bundeseinheitliche Beztriebsnummer Dritte Gruppe (5 Ziffern): Herstellespezifische Artikelnummer Vierte Gruppe (1 Ziffer): Prüfziffer Eine EAN hat 13 (oder, bei kleinen Artikeln, 8) Stellen, die in vier Gruppen eingeteilt sind. Erste Gruppe (2 Ziffern): Land der Herstellung (00-09: U.S.A., Canada, 30-37: Frankreich, 40-43: Deutschland, 50: U.K., 54: Belgien, 57: Dänemark, 76: Schweiz, 80-81: Italien, 90-91: Österreich,...) Zweite Gruppe (5 Ziffern): bundeseinheitliche Beztriebsnummer Dritte Gruppe (5 Ziffern): Herstellespezifische Artikelnummer Vierte Gruppe (1 Ziffer): Prüfziffer

21 Kapitel 5 © Beutelspacher Juni 2004 Seite 21 Die Prüfziffer beim EAN-Code EAN ohne Prüfz.: Gewichtung Produkte Dann wird die Summe S dieser Produkte bestimmt; es ergibt sich S = = 20. Diese Zahl wird durch die Prüfziffer zur nächsten Zehnerzahl ergänzt. Die Prüfziffer ist also gleich 0, und die vollständige EAN lautet EAN ohne Prüfz.: Gewichtung Produkte Dann wird die Summe S dieser Produkte bestimmt; es ergibt sich S = = 20. Diese Zahl wird durch die Prüfziffer zur nächsten Zehnerzahl ergänzt. Die Prüfziffer ist also gleich 0, und die vollständige EAN lautet

22 Kapitel 5 © Beutelspacher Juni 2004 Seite 22 Eigenschaften des EAN-Codes Satz. Der EAN Code erkennt alle Einzelfehler Der EAN-Code erkennt nicht alle (aber die meisten) Vertauschungsfehler. Beweis: Übungsaufgabe Bemerkung: Da beim Lesen durch einen Scanner praktisch keine Vertauschungsfehler vorkommen, war es entscheidend, eine sehr gute Einzelfehlererkennung zu gewährleisten Satz. Der EAN Code erkennt alle Einzelfehler Der EAN-Code erkennt nicht alle (aber die meisten) Vertauschungsfehler. Beweis: Übungsaufgabe Bemerkung: Da beim Lesen durch einen Scanner praktisch keine Vertauschungsfehler vorkommen, war es entscheidend, eine sehr gute Einzelfehlererkennung zu gewährleisten.

23 Kapitel 5 © Beutelspacher Juni 2004 Seite 23 Der Strichcode Die Übersetzung einer EAN in den maschinenlesbaren Strichcode erfolgt auf raffinierte Art und Weise. Zusätzliche Ziele: 1. Man muss erkennen könne, in welcher Richtung die Ziffern gelesen werden (von vorne nach hinten o.u.). 2. Man möchte zwei Hälften aus 6 Ziffern haben; daher wird die erste Ziffer implizit durch die andern codiert. Konsequenz: Man braucht verschiedene Zeichensätze. Methode: Jede Ziffer wird in eine Folge von sieben weißen und schwarzen Streifen gleicher Dicke übersetzt. (Diese Streifen fügen sich zu mehr oder weniger dicken schwarzen und weißen Streifen zusammen.) Siehe Tabelle auf der nächsten Folien. Die Übersetzung einer EAN in den maschinenlesbaren Strichcode erfolgt auf raffinierte Art und Weise. Zusätzliche Ziele: 1. Man muss erkennen könne, in welcher Richtung die Ziffern gelesen werden (von vorne nach hinten o.u.). 2. Man möchte zwei Hälften aus 6 Ziffern haben; daher wird die erste Ziffer implizit durch die andern codiert. Konsequenz: Man braucht verschiedene Zeichensätze. Methode: Jede Ziffer wird in eine Folge von sieben weißen und schwarzen Streifen gleicher Dicke übersetzt. (Diese Streifen fügen sich zu mehr oder weniger dicken schwarzen und weißen Streifen zusammen.) Siehe Tabelle auf der nächsten Folien.

24 Kapitel 5 © Beutelspacher Juni 2004 Seite 24 Die Tabelle für die Strichcodes

25 Kapitel 5 © Beutelspacher Juni 2004 Seite 25 Prinzip des Strichcodes Beobachtung: Jedes Zeichen des Zeichensatzes A hat eine ungerade Anzahl von schwarzen Streifen, aber bei B und C hat jedes Zeichen eine gerade Anzahl von schwarzen Streifen. Tatsächlich ist C das Komplement von A. Wie werden die Ziffern a 1, a 2, a 3,..., a 13 einer EAN in Strichmuster codiert? Die Ziffern a 8, a 9,..., a 13 (also die zweite Hälfte) wird stets mit Zeichensatz C codiert. Die Ziffern a 2, a 3,..., a 7 werden gemäß folgender Tabelle codiert. Durch die Abfolge der Zeichensätze wird a 1 automatisch codiert. Beobachtung: Jedes Zeichen des Zeichensatzes A hat eine ungerade Anzahl von schwarzen Streifen, aber bei B und C hat jedes Zeichen eine gerade Anzahl von schwarzen Streifen. Tatsächlich ist C das Komplement von A. Wie werden die Ziffern a 1, a 2, a 3,..., a 13 einer EAN in Strichmuster codiert? Die Ziffern a 8, a 9,..., a 13 (also die zweite Hälfte) wird stets mit Zeichensatz C codiert. Die Ziffern a 2, a 3,..., a 7 werden gemäß folgender Tabelle codiert. Durch die Abfolge der Zeichensätze wird a 1 automatisch codiert.

26 Kapitel 5 © Beutelspacher Juni 2004 Seite 26 Zeichensätze für die Ziffern a 2, a 3,..., a 7 a 1 a 2 a 3 a 4 a 5 a 6 a 7 0AAAAAA 1AABABB 2AABBAB 3AABBBA 4ABAABB 5ABBAAB 6ABBBAA 7ABABAB 8ABABBA 9ABBABA a 1 a 2 a 3 a 4 a 5 a 6 a 7 0AAAAAA 1AABABB 2AABBAB 3AABBBA 4ABAABB 5ABBAAB 6ABBBAA 7ABABAB 8ABABBA 9ABBABA

27 Kapitel 5 © Beutelspacher Juni 2004 Seite 27 Abschließende Bemerkungen Die langen Striche sind Trennzeichen: Der Scanner merkt, wann er anfangen und wann er aufhören muss. Der Scanner erkennt die Reihenfolge der Zeichen: Das erste Zeichen (a 2 ) wird in jedem Fall mit A, d.h. mit einer ungeraden Anzahl von schwarzen Streifen codiert. Das letzte Zeichen (a 13 ) wird dagegen immer mit Zeichensatz C, also einer geraden Anzahl von schwarzen Streifen codiert. Der Scanner zählt die schwarzen Streifen im ersten Zeichen, welches er liest, und weiß dann, ob er von vorne nach hinten o.u. liest. Die langen Striche sind Trennzeichen: Der Scanner merkt, wann er anfangen und wann er aufhören muss. Der Scanner erkennt die Reihenfolge der Zeichen: Das erste Zeichen (a 2 ) wird in jedem Fall mit A, d.h. mit einer ungeraden Anzahl von schwarzen Streifen codiert. Das letzte Zeichen (a 13 ) wird dagegen immer mit Zeichensatz C, also einer geraden Anzahl von schwarzen Streifen codiert. Der Scanner zählt die schwarzen Streifen im ersten Zeichen, welches er liest, und weiß dann, ob er von vorne nach hinten o.u. liest.


Herunterladen ppt "Kapitel 5 Fehlererkennende Codes. Kapitel 5 © Beutelspacher Juni 2004 Seite 2 Inhalt 5.1 Grundlagen: Was sind Vehler? 5.2 Vertuaschungsfehler 5.3 Der."

Ähnliche Präsentationen


Google-Anzeigen