[ungesichtete Version][gesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
Hypercubie (Diskussion | Beiträge)
Hinzufügen des Abschnitts "Geschichte". Dieser Artikel bildet die Übersichtsseite zur Kanalkodierung, daher gehört meiner Meinung nach dieser Abschnitt auf jeden Fall dazu. Ich habe die wichtigsten Meilensteine und Entwicklungen erläutert, die beteiligten Personen, deren Erfindungen und Anwendungen verlinkt. Quellen sind in Form von Einzelnachweisen angegeben.
 
(22 dazwischenliegende Versionen von 15 Benutzern werden nicht angezeigt)
Zeile 1:
Als '''Kanalkodierung''' (auch '''Kanalcodierung''') bezeichnet man in der [[Nachrichtentechnik]] das Verfahren, [[digitale Daten]] bei der [[Datenübertragung|Übertragung]] über gestörte [[Kanal (Informationstheorie)|Kanäle]] durch Hinzufügen von [[Redundanz (Informationstheorie)|Redundanz]] gegen Übertragungsfehler zu schützen.
 
Die mathematischen Grundlagen für die Kanalkodierung stellt die [[Kodierungstheorie]] bereit.
 
Zu unterscheiden ist die Kanalkodierung von der [[Quellenkodierung]], welche Redundanz ''vermindert'', und von der [[Leitungscode|Leitungskodierung]], welche eine [[Frequenzspektrum|spektrale]] Anpassung an die Anforderungen des Übertragungskanals[[Übertragungskanal]]s vornimmt.
 
== Verfahren ==
[[BildDatei:Fehlerkorrektur1.png|thumbmini|Übertragung mit Quellen-, Kanal- und Leitungskodierung]]
Die Kanalkodierung fügt den Daten am Eingang eines [[Kanal (Informationstheorie)|Übertragungskanals]] Redundanz hinzu und dekodiert die Daten an seinem Ausgang. Wenn die Zusatzinformationen lediglich auf einen Fehler hindeuten und eine Neuübertragung der Daten erfordern, spricht man von ''Rückwärtsfehlerkorrektur''. Genügt die Redundanzinformation, den Fehler zu korrigieren, so handelt es sich um eine ''[[Vorwärtsfehlerkorrektur]]''. Eine effiziente Kanalkodierung erhöht das [[Signal-Rausch-Verhältnis]] bei unveränderter [[Bitfehlerhäufigkeit]]. Je nach Kanalkodierungsverfahren beträgt der [[Codegewinn]] mehrere  [[Dezibel|dB]].
 
Eine wesentliche Eigenschaft eines Kanalkodes ist seine (Kode-) [[RateKoderate|Coderate]] :

:<math>R=k/n</math>,

wobei
* <math>k</math> die Anzahl der Symbole am Eingang des Kodierers (Informationssymbole) ist und
* <math>n</math> die Anzahl der Symbole am Ausgang des Kodierers (Codesymbole).
Es werden also <math>k</math> Informationssymbole auf <math>n</math> Codesymbole abgebildet. Eine kleine Rate (großes <math>n</math>) bedeutet einen höheren Anteil der Codesymbole an den übertragenden Symbolen, also eine kleinere [[Datenübertragungsrate]].
Üblicherweise kann ein Kanalcode mit einer niedrigeren [[Koderate]] mehr Fehler korrigieren als ein vergleichbarer Kanalkode mit einer hohen Koderate – es ist also ein Abtausch zwischen Datenübertragungsrate und Fehlerkorrekturfähigkeit möglich.
 
=== Codeverkettung ===
Durch geschicktes Verketten von Codes (z. &nbsp;B. bei [[Turbo-CodesCode]]s) kann die Korrekturfähigkeit des so entstandenen verketteten Codes sehr viel höher sein als die der einzelnen Codes (Komponentencodes).
 
=== Punktierung ===
Unter [[Faltungscode #Punktierung|Punktierung]] versteht man das gezielte Streichen einzelner Codesymbole, so dass die Anzahl der übertragenden Codesymbole von <math>n</math> auf <math>n'</math> reduziert wird. Damit ergibt sich für den punktierten Code eine höhere Rate <math>R' = k/n'>k/n = R</math>.
Punktierung ermöglicht die Nutzung desselben Codierer/Decodierer-Paares für Codes unterschiedlicher Raten.
 
Zeile 22 ⟶ 29:
 
=== Shannons Pionierarbeit 1948 ===
Die Veröffentlichung von [[Claude Shannon|Claude E. Shannons]] Pionierarbeit zur [[Informationstheorie]] "''A mathematical Theory of Communication"'' stellt gleichzeitig die Geburtsstunde der Kanalkodierung 1948 dar. Zwar gab es vorher schon Bemühungen, Nachrichten gegen Fehlübertragung zu schützen, diese gingen jedoch nicht über eine einfache Mehrfachübertragung ([[Wiederholungscode]]) hinaus, was sich als ein Kanalcode ohne Codegewinn entpuppte. Shannon zeigte, dass jeder Übertragungskanal durch eine [[Kanalkapazität]] beschrieben werden kann, die die [[Informationsrate]], die zuverlässig über einem Kanal erreicht werden kann, nach oben begrenzt. ''Zuverlässig'' heißt in diesem Zusammenhang, dass die Symbolfehlerrate nicht über einem festgelegten Grenzwert liegt. Er zeigte außerdem, dass Kanalcodes existieren, die beliebig nahe an diese Kapazität herankommen (Kanalkodierungstheorem). Der Existenzbeweis gibt jedoch weder eine praktische Konstruktion für Kanalcodes an, noch wie man diese effizient dekodiert. Tatsächlich sind die von Shannon beschriebenen Codes unendlich lang und haben einen zufälligen Charakter.<ref>{{Literatur |Autor=C. E. Shannon |Titel=A Mathematical Theory of Communication |Hrsg= |Sammelwerk=Bell System Technical Journal |Band=27 |Nummer=4 |Auflage= |Verlag= |Ort= |Datum=1948-10 |ISBN= |ISSN=0005-8580 |Seiten=623–656 |DOI=10.1002/j.1538-7305.1948.tb00917.x |Seiten=623–656}}</ref>
 
=== Erste praktische Konstruktionen in den 1950er-Jahren ===
Bereits kurz nach Shannons Veröffentlichung wurden die ersten praktischen Kanalcodes entwickelt. Als besonders wegweisend sind hier die Arbeiten von [[Marcel J. E. Golay]] ([[Golay-Code]], 1949)<ref>{{Literatur |Autor=Marcel Golay |Titel=Notes on Digital Coding |Hrsg= |Sammelwerk=Proceedings of the IRE |Band=37 |Nummer=6 |Auflage= |Verlag= |Ort= |Datum=1949-06 |ISBN= |ISSN=0096-8390 |Seiten=657–657 |DOI=10.1109/jrproc.1949.233620 |Seiten=657–657}}</ref> und [[Richard Hamming|Richard W. Hamming]] ([[Hamming-Code]], 1950). Hammings Arbeit wurde dabei von der Unzuverlässigkeit der damaligen Relais-Computer motiviert, in denen es häufig zu Bitfehlern kam. Der (7,4)-Hamming-Code kann mit nur 3 bit Redundanz einen beliebigen Bitfehler in 4 Nachrichtenbits korrigieren.<ref>{{Literatur |Autor=Hamming, R. W. (Richard Wesley), 1915-19981915–1998. |Titel=Coding and information theory |Hrsg= |Sammelwerk= |Band= |Nummer= |Auflage= |Verlag=Prentice-Hall |Ort=Englewood Cliffs, N.J. |Datum=1980 |ISBN=0-13-139139-9}}</ref>
 
[[Irving Stoy Reed|Irving S. Reed]] und [[David E. Muller]] entwickelten 1954 die heute als [[Reed-Muller-Code|Reed-Muller-Codes]]s bekannten Kanalcodes. Reed-Muller-Codes haben den Vorteil, dass sie auch für große Blocklängen <math>n</math> konstruiert werden können und dabei vergleichsweise viele Fehler korrigieren. Eine Unterklasse von Reed-Muller-Codes sind die [[Hadamard-Code]]<nowiki/>s, die als erste Kanalcodes für die Datenübertragung von Raumsonden ([[Mariner|Mariner-9]]) in die Geschichte eingingen.
 
=== 1960er-Jahre: Algebraische Codes ===
Einen Meilenstein stellen die [[Reed-Solomon-Code|Reed-Solomon-Codes]]s (nach [[Irving Stoy Reed|Irving S. Reed]] und [[Gustave Solomon]], 1960) und deren Untergruppe [[BCH-Code|BCH-Codes]]s (nach [[Raj Chandra Bose|R. C. Bose]], [[Dijen Kumar Ray-Chaudhuri|D. K. Ray-Chaudhuri]] und [[A. Hocquenghem]]) dar. Die Grundidee ist hier, Codesymbole aus eineneinem [[Endlicher Körper|endlichen Körper]] (anstatt Bits) zu verwenden, und Nachrichten als [[Polynom|Polynome]]e über diesem Körper zu betrachten, und Codeworte als Auswertung an der Polynome an <math>n</math> verschiedenen Stellen. Dabei gelingt es, die Codeworte maximal von einandervoneinander zu separieren ([[MDS-Code|Maximum Distance Separable Code, MDS-Code]]).<ref>{{Literatur |Autor=I. S. Reed, G. Solomon |Titel=Polynomial Codes Over Certain Finite Fields |Hrsg= |Sammelwerk=Journal of the Society for Industrial and Applied Mathematics |Band=8 |Nummer=2 |Auflage= |Verlag= |Ort= |Datum=1960-06 |ISBN= |ISSN=0368-4245 |Seiten=300–304 |DOI=10.1137/0108018 |Seiten=300–304}}</ref> Reed-Solomon -Codes haben daher ausgezeichnete Fehlerkorrektureigenschaften und werden seitdem in vielen Anwendungen, wie [[Compact Disc|CDs]], [[DVD|DVDs]]s, [[Digital Video Broadcasting|DVB]] und [[QR-Code|QR-Codes]]s, eingesetzt. Ein effizienter Dekodierverfahren ([[Berlekamp-Massey-Algorithmus]]) wurde von [[Elwyn Berlekamp|Elvyn Berlekamp]] und [[James Massey]] zwischen 1968 und 1969 entwickelt.<ref>{{Literatur |Autor=E. Berlekamp |Titel=Nonbinary BCH decoding |Hrsg= |Sammelwerk=IEEE Transactions on Information Theory |Band=14 |Nummer=2 |Auflage= |Verlag= |Ort= |Datum=1968-03 |ISBN= |ISSN=0018-9448 |Seiten=242–242 |DOI=10.1109/tit.1968.1054109 |Seiten=242–242}}</ref><ref>{{Literatur |Autor=J. Massey |Titel=Shift-register synthesis and BCH decoding |Hrsg= |Sammelwerk=IEEE Transactions on Information Theory |Band=15 |Nummer=1 |Auflage= |Verlag= |Ort= |Datum=1969-01 |ISBN= |ISSN=0018-9448 |Seiten=122–127 |DOI=10.1109/tit.1969.1054260 |Seiten=122–127}}</ref>
 
=== 1970er- und 1980er-Jahre: Faltungscodes und Codeverkettung ===
Mit den [[Faltungscode|Faltungscodes]]s beschrieb [[Peter Elias]] bereits 1955 die ersten datenstrombasierten Codes, also Kanalcodes ohne eine festgelegte Blocklänge. Diese fanden jedoch erst mit dem effizienten Dekodieralgorithmus von [[Andrew J. Viterbi|Andrew Viterbi]] ([[Viterbi-Algorithmus]], 1967) praktische Anwendung. Der Viterbi-Algorithmus erlaubte es erstmals, einfach eine sogenannte ''Soft-Input''-Dekodierung anzuwenden, bei der (statt hart-entschiedenen Bitwerten) Wahrscheinlichkeiten für jedes Symbol berücksichtigt werden. Somit fanden Faltungscodes besonders bei Funkanwendungen wie [[Global System for Mobile Communications|GSM]] und [[Wireless Local Area Network|WLAN]] ([[IEEE 802.11a|802.11a]]/[[802.11g|g]]) Verwendung, bei denen diese Information zur Verfügung steht.<ref>{{Literatur |Autor=3rd Generation Partnership Project |Titel="3GGP TS45.001: Technical Specification Group GSM/EDGE Radio Access Network; Physical layer on the radio path; General description" |Hrsg= |Band= |Nummer= |Auflage= |Ort= |Datum= |Seiten=}}</ref> Dennoch ist deren Fehlerkorrekturfähigkeit von der Länge des verwendeten Schieberegisters abhängig, die exponentiell in die Dekodierkomplexität eingeht.
 
Serielle Codeverkettung ([[David Forney|Dave Forney]], 1966) erwies sich als Schlüsseltechnologie, um immer bessere Codes mit beherrschbarem Dekodieraufwand zu entwerfen. Dabei wird eine Nachricht zunächst mit einem (äußeren) Kanalcode (meist einem algebraischer Code) und anschließend mit einem (inneren) Faltungscode kodiert. Diese Methode fand 1977 mit den [[Voyager-Programm|Voyager-Raumsonden]] eine prominente Anwendung und blieb das Zugpferd der Kanalkodierung bis zur Entwicklung der [[Turbo-Code|Turbo-Codes]]s.
 
=== Iterative Dekodierung seit den 1990ern ===
Alle bisher genannten Kanalcodes operierten noch weit weg (d.&nbsp;h. mehrere [[Dezibel]] im [[Signal-Rausch-Verhältnis]]) von der von Shannon aufgezeigten Kanalkapazität, und es verbreitete sich die Ansicht, dass diese nicht auf praktikable Weise erreicht werden kann. Daher war die Aufruhr groß, als die Anfang den 1990er von [[Claude Berrou]] erfundenen [[Turbo-Code|Turbo-Codes]]s (in der Veröffentlichung von 1993 sind Alain Glavieux und Punya Thitimajshima Mitautoren)<ref>{{Literatur |Autor=C. Berrou, A. Glavieux, P. Thitimajshima |Titel=Near Shannon limit error-correcting coding and decoding: Turbo-codes. 1 |Sammelwerk=Proceedings of ICC '93 - IEEE International Conference on Communications |Band=2 |Verlag=IEEE |Ort=Geneva, Switzerland |Datum=1993 |ISBN=978-0-7803-0950-0 |DOI=10.1109/ICC.1993.397441 |Seiten=1064–1070 |Online=httphttps://ieeexplore.ieee.org/document/397441/ |Abruf=2020-11-01 |DOI=10.1109/ICC.1993.397441}}</ref> plötzlich diese Lücke zur Kanalkapazität bis auf einige Zehntel dB schlossen. In Turbo-Codes werden zwei parallel verkettete Faltungscodes mit einem [[Pseudozufällige Funktion|pseudo-zufälligen]] [[Interleaving|Interleaver]] eingesetzt. Zum Dekodieren kommen zwei rückgekoppelte [[BCJR-Algorithmus|BCJR-Dekoder]] zum Einsatz -&nbsp;– ein Prinzip, das an den [[Turbolader]] eines [[Verbrennungsmotor|Verbrennungsmotors]]s erinnert. In mehreren Iterationen tauschen beide Dekoder Information aus, um schließlich zu einem Codewort zu konvergieren. Es werden vergleichsweise kurze [[Schieberegister]] für die Faltungscodes verwendet, da bei Turbo-Codes der Interleaver dafür sorgt, dass die Codewortbits über die gesamte Länge des Codes miteinander verschränkt werden. Somit ist der Dekodieraufwand nur linear mit der Codewortlänge, was sehr lange Codes (viele Kilobit pro Codewort) erstmals praktikabel machte und damit den von Shannon erdachten Codes bereits sehr Nahenahe kommt. Turbo-Codes fanden daraufhin Anwendung in den Mobilfunkstandards [[Universal Mobile Telecommunications System|UMTS]] und [[Long Term Evolution|LTE]].<ref>{{Literatur |Autor=3GPP |Titel=LTE; Evolved Universal Terrestrial Radio Access (E-UTRA); Multiplexing and channel coding (3GPP TS 36.212 version 10.0.0 Release 10) |Datum= |Online=https://www.etsi.org/deliver/etsi_ts/136200_136299/136212/10.00.00_60/ts_136212v100000p.pdf |Format=PDF |KBytes= |Abruf=2020-11-01}}</ref>
(3GPP TS 36.212 version 10.0.0 Release 10) |Sammelwerk= |Band= |Nummer= |Auflage= |Verlag= |Ort= |Datum= |ISBN= |Seiten= |Online=https://www.etsi.org/deliver/etsi_ts/136200_136299/136212/10.00.00_60/ts_136212v100000p.pdf |Abruf=2020-11-01}}</ref>
 
Ähnlich gute Leistungsfähigkeit wie Turbo-Codes wies [[David MacKay|David J.C. MacKay]] 1996 bei [[Low-Density-Parity-Check-Code|LDPC-Codes]] nach, die mit dem [[Belief Propagation|Belief-Propagation-Algorithmus]] ebenfalls iterativ dekodiert werden<ref>{{Literatur |Autor=D.J.C. MacKay, R.M. Neal |Titel=Near Shannon limit performance of low density parity check codes |Hrsg= |Sammelwerk=Electronics Letters |Band=33 |Nummer=6 |Auflage= |Verlag= |Ort= |Datum=1997 |ISBN= |ISSN=0013-5194 |Seiten=457 |DOI=10.1049/el:19970362 |Seiten=457}}</ref>. Diese wurden zwar schon Anfang der 1960er von [[Robert Gray Gallager|Robert Gallager]] erfunden<ref>{{Literatur |Autor=Robert G. Gallager |Titel=Low-Density Parity-Check Codes |Hrsg= |Sammelwerk= |Band= |Nummer= |Auflage= |Verlag=The MIT Press |Ort= |Datum=1963 |ISBN=978-0-262-25621-6 |Seiten=}}</ref>, sie gerieten jedoch in Vergessenheit, da die damalige Technologie noch keine praktische Implementierung erlaubte. In den folgenden Jahren wurde in Arbeiten von [[Thomas J. Richardson|Tom Richardson]] und [[Rüdiger Urbanke]] eine umfangreiche Theorie zur Konstruktion von LDPC-Codes entwickelt, sodass diese nun als quasi Quasi-Stand der Technik in der Kanalkodierung gelten. Sie werden unter anderem im [[5G|5G-Mobilfunkstandard]], neueren [[Wireless Local Area Network|WLAN]]-Standards ([[IEEE 802.11n|802.11n]] und [[IEEE 802.11ac|802.11ac]]) und [[DVBDigital Video Broadcasting|DVB-x2]]. In letzterem werden LDPC-Codes innere Codes mit [[BCH-Code|BCH-Codes]]s verkettet eingesetzt.
 
=== Polar Codes ===
Einen weiteren Fortschritt machte die Technik mit den 2008 von [[Erdal Arıkan]] eingeführten [[Polar-Code|Polar-Codes]]s. Er zeigte, dass Polar-Codes zusammen mit einem einfachen, rekursiven Dekodieralgorithmus, asymptotisch (also für eine Blocklänge, die gegen unendlich geht) die Kanalkapazität erreichen.<ref>{{Literatur |Autor=Erdal Arikan |Titel=Channel polarization: A method for constructing capacity-achieving codes |Hrsg= |Sammelwerk=2008 IEEE International Symposium on Information Theory |Band= |Nummer= |Auflage= |Verlag=IEEE |Ort= |Datum=2008-07 |ISBN=978-1-4244-2256-2 |DOI=10.1109/isit.2008.4595172 |Seiten=}}</ref> Damit sind Polar-Codes die ersten Codes, für die dies mathematisch nachgewiesen wurde, während die gute Leistungsfähigkeit von Turbo- und LDPC-Codes lediglich experimentell belegt ist. Für kurze Blocklängen sind Polar-Codes zwar anderen Schemen unterlegen, jedoch konnte durch Verkettung einer [[Zyklische Redundanzprüfung|CRC-Prüfsumme]] eine ähnlich gute Leistungsfähigkeit wie bei kurzen LDPC-Codes erzielt werden. Daher wurden CRC-Polar-Codes für die Steuerkanäle imin [[5G|5G-Mobilfunknetzen]] ausgewählt.<ref>{{Literatur |Autor=3GPP |Titel=5G NR, 3GPP TS 38.212 version 15.2.0 Release 15: Multiplexing and Channel Coding |Hrsg= |Band= |Nummer= |Auflage= |Verlag= |Ort= |Datum= |ISBN= |Seiten= |Online=https://www.etsi.org/deliver/etsi_ts/138200_138299/138212/15.02.00_60/ts_138212v150200p.pdf |Format=PDF |KBytes= |Abruf=2020-11-01}}</ref>
 
== KodierungenCodeklassen ==
Kennt man die Fehlerarten, die in einem Übertragungskanal auftreten, kann man verschiedene Codes konstruieren, die die häufigen Fehlerarten gut, weniger häufigere Fehlerarten weniger gut korrigieren können. Die folgendenebenstehende Abbildung zeigt eine Übersicht häufig verwendeter Codeklassen.
=== Quellencodes ===
[[Datei:Codeklassen.png|mini|400px|Übersicht häufig verwendeter Codeklassen]]Grundsätzlich lassen sich Kanalcodes in blockbasierte und zeichenstrombasierte Codes unterteilen.
{{Hauptartikel|Datenkompression}}
Beispiel für einen Quellencode: [[Huffman-Code]]
 
=== KanalcodesBlockbasierte Codes ===
[[Blockcode]]s zeichnen sich durch eine vordefinierte, konstante Codewortlänge <math>n</math> aus.
Kennt man die Fehlerarten, die in einem Übertragungskanal auftreten, kann man verschiedene Codes konstruieren, die die häufigen Fehlerarten gut, weniger häufigere Fehlerarten weniger gut korrigieren können. Die folgende Abbildung zeigt eine Übersicht häufig verwendeter Codeklassen.
[[Bild:Codeklassen.png|thumb|400px|Übersicht häufig verwendeter Codeklassen]]
 
==== Algebraische Codes ====
*[[Blockcode]]s
Algebraische Codes basieren auf algebraischen Konstruktionen. Sie werden entworfen, um ganz bestimmte Eigenschaften, beispielsweise eine große Minimaldistanz, zu erzielen. Daher lassen sich genaue Aussagen treffen, welche Fehlerarten und wie viele Fehler sie erkennen bzw. korrigieren können.
*[[Ungerboeck-Code]] (auch als [[Trellis-Code]]d-Modulation bezeichnet)
*[[Reed-Muller-Code]]
*[[Hamming-Code]] ([[Perfekter Code]])
*[[Reed-Solomon-Code]] (z.&nbsp;B. verwendet in bestimmten [[RAID]]-Systemen)
*[[Fire-Code]]
*[[BCH-Code]]
*[[Golay-Code]] (Perfekter Code)
*[[Low-Density-Parity-Check-Code]]
*[[Faltungscode]]s
**[[Turbo-Code]] wird eine zwei-, drei- oder allgemein mehrdimensionale Verkettung von unterschiedlichen Kanalcodes mit mehrfachen Wiederholungen (Rückkopplungen) genannt. Durch die mehrdimensionale Verschränkung von einfachen Basiskanalcodes, wie beispielsweise einem Hamming-Code, können meist bessere Gesamtergebnisse als bei klassischen Faltungscodes erzielt werden. Turbo-Codes zählen zu jenen Kanalcodes welche dem theoretischen Limit der [[Shannon-Grenze]] am nächsten kommen.
**[[Viterbi-Algorithmus|Viterbi-Code]]
 
* [[Paritätsbit]]
=== Leitungscodes ===
 
{{Hauptartikel|Leitungscode}}
* [[Hamming-Code]] ([[Perfekter Code]])
Beispiel für einen Leitungscode: [[Manchesterkodierung]]
* [[BCHGolay-Code]]
 
* [[Reed-Muller-Code]]
* [[Fire-Code]]
* [[Reed-Solomon-Code]] und [[BCH-Code]]
* [[Zyklische Redundanzprüfung]] (CRC-Code)
 
==== Codes für Iterative Dekodierung ====
Iterativ dekodierte Codes bezeichnet man auch als ''moderne'' Kanalcodes.<ref>{{Literatur |Autor=Tom Richardson, Ruediger Urbanke |Titel=Modern Coding Theory |Verlag=Cambridge University Press |Ort=Cambridge |Datum=2008 |ISBN=978-0-511-79133-8}}</ref> Im Gegensatz zu algebraischen Codes bestimmt hier der Dekodieralgorithmus den Code-Entwurf. Diese effizienten Algorithmen erlauben sehr lange Blocklängen, womit iterativ dekodierte Codes der Shannon-[[Kanalkapazität]] am nächsten kommen können. Sie zeichnen sich durch eine meist pseudo-zufällige Konstruktion aus. Die beiden wichtigsten Vertreter dieser Codeklasse sind:
* [[Low-Density-Parity-Check-Code]] (LDPC Code)
* [[Turbo-Code]]
** Turbo Convolutional Code (zwei terminierte Faltungscodes als Basiscodes)
** Turbo-Product-Code (beliebige algebraische Codes als Basiscodes)
 
==== Codes aus der Informationstheorie ====
Mit den 2008 eingeführten Polar-Codes wurden Blockcodes gefunden, die auf dem [[Informationstheorie|informationstheoretischen]] Prinzip der Kanal-Polarisierung basieren. Sie können keiner der beiden obigen Klassen zugeordnet werden, sind aber eng verwandt mit dem [[Reed-Muller-Code]].
 
* Polar-Code
 
=== Zeichenstrombasierte Codes ===
Im Gegensatz zu Blockcodes haben zeichenstrombasierte Codes keine festgelegte Blocklänge. Sie eignen sich daher für [[Streaming Media|Streaming]]-Dienste und für [[Weitverkehrsnetz]]e. Durch Terminierung können zeichenstrombasierte Codes in Blockcodes beliebiger Länge umgewandelt werden. Die wichtigsten Klassen zeichenstrombasierter Codes sind:
 
* [[Faltungscode]]s
* [[Ungerboeck-Code]] (auch als [[Trellis-Code]]d-Modulation bezeichnet)
* Staircase Codes<ref>{{Literatur |Autor=Benjamin P. Smith, Arash Farhood, Andrew Hunt, Frank R. Kschischang, John Lodge |Titel=Staircase Codes: FEC for 100 Gb/s OTN |Sammelwerk=Journal of Lightwave Technology |Band=30 |Nummer=1 |Datum=2012-01 |ISSN=0733-8724 |Seiten=110–117 |Online=https://ieeexplore.ieee.org/document/6074908/ |Abruf=2020-11-02 |DOI=10.1109/JLT.2011.2175479}}</ref>
* Räumlich verkettete LDPC-Codes (Spatially-Coupled LDPC-Codes, auch LDPC-Faltungscodes genannt)
 
== Beispiele ==
Zeile 78 ⟶ 98:
:Hinzufügen von [[Paritätsbit]]s zu einem Datenwort.
* Beispiel Rückwärts-/Vorwärtsfehlerkorrektur
:[[Internationale Standardbuchnummer|ISBN]]-Code: Bei fehlender Übereinstimmung mit der [[Prüfziffer]] kommen nur wenige ISBN<nowiki>ISBN< /nowiki>-Codes als korrekte Werte in Frage.
* Beispiel Vorwärtsfehlerkorrektur
:Angabe von [[Postleitzahl]] und Ort: eine falsch geschriebene Ortsangabe kann anhand der Postleitzahl korrigiert werden. Ebenso werden [[Zahlendreher]] in der Postleitzahl durch den Abgleich mit dem Ortsnamen erkannt.
Zeile 94 ⟶ 114:
 
== Literatur ==
* {{Literatur
|Autor = John G. Proakis, Masoud Salehi
|Titel = Communication Systems Engineering
|Auflage=2.
|Auflage = 2. | Verlag = Prentice Hall | Jahr = 2002 | ISBN = 0-13-095007-6 }}
|Verlag=Prentice Hall
|Datum=2002
|ISBN=0-13-095007-6}}
 
== Einzelnachweise ==
<references />
 
[[Kategorie:Übertragungstechnik]]