Low-Density-Parity-Check-Code

aus Wikipedia, der freien Enzyklopädie

Low-Density-Parity-Check-Codes, auch als LDPC oder Gallager-Codes bezeichnet, sind lineare Blockcodes zur Fehlerkorrektur. Sie wurden 1962 von Robert Gray Gallager im Rahmen seiner Dissertation am MIT entwickelt[1][2].

Low-Density-Parity-Check-Codes beschreiben mit Hilfe einer Matrix viele zusammenhängende Paritätsprüfungen. Es wird dabei das Prinzip einer Kontrollmatrix angewandt: Fehler beim Parsen (Konvertierungsfehler. Der Server („https://wikimedia.org/api/rest_“) hat berichtet: „Cannot get mml. Server problem.“): {\displaystyle H\cdot b^{T}=0} , wobei Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle H} die Kontrollmatrix (parity-check matrix) und Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle b} die Folge der empfangenen Codesymbole (repräsentiert als Zeilenvektor) darstellt. H ist nur dünn besetzt (daher die Bezeichnung low-density).

Nachdem sie lange vergessen waren, erlebten sie eine Renaissance, als Rüdiger Urbanke und Thomas J. Richardson 2001 zeigten, dass sie nahe der Shannon-Grenze operieren konnten und als irreguläre LDPC effizient implementiert werden konnten. Zu den irregulären LDPC gehören die Tornado Codes für Erasure Coding (Michael Luby, Michael Mitzenmacher, Daniel A. Spielman, Amin Shokrollahi 2001).

Notation

Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle (n,l,R)\;\text{LDPC}}

  • Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle n} = Codewortlänge
  • Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle k} = Anzahl der Paritätsbits
  • Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle l} = Anzahl an Informationsstellen
  • Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle R} = Coderate

Begriffsdefinition

  • Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle a^*} oder Quellcodewort (Infowort)
  • Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle a_k} redundanter Teil des Kanalcodewortes
  • Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle a} Kanalcodewort
  • Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle b} Empfangsfolge
  • Kontrollmatrix

Reguläre und nicht reguläre Codes

Wichtige Kennzeichen des LDPC-Codes sind die Anzahl der 1-Bits pro Zeile (Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle w_r} ) sowie die 1-Bits pro Spalte (Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle w_c} ) in der Kontrollmatrix Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle H} . Für diese Kennzeichen gilt:

Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle w_r \ll n } sowie Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle w_c \ll k }

Ist Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle w_r} konstant für alle Zeilen und konstant für alle Spalten von Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle H} , so wird dieser Code regulär genannt.

Für einen regulären LDPC-Code gilt Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle w_r = w_c \cdot (l+k)/k } .

Variiert die Anzahl der Einsen, handelt es sich um einen irregulären Code. Typischerweise sind irreguläre LDPC-Code leistungsfähiger als reguläre.

Codierung

Es gilt eine zu sendende Folge Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle a} zu finden, die der Gleichung Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle H\cdot a^T = 0 } genügt.

Eine mögliche Form der Codierung funktioniert folgendermaßen: Das Kanalcodewort Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle a} ist zusammengesetzt aus den zu sendenden Daten Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle a_l} (welche bekannt sind) und dem redundanten Teil Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle a_k} . Da oben genannte Formel erfüllen muss, muss Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle a_k} entsprechend berechnet werden:

  • Sei Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle a=[a_k,a_l] } und Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle H=[H_k,H_l]}
  • Es soll gelten: Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle [H_k,H_l]*[a_k,a_l]^T=0}
  • Dies kann umgeformt werden: Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle [H_k][a_k] = [H_l][a_l]}
  • Daraus ergibt sich Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle a_k^T=H_k^{-1}\cdot H_l\cdot a_l}

In Worten ausgedrückt muss dabei der invertierte quadratische – der erste – Teil Hk der Kontrollmatrix mit dem verbleibenden Rest Hl der Kontrollmatrix und den zu sendenden Daten al multipliziert werden.

Decodierung

Hierbei gilt es ebenso, das Problem zu lösen. Hierzu werden häufig iterative Graph-basierte Algorithmen gewählt. Nach der Übertragung des Kanalcodewortes Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle a} über einen Übertragungskanal, z. B. einen AWGN-Kanal (additives weißes gaußsches Rauschen), wird in der Regel das Wort Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle b_M} , bestehend aus reellen Werten, empfangen. Aus diesen wird, im Regelfall mit Hilfe eines iterativen Verfahrens, eine Näherungslösung berechnet. Durch die Gleichungsmatrix H werden N Gleichungen vorgegeben; jede dieser Gleichungen erlaubt es, unabhängige Informationen zu den enthaltenen Elementen zu berechnen. Nun werden diese Informationen in den anderen Gleichungsberechnungen wiederverwendet. Zu beachten ist dabei, dass die Informationen, die mit einer Gleichung berechnet wurden, in der nächsten Iteration vor der erneuten Berechnung entfernt werden müssen.

Konstruktion von LDPC-Codes

LDPC-Codes werden durch ihre Kontrollmatrix H beschrieben. Einen LDPC-Code zu entwickeln heißt also, eine geeignete Kontrollmatrix zu finden oder zu konstruieren. Die zum Erstellen von Codewörtern benötigte Generatormatrix G kann mit Hilfe des Gauß-Jordan Verfahrens aus H hergeleitet werden. Zur Generierung von Kontrollmatrizen eignen sich u. a. die folgenden Verfahren, welche teilweise darauf basieren, die Kontrollmatrix als Tanner-Graph[3] zu versinnbildlichen und diesen unter Zuhilfenahme verschiedener Algorithmen zu bearbeiten:

Um die Anzahl der in der Matrix vorkommenden Einsen verhältnismäßig gering zu halten, können auch noch sogenannte „Row Splitting“- und „Column Splitting“-Algorithmen eingesetzt werden.[7]

Praktischer Einsatz von LDPC-Codes

LDPC-Codes werden in unterschiedlichen Gebieten der Technik angewendet. In der Regel werden sie verkettet eingesetzt. So dienen LDPC-Codes beispielsweise zur fehlerkorrigierenden Datenübertragung von digitalen Fernsehsignalen nach DVB-S2 und bei Digital Terrestrial Multimedia Broadcast (DTMB). Neben neueren WLAN-Standards wie dem IEEE 802.11n[8] („n-WLAN“ oder „n-Draft WLAN“) implementiert auch der WLAN-ähnliche Standard 802.16e[9] (Wimax) LDPC-Codes. Weitere Standards sind GMR-1, IEEE 802.3an, IEEE 802.22, CMMB, sowie WiMedia 1.5.[10]

Literatur

  • Robert G. Gallager: Low-Density Parity-Check Codes. M.I.T. Press Classic Series, Cambridge MA, 1963 (M.I.T. Press research monographs 21, ZDB-ID 597839-7), (andere Fassung; PDF; 655 kB).
  • David J. C. MacKay: Information theory, inference and learning algorithms. Cambridge University Press, Cambridge u. a. 2003, ISBN 0-521-64298-1 (auch online verfügbar).
  • Todd K. Moon: Error Correction Coding. Mathematical Methods and Algorithms. Wiley-Interscience, Hoboken NJ, 2005, ISBN 0-471-64800-0.
  • Amin Shokrollahi: LDPC Codes: An Introduction. In: Keqin Feng u. a. (Hrsg.): Coding, cryptography and combinatorics. Birkhäuser, Basel u. a. 2004, ISBN 3-7643-2429-5, S. 85–112 (Progress in computer science and applied logic 23), (PDF).

Einzelnachweise

  1. Robert G. Gallager: Low-Density Parity-Check Codes. (Memento vom 16. März 2007 im Internet Archive) (PDF; 1,1 MB) in IRE Transactions on Information Theory, Seiten 21 bis 28, 1962
  2. Robert G. Gallager: Low-Density Parity-Check Codes. – 1963
  3. Jian Sun: An Introduction to Low Density Parity Check (LDPC) Codes (Memento vom 13. Januar 2012 im Internet Archive)
  4. Alex Balatsoukas-Stimming: The Progressive Edge Growth Algorithm (Memento des Originals vom 30. Oktober 2012 im Internet Archive)  Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/www.telecom.tuc.gr (PDF; 261 kB)
  5. David MacKay: C – Implementierung des PEG Algorithmus für LDPC Codes
  6. Design and Implementation of LDPC Codes (PDF; 255 kB)
  7. a b Design of LDPC Codes (PDF; 563 kB)
  8. IEEE: IEEE Standard 802.11n (Memento des Originals vom 3. Februar 2013 im Internet Archive)  Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/standards.ieee.org
  9. IEEE: IEEE Standard 802.16e
  10. Liste standardisierter LDPC-Codes mit Eigenschaften und Erklärungen