Kanalcodierung Information und Codierung InCO Team: G. Groppo, K. Hauser, Th. Müller, M. Rosenthal, J. Stettbacher, T. Welti Ziele ◼ Sie können: • den Unterschied zw. Forward und Backward Error Correction an je einem • • • • • • • • Beispiel erklären Sinn von Frames in der Kommunikation erklären Vor- und Nachteil von langen Frames nennen und begründen aus einer Bitfehlerwahrscheinlichkeit die Framefehlerwahrscheinlichkeit bestimmen die Mehr-Bit-Fehlerwahrscheinlichkeit einer Sequenz berechnen die Kanalkapazität eines symmetrischen binären Kanals bestimmen den Begriff der Hamming-Distanz definieren die Grenzen der Fehlererkennung Funktion der Hamming-Distanz herleiten die Coderate R eines binären Block-Codes bestimmen Kapitel 0 - 2 ZHAW, Information und Codierung 18.11.2019 Inhalt ◼ Prinzip der Fehlerkorrektur (Forward/Backward Error Correction) ◼ Binäre symmetrische Kanäle (BSC) ◼ Einfluss der Frame-Länge auf den Durchsatz ◼ Mehr-Bit-Fehlerwahrscheinlichkeiten ◼ Grundlagen zur Fehlererkennung • Entropie und Kanalkapazität eines BSC • Hamming-Distanz • Binäre Blockcodes • Coderate R • Systematik Kapitel 0 - 3 ZHAW, Information und Codierung 18.11.2019 Übersicht + Redundanz ◼ Ist es möglich, über einen Kanal, der bei der Übertragung Fehler macht, Daten fehlerfrei zu übertragen? Kapitel 0 - 4 ZHAW, Information und Codierung 18.11.2019 Restlicher Zeitplan SW# Vorlesung: 10 Kanalcodierung Übung / Praktikum: 9 Übung Kanalcodierung (BSC) Kanalmodell (BSC) für ein Bit; Kanalkapazität; Coderate; Hamming-Distanz/-Gewicht; Minimum-Distance-Decoding. 11 Fehlererkennung 10 Übung ‚CRC‘ mit Schieberegister Wichtigste Verfahren zur Fehlererkennung (Parität, CRC, Checksumme) Matrizenrechnung für das Verständnis der Blockcodes 12 Fehlerkorrigierende Codes 11 Übung Fehlerkorrektur (Blockcode 1) Block-Code; Hamming-Codes; Syndrom-/TableLookup-Decoding 13 Faltungscode 12 Übung Faltungscodes (Python Trellis) Ausgabe einer Trainingsprüfung 14 Kapitel 0 - 5 Repetition und Fragen zum Stoff allgemein 13 Reserve ZHAW, Information und Codierung 18.11.2019 Einteilung der Fehlerkorrekturverfahren ◼ Backward Error Correction (Rückwärtsfehlerkorrektur) • Die Redundanz erlaubt lediglich, Fehler zu erkennen und eine • ◼ Neuübertragung der Daten anzufordern: Im Folgenden behandelte Verfahren sind: - Blockcodes - CRC Forward Error Correction (Vorwärtsfehlerkorrektur) • Die von der Kanalcodierung hinzugefügte Redundanz reicht, um beim • Empfänger Fehler zu korrigieren: Im Folgenden behandelte Verfahren sind: - Blockcodes - Minimum-Distance-Decoding - Faltungscodes Kapitel 10 - 6 ZHAW, Information und Codierung 18.11.2019 Fehlerkorrektur: Backward Error Correction Wie erkennt man eine fehlerhafte Nachricht? Kapitel 0 - 7 ZHAW, Information und Codierung 18.11.2019 Fehlerkorrektur: Backward Error Correction ◼ Nachteile des obigen Verfahrens? • Es ist ein Rückkanal erforderlich • Sender wartet auf Quittung (im Normalbetrieb) • Sender wartet im Fehlerfall auf Timeout; → mögliche Abhilfe: Verwendung einer negativen Bestätigung ◼ Nicht anwendbar im Falle von • Datenauslöschungen: • einmaligen Ereignissen (z.B. Raumsonde) • zu hoher Fehlerwahrscheinlichkeit ◼ Typisches Software-Verfahren für Transport-Dienste z.B. TCP → wird im Modul IT.KT genau betrachtet Kapitel 0 - 8 ZHAW, Information und Codierung 18.11.2019 Kanalcodierungstheorem ◼ Das Kanalcodierungstheorem beschreibt, unter welcher Bedingung sich die Wahrscheinlichkeit von Fehlern beliebig reduzieren lässt. ◼ Begriffe: • Kanalmodell - Binärer Symmetrischer Kanal • Bitfehlerwahrscheinlichkeit BER (Bit Error Ratio). • Binärer Symmetrischer Kanal • Kanalkapazität • Hamming-Gewicht • Hamming-Distanz • Coderate Kapitel 0 - 9 ZHAW, Information und Codierung 18.11.2019 Binäre Kanäle ◼ Binäre Kanäle können nur die Werte 0 und 1 übertragen • Übertragungsfehler wirken sich demnach dadurch aus, dass im Verlauf der Übertragung einzelne Werte von 0 in 1 umgewandelt werden oder umgekehrt. ◼ ε ist die Bitfehlerwahrscheinlichkeit (BER – Bit Error Ratio) (Nicht: Bitfehlerrate = Bitfehler pro Zeit) Kapitel 0 - 10 ZHAW, Information und Codierung 18.11.2019 Bitfehlerwahrscheinlichkeit ◼ Die Bitfehlerwahrscheinlichkeit ε ist eine Eigenschaft des Kanals. • Anzahl fehlerhafte Bits im Verhältnis zu Gesamtzahl der Bits. • Beispiele: Wir betrachten die Bits Yk beim Empfänger: ◼ Alle Bits falsch: Kein Bit falsch: 1 von 2 Bits falsch: 1 von 1000 Bits falsch: BER = 1 BER = 0 BER = 0.5 BER = 0.001 Ein asymmetrischer Kanal hat unterschiedliche Wahrscheinlichkeiten ε0→1 also dass eine 0 zu einer 1 wird und ε1→0 also dass eine 1 zu einer 0 wird. ◼ Im Folgenden beschränken wir uns auf die Betrachtung des binären symmetrischen Kanals, wo die beiden Wahrscheinlichkeiten gleich sind: ε0→1 = ε1→0 = ε Kapitel 0 - 11 ZHAW, Information und Codierung 18.11.2019 Binary Symmetric Channel (BSC) ◼ Für den binären symmetrischen Kanal gilt: (englisch: Binary Symmetric Channel, BSC) • Die Fehlerwahrscheinlichkeit ε ist unabhängig vom Eingangssymbol. • Die Wahrscheinlichkeiten 𝑃 𝑦𝑚 𝑥𝑛 der Übergänge (bei gegebenem 𝑥𝑛 ) sind: Sender Kapitel 0 - 12 Empfänger ZHAW, Information und Codierung 18.11.2019 Datenrahmen ◼ Für die Übertragung oder Speicherung werden die Daten oft in Blöcke, sogenannte Datenrahmen (engl. Frame) aufgeteilt. • Der Beginn eines Datenrahmens liegt typischerweise an einer Byte-Grenze • Beispiel: Start Start Ruhe Ruhe Datenrahmen Ruhe Datenrahmen t • Dieser besteht meist aus einem Header, der u.A. die Anzahl der Elemente im Datenblock enthält, dem Datenblock und einem Code für die Fehlererkennung Header Datenblock mit Nutzbits Fehlererkennung Frame-Länge N • Für die Dimensionierung der Rahmengrösse ist es wichtig, die Fehlerwahrscheinlichkeit bezogen auf N Bits zu kennen. 13 ZHAW, Information und Codierung 18.11.2019 Fehlerwahrscheinlichkeit eines Datenblocks ◼ Mit der BER ε lässt sich die Wahrscheinlichkeit 𝑃0,𝑁 ausrechnen, mit der eine Sequenz von 𝑁 Datenbits korrekt (also mit null Bitfehlern) übertragen wird. • A sei eine grosse Anzahl Frames mit der Länge 𝑁 Bit • Wie viele Frames 𝐴1 von A werden im 1. Bit keinen Fehler haben? 𝐴1 = 𝐴 1 − ε • Wieviel der verbleibenden, korrekten Frames 𝐴1 werden auch im 2. Bit noch fehlerfrei sein? 𝐴2 = 𝐴1 1 − ε = 𝐴 1 − ε 1 − ε = 𝐴 1 − ε 2 … • Wieviel Frames sind nach der Übertragung des 𝑁. Bits noch fehlerfrei? 𝐴𝑁 = 𝐴 1 − ε 𝑁 𝐴𝑁 𝐴 = 1−𝜀 𝑁 ◼ Erfolgswahrscheinlichkeit: 𝑃0,𝑁 = ◼ Fehlerwahrscheinlichkeit auf 𝑁 Datenbits = 1 - 𝑃0,𝑁 = 1 − 1 − ε wobei für 𝑁 ∙ 𝑝𝑒 ≪ 1 folgende Näherung gilt: 1 − ε Kapitel 0 - 14 𝑁 𝑁 ≅ 1−𝑁∙ε ZHAW, Information und Codierung 18.11.2019 Beispiel: Bitfehlerwahrscheinlichkeit ◼ Wahrscheinlichkeit fehlerfreier Frames 𝑃0,𝑁 in Funktion der Länge 𝑁 bei verschiedenen Bitfehlerwahrscheinlichkeiten ε 𝑃0,𝑁 = 1 − ε 𝑁 100% 𝑃0,𝑁 ≅ 1 − 𝑁 ∙ 𝜀 90% ε= 80% 1.00E-02 70% 1.00E-03 60% 1.00E-04 50% 1.00E-05 37% 40% 1 𝑁= 𝜀 30% 20% 10% 0% 10 100 1’000 10’000 100’000 1’000’000 Frame-Länge [bit] Kapitel 0 - 15 ZHAW, Information und Codierung 18.11.2019 Mehr-Bit-Fehlerwahrscheinlichkeit einer Sequenz ◼ Die Wahrscheinlichkeit PF,N , dass in einer Sequenz von N Datenbits genau F Bitfehler auftreten, ist: Anzahl der Möglichkeiten F Fehler in N Bits anzuordnen. 𝑁 ist der sogenannte 𝐹 Binomialkoeffizient aus der Kombinatorik (s. nächste Folie) Kapitel 0 - 19 Wahrscheinlichkeit für einen F-fachen Bit-Fehler Wahrscheinlichkeit, dass die restlichen Bits (N-F) alle keinen Fehler haben. ZHAW, Information und Codierung 18.11.2019 Bestimmung des Binomialkoeffizienten 𝑛 ist der 𝑘-ter Koeffizienten der Potenz des Binoms 𝑥 + 𝑦 𝑛 𝑘 𝑛 𝑛! ◼ Bestimmung / Berechnung für kleine 𝑛: = wobei 𝑘 ≤ 𝑛 𝑘!∙ 𝑛−𝑘 ! 𝑘 ◼ • Pascalsches Dreieck 𝑛 Der Koeffizienten befindet sich in 𝑘 der 𝑛 -ten Zeile an der 𝑘-ten Stelle: ◼ Bessere Formel für grosse 𝑛: 𝑘 𝑛−𝑘+1 𝑛 =ෑ 𝑘 𝑖 𝑖=1 • Als Programm-Code: Zeile (n) 0 1 2 1 Beispiel: 6 = 15 2 3 1 1 1 4 1 5 1 1 2 3 4 5 if (2*k > n) k = n-k; //Optim. ergebnis = 1; for (i = 1; i <= k; i++) ergebnis *= (n - k + i) / i; 1 3 6 10 1 4 10 1 5 • Wissenschaftliche Rechner haben für 1 6 1 6 15 20 15 6 1 Spalte (k) 0 1 2 3 4 5 6 Kapitel 0 - 20 𝑛 i.A. eine spezielle Funktion z.B. 𝑘 nCk für “n choose k” ZHAW, Information und Codierung 18.11.2019 Mehr-Bit-Fehlerwahrscheinlichkeit einer Sequenz ◼ Für die Wahrscheinlichkeit, dass maximal F Fehler bei einer Übertragung von N Bits auftreten, bilden wir die Summe aller Fälle: 𝐹 𝑃≤𝐹,𝑁 = 𝑡=0 𝑁 ∙ 𝜀𝑡∙ 1 − 𝜀 𝑡 𝑁−𝑡 ◼ Oft will man die Restfehlerwahrscheinlichkeit wissen, also die Wahrscheinlichkeit, dass mehr als F Fehler bei einer Übertragung von N Bits auftreten: 1 − 𝑃≤𝐹,𝑁 ◼ Sie lässt sich wegen der Ziffernauslöschung (sehr kleine Summanden) aber nur schwer berechnen. Darum ist die folgende Form besser, welche alle Fälle mit F+1 bis N Fehlern berechnet: 𝑁 𝑃>𝐹,𝑁 = 𝑡=𝐹+1 21 𝑁 ∙ 𝜀𝑡∙ 1 − 𝜀 𝑡 𝑁−𝑡 ZHAW, Information und Codierung 18.11.2019 Beispiel: Restfehlerwahrscheinlichkeit ◼ Es wird jede Sekunde seine Sequenz von 31 Bit übertragen. Wie viele Fehler müssen pro Sequenz korrigiert werden, damit die Restfehlerwahrscheinlichkeit < 1 Fehler/Jahr wird? 1 Stunde: 2.7 E-4 1 Tag: 1.16 E-5 1 Jahr: 3.17 E-8 Kapitel 0 - 22 ZHAW, Information und Codierung 18.11.2019 Rückblick: Binary Memoryless Source (BMS) Die Entropie Hb einer Binary Memoryless Source (BMS) mit den Symbolwahrscheinlichkeiten p und 1 – p war: Maximale Entropie bei p = (1-p) = 0.5 Kapitel 0 - 23 ZHAW, Information und Codierung 18.11.2019 Kanalkapazität des BSC ◼ Wir suchen die Kanalkapazität eines BSC bei einer bestimmten Bitfehlerwahrscheinlichkeit BER. • Die maximale Kanalkapazität entspricht dem Maximum der Entropie einer • binären Quelle: 1 bit/Symbol = 1 bit/bit Die Fehlerquelle kann ebenfalls als Binary Memoryless Source mit den Wahrscheinlichkeiten ε (Fehler) und 1-ε (kein Fehler) betrachtet werden. Fehlerquelle Fehlerentropie H(ε) binäre DatenQuelle Kapitel 0 - 24 maximale Kanalkapazität 1 bit/bit nutzbare Kanalkapazität ZHAW, Information und Codierung 18.11.2019 Kanalkapazität des BSC Entropie der Störquelle Kapazität des fehlerfreien BSC bei 𝑃 𝑥0 = 𝑃 𝑥1 = 0.5 Kapitel 0 - 25 ZHAW, Information und Codierung 18.11.2019 Verbundwahrscheinlichkeiten eines BSC 𝑃 𝑥1 𝑥1 = 1 𝑃 𝑥1 ∙ (1 − 𝜀) 𝑃 𝑥1 ∙ 𝜀 𝑃 𝑥0 ∙ 𝜀 𝑃 𝑥0 Summe = 1 𝑥0 = 0 𝑃 𝑥0 ∙ (1 − 𝜀) 𝑦1 = 1 𝑃 𝑦1 𝑦0 = 0 𝑃 𝑦0 Summe = 1 Summe = 1 𝑃 𝑦1 = 𝑃 𝑥1 ∙ 1 − 𝜀 + 𝑃 𝑥0 ∙ 𝜀 𝑃 𝑦0 = 𝑃 𝑥0 ∙ 1 − 𝜀 + 𝑃 𝑥1 ∙ 𝜀 Kapitel 0 - 26 ZHAW, Information und Codierung 18.11.2019 Verbundwahrscheinlichkeiten eines BSC ◼ Beispiel: BSC mit 𝜀 = 0.01 und Quelle mit 𝑃 𝑥0 = 0.05 𝑃 𝑥1 = 1 − 𝑃 𝑥0 = 0.95 𝑃 𝑥1 𝑥1 = 1 𝑃 𝑥1 ∙ 1 − 𝜀 = 0.95 ∙ 0.99 = 0.9405 𝑦1 = 1 𝑃 𝑦1 𝑦0 = 0 𝑃 𝑦0 𝑃 𝑥1 ∙ 𝜀 = 0.95 ∙ 0.01 = 0.0005 𝑃 𝑥0 = 0.05 𝑃 𝑥0 𝑃 𝑥0 ∙ 𝜀 = 0.95 ∙ 0.01 = 0.0095 𝑥0 = 0 𝑃 𝑥0 ∙ (1 − 𝜀) = 0.05 ∙ 0.99 = 0.0495 Summe = 1 Summe = 1 𝑃 𝑦1 = 𝑃 𝑥1 ∙ 1 − 𝜀 + 𝑃 𝑥0 ∙ 𝜀 = 0.9405 + 0.0005 = 0.9410 Summe = 1 𝑃 𝑦0 = 𝑃 𝑥0 ∙ 1 − 𝜀 + 𝑃 𝑥1 ∙ 𝜀 = 0.0495 + 0.0095 = 0.0590 Kapitel 0 - 27 ZHAW, Information und Codierung 18.11.2019 Entropien eines BSC ◼ Die Verbund-Wahrscheinlichkeiten ergeben folgende -Entropien: 𝑃 𝑥1 𝑃 𝑥0 𝑥1 = 1 𝑥0 = 0 Entropie am Eingang: Kapitel 0 - 28 𝑃 𝑥1 ∙ (1 − 𝜀) 𝑃 𝑥1 ∙ 𝜀 𝑃 𝑥0 ∙ 𝜀 𝑃 𝑥0 ∙ (1 − 𝜀) 𝑦1 = 1 𝑃 𝑦1 𝑦0 = 0 𝑃 𝑦0 Entropie an Ausgang: ZHAW, Information und Codierung 18.11.2019 Entropien eines BSC ◼ Beispiel: Fehlerfreier Kanal P(x0)= H(x1) 0.050 0.070 BER ε= 0 X 1 0.070 Y 1 0.070 H(y1) 0.216 0 0.216 H(y0) 0.000 0.000 H(x0) 0.216 H(X) 0.286 ◼ 0 0.286 H(Y) Durchgängig gleiche Entropie: H(x) = H(y) Kapitel 0 - 29 ZHAW, Information und Codierung 18.11.2019 Entropien eines BSC ◼ Beispiel: Kanal ohne Information (nur Einsen) P(x0)= H(x1) 0 0.000 BER ε= 0.01 X 1 0.014 Y 1 0.014 H(y1) 0.000 0 0.066 H(y0) 0.066 0.000 H(x0) 0.000 H(X) 0.000 ◼ 0 0.081 H(Y) Die Fehlerquelle erzeugt scheinbare Entropie, abhängig von der BER: 𝐻 𝜀 = −𝜀 ∙ log 2 𝜀 − 1 − 𝜀 ∙ log 2 1 − 𝜀 = −0.01 ∙ log 2 0.01 − 0.99 ∙ log 2 0.99 = 0.081 Kapitel 0 - 30 ZHAW, Information und Codierung 18.11.2019 Entropien eines BSC ◼ Beispiel: Voll genutzter Kanal P(x0)= H(x1) 0.5 0.500 BER ε= 0.01 X 1 0.502 Y 1 0.500 H(y1) 0.502 0 0.500 H(y0) 0.038 0.038 H(x0) 0.500 H(X) 1.000 0 1.000 H(Y) ◼ Eingang und Ausgang zeigen maximal Entropie. ◼ Wieviel Information vom Eingang kommt tatsächlich beim Ausgang an? Kapitel 0 - 31 ZHAW, Information und Codierung 18.11.2019 Entropien eines BSC ◼ Allgemeiner Fall: Fortsetzung des vorherigen Beispiels mit: P(x0)= H(x1) 0.05 0.070 BER ε= 0.01 X 1 0.083 Y 1 0.083 H(y1) 0.215 0 0.241 H(y0) 0.064 0.005 H(x0) 0.216 H(X) 0.286 ◼ 0 0.323 H(Y) Die Störquelle fügt scheinbare Entropie hinzu (0.081); zerstört aber auch Information von H(X). Kapitel 0 - 32 ZHAW, Information und Codierung 18.11.2019 Gemeinsame Information ◼ Welche Information kann trotz Fehlern übertragen werden? Die übertragene Information, die dem Eingang und Ausgang gemeinsam ist. H(ε) I(X,Y) H(X) H(Y) H(X) – I(X,Y) Sind H(Y) und H(ε) bekannt, folgt für die gemeinsame Information I(X,Y): I(X,Y) = H(Y) – H(ε) [bit/bit] Kapitel 0 - 33 ZHAW, Information und Codierung 18.11.2019 Gemeinsame Information ◼ Werte aus obigem Beispiel mit 𝜀 = 0.01 und 𝑃 𝑥0 = 0.05: H(X) = 0.286, X(Y) = 0.323, H(𝜀) = 0.081 H(ε) = 0.081 H(X) = 0.286 H(Y) = 0.323 I(X,Y) = 0.242 H(X) – I(X,Y) = 0.044 I(X,Y) = H(Y) - H(ε) = 0.323 – 0.081 = 0.242 [bit/bit] Kapitel 0 - 34 ZHAW, Information und Codierung 18.11.2019 Hamming-Distanz (1) ◼ Hamming Distanz ist die Anzahl der zu wechselnden Bits vom einem gültigen Code zum nächsten gültigen Code ◼ Beispiel: 3-Bit-Code mit folgender systematischer Anordnung: 110 111 010 011 x1x 1xx 100 101 0xx x0x xx0 xx1 000 ◼ 001 Hamming Distanz 1: jeder Code ist gültig; jeder Fehler führt zu einem anderen gültigen Code → keine Fehlererkennung möglich Kapitel 0 - 35 ZHAW, Information und Codierung 18.11.2019 Hamming-Distanz (2) ◼ Codes mit einer Hamming-Distanz >= 2 erlauben die Erkennung von Ein- oder Mehr-Bitfehlern. ( = gültiger Code, = ungültiger Code) Hamming-Distanz = 2 110 Hamming-Distanz = 3 111 010 110 111 010 011 100 000 011 001 Erlaubt die Erkennung eines einzelnen Bitfehlers Kapitel 0 - 36 100 101 000 101 001 Erlaubt die Erkennung von zwei Bitfehlern ZHAW, Information und Codierung 18.11.2019 Hamming-Distanz (3) ◼ Minimale Hamming-Distanz • Die Hamming Distanz d zwischen den Codewörtern ist nicht per se constant: • Beispiel: Code mit den Codewörtern 00000, 01011, 10101, 11110 d(00000, 01011) = 3 d(01011, 10101) = 4 d(00000, 10101) = 3 d(01011, 11110) = 3 d(00000, 11110) = 4 d(10101, 11110) = 3 ◼ Für eine sichere Fehlererkennung oder (später auch Fehlerkorrektur) ist die minimale Hamming-Distanz dmin(C) eines Codes C relevant: ◼ dmin ist die kleineste Hamming-Distanz d zwischen zwei beliebigen Codewörtern eines Codes. ◼ Ein Code heisst perfekt, wenn alle Codewörter die gleiche Hamming-Distanz dmin aufweisen. Kapitel 0 - 37 ZHAW, Information und Codierung 18.11.2019 Hamming-Gewicht ◼ Das Hamming-Gewicht wH(cj) • gibt an, wieviele Einsen das Codewort cj enthält. • darf nicht mit Hamming-Distanz verwechselt werden! ◼ Beispiel: • wH(000) = 0 • wH(110) = wH(011) = wH(101) = 2 ◼ Anwendung: Bestimmung der Hamming-Distanz zweier Codewörter. Dazu bildet man mit einer bitweisen Exor-Operation die Differenz zweier Codewörter und bestimmt dann davon das Hamming-Gewicht, also die Anzahl der unterschiedlichen Bits. 𝑑𝐻 𝑐𝑗, 𝑐𝑘 = 𝑤𝐻 𝑐𝑗 ⨁ 𝑐𝑘 - 𝑑𝐻 000, 110 = 𝑤𝐻 000 ⨁ 110 = 𝑤𝐻 110 = 2 - 𝑑𝐻 110, 011 = 𝑤𝐻 110 ⨁ 011 = 𝑤𝐻 101 = 2 - 𝑑𝐻 110, 101 = 𝑤𝐻 110 ⨁ 101 = 𝑤𝐻 011 = 2 Kapitel 0 - 38 ZHAW, Information und Codierung 18.11.2019 Hamming-Distanz (4) ◼ Wie gross ist die Anzahl der erkennbaren Fehler e bei einer gegebenen Hamming-Distanz dmin? Hanning-Distanz dmin Gültiger Code Cj (dmin-1) fehlerbehaftete Zwischencodes Gültiger Code Ck Klicken für Lösung e = (d min-1) ausgehend von Code Cj e = (dmin-1) ausgehend von Code Ck 𝑑𝑚𝑖𝑛 − 1 Fehler sind sicher erkennbar Kapitel 0 - 39 ZHAW, Information und Codierung 18.11.2019 Prinzip der Fehlererkennung mit Blockcodes Sender: Daten KanalEncoder Fehlerschutzbits Senden: Daten und Fehlerschutzbits + Fehlerquelle Empfänger: KanalDecoder «Fehler» / «kein Fehler» Daten Kapitel 0 - 40 ZHAW, Information und Codierung 18.11.2019 Binäre Blockcodes: Systematik ◼ ◼ Encoder für (N,K) Blockcode [ u0 u1 ... uK-1 ] Encoder [ x0 x1 ... xN-1 ] Informationswort u R=K/N Codewort x Coderate 𝑹: 𝑲 𝑹= 𝑵 Systematischer (N,K) Blockcode: Die K Informationsbits erscheinen im Codewort am einem Stück N Codeswortbits N - K Fehlerschutzbits oder K Informationsbits N Codeswortbits K Informationsbits N - K Fehlerschutzbits Systematische Blockcodes lassen sich besonders einfach decodieren; es müssen lediglich die Fehlerschutzbits entfernt werden. - 41 - ZHAW, Information und Codierung 18.11.2019 Binärer Blockcodes: Linearität ◼ Bei einem linearer (N,K) Blockcode ist die bitweise Exor-Verknüpfung von 2 beliebigen Codewörtern (inklusive des selben) wieder ein güliges Codewort: • Beispiel: C = (000), (110), (011), (101) - Beliebiges Codewort xor mit sich selber: - Beliebiges Codewort xor mit (000): - Restliche Fälle: →Jeder lineare Code muss zwingend das Null-Codewort (000) enthalten Anmerkung: Mathematisch nennt man die bitweise Exor-Verknüpfung eine bitweise Modulo-2-Summe (1-bit-Summe ohne Übertrag). ◼ - 42 - Bei linearen (N,K)-Blockcodes ist dmin die minimale HammingDistanz der gültigen Codes zum Null-Codewort. ZHAW, Information und Codierung 18.11.2019 Binäre Blockcodes: Zyklizität ◼ Linearer, zyklischer (N,K) Blockcode Die zyklische Verschiebung eines Codeworts gibt wieder ein Codewort. Beispiel: ◼ - 43 - Ein linearer, zyklischer Blockcode wird später eingehend besprochen (siehe Abschnitt CRC). ZHAW, Information und Codierung 18.11.2019 Binäre Blockcodes Beispiel (3,2) Block-Code C = { [0 0 0], [1 1 0], [1 0 1], [0 1 1] } 110 111 systematisch 011 010 linear 100 101 000 -8- zyklisch 001 • Encoder: K= • Länge der Codewörter N= • Code-Rate R = • minimale Hamming-Distanz dmin = ZHAW, Information und Codierung 18.11.2019 Kanalcodierungstheorem ◼ Das Kanalcodierungstheorem beschreibt, unter welcher Bedingung sich die Wahrscheinlichkeit von Fehlern beliebig reduzieren lässt. ◼ Begriffe: • Kanalmodell - Binärer Symmetrischer Kanal • Bitfehlerwahrscheinlichkeit BER (Bit Error Ratio). • Binärer Symmetrischer Kanal • Kanalkapazität • Hamming-Gewicht • Hamming-Distanz • Coderate 46 ZHAW, Information und Codierung 18.11.2019 Kanalcodierungstheorem ◼ Das Kanalcodierungstheorem beschreibt, unter welcher Bedingung sich die Wahrscheinlichkeit von Fehlern beliebig reduzieren lässt. Möchte man die Restfehlerwahrscheinlichkeit eines Fehlerschutzcodes beliebig klein machen, so muss R < C sein. ◼ C: Kanalkapazität in bit/bit (Nutzbare Bits pro Kanalbenutzung) ◼ R: Coderate in bit/bit (Infobits pro Codebit) ◼ R muss kleiner als C sein, damit alle Information in den nutzbaren Bits Platz haben 47 ZHAW, Information und Codierung 18.11.2019