Informationsdarstellung im Rechner



Ähnliche Dokumente
Informationsdarstellung im Rechner

Grundlagen der Technischen Informatik. 2. Übung

Kapitel 3. Codierung von Text (ASCII-Code, Unicode)

Organisation. Was kommt zum Test? Buch Informatik Grundlagen bis inkl. Kapitel 7.4 Wissensfragen und Rechenbeispiele

Theoretische Grundlagen der Informatik WS 09/10

Grundlagen Digitaler Systeme (GDS)

Anzahl Pseudotedraden: Redundanz: Weitere Eigenschaften?

Übung zur Wirtschaftsinformatik I. Zahlensysteme / Codierung

Rechnerstrukturen WS 2012/13

BITte ein BIT. Vom Bit zum Binärsystem. A Bit Of Magic. 1. Welche Werte kann ein Bit annehmen? 2. Wie viele Zustände können Sie mit 2 Bit darstellen?

0 Im folgenden sei die Wortlänge gleich 8 (d. h.: es wird mit Bytes gearbeitet).

Zahlen und Zeichen (1)

Einführung in die Kodierungstheorie

X = {x 1,x 2,...} sei ein Symbolalphabet eines Kodes. In diesem Kode sind card(x) = X Sachverhalte darstellbar

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

Daten, Informationen, Kodierung. Binärkodierung

Binär Codierte Dezimalzahlen (BCD-Code)

Frank Weinhold Professur VSR Fakultät für Informatik TU Chemnitz Mai 2011

Einführung in die Programmierung

Barcode- Referenzhandbuch

Binärdarstellung von Fliesskommazahlen

9 Codes. Hochschule für Angewandte Wissenschaften Hamburg FACHBEREICH ELEKTROTECHNIK UND INFORMATIK DIGITALTECHNIK 9-1

Ein polyadisches Zahlensystem mit der Basis B ist ein Zahlensystem, in dem eine Zahl x nach Potenzen von B zerlegt wird.

QR Code. Christina Nemecek, Jessica Machrowiak

Informatikgrundlagen I Grundlagen der Informatik I

Zahlensysteme: Oktal- und Hexadezimalsystem

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Zahlensysteme und Datendarstellung

Microcontroller Kurs Microcontroller Kurs/Johannes Fuchs 1

4. Woche Decodierung; Maximale, Perfekte und Optimale Codes. 4. Woche: Decodierung; Maximale, Perfekte und Optimale Codes 69/ 140

Grundlagen der Informatik

Programmieren in C Einführung

15 Optimales Kodieren

Grundlagen der Informatik (BSc) Übung Nr. 5

Codierungstheorie Rudolf Scharlau, SoSe

Zahlensysteme Seite -1- Zahlensysteme

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 11

Modul 114. Zahlensysteme

Technische Informatik - Eine Einführung

CODIERUNGSTHEORIE KURS ZELL AN DER PRAM, FEBRUAR 2005

Zeichen bei Zahlen entschlüsseln

Grundlagen der Informatik I Informationsdarstellung

Single Parity check Codes (1)

Grundlagen der Informatik Übungen 1.Termin

Darstellung von Informationen

N Bit binäre Zahlen (signed)

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2015/16. Vorbereitende Aufgaben. Präsenzaufgaben

Lineare Codes. Dipl.-Inform. Wolfgang Globke. Institut für Algebra und Geometrie Arbeitsgruppe Differentialgeometrie Universität Karlsruhe 1 / 19

Binäre Gleitkommazahlen

Gliederung. Was ist der Unicode? Warum gibt es den Unicode? Wie funktioniert er? Wo ist mein Schriftzeichen? Kritische Stimmen

Vertiefungsstoff zum Thema Darstellung von Zahlen

Eine Logikschaltung zur Addition zweier Zahlen

Codierung. Codierung. EAN Europäische Artikelnummer Ziffern 1 und 2 codieren das Hersteller-Land. Ziffer 2 bis 12 codieren Händler und Ware

Mathematik für Information und Kommunikation

1. Das dekadische Ziffernsystem (Dezimalsystem) Eine ganze Zahl z kann man als Summe von Potenzen zur Basis 10 darstellen:

1 Mathematische Grundlagen

Grundlagen der Informatik 2 Grundlagen der Digitaltechnik. 1. Zahlensysteme

Problem: Finde für Alphabet mit n Zeichen einen Binärcode, der die Gesamtlänge eines Textes (über diesem Alphabet) minimiert.

Codierung zur Fehlerkorrektur und Fehlererkennung

Einfache kryptographische Verfahren

Primzahlen und RSA-Verschlüsselung

Einführung in. Logische Schaltungen

t r Lineare Codierung von Binärbbäumen (Wörter über dem Alphabet {, }) Beispiel code( ) = code(, t l, t r ) = code(t l ) code(t r )

Run Length Coding und Variable Length Coding

Codierungsverfahren SS Reed-Solomon-Codes zur Mehrblock-Bündelfehler-Korrektur

Codes (1) Beispiele für die Bedeutung eines n-bit-wortes:

Informationssysteme Gleitkommazahlen nach dem IEEE-Standard 754. Berechnung von Gleitkommazahlen aus Dezimalzahlen. HSLU T&A Informatik HS10

Zahlendarstellungen und Rechnerarithmetik*

2. Negative Dualzahlen darstellen

Daten verarbeiten. Binärzahlen

Code-Arten und Code-Sicherung. Literatur: Blieberger et.al.: Informatik (Kap. 3 und 4), Springer-Verlag R.-H. Schulz: Codierungstheorie, Vieweg

Grundlagen der Technischen Informatik. Codierung und Fehlerkorrektur. Kapitel 4.2

Basis und Dimension. Als nächstes wollen wir die wichtigen Begriffe Erzeugendensystem und Basis eines Vektorraums definieren.

3 Der Hamming-Code. Hamming-Codes

Zahlensysteme. Zahl Stellenwert Zahl Zahl =

Theoretische Informatik SS 04 Übung 1

Kapitel 4A: Einschub - Binärcodierung elementarer Datentypen. Einschub: Teile aus Kapitel 2 in Küchlin/Weber: Einführung in die Informatik

Wissenswertes über binäre Felder

Merke: Mit jedem zusätzlichen Bit verdoppelt sich die Anzahl der darstellbaren Zahlen bzw. Zustände

Eigenwerte und Eigenvektoren von Matrizen

Programmierung mit NQC: Kommunikation zwischen zwei RCX

Advanced Encryption Standard. Copyright Stefan Dahler 20. Februar 2010 Version 2.0

Woraus besteht ein Bild? (c) Winfried Heinkele

Information in einem Computer ist ein

Zahlensysteme. Digitale Rechner speichern Daten im Dualsystem 435 dez = binär

Codierung. H.-G. Hopf

Grundlagen der Informatik Übungen 1. Termin Zahlensysteme

Zahlensysteme. von Christian Bartl

7 Rechnen mit Polynomen

Numerisches Programmieren, Übungen

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

Programmierkurs Java

Computergruppe Heimerdingen Basiskurs. Karlheinz Wanja & Richard Zeitler

Einführung in die Informatik I

Einstieg in die Informatik mit Java

V 2 B, C, D Drinks. Möglicher Lösungsweg a) Gleichungssystem: 300x y = x + 500y = 597,5 2x3 Matrix: Energydrink 0,7 Mineralwasser 0,775,

Grundbegriffe der Informatik

Aufgaben zu Stellenwertsystemen

Transkript:

1 Informationsdarstellung im Rechner Wintersemester 12/13 1

Informationsdarstellung 2 Was muss dargestellt werden? Zeichen (Buchstaben, Zahlen, Interpunktionszeichen, Steuerzeichen, grafische Symbole, Sonderzeichen,...) Numerische Werte (binär, dezimal, Festpunkt-, Fließkommadarstellung,...) Bilder und Filme Töne Wie? möglichst kompakt (wenig Speicher, wenig Übertragungsbandbreite) möglichst einfach zu codieren/decodieren (wenig Rechenaufwand) möglichst fälschungssicher (Fehler erkennen und beheben) Wintersemester 12/13 2

Basis der Informationsdarstellung 3 BIT: BInary UniT. The unit of information; the amount of information obtained by asking a yes-or-no question; a computational quantity that can take on one of two values, such as true and false or 0 and 1; the smallest unit of storage - sufficient to hold one bit. A bit is said to be "set" if its value is true or 1, and "reset" or "clear" if its value is false or 0. One speaks of setting and clearing bits. The term "bit" first appeared in print in the computer-science sense in 1949, and seems to have been coined by early computer scientist John Tukey. Tukey records that it evolved over a lunch table as a handier alternative to "bigit" or "binit". Wintersemester 12/13 3

Codierung 4 Definition: Seien A* und B* die Wortmengen über den Alphabeten A und B. Eine Codierung (der Wortmenge A*) ist eine injektive Abbildung c : A* B*, die jedem Wort x A* ein Wort c(x) B* zuordnet. Die Menge aller Codewörter, d.h. das Bild c(a*) B* nennt man den Code. Unter der Dekodierung versteht man die Umkehrabbildung c -1 : c(a*) A*. Beispiele: Grundworte Codeworte... Grundworte Codeworte......... Pekingente 74 17 10001 Nasi Goreng 37 18 10010 Frühlingsrolle 15 19 10011............ Wintersemester 12/13 4

Der Morse-Code Code variabler Länge abhängig von der Buchstabenhäufigkeit Durch die Verwendung von Länge UND Belegung kann man mit einer Codelänge von 4 Bit mehr Zeichen darstellen. 16 (4-stellig) + 8 (3-stellig) + 4 (2-stellig) + 2 (1-stellig) ------ 30 Zeichen A Ä B C D E F G. H I J.. K L M. N O.. Ö.. P. Q. R Wintersemester 12/13 5 S T U Ü. V W. X Y. Z. CH... 1... 2.. 3. 4 5 6 7. 8.. 9... 0.... A 01 B 1000 C 1010 D 100 E 0 F 0010 G 110 H 0000 I 00 J 0111 K 101 L 0100 M 11 N 10 O 111 P 0110 Q 1101 R 010 S 000 T 1 U 001 V 0001 W 011 X 1001 Y 1011 Z 1100 5

Codierung von Text: ASCII 6 Code 0 1 2 3 4 5 6 7 8 9 A B C D E F 0 NUL SOH STX ETX EOT ENQ ACK BEL BS HT LF VT FF CR SO SI 1 DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US 2 SP! " # $ % & ' ( ) * +, -. / 3 0 1 2 3 4 5 6 7 8 9 : ; < = >? 4 @ A B C D E F G H I J K L M N O 5 P Q R S T U V W X Y Z [ \ ] ^ _ 6 ` a b c d e f g h i j k l m n o 7 p q r s t u v w x y z { } ~ DEL Wintersemester 12/13 6

Von der Tastatur zum codierten Zeichen 7 Tastatur Scan Codes: Set2 Wintersemester 12/13 7

Codierung von Text: Scan codeà ASCII 8 Wintersemester 12/13 Tastatur 8 Scan Codes: Set 1

Unicode: Universeller Zeichencode 9 http://www.unicode.org/charts/ Wintersemester 12/13 9

Unicode 10 U0000: C0 Controls and Basic Latin Range: 0000-007F Entspricht der ASCII Codierung! 0080-00FF U0080 Latin-1 0100-017F U0100 Latin Extended-A 0180-024F U0180 Latin Extended-B 2C60-2C7F U2C60 Latin Extended-C A720 - A7FF UA720 Latin Extended-D...... AC00 - D7AF (D7A3) UAC00 Hangul Silben (Korea, 11171 Zeichen)...... Wintersemester 12/13 The Unicode 10 Standard 5.0 Copyright 1991-2005 Unicode Inc.

Zusammenfassung der Codierungsverfahren von Schriftzeichen 11 Zeichenkodierung in erster Linie durch Umsetzungstabellen gesteuert. Codierung dadurch "willkürlich" definierbar. "Willkürlich" definiert sich durch die Randbedingungen, die durch Sprache, Zeichensatz, Kontextabhängigkeit usw. gegeben sind und nicht durch besondere Eigenschaften des Codes beschränkt sind. Wintersemester 12/13 11

Klassifizierungsmerkmale von Codes 12 Länge feste Länge variable Länge (Blockcodes) Beispiele: Binärcode Graycode Beispiele: Morse Code Huffman Code Wichtung gewichtete Codes ungewichtete Codes Beispiele: Binärcode BCD-Code Beispiele: Graycode Unicode Wintersemester 12/13 12

Klassifizierungsmerkmale von Codes 13 Binär-Code: Codeworte bestehen aus {0, 1} Block-Code: Linearer Block-Code: (Hamming Codes) Zyklische Codes: Codeworte haben feste Länge. Code-Worte bilden einen Vektorraum. Worte, die durch Shift aus Codeworten entstehen, sind wieder Codeworte. Wintersemester 12/13 13

Wortlänge und Informationsdarstellung im Computer 14 Byte-orientierte CPU Wort-orientierte CPU 4 Bit (nibble) 12 Bit 8 Bit (byte) 24 Bit 16 Bit (word) 32 Bit (long (double) word) 64 Bit (quad word) Zeichen meist codiert in einem Byte Ziffernorientierte Codierung (BCD) in einem Halbbyte (nibble) Zahlen in (mehrfachen von) Bytes Wintersemester 12/13 14

Binäre Zahlendarstellung 15 Dezimal 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Binär 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 Wintersemester 12/13 15 Dezimal Zweierpotenz Binär 1 2 0 1 2 2 1 10 4 2 2 100 8 2 3 1000 16 2 4 10000 32 2 5 100000 64 2 6 1000000 128 2 7 10000000 256 2 8 100000000 512 2 9 1000000000 1024 2 10 10000000000 2048 2 11 100000000000 4096 2 12 1000000000000 8192 2 13 10000000000000 16384 2 14 100000000000000 32768 2 15 1000000000000000 65535 2 16 10000000000000000

Binäre Zahlendarstellung 16 Dezimal Binärdarstellung Octal Hexadezimal 001 00000001 001 01 107 01101011 153 6B 217 11011001 331 D9 Octale Zahlendarstellung: Basis: 8 Es werden Dreiergruppen in der Binärdarstellung zusammengefasst: 000 101 111 1 Byte umfasst den Bereich 000-377 0 5 7 Hexadezimale Zahlendarstellung: Basis: 16 Es werden Vierergruppen in der Binärdarstellung zusammengefasst: 0010 1111 1 Byte umfasst den Bereich 00 - FF 2 F Wintersemester 12/13 16

Zahlendarstellung im BCD-Code 17 Ziffernweise Codierung von Dezimalzahlen in Binärzahlen: Ziffern im Dezimalsystem: 0,1,..., 9 : 4 Binärstellen erforderlich Beispiele: 1354 0001 0011 0101 0100 73978432589 0111 0011 1001 0111 1000 0100 0011 0010 0101 1000 1001 Vorteile: Nachteile: Einfache Umsetzung von der Dezimal- zu Binärdarstellung Keine Fehler bei der Umwandlung von Brüchen Weniger kompakt als Binärdarstellung Wintersemester 12/13 17

Ungewichtete Codes 18 Die Zahlendarstellung im Binärcode ist gewichtet, d.h. besitzt ein Stellenwertsystem. Problem: Für manche Anwendungen möchte man möglichst wenige und immer dieselbe Anzahl von Änderungen von einem Codewort zum nächsten. Beispiel: Modulo 8 Zähler Code Änderungen 001 1 010 2 011 2 100 3 101 1 110 2 111 1 000 3 Motivation: elektronische Schaltungen benötigen besonders viel Energie beim Umschalten von Zuständen. Wintersemester 12/13 18

Absoluter Positionssensor mit Gray Code 19 Dez. Code Binär Code Gray Code 0 000 000 1 001 001 2 010 011 3 011 010 4 100 110 5 101 111 6 110 101 7 111 100 Codierscheibe für 3-Bit Gray Code binär Gray Wintersemester 12/13 19

20 Fehlererkennende und Fehlerkorrigierende Codes Informationsverändernde Einheiten Informationsspeichernde und -übertragende Einheiten Beisp.: ALU Beisp.: Speicher, Bus, Netzwerk arithmentische Codes, z.b. Residuencodes parallel Beisp.: Hauptspeicher, Systembus Paritätscodes, Hamming Codes, (SEC/DED) seriell Beisp.: Platte, Magnetband, Netzwerk Paritätscodes, Zyklische Codes (CRC) Wintersemester 12/13 20 Einzel/Doppelfehler Burst- (Büschel-)fehler

21 Fehlererkennende und Fehlerkorrigierende Codes Ziel: "0" und "1" so zu speichern oder zu übertragen, dass ein Fehler erkannt oder sogar korrigiert werden kann. 1. Versuch: Codewörter 1 11 0 00 Wort 10 oder 01 kann durch einen Fehler aus 11 oder 00 entstanden sein. Wir erkennen den Fehler aber können nicht entscheiden, aus welchem Codewort das neue Wort entstanden ist. Wintersemester 12/13 21 2. Versuch: Codewörter 1 111 0 000 mögl. Wörter 110 001 die durch einen 101 010 Einzelfehler 011 100 entstehen durch 001 011 Zweifachfehler 100 110 entstandene. 010 101 Wörter

22 Fehlererkennende und Fehlerkorrigierende Codes 3. Versuch: Codewörter 1 1100 0 0011 mögl. Wörter 1101 0010 die durch einen 1110 0001 Einzelfehler 1000 0111 entstehen 0100 1011 durch 0101 Zweifachfehler 0110 entstandene 1001 Wörter 1010 1111 0000 Code Wörter alle möglichen Wörter Ein Fehler kann korrigiert werden. Zwei Fehler können erkannt werden. Der "Unterschied" zwischen zwei Codeworten ist genügend groß, damit diese Eigenschaften erreicht werden. REDUNDANZ Wintersemester 12/13 22

23 Fehlererkennende und Fehlerkorrigierende Codes Spontaner Ansatz: Codetabelle Problem der Größe z.b. 32 Bit + 6 Bit Länge der Codetabelle: 2 38 Benötigt wird: Mathematische Verfahren zur Konstruktion von Codes mit nachgewiesenen Eigenschaften + Überprüfungsmöglichkeiten. Wie wird der Begriff "Unterschied" oder "Abstand" formalisiert? Wie werden die Codeworte strukturiert? Wo fügt man Redundanz ein? Wieviel Redundanz ist notwendig? Wintersemester 12/13 23

Hamming Gewicht und Hamming Distanz 24 Definition "Hamming Gewicht": Die Anzahl der von "0" verschiedenen Stellen eines Codeworts. Beispiel: w(101) = 2, w(001) = 1. Definition "Hamming Distanz": Die Anzahl der Stellen in denen sich zwei Codeworte unterscheiden. Beispiel: d(001, 011) = w(001 diff 011) = w(010) = 1 Beispiel: d(1100, 0011) = w(1100 diff 0011) = w(1111) = 4 (diff: komponentenweise Differenzbildung (EXOR!)) Richard Wesley Hamming, 1915-1998 Wintersemester 12/13 24

Hamming Distanz 25 Hamming Distanz = 3 Hamming Distanz = 2 Fehlerkennend 110 Fehlerkorrigierend 111 10 11 100 101 010 011 00 01 000 001 : gültiges Codewort Wintersemester 12/13 25

Paritätscodes 26 Eindimensionale Paritätscodes: gerade Parität ungerade Parität 0000 0 0001 1 0010 1 0011 0 0100 1 0101 0 0110 0 0111 1 0000 1 0001 0 0010 0 0011 1 0100 0 0101 1 0110 1 0111 0 zwei beliebige Codeworte haben immer eine Hamming-Distanz > 1 Hamming Gewicht ist immer gerade Hamming Gewicht ist immer ungerade Wintersemester 12/13 26

Paritätscodes 27 Schaltnetz zur Erzeugung und Überprüfung von Paritätscodes: abcd P 0000 0 0001 1 0010 1 0011 0 0100 1 0101 0 0110 0 0111 1 1000 1 1001 0 1010 0 1011 1 1100 0 1101 1 1110 1 1111 0 gerade Parität: abcd + abcd + abcd + abcd + abcd + abcd + abcd + abcd a b c d Wintersemester 12/13 27

Paritätserzeugung und -überprüfung 28 a b c d a b c d P gen P Fehler a b c d P Wintersemester 12/13 28

Hammingcode 29 Wieviel Redundanz wird benötigt? Ein Code mit der Hammingdistanz d kann f Fehler korrigieren, wenn 2f + 1 d ist. d=1 d=1 d=1 für f=1 gilt die Hammingdistanz von min. 3. korrekte Codewörter Notwenige Redundanz zur Ein-Bit-Fehlerkorrektur für ein Wort mit m Bit: Bei m Bit-stellen werden zur Fehlerkorrektur ld m + 1 Prüfstellen benötigt. Bei einem Wort der Länge 2 k werden demnach k+1 Prüfstellen benötigt. Wintersemester 12/13 29

Hamming Distanz 30 Hamming Distanz = 3 Hamming Distanz = 2 Fehlerkennend 110 Fehlerkorrigierend 111 10 11 100 101 010 011 00 01 000 001 : gültiges Codewort Wintersemester 12/13 30

Hammingcode 31 Bei einer Wortlänge von 2 k benötigt man m = k+1 Prüfstellen! Problem: Prüfstellen können selbst fehlerhaft sein! Lösung: Prüfstellen werden selbst mitüberprüft und verlängern das zu überprüfende Codewort entsprechend! Beispiel: Länge des zu codierenden Wortes(Daten): 2 3 = 8 Man benötigt 3+1 Prüfstellen. Gesamtlänge des Codeworts: 8+3+1 = 12 Für 12 Bit benötigt man 4 Checkbits Bemerkung: Mit 4 Checkbits könnten bis zu 11 Datenbits codiert werden! Wintersemester 12/13 31

Hammingcode 32 Konstruktion eines 1-fehlererkennenden Hammingcodes Frage: Wieviel Redundanz? Für die Anzahl der Prüfbits gilt die folgende Gleichung: d + m 2 m -1 mit d: Anzahl der Datenbits m: Anzahl der Prüfbits Sei m eine Zweierpotenz (0, 1, 2, 4, 8..), dann werden m Prüfstellen benötigt, die an den Bitstellen 2 0, 2 1,2 2,..., 2 m, eingefügt werden. Wintersemester 12/13 32

Hammingcode 33! Datenbits Checkbits Gesamtlänge des Codeworts 4 3 7 11 4 15 26 5 31 57 6 63 120 7 127 247 8 255! Wintersemester 12/13 33

Hammingcode 34 Konstruktion eines 1-fehlererkennenden Hammingcodes Zu codieren: ein 4-Bit Wort mit den Informationstellen I 1, I 2, I 3, I 4. Benötigte Redundanz: ld 2 2 + 1 = 3 ergibt Prüfstellen C 1, C 2,C 3. Das Prüfbit an der Bitposition i stellt das Paritätsbit dar für die Bitpositionen, deren binäre Darstellung an der i-ten Stelle eine "1" haben. I 1 I 2 I 3 I 4 C 1 C 2 I 1 C 3 I 2 I 3 I 4 Stelle 1 2 3 4 5 6 7 i = 0, 2 0 =1: Prüfbit an Stelle 1 zuständig für die Bitpositionen: 1, 3, 5, 7 i = 1, 2 1 =2: Prüfbit an Stelle 2 zuständig für die Bitpositionen: 2, 3, 6, 7 i = 2, 2 2 =4: Prüfbit an Stelle 4 zuständig für die Bitpositionen: 4, 5, 6, 7 Wintersemester 12/13 34

Hammingcode 35 Konstruktion eines 1-fehlererkennenden Hammingcodes Stelle 1 2 3 4 5 6 7 C 1 C 2 I 1 C 3 I 2 I 3 I 4 Das Prüfbit an der Bit-Stelle i stellt das Paritätsbit dar für die Bitpositionen, deren binäre Repräsentationen an der i-ten Stelle eine "1" haben. i = 0, 2 0 : 1, 3, 5, 7, d.h. an Stelle 001, 011, 101, 111 i = 1, 2 1 : 2, 3, 6, 7, d.h. an Stelle 010, 011, 110, 111 i = 2, 2 2 : 4, 5, 6, 7, d.h. an Stelle 100, 101, 110, 111 C 1 C 2 C 3 Wintersemester 12/13 35

Hammingcode 36 Konstruktion eines 1-fehlererkennenden Hammingcodes Stelle 1 2 3 4 5 6 7 Berechnung der Parität: C 1 C 2 I 1 C 3 I 2 I 3 I 4 C 1 = I 1 I 2 I 4 C 2 = I 1 I 3 I 4 C 3 = I 2 I 3 I 4 Beisp. gerade Par.? 0 0? 1 1? 0 0 1 Wintersemester 12/13 36

Hammingcode 37 Konstruktion eines 1-fehlererkennenden Hammingcodes Stelle 1 2 3 4 5 6 7 C 1 C 2 I 1 C 3 I 2 I 3 I 4 Fehlersyndrom C 1 C 2 C 3 1 1 0 Beisp. gerade Par.? 0 0? 1 1? 0 0 1 Codierung der Fehlerstelle 0 Wintersemester 12/13 37

Hammingcode 38 Konstruktion eines 1-fehlererkennenden Hammingcodes Stelle 1 2 3 4 5 6 7 C 1 C 2 I 1 C 3 I 2 I 3 I 4 C 1 C 2 C 3 0 0 1 Beisp. gerade Par.? 0 0? 1 1? 0 0 1 Codierung der Fehlerstelle 0 Wintersemester 12/13 38

Hammingcode 39 Konstruktion eines 1-fehlererkennenden Hammingcodes Stelle 1 2 3 4 5 6 7 C 1 C 2 I 1 C 3 I 2 I 3 I 4 C 1 C 2 C 3 0 1 1 Beisp. gerade Par.? 0 0? 1 1? 0 0 1 Codierung der Fehlerstelle 1 Wintersemester 12/13 39

Hammingcode 40 Konstruktion eines 1-fehlererkennenden Hammingcodes i = 0, Position 1, 3, 5, 7 i = 1, Position 2, 3, 6, 7 i = 2, Position 4, 5, 6, 7 C 1 C 2 I 1 1 2 3 4 5 6 7 C 1 C 2 I 1 C 3 I 2 I 3 I 4 I 4 I 2 I 3 Berechnung der Parität: C 1 C 2 C 3 C 3 C 1 = I 1 I 2 I 4 C 2 = I 1 I 3 I 4 C 3 = I 2 I 3 I 4 Wintersemester 12/13 40

41 Wintersemester 12/13 41

42 snip.. snip... Wintersemester 12/13 42

Huffman Codes 43 Frage: Geht es auch mit kürzerem Code? Gemüse Kartoffeln 00 Zwiebeln 01 Bohnen 10 Avocado 11 Code Länge: 2 Bit Code Gemüse prozentualer Code Verkauf Kartoffeln 75% 0 Zwiebeln 12,5 % 10 Bohnen 6,25 % 110 Avocado 6,25 % 111 Code Länge im Mittel: 1 3/4 + 2 1/8 + 3 1/16 +3 1/16 = 1,375 Wintersemester 12/13 43

Huffman Codes 44 Start-Knoten 0 1 1 0 0 1 Terminal-Knoten Kartoffeln Zwiebeln Bohnen Avocado 01000000110000111101100000? eindeutig decodierbar? Satz: (Fano -Bedingung) Wenn kein Codewort Anfangswort eines anderen Codewortes ist, dann ist jede codierte Zeichenreihe eindeutig dekodierbar. Wintersemester 12/13 44

Huffman Codes 45 Satz: (Fano -Bedingung) Wenn kein Codewort Anfangswort eines anderen Codewortes ist, dann ist jede codierte Zeichenreihe eindeutig dekodierbar. Das Verfahrens von Huffman ermöglicht die systematische Konstruktion eines Codes, der die Fano-Bedingung erfüllt und der einen Text mit möglichst wenigen Bits codiert. Die Huffman-Codierung wird bei der Kompression von Texten und u.a. in der Fax- Übertragung und im Bilddaten-Kompressionsverfahren JPEG angewandt. Wintersemester 12/13 45

Lerninhalte zur Informationsdarstellung 46 Grundbegriffe und Verfahren der Codierung: gewichtete Codes, Blockcodes, zyklische Codes Zuordnung durch Codierungstabellen am Beispiel der Zeichencodierung (ASCII, Unicode) Codes zur Zahlendarstellung: Binärcode, BCD, Graycode Codes zur Erkennung und Korrektur von Fehlern: Paritätscode Hamming Code Codes zur "Raum-effizienten" Darstellung von Information: Huffman Code Wintersemester 12/13 46