DE60313832T2 - Verfahren und System für die Generierung von Low Density Parity Check (LDPC) Codes - Google Patents

Verfahren und System für die Generierung von Low Density Parity Check (LDPC) Codes Download PDF

Info

Publication number
DE60313832T2
DE60313832T2 DE60313832T DE60313832T DE60313832T2 DE 60313832 T2 DE60313832 T2 DE 60313832T2 DE 60313832 T DE60313832 T DE 60313832T DE 60313832 T DE60313832 T DE 60313832T DE 60313832 T2 DE60313832 T2 DE 60313832T2
Authority
DE
Germany
Prior art keywords
nodes
bit
ldpc
check
group
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60313832T
Other languages
English (en)
Other versions
DE60313832D1 (de
Inventor
Mustafa Germantown EROZ
Feng-Wen Germantown SUN
Lin-Nan Potomac LEE
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
DTVG Licensing Inc
Original Assignee
DirecTV Group Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US10/353,230 external-priority patent/US20040019845A1/en
Application filed by DirecTV Group Inc filed Critical DirecTV Group Inc
Publication of DE60313832D1 publication Critical patent/DE60313832D1/de
Application granted granted Critical
Publication of DE60313832T2 publication Critical patent/DE60313832T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L27/00Modulated-carrier systems
    • H04L27/32Carrier systems characterised by combinations of two or more of the types covered by groups H04L27/02, H04L27/10, H04L27/18 or H04L27/26
    • H04L27/34Amplitude- and phase-modulated carrier systems, e.g. quadrature-amplitude modulated carrier systems
    • H04L27/36Modulator circuits; Transmitter circuits
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/118Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/152Bose-Chaudhuri-Hocquenghem [BCH] codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/25Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM]
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/25Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM]
    • H03M13/255Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM] with Low Density Parity Check [LDPC] codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • H03M13/2927Decoding strategies
    • H03M13/293Decoding strategies with erasure setting
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/35Unequal or adaptive error protection, e.g. by providing a different level of protection according to significance of source information or by adapting the coding according to the change of transmission channel characteristics
    • H03M13/356Unequal error protection [UEP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • H04L1/0047Decoding adapted to other signal detection operation
    • H04L1/005Iterative decoding, including iteration between signal detection and decoding operation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0059Convolutional codes
    • H04L1/006Trellis-coded modulation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0061Error detection codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0064Concatenated codes
    • H04L1/0065Serial concatenated codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0071Use of interleaving
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L27/00Modulated-carrier systems
    • H04L27/18Phase-modulated carrier systems, i.e. using phase-shift keying
    • H04L27/20Modulator circuits; Transmitter circuits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L27/00Modulated-carrier systems
    • H04L27/32Carrier systems characterised by combinations of two or more of the types covered by groups H04L27/02, H04L27/10, H04L27/18 or H04L27/26
    • H04L27/34Amplitude- and phase-modulated carrier systems, e.g. quadrature-amplitude modulated carrier systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04HBROADCAST COMMUNICATION
    • H04H40/00Arrangements specially adapted for receiving broadcast information
    • H04H40/18Arrangements characterised by circuits or components specially adapted for receiving
    • H04H40/27Arrangements characterised by circuits or components specially adapted for receiving specially adapted for broadcast systems covered by groups H04H20/53 - H04H20/95
    • H04H40/90Arrangements characterised by circuits or components specially adapted for receiving specially adapted for broadcast systems covered by groups H04H20/53 - H04H20/95 specially adapted for satellite broadcast receiving
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/007Unequal error protection

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Description

  • GEBIET DER ERFINDUNG
  • Die vorliegende Erfindung bezieht sich auf Kommunikationssysteme und genauer auf codierte Systeme.
  • HINTERGRUND DER ERFINDUNG
  • Kommunikationssysteme verwenden Codieren zum Sicherstellen von zuverlässiger Kommunikation über gestörte Kommunikationskanäle. Diese Kommunikationskanäle besitzen eine feste Kapazität, die in Bits pro Zeichen bei einem bestimmten Signal-Rausch-Verhältnis (SNR) ausgedrückt werden kann, wobei sie eine theoretische obere Grenze (als Shannon-Grenze bekannt) definiert. Als eine Folge hat die Codierungskonzeption darauf abgezielt, Raten zu erzielen, die sich dieser Shannon-Grenze annähern. Eine solche Klasse von Codes, die sich der Shannon-Grenze annähern, sind Low-Density-Parity-Check-Codes (LDPC-Codes).
  • Traditionell wurden LDPC-Codes aufgrund einer Anzahl von Nachteilen nicht weithin verwendet. Ein Nachteil ist, dass die LDPC-Codierungstechnik sehr kompliziert ist. Codieren eines LDPC-Codes unter Verwendung seiner Generator-Matrix würde das Speichern einer sehr großen, dicht besetzten Matrix erfordern. Zusätzlich erfordern LDPC-Codes große Blöcke, um effektiv zu sein; folglich, selbst wenn Paritätskontrollmatrizen von LDPC-Codes dünn besetzt sind, ist das Speichern dieser Matrizen problematisch. Vom Gesichtspunkt einer Implementierung ist die Speicherung ein wichtiger Grund, warum LDPC-Codes in der Praxis nicht weit verbreitet geworden sind. Ein Hauptproblem bei der LDPC-Code-Implementierung war es, wie das Verbindungsnetz werk zwischen mehreren Processing-Engines (Knoten) in dem Decodierer zu erreichen ist.
  • Daher gibt es einen Bedarf nach einem LDPC-Kommunikationssystem, das einfache Codierungs- und Decodierungs-Verfahren verwendet. Es gibt außerdem einen Bedarf für das effiziente Verwenden von LDPC-Codes zum Fördern hoher Datenraten ohne einen höheren Aufwand einzuführen. Es gibt außerdem einen Bedarf zum Verbessern der Leistungsfähigkeit von LDPC-Codierern und -Decodierern. Es gibt außerdem einen Bedarf zum Minimieren von Speicheranforderungen für das Implementieren der LDPC-Codierung. Es gibt einen weiteren Bedarf für ein Verfahren, das die Kommunikation zwischen Verarbeitungsknoten bei dem LDPC-Decodierer vereinfacht.
  • Die folgenden Veröffentlichungen werden als für die vorliegende Erfindung relevant angesehen:
    • Eleftheriou E. und Olger S.: "Low-density parity-check codes for digital subscriber lines", Proc., IEEE International Conference an Communications, ICC 2002, New York, NY, USA, 28. April bis 2. Mai 2002, Seiten 1752 bis 1757 (XP-10589787);
    • Zhang T. und Parhi K.K.: "Joint code and decoder design for implementationoriented (3,k)-regular LDPC codes", Proc., The 35th Asilomar Conference an Signals, Systems, & Computers. Pacific Groove, CA, USA, 4. bis 7. November 2001, IEEE Inc. New York, Seiten 1232 bis 1236 (XP-105822236);
    • Duman T.M. und Salehi M.: "Performance bounds for turbo-coded modulation systems", IEEE Transactions an Communications, Bd. 47, Nr. 4, April 1999, Seiten 511 bis 521 (XP-2263494);
    • Boutillon E., Castura J. und Kschischang F.R.: "Decoder-first code design", Proc., 2nd International Symposium an Turbo Codes and Related Topics, Brest, Frankreich, 4. bis 7. September 2000, Seiten 459-462 (XP-8011934);
    • Hagenauer J. et al.: "Iterative decoding of binary block and convolutional codes", IEEE Transactions an Information Theory, Bd. 42, Nr. 2, März 1996, Seiten 429 bis 445 (XP-850507);
    • Hagenauer J. et al.: "Decoding and equalization with analog non-linear networks", European Transactions an Telecommunications, EUREL Publication, Milano, Bd. 10, Nr. 6, Nobember bis Dezember 1999, Seiten 659 bis 680 (XP-2246822);
    • Li X. und Ritcey J.A.: "Bit-interleaved coded modulation with iterative decoding using soft feedback", Electronics Letters, IEE Stevenage, Bd. 34, Nr. 10, 14. Mai 1998, Seiten 942 bis 943 (XP-600973); und
    • Vasic B. et al.: "Kirkman systems and their application in perpendicular magnetic recording", IEEE Transactions an Magnetics, Bd. 38, Nr. 4, Juli 2002 (XP 2258068).
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Diese und andere Anforderungen werden bei der vorliegenden Erfindung behandelt, wobei ein Ansatz zum Erzeugen von strukturierten Low-Density-Parity-Check-Codes (LDPC-Codes) bereitgestellt wird. Die Struktur der LDPC-Codes wird bereitgestellt durch Beschränken eines Teilabschnittes der Paritätskontrollmatrix derart, dass sie eine untere Dreiecksmatrix ist und/oder andere Anforderungen erfüllt, so dass die Kommunikation zwischen Verarbeitungsknoten des Decodierers sehr einfach wird. Außerdem kann der Ansatz vorteilbringend die ungleiche Fehlerschutzfähigkeit der LDPC-Codes auf übertragenen Bits derart ausnutzen, dass für gefährdetere Bits ein extra Fehlerschutz von höherwertigen Modulationskonstellationen bereitgestellt wird (wie z.B. 8-PSK (Phasenumtastung)). Zusätzlich kann die Paritätskontrollmatrix algorithmisch erzeugt werden unter Verwendung von vorgespeicherten Konstanten und bitweisen Operationen.
  • Die vorliegende Erfindung wird in den dazugehörigen Ansprüchen definiert.
  • Noch weitere Aspekte, Merkmale und Vorteile der vorliegenden Erfindung sind offensichtlich aus der folgenden detaillierten Beschreibung, einfach durch Veranschaulichen einer Anzahl von besonderen Ausführungsformen und Implementierungen einschließlich der besten Form, die für das Ausführen der vorliegenden Erfindung betrachtet wird. Die vorliegende Erfindung ist auch für andere und verschiedene Ausführungsformen fähig und ihre verschiedenen Details können in vieler offensichtlicher Hinsicht modifiziert werden, alle ohne von dem Umfang der vorliegenden Erfindung abzuweichen. Dementsprechend sind die Figuren und die Beschreibung in ihrer Natur als veranschaulichend und nicht als beschränkend zu betrachten.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die vorliegende Erfindung wird veranschaulicht als Beispiel und nicht als Beschränkung in den Figuren der begleitenden Zeichnungen und in denen gleiche Bezugszeichen sich auf gleiche Elemente beziehen und in denen:
  • 1 eine Darstellung eines Kommunikationssystems ist, das zum Verwenden von Low-Density-Parity-Check-Codes (LDPC-Codes) gemäß einer Ausführungsform der vorliegenden Erfindung konfiguriert ist;
  • 2 eine Darstellung eines beispielhaften Senders in dem System aus 1 ist;
  • 3 eine Darstellung eines beispielhaften Empfängers in dem System aus 1 ist;
  • 4 eine Darstellung einer dünn besetzten Paritätskontrollmatrix gemäß einer Ausführungsform der vorliegenden Erfindung ist;
  • 5 eine Darstellung eines zweiteiligen Graphen eines LDPC-Codes der Matrix aus 4 ist;
  • 6 eine Darstellung einer Untermatrix einer dünn besetzten Paritätskontrollmatrix ist, wobei die Untermatrix Paritätskontrollwerte enthält, die auf den unteren Dreiecksbereich beschränkt sind, gemäß einer Ausführungsform der vorliegenden Erfindung;
  • 7 ein Graph ist, der die Leistungsfähigkeit zwischen Codes zeigt, welche die unbeschränkte Paritätskontrollmatrix (H-Matrix) gegenüber der beschränkten H-Matrix mit einer Untermatrix, wie in 6, verwenden;
  • 8A und 8B jeweils ein Diagramm eines Nicht-Gray-8-PSK-Modulationsverfahrens und einer Gray-8-PSK-Modulation sind, von denen jedes in dem System aus 1 verwendet werden kann;
  • 9 ein Graph ist, der die Leistungsfähigkeit zwischen Codes zeigt, die Gray-Kennzeichnung gegenüber Nicht-Gray-Kennzeichnung verwenden;
  • 10 ein Flussdiagramm des Betriebs des Nicht-Gray-Mapping verwendenden LDPC-Docodierers gemäß einer Ausführungsform der vorliegenden Erfindung ist;
  • 11 ein Flussdiagramm des Betriebs des LDPC-Decodierers aus 3 ist, der das Gray-Mapping verwendet, gemäß einer Ausführungsform der vorliegenden Erfindung;
  • 12A bis 12C Diagramme der Wechselwirkungen zwischen den Check-Knoten und den Bit-Knoten bei einem Docodierverfahren gemäß einer Ausführungsform der vorliegenden Erfindung sind;
  • 13A bis 13C Graphen sind, die Simulationsergebnisse von LDPC-Codes zeigen, welche gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung erzeugt sind;
  • 14A und 14B Diagramme der oberen Kante bzw. der unteren Kante des Speichers sind, der zum Unterstützen des strukturierten Zugriffs organisiert ist, um Zufälligkeit beim LDPC-Codieren zu realisieren, gemäß einer Ausführungsform der vorliegenden Erfindung; und
  • 15 eine Darstellung eines Computersystems ist, das die Verfahren des Codierens und des Decodierens von LDPC-Codes durchführen kann gemäß Ausführungsformen der vorliegenden Erfindung.
  • BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORM
  • Ein System, Verfahren und Software zum effizienten Erzeugen strukturierter Low-Density-Parity-Check-Codes (LDPC-Codes) werden beschrieben. In der folgenden Beschreibung werden zum Zwecke der Erklärung viele spezifische Details ausgeführt, um ein gründliches Verständnis der vorliegenden Erfindung bereitzustellen. Jedoch ist es für einen Fachmann offensichtlich, dass die vorliegende Erfindung ohne diese spezifischen Details oder mit einer äquivalenten Ordnung ausgeübt werden kann. Bei anderen Gelegenheiten werden gut bekannte Strukturen und Vorrichtungen in Form eines Blockdiagramms gezeigt, um ein unnötiges Verschleiern der vorliegenden Erfindung zu vermeiden.
  • 1 ist eine Darstellung eines Kommunikationssystems, das zum Verwenden von Low-Density-Parity-Check-Codes (LDPC-Codes) gemäß einer Ausführungsform der vorliegenden Erfindung konfiguriert ist. Ein digitales Kommunikationssystem 100 beinhaltet einen Sender 101, der Signalwellenformen über einen Kommunikationskanal 103 zu einem Empfänger 105 erzeugt. Bei diesem einzelnen Kommunikationssystem 100 besitzt der Sender 101 eine Nachrichtenquelle, die einen einzelnen Satz von möglichen Nachrichten erzeugt; jede der möglichen Nachrichten besitzt eine entsprechende Signalwellenform. Diese Signalwellenformen werden durch den Kommunikationskanal 103 gedämpft oder anderweitig verändert. Um das Rauschen im Kanal 103 zu bekämpfen werden LDPC-Codes verwendet.
  • Die LDPC-Codes, die von dem Sender 101 erzeugt werden, ermöglichen Hochgeschwindigkeitsimplementation ohne irgendeinen Leistungsverlust zu erleiden. Diese von dem Sender 101 abgegebenen strukturierten LDPC-Codes vermeiden die Zuordnung einer geringen Anzahl von Check-Knoten zu den Bit-Knoten, die aufgrund des Modulationsverfahrens (z.B. 8-PSK) bereits anfällig für Kanalfehler sind.
  • Solche LDPC-Codes besitzen einen parallelisierbaren Decodieralgorithmus (anders als Turbo-Codes), der in vorteilhafter Weise einfache Operationen, wie z.B. Addition, Vergleich und Tabellensuchen einbezieht. Darüber hinaus zeigen sorgfältig entworfene LDPC-Codes kein Zeichen von Error-Floor.
  • Gemäß einer Ausführungsform der vorliegenden Erfindung erzeugt der Sender 101 unter Verwendung eines relativ einfachen Codierverfahrens LDPC-Codes auf der Grundlage von Paritätskontrollmatrizen (die effizienten Speicherzugriff während des Decodierens ermöglichen) zum Kommunizieren mit dem Empfänger 105. Der Sender 101 verwendet LDPC-Codes, die verkettete Turbo+RS-Codes (Reed-Solomon-Codes) leistungsmäßig übertreffen können, vorausgesetzt die Blocklänge ist ausreichend groß.
  • 2 ist eine Darstellung eines beispielhaften Senders in dem System aus 1. Ein Sender 200 ist ausgestattet mit einem LDPC-Codierer 203, der Input einer Informationsquelle 201 entgegennimmt und einen codierten Strom von höherer Redundanz aus gibt, der geeignet ist für die Fehlerkorrekturverarbeitung bei dem Empfänger 105. Die Informationsquelle 201 erzeugt k Signale aus einem einzelnen Alphabet X. LDPC-Codes werden bestimmt mit Paritätskontrollmatrizen. Andererseits erfordert das Codieren von LDPC-Codes im Allgemeinen das Bestimmen der Generatormatrizen. Selbst wenn es möglich ist, Generatormatrizen von Paritätskontrollmatrizen unter Verwendung der Gauß'schen Elimination zu erhalten, ist die resultierende Matrix nicht länger dünn besetzt und das Speichern einer großen Generatormatrix kann schwierig sein.
  • Der Codierer 203 erzeugt Signale aus dem Alphabet Y an einen Modulator 205 unter Verwendung eines einfachen Codierverfahrens, das nur Verwendung von der Paritätskontrollmatrix macht durch Auferlegen einer Struktur auf die Paritätskontrollmatrix. Insbesondere wird die Paritätskontrollmatrix beschränkt durch Einschränken eines bestimmten Abschnittes der Matrix derart, dass sie dreieckig ist. Die Ausbildung einer solchen Paritätskontrollmatrix ist genauer unten in 6 beschrieben. Eine solche Einschränkung führt zu einem vernachlässigbaren Leistungsverlust und stellt daher einen attraktiven Kompromiss dar.
  • Der Modulator 205 bildet die codierten Nachrichten vom Codierer 203 auf Signalwellenformen ab, die zu einer Sendeantenne 207 übertragen werden, welche diese Wellenformen über den Kommunikationskanal 103 aussendet. Dementsprechend werden die codierten Nachrichten moduliert und zu einer Sendeantenne 207 übertragen. Die Sendungen von der Sendeantenne 207 propagieren zu einem Empfänger, wie unten diskutiert ist.
  • 3 ist eine Abbildung eines beispielhaften Empfängers in dem System aus 1. Auf der Empfangsseite beinhaltet ein Empfänger 300 einen Demodulator 301, der Demodulation von empfangenen Signalen von dem Sender 200 durchführt. Diese Signale werden bei einer Empfangsantenne 303 für die Demodulation empfangen. Nach der Demodulation werden die empfangenen Signale zu einem Decodierer 305 weitergeleitet, der versucht, die ursprünglichen Quellnachrichten durch Erzeugen von Nachrichten X' im Zusammenhang mit einem Bit-Metrik-Generator 307 zu rekonstruieren. Bei dem Nicht-Gray-Mapping tauscht der Bit-Metrik-Generator 307 Wahrscheinlichkeits-Information mit dem Docodierer 305 während des Decodierungsverfahrens, das in 10 genau dargestellt ist, hin und zurück (iterativ) aus. Alternativ, wenn Gray-Mapping verwendet wird (gemäß einer Ausführungsform der vorliegenden Erfindung), ist ein Durchgang des Bit-Metrik-Generators ausreichend, bei dem weitere Versuche der Bit-Metrik-Erzeugung nach jeder LDPC-Decodierer-Iteration wahrscheinlich eine beschränkte Leistungsfähigkeitsverbesserung erzielt; dieser Ansatz wird genauer mit Bezug auf 11 beschrieben. Um die von der vorliegenden Erfindung gebotenen Vorteile zu würdigen, ist es aufschlussreich, zu untersuchen, wie LDPC-Codes erzeugt werden, wie in 4 behandelt wird.
  • 4 ist eine Darstellung einer dünn besetzten Paritätskontrollmatrix gemäß einer Ausführungsform der vorliegenden Erfindung. LDPC-Codes sind lange, lineare Block-Codes mit dünn besetzter Paritätskontrollmatrix H(n-k)xn. Typischerweise erstreckt sich die Blocklänge n von Tausenden zu Zehntausenden von Bits. Zum Beispiel ist eine Paritätskontrollmatrix für einen LDPC-Code einer Länge n = 8 und einer Rate ½ in 4 gezeigt. Der gleiche Code kann gleichbedeutend durch den zweiteiligen Graphen in 5 dargestellt werden.
  • 5 ist eine Darstellung eines zweigeteilten Graphen eines LDPC-Codes der Matrix aus 4. Paritätskontrollgleichungen bedeuten, dass für jeden Check-Knoten die Summe (über GF (Galois-Feld)(2)) aller benachbarten Bit-Knoten gleich Null ist. Wie in der Figur zu sehen, besetzen die Bit-Knoten die linke Seite des Graphen und sind mit einem oder mehreren Check-Knoten verknüpft gemäß einer vorbestimmten Verknüpfung. Zum Beispiel ist zu dem Check-Knoten m1 der folgende Ausdruck n1 + n4 + n5 + n8 = 0 mit Bezug auf die Bit-Knoten vorhanden.
  • Zurück zu dem Receiver 303 wird der LDPC-Decodierer 305 als ein Nachrichten weitergebender Codierer betrachtet, wodurch der Decodierer 305 darauf abzielt, die Werte von Bit-Knoten zu finden. Um diese Aufgabe zu bewältigen kommunizieren Bit- Knoten und Check-Knoten iterativ miteinander. Die Art dieser Kommunikation wird unten beschrieben.
  • Von Check-Knoten zu Bit-Knoten stellt jeder Check-Knoten einem benachbarten Bit-Knoten eine Abschätzung ("Meinung") in Bezug auf den Wert dieses Bit-Knotens auf der Grundlage der von anderen benachbarten Bit-Knoten kommenden Information bereit. Z.B. wenn bei dem obigen Beispiel die Summe von n4, n5 und n8 für m1 "so aussieht wie" Null, dann würde m1 an n1 anzeigen, dass der Wert von n1 für Null gehalten wird (da n1 + n4 + n5 + n8 = 0); ansonsten zeigt m1 an n1 an, dass der Wert von n1 für Eins gehalten wird. Zusätzlich wird für die Soft-Decision-Decodierung ein Zuverlässigkeitsmaß hinzugefügt.
  • Von Bit-Knoten zu Check-Knoten vermittelt jeder Bit-Knoten an einen benachbarten Check-Knoten eine Abschätzung über seinen eigenen Wert auf der Grundlage der von seinen anderen benachbarten Check-Knoten kommenden Rückmeldung. Bei dem obigen Beispiel hat n1 nur zwei benachbarte Check-Knoten m1 und m3. Wenn die von m3 kommende Rückmeldung an n1 anzeigt, dass der Wert von n1 wahrscheinlich Null ist, dann würde n1 m1 darüber benachrichtigen, dass eine Abschätzung des eigenen Wertes von n1 gleich Null ist. Für den Fall, in dem der Bit-Knoten mehr als zwei benachbarte Check-Knoten besitzt, führt der Bit-Knoten einen Mehrheitsbeschluss (Soft-Decision) an der von seinen anderen benachbarten Check-Knoten kommenden Rückmeldung durch, bevor er diese Decision an den Check-Knoten berichtet, mit dem er kommuniziert. Das obige Verfahren wird wiederholt bis alle Bit-Knoten als korrigiert angesehen werden (d.h., dass alle Paritätskontrollgleichungen erfüllt sind) oder bis eine vorbestimmte maximale Anzahl von Iterationen erreicht ist, wodurch eine Decodierfehlfunktion deklariert wird.
  • 6 ist eine Darstellung einer Untermatrix einer dünn besetzten Paritätskontrollmatrix, wobei die Untermatrix Paritätskontrollwerte enthält, die auf den unteren Dreiecksbereich beschränkt sind, gemäß einer Ausführungsform der vorliegenden Erfindung. Wie zuvor beschrieben, kann der Codierer 203 (aus 2) ein einfaches Co dierverfahren anwenden, durch Beschränken der Werte des unteren Dreiecksbereiches der Paritätskontrollmatrix. Gemäß einer Ausführungsform der vorliegenden Erfindung ist die der Paritätskontrollmatrix auferlegte Beschränkung von folgender Form: H(n-k)xn = ⎿A(n-k)xkB(n-k)x(n-k)wobei B eine untere Dreiecksmatrix ist.
  • Jeder Informationsblock i = (i0, i1, ..., ik-1) wird zu einem Codewort c = (i0, i1, ..., ik-1, p0, p1, ..., pn-k-1) codiert unter Verwendung von HcT = 0, und rekursives Lösen für Paritäts-Bits; z.B. a00i0 + a01i1 + ... + a0,k-1ik-1 + p0 = 0 ⇒ Auflösen nach p0, a10i0 + a11i1 + ... + a1,k-1ik-1 + b10p0 + p1 = 0 Auflösen nach p1 und ähnlich für p2, p3, ..., pn-k-1
  • 7 ist ein Graph, der die Leistungsfähigkeit zwischen Codes zeigt, welche eine unbeschränkte Paritätskontrollmatrix (H-Matrix) gegenüber einer beschränkten H-Matrix aus 6 verwenden. Der Graph zeigt den Leistungsvergleich zwischen zwei LDPC-Codes: einen mit einer allgemeinen Paritätskontrollmatrix und der andere mit einer auf die untere Dreiecksform eingeschränkten Paritätskontrollmatrix zum Vereinfachen des Codierens. Das Modulationsschema für diese Simulation ist 8-PSK. Der Leistungsverlust ist innerhalb von 0,1 dB. Daher ist der Leistungsverlust vernachlässigbar auf der Grundlage der Einschränkung der unteren Dreiecks-H-Matrizen, während der Gewinn an Einfachheit des Codierverfahrens signifikant ist. Dementsprechend kann jede Paritätskontrollmatrix für den gleichen Zweck verwendet werden, die unter Zeilen- und/oder Spalten-Permutation äquivalent zu einer unteren Dreiecks- oder oberen Dreiecks-Matrix ist.
  • Die 8A und 8B sind jeweils ein Diagramm eines Nicht-Gray-8-PSK-Modulationsverfahrens und einer Gray-8-PSK-Modulation, von denen jede in dem System aus 1 verwendet werden kann. Das Nicht-Gray-8-PSK-Verfahren aus 8A kann bei dem Empfänger aus 3 verwendet werden zum Bereitstellen eines Systems, das eine sehr geringe Frame-Erasure-Rate (FER) erfordert. Diese Anforderung kann auch erfüllt werden durch Verwenden eines Gray-8-PSK-Verfahrens, wie in 8B gezeigt, in Verbindung mit einem äußeren Code, wie z.B. den Bose-, Chaudhuri- und Hocquenghem-Code (BCH-Code), einen Hamming-Code oder einen Reed-Solomon-Code (RS-Code).
  • Alternativ kann das Gray-8-PSK-Verfahren aus 8B mit einem äußeren Code implementiert werden. Unter diesem Verfahren gibt es keine Notwendigkeit, zwischen dem LDPC-Decodierer 305 (3) und dem Bit-Metrik-Generator 307 zu iterieren, der 8-PSK-Modulation verwenden kann. Bei der Abwesenheit eines äußeren Codes zeigt der Gray-Kennzeichnung verwendende LDPC-Decodierer (305) einen früheren Error-Floor, wie unten in 9 gezeigt.
  • 9 ist ein Graph, der die Leistungsfähigkeit zwischen Codes zeigt, die Gray-Kennzeichnung gegenüber Nicht-Gray-Kennzeichnung aus 8A und 8B verwenden. Der Error-Floor stammt von der Tatsache, dass eine richtige Rückmeldung von dem LDPC-Decodierer 305 annehmend die Regenerierung von 8-PSK-Bit-Metriken mit Nicht-Gray-Kennzeichnung genauer ist, da die zwei 8-PSK-Zeichen mit zwei bekannten Bits bei Nicht-Gray-Kennzeichnung weiter auseinander sind. Dies kann gleichbedeutend als Betreiben mit höherem Signal-Rausch-Verhältnis (SNR) gesehen werden. Daher, obwohl Fehler-Asymptoten des gleichen LDPC-Codes, unter Verwendung von Gray- oder Nicht-Gray-Kennzeichnung, die gleiche Steigung besitzen (d.h. parallel zueinander sind) durchläuft der eine mit Nicht-Gray-Kennzeichnung eine geringere FER bei jedem SNR.
  • Andererseits für Systeme, die keine sehr niedrige FER erfordern, kann Gray-Kennzeichnung ohne jede Iteration zwischen dem LDPC-Decodierer 305 und dem 8- PSK-Bit-Metrik-Generator 307 mehr geeignet sein, da das erneute Generieren von 8-PSK-Bit-Metriken vor jeder LDPC-Decodierer-Iteration zusätzlichen Aufwand bewirkt. Darüber hinaus, wenn Gray-Kennzeichnung verwendet wird, erzielt das erneute Generieren von 8-PSK-Bit-Metriken vor jeder LDPC-Decodierer-Iteration nur sehr geringe Leistungsverbesserung. Wie zuvor erwähnt kann Gray-Kennzeichnung ohne Iteration verwendet werden für Systeme, die eine sehr geringe FER erfordern, vorausgesetzt ein äußerer Code wird implementiert.
  • Die Wahl zwischen Gray-Kennzeichnung und Nicht-Gray-Kennzeichnung hängt außerdem von den Eigenschaften des LDPC-Codes ab. Typischerweise je höher die Bit- oder Check-Knoten-Grade, desto besser ist es für Gray-Kennzeichnung, da für höhere Knoten-Grade die anfängliche Rückmeldung vom LDPC-Decodierer 305 zu dem 8-PSK (oder ähnlicher höherwertigerer Modulation) -Bit-Metrik-Generator 307 sich bei Nicht-Gray-Kennzeichnung mehr verschlechtert.
  • Wenn 8-PSK (oder ähnlich höherwertige)-Modulation mit einem Binärdecodierer verwendet wird, wird erkannt, dass die drei (oder mehreren) Bits eines Zeichens nicht "gleich verrauscht" empfangen werden. Zum Beispiel bei Gray-8-PSK-Kennzeichnung wird das dritte Bit eines Zeichens mehr verrauscht für den Decodierer angesehen als die anderen beiden Bits. Daher ordnet das LDPC-Code-Design diesen Bit-Knoten, die durch "mehr verrauschte" dritte Bits eines 8-PSK-Symbols wiedergegeben werden, keine kleine Anzahl von Kanten zu, so dass diese Bits nicht zwei Mal benachteiligt werden.
  • 10 ist ein Flussdiagramm des LDPC-Decodiereres, der Nicht-Gray-Mapping verwendet, gemäß einer Ausführungsform der vorliegenden Erfindung. Unter diesem Ansatz iterieren der LDPC-Decodierer und der Bit-Metrik-Generator einer nach dem anderen. Bei diesem Beispiel wird 8-PSK-Modulation verwendet; jedoch gelten die gleichen Grundsätze auch für andere höhere Modulationsverfahren. Gemäß diesem Szenarium wird angenommen, dass der Demodulator 301 einen Abstandsvektor d ausgibt, der die Abstände zwischen empfangenen verrauschten Zeichenpunkten und 8-PSK-Zei chenpunkten dem Bit-Metrik-Generator 307 anzeigt, wodurch die Vektorkomponenten wie folgt sind:
    Figure 00140001
  • Der 8-PSK-Bit-Metrik-Generator 307 kommuniziert mit dem LDPC-Decodierer 305 zum Austauschen einer A-Priori-Wahrscheinlichkeitsinformation und einer A-Posteriori-Wahrscheinlichkeitsinformation, die jeweils wiedergegeben werden als u und als a. Das heißt, die Vektoren u und a geben jeweils A-Priori- und A-Posteriori-Wahrscheinlichkeiten von Log-Likelihood-Ratios von codierten Bits wieder.
  • Der 8-PSK-Bit-Metrik-Generator 307 erzeugt A-Priori-Likelihood-Ratios für jede Gruppe von 3 Bits wie folgt. Zuerst wird extrinsische Information über codierte Bits gewonnen: ej = aj – uj j = 0, 1, 2.
  • Als nächstes werden 8-PSK-Zeichenwahrscheinlichkeiten pi, i = 0, 1, ..., 7, bestimmt. *yj = –f(0,ej) j = 0, 1, 2, wobei f(a,b) = max(a,b)+LUTf(a,b) mit LUTf(a,b) = 1n(1 + e-|a-b|) *xj = yj + ej = 0, 1, 2 p0 = x0 + x1 + x2 p4 = y0 + x1 + x2 p1 = x0 + x1 + y2 p5 = y0 + x1 + y2 p2 = x0 + y1 + x2 p6 = y0 + y1 + x2 p3 = x0 + y1 + y2 p7 = y0 + y1 + y2
  • Als nächstes bestimmt der Bit-Metrik-Generator 307 A-Priori-Log-Likelihood-Ratios der codierten Bits als Eingabe an den LDPC-Decodierer 305 wie folgt: u0 = f(d0 + p0, d1 + p1, d2 + p2, d3 + p3) – f(d4 + p4, d5 + p5, d6 + p6, d7 + p7) – e0 u1 = f(d0 + p0, d1 + p1, d4 + p4, d5 + p5) – f(d2 + p2, d3 + p3, d6 + p6, d7 + p7) – e1 u2 = f(d0 + p0, d2 + p2, d4 + p4, d6 + p6) – f(d1 + p1, d3 + p3, d5 + p5, d7 + p7) – e2
  • Es wird bemerkt, dass die Funktion f(.) mit mehr als zwei Variablen rekursiv berechnet werden kann; z.B. f(a,b,c) = f(f(a,b),c).
  • Der Betrieb des LDPC-Decodierers 305, der das Nicht-Gray-Mapping verwendet, wird nun beschrieben. In Schritt 1001 initialisiert der LDPC-Decodierer 305 Log-Likelihood-Ratios von codierten Bits v vor der ersten Iteration gemäß dem folgenden (und wie in 12A gezeigt ist):
    Figure 00150001
    = un n = 0, 1, ..., N – 1, i = 1, 2, ..., deg(Bit – Knoten n)
  • Hierbei bezeichnet vn→ki die Nachricht, die von dem Bit-Knoten n zu seinen benachbarten Check-Knoten ki gehen, bezeichnet un den Demodulatorausgang für das Bit n und ist N die Codewortgröße.
  • In Schritt 1003 wird ein Check-Knoten k aktualisiert, wodurch die Eingabe v die Ausgabe w erzielt. Wie in 12B zu sehen, werden die zu dem Check-Knoten k eingehenden Nachrichten von dessen dc benachbarten Bit-Knoten mit
    Figure 00150002
    bezeichnet. Das Ziel ist es, die ausgehenden Nachrichten von dem Check-Knoten k zurück zu dc benachbarten Bit-Knoten zu berechnen. Diese Nachrichten werden mit
    Figure 00150003
    , bezeichnet, wobei
  • Figure 00160001
  • Die Funktion g() ist wie folgt definiert: g(a,b) = sign(a) × sign(b) × {min(|a|,|b|)} + LUTg(a,b),wobei LUTg(a,b) = In(1 + e-la+bl) – In(1 + e-la-bl) Ähnlich der Funktion f kann die Funktion g mit mehr als zwei Variablen rekursiv ausgewertet werden.
  • Als nächstes gibt der Decodierer 305 durch Schritt 1205 eine A-Posteriori-Wahrscheinlichkeitsinformation (12C) aus, so dass:
    Figure 00160002
  • Durch Schritt 1007 wird bestimmt, ob alle Paritätskontrollgleichungen erfüllt sind. Wenn diese Paritätskontrollgleichungen nicht erfüllt sind, dann leitet der Decodierer 305 wie im Schritt 1009 die 8-PSK-Bit-Metiken und die Kanaleingabe un erneut ab. Als nächstes wird der Bit-Knoten wie in Schritt 1011 aktualisiert. Wie in 13C gezeigt, werden die eingehenden Nachrichten an den Bit-Knoten n von dessen dv, benachbarten Check-Knoten mit
    Figure 00160003
    bezeichnet. Die ausgehenden Nachrichten von dem Bit-Knoten n werden berechnet zurück zu dem dv benachbarten Check-Knoten; solche Nachrichten werden bezeichnet durch
    Figure 00160004
    und wie folgt berechnet:
    Figure 00160005
  • In Schritt 1013 gibt der Decodierer 305 die Hard-Decision aus (in dem Fall, dass alle Paritätskontrollgleichungen erfüllt sind):
    Figure 00170001
  • Der obige Ansatz ist geeignet, wenn Nicht-Gray-Kennzeichnung verwendet wird. Wenn jedoch Gray-Kennzeichnung implementiert wird, wird das Verfahren aus 11 ausgeführt.
  • 11 ist ein Flussdiagramm des Betriebes des LDPC-Decodierers aus 3, der Gray-Mapping verwendet, gemäß einer Ausführungsform der vorliegenden Erfindung. Wenn Gray-Kennzeichnung verwendet wird, werden Bit-Metriken in vorteilhafter Weise nur einmal vor dem LDPC-Decodierer erzeugt, da erneute Erzeugung von Bit-Metriken nach jeder LDPC-Decodieriteration nominelle Leistungsverbesserung erzielen kann. Wie bei den Schritten 1001 und 1003 aus 10 wird die Initialisierung der Log-Likelihood-Ratios von codierten Bits v durchgeführt und der Check-Knoten wird aktualisiert, durch die Schritte 1101 und 1103. Als nächstes wird der Bit-Knoten n aktualisiert, wie in Schritt 1105. Danach gibt der Decodierer die A-Posteriori-Wahrscheinlichkeitsinformation aus (Schritt 1107). Im Schritt 1109 wird eine Bestimmung dahingehend gemacht, ob alle Paritätskontrollgleichungen erfüllt sind; wenn dem so ist, gibt der Decodierer die Hard-Decision aus (Schritt 1111). Ansonsten werden die Schritte 1103 bis 1107 wiederholt.
  • 13A bis 13C sind Graphen, die Simulationsergebnisse von LDPC-Codes zeigen, die gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung erzeugt sind. Insbesondere zeigen 13A bis 13C die Leistungsfähigkeit der LDPC-Codes mit höherwertiger Modulation und Code-Raten von ¾ (QPSK, 1,485 Bits/Zeichen), 2/3 (8-PSK, 1,980 Bits/Zeichen) und 5/6 (8-PSK, 2,474 Bits/Zeichen).
  • Es gibt zwei allgemeine Ansätze zum Realisieren der Verbindungen zwischen Check-Knoten und Bit-Knoten: (1) einen vollständig parallelen Ansatz und (2) einen teilweise parallelen Ansatz. Bei der vollständig parallelen Architektur werden alle Knoten und ihre Verbindungen physikalisch implementiert. Der Vorteil dieser Architektur ist Geschwindigkeit.
  • Die vollständig parallele Architektur kann jedoch größeren Aufwand beim Realisieren aller Knoten und ihrer Verbindungen mit sich bringen. Daher kann bei einer vollständig parallelen Architektur eine geringere Blockgröße benötigt werden zum Verringern des Aufwands. In diesem Fall kann für die gleich Taktfrequenz eine proportionale Verringerung des Durchsatzes sowie eine gewisse Verschlechterung bei der FER gegenüber der Es/No-Leistungsfähigkeit resultieren.
  • Der zweite Ansatz zum Implementieren von LDPC-Codes ist es, nur eine Teilmenge der Gesamtanzahl der Knoten physikalisch zu realisieren und nur diese beschränkte Anzahl von "physikalischen" Knoten zu verwenden zum Abarbeiten aller "funktionalen" Knoten des Codes. Obwohl die LDPC-Decodieroperationen sehr einfach gemacht werden können und parallel durchgeführt werden können, ist die weitere Herausforderung bei dem Design, wie die Kommunikation zwischen "zufällig" verteilten Bit-Knoten und Check-Knoten eingerichtet wird. Der Decodierer 305 aus 3 gemäß einer Ausführungsform der vorliegenden Erfindung behandelt dieses Problem durch Zugreifen auf einen Speicher in einer strukturierten Weise, um einen scheinbar zufälligen Code zu realisieren. Diese Vorgehensweise wird mit Bezug auf die 14A und 14B beschrieben.
  • Die 14A und 14B sind Darstellungen der oberen Kante bzw. der unteren Kante eines Speichers, der organisiert ist zum Unterstützen des strukturierten Zugriffs, um Zufälligkeit beim LDPC-Codieren zu realisieren, gemäß einer Ausführungsform der vorliegenden Erfindung. Strukturierter Zugriff kann erreicht werden ohne Gefährdung der Leistungsfähigkeit eines wirklich zufälligen Codes durch Konzentrieren auf die Erzeugung der Paritätskontrollmatrix. Im Allgemeinen kann eine Paritätskontrollmatrix festgelegt werden durch Verbinden der Check-Knoten mit den Bit-Knoten. Zum Beispiel werden die Bit-Knoten in Gruppen von 392 unterteilt (392 ist zum Zwecke der Veranschaulichung vorgesehen). Zusätzlich, unter der Annahme, dass die mit dem ersten Bit-Knoten vom Grad 3 verbundenen Check-Knoten z.B. mit a, b und c nummeriert werden, dann werden die mit dem zweiten Bit-Knoten verbundenen Check-Knoten als a + p, b + p und c + p nummeriert, und die mit dem dritten Bit-Knoten verbundenen Check-Knoten werden als a + 2p, b + 2p und c + 2p usw. nummeriert. Für die nächste Gruppe aus 392 Bit-Knoten sind die mit dem ersten Bit-Knoten verbundenen Check-Knoten verschieden von a, b, c, so dass mit einer geeigneten Wahl von p alle Check-Knoten den gleichen Grad besitzen. Eine zufällige Suche wird über den freien Konstanten durchgeführt, so dass der resultierende LDPC-Code Zyklus-4- und Zyklus-6-frei ist.
  • Die obige Anordnung ermöglicht Speicherzugriff während Check-Knoten- und Bit-Knoten-Verarbeitung. Die Werte der Kanten in dem zweiteiligen Graphen kann in einem Speichermedium gespeichert werden, wie z.B. einem Direktzugriffsspeicher (RAM). Es wird bemerkt, dass für einen wirklich zufälligen LDPC-Code während der Check-Knoten- und Bit-Knoten-Verarbeitung die Werte der Kanten in einer zufälligen Art und Weise einer nach dem anderen abgerufen werden müsste. Jedoch wäre ein solches Zugriffsverfahren zu langsam für eine Anwendung mit hoher Datenrate. Der RAM aus 14A und 14B wird in einer Art und Weise organisiert, durch die eine große Gruppe von relevanten Kanten in einem Taktzyklus; dementsprechend werden diese Werte "zusammen" im Speicher angeordnet. In Wirklichkeit wird beobachtet, dass selbst bei einem wirklich zufälligen Code für eine Gruppe von Check-Knoten (bzw. Bit-Knoten) die relevanten Kanten nebeneinander in dem RAM angeordnet werden können, aber dann werden die einer Gruppe von Bit-Knoten (bzw. Check-Knoten) benachbarten relevanten Kanten zufällig in dem RAM verstreut sein. Daher stammt die "Zusammengehörigkeit" unter der vorliegenden Erfindung von dem Design der Paritätskontrollmatrizen selbst. Das bedeutet, dass das Kontrollmatrixdesign sicherstellt, dass die relevanten Kanten für eine Gruppe von Bit-Knoten und Check-Knoten gleichzeitig zusammen in dem RAM angeordnet werden.
  • Wie in 14A und 14B zu sehen, enthält jede Box den Wert einer Kante, der mehrere Bits (z.B. 6) beträgt. Der Kanten-RAM gemäß einer Ausführungsform der vorliegenden Erfindung ist in zwei Teile geteilt: den oberen Kanten-RAM (14A) und den unteren Kanten-RAM (14B). Der untere Kanten-RAM enthält die Kanten zwischen z.B. Bit-Knoten vom Grad 2 und den Check-Knoten. Der obere Kanten-RAM enthält die Kanten zwischen Bit-Knoten vom Grad größer als zwei und den Check-Knoten. Daher werden für jeden Check-Knoten zwei benachbarte Kanten in dem unteren RAM gespeichert, und der Rest der Kanten wird in dem oberen Kanten-RAM gespeichert.
  • Fortfahrend mit dem obigen Beispiel werden eine Gruppe von 392 Bit-Knoten und 392 Check-Knoten ausgewählt für Verarbeitung zu einer Zeit. Für Verarbeitung von 392 Check-Knoten werden q aufeinanderfolgende Zeilen von dem oberen Kanten-RAM und zwei aufeinander folgende Zeilen von dem unteren Kanten-RAM abgerufen. Bei diesem Beispiel ist q + 2 der Grad jedes Check-Knotens. Für Bit-Knoten-Verarbeitung, wenn die Gruppe von 392-Bit-Knoten einen Grad 2 besitzt, werden ihre Kanten in zwei aufeinander folgenden Zeilen des unteren Kanten-RAM angeordnet. Wenn die Bit-Knoten einen Grad d>2 haben, werden ihre Kanten in etwa d Zeilen des oberen Kanten-RAM angeordnet. Die Adresse dieser d Zeilen kann in einem nicht-flüchtigen Speicher, wie z.B. einem Festwertspeicher (ROM) gespeichert werden. Die Kanten in einer der Zeilen entspricht den ersten Kanten der 392 Bit-Knoten, die Kanten in einer anderen Zeile entsprechen den zweiten Kanten der 392 Bit-Knoten usw. Darüber hinaus kann für jede Zeile außerdem der Spaltenindex der Kante, die zu dem ersten Bit-Knoten in der Gruppe von 392 gehört, in dem ROM gespeichert werden. Die Kanten, die dem zweiten, dritten, usw. Bit-Knoten entsprechen, folgen dem Anfangsspaltenindex in einer "umgreifenden" Art und Weise. Zum Beispiel, wenn die j-te-Kante in der Zeile zu dem ersten Bit-Knoten gehört, dann gehört die (j + 1)-te Kante zu dem zweiten Knoten, gehört die (j + 2)-te Kante zu den dritten Bit-Knoten, ..., und gehört die (j – 1)-te Kante zu dem 392-ten Bit-Knoten.
  • Mit dem obigen Aufbau (der in 14A und 14B gezeigt ist) wird die Geschwindigkeit eines Speicherzugriffs während des LDPC-Codierens stark erhöht.
  • 15 veranschaulicht ein Computersystem 1500 (auf dem eine Ausführungsform gemäß der vorliegenden Erfindung implementiert werden kann. Das Computersystem 15 beinhaltet einen Bus 1501 oder einen anderen Kommunikationsmechanismus zum Kommunizieren von Information sowie einen mit dem Bus 1501 verbundenen Prozessor 1503 zur Verarbeitung von Information. Das Computersystem 1500 beinhaltet außerdem einen Hauptspeicher 1505, wie z.B. einen Direktzugriffsspeicher (RAM) oder eine andere dynamische Speichervorrichtung, die mit dem Bus 1501 verbunden ist, zum Speichern von Information und durch den Prozessor 1503 auszuführende Anweisungen. Der Hauptspeicher 1505 kann außerdem verwendet werden zum Speichern von temporären Variablen oder Zwischeninformation während des Ausführens von durch den Prozessor 1503 auszuführenden Anweisungen. Das Computersystem 1500 beinhaltet weiter einen Festwertspeicher (ROM) 1507 oder eine andere statische Speichervorrichtung, die mit dem Bus 1501 verbunden ist, zum Speichern von statischer Information und von Anweisungen für den Prozessor 1503. Eine Speichervorrichtung 1509, wie z.B. eine magnetische Platte oder eine optische Platte, ist zusätzlich mit dem Bus 1501 verbunden zum Speichern von Information und Anweisungen.
  • Das Computersystem 1500 kann über den Bus 1501 mit einem Bildschirm 1511, wie z.B. einer Kathodenstrahlröhre (CRT), einer Flüssigkristallanzeige, einem Aktivmatrixbildschirm oder einem Plasmabildschirm, verbunden sein, zum Anzeigen von Information an einen Computerbenutzer. Eine Eingabevorrichtung 1513, wie z.B. eine Tastatur einschließlich alphanumerischer und anderer Tasten ist mit dem Bus 1501 verbunden zum Übertragen von Information und Anweisungsauswahl an dem Prozessor 1503. Eine andere Art einer Benutzereingabevorrichtung ist die Cursorsteuerung 1515, wie z.B. eine Rollkugel oder Cursor-Richtungstasten, zum Übertragen von Richtungsinformation und Anweisungsauswahl an den Prozessor 1503 und zum Steuern der Cursor-Bewegung auf dem Bildschirm 1511.
  • Gemäß einer Ausführungsform der Erfindung wird die Erzeugung von LDPC-Codes bereitgestellt durch das Computersystem 1500 als Antwort darauf, dass der Prozessor 1503 eine Anordnung von in dem Hauptspeicher 1505 enthaltenen Anweisungen ausführt. Solche Anweisungen können in den Hauptspeicher 1505 von einem anderen computerlesbaren Medium eingelesen werden, wie z.B. der Speichervorrichtung 1509. Ausführung der in dem Hauptspeicher 1505 enthaltenen Anordnung von Anweisungen bewirkt, dass der Prozessor 1503 die hierin beschriebenen Verfahrensschritte durchführt. Ein oder mehrere Prozessoren in einer Multiprocessing-Anordnung können außerdem verwendet werden zum Ausführen der in dem Hauptspeicher 1505 enthaltenen Anweisungen. Bei alternativen Ausführungsformen können fest verdrahtete Schaltungen verwendet werden anstelle von oder in Kombination mit Softwareanweisungen, um die Ausführungsform der vorliegenden Erfindung zu implementieren. Somit sind die Ausführungsformen der vorliegenden Erfindung nicht auf irgendeine spezielle Kombination von Hardware-Schaltungen und Software beschränkt.
  • Das Computersystem 1500 beinhaltet auch eine mit dem Bus 1501 verbundene Kommunikationsschnittstelle 1517. Die Kommunikationsschnittstelle 1517 sieht eine Zweiwege-Datenkommunikation vor, die an eine mit einem lokalen Netzwerk 1521 verbundene Netzwerkverbindung 1519 ankoppelt. Zum Beispiel kann die Kommunikationsschnittstelle 1517 eine Digital-Subscriber-Line (DSL)-Karte oder -Modem, eine Integrated-Services-Digital-Network (ISDN)-Karte, ein Kabelmodem oder ein Telefonmodem zum Bereitstellen einer Datenkommunikationsverbindung zu einer entsprechenden Art von Telefonleitung sein. Als anderes Beispiel kann die Kommunikationsschnittstelle 1517 eine Lokalnetzwerk (LAN)-Karte (z.B. für das EthernetTM oder ein Asynchronous-Transfer-Model (ATM)-Netzwerk) zum Vorsehen einer Datenkommunikationsverbindung zu einem kompatiblen LAN sein. Drahtlose Verbindungen können auch implementiert werden. Bei jeder solchen Implementierung sendet und empfängt die Kommunikationsschnittstelle 517 elektrische, elektromagnetische oder optische Signale, die digitale Datenströme tragen, welche verschiedene Arten von Information darstellen. Weiter kann die Kommunikationsschnittstelle 1517 periphere Schnittstellenvorrichtungen, wie z.B. eine Universal-Serial-Bus (USB)-Schnittstelle, eine PCMIA (Personal Computer Memory Card International Association)-Schnittstelle usw. einschließen
  • Die Netzwerkverbindung 1519 stellt typischerweise Datenkommunikation durch ein oder mehrere Netzwerke zu anderen Datenvorrichtungen bereit. Zum Beispiel kann die Netzwerkverbindung 1519 eine Verbindung durch das lokale Netzwerk 1521 zu einem Host-Computer 1523 bereitstellen, der eine Verbindung zu einem Netzwerk 1525 (z.B. ein Wide Area Network (WAN) oder das globale Paketdatenkommunikationsnetzwerk, das heutzutage üblicherweise als das „Internet bezeichnet wird) besitzt, oder zu einer von einem Serviceprovider betriebenen Datenausrüstung. Das lokale Netzwerk 1521 und das Netzwerk 1525 verwenden beide elektrische, elektromagnetische oder optische Signale zum Übermitteln von Information und Anweisungen. Die Signale durch die verschiedenen Netzwerke und die Signale an der Netzwerkverbindung 1519 und durch die Kommunikationsschnittstelle 1517, die digitale Daten mit dem Computersystem 1500 kommunizieren, sind beispielhafte Formen von Trägerwellen, die die Information und Anweisungen tragen.
  • Das Computersystem 1500 kann Nachrichten senden und Daten einschließlich eines Programmcodes empfangen durch das Netzwerk (die Netzwerke), die Netzwerkverbindung 1519 und die Kommunikationsschnittstelle 1517. Bei dem Internet-Beispiel kann ein Server (nicht dargestellt) den angeforderten Code übertragen, der zu einem Anwendungsprogramm zum implementieren einer Ausführungsform der vorliegenden Erfindung gehört, durch das Netzwerk 1525, das lokale Netzwerk 1521 und die Kommunikationsschnittstelle 1517. Der Prozessor 1503 kann den übertragenen Code ausführen, während er empfangen wird und/oder den Code in einer Speichervorrichtung 159 oder einem anderen nichtflüchtigen Speicher für die spätere Ausführung speichern. In dieser Art und Weise kann das Computersystem 1500 einen Anwendungscode in der Form einer Trägerwelle erhalten.
  • Der Ausdruck „computerlesbares Medium", wie er hierin verwendet wird, bezieht sich auf irgendein Medium, das teilnimmt beim Bereitstellen von Anweisungen an den Prozessor 1503 zur Ausführung. Solch ein Medium kann irgendeine Form annehmen einschließlich, aber nicht beschränkt auf nichtflüchtige Medien, flüchtige Medien und Übertragungsmedien. Nicht-flüchtige Medien beinhalten z.B. optische oder magnetische Platten, wie z.B. Speichervorrichtung 1509. Flüchtige Medien schließen einen dynamischen Speicher, wie z.B. einen Hauptspeicher 1505, ein. Übertragungsmedien schließen Koaxialkabel, Kupferdrähte und Faseroptik ein, einschließlich der Drähte, welche den Bus 1501 umfassen. Übertragungsmedien können außerdem die Form von akustischen, optischen oder elektromagnetischen Wellen einnehmen, wie z.B. denjenigen die während Radiofrequenz (RF)- und Infrarot (IR)-Datenkommunikation übertragen werden. Übliche Formen von computerlesbaren Medien schließen z.B. eine Diskette, eine flexible Diskette, eine Festplatte, ein Magnetband, irgendein anderes magnetisches Medium, eine CD-ROM, eine CD-RW, eine DVD, irgendein anderes optisches Medium, Lochkarten, ein Papierband, optische Markierungsblätter, irgendein anderes physikalisches Medium mit Mustern aus Löchern oder anderen optisch erkennbaren Merkmalen, einen RAM, einen PROM und einen EPROM, einen FLASH-EPROM, irgend einen anderen Speicherchip oder -kassette, eine Trägerwelle oder irgendein anderes Medium, von dem ein Computer lesen kann, ein.
  • Verschiedene Formen von computerlesbaren Medien können beteiligt sein beim Bereitstellen von Anweisungen an einen Prozessor zur Ausführung. Zum Beispiel können Anweisungen zum Ausführen von zumindest einem Teil der vorliegenden Erfindung anfänglich auf einer magnetischen Platte oder einem entfernten Computer getragen sein. Bei einem solchen Szenarium lädt der entfernte Computer die Anweisungen in den Hauptspeicher und sendet die Anweisungen über eine Telefonleitung unter Verwendung eines Modems. Ein Modem eines lokalen Computersystems empfängt die Daten auf der Telefonleitung und verwendet einen Infrarotsender zum Umwandeln der Daten in ein Infrarotsignal und überträgt die Infrarotsignale an eine tragbare Computervorrichtung, wie z.B. einen persönlichen digitalen Assistenten (PDA) und einen Laptop. Ein Infrarotdetektor an der tragbaren Computervorrichtung empfängt die Information und die Anweisungen, die von dem Infrarotsignal getragen werden und ordnet die Daten auf einem Bus an. Der Bus übermittelt die Daten zu dem Hauptspeicher, von dem ein Pro zessor die Anweisungen erhält und ausführt. Die von dem Hauptspeicher empfangenen Anordnungen können optional auf einer Speichervorrichtung entweder vor oder nach der Ausführung durch den Prozessor gespeichert werden.
  • Dementsprechend stellen die verschiedenen Ausführungsformen der vorliegenden Erfindung einen Ansatz zum Erzeugen strukturierter Low-Density-Parity-Check-Codes (LDPC-Codes) dar, um den Codierer und Decodierer zu vereinfachen. Struktur der LDPC-Codes wird bereitgestellt durch Einschränken der Paritätskontrollmatrix auf ein unteres Dreieck. Außerdem kann der Ansatz in vorteilhafter Weise die ungleichen Fehlerschutzmöglichkeiten der LDPC-Codes auf übertragenen Bits ausnutzen, derart, dass ein extra Fehlerschutz für gefährdetere Bits höherwertiger Modulationskonstellationen (wie z.B. 8-PSK (Phasenumtastung) bereitgestellt wird. Zusätzlich kann die Paritätskontrollmatrix algorithmisch erzeugt werden unter Verwendung von vorgespeicherten Konstanten und bitweisen Operationen. Effizientes Decodieren des LDPC kann erreicht werden durch Speichern von Information, die aufeinanderfolgende Kanten von den Check-Knoten zu den Bit-Knoten der Paritätskontrollmatrix in aufeinanderfolgenden Schlitzen des Speichers wiedergibt. Der obige Ansatz erzielt in vorteilhafter Weise verringerten Aufwand ohne Leistungsfähigkeit einzubüßen.
  • Während die vorliegende Erfindung in Verbindung mit einer Anzahl von Ausführungsformen und Implementierungen beschrieben wurde, ist die vorliegende Erfindung nicht derart beschränkt, sondern umfasst verschiedene offensichtliche Abwandlungen und äquivalente Anordnungen, die in den Bereich der angehängten Ansprüche fallen.

Claims (9)

  1. Verfahren zum Erzeugen eines Low-Density-Parity-Check-Codes (LDPC-Code), wobei das Verfahren umfasst: das Umwandeln einer empfangenen Eingangsnachricht in ein LDPC-Codewort unter Verwendung nur einer Paritätskontrollmatrix des LDPC-Codes ohne Verwenden einer Generatormatrix des LDPC-Codes, und Ausgeben des LDPC-Codewortes, wobei die Paritätskontrollmatrix die Verbindungen von Check-Knoten mit Bit-Knoten festlegt, wobei die Bit-Knoten in Gruppen von M Bit-Knoten unterteilt sind, wobei für jede Gruppe von Bit-Knoten jeder Bit-Knoten nj verbunden ist mit Check-Knoten, die mit m1 + jp, m2 + jp, ..., md + jp nummeriert sind, wobei j = 0 bis M-1 die Nummerierung der Bit-Knoten in den Gruppen wiedergibt und m1, m2, md die mit dem ersten Bit-Knoten in jeder Gruppe verbundenen d Check-Knoten wiedergibt, wobei die Check-Knoten m1, m2, ..., md von einer Gruppe von Bit-Knoten zu der nächsten Gruppe von Bit-Knoten verschieden sind, so dass mit einem geeigneten Wert von p alle in der Matrix wiedergegebenen Check-Knoten den gleichen Grad besitzen, so dass die Paritätskontrollmatrix für einen strukturierten Zugriff sorgt während des Dekodierens des LDPC-Codewortes durch Anordnen von Kantenwerten für eine Gruppe von in einem Speicher zueinander benachbarten Bit-Knoten und gleichzeitiges Anordnen von Kantenwerten für eine Gruppe von in dem Speicher zueinander benachbarten Check-Knoten.
  2. Verfahren nach Anspruch 1, wobei ein vorbestimmter dreieckiger Abschnitt der Paritätskontrollmatrix in dem Umwandlungsschritt Null-Werte nach Zeilen- oder Spaltenpermutation hat.
  3. Verfahren nach Anspruch 1, das weiter umfasst: das Modulieren des LDPC-Codewortes gemäß einem Modulationsschema einschließlich einer 8-PSK-Phasenumtastung, einer 16-QAM-Quadraturamplitudenmodulation und einer QPSK-Quadraturphasenumtastung.
  4. Computerlesbares Medium, das Anweisungen trägt zum Erzeugen von LDPC-Codes, wobei die Anweisungen so angelegt sind, dass sie nach Ausführung bewirken, dass ein oder mehrere Prozessoren das Verfahren nach Anspruch 1 ausführen.
  5. Verfahren nach Anspruch 1, das weiter einen äußeren Code auf den LDPC-Code anwendet, wobei der äußere Code in dem Anwendungsschritt einen von einem Bose-, Chaudhuri- und Hocquenghem-BCH-Code, einem Reed-Solomon-RS-Code und einem Hamming-Code einschließt.
  6. Verfahren nach Anspruch 1, wobei der Speicher einen ersten Abschnitt, der Kantenwerte benachbart zu Bit-Knoten vom Grad 2 enthält, und einen zweiten Abschnitt hat, der Kantenwerte benachbart zu Bit-Knoten vom Grad größer als 2 enthält.
  7. System (200) zum Erzeugen eines Low-Density-Parity-Check-Codes (LDPC-Code), wobei das System (200) umfasst: Mittel (203) zum Umwandeln einer empfangenen Eingangsnachricht in ein LDPC-Codewort unter Verwendung nur einer Paritätskontrollmatrix des LDPC-Codes ohne eine Generatormatrix des LDPC-Codes zu verwenden; und Mittel zum Ausgeben des LDPC-Codewortes, wobei die Paritätskontrollmatrix die Verbindungen der Check-Knoten mit den Bit-Knoten festlegt, wobei die Bit-Knoten in Gruppen von M Bit-Knoten unterteilt sind, wobei für jede Gruppe von Bit-Knoten jeder Bit-Knoten nj verbunden ist mit Check-Knoten, die mit m1 + jp, m2 + jp, ..., md + jp nummeriert sind, wobei j = 0 bis M-1 die Nummerierung der Bit-Knoten in der Gruppe wiedergibt und m1, m2, ..., md die mit dem ersten Bit-Knoten in jeder Gruppe verbundenen d Check-Knoten wiedergibt, wobei die Check-Knoten m1, m2, ..., md von einer Gruppe von Bit-Knoten zu der nächsten Gruppe von Bit-Knoten verschieden sind, so dass mit einem geeigneten Wert von p alle in der Matrix wiedergegebenen Check-Knoten den gleichen Grad besitzen, so dass die Paritätskontrollmatrix für einen strukturierten Zugriff während des Dekodierens des LDPC-Codewortes sorgt durch Anordnen von Kantenwerten für eine Gruppe von Bit-Knoten, die in einem Speicher zueinander benachbart sind, und gleichzeitiges Anordnen von Kantenwerten für eine Gruppe von Check-Knoten, die in dem Speicher zueinander benachbart sind.
  8. System (200) nach Anspruch 7, wobei ein vorbestimmter dreieckiger Abschnitt der Paritätskontrollmatrix nach Zeilen- oder Spaltenpermutation Null-Werte hat.
  9. System (200) nach Anspruch 7, wobei das LDPC-Codewort moduliert ist gemäß einem Modulationsschema, das eines von einer 8-PSK-Phaseumtastung, einer 16-QAM-Quadraturamplitudenmodulation und einer QPSK-Quadraturphasenumtastung einschließt.
DE60313832T 2002-07-26 2003-07-07 Verfahren und System für die Generierung von Low Density Parity Check (LDPC) Codes Expired - Lifetime DE60313832T2 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US39876002P 2002-07-26 2002-07-26
US398760P 2002-07-26
US10/353,230 US20040019845A1 (en) 2002-07-26 2003-01-28 Method and system for generating low density parity check codes
US353230 2003-01-28

Publications (2)

Publication Number Publication Date
DE60313832D1 DE60313832D1 (de) 2007-06-28
DE60313832T2 true DE60313832T2 (de) 2008-01-24

Family

ID=30002875

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60313832T Expired - Lifetime DE60313832T2 (de) 2002-07-26 2003-07-07 Verfahren und System für die Generierung von Low Density Parity Check (LDPC) Codes

Country Status (8)

Country Link
EP (1) EP1385270B1 (de)
JP (2) JP4422436B2 (de)
KR (1) KR100543154B1 (de)
CN (1) CN1481130A (de)
AT (1) ATE362675T1 (de)
DE (1) DE60313832T2 (de)
DK (1) DK1385270T3 (de)
ES (1) ES2285049T3 (de)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7234098B2 (en) * 2003-10-27 2007-06-19 The Directv Group, Inc. Method and apparatus for providing reduced memory low density parity check (LDPC) codes
KR20050052184A (ko) * 2003-11-29 2005-06-02 삼성전자주식회사 저밀도 패리티 검사 부호화를 위한 인터리빙 방법
CN1310433C (zh) * 2004-03-29 2007-04-11 上海交通大学 采用分层低密度校验码的信道编码方法
CN101924565B (zh) * 2004-04-02 2014-10-15 苹果公司 Ldpc编码器、解码器、系统及方法
KR100540663B1 (ko) * 2004-04-19 2006-01-10 삼성전자주식회사 저밀도 패리티 체크 코딩의 패리티 체크 행렬 변환 방법
US7171603B2 (en) 2004-05-06 2007-01-30 Motorola, Inc. Method and apparatus for encoding and decoding data
EP1782540B1 (de) * 2004-07-27 2013-07-24 LG Electronics Inc. Verfahren zur codierung und decodierung unter verwendung eines paritätsprüfcodes niedriger dichte
CN1993892B (zh) * 2004-08-10 2012-12-26 三星电子株式会社 用于编码和解码块低密度奇偶校验码的装置和方法
ATE495582T1 (de) * 2004-08-13 2011-01-15 Dtvg Licensing Inc Codeentwurfs- und implementierungsverbesserungen für wenig dichte paritätsprüfcodes für kanäle mit mehreren eingängen und mehreren ausgängen
CN101032084B (zh) * 2004-10-01 2010-05-05 汤姆逊许可公司 用于接收器的方法和设备
KR100846869B1 (ko) 2004-12-16 2008-07-16 한국전자통신연구원 저 복잡도 ldpc복호 장치 및 그 방법
US7617439B2 (en) * 2005-01-10 2009-11-10 Broadcom Corporation Algebraic construction of LDPC (Low Density Parity Check) codes with corresponding parity check matrix having CSI (Cyclic Shifted Identity) sub-matrices
CN100414841C (zh) * 2005-05-11 2008-08-27 电子科技大学 一种ldpc编码的实现方法
KR100727316B1 (ko) * 2005-06-01 2007-06-12 삼성전자주식회사 저밀도채리티체크 채널 디코딩 방법 및 장치
CN100424999C (zh) * 2005-06-06 2008-10-08 重庆市成鑫机电制造有限公司 逐条添加边算法的多进制低密度奇偶校验码编译码方法
US8229021B2 (en) 2005-09-06 2012-07-24 Kddi Corporation Data transmission system and data transmission method
CN100438394C (zh) * 2006-01-12 2008-11-26 北京大学 非规则置换矩阵ldpc码的构造方法及装置
CN101005333B (zh) * 2006-01-17 2010-05-12 华为技术有限公司 低密度奇偶校验码编码方法
KR100899738B1 (ko) * 2006-02-02 2009-05-27 삼성전자주식회사 노드 메모리 기반의 ldpc 복호기 및 복호방법
CN100546205C (zh) 2006-04-29 2009-09-30 北京泰美世纪科技有限公司 构造低密度奇偶校验码的方法、译码方法及其传输系统
WO2007145491A1 (en) * 2006-06-15 2007-12-21 Samsung Electronics Co., Ltd. Apparatus and method of encoding/decoding block low density parity check codes in a communication system
KR101154995B1 (ko) 2006-07-14 2012-06-15 엘지전자 주식회사 Ldpc 부호화를 수행하는 방법
JP4603518B2 (ja) * 2006-07-27 2010-12-22 日本放送協会 符号化装置及び復号化装置
US8230299B2 (en) 2006-09-18 2012-07-24 Availink, Inc. Interleaving scheme for an LDPC coded QPSK/8PSK system
WO2008034291A1 (en) * 2006-09-18 2008-03-27 Ming Yang An interleaving scheme for an ldpc coded qpsk/8psk system
CN101127581B (zh) * 2007-09-07 2010-09-08 普天信息技术研究院有限公司 一种ldpc编码调制的映射及逆映射方法和设备
CN101459430B (zh) * 2007-12-14 2010-12-08 中兴通讯股份有限公司 低密度生成矩阵码的编码方法及装置
KR101431268B1 (ko) 2007-12-14 2014-08-20 삼성전자주식회사 직렬 부호화를 위한 저밀도 패리티 검사 부호의 생성 장치및 방법
CN103957373B (zh) * 2009-02-06 2018-01-19 Lg电子株式会社 用于发送和接收信号的装置和用于发送和接收信号的方法
US8464123B2 (en) 2009-05-07 2013-06-11 Ramot At Tel Aviv University Ltd. Matrix structure for block encoding
US9252813B2 (en) 2009-05-27 2016-02-02 Novelsat Ltd. Iterative decoding of LDPC codes with iteration scheduling
CN102386995A (zh) * 2010-09-01 2012-03-21 国家广播电影电视总局广播科学研究院 低密度奇偶校验码校验矩阵构造方法及装置
US9264182B2 (en) 2012-09-13 2016-02-16 Novelsat Ltd. Iterative receiver loop
CN112054807B (zh) * 2015-02-25 2023-09-01 三星电子株式会社 发送方法和接收方法
WO2019003301A1 (ja) * 2017-06-27 2019-01-03 三菱電機株式会社 尤度生成装置
CN108462496B (zh) * 2018-04-24 2021-04-02 成都吉纬科技有限公司 一种基于随机比特流更新的ldpc译码器
CN108880563A (zh) * 2018-06-14 2018-11-23 东南大学 一种ldpc码的改进编码方法及系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
MXPA02009140A (es) * 2001-01-16 2005-07-01 Koninkl Philips Electronics Nv Trazo de un mapa de una modulacion codificada con interhoja de bit (bicm).
JP3917563B2 (ja) * 2002-07-03 2007-05-23 ヒューズ・エレクトロニクス・コーポレーション 低密度のパリティチェック(ldpc)コードをデコードする方法およびシステム

Also Published As

Publication number Publication date
EP1385270A2 (de) 2004-01-28
KR20040010116A (ko) 2004-01-31
EP1385270B1 (de) 2007-05-16
JP2004064756A (ja) 2004-02-26
DE60313832D1 (de) 2007-06-28
JP4422436B2 (ja) 2010-02-24
CN1481130A (zh) 2004-03-10
DK1385270T3 (da) 2007-09-24
EP1385270A3 (de) 2004-02-04
ATE362675T1 (de) 2007-06-15
KR100543154B1 (ko) 2006-01-20
ES2285049T3 (es) 2007-11-16
JP2010050994A (ja) 2010-03-04

Similar Documents

Publication Publication Date Title
DE60313832T2 (de) Verfahren und System für die Generierung von Low Density Parity Check (LDPC) Codes
DE602004003324T2 (de) Verfahren und Vorrichtung für die Encodierung von Low Density Parity Check (LDPC) Codes langer und kurzer Blocklänge
EP1525664B1 (de) Methode und verfahren für die speicherverwaltung in low density parity check (ldpc) decodern
DE602004011861T2 (de) Verfahren und Vorrichtung für die Encodierung von Low Density Parity Check (LDPC) Codes kurzer Blocklänge
US8095854B2 (en) Method and system for generating low density parity check codes
US8615699B2 (en) Method and system for routing in low density parity check (LDPC) decoders
US8483308B2 (en) Satellite communication system utilizing low density parity check codes
US7020829B2 (en) Method and system for decoding low density parity check (LDPC) codes
US6829308B2 (en) Satellite communication system utilizing low density parity check codes
EP1494358A2 (de) Methode und System zur Generierung parallel decodierbarer Low Density Parity Check (LDPC) Codes
EP1379001A2 (de) Verfahren und System für die Decodierung von Low Density Parity Check (LDPC) Codes
DE112005003790T5 (de) Verallgemeinerter Mehrschwellen-Decodierer für Codes für Paritätsprüfungen geringer Dichte
EP2190123A2 (de) Verfahren und System für die Generierung von Low Density Parity Check (LDPC) Codes
DE60313322T2 (de) Codierung von ldpc-codes (low-density parity check) durch verwendung einer strukturierten paritätsprüfmatrix
Lahmer et al. Iterative threshold decoding of one step majority logic decodable block codes
DE102022128556A1 (de) Verfahren und system zur fehlerkorrekturcodierung basierend auf verallgemeinerten verketteten codes mit eingeschränkten fehlerwerten für codebasierte kryptographie
DE10120156A1 (de) Turbotrelliscodierte Modulation

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: DTVG LICENSING,INC., EI SEGUNDO, CALIF., US