Informationstheorie und Codierung. Prof. Dr.-Ing. Lilia Lajmi

Ähnliche Dokumente
Klausur Informationstheorie und Codierung

Übung zur Vorlesung. Informationstheorie und Codierung

1. Woche Einführung in die Codierungstheorie, Definition Codes, Präfixcode, kompakte Codes

Einführung in die Informatik II Aus der Informationstheorie: Datenkompression

Kapitel 7: Optimalcodierung und Huffman Coding

Einführung in die Codierungstheorie

3 Codierung diskreter Quellen. Quelle Quellcodierer Kanalcodierer reduziert die benötigte Datenmenge. fügt Daten zur Fehlerkorrektur ein.

(Prüfungs-)Aufgaben zur Codierungstheorie

Einleitung. Kapitel 1

Vorlesung 15a. Quellencodieren und Entropie

Vorkurs Informatik WiSe 17/18

Diskrete Mathematik II

Technische Informatik - Eine Einführung

Codierungstheorie Teil 1: Fehlererkennung und -behebung

Vorlesung 12. Quellencodieren und Entropie

Theoretische Grundlagen der Informatik. Vorlesung am 31. Januar INSTITUT FÜR THEORETISCHE INFORMATIK

Isomorphie von Bäumen

Digitaltechnik I WS 2006/2007. Klaus Kasper

Informatik II, SS 2016

Referat zum Thema Huffman-Codes

Grundbegrie der Codierungstheorie

2. Woche Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung

Dynamisches Huffman-Verfahren

Beispiel: Zeigen Sie, dass H(x) = H 0 = I gilt, wenn alle Zeichen gleichwahrscheinlich sind.

Theoretische Grundlagen der Informatik

Notation und Einführung

Einführung in die Codierungstheorie

Rechnernetze Übung 5. Frank Weinhold Professur VSR Fakultät für Informatik TU Chemnitz Mai Wo sind wir?

Strings. Stringsuche, Boyer-Moore, Textkompression, Huffman Codes.

Graphen und Bäume. A.1 Graphen

Übungsblatt 5 - Musterlösung

Redundanz. Technische Informationsquelle Entropie und Redundanz Huffman Codierung. Martin Werner WS 09/10. Martin Werner, Dezember 09 1

Informatik II, SS 2018

Diskrete Strukturen Kapitel 4: Graphentheorie (Bäume)

Codes (6) Fehlererkennende (EDC) bzw. fehlerkorrigierende Codes (ECC)

Modul Diskrete Mathematik WiSe 2011/12

WS 2013/14. Diskrete Strukturen

Algorithmische Graphentheorie

Dirk W. Hoffmann. Einführung. in die Informations. und Codierungstheorie. ^ Springer Vieweg

Grundlagen der Technischen Informatik. 2. Übung

Die Mathematik in der CD

Übersicht. Aktivitäten-Auswahl-Problem. Greedy Algorithmen. Aktivitäten-Auswahl-Problem. Aktivitäten-Auswahl-Problem. Datenstrukturen & Algorithmen

Grundbegriffe der Informatik Tutorium 8

Datenstrukturen und Algorithmen. Christian Sohler FG Algorithmen & Komplexität

Theoretische Grundlagen der Informatik

Digitale Medien. Übung

Vorkurs Informatik WiSe 15/16

Konzepte der Informatik

Vorkurs Informatik WiSe 16/17

Informationstheorie und Codierung. Prof. Dr.-Ing. Lilia Lajmi

Technische Grundlagen der Informatik Test Minuten Gruppe A

Tutorium 23 Grundbegriffe der Informatik (6. Sitzung)

Grundbegriffe der Informatik Tutorium 3

2. Vorlesung: Boolesche Algebra

Informationsdarstellung 2.2

Aufgabe: Platz-effiziente Kompression von Textdaten

Information und Codierung

Entropie. Um der Begriff der Entropie zu erläutern brauchen wir erst mal einige Definitionen, z.b.

Theoretische Grundlagen der Informatik

Gegeben ist ein systematischer (7,3)-Cod. Die drei seiner Codewörter lauten:

Grundbegriffe der Informatik

Definition Information I(p)

ADS: Algorithmen und Datenstrukturen 2

Graphen Jiri Spale, Algorithmen und Datenstrukturen - Graphen 1

Codierung. H.-G. Hopf

Theoretische Grundlagen der Informatik

CODIERUNGSTHEORIE KURS ZELL AN DER PRAM, FEBRUAR 2005

Übrigens: um den Algorithmus im Unterricht einzuführen, sind keine Formeln notwendig! Warum reicht die normale ASCII-Codierung nicht aus?

Informationstheorie und Codierung

Kapitel 1: Schaltfunktionen und ihre Darstellung

Modul InfB-RS: Rechnerstrukturen

There are only 10 types of people in the world: those who understand binary, and those who don't

Ι. Einführung in die Codierungstheorie

Proseminar Kodierverfahren bei Dr. Ulrich Tamm Sommersemester 2003 Thema: Codierung von Bäumen (Prüfer Codes...)

Seminar Kompressionsalgorithmen Huffman-Codierung, arithmetische Codierung

Seien u, v V, u v. Da G zusammenhängend ist, muss mindestens ein Pfad zwischen u und v existieren.

Klausur Informatik-Propädeutikum (Niedermeier/Hartung/Nichterlein, Wintersemester 2012/13)

(7) AB 20: Bits und Bytes

7.1 a) Für die Übertragung der Nachricht mittels des Polynoms T(x) werden 40 Bit benötigt.

Einführung in die Informations- und Codierungstheorie

Musterlösung zur Hauptklausur Theoretische Grundlagen der Informatik Wintersemester 2013/14

Digitale Medien. Übung

Grundlagen der Theoretischen Informatik

Gruppe. Kanalcodierung

Kompression. Tim Kilian

Altersgemäße Sachtexte sinnverstehend lesen

Einführung in die Programmierung

Diskrete Strukturen Wiederholungsklausur

16 - Kompressionsverfahren für Texte

Verkettete Datenstrukturen: Bäume

Nachklausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2012/13

21. Dynamic Programming III

Technische Universität München. Vorlesungsgrobstruktur: wo stehen wir, wie geht s weiter

Graphen. Definitionen

Fachprüfung. Nachrichtencodierung

Transkript:

Informationstheorie und Codierung Prof. Dr.-Ing. Lilia Lajmi l.lajmi@ostfalia.de

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) Bilder, Sprache, Text,.. Daten- Kanal Empfänger (Datensenke) 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 Quellen- Codierer Kanal- Codierer Digital Sender Redundanz Irrelevanz Fehlerschutz Redundanz Digitaler Kanal Senke Quellen- Decodierer Kanal- Decodierer Empfänger 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 Alphabet und Wörter 1.2 Graphen und Bäume 1.3 Codierung und Decodierung 2. Quellencodierung 2.1 Motivation 2.2 Shannon sche Informationstheorie 2.3 Binärcodierung nach Shannon 2.4 Huffman-Codierung 2.5 Codierung von Wörtern anstelle von Einzelsymbolen 2.6 Diskrete Quelle mit Gedächtnis 3. Kanalcodierung 3.1 Nachrichtentheorie für gestörte Kanäle 3.2 Blockcodes 3.3 Gruppencodes 3.4 Zyklische Codes 3.5 Faltungscodes 6

Literatur Hermann Rohling Einführung in die Informationsund Codierungstheorie, Teubner-Verlag, 1995, 49,95 Ralph-Hardo Schulz Codierungstheorie, Vieweg- Verlag, 1991 ca. 29,9 Richard W. Hamming Information und Codierung VCH Verlagsgesellschaft, 1987 7

1. Einführung und Definitionen 1.1 Alphabet und Wörter 1.2 Graphen und Bäume 1.3 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 (mit konstantem und festem ) wird mit bezeichnet. bezeichnet die Menge aller Wörter mit einer Maximallänge über Achtung: Gelegentlich wird als auch die Gesamtmenge aller Wörter bezeichnet (entsprechend ) Beispiel: 0, 1 ; Wortlänge maximal 2. 0, 1 00, 01, 10, 11 0, 1 00,01,10,11,,,,, A * = A 1 A 2 A 1 A 2 0 00 10 1 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 1. Es sei das Alphabet 0, 1, 2 und 3gegeben. a. Bestimmen Sie:,,, und b. Wie groß ist? 2. Ein Alphabet A, bestehend aus 26 Buchstaben, 3 Umlauten sowie dem Leerzeichen und den neun Satzzeichen., ; :?! und soll a. Binär b. 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 Alphabet und Wörter 1.2 Graphen und Bäume 1.3 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 (V 1, V 2 ) darstellt. Ein Knotenpaar (V 1, V 2 ) heißt Pfeil von V 1 (Anfangsknoten) nach V 2 (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 ein Knoten beteiligt ist. 2 4 4 3 3 Ein Graph G heißt r-regulär, wenn alle Knoten den Grad haben. 1 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: r p : Grad des Knotens (Anzahl der Kanten an 2 den Knoten) 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 gerichteten Baumes mit einer Wurzel (rot), zwei inneren Knoten (gelb) und vier Blättern (grün) Darstellung eines ungerichteten Baumes mit zwei inneren Knoten (blau) und vier Blättern (rot) 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 Baum Binär Nicht vollständig 0 1 0 1 0 1 a 1 a 3 a 4 1 a 1 = 00 a 2 = 011 a 3 = 10 a 4 = 11 a 2 21

1.2 Graphen und Bäume Darstellung von Wörtern in einem Baum Beispiel 2: Alphabet 0, 1, 2 und 3 (in diesem Fall trinäres Alphabet) Baum nicht Binär Wurzel a 1 = 01 a 2 = 022 a 3 = 11 0 1 2 a 4 = 202 a 5 = 22 1 2 1 0 2 a 5 a 1 2 a 3 2 a 2 a 4 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 Alphabet und Wörter 1.2 Graphen und Bäume 1.3 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: 0, 1, dann heißt die Codierung : eine Binärcodierung 25

Was ist eine Abbildung? : Eine mathematische Abbildung : D.h. jeden Element aus wird per Abbildungsvorschrift ein Element aus zugeordnet A Gegenbeispiel B A B Keine Abbildung, weil es zu einem Element aus kein Bild gibt. 26

Was ist eine injektive Abbildung? Injektive Abbildung : bedeutet: Kein Bildpunkt aus hat mehr als einen Ursprung Eine Umkehrabbildung ist möglich für eine Untermenge von Die Umkehrabbildung wird mit Decodierung bezeichnet A Beispiel:, ; : Diese Abbildung ist nicht injektiv Begründung: B Beispiel:,, 0, 1 ; 1 0 01 C ist eine injektive Abbildung 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 durch : Die Abbildung für die Decodierung wird mit bezeichnet. Es gilt:, ist eine Untermenge von 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 Alphabet und Wörter 1.2 Graphen und Bäume 1.3 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 Alphabet und Wörter 1.2 Graphen und Bäume 1.3 Codierung und Decodierung 1.3.1 Definition 1.3.2 Blockcode 1.3.3 Präfix-Code 1.4 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 0, 10, 11 erfüllt die Präfix-Eigenschaft. Code 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 mit (d.h. Codewörter) und den zugehörigen Längen,,, erfüllt die Ungleichung von Kraft:. 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 1, 2 Ungleichung von Kraft: 2 3 2 1,25 1 Ein binärer Wurzelbaum existiert nicht Kein Platz für den dritten 2 37

Ungleichung von Kraft Beispiel 2: 4 Endknoten 2, 3 Ungleichung von Kraft: 2 2 2 2 2 4 2 8 3 4 0,75 1 Ein binärer Wurzelbaum existiert (1) (2) (3) (4) 38

Aufgabe 1-4 Ein binärer Baum habe 7Endknoten, deren Abstände von der Wurzel sind: 2; 3; 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. 1, 2, 3, 4, 5, 5 b. 1, 2, 3, 4,4, 5 c. 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. 1,2,3,1,2,3,2 b. 1,2,3,4,1,2,3,4 c. 3,3,3,3,3,3,2,1,1 40

1. Einführung und Definitionen 1.1 Alphabet und Wörter 1.2 Graphen und Bäume 1.3 Codierung 1.4 Beispiele für Codierungen 1.4.1 Morse-Codierung 1.4.2 ASCII-Codierung 1.4.3 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 Morsecode von AU o Morsecode von ENA o Morsecode von ETU o Morsecode von ETEA o 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 Alphabet und Wörter 1.2 Graphen und Bäume 1.3 Codierung 1.4 Beispiele für Codierungen 1.4.1 Morse-Codierung 1.4.2 ASCII-Codierung 1.4.3 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 2 7 = 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 (2 8 = 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 Alphabet und Wörter 1.2 Graphen und Bäume 1.3 Codierung 1.4 Beispiele für Codierungen 1.4.1 Morse-Codierung 1.4.2 ASCII-Codierung 1.4.3 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