Informationstheorie und Codierung Prof. Dr.-Ing. Lilia Lajmi [email protected] Organisatorisches • Vorlesung 2 SWS ( 2,5 LP) - Dienstags. 12:00-13:30 Uhr, Raum L122 • Unterlagen - Vorlesungsfolien - Übungsaufgaben - Skript (Dr. Jäger) • Klausur (voraussichtlicher Termin) - EIT: 13.01.2016, Dauer: 90 min 2 Problemstellung Einfaches Modell einer Nachrichtenübertragung Störung Sender (Datenquelle) DatenKanal Empfänger (Datensenke) Bilder, Sprache, Text ,.. • • Bei der Nachrichtenübertragung treten mehr oder weniger starke Störungen (z.B. Rauschen) auf Fehler beim Empfänger Die Codierungstheorie beschäftigt sich mit dem Problem, wie man Nachrichten über einen gestörten Kanal so übertragen kann, dass o die Übertragung der Nachricht überhaupt möglich ist, o die Nachricht beim Empfänger möglichst fehlerfrei ankommt o und im Fall von Übertragungsfehler die ursprüngliche Nachricht korrekt abgeleitet werden kann. 3 Ziel der Codierung Digitale Nachrichtenübertragung • • • Effektive Nutzung von Datenkanälen Möglichst hohe Informationsübertragungsrate Sichere Übertragung der Informationen trotz auftretender Störungen im Kanal. Störungen auf dem Übertragungskanal durch geeignete Codierung bekämpfen auftretende Bitfehler beim Empfänger nach Möglichkeit erkennen und korrigieren Sicherer Schutz der Information gegen unzulässige Leser oder verdeckte Sender (Vertraulichkeit der Daten) Dabei beachten: • Möglichst kleiner Codieraufwand • Möglichst einfache Decodierung (Für die Echtzeitfähigkeit der Empfänger von großer Bedeutung) 4 Digitales Übertragungssystem Quelle Digital Quellen- Kanal- Codierer Codierer Redundanz Irrelevanz Sender Senke • • Digitaler Kanal Quellen- Kanal- Decodierer Decodierer Redundanz Empfänger Fehlerschutz Redundanz Fehlerschutz Redundanz Quellencodierung: Daten so transformieren, dass sie gut übertragbar werden können (Codierung, Kompression) Kanalcodierung: Daten so transformieren, dass bei der Übertragung auftretende Fehler erkannt und evtl. sogar korrigiert werden können 5 Inhaltsverzeichnis 1. Einführung und Definitionen 1.1 1.2 1.3 Alphabet und Wörter Graphen und Bäume Codierung und Decodierung 2. Quellencodierung 2.1 2.2 2.3 2.4 2.5 2.6 Motivation Shannon´sche Informationstheorie Binärcodierung nach Shannon Huffman-Codierung Codierung von Wörtern anstelle von Einzelsymbolen Diskrete Quelle mit Gedächtnis 3. Kanalcodierung 3.1 3.2 3.3 3.4 3.5 Nachrichtentheorie für gestörte Kanäle Blockcodes Gruppencodes Zyklische Codes Faltungscodes 6 Literatur • Hermann Rohling Einführung in die Informationsund Codierungstheorie, Teubner-Verlag, 1995, 49,95€ • Ralph-Hardo Schulz Codierungstheorie, ViewegVerlag, 1991 ca. 29,9 € • Richard W. Hamming Information und Codierung VCH Verlagsgesellschaft, 1987 7 1. Einführung und Definitionen 1.1 1.2 1.3 Alphabet und Wörter Graphen und Bäume Codierung und Decodierung 1.3.1 Definition 1.3.2 Blockcode 1.3.3 Präfixfreier Code 8 1.1 Alphabet und Wörter Alphabet Unter einem Alphabet versteht man den Symbolvorrat eines Datenraums Beispiele: • Das Alphabet für natürliche Zahlen ist {0, 1, …, 9} • Das Alphabet für Hexadezimalzahlen ist {0, 1, …, 9, A, …, F} • Das Alphabet für Binärzahlen ist {0, 1} • Das Alphabet für die Dezimalzahlen ist {0, 1, …, 9, , } • Das Alphabet für die deutsche Sprache ist {a, .., z, A, .. Z, ä, .., :, ;, !, ?, „ , “ } Ein Alphabet mit nur 2 Alphabetzeichen heißt binäres Alphabet, ein Alphabet mit nur 3 Alphabetzeichen heißt trinäres Alphabet. Beispiel: Für die digitale Datenübertragung steht uns eine binäre Quelle mit dem Alphabet {0, 1} zur Verfügung 9 1.1 Alphabet und Wörter Wort: Definition und Länge Unter einem Wort der Länge ∈ über einem Alphabet versteht man eine beliebige Aneinanderreihung (Folge) von Symbolen aus dem Alphabet . Die leere Folge (der Länge 0) bezeichnet man mit ∅ Beispiel: 100 ist ein Wort der Länge 3 über dem Alphabet 0, 1 der Binärzahlen. Gelegentlich verwendete, alternative Bezeichnungen: • String oder Zeichenkette der Länge • Folge der Länge über • Vektor der Länge über • Variation mit Wiederholung der Länge über Die Länge eines Wortes ist die Anzahl der vorkommenden Symbole. Sie wird mit | | bezeichnet. Beispiel: ∅ , 10 1.1 Alphabet und Wörter Definitionen für Wörtermengen • • Die Menge aller Wörter der Länge über bezeichnet. ) wird mit ∗ (mit konstantem und festem bezeichnet die Menge aller Wörter mit einer Maximallänge über ∗ Achtung: Gelegentlich wird als ∗ auch die Gesamtmenge aller Wörter bezeichnet (entsprechend ⟶ ∞) A* = A1 A2 Beispiel: 0, 1 ; Wortlänge maximal 2. 0, 1 00, 01, 10, 11 ∗ ∪ 0, 1 ∪ 00, 01, 10, 11 ∗ , , , , , A2 A1 0 00 1 10 11 01 11 1.1 Alphabet und Wörter Satz: • • • Es gibt genau Wörter der Länge Jedes Wort über Alphabet hat Komponenten Für jede Komponente eines Wortes gibt es Möglichkeiten Variationen unabhängig genau Wörter Beispiel: 0, 1, 2 3; 2 o Laut Satz: Anzahl der Wörter mit Länge 2 ⇒ o Probe durch Abzählen der möglichen Wörter: 00 01 02 10 11 12 also auch 9 Wörter 20 21 22 12 Aufgabe 1-1 0, 1, 2 und 1. Es sei das Alphabet a. b. Bestimmen Sie: , Wie groß ist ? , , und 3 gegeben. ∗ 2. Ein Alphabet A, bestehend aus 26 Buchstaben, 3 Umlauten sowie dem Leerzeichen und den neun Satzzeichen . , ; : ? ! „ “ und – soll a. b. Binär hexadezimal dargestellt werden. Wie viele binäre bzw. hexadezimale Stellen sind für die Darstellung eines Symbols mindestens erforderlich? 13 1. Einführung und Definitionen 1.1 1.2 1.3 Alphabet und Wörter Graphen und Bäume Codierung und Decodierung 1.3.1 Definition 1.3.2 Blockcode 1.3.3 Präfixfreier Code 14 1.2 Graphen und Bäume Graphen • Ein Graph G umfasst eine Menge V von Knoten und E von Kanten, welche die Knoten miteinander verbinden , • ∅ ⊂ Allgemeiner Graph (ungerichteter Graph): Veranschaulichung als Punkte und Verbindungslinien: Kein Graph z.B. • 2. Knote fehlt Gerichteter Graph: Ein Graph heißt gerichtet, wenn jede Kante E ein geordnetes Knotenpaar (V1, V2) darstellt. Ein Knotenpaar (V1, V2) heißt Pfeil von V1 (Anfangsknoten) nach V2 (Endknoten) 15 1.2 Graphen und Bäume Graphen • Endlicher Graph: Ein Graph G heißt endlich, wenn die Anzahl der Knoten ∞⇒ ∞ (und damit auch der Kanten) endlich ist, also • Der Grad eines Knotens ( ) beschreibt die Anzahl der Kanten, an denen 2 ein Knoten beteiligt ist. • 4 4 3 3 Ein Graph G heißt r-regulär, wenn alle Knoten den Grad 1 haben. 2 3 16 1.2 Graphen und Bäume Graphen • Ein Graph G heißt zusammenhängend, wenn je zwei Knoten durch irgendeinen Weg verbunden sind (ggf. zusammengesetzt aus mehreren Kanten) Satz: Sei G=(V, E) ein endlicher Graph, es gilt: rp: Grad des Knotens (Anzahl der Kanten an den Knoten) 2 ∈ 17 1.2 Graphen und Bäume Bäume • • Ein Baum ist ein spezieller Graph, mit dem sich eine Monohierarchie modellieren lässt. Ein Baum besteht aus einer Menge von Knoten mit einer speziellen Eltern-Kind-Relation, welche die folgenden Eigenschaften hat: o Es gibt einen ausgezeichneten Knoten , den man die Wurzel des Baums nennt und der keinen Elternknoten besitzt. o Jeder Knoten außer der Wurzel hat einen eindeutig bestimmten Elternknoten. o Jeder Knoten ist Nachfahre der Wurzel , (d.h. ist selbst die Wurzel oder ein Kind, Enkel, Urenkel, usw. von ) o Ein Knoten, der keine Kinder hat, wir als ein Blatt des Baums bezeichnet. o Knoten, die mindestens ein Kind haben, nennt man innere Knoten des Baums. • Bäume werden häufig graphisch dargestellt, wobei die Wurzel den höchsten (bzw. niedrigsten) Punkt bildet und alle Kinder auf einem Niveau unter (bzw. über) ihre Elternknoten gezeichnet und mit dem Elternknoten durch eine Kante verbunden werden. 18 1.2 Graphen und Bäume Bäume • Je nachdem, ob die Kanten des Baums eine ausgezeichnete Richtung besitzen, lassen sich Bäume in ungerichtete oder gewurzelte Bäume unterteilen: o Ungerichteter Baum: Ein zusammenhängender ungerichteter Graph. Knoten mit Grad 1 werden Blätter genannt, die übrigen Knoten heißen innere Knoten o Gewurzelter Baum (auch gerichteter Baum) ist ein gerichteter Graph mit genau einer Wurzel. Wurzeln sind Knoten mit Eingangsgrad 0. Knoten mit Ausgangsgrad 0 heißen Blätter. Darstellung eines ungerichteten Baumes mit • zwei inneren Knoten (blau) und • vier Blättern (rot) Darstellung eines gerichteten Baumes mit • einer Wurzel (rot), • zwei inneren Knoten (gelb) und • vier Blättern (grün) Quelle: Wikipedia 19 1.2 Graphen und Bäume Der reguläre binäre Baum • • • • Ein Binärbaum ist ein Wurzelbaum, bei dem von jedem Knoten, der kein Endknoten ist, höchstens d=2 Knoten wegführen (jeder Knoten besitzt höchstens zwei Kindknoten) Ein Binärbaum ist entweder leer, oder er besteht aus einer Wurzel mit einem linken und rechten Teilbaum, die wiederum Binärbäume sind. Er heißt auch vollständig, wenn alle Endknoten den gleichen Abstand von der Wurzel haben Graphische Darstellungen: Wurzel oben (oder links) und die Blätter unten (oder rechts) platziert. Weg von der Wurzel in Richtung Blatt. Vollständiger Binärbaum Binärbaum mit Knotentypen 20 1.2 Graphen und Bäume Darstellung von Wörtern in einem Baum Sei ein Alphabet mit • Jede von einem Knoten ausgehende Kante lässt sich mit einem Element aus benennen • Den Knoten des -ten Niveaus können Wörtern der Länge zugeordnet werden Wurzel Beispiel 1: Alphabet Binär 0, 1 0 Baum • Binär a1 • Nicht vollständig 0 1 0 1 a3 1 a4 a1 = 00 a2 = 011 a3 = 10 a4 = 11 1 a2 21 1.2 Graphen und Bäume Darstellung von Wörtern in einem Baum Beispiel 2: Alphabet 0, 1, 2 und Baum nicht Binär 3(in diesem Fall trinäres Alphabet) Wurzel a1 = 01 a2 = 022 a3 = 11 a4 = 202 a5 = 22 0 2 1 0 2 1 a1 2 1 a5 a3 2 a2 2 a4 22 1.2 Graphen und Bäume Anwendungsbeispiele • • • • • • In der Codierungstheorie (Huffman-Codierung; Fano …) In der Informatik werden Bäume häufig als Datenstruktur eingesetzt. In diesem Fall werden sie aber anders repräsentiert als allgemeine Graphen. Knoten als Personen, Kanten als Verwandtschaft Knoten als Organisationen, Kanten als Geschäftsbeziehung Knoten als Orte, Kanten als Wege Knoten als Programmbefehle, Kanten als mögliche Programmfortschritte (Verzweigung) 23 1. Einführung und Definitionen 1.1 1.2 1.3 Alphabet und Wörter Graphen und Bäume Codierung und Decodierung 1.3.1 Definition 1.2.1 Blockcode 1.2.2 Präfix-Code 24 Codierung Definition Die Codierung beschreibt im allgemeinen die Darstellung von Informationen durch Symbolfolgen. • • • • • • Eine Information ist dabei ein Wort über dem Alphabet Eine codierte Information ist ein Wort über dem Alphabet Für die Überführung einer Information über dem Alphabet zum Alphabet bedarf es einer injektiven Abbildung ∗ : ⇒ heißt Codierung (Codierung von durch ) Mit Code wird der als Bildmenge bei einer Codierung auftretenden Symbolvorrat bezeichnet: ⊂ ∗ Die Bildelemente ∗ , heißen Codeworte über Ist ein Binäralphabet: eine Binärcodierung 0, 1 , dann heißt die Codierung : → ∗ 25 Was ist eine Abbildung? : Eine mathematische Abbildung : ⟹ D.h. jeden Element aus wird per Abbildungsvorschrift ein Element aus zugeordnet A Gegenbeispiel A B B Keine Abbildung, weil es zu einem Element aus kein Bild gibt. 26 Was ist eine injektive Abbildung? Injektive Abbildung : → mehr als einen Ursprung ∗ bedeutet: Kein Bildpunkt aus hat Eine Umkehrabbildung ist möglich für eine Untermenge von Die Umkehrabbildung wird mit Decodierung bezeichnet B A Beispiel: , , 0, 1 ; 1 0 01 C ist eine injektive Abbildung Beispiel: , ; : ⟶ Diese Abbildung ist nicht injektiv Begründung: 2 2 4 ⇒ 4 ∈ ∗ hat mehr als einen Ursprung 27 Decodierung Definition Die Decodierung ist die Umkehrabbildung der Codierung. Ein Code heißt decodierbar genau dann, wenn jedes codierte Wort nur auf eine einzige Arzt zurückübersetzt werden kann. • • sei die Codierung von : → ∗ Die Abbildung für die Decodierung wird mit ∶ → , ist eine Untermenge von • • durch bezeichnet. Es gilt: ⊂ ∗ ∗ Decodieren kann man nur Wörter, die vorher codiert worden sind. Nicht jedes beliebige Wort aus der Menge ∗ ist rückübersetzbar, sondern nur solche Wörter, die schon vorher übersetzt worden sind (hier aus ). 28 1. Einführung und Definitionen 1.1 1.2 1.3 Alphabet und Wörter Graphen und Bäume Codierung und Decodierung 1.3.1 Definition 1.3.2 Blockcode 1.3.3 Präfixfreier Code 29 1.3.2 Blockcode Definition: • • Bei einem Blockcode ist die Länge aller Codewörter gleich Sei in Alphabet und ∈ . Ein Blockcode der Länge über ist eine Teilmenge von Ist 2 (i. Allg. 0, 1 , so heißt binärer Blockcode: 0, 1 , 2 00, 01, 10, 11 : Blockcode der Länge 2 über Beispiel: , , , 0,1 3 : → Für die Codierung der einzelnen Elemente von benötigen wir 3 Bits. Die Codierung könnte wie folgt aussehen (s. Tabelle) : ist eine Untermenge vom 3-Bit-Binärcode , , , , , , , a 000 b 011 c 010 30 Aufgabe 1-2 Ein Sender kann vier Codierte Nachrichten aussenden (Es handelt sich hier um einer binären Blockcodierung der Länge 2): 0 0 Die Börse ist sehr fest. 1 1 Sollen wir verkaufen? 0 1 Die Kurse fallen. 1 0 Helft uns gegensteuern! Eines Tages wird die Symbolfolge X00110011001............. empfangen. Dabei hat man das erste Symbol verpasst und erst das zweite empfangen. Zusätzlich weiß man nicht, wo die Mitteilung aufhört, da der Sender immer weiter sendet. Rekonstruieren Sie die gesendete Botschaft unter der Annahme, dass der Sender etwas Sinnvolles übertragen hat. 31 1. Einführung und Definitionen 1.1 1.2 1.3 1.4 Alphabet und Wörter Graphen und Bäume Codierung und Decodierung 1.3.1 Definition 1.3.2 Blockcode 1.3.3 Präfix-Code Beispiele für Codierungen 32 1.3.3 Präfix-Code oder Präfixfreier Code Präfixe: Strukturierung von Wörtern nach Anfangsstücken. Definition: Ein Code heißt Präfixfrei (Präfix-Code), wenn kein Codewort aus Präfix (Anfangsstück) eines anderen Codewortes ist. Beispiel: • Code • Code 0, 10, 11 erfüllt die Präfix-Eigenschaft. 0, 01,11 verletzt die Präfix-Eigenschaft, da 0 Präfix von 01 ist. ä Allgemein gilt: ∀ , , ⟶ Beispiele: • Die Telefonnummern sind Präfixfreie Codes, da jeder Anschluss durch seine Telefonnummer eindeutig identifizierbar sein muss. Es darf bei Wählprozess nicht dazu kommen, dass es zwischen drin bei einem anderen Teilnehmer klingelt. • Jeder Blockcode ist Präfixfrei, denn bei Blockcodes haben alle Codewörter die gleiche Länge (sonst wären zwei Codewörter gleich) 33 Aufgabe 1-3 Gegeben sei das Alphabet 0, 1 . Ist die Menge 1, 011, 01110, 1110, 10011 ein sinnvoller Code für fünf Nachrichten? Lösung Codewort 2 (011) ist auch in Codewort 3 (01110) enthalten kein Präfixfreier Code Code ungünstig 34 1.3.3 Präfix-Code Eigenschaften • • • • Das leere Wort ∅ist Präfix jeden Wortes. Jeder Präfixfreier Code ist (insbesondere auch bei sequentieller Übertragung) eindeutig decodierbar. Man kann jeden Präfix-Code durch einen Code-Baum repräsentieren. Bei einem Präfix-Code werden im zugehörigen Code-Baum alle Codewörter durch Endknoten dargestellt. Beispiel: Präfixe auf ⋃ , . Alle Wörter mit Maximallänge 3 (Alphabet 0, 1 ) Realisierung mit einem Baum Präfixe von 01 sind : ∅, , Präfixe von 101 sind : ∅, , , ∅ 35 Aufgabe Bestimmen Sie für jeden der folgenden Codes, ob dieser eindeutig decodierbar ist und ob es sich um einen präfixfreien Code handelt. Ist der Code nicht eindeutig decodierbar, dann geben Sie eine Codesequenz an, für welche zwei unterschiedliche Interpretationen als Sequenz aus Codewörtern existieren. Sonst repräsentieren Sie den Code mit einem Codebaum. 1. 00, 10, 01, 11 2. 0, 10, 11 3. 0, 01, 11 4. 1, 101 5. 0, 1, 01 Bemerkung: Existiert ein eindeutig decodierbarer Code, dann existiert auch ein präfixfreier Code mit denselben Codewortlängen. Deshalb werden für eindeutig decodierbare Codes üblicherweise Präfixfreie Codes Verwendet. 36 Ungleichung von Kraft Definition: Jede binärer bzw. t-närer Präfix-Code Codewörter) und den zugehörigen Längen Ungleichung von Kraft: . mit | | , ,…, (d.h. erfüllt die Sind umgekehrt , , ,…, natürliche Zahlen, die diese Ungleichung erfüllen, so existiert ein entsprechender binärer (bzw. t-närer) Präfix-Code . Beispiel 1: 4 Endknoten Ungleichung von Kraft: 2 3·2 1, 1,25 2 1 Ein binärer Wurzelbaum existiert nicht Kein Platz für den dritten 2 37 Ungleichung von Kraft 2, Beispiel 2: 4 Endknoten Ungleichung von Kraft: 2·2 2 4 2·2 2 8 3 4 3 0,75 1 Ein binärer Wurzelbaum existiert (1) (2) (3) (4) 38 Aufgabe 1-4 • Ein binärer Baum habe sind: 2; 7 Endknoten, deren Abstände 3; von der Wurzel 4 1. Existiert dieser Baum? 2. Wenn ja, stellen Sie diesen Baum dar. 39 Aufgabe 1-5 1. Existiert für folgende Codewortlängen ein binärer Präfixfreier Code? Wenn ja, dann konstruieren Sie einen entsprechenden Code a. b. c. 1, 2, 3, 4, 5, 5 1, 2, 3, 4,4, 5 2, 2,2, 3, 4 2. Existiert für folgende Codewortlängen ein ternärer Präfixfreier Code? Wenn ja, dann konstruieren Sie einen entsprechenden Code a. b. c. 1,2,3,1,2,3,2 1,2,3,4,1,2,3,4 3,3,3,3,3,3,2,1,1 40 1. Einführung und Definitionen 1.1 1.2 1.3 1.4 Alphabet und Wörter Graphen und Bäume Codierung Beispiele für Codierungen 1.4.1 1.4.2 1.4.3 Morse-Codierung ASCII-Codierung Lochkarten Codierung 41 1.4 Beispiele für Codierungen 1.4.1 Morse-Codierung • • • Der Morse-Code (auch Morsealphabet genannt) ist ein Verfahren zur Übermittlung von Buchstaben, Zahlen und übrige Zeichen. Es wird dabei ein Signal ein- und ausgeschaltet Wurde von Samuel Morse (1791-1872) erfunden und wird heute auf der ganzen Welt verwendet. Der Morse-Code kann als Tonsignal, als Funksignal, als elektrischer Puls mit einer Morsetaste über eine Telefonleitung, mechanisch oder optisch (mit blinkendem Licht) übertragen werden. Morsetaste Quelle: Wikipedia Übermittlung von Morsecode mittels Lichtzeichen in der Seefahrt 42 1.4 Beispiele für Codierungen 1.4.1 Morse-Codierung Internationaler Morsecode • Es ist ein ternärer Code mit drei Symbole: Punkt ( ) Strich (--- ) und Leerzeichen Meist kurz, lang und Pause genannt • Das Leerzeichen wird nur als Trennzeichen verwendet. Es gilt: o Zwischen Buchstaben 1 Zeiteinheit o Zwischen Wörtern 3 Zeiteinheiten o Zwischen Sätzen 6 Zeiteinheiten • Beispiel: Das Alphabet A wird codiert mit --- Automatischer Morseschreiber 43 1.4 Beispiele für Codierungen 1.4.1 Morse-Codierung Auszug aus dem Morse-Alphabet • • • Die Codewortlänge der Einzelnen Buchstaben ist variabel, angepasst an die Häufigkeit der Buchstaben (von 1+Leerzeichen bis 4+Leerzeichen) Buchstaben, die besonders häufig verwendet werden, bekamen von Morse einen kurzen Code zugewiesen Beispiel ‚E‘ oder ‚T‘ Selten verwendete Buchstaben wurden mit einem längeren Code dargestellt Beispiel ‚Q‘ ‚V‘ Quelle: Wikipedia 44 1.4 Beispiele für Codierungen 1.4.1 Morse-Codierung • Beispiele für Codierung ohne Leerzeichen als Trennzeichen zwischen den Symbolen o o o o o • Morsecode von AU Morsecode von ENA Morsecode von ETU Morsecode von ETEA Morsecode von LT -- - -- - -- - -- - -- -- Morsecode ist ohne Lücken zwischen den Symbolen nicht decodierbar alle codierten Symbole müssen deshalb durch eine Lücke getrennt werden • Viele Codierte Symbole stellen den Anfang eines anderen codierten Symbols dar Es ist nur dann ein Präfix-Code, wenn das Trennzeichen nach jedem Buchstaben mit berücksichtigt wird. Beispiel Morsecode von A ( --) ist auch Anfangscode von L ( -- ), J ( -- -- --), P ( -- -- ), R ( -- ) und W ( -- --) 45 1. Einführung und Definitionen 1.1 1.2 1.3 1.4 Alphabet und Wörter Graphen und Bäume Codierung Beispiele für Codierungen 1.4.1 1.4.2 1.4.3 Morse-Codierung ASCII-Codierung Lochkarten Codierung 46 1.4 Beispiele für Codierungen 1.4.2 ASCII-Codierung • • • • Die ASCII (American Standard Code for Information Interchange)-Codierung wurde 1963 von der American Standard Association (ASA) als Standard ASA X3.4-1963 veröffentlicht und 1967 und 1968 aktualisiert. Prinzip: Um Text in einem Rechner darzustellen, codiert man Symbole mittels Bitfolgen (Bit = einzelne Speicherzelle). Die Symbole umfassen das lateinische Alphabet in Gross- und Kleinschreibung, die zehn arabischen Ziffern so wie einige Satz- und Steuerzeichen. Jedem Symbol wird ein Bitmuster aus 7 Bit zugeordnet. Da jedes Bit zwei Werte annehmen kann (0 oder 1), gibt es 27 = 128 verschiedene Bitmuster, die auch als die ganzen Zahlen von 0 bis 127 (hexadezimal 00-7F) interpretiert werden können. Die Darstellung erfolgt mit je einer 8 stelligen Binärzahl. Das letzte und 8te Bit diente früher als Kontrollbit bei der Datenübertragung, da die Qualität der Datenübertragung heute sehr sicher ist, nutzt man daher auch das Kontrollbit für die Codierung. Somit ergibt sich ein weiterer verfügbarer Bereich von ASCII 128 bis ASCII 255 (28 = 256 verschiedene Bitmuster). 47 1.4 Beispiele für Codierungen 1.4.2 ASCII-Codierung Die ASCII Darstellung ist eine Kombination aus je 2 Hexadezimalzahlen aus dem Alphabet , , , , , , , , , , , , , , , oder aus je 8 Dualzahlen aus dem Alphabet , . Schritte der ASCII-Codierung ( am Beispiel des Symbols M) 1. Suchen der zugehörigen Dezimalzahl in Tabelle Das Symbol M hat die Dezimalzahl 77 2. Umrechnen in Hexadezimalzahl 4 · 16 13 · 16 3. Binäre Darstellung der beiden Hexadezimalstellen 1·2 0·2 0 · 2 1 · 2 1·2 0·2 1·2 3. Ermittlung und Anhängen des Paritätsbits (so, dass die Gesamtzahl der mit 1 besetzten Positionen gerade ist) Paritätsbit ist hier 0, da die Binärzahl 4x1 enthält anhängen an die Binärzahl : ASCII-Code vom Symbol „M“ 48 Aufgabe 1-8 1. Wie lautet der ASCII-Code vom Symbol „A“ (Hexadezimalzahl = 41) 2. Vervollständigen Sie die folgende Tabelle zur Umrechnung von Dezimal-, Hexadezimal- und Binärzahl Dezimalzahl Hexadezimalzahl Binärzahl 715 19 B3 125 1010101 49 1.4.2 ASCII-Codierung Teil einer ASCII-Code Tabelle Tabelle s. http://www.asciicode.com/ 50 1. Einführung und Definitionen 1.1 1.2 1.3 1.4 Alphabet und Wörter Graphen und Bäume Codierung Beispiele für Codierungen 1.4.1 1.4.2 1.4.3 Morse-Codierung ASCII-Codierung Lochkarten Codierung 51 1.4.3 Lochkarten Codierung • • • In den Anfangszeiten der elektromagnetischen Datenverarbeitung konnten vielen Computersystemen ihre Eingabedaten ausschließlich über Lochkarten zugeführt werden Eine Lochkarte ist ein aus Spezialpapier gefertigter Datenträger und wird in der Datenverarbeitung zur Datenerfassung und –Speicherung verwendet Dateninhalte werden durch einen Lochcode abgebildet (5 Spuren), mithilfe von elektromechanischen Geräten erzeugt und verarbeitet. 52