Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
se:informationstheorie [2009-02-24 12:44] stefan |
se:informationstheorie [2014-04-05 11:42] |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== Informationstheorie und Codierung ====== | ||
- | ===== Überblick ===== | ||
- | * Quellencodierung beseitigt Redundanz in der Nachricht | ||
- | * Kanalcodierung fügt der Nachricht wieder Redundanz hinzu (z.B. zur Fehlerkorrektur) | ||
- | |||
- | ===== Informationstheorie ===== | ||
- | * basiert auf grundlegenden Arbeiten von Shannon | ||
- | * eine **Quelle** liefert informationskennzeichnende **Zeichen** x<sub>i</sub> aus einem q Zeichen umfassenden **Alphabet** X mit gewissen Wahrscheinlichkeiten | ||
- | * bei **stationäre Quellen** sind die Wahrscheinlichkeiten, mit denen die Quelle Zeichen abgibt nicht von der Zeit abhängig | ||
- | * bei **gedächtnislosen Quellen** sind die Wahrscheinlichkeiten der Zeichen unabhängig von zuvor oder im Anschluss gesendeten Zeichen | ||
- | * aus den Elementen des Zeichenvorrats können **Worte** w<sub>i</sub> der Länge m<sub>i</sub> gebildet werden. Es lassen sich q<sup>m</sup> verschiedene Worte gleicher Länge m herstellen | ||
- | * eine **Codierung** ist die Vorschrift zur eindeutigen Abbildung der Zeichen eines Zeichenvorrats A auf Codeworte, die aus den Zeichen eines Zeichenvorrats B gebildet werden: C(x<sub>i</sub>) = w<sub>i</sub> | ||
- | * Beispiele für Codes: Morse-Code, ASCII-Code, Dezimal-, Oktalzahlen etc. | ||
- | * **Information** ist Abbau von Ungewissheit (Beispiel Zufallsexperiment: Ausgang vorher unbekannt, danach bekannt) | ||
- | * **Informationsgehalt** I(x<sub>i</sub>)/bit = -ld p(x<sub>i</sub>) | ||
- | * I(x<sub>i</sub>, x<sub>j</sub>) = I(x<sub>i</sub>) + I(x<sub>j</sub>) | ||
- | * der Informationsgehalt ist umso größer, je unwahrscheinlicher das Zeichen ist | ||
- | * jedes Zeichen eines binären Zeichenvorrats hat bei gleichwahrscheinlichem Auftreten einen Informationsgehalt von -ld (0,5) = 1 | ||
- | * die **Entropie H** ist der mittlere Informationsgehalt der Zeichen einer Quelle -> Maß für statistische Unordnung bzw. Unsicherheit | ||
- | * {{:se:entropie.jpg|}} | ||
- | * die Entropie ist der Erwartungswert des Informationsgehalts | ||
- | * die Entropie wird maximal, wenn alle Zeichen eines Zeichenvorrats gleich wahrscheinlich sind, Bezeichnung: H<sub>max</sub> oder H<sub>0</sub> | ||
- | * die maximale Entropie wird auch als **Entscheidungsgehalt** einer Quelle bezeichnet | ||
- | * der Unterschied zwischen H(x) und H<sub>0</sub> wird als **Redundanz** bezeichnet: p = H<sub>0</sub> - H(x) | ||
- | * eine Redundanz kann auch für Codes angegeben werden: p<sub>code</sub> = L - H(x) mit L = mittlere Codewortlänge | ||
- | * relative Coderedundanz oder Weitschweifigkeit: (L - H(x)) / L, Codeeffizienz: H(x) / L | ||
- | * ein **optimaler Code** besitzt unter bestimmten Randbedingungen (insb. ganzzahlige Wortlängen) die geringstmögliche Redundanz bzw. größtmögliche Effizienz | ||
- | * eine Quelle, deren Gedächtnis K Zeichen in die Vergangenheit reicht, wird als Markov-Quelle K-ter Ordnung bezeichnet | ||
- | * allg. Markov-Quelle = Markov-Quelle 1. Ordnung, gedächtnislose Quelle = Markov-Quelle 0. Ordnung | ||
- | * die **bedingte Entropie H(x|s)** ist der Mittelwert (über alle Zustände) des mittleren Informationsgehalts eines Zeichens, das in einem bestimmten Zustand der Quelle abgegeben wird | ||
- | * {{:se:bedingteentropie.jpg|}} | ||
- | * die bedingte Entropie kann nie größer werden als die "normale" Entropie | ||
- | * die **Verbundentropie (H(x,s)** ist der mittlere Informationsgehalt von ganzen Ausgangsfolgen einer Markov-Quelle | ||
- | * {{:se:verbundentropie.jpg|}} | ||
- | * {{:se:verbundentropie2.jpg|}} | ||
- | * H(x,s) = H(x|s) + H(s) wobei H(s) wiederum eine Verbundentropie ist | ||
- | * beim Erhöhen der Nachrichtenlänge nähert sich der mittlere Informationsgehalt pro Zeichen asymptotisch der bedingten Entropie | ||
- | |||
- | ===== Übertragungskanäle ===== | ||
- | * abstraktes Kanalmodell des **diskreten Kanals**: x -> Modulator -> physikalischer Kanal -> Demodulator -> y | ||
- | * die Aufgabe von Modulator und Demodulator ist es, einen möglichst guten diskreten Kanal zu bilden | ||
- | * die Aufgabe von Codierer und Decodierer ist es, eine zuverlässige Übertragung über diesen Kanal zu gewährleisten | ||
- | * Demodulationsverfahren | ||
- | * **Hard-Decision**: Ein- und Ausgabealphabet sind identisch | ||
- | * **Soft-Decision**: liefert kontinuierlich verteilte Ausgangswerte | ||
- | * bei **Kanälen mit Gedächtnis** hängt die Wahrscheinlichkeit des Ausgangszeichens nicht nur vom Eingangszeichen ab, sondern auch von den K vorangehenden Zeichen | ||
- | * diskreter gedächtnisloser Kanal = Discrete Memoryless Channel (DMC) | ||
- | * die **Kanalmatrix** enthält die Wahrscheinlichkeiten für die Ausgangszeichen | ||
- | * p(y<sub>j</sub>|x<sub>i</sub>) = Wahrscheinlichkeit, dass y<sub>j</sub> empfangen wird, wenn x<sub>i</sub> gesendet wurde | ||
- | * die Zeilensummen müssen 1 ergeben: 1 = p(y<sub>1</sub>|x<sub>i</sub>) + p(y<sub>2</sub>|x<sub>i</sub>) + ... + p(y<sub>j</sub>|x<sub>i</sub>) | ||
- | * p(x<sub>j</sub>|y<sub>i</sub>) heißt A-posteriori-Wahrscheinlichkeit, p(x<sub>j</sub>) heißt A-priori-Wahrscheinlichkeit | ||
- | * der **Detektor** schließt aus dem empfangenen Zeichen y<sub>i</sub> auf das gesendete Zeichen x<sub>j</sub> | ||
- | * Maximierung der A-posteriori-Wahrscheinlichkeit (Maximum-A-Posteriori-Probability-Detektion: **MAP-Detektion**) p(y<sub>i</sub>|x<sub>j</sub>) * p(x<sub>j</sub>) | ||
- | * wenn die Quellenstatistik nicht bekannt ist, fällt p(x<sub>j</sub>) weg bzw. ist für alle Eingangszeichen gleich. Dann wird lediglich das Maximum von p(y<sub>i</sub>|x<sub>j</sub>) gesucht -> **Maximum-Likelihood-Detektor** | ||
- | * Entropien im Kanal | ||
- | * {{:se:entropienimkanal.jpg|}} | ||
- | * die **Verbundentropie** des Kanals gibt den mittleren Informationsgehalt eines Ein-/Ausgangszeichenpaares an | ||
- | * die bedingte Entropie H(x|y) heißt **Rückschlussentropie** oder **Äquivokation** und gibt den zusätzlichen Informationsgehalt eines Eingangszeichens an, wenn man das Ausgangszeichen kennt | ||
- | * die bedingte Entropie H(y|x) heißt **Streuentropie** oder **Irrelevanz** und gibt den zusätzlichen Informationsgehalt eines Ausgangszeichens an, wenn man das Eingangszeichen bereits kennt | ||
- | * H(x,y) = H(x|y) + H(y) = H(y|x) + H(x) | ||
- | * die **Transinformation I(x;y)** ist ein Maß für die mittlere in einem Ausgangszeichen enthaltene relevante Information (mittlerer Informationsgehalt abzüglich Irrelevanz) | ||
- | * I(x;y) = H(y) - H(y|x) | ||
- | * {{:se:transinformation.jpg|}} | ||
- | * Sonderfälle der DMC | ||
- | * **rauschfreier Kanal**: Kanalmatrix hat in jeder Zeile nur einen Wert != 0 | ||
- | * **verlustfreier Kanal**: Kanalmatrix hat in jeder Spalte nur einen Wert != 0 | ||
- | * **total gestörter Kanal**: Ein- und Ausgangszeichen sind statistisch unabhängig voneinander | ||
- | * **symmetrischer Kanal**: für die Elemente der Kanalmatrix gilt p(y<sub>i</sub>|x<sub>j</sub>) = 1 - p (Fehlerwahrscheinlichkeit des Kanals) wenn i = j, sonst = p / (q - 1) | ||
- | * Sonderfall: Binary Symmetric Channel (BSC) und Binary Symmetric Erasure Channel (BSEC) | ||
- | * die **Kanalkapazität** ist das Maximum der Transinformation für einen gegebenen Kanal | ||
- | * {{:se:kanalkapazitaet.jpg|}} | ||
- | * bei symmetrischen Kanälen führen gleiche Wahrscheinlichkeiten der Eingangszeichen zur maximalen Transinformation und damit zur Kanalkapazität | ||
- | |||
- | ===== Quellencodierung ===== | ||
- | * durch Codierung kann die Redundanz von Quellsymbolen verringert (Datenkompression) oder erhöht (Fehlerkorrektur) werden | ||
- | * 2 Arten | ||
- | * verlustlose Codierung -> Reduzierung der Redundanz | ||
- | * verlustbehaftete Codierung -> Reduzierung der Irrelevanz | ||
- | * ein Quellencodierer erzeugt aus Quellzeichen Codeworte | ||
- | * die Gesamtheit der Codeworte heißt **Code** | ||
- | * Codes mit gleicher Wortlänge für jedes Codewort heißen Blockcodes | ||
- | * Klassen von Codes | ||
- | * nichtsinguläre Codes: eineindeutige (injektive) Abbildung zwischen Quellzeichen und Codewort (evtl. sind Trennzeichen zwischen den Codeworten nötig) | ||
- | * eindeutig decodierbare Codes: jede Folge von Codewörtern kann eindeutig auf eine Folge von Quellzeichen abgebildet werden (evtl. müssen alle Codewörter gelesen werden, um das erste Quellzeichen decodieren zu können) | ||
- | * unmittelbar decodierbare Codes, präfixfreie oder Präfixcodes: die Decodierung ist stets unmittelbar möglich, da kein längeres Codewort Anfangszeichen enthält, die einem kürzeren Codewort entsprechen) | ||
- | * {{:se:codeklassen.jpg|}} | ||
- | * {{:se:codebaeume.jpg|}} | ||
- | * Codeeffizienz: H(x) / L (mit L = mittlere Wortlänge * ld q) oder H(y) / H<sub>max</sub>(y) | ||
- | * ein eindeutiger Code mit der Effizienz 1 heißt **idealer Code** | ||
- | * ein **optimaler Code** (bezogen auf eine gegebene Quelle mit H(x)) liegt vor, wenn es keinen anderen eindeutig decodierbaren Code mit kleinerer mittlerer Wortlänge L gibt. Ein idealer Code ist optimal | ||
- | * die Codewortlängen eines jedes eindeutig decodierbaren Codes müssen die Kraft-McMillan-Ungleichung erfüllen | ||
- | * {{:se:kraftmcmillanungleichung.jpg|}} | ||
- | * Huffman-Codes | ||
- | * einfaches Verfahren zur Erzeugung von optimalen Präfixcodes (mit minimaler mittlerer Codewortlänge) | ||
- | * **Entropie-Codierung**: Quellzeichen mit geringer Wahrscheinlichkeit bekommen längere Codeworte zugewiesen | ||
- | * Nachteile | ||
- | * Übertragungsfehler wirken sich durch Fehlerfortpflanzung stark aus | ||
- | * codierter Datenstrom ist nicht mehr synchron zum Quelldatenstrom | ||
- | * Einsortieren der zusammengefassten Zeichen an jeweils höchster Stelle führt zu minimaler Varianz | ||
- | * Fundamentalsatz der Quellencodierung oder Shannons 1. Satz: Für jede stationäre gedächtnislose Quelle gibt es einen Code, dessen Effizienz beliebig nahe bei 1 liegt. | ||
- | * **arithmetische Codierung**: Codierung der gesamten Nachricht aus Quellzeichen mit bekannten Auftrittswahrscheinlichkeiten als reelle Zahl | ||
- | * **zustandsabhängige Codierung**: anwendbar bei gedächtnisbehafteten Quellen, bei denen die Auftrittswahrscheinlichkeiten der Quellzeichen abhängig vom aktuellen Zustand sind | ||
- | * abhängig vom aktuellen Zustand wird eine für diesen Zustand optimale Codetabelle verwendet -> Codeumschaltung | ||
- | * **Lauflängencodierung**: hier werden mehrfach hintereinander auftretende Quellzeichen in der Form {Zeichen, Anzahl} codiert | ||
- | * Ausnutzung der Korrelation aufeinanderfolgender Zeichen | ||
- | * Kompressionsverfahren mit adaptiven Wörterbüchern | ||
- | * LZ77: Sliding Window | ||
- | * {{:se:slidingwindow.jpg|}} | ||
- | * LZ78: Aufbau eines expliziten adaptiven Wörterbuches (Erweiterung des LZ77, bei dem Zeichenfolgen außerhalb des Search Buffer nicht erkannt werden) | ||
- | * {{:se:lz78.jpg|}} | ||
- | * Problem ist das Finden der optimalen Wörterbuchgröße | ||
- | * LZW: wie LZ78 nur mit Startwörterbuch, das alle Einzelzeichen des Quellalphabets enthält | ||
- | * {{:se:lz78.jpg|}} |