* {{:se:mse.jpg|}}
* das Signal-Verzerrungs-Verhältnis (SNR = Signal to Noise Ratio) setzt den Erwartungswert der quadratischen Eingangszeichen zu dem der Verzerrung ins Verhältnis
* Antialiasing sorgt für eine Abschwächung des Alias-Effekts (zu hohe Frequenzen werden als niedrig abgetastet) * {{:se:aliaseffekt.jpg|}} * ein Tiefpassfilter schwächt zu hohe Frequenzen ab, sodass das Endsignal nur Frequenzen innerhalb eines bestimmten Bandes aufweist * Beispiel Telefonie: alle Frequenzen über 3,4kHz werden "abgeschnitten"
* im Anschluss an die Abtastung müssen die ermittelten Werte quantisiert werden
* die Quantisierung bildet die kontinuierlichen oder fein quantisierten Ausgangswerte nicht umkehrbar auf diskrete Repräsentanten ab (Quantisierungsniveaus) * {{:se:quantisierung.jpg|}} * der Quantisierungsfehler kann als mit den Ausgangswerten unkorrelierte Zufallsvariable angesehen werden * die Quantisierungsintervalle können theoretisch beliebig und unterschiedlich groß sein, es bietet sich jedoch an, gleich große Intervalle zu bilden * {{:se:gleichmaessigequantisierung.jpg|}} * die Zahl der Quantisierungsniveaus ist in der Praxis immer endlich (2<sup>w</sup> mit w als Binärwortlänge für die codierten Stufen) * {{:se:quantisierungskennlinien.jpg|}} * {{:se:snrgleichmaessigerquantisierer.jpg|}} * bei Sprache ist die Verteilung der Frequenzen recht ungleich: viele kleine Signalwerte, wenig große. Daher muss die Quantisiereraussteuerung gering bleiben, was zu geringerem SNR führt * Gegenmaßnahmen: **ungleichmäßige Quantisierung** (unterschiedliche Quantisierungsstufenhöhen) oder **adaptive Quantisierung** (Anpassung des Quantisierers an momentane Größe der Eingangswerte)
* Plotkin-Schranke * {{:se:plotkinschranke.jpg|}} * Codes, die dies mit Gleichheit erfüllen, heißen äquidistante Codes (alle Worte haben paarweise gleiche Abstände) * Gilbert-Varshamov-Schranke * {{:se:gilbertvarshamovschranke.jpg|}} * bei Erfüllung dieser Schranke kann auf die Existenz eines solchen Codes geschlossen werden (ohne jedoch eine Konstruktionsvorschrift anzugeben)
* arithmetische Beschreibung linearer Blockcodes
* ein Vertauschen der Spalten der Generatormatrix erzeugt einen äquivalenten Code mit den gleichen Parametern (aber anderen Codewörtern) * ein Vertauschen der Zeilen oder das Ersetzen einer Zeile durch ihre Summe mit einer anderen Zeile ändert nicht den Code, sondern nur die Zuordnung von Codewörtern zu Infowörtern
* systematische Codes sind solche, bei denen die Infobits in allen Codeworten an der gleichen Stelle stehen (ergänzt um die Schutzbits), sie lassen sich also ohne Berechnung aus dem Codewort ablesen
* die Syndrome bei zyklischen Blockcodes entspechen s(x) = r(x) mod g(x) * ein Fehler ist aufgetreten, wenn der Rest dieser Division nicht 0 ist * ein zyklischer Code ist durch die Angabe seines Generatorpolynoms und der Codewortlänge vollständig definiert * ein zyklischer Code entsteht, wenn zu einem gegebenen Generatorpolynom eine Codewortlänge gewählt wird, die der Zykluslänge entspricht * größere Zykluslängen führen zu einer höheren Coderate * wenn die Zykluslänge eines Polynoms den maximalen Wert 2<sup>k</sup> - 1 annimmt, handelt es sich um ein **primitives Polynom** (es ist dann auch irreduzibel)
* (Bündel-)Fehlererkennung durch zyklische Blockcodes
* BCH-Codes (Bose-Chaudhuri-Hocquenghem) erlauben die Korrektur von zufällig verteilten Fehlern * RS-Codes (Reed-Solomon) bilden eine Klasse von nichtbinären BCH-Codes * gehören zu den besten bekannten Bündelfehler-korrigierenden Codes (z.B. Audio-CD)
* der Entwurf erfolgt nicht algebraisch, sondern durch rechnergestützte Suche * Unterscheidung in rekursiv/nicht-rekursiv und systematisch/nicht-systematisch * häufig: Nonrecursive nonsystematic Convolution (NSC)
* {{:se:schaltbildfaltungscodiererallgemein.jpg|}}
* Darstellungsformen
* Zustandsdiagramme * {{:se:zustandsdiagrammfaltungscodierer.jpg|}} * Trellisdiagramme: Zustanddiagramme, in denen die neuen Zustände immer nach rechts weiter abgetragen werden * {{:se:trellisdiagramm.jpg|}} * erst nach 2 Schritten können alle Zustände erreicht werden (eingeschwungener Zustand)
* Decodierung
- Zweigdistanz/Zweigmetrik für jeden Zweig ermitteln (unterschiedliche Bits zur Eingangsfolge bei Hard-Decision, euklidische Distanz bei Soft-Decision) - die Zweigdistanz wird zur Survivormetrik des Ursprungsknotens des Zweiges addiert -> neue Summenzweigmetrik/Summenmetrik - die neue Survivormetrik des Zielknotens ergibt sich als Minimum aller Summenzweigmetriken der in den Knoten mündenden Zweige. Diese Survivormetriken werden für alle Knoten berechnet. - die Survivorpfade ergeben sich durch Rückverfolgen (Backtracing) des Pfades, der den Zweig mit der minimalen Summenzweigmetrik enthält * {{:se:viterbi1.jpg|}} * {{:se:viterbi2.jpg|}} * {{:se:viterbi3.jpg|}}
* analog zur Hammingdistanz kann man bei Faltungscodes eine Minimaldistanz dfree (freie Distanz) als kleinstes Gewicht der Pfade vom Nullzustand in den Nullzustand (ohne reinen Nullpfad)
* H(x|s) ≤ H(x)
* Verbundentropie: mittlerer Informationsgehalt von Ausgangsfolgen einer Quelle
* für kleine Bitfehlerwahrscheinlichkeiten resultiert ein Wortfehler meist aus der Verfälschung zu einem Codewort mit der zum korrekten Codewort minimalen Hammingdistanz
* Modifikationen (Expandieren, Punktieren, Verlängern, Verkürzen) führen systematische Codes wieder in systematische Codes über
* äquivalent: Codes mit gleichen Parametern m, n, d<sub>min</sub> und w * Code und Leistungsfähigkeit können abweichen, aber Distanzeigenschaften bleiben gleich * Erzeugen durch Vertauschen von Spalten in der Generatormatrix * systematisch: alle Eingangsbits stehen in allen Codeworten an der gleichen Stelle * klar-systematisch: die Eingangsbits stehen der Reihe nach am Anfang der Codeworte * Hamming-Codes: Coderate geht mit wachsender Blocklänge gegen 1 * Erzeugung: alle Permutationen von m - n Schutzbits als Spalten einer Prüfmatrix eintragen * Hamming-Schranke mit Gleichheit erfüllt * sind perfekt * äquidistant: Codeworte haben paarweise jeweils gleiche Abstände d<sub>min</sub>, Plotkin-Schranke mit Gleichheit erfüllt * identisch: Codes bestehen aus denselben Codeworten (nicht unbedingt in derselben Zuordnung zu Eingangsworten) * zyklisch: Codeworte gehen durch Verschiebung ineinander über
* Quelle
* symmetrisch: Anzahl Eingänge = Anzahl Ausgänge, Fehlerwahrscheinlichkeit p * verlustfrei/ungestört: nur ein von 0 verschiedener Eintrag je Spalte in der Kanalmatrix, aus Ausgangszeichen kann sicher auf das Eingangszeichen geschlossen werden * rauschfrei: Kanalmatrix ist quadratische Einheitmatrix, in jeder Zeile nur ein von 0 verschiedener Eintrag, 1 Eingangszeichen -> 1 Ausgangszeichen * total gestört: Ein- und Ausgangszeichen sind statistisch unabhängig, Transinformation = 0
* zyklische Blockcodes
* Zykluslänge z = kleinstes i, für das gilt: x<sup>i</sup> + 1 mod g(x) = 0 * Fehlererkennung: Einzel-, Doppel- und Bündelfehler bis zum Grad von g(x) sicher, darüber hinaus mit hoher Wahrscheinlichkeit * Fehlerkorrektur * primitives g(x): d<sub>min</sub> = 3 -> e<sub>kor</sub> = 1 * g(x) = g<sub>prim</sub>(x) * (x + 1): d<sub>min</sub> = 4 -> e<sub>kor</sub> = 1 * g(x) = g<sub>1</sub>(x) * (x<sup>k<sub>2</sub></sup> + 1) (Fire-Codes): d<sub>min</sub> = 4, sie können aber Bündelfehler korrigieren: t<sub>max</sub> ≤ k<sub>1</sub>, t<sub>max</sub> < k<sub>2</sub> / 2 + 1
* Huffman Code * Arithmetische Codierung * Lempel Ziv
* Kanalkapazität berechnen