Post on 01-Sep-2019
3 Codierung von Nachrichten Folie 1
Grundlagen Technischer Informatik 1 Version WS07/08
3. Codierung von Nachrichten 3.1 Information und Nachricht Information und Nachricht sind grundlegende Begriffe in der Informatik. Trotz ihrer alltäglichen Verwendung, wie z.B.
• sich Informationen verschaffen,
• Nachrichten hören,
• den Nachbarn verständigen,
• Informationen und Meinungen austauschen,
• ein Telegramm verschicken,
• Informationsgesellschaft,
• Informationszeitalter,
sind Information und Nachricht schwierige Begriffe, für die es unterschiedliche Definitionen gibt und die je nach Anwendung in unterschiedlicher Bedeutung benutzt werden.
Definition 3-1
Informationen sind Interpretationen von Nachrichten. Eine Nachricht versenden bedeutet den Transport von Informationen.
3 Codierung von Nachrichten Folie 2
Grundlagen Technischer Informatik 1 Version WS07/08
3.2 Nachrichten Allgemein formuliert sind Nachrichten Worte, bestehend aus Elementen (Zeichen, Buchstaben oder Ziffern genannt) einer vereinbarten, endlichen Menge. Eine solche Menge von Zeichen nennt man Alphabet.
Alphabet: endliche Menge von Zeichen
A = {a1,...,an}; Abin = {0,1}; Binärziffern Adez = {0,1,…,9}; Dezimalziffern Amorse = {⋅,- }; Zeichen des Morsealphabets ohne
Zwischenraum Aa-num = {A,...,Z,0,…,9,Sonderzeichen}; alphanumerisches
Alphabet
Worte: Folge verketteter, nicht notwendig verschiedener Zeichen.
A = Menge der Worte der Länge n über A, n ∈ IN A* = Menge aller Worte über A Ein Wort a ∈ A* der Länge n, n ∈ IN, schreibt man auch als a = a1a2...an. ai ∈ A bezeichnet das i-te Zeichen des Wortes a mit 1 < i < n.
In der Nachrichtenübertragung wird ein Signal aus einer Nachrichtenquelle mittels eines Senders über einen Kommunikationskanal geschickt und dann von einem Empfänger zur Nachrichtensenke geleitet (Allgemeines Kommunikationsmodell von Shannon und Weaver). Das Modell kann auf einen Großteil der Kommunikationsformen in der Nachrichtenübertragung angewendet werden.
3 Codierung von Nachrichten Folie 3
Grundlagen Technischer Informatik 1 Version WS07/08
Beispiel: Verbale Kommunikation
• Gehirn ⇔ Informationsquelle
• Sprachsystem (erzeugt Schalldruck = codiertes Signal) ⇔ Transmitter (Sender)
• Luft ⇔ Kanal
• Ohr mit Nervenbahnen ⇔ Empfänger
• Gehirn des Kommunikationspartners ⇔ Informationssenke
Die folgende Abbildung verdeutlich das zuvor beschriebene Kommunikationsmodell.
Nachrichten- quelle
Sender Kanal Empfänger Nachrichten- senke
Signal-erzeugung Codierung
Störung Decodierung
Signal- verarbeitung
Quellencodierung Kanalcodierung Verarbeitungscodierung
3 Codierung von Nachrichten Folie 4
Grundlagen Technischer Informatik 1 Version WS07/08
3.3 Einführung in die Codierung
• Die Zuordnung muss nicht eindeutig umkehrbar sein;
• Zusammengesetzte Zeichen werden als Codewörter bezeichnet.
• Codierungsregeln legen fest, wie die Zielmenge bei bekannten Ausgangsmenge gebildet wird.
Die Codierung dient:
• dem zweckmäßigen und einfachen Übertragen und Verarbeiten von Informationen,
• zur Darstellung der Informationen mit einer möglichst geringen Anzahl von Zeichen,
• dem Erzielen einer gesicherten Datenübertragung.
Codes werden grundsätzlich in zwei Gruppen unterteilt:
• nicht-redundante Codes • redundante Codes
•
Definition 3-2: Code
Ein Code ist eine Vorschrift zur eindeutigen Zuordnung der Zeichen einer Menge A (Ausgangsmenge) zu denjenigen Zeichen einer Menge B (Zielmenge).
3 Codierung von Nachrichten Folie 5
Grundlagen Technischer Informatik 1 Version WS07/08
•
•
In der Datenverarbeitung wird dies dadurch erreicht, dass mehr Binärstellen verwendet werden, als zur Darstellung aller Elemente der Ausgangsmenge nötig wären.
D.h. in einem redundanten Code existieren Codeworte, die nicht benutzt werden. Durch diese Redundanz ist es möglich, Fehler zu erkennen oder sogar zu korrigieren.
Nicht-redundante Codes nutzen den zugrunde liegenden Zahlenbereich maximal aus.
Definition 3-3: Redundanz
Redundanz bezeichnet überflüssige Elemente in einer Nachricht, die keine zusätzliche Information liefern, sondern nur die beabsichtigte Grundinformation unterstützen.
3 Codierung von Nachrichten Folie 6
Grundlagen Technischer Informatik 1 Version WS07/08
Codes
nicht redundante Codes
redundante Codes
Zeichencodes Zahlencodes fehlererkennende Codes fehlerkorrigierende
Codes
ASCII-Code
Gray-Code 2-aus-5-Codes
Hamming-Code
Fernschreibe-
Code Aiken-Code
gerade/ungerade ergänzte Codes
Gruppen-Code
Morse-Code
BCD-Code
Abbildung 3.1: Überblick über verschiedene Codes
3 Codierung von Nachrichten Folie 7
Grundlagen Technischer Informatik 1 Version WS07/08
3.4 Zahlencodes Numerische Zeichen (Zahlen) müssen nicht unbedingt durch die Stellenschreibweise des Dualsystems (Polyadisches Zahlensystem) dargestellt werden. In der Digitaltechnik ist es oftmals günstiger, Dezimalzahlen Ziffer für Ziffer zu codieren und diese verschlüsselten Dezimalzahlen zu verarbeiten.
Von den Zahlencodes sind die Tetradischen Codes die am häufigsten verwendeten Codes:
• Codierung eines beliebigen numerischen Zeichens (einer Ziffer) stets durch 4 bit;
• Anwendung vorrangig zur Darstellung dezimaler Ziffern;
• Vier Bit zur Darstellung der Dezimalziffern werden als Tetrade bezeichnet;
• 4 Bit ermöglichen 24 =16 Binärkombinationen;
• Darstellung der Dezimalzahlen 0-9 durch 10 Tetraden; die nicht benötigten sechs Tetraden werden Pseudotetraden genannt;
• Darstellung einer mehrstelligen Dezimalzahl eine Tetrade pro Dezimalstelle;
3 Codierung von Nachrichten Folie 8
Grundlagen Technischer Informatik 1 Version WS07/08
Die wichtigsten Tetradischen Codes sind im Folgenden zum besseren Vergleich in einer Tabelle dargestellt. In der zweiten Zeile sind jeweils die Stellenwerte angegeben.
Hex.
Dual BCD Aiken 3-Exzess
Gray
8 4 2 1 8 4 2 1 2 4 2 1 keine keine
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Pseudo- 0 0 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 0 0 1 tetraden 1 0 0 0 1 2 2 0 0 1 0 2 0 0 1 0 2 0 0 1 0 3 0 0 1 0 3 3 0 0 1 1 3 0 0 1 1 3 0 0 1 1 0 0 0 1 1 2 0 0 1 1 4 4 0 1 0 0 4 0 1 0 0 4 0 1 0 0 1 0 1 0 0 7 0 1 0 0 5 5 0 1 0 1 5 0 1 0 1 2 0 1 0 1 6 0 1 0 1 6 6 0 1 1 0 6 0 1 1 0 3 0 1 1 0 4 0 1 1 0 7 7 0 1 1 1 7 0 1 1 1 Pseudo- 4 0 1 1 1 5 0 1 1 1 Symme- 8 8 1 0 0 0 8 1 0 0 0 tetraden 5 1 0 0 0 trielinie 9 9 1 0 0 1 9 1 0 0 1 6 1 0 0 1 Pseudo- A 10 1 0 1 0 7 1 0 1 0 tetraden B 11 1 0 1 1 5 1 0 1 1 8 1 0 1 1 C 12 1 1 0 0 Pseudo- 6 1 1 0 0 9 1 1 0 0 8 1 1 0 0 D 13 1 1 0 1 tetraden 7 1 1 0 1 9 1 1 0 1 E 14 1 1 1 0 8 1 1 1 0 Pseudo- Pseudo F 15 1 1 1 1 9 1 1 1 1 tetraden tetraden
Tabelle 3.1: Tetradische Codes
3 Codierung von Nachrichten Folie 9
Grundlagen Technischer Informatik 1 Version WS07/08
Die Codes sind hinsichtlich ihrer Eignung für diverse Anwendungen auf die folgenden Merkmale hin zu überprüfen. Je mehr Merkmale auf einen Code zutreffen, desto vielseitig anwendbar wird er.
• Bewertbarkeit:
• Komplementierbarkeit:
• Konvertierbarkeit:
• Symmetrie:
• Additionsregeln, Übertragsbildung:
3 Codierung von Nachrichten Folie 10
Grundlagen Technischer Informatik 1 Version WS07/08
Die Addition läuft bei allen Zahlencodes nach dem selben Grundprinzip ab (vgl. Abbildung 3.):
Abbildung 3.2:Addition bei Zahlencodes (nach DIN 66001)
Beginn
in Tetraden zerlegen &
niedrigstwertige auswählen
duale Addition
Überprüfung &
Korrektur
tetraden-weise
Additionbis alle addiert
tetraden- weise
Addition
Ender- gebnis als Tetraden
Übertrag
aktuelleTetraden
Summan-den
nächst höhere Tetrade
auswählen
Fertig
3 Codierung von Nachrichten Folie 11
Grundlagen Technischer Informatik 1 Version WS07/08
3.4.1 BCD-Code (Binary Coded Decimal Code)
Der BCD-Code ist so aufgebaut, dass jede Dezimalziffer 0-9 einfach als Dualzahl geschrieben wird. Die Stellenwerte der Tetraden entsprechen demzufolge genau denen des Dual-systems, nämlich (von links nach rechts gelesen): 23=8, 22=4, 21=2, 20=1. Aufgrund dieser Stellenwertigkeit wird der BCD-Code auch 8-4-2-1-Code genannt.
Beispiel: Die vierstelligen Dezimalzahl 1968 lautet im BCD-Code folgendermaßen:
1 9 6 8 0001 1001 0110 1000
Eine Komplementbildung ist ohne weiteres nicht möglich.
Die Verfeinerung des Prozesses "Überprüfung & Korrektur" sieht für den BCD-Code wie folgt aus:
Summe=PT?
Übertrag
+0II0 keine Korrektur
ja nein
ja
nein
Abbildung 3.3: Verfeinerung des Prozesses "Überprüfung & Korrektur" für den BCD-Code
3 Codierung von Nachrichten Folie 12
Grundlagen Technischer Informatik 1 Version WS07/08
Tritt bei der dualen Addition ein Übertrag in die nächst höhere Tetrade auf oder entspricht das Additionsergebnis einer Pseudotetrade (PT), so muss eine Korrekturaddition (+610 bzw. + 01102) durchgeführt werden.
Beispiel: Addition im BCD-Code
28936 + 48283 Übertrag
00100100
10001000
10010010
0011 1000
01100011
1. Summation: Pseudotetrade:
Tetraden-Übertrag: Korrektur: Übertrag
2. Summation: = 77219
3 Codierung von Nachrichten Folie 13
Grundlagen Technischer Informatik 1 Version WS07/08
3.4.2 Aiken-Code
Beim Aiken-Code handelt es sich um einen symmetrischen Code. Ungerade Dezimalziffern sind genauso wie beim BCD-Code durch eine 1 in der niedrigstwertigen Binärstelle gekenn-zeichnet. Die Binärstellen des Aiken-Code haben (von links nach rechts gelesen) die Stellenwerte 2, 4, 2, 1. Deshalb wird der Aiken-Code auch 2-4-2-1-Code genannt.
Aufgrund der symmetrischen Struktur dieses Codes kann das Komplement einfach durch bitweise Invertierung eines Code-wortes gebildet werden.
Die Verfeinerung des Prozesses "Überprüfung & Korrektur" sieht wie folgt aus:
Summe=PT?
Übertrag
+0II0-0II0 keine Korrektur
ja nein
ja nein
Abbildung 3.4: Verfeinerung des Prozesses "Überprüfung & Korrektur" für den Aiken-Code
3 Codierung von Nachrichten Folie 14
Grundlagen Technischer Informatik 1 Version WS07/08
Hierbei wird überprüft, ob das Ergebnis der dualen Addition einer Pseudotetrade (PT) entspricht. Ist dies der Fall, so muss überprüft werden, ob ein Übertrag vorlag. Falls ein Übertrag entstanden ist, wird die Zahl 01102 (610) subtrahiert, ansonsten wird diese Zahl addiert.
Falls ein Übertrag in die nächst höhere Tetrade entsteht, wird dieser auf jeden Fall bei der dualen Addition der nächst höheren Tetrade berücksichtigt.
Beispiel: Addition im Aiken-Code
28936 + 48283 Übertrag
00100100
11101110
11110010
0011 1110
11000011
1. Summation: Pseudotetrade:
Tetraden-Übertrag: Korrektur: Übertrag
2. Summation: = 77219
3 Codierung von Nachrichten Folie 15
Grundlagen Technischer Informatik 1 Version WS07/08
3.4.3 3-Exzess-Code
Der 3-Exzess-Code entsteht aus der Addition der Zahl 00112 zu den Worten des BCD-Codes. Hierbei handelt es sich ebenfalls um einen symmetrischen Code, der jedoch im Gegensatz zum BCD- oder Aiken-Code keine Stellenwertigkeit aufweist.
Das Komplement kann einfach durch bitweise Invertierung eines Codewortes gebildet werden.
Bei der Addition zweier Dezimalzahlen im 3-Exzess-Code, muss nicht geprüft werden, ob eine Pseudotetrade erzeugt wurde. Lediglich das Auftreten eines Übertrages muss kontrolliert werden (vgl. folgende Abb.). Der gegebenenfalls entstandene Übertrag wird auf jeden Fall bei der dualen Addition der nächst höheren Tetrade berücksichtigt.
Übertrag
-00II+00II
ja nein
Abbildung 3.5: Verfeinerung des Prozesses "Überprüfung
& Korrektur" für den 3-Exzess-Code
Beispiel: Addition im 3-Exzess-Code
28936 + 48283 Übertrag
01010111
10111011
11000101
0110 1011
10010110
1. Summation: Tetraden-Übertrag:
Korrektur: Übertrag
2. Summation: = 77219
3 Codierung von Nachrichten Folie 16
Grundlagen Technischer Informatik 1 Version WS07/08
3.4.4 Gray-Code
Der Gray-Code findet weniger Einsatz in arithmetischen Operationen, sondern wird hauptsächlich für die Analog-Dital-Umsetzung benutzt. Der Gray-Code ist ein einschrittiger Code, d.h. beim Übergang von einem Codewort auf das nächst-folgende ändert sich stets nur ein einziges Bit (Binärstelle). Daher können während der Übergänge keine Zwischenwerte auftreten.
Der von E. Gray entwickelte Code wurde von Glixon so geändert, dass bei einem Übergang von dezimal 9 nach 0 sich ebenfalls nur eine Binärstelle ändert, und der Code damit zyklisch wird.
Dezimalzahl ursprünglicher Gray-Code
zyklischer Code nach
Glixon 0 0000 0000 1 0001 0001 2 0011 0011 3 0010 0010 4 0110 0110 5 0111 0111 6 0101 0101 7 0100 0100 8 1100 1100 9 1101 1000
3 Codierung von Nachrichten Folie 17
Grundlagen Technischer Informatik 1 Version WS07/08
Abbildung 3.6: Winkelscheibe mit Glixon-Code
0
1
0
2
3
45
6
7
8
9
3 Codierung von Nachrichten Folie 18
Grundlagen Technischer Informatik 1 Version WS07/08
Zusammenfassung
Merkmal BCD Code Aiken Code 3-Exzess Code Gray-Code
Bewertbarkeit gut, da die Codes Stellenwerte aufweisen
schlecht, da die Codes keine Stellenwerte aufweisen
Komplementbildung, d.h. Subtraktion
schwierig, da eine
Umrechnung notwendig
ist
einfache Umrechnung durch Vertauschen von 1en und 0en in
jeder Stelle, da symmetrische Codes
findet hier keine Anwendung
Konvertierbarkeit direkt identisch
Fallunterschei-dung nötig => ggf. Korrekturaddition
einfach immer 00112
subtrahieren
aufwendig
Symmetrie nicht vorhanden
vorhanden nicht vorhanden
Addition schwierig, da das Auftreten von sechs unterschiedlichen
Pseudo-Tetraden erkannt werden muss
einfach, da die Korrektur nur vom Übertrag abhängt
schwierig, Code wird jedoch i.d.R. nicht für Arithmetik
genutzt
3 Codierung von Nachrichten Seite 19
Grundlagen Technischer Informatik 1 Version WS07/08
3.5 Zeichencodes Die Aufgabe alphanumerischer Codes ist die Darstellung und Übertragung von Buchstaben und Ziffern. Hierzu werden in der Praxis auch Zeichen mit besonderer Bedeutung, also Sonderzeichen, gezählt.
Der Symbolumfang beträgt daher üblicherweise mindestens:
26 Buchstaben 15 Satzzeichen 10 Sonstige ⎯⎯⎯⎯⎯⎯ 51 Symbole
Hieraus ergibt sich eine erforderliche Wortlänge von mindestens ld [51] ≈ 5,6 => 6 Bit.
3 Codierung von Nachrichten Seite 20
Grundlagen Technischer Informatik 1 Version WS07/08
Aus den unterschiedlichen Anforderungen und Möglichkeiten der Datenübertragung in Netzen der Telekommunikation wurden mehrere internationale Normen entwickelt. Je nach historischem Stand der Technik und vorrangiger Aufgabe entstanden Codes von verschiedenem Umfang:
Bezeichnung des Codes Wortlänge
• Fernschreibcode CCITT Nr. 2 (5 Spurlochstreifencode, 1932) 26 Buchstaben bzw. Zahlen&Sonderzeichen + 2 Umschalten + Zwischenraum + Lochstreifentransport
5 bit
• CCITT Nr. 5 ISO-7-Bit-Code 128 Zeichen (US)ASCII (American Standard Code for Information Interchange)
7 bit
• EBCDIC-Code (Extended Binary Coded Decimal Interchange Code)
8 bit
• IBM-Zeichensatz für den PC 8 bit
3 Codierung von Nachrichten Seite 21
Grundlagen Technischer Informatik 1 Version WS07/08
3.5.1 Fernschreibecode
Der Fernschreibecode oder Lochstreifencode ist der älteste der genannten Codes.
Zwischen-raum
Um-schaltung
Zahl Buchst.
K O M M U M 1 3 U H R Klartext • • • • • • • 1. Informat.spur • • • • • • • 2. Informat.spur Transportlochung • • • • • • • • • • • • 3. Informat.spur • • • • • • • • 4. Informat.spur • • • • • • • • 5. Informat.spur
Nummer des
Informationsstellen Codiertes Symbol
Code- Worts
Transport und Takt
Buch-staben
Ziffern und
Sonder-zeichen
1 2 T 3 4 5 1 • • A - 2 • • • B ? 3 • • • C M 4 • • D + 5 • E 3 6 • • • F
3 Codierung von Nachrichten Seite 22
Grundlagen Technischer Informatik 1 Version WS07/08
7 • • • G 8 • • H 9 • • I 8 10 • • • J Klingel 11 • • • • K ( 12 • • L ) 13 • • • M . 14 • • N , 15 • • O 9 16 • • • P 0 17 • • • • Q 1 18 • • R 4 19 • • S ' 20 • T 5 21 • • • U 7 22 • • • • V = 23 • • • W 2 24 • • • • X / 25 • • • Y 6 26 • • Z + 27 • < < 28 • ≡ ≡ 29 • • • • • Buchstabe 30 • • • • Zahl&Sonderz. 31 • Zwischenraum 32
Tabelle 3.2: Lochstreifencode, CCITT-Code Nr. 2.
3 Codierung von Nachrichten Seite 23
Grundlagen Technischer Informatik 1 Version WS07/08
3.5.2 ASCII
Der ASCII- (American Standard Code for Information Interchange), oder auch CCITT-Code Nr. 5 genannt, hat die zur Zeit weltweit größte Bedeutung für rechnerinterne Darstellung und für die Datenübertragung. Auf der Basis des ursprünglich für den englischsprachigen Raum konzipierten Codes wurden auch zahlreiche Varianten entwickelt, die innerhalb der Sonder-zeichen auch andere Codierungen zulassen wie etwa Codierung der Umlaute der deutschen Sprache.
Die folgende Tabelle zeigt die Bedeutung der einzelnen Steuerzeichen, Tabelle 3.4 die Zuordnung der Codeworte zu den Symbolen.
NUL SOH STX ETX EOT ENQ ACK BEL BS HT LF
alle Leit. NUL Start Of Heading Start Of TeXt End Of TeXt End Of Transm ENQuiry ACKnowledged BELI BackSpace Horizontal Tab Line Feed
VT FF CR SO SI DLE DCI XON DC3 XOF NAK
Vertical Tab Form Feed Carriage Return Shift Out Shift In Data Link Space Device Control 1 XON–protocol1 Device Control 3 XOFf–protocol1 Not AcKnow1.
SYNETBCANEM SUBESCFS GS RS US DEL
SYNchron. Idle End Transm. Block CANcel End of Medium SUBstitute ESCape File Separator Group Separator Record Separator Unit Separator DELete
Tabelle 3.3: ASCII: Abkürzungen und Vollnamen der Steuerzeichen.
3 Codierung von Nachrichten Seite 24
Grundlagen Technischer Informatik 1 Version WS07/08
Codierte Symbole Steuerzeic
hen Ziffern & Sonder-zeichen
Buchstaben & Sonderzeichen
Bit-Nr 7 6 5
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
4 3 2 1 0 1 2 3 4 5 6 7 0 0 0 0 0 NUL DEL SP 0 @ P ` p 0 0 0 1 1 SOH DC1 ! 1 A Q a q 0 0 1 0 2 STX DC2 " 2 B R b r 0 0 1 1 3 ETX DC3 # 3 C S c s 0 1 0 0 4 EOT DC4 $ 4 D T d t 0 1 0 1 5 ENQ NAK % 5 E U e u 0 1 1 0 6 ACK SYN & 6 F V f v 0 1 1 1 7 BEL ETB ' 7 G W g w 1 0 0 0 8 BS CAN ( 8 H X h x 1 0 0 1 9 HT EM ) 9 I Y i y 1 0 1 0 10 LF SUB n : J Z j z 1 0 1 1 11 VT ESC + ; K [ k { 1 1 0 0 12 FF FS , < L \ l ⏐ 1 1 0 1 13 CR GS - = M ] m } 1 1 1 0 14 SO RS . > N ^ n ~ 1 1 1 1 15 SI US / ? O _ o DEL
Tabelle 3.4: CCITT-Code Nr. 5, auch ASCII genannt.
3 Codierung von Nachrichten Seite 25
Grundlagen Technischer Informatik 1 Version WS07/08
3.5.3 EBCDIC
Der EBCDI-Code (Extended Binary Coded Decimal Interchange Code) wurde von IBM entwickelt. Er erfüllt ähnliche Aufgaben wie der ASCII-Code, verfügt jedoch über deutlich mehr Steuer-zeichen für die Steuerung innerhalb von Rechnersystemen.
8 0 0 1 1
7 0 1 0 1
6 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
4
3
2
5
1
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
0 0 0 0 NUL DEL DS SP - 0
0 0 0 1 SOH DC1 SOS / a j A J 1
0 0 1 0 STX DC2 FS SYN b k s B K S 2
0 0 1 1 ETX TM c l t C L T 3
0 1 0 0 PF RES BYP PN d m u D M U 4
0 1 0 1 HT NL LF RS e n v E N V 5
0 1 1 0 LC BS ETB UC f o w F O W 6
0 1 1 1 DEL IL ESC EOT g p x G P X 7
1 0 0 0 CAN h q y H Q Y 8
1 0 0 1 RLF EM i r z I R Z 9
1 0 1 0 SMM CC SM ¢ ! :
1 0 1 1 VT CU1 CU2 CU3 . $ , #
1 1 0 0 FF IFS DC4 < ≡ %
1 1 0 1 CR IGS ENQ NAK ( ) - '
1 1 1 0 SO IRS ACK + ; > =
1 1 1 1 SI IUS BEL SUB / ? "
Tabelle 3.5: EBCDI-Code (Extended Binary Coded Decimal Interchange Code).
Der IBM-Zeichensatz des PC's basiert auf dem ASCII-Code, verfügt allerdings über zahlreiche Erweiterungen sowohl zur Darstellung national relevanter Symbole als auch zur Erstellung einfacher Grafiken bestehend aus verschiedenen Linien. Diese Blockgrafik ist als Vorstufe zur heute verbreiteten Fenstertechnik (Windows) zu sehen. Ihr Vorteil liegt dabei in der einfachen Erstellung und kompakten Speicherung anwendungsbezogener Tabellen oder Fenster.
3 Codierung von Nachrichten Seite 26
Grundlagen Technischer Informatik 1 Version WS07/08
3.6 Redundante Codes 3.6.1 Grundbegriffe
Bei der Übertragung von Informationen über einen Kanal können diese verfälscht werden (s.o.). Die Redundanz kann genutzt werden, um Codeworte gegen Verfälschungen bei der Übertragung oder Speicherung zu sichern. Die Redundanz sollte dabei so klein wie möglich, aber auch so groß wie nötig gehalten werden, um die Anforderungen an den Code sicherzustellen. Hierbei wird zwischen der Fehlererkennung und der Fehlerkorrektur unterschieden.
Redundanz: Bezeichnet M die Anzahl der in einem Code dargestellten Zeichen (Elemente der Ausgangsmenge1) und N die maximal mögliche Anzahl von Codewörtern (alle Elemente der Zielmenge), so berechnet sich die Redundanz R des Codes wie folgt:
R = ld N - ld M
mit [R] = bit
N = 2n;
n = Stellenanzahl der Codeworte (Codewortlänge)
⇒ R = n - ld(M) bit
1 oder auch Ausgangsalphabet genannt
3 Codierung von Nachrichten Seite 27
Grundlagen Technischer Informatik 1 Version WS07/08
Beispiel:
Ausgangsmenge (M Symbole)
Zielmenge (N
Codewörter)<unbenutzt> 0 0 0
grün 0 0 1 gelb 0 1 0
<unbenutzt> 0 1 1 rot 1 0 0
<unbenutzt> 1 0 1 rotgelb 1 1 0
<unbenutzt> 1 1 1
Für obiges Beispiel gilt: R = (ld N - ld M) bit R = (ld 8 - ld 4) bit R = (3 - 2) bit
Die Redundanz des Beispielcodes beträgt also 1 bit.
Entropie: Die oben aufgeführt Formel für die Redundanz gilt allerdings nur, wenn alle Codeworte mit der gleichen Wahrscheinlichkeit auftreten.
Nun treten Codewörter nicht immer mit der gleichen Wahrscheinlichkeit auf, d.h. der Sender emittiert bestimmte Codewörter häufiger als andere. Damit weisen die Codewörter auch eine unterschiedlichen Informationsgehalt Hi auf. Ein Codewort trägt um so mehr Information, je seltener es emittiert wird, der Informationsgehalt Hi eines Codewortes zi steigt also mit abnehmender Auftrittswahrscheinlichkeit p(zi) des Code-wortes.
3 Codierung von Nachrichten Seite 28
Grundlagen Technischer Informatik 1 Version WS07/08
( )( )bitzpldbit)p(z
1ld H ii
i −==
Der durchschnittliche Informationsgehalt pro Codewort ergibt sich zu:
∑∑==
⋅=⋅=N
1i ii
N
1iii bit
)z(p1ld)z(pH)z(pH
Er wird auch als Entropie der Quelle bezeichnet. Die maximale Entropie ergibt sich, wenn die Codewörter zi mit der gleichen Wahrscheinlichkeit auftreten, also mit 1/N:
( ) ( ) ( ) bitnbitNldbitNNldN1bit1Nld
N1bit1ld
N1H
N
1i
N
1i N1max ==⋅⋅=⋅⋅=⋅= ∑∑
==
mit der Stellenzahl N = 2n.
Der Informationsgehalt Hi eines Codewortes zi entspricht i.d.R.
nicht seiner tatsächlichen Wortlänge Li (in bit).2 Dadurch ergibt sich auch eine von H verschiedene mittlere Wortlänge L des gegebenen Codes:
∑=
⋅=N
1iiii L)z(pL
Aus der Differenz von L und H ergibt sich die Redundanz R zu:
HLR −=
Die relative Redundanz r wird definiert als:
HRr =
2 Dies liegt nicht allein an der Tatsache, dass Hi meist keiner ganz-rationalen Zahl entspricht, sondern auch daran, dass den Codeworten beispielsweise zur Fehlererkennung weitere Stellen angefügt werden.
3 Codierung von Nachrichten Seite 29
Grundlagen Technischer Informatik 1 Version WS07/08
Beispiel:
Geben sei folgender Code mit den Worten
Z = {auto, baum, circus, dach, ente, flasche, gipfel, hut}
mit den zugehörigen Auftrittswahrscheinlichkeiten:
pauto = 0.0625, pbaum = 0.0625, pcircus = 0, pdach = 0.0625,
pente = 0.5, pflasche = 0.125, pgipfel = 0.125, phut = 0.0625
Die Entropie H berechnet sich zu:
( ) ( ) ( )
( ) ( ) ( )[ ]bit25,2
bit8ld25,02ld5,016ld25,0
bit125,01ld125,02
5,01ld5,00
0625,01ld0625,04
bitzp1ldzpHzpH
ii
N
1iii
N
1i
=⋅+⋅+⋅=
⎥⎦
⎤⎢⎣
⎡⎟⎠
⎞⎜⎝
⎛⎟⎠⎞
⎜⎝⎛⋅⋅+⎟
⎠⎞
⎜⎝⎛⋅++⎟
⎠
⎞⎜⎝
⎛⎟⎠⎞
⎜⎝⎛⋅⋅=
⎟⎠
⎞⎜⎝
⎛⋅=⋅= ∑∑
==
Wenn zur Zeichendarstellung genau 3 bit benutzt werden, folgt die Redundanz HLR −= mit
( )
( )[ ]bit3
bit3125,025,000625,04
bitLzpLN
1iii
=⋅⋅+++⋅=
⎥⎦
⎤⎢⎣
⎡ ⋅= ∑=
und H = 2,25 bit (s.o.) zu: R = L – H = 3 bit – 2,25 bit = 0,75 bit
Die relative Redundanz r ergibt sich zu:
%2525,0bit25,2bit75,0
HRr ====
3 Codierung von Nachrichten Seite 30
Grundlagen Technischer Informatik 1 Version WS07/08
3.6.2 Fehlererkennende Codes
Die im folgenden betrachteten Verfälschungen sind gleich-bedeutend mit Fehlern in den einzelnen Binärstellen der übertragenen bzw. gesicherten Codeworte. Ändert nur eine Binärstelle des betrachteten Codewortes seinen Signalwert (also statt einer 1 eine 0 oder umgekehrt), so liegt ein Einzel-fehler vor. Sind zwei Binärstellen verfälscht, so entspricht dies einem Doppelfehler bzw. einer Fehleranzahl von zwei usw.
Um eine einfache Fehlererkennung zu gewährleisten, muss dem Codewort mindestens ein zusätzliches Bit hinzugefügt werden. Durch Hinzufügen eines solchen Parity-Bits lässt sich jeder Code zu einem fehlererkennenden Code ergänzen.
Hierbei gibt es zwei verschiedene Verfahrensweisen:
1. Gerade Ergänzung Parity-Bit (even parity)
:= ⎩⎨⎧
==
geradeEinsen#falls,0ungeradeEinsen#falls,1
;
2. Ungerade Ergänzung Parity-Bit (odd parity)
:= ⎩⎨⎧
==
ungeradeEinsen#falls,0geradeEinsen#falls,1
;
Der Empfänger bildet die Quersumme jedes empfangenen Codewortes. Wurde das Codewort fehlerfrei übermittelt, so ergibt sich bei der Verwendung einer geraden Ergänzung die Quersumme 0 (modulo 2).
3 Codierung von Nachrichten Seite 31
Grundlagen Technischer Informatik 1 Version WS07/08
Beispiel:
Gewicht UngeradesParity-Bit Dualcode Gerades
Parity-Bit Gewicht
1 1 0 0 0 0 0 0 1 0 0 0 0 1 1 2 1 0 0 0 1 0 1 2 3 1 0 0 1 1 0 2 1 0 0 1 0 0 1 2 3 1 0 1 0 1 0 2 3 1 0 1 1 0 0 2 3 0 0 1 1 1 1 4 1 0 1 0 0 0 1 2 3 1 1 0 0 1 0 2 3 1 1 0 1 0 0 2 3 0 1 0 1 1 1 4 3 1 1 1 0 0 0 2 3 0 1 1 0 1 1 4 3 0 1 1 1 0 1 4 5 1 1 1 1 1 0 4
Bei diesem Code gibt es 16 zulässige Codeworte (Nutzworte) bei 32 möglichen Codeworten und damit auch 16 ungenutzten Codeworte, die auf einen Fehler hindeuten, so genannte Pseudoworte. Allgemein gilt bei einem k-stelligen Code, der durch ein Parity-Bit auf die Wortlänge n = k+1 ergänzt wurde, dass die Anzahl der Symbole M = 2k = 2n-1
beträgt.
Bei diesem Code werden • alle Einzelfehler, • kein Doppelfehler, • alle Dreifachfehler, • allgemein alle ungeradzahligen Fehler, • aber keine geradzahligen Fehler erkannt.
3 Codierung von Nachrichten Seite 32
Grundlagen Technischer Informatik 1 Version WS07/08
Ein weiterer fehlererkennender Code, der auf der Überprüfung einer geraden Anzahl 1en fundiert, ist der 2-aus-5-Code. Bei diesem Anordnungscode3 bedeutet "2 aus 5", dass der Code 5 Binärstellen aufweist, wobei in jedem Codewort jeweils nur 2 Binärstellen den Wert 1 haben. Eine analoge Bedeutung kommt dem 1-aus-10-Code zu, wie die nachfolgende Tabelle zeigt.
Die Redundanz R ergibt sich (unter der Annahme, dass alle Codewörter mit der gleichen Wahrscheinlichkeit auftreten) zu:
R = (5 - 3.322) Bit = 1.678 Bit R = (10 - 3.322) Bit = 6.678 Bit
Allgemein bezeichnet ein n-aus-m-Code einen m-stelligen Code, in dem jedes Codewort genau n 1en beinhaltet.
Die verkürzte Schreibweise lautet: ⎟⎟⎠
⎞⎜⎜⎝
⎛nm
3 Den einzeln Binärstellen ist - abgesehen von Ausnahmen - kein bestimmter Stellenwert zuzuordnen.
Ziffern Code25
−⎟⎟⎠
⎞⎜⎜⎝
⎛
0 1 1 0 0 0 1 0 0 0 1 1 2 0 0 1 0 1 3 0 0 1 1 0 4 0 1 0 0 1 5 0 1 0 1 0 6 0 1 1 0 0 7 1 0 0 0 1 8 1 0 0 1 0 9 1 0 1 0 0
Ziffern Code1
10−⎟⎟
⎠
⎞⎜⎜⎝
⎛
0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 2 0 0 0 0 0 0 0 1 0 0 3 0 0 0 0 0 0 1 0 0 0 4 0 0 0 0 0 1 0 0 0 0 5 0 0 0 0 1 0 0 0 0 0 6 0 0 0 1 0 0 0 0 0 0 7 0 0 1 0 0 0 0 0 0 0 8 0 1 0 0 0 0 0 0 0 0 9 1 0 0 0 0 0 0 0 0 0
3 Codierung von Nachrichten Seite 33
Grundlagen Technischer Informatik 1 Version WS07/08
3.6.3 Fehlerkorrigierende Codes
Beim Entwurf fehlererkennender und fehlerkorrigierender Codes wird davon ausgegangen, dass bei einem voll ausgenutzten Code eine Verfälschung in einem Nutzwort ein neues Nutzwort erzeugt. Daher müssen zusätzliche Codeworte eingefügt werden. In einem Code der sowohl Nutzworte als auch Pseudoworte enthält, unterscheiden sich die Nutzworte voneinander in einer bestimmten Anzahl von Binärstellen (Stellendistanz d)4.
Beispiel:
Z1 = 1 0 1
Z2 = 0 0 0
d(Z1, Z2) = 2
4 Die Pseudoworte unterscheiden sich zwar auch in einer bestimmten Anzahl von Binärstellen, aber diese Stellendistanz ist für die weiteren Betrachtung nicht relevant.
Definition 3-4: Hammingdistanz Die kleinste Stellendistanz dmin aller Nutzworte eines Codes wird Hammingdistanz h genannt. Sie ist ein Maß für die Fehlersicherheit eines Codes.
3 Codierung von Nachrichten Seite 34
Grundlagen Technischer Informatik 1 Version WS07/08
Der Begriff der Hammingdistanz kann durch die nachfolgende Abbildung verdeutlicht werden:
• Coderaum eines 3-stelligen Codes; • Codeworte, die sich nur in einer Stelle unterscheiden, sind
direkt mit einer Linie verbunden; • Die Stellendistanz zwischen zwei beliebigen Nutzworten
entspricht im allgemeinem der Anzahl Kanten von dem einem zu dem anderen Nutzwort: 000 => 110, 011 u. 101 : Stellendistanz = 2 000 => 111 : Stellendistanz = 3
• Seien 000, 110, 101, 011 gültige Codeworte => Hamming-distanz h = 2 (d.h. zwischen zwei gültigen Codeworten liegt mindestens ein ungültiges);
000
100010
110
001
011
101
111
3 Codierung von Nachrichten Seite 35
Grundlagen Technischer Informatik 1 Version WS07/08
h=1 h=2 h=3NutzwortPseudowort
• Hammingdistanz h = 1 (alle Codeworte werden genutzt) =>
Eine Fehlererkennung ist nicht möglich.
• Hammingdistanz h=2 => Eine Fehlererkennung ist möglich (Einzelfehler-Pseudowort).
• Hammingdistanz h=3 => Eine Fehlererkennung ist möglich (Einzelfehler und Doppelfehler).
• Allgemein gilt für die Anzahl der mit Sicherheit erkennbaren Fehlern:
1hFe −=
Anmerkung: Es gibt auch Codes, bei denen d nicht durchweg gleich ist. Bei ihnen gibt es also Nutzworte, die sich von einem benachbarten Nutzwort in mehr Stellen unterscheiden als von anderen. Deshalb ist die Differenzierung zwischen d und h im allgemeinen Fall notwendig.
3 Codierung von Nachrichten Seite 36
Grundlagen Technischer Informatik 1 Version WS07/08
Die Korrektur eines Codes wird nur dann möglich, wenn das fehlerhafte Codewort eindeutig einem gültigem Nutzwort (NW) des Coderaumes zugeordnet werden kann. Der Korrekturraum und Korrekturradius zwischen zwei Nutz-worten wird in nachfolgenden Abbildung beispielhaft für eine Hammingdistanz von h = 4 gezeigt.
NW1 NW2
Fehl
eran
zahl
1
2
3
• Einzelfehler, d.h. an genau einer Stelle wurde das Code-wort verfälscht => Richtige Korrektur zum nächsten Nutz-wort möglich.
• Doppelfehler => Eindeutiges Erkennen, aber keine Korrektur, keine eindeutige Zuordnung zum richtigen Codewort möglich (verfälschtes Codewort liegt auf der Schnittlinie beider Korrekturräume).
• Dreifachfehler => Korrektur würde zu einem falschen Codewort führen (verfälschte Codewort liegt nicht mehr im Korrekturraum des zugehörigen Nutzwortes).
3 Codierung von Nachrichten Seite 37
Grundlagen Technischer Informatik 1 Version WS07/08
=> Der zum Korrekturraum gehörende Korrekturradius rk stets
kleiner als die halbe Hammingdistanz h: 2hrk <
Die Anzahl korrigierbarer Fehler errechnet sich ganz allgemein wie folgt:
⎪⎩
⎪⎨
⎧
−
−
=hgeradembei1
2h
hungeradembei2
1h
Fk
Aus dem Vergleich von Fe und Fk folgt, dass bei einem Code mindestens doppelt so viele Fehler erkannt wie korrigiert werden können.
Es gilt: ke F2F ⋅≥
Bedeutung der minimalen Hammingdistanz dmin eines Codes:
dmin = 1: Eindeutigkeit dmin = 2: Einzelfehlererkennung dmin = 3: Doppelfehlererkennung / Einzelfehlerkorrektur dmin = 4: Dreifachfehlererkennung / Einzelfehlerkorrektur dmin = 5: Vierfachfehlererkennung / Doppelfehlerkorrektur
3 Codierung von Nachrichten Seite 38
Grundlagen Technischer Informatik 1 Version WS07/08
S1
S4
S7
S3
S6
S2
S5
3.7 Codeumsetzer Bisher wurden einige Codes zur Verschlüsselung vorgegebener Informationen wie beispielsweise Buchstabenfolgen oder Dezimalzahlen dargelegt. In diesem Kapitels soll abschließend noch die Überführung bereits codierter Informationen in einen anderen Code betrachtet werden. Dies geschieht mittels eines Codeumsetzers, der die binärcodierten Informationen eines Codes 1 in einen anderen Code 2 umsetzt.
Beispiel: Umsetzung des BCD-Codes in den 7-Segment-Code
• Code 1: BCD, Binärcode, rechnerinterner Verarbeitungs-code
• Code 2: 7-Segment-Code, hardwarebezogener "Ansteuerungscode" für bestimmte Datensichtgeräte
Der 7-Segment-Code wurde zur Ansteuerung von sieben Segmenten (z.B. mechanische Klappen oder LEDs) entwickelt, die auf Grund ihrer Anordnung die Darstellung der zehn Ziffern sowie einiger Buchstaben erlauben.
Aus der Codegegenüberstellung (vgl. Tab) können nun die Vorschriften zur Umsetzung des BCD-Codes in den 7-Segment-Code abgeleitet werden. In diesem Beispiel soll eine LED der 7-Segment-Anzeige aufleuchten, wenn sie mit einer logischen 0 angesteuert wird. Die folgende Abbildung zeigt die Anordnung der Segmente S1 - S7.
3 Codierung von Nachrichten Seite 39
Grundlagen Technischer Informatik 1 Version WS07/08
7-Segment-Code BCD-Code Dezimal-
ziffer S1 S2 S3 S4 S5 S6 S7 X3 X2 X1 X0
0 0 0 0 1 0 0 0 0 0 0 0 1 1 0 1 1 0 1 1 0 0 0 1 2 0 0 1 0 1 0 0 0 0 1 0 3 0 0 1 0 0 1 0 0 0 1 1 4 1 0 0 0 0 1 1 0 1 0 0 5 0 1 0 0 0 1 0 0 1 0 1 6 0 1 0 0 0 0 0 0 1 1 0 7 0 0 1 1 0 1 1 0 1 1 1 8 0 0 0 0 0 0 0 1 0 0 0 9 0 0 0 0 0 1 0 1 0 0 1
Implementierung mittels Hardware: Schritt 1: Festlegen der Richtung, hier ist nur die Umsetzung
des BCD-Codes in den 7-Segment-Code sinnvoll; Schritt 2: Aufstellen der Funktionsterme für jedes der 7
Segmente mittels einer Funktionsgleichung oder eines KV-Diagrammes =>
S1 = f(X3, X2, X1, X0) S2 = f(X3, X2, X1, X0) . . . S7 = f(X3, X2, X1, X0)
Schritt 3: Vereinfachung der Funktionsterme: Entweder jeder für sich alleine betrachtet oder unter Berücksichtigung gemeinsamer Ausdrücke (Funktionsbündel5);
Schritt 4: Fertigung der Schaltung;
5 Dies ergibt ggf. Vorteile für die spätere hardwaremäßige Realisierung.
3 Codierung von Nachrichten Seite 40
Grundlagen Technischer Informatik 1 Version WS07/08
Das Prinzip der Implementierung mittels Hardware verdeutlicht die folgende Abbildung.
S1
S4
S7
S3
S6
S2
S5
Decoder
input:a b c dX3 X2 X1 X0