DE602004001548T2 - Verfahren und Vorrichtung zur Decodierung eines Low Density Partity Check (LDPC) Codes in einem Kommunikationssystem - Google Patents

Verfahren und Vorrichtung zur Decodierung eines Low Density Partity Check (LDPC) Codes in einem Kommunikationssystem Download PDF

Info

Publication number
DE602004001548T2
DE602004001548T2 DE602004001548T DE602004001548T DE602004001548T2 DE 602004001548 T2 DE602004001548 T2 DE 602004001548T2 DE 602004001548 T DE602004001548 T DE 602004001548T DE 602004001548 T DE602004001548 T DE 602004001548T DE 602004001548 T2 DE602004001548 T2 DE 602004001548T2
Authority
DE
Germany
Prior art keywords
value
values
decoding
bit
node
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.)
Active
Application number
DE602004001548T
Other languages
English (en)
Other versions
DE602004001548D1 (de
Inventor
Ltd. Seung-Bum c/o Samsung Electronics Co Suh
Ltd. Hong-Yeop c/o Samsung Electronics Co Song
Min-Ho Yonsei University Shin
Joon-Sung Yonsei University Kim
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.)
Samsung Electronics Co Ltd
Yonsei University
Original Assignee
Samsung Electronics Co Ltd
Yonsei University
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
Application filed by Samsung Electronics Co Ltd, Yonsei University filed Critical Samsung Electronics Co Ltd
Publication of DE602004001548D1 publication Critical patent/DE602004001548D1/de
Application granted granted Critical
Publication of DE602004001548T2 publication Critical patent/DE602004001548T2/de
Anticipated expiration legal-status Critical
Active legal-status Critical Current

Links

Classifications

    • 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/3905Maximum a posteriori probability [MAP] decoding or approximations thereof based on trellis or lattice decoding, e.g. forward-backward algorithm, log-MAP decoding, max-log-MAP decoding
    • H03M13/3927Log-Likelihood Ratio [LLR] computation by combination of forward and backward metrics into LLRs
    • 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
    • H03M13/1117Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule
    • 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
    • H03M13/1117Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule
    • H03M13/112Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule with correction functions for the min-sum rule, e.g. using an offset or a scaling factor
    • 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/1131Scheduling of bit node or check node processing
    • 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/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing
    • H03M13/6505Memory efficient implementations
    • 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/65Purpose and implementation aspects
    • H03M13/6577Representation or format of variables, register sizes or word-lengths and quantization
    • H03M13/658Scaling by multiplication or division
    • 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/65Purpose and implementation aspects
    • H03M13/6577Representation or format of variables, register sizes or word-lengths and quantization
    • H03M13/6588Compression or short representation of variables

Description

  • HINTERGRUND DER ERFINDUNG
  • 1. Feld der Erfindung
  • Die vorliegende Erfindung steht in allgemeinem Zusammenhang mit einer Vorwärtsfehlerkorrekturvorrichtung und Verfahren zur Benutzung in einem digitalen Kommunikationssystem, und im Speziellen mit einer Vorrichtung und Verfahren zum Decodieren eines FEC-Code in einem digitalen Kommunikationssystem für das Übertragen von Hochgeschwindigkeitsdaten.
  • 2. Beschreibung des technischen Feldes
  • Herkömmlicherweise erzeugen digitale Kommunikationssysteme viele Fehler aufgrund von auf dem Übertragungsweg erzeugten Rauschen. Dem gemäß wurde über die Jahre eine Vielzahl von Lösungen präsentiert, um diese Fehler zu korrigieren oder zu eliminieren. Ein drahtloses Kommunikationssystem, welches auf der 3GPP- oder 3GGP2-Spezifikation basiert, schlägt die Benutzung von Konvolutionscodes vor, um Sprach- und Steuersignale zu übertragen und schlägt des Weiteren die Benutzung von Turbocodes vor, um effektiv Hochgeschwindigkeitsdaten zu übertragen. Der Turbocode für die Hochgeschwindigkeitsdatenübertragung hat einen Vorteil darin, dass dieser eine extrem niedrige Bitfehlerrate BER (Bit Error Rate) bei einem niedrigen Signal zu Rauschen Verhältnis SNR (Signal to Noise Ratio) besitzt, aber es hat etliche Nachteile bezüglich seiner Leistungsfähigkeit und Implementation.
  • Erstens hat der Turbocode einen relativ kleinen Minimalabstand eines Codewortes. Deshalb kann bei dem Decodieren eines Signals, welches mit dem Turbocode codiert wurde, ein sogenannter Error Floor (Grundfehler) bei einer gewünschten BER auftreten. Der Turbocode hat einen weiteren Nachteil darin, dass dieser eine relativ hohe unerkannte Fehlerwahrscheinlichkeit, in Zusammenhang mit einem Codewort, des Erzeugens von Fehlern in einem Decodiermodus besitzt.
  • Zweitens benötigt ein Decodierprozess für einen Turbocode eine effektive Decodieranhaltefunktion, um die Decodierzeit und die Leistungsaufnahme zu reduzieren, so dass es entweder einen CRC (Cyclic Redundancy Check)-Vorgang benötigt, um Fehler in jedem iterativen Decodiervorgang aufzuspüren oder einen zusätzlichen Algorithmus benötigt, um einen Decodieranhalteprozess durchzuführen, was in der Implementation einer effektiven Decodieranhaltefunktion resultiert.
  • Drittens kann ein Algorithmus für das Decodieren eines Turbocodes nicht in der Form einer Parallelarchitektur implementiert werden, was in einer Beschränkung der Verbesserung einer Decodiergeschwindigkeit resultiert.
  • Deshalb wurde in letzter Zeit ein LDPC (Low Density Parity Check/Niedrigdichteparitätskontrolle)-Code, welcher eine exzellente Leistungsfähigkeit ausweist und als ein neuer Code wirkt, der die zuvor erwähnten Probleme löst, entwickelt. Der LDPC-Code enthält eine sehr kleine Anzahl von Einsen in den einzelnen Zeilen und Spalten einer Paritätskontrollmatrix für die Definition eines Codes und seine Architektur kann durch einen Faktorengraf (factor graph) definiert werden, welcher einen Kontrollknoten, einen variablen Knoten und eine Kante zum Verbinden des Kontrollknotens mit dem variablen Knoten enthält. Der LDPC-Code hat einen größeren Minimalabstand im Vergleich zu einem Turbocode, so dass ein Error Floor nur bei einem im Vergleich zu einem Turbocode sehr niedrigen BER auftritt und die Wahrscheinlichkeit eines unentdeckten Fehlers für ein fehlerhaftes Codewort sehr klein ist und sich experimentell dem Wert Null nähert. Zusätzlich kann der LDPC-Code in Form einer Parallelarchitektur implementiert werden, was in einer reduzierten Decodierzeit resultiert. Der LDPC-Code kann eine effektive Decodieranhaltefunktion durchführen, ohne die Benutzung eines Overhead, wie z.B. ein CRC oder eines spezifischen Decodieranhaltealgorithmus, welcher hinzugefügt wurde durch die Benutzung eines Paritätskontrollvorgangs, welcher in jedem iterativen Decodiervorgang durchgeführt wird.
  • Der LDPC-Code ist ein linearer Blockcode, bei welchem die meisten Elemente einer Paritätskontrollmatrix H gleich "0" sind und benutzt ein ,wahrscheinliches' (probable) iteratives Decodierverfahren unter Benutzung einer einfachen Paritätskontrollgleichung, was die Leistungsfähigkeit verbessert. Das Decodierverfahren für einen LDPC ist auf die Suche nach dem wahrscheinlichsten Codewort ausgerichtet, durch welches die Multiplikation eines empfangenen Signalvektors mit einer Paritätskontrollmatrix dem Wert von "0" entspricht.
  • Ein Summen-Produktalgorithmus, welcher als ein repräsentativer LDPC-Code Decodiervorgang agiert, führt einen iterativen Soft-Decision Decodiervorgang unter Benutzung eines Wahrscheinlichkeitswertes durch, um das obige Codewort zu suchen. Genauer aktualisiert der Summen-Produktalgorithmus einen Wahrscheinlichkeitswert eines jeden Bit unter Benutzung eines empfangenen Vektors und einer Kanalcharakteristik für jeden iterativen Decodierprozess, so dass nach dem Codewort gesucht werden kann, welches beim Multiplizieren mit der Paritätskontrollmatrix den Wert "0" ergibt.
  • Ein anderes LDPC-Code Decodierverfahren ist ein LLR-BP (LLR-Belief Propagation, LLR-Überzeugungsausbreitung)-Algorithmus zum Berechnen einer Nachricht, welche unter Benutzung eines LLR (Log-Likelihood Ratio) propagiert. Außer bei einer Ausnahme, bei welcher der LLR-Wert anstelle eines reellen Wahrscheinlichkeitswertes während der Berechnungszeit der propagierten Nachricht benutzt wird, kann der LLR-BP-Algorithmus als der gleiche Algorithmus des Summen-Produktalgorithmus angesehen werden. Der LLR-BP-Algorithmus hat eine exzellente Leistungsfähigkeit, da er sich, unter der Annahme dass die Länge eines Codewortes ausreichend lang ist, an Shannons theoretische Kanalauslastungsgrenze annähert. Nichtsdestotrotz benutzt der LLR-BP-Algorithmus eine Logarithmusfunktion und eine Tangens-Hyperbolicus (tanh)-Funktion zur Benutzung in dem iterativen Decodierprozess, wodurch die Komplexität und Schwierigkeit der Berechnung in ihre realen Implementation gesteigert wird.
  • Demgemäß wurden verbesserte Algorithmen vorgeschlagen von Chen und Fossorier et al., welche eine Veröffentlichung mit dem Titel "REDUCED COMPLEXITY ITERATIVE DECODING OF LOW DENSITY PARITY CHECK CODES BASED ON BELIEF PROPAGATION" in IEEE trans. Commun., Vol. 47, Seiten 673–680, Mai 1999 veröffentlicht sind.
  • Die obigen Algorithmen sind UMP-BP (Uniformly Most Powerful-Belief Propagation)-Algorithmen und ein Normalized-BP (Normalized-Belief Propagation)-Algorithmus, welche die iterative Decodierkomplexität reduzieren und geringere Leistungsfähigkeitseinbußen erfahren als im Vergleich mit den konventionellen LLR-BP-Algorithmen. Der UMP-BP-Algorithmus vermeidet die Benutzung einer Log-funktion und einer tanh-Funktion in einem zeilenweisen iterativen Decodierprozess des LLR-BP-Algorithmus, wählt einen Bitwert aus, der das kleinste LLR aus der Vielzahl von Bits aufweist, welche mit einer gegebenen Paritätskontrollgleichung zusammenhängen und nähert den ausgewählten Bitwert mit einer merklich reduzierten Komplexität. Der Normalized-BP-Algorithmus nähert den zeilenweisen iterativen Decodierprozess in der gleichen Weise, wie der UMP-BP-Algorithmus und reduziert hierbei die Berechnungskomplexität. Das UMP-BP-Verfahren führt das Konzept eines standardisierten Faktors ein, so dass dieses verhindert, dass ein Wert einer Nachricht größer wird als der eines LLR-BP-Algorithmus aufgrund der LLR-Auslassung in einer solchen Näherung. Deshalb kann der UMP-BP-Algorithmus eine Leistung implementieren, welche mit der eines LLR-BP-Algorithmus vergleichbar ist. Der UMP-BP-Algorithmus adaptiert eine spezifische Auslassung, um die Komplexität zu reduzieren, so dass das Bit-gemittelte LLR größer ist als das eines LLR-BP-Algorithmus. Dafür adaptiert der Normalized-BP-Algorithmus einen Normalisierungsfaktor-α-Schema zum Reduzieren der Differenz zwischen den obigen zwei LLR-Werten, so dass es ermöglicht wird, dass der mittlere Wert von einzelnen LLRs denen des LLR-BP-Algorithmus ähnelt, was in einer exzellenten Leistungsfähigkeit resultiert, welche der des UMP-BP-Algorithmus überlegen ist.
  • 1 ist ein konzeptionelles Diagramm, welches die Beziehung zwischen einem Kontrollknoten (check node) und einem variablen Knoten illustriert, um den Faktorisierungsvorgang für das Decodieren des LDPC-Codes zu erklären. Bezugnehmend auf 1 werden Symbole, die mit der LDPC-Codematrix codiert wurden, über kabellose Kanalumgebungen übertragen und die einzelnen codierten Symbole gehen in Bitknoten ein (..., 111, 112, 113, 114, ....). Die Bitknoten (..., 111, 112, 113, 114, ....) empfangen LLR-Werte von eingegangenen Codesymbolen und übertragen die empfangenen LLR-Werte zu einzelnen Kontrollknoten (..., 121, 122, 123, 124, 225, ...). Die einzelnen Kontrollknoten (..., 121, 122, 123, 124, 225, ...) führen Operationen unter Benutzung der zuvor genannten oder anderer Verfahren durch und übertragen die Resultate an die Bitknoten (..., 111, 112, 113, 114, ....). Es wird in einem temporären Decodiervorgang festgestellt, ob die an die Bitknoten (..., 111, 112, 113, 114, ....) übertragenen Werte den Paritätskontrollertordemissen entsprechen. Wenn festgestellt wurde, dass den Paritätskontrollertordemissen entsprechen wird, wird der Decodiervorgang für die entsprechenden Symbole beendet. Wenn jedoch festgestellt wird, dass den Paritätskontrollerfordernissen nicht entsprechen wird, werden die Werte unter Benutzung eines Übertragungs-/Bearbeitungsverfahrens zwischen den Bitknoten (..., 111, 112, 113, 114, ....) und Kontrollknoten (..., 121, 122, 123, 124, 225, ...) erneut berechnet.
  • 2 ist ein Flussdiagramm, welches den Normalized-BP-Algorithmus illustriert. Bezugnehmend auf 2, nach dem Empfangen der codierten Symbole über einen kabellosen Kanal, führt der LDPC-Decoder einen Initialisierungsvorgang in Schritt 200 durch. Der Initialisierungsvorgang bestimmt Werte 'Zmn' der Bitknoten und bestimmt, dass die Werte 'Zmn' Werte der individuellen, ursprünglich-eingegangenen, codierten Symbole yn sind. Die Werte 'Zmn' der Bitknoten stellen ein LLR fest, welches von einem Bitknoten N bis zu einem Kontrollknoten m reicht. Nach Beendigung des Anfangswertfeststellungsvorgangs führen einzelne Bitknoten (..., 111, 112, 113, 115, ....) des LDPC-Decoders Operationen für Bits durch, die in einem zeilenweisen iterativen Decodiervorgang in Schritt 202 berechnet werden. Eine solche Operation bestimmt Anfangswerte wie in Gleichung 2 gezeigt und wendet eine Modulo-2-Summen-Operation auf die verbleibenden Bits an, unter Benutzung aller Paritätskontrollgleichungen welche mit den auf der Basis der berechneten Werte zu berechnenden Bits in Verbindung stehen. [Gleichung 1]
    Figure 00050001
  • Bezugnehmend auf Gleichung 1, repräsentiert σmn Werte, welche von einem Bitknoten n durch einen m-ten Kontrollknoten empfangen wurden und σm ist ein Wert, der von einem m-ten Bitknoten ermittelt wurde.
  • Nachdem die vorgenannten Berechnungen durchgeführt wurden, wählen individuelle Bitknoten (..., 111, 112, 113, 115, ....) unter Benutzung des berechneten Wertes ihre Codes derart aus, dass es ermöglicht wird dass die Paritätskontrollgleichung dem Wert 0 entspricht. Danach berechnet der LDPC-Decodierer die LLR-Werte von individuellen Auswahlcodes der Bitknoten (..., 111, 112, 113, 115, ....) unter Benutzung von Gleichung 2 in Schritt 204. Die Gleichung 2 korrigiert einen mittleren Nachrichtenwert unter Benutzung des vorgenannten standardisierten Faktors. [Gleichung 2]
    Figure 00050002
  • Der, in Gleichung 2 gezeigte, zeilenweise iterative Decodierprozess, fasst einen anfänglich erhaltenen Wert und Berechnungswerte von individuellen Paritätskontrollgleichungen als einen Wert zusammen, so dass dieses einen zu berechnenden Bit-Code festlegt. Gleichung 2 stellt einen zeilenweisen iterativen Decodierprozess für den Normalized-BP-Algorithmus dar, worin Zmn ein LLR des Bits n, welches von dem Bit n zu einer Paritätskontrollgleichung m propagiert ist, ist, und α ein Standardisierungsfaktor zur Benutzung in dem Normalized-BP-Algorithmus ist. Während der anfänglichen Laufzeit (Driving-Time) des Normalized-BP-Algorithmus werden LLR-Werte von individuellen Bits mit einem empfangenen Wert initialisiert. Wenn die Codes von allen Bits unter Benutzung des zuvor erwähnten Prozesses festgestellt wurden, führt der LDPC-Decodierer einen spaltenweisen iterativen Decodierprozess in Schritt 206 durch. In diesem Fall ist der spaltenweise iterative Decodierprozess ein Prozess zum Aktualisieren der Werte von Zmn, und kann durch Gleichung 3 dargestellt werden: [Gleichung 3]
    Figure 00060001
  • Wenn der spaltenweise iterative Decodierprozess unter Benutzung von Gleichung 3 durchgeführt werden kann, bestimmt der LDPC-Decodierer in Schritt 208, ob die Anzahl von iterativen Decodiervorgängen gleich einer vorgeschriebenen maximalen Zahl von iterativen Decodiervorgängen ist. Die maximale Zahl von iterativen Decodiervorgängen wird benutzt, um die Decodieroperation, unter der Bedingung dass eine sehr geringe Decodiererfolgswahrscheinlichkeit beim kontinuierlichen Ausführen eines iterativen Decodiervorgangs gegeben ist, anzuhalten. Wenn der LDPC-Decodierer in Schritt 208 den Decodiervorgang so oft, wie die maximale Anzahl von Decodiervorgängen angibt, durchgeführt hat, führt dieser einen Decodier-Fehler-Prozess in Schritt 212 durch. Jedoch, wenn der LDPC-Decodierer nicht die maximale Anzahl von Decodiervorgängen erreicht hat, führt dieser einen temporären Decodiervorgang in Schritt 210 durch. Der temporären Decodiervorgang kann durchgeführt werden unter Benutzung von Gleichung 4: [Gleichung 4]
    Figure 00070001
  • Der Wert von Zn kann unter Benutzung von Gleichung 4 berechnet werden, so dass die Werte von ĉ der Codesymbole ermittelt werden; es führt der LDPC-Decodierer eine Paritätskontrolle durch, so dass dieser feststellt, ob einem Paritätskontrollresultat entsprochen wird oder nicht in Schritt 214. Die Paritätskontrolle bestimmt eine Matrix, bei welcher die empfangenen codierten Symbole einer vorbestimmten Bedingung von Gleichung 5 entsprechen müssen, so dass deren Resultat erkannt werden kann durch Feststellen, ob die codierten Symbole der vorbestimmten Bedingung von Gleichung 5 entsprechen:
  • [Gleichung 5]
    • Hĉ = O
  • Wenn das Paritätskontrollresultat von Gleichung 5 einen guten Zustand identifiziert, d.h. in dem Fall des erfolgreichen Bestehens des Paritätskontrollvorgangs, beendet der LDPC-Decodierer den Decodiervorgang für die entsprechenden Symbole in Schritt 216. Jedoch, wenn dem Paritätskontrollvorgang nicht entsprochen wird, kehrt der LDPC-Decodierer zu Schritt 202 zurück, um die zuvor beschriebenen Schritte erneut durchzuführen, so dass die iterativen Decodierschritte kontinuierlich durchgeführt werden.
  • Der Normalized-BP-Algorithmus reduziert die Komplexität im Vergleich zu dem LLR-BP-Algorithmus beträchtlich. Jedoch erfährt der Normalized-BP-Algorithmus eine größere BER-Leistungsfähigkeitsverschlechterung im Vergleich zu dem LLR-BP-Algorithmus. 3 ist ein Graph der ein Simulationsergebnis des Vergleichs zwischen der Leistungsfähigkeit gemäß den Verfahren zum Decodieren eines LDPC-Codes, der eine Blocklänge von 20000 hat. In Bezug auf 3 ist das BER des Normalized-BP-Algorithmus um ungefähr 0,07 dB kleiner als das des LLR BP-Algorithmus. Genauer gesagt hat der Normalized-BP-Algorithmus den Nachteil, dass dieser eine unvermeidbare Leistungsfähigkeitsverschlechterung erfährt.
  • In "Near Optimum Universal Belief Propagation Based Decoding of Low-Density Parity Check Codes", veröffentlicht in IEEE Transactions on Communications, Band 50, Nr. 3, März 2002, wird ein Belief-Propagation-Vorgang, basierend auf Decodieralgorithmen welche Normalisierung anwenden, vorgeschlagen um die Genauigkeit der Soft Values zu verbessern. Es wird durch Simulationen gezeigt, wie die Normalisationsfaktoren erhalten werden können und es wird beschrieben, wie diese theoretisch gefunden werden können.
  • In "Reduced Complexity Iterative Decoding of Low-Density Parity Check Codes Based on Belief Propagation" in IEEE Transactions on Communications, Band 7, Nr. 5, Mai 1990, werden zwei vereinfachte Versionen des Belief-Propagation-Algorithmus für schnelle iterative Decodierung von LDPC-Codes in dem additiven weißen Gaußschen Rauschkanal vorgeschlagen. Beide Algorithmen benötigen lediglich reelle Additionen.
  • In "Iterative Reliability-Based Decoding of Low-Density Parity Check Codes", veröffentlicht in IEEE Journal of Selected Areas in Communications, Band 19, Nr. 5, Mai 2001 verlässlichkeitsbasiertes Decodieren, kombiniert mit dem Belief-Propagation-Decodieren für LDPC-Codes. Bei jeder Iteration werden die "Soft"-Ausgabewerte, welche durch den Belief-Propagation-Algorithmus geliefert werden, als Verlässlichkeitswerte benutzt, um ein Decodieren des Codes mit reduzierter Komplexität bei dem "Soft"-Entscheidungsdecodieren durchzuführen.
  • In "Implementation of Near Shannon Limit Error-Correcting Codes Using Reconfigurable Hardware", veröffentlicht in Proceedings of IEEE Symposium on Field-Programmable Custom Computing Machines, Seiten 217–226, werden Turbocodes und LDPC-Codes in Bezug auf deren Implementierbarkeit in Hardware bewertet. Es wird gefolgert, das LDPC-Codes geeigneter sind, da deren Decodierer besser parallelisierbar sind.
  • In "Density Evolution for Two Improved BP-Based Decoding Algorithms of LDPC-Codes", IEEE Communications Letters, Band 7, Nr. 5, Mai 2002, wird die Leistungsfähigkeit von zwei verbesserten Belief-Propagation basierten Decodieralgorithmen für LDPC-Codes analysiert. Die numerischen Berechnungen zeigen, dass mit geeignet gewählten Parametern für jeden dieser Algorithmen Leistungsfähigkeiten sehr nah an dem Belief-Propagation-Algorithmus erreicht werden können.
  • Deshalb wurde die vorliegende Erfindung gestaltet im Hinblick auf die obigen und weitere Probleme und es ist Aufgabe der vorliegenden Erfindung, eine Vorrichtung und ein Verfahren zur Verfügung zu stellen zum Verbessern der Decodierleistungsfähigkeit des Normalized-BP-Algorithmus in einem LDPC-Code-Decodierer.
  • Diese Aufgabe wird gelöst durch den Gegenstand der unabhängigen Ansprüche.
  • Bevorzugte Ausführungsformen werden in den abhängigen Ansprüchen definiert.
  • Es ist ein anderer Aspekt der vorliegenden Erfindung, eine Decodiervorrichtung zur Benutzung in einer LDPC-Decodiervorrichtung zur Verfügung zu stellen, welche in der Form einer einfacheren Konfiguration als der LLR-BP-Algorithmus implementiert werden kann, und ein Verfahren, um selbige zu steuern.
  • Es ist noch ein weiterer Aspekt der vorliegenden Erfindung, eine Decodiervorrichtung zur Benutzung in einer LDPC-Code Decodiervorrichtung zur Verfügung zu stellen, welche die Decodierleistungsfähigkeit des Normalized-BP-Algorithmus verbessert und zur gleichen Zeit eine ähnliche Leistungsfähigkeit wie die des LLR-BP-Algorithmus bietet, und ein Verfahren, um selbige zu steuern.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die obige und andere Aufgaben, Merkmale und Vorteile der vorliegenden Erfindung werden besser verstanden durch die nachfolgende detaillierte Beschreibung in Zusammenhang mit den begleitenden Zeichnungen, in welchen:
  • 1 ein Konzeptdiagramm ist, welches die Beziehung zwischen Kontrollknoten und variablen Knoten illustriert, um einen Faktorisierungsprozess zum Decodieren der LDPC-Codes zu erklären;
  • 2 ist ein Flussdiagramm, welches den Normalized-BP-Algorithmus unter der Vielzahl von LDPC-Code-Decodierverfahren illustriert;
  • 3 ist ein Graph mit Simulationsergebnissen für einen Vergleich zwischen den Leistungsfähigkeiten gemäß dem Verfahren für das Decodieren eines LDPC-Codes, der eine Blocklänge von 20000 besitzt;
  • 4 ist ein Flussdiagramm, welches ein Steuerverfahren illustriert für die Benutzung in einem LDPC-Code-Decodierer gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung;
  • 5 ist ein Blockdiagramm, welches den LDPC-Code-Decodierer gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung illustriert; und
  • 6 ein Graph ist, der ein SNR-Simulationsergebnis illustriert zwischen dem erfindungsgemäßen Algorithmus, dem LLR-BP-Algorithmus und dem Normalized-BP-Algorithmus, wenn ein LDPC-Code der Blocklänge von 20000 gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung decodiert wird.
  • DETAILLIERTE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
  • Bevorzugte Ausführungsformen der vorliegenden Erfindung werden im Detail beschrieben in Bezug auf die beigefügten Zeichnungen. In den Zeichnungen werden die gleichen oder ähnliche Elemente mit den gleichen Bezugszeichen versehen, obwohl diese in unterschiedlichen Zeichnungen gezeigt werden. In der nachfolgenden Beschreibung wird eine detaillierte Beschreibung von bekannten Funktionen und Konfigurationen ausgelassen, wenn dieses den Gegenstand der vorliegenden Erfindung unklar erscheinen lassen würde.
  • 4 ist ein Flussdiagramm, welches ein Steuerverfahren zur Benutzung in einem LDPC-Code-Decodierer gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung illustriert. In Bezug auf 4 führt der LDPC-Decodierer einen Initialisierungsprozess in Schritt 400 durch. Der Initialisierungsprozess ist derselbe wie der in 2 gezeigten herkömmlichen Technik. Nach dem Durchführen des Initialisierungsprozess in Schritt 400 führt der LDPC-Decodierer ein zeilengerichtetes oder zeilenweises (rowdirectional) iteratives Decodieren zum Aktualisieren der Werte σmn und σn in Schritt 402 in der gleichen Weise wie schon in Zusammenhang mit 2 beschrieben durch. Genauer gesagt, berechnet der LDPC-Decodierer die Summe der codierten Symbole, wel che in einem speziellen Kontrollknoten von individuellen Bitknoten erhalten wurde unter Benutzung des Modulo-2-Schemas, wie in Gleichung 1 gezeigt. Gemäß dem Kontrollergebnis der Werte Zmn unter Benutzung der zuvor beschriebenen Berechnung ergibt sich ein erster Fall von σmn = 0, und ein zweiter Fall für σmn = 1. Der erste Fall für σmn = 0 zeigt die Abwesenheit von Fehlern, und der zweite Fall für σmn = 1 zeigt die Anwesenheit von Fehlern.
  • Nach dem Berechnen der Werte σm und σmn in Schritt 402, bestimmt der LDPC-Decodierer, ob der Wert von σm gleich "1" ist in Schritt 404. In Schritt 404 wird bestimmt, ob der Wert von σm gleich "1" ist durch die LDPC-Code-Charakteristik. Der Wert von σm, der zu einer spezifischen Zeit berechnet wurde während des Durchführens entweder aller empfangenen codierten Symbole oder eines iterativen Decodiervorganges, war immer dafür vorgesehen dass er den Wert 1 annimmt wenn keine Fehler vorhanden sind. Jedoch beinhaltet der Wert von σm die Summe von mehreren Werten anstelle von lediglich eines Wertes, so dass es zwei Fälle gibt, in welchen der Wert von σm den Wert von 1 annimmt. Spezifischer gesagt tritt der erste Fall auf, wenn die Wahrscheinlichkeit des Erzeugens von solchen Fehlern gering ist. Der zweite Fall tritt auf, wenn die Wahrscheinlichkeit des Erzeugens von solchen Fehlern groß ist.
  • Demgemäß, wenn das Kontrollergebnis des obigen Schrittes 404 den zuvor erwähnten zwei Fällen entspricht, d.h. wenn der Wert von σm gleich 1 ist, geht der LDPC-Decodierer über zu Schritt 408. Jedoch wenn das Kontrollergebnis von Schritt 404 nicht den zwei Fällen entspricht, geht der LDPC-Decodierer zu Schritt 406. Wenn der LDPC-Decodierer zu Schritt 406 übergeht, heißt dies, dass keine Fehler vorhanden sind, so dass ein zweiter iterativer Decodiervorgang in Zeilenrichtung gemäß der vorliegenden Erfindung ausgeführt wird. In diesem Fall kann der zweite iterative Decodiervorgang durch Gleichung 6 angegeben werden: [Gleichung 6]
    Figure 00110001
  • Gleichung 6 hat einen Wert für α, welcher sich von dem der Gleichung 2 unterscheidet, welcher in der konventionellen Technik beschrieben wird. Die vorliegende Erfindung teilt den Schritt des Standardisierens der tanh-Kurve genauer auf zum Reduzieren der Zahl von LLR-Wertberechnungen auf der Basis der zuvor erwähnten Referenz. Dafür teilt die vorliegende Erfindung nicht nur einen Standardisierungsfaktor, welcher benutzt wird, wenn nur ein oder mehrere gelegetliche Fehler auftreten, genauer auf, aber auch andere Faktoren, so dass ein angemessener Faktorisierungswert ermittelt werden kann. Der erste Fall, in welchem ein Fehler in den Faktor-Wert ist, und die verbleibenden Fälle, welche keine Fehler in den Faktor-Werten haben, werden im Nachfolgenden detailliert beschrieben.
  • Der LDPC-Decodierer führt ein zeilenweises iteratives Decodieren unter Benutzung eines zweiten Standardisierungsfaktors α2, wie in Gleichung 6 gezeigt, in Schritt 406 durch.
  • Wenn der Wert von σm gleich 1 ist, stellt der LDPC-Decodierer in Schritt 408 fest, ob der Wert von Zmn ein Minimalwert ist. Wenn festgestellt wird, dass der Wert von Zmn der Minimalwert ist im Schritt 408 geht der LDPC-Decodierer über zu Schritt 412. Jedoch wenn in Schritt 408 der Wert von Zmn kein Minimalwert ist, geht der LDPC-Decodierer zu Schritt 410 über.
  • Weil der Wert von Zmn ein LLR-Wert ist, hat dieser eine hohe Fehlererzeugungswahrscheinlichkeit unter der Bedingung, dass der Wert von Zmn gleich dem Minimalwert ist. Deshalb, wenn der Wert von Zmn gleich dem Minimalwert ist, geht der LDPC-Decodierer weiter zu Schritt 412, so dass dieser ein zeilengerichtetes iteratives Decodieren unter Benutzung eines dritten Standardisierungsfaktors durchführt gemäß der vorliegenden Erfindung im Schritt 412. Ein Verfahren zum Durchführen eines zeilengerichteten iterativen Decodiervorgangs unter Benutzung des dritten Standardisierungsfaktors kann durch die folgende Gleichung 7 dargestellt werden: [Gleichung 7]
    Figure 00120001
  • Gleichung 7 hat einen Wert für α, weicher sich von dem der Gleichung 2 unterscheidet, welcher in der konventionellen Technik beschrieben ist. Wenn der Wert von Zmn nicht gleich dem Minimalwert ist, d.h. wenn die Fehlerwahrscheinlichkeit gering ist, geht der LDPC-Decodierer weiter zu Schritt 410, so dass dieser den zeilenweisen iterativen De codiervorgang durchführt unter Benutzung des ersten Standardisierungsfaktors α1, wie in Gleichung 8 gezeigt: [Gleichung 8]
    Figure 00130001
  • Die einzelnen Standardisierungsfaktoren werden durch Gleichung 9 dargestellt:
  • [Gleichung 9]
    • α1 > α2 > α3
  • Der zweite Standardisierungsfaktor α2 unter den individuellen Standardisierungsfaktoren der vorliegenden Erfindung kann gleich dem Standardisierungsfaktor α der konventionellen Technik sein, und kann Werte annehmen, die sich von dem Standardisierungsfaktor α unterscheiden. Die individuellen Standardisierungsfaktoren der vorliegenden Erfindung müssen immer der Gleichung 9 genügen, ungeachtet des zweiten Standardisierungsfaktors α2.
  • Der LDPC-Decodierer geht zu Schritt 414 über, nachdem der zeilengerichtete iterative Decodiervorgang beendet wurde in den Schritten 406, 410 oder 412. Der LDPC-Decodierer führt einen spaltenweisen oder spaltengerichteten (column-directional) iterativen Decodiervorgang zum Aktualisieren der Werte Zmn gleich dem zuvor erwähnten LLR durch. Der spaltengerichtete iterative Decodiervorgang führt einen iterativen Decodiervorgang unter Benutzung von Gleichung 3 durch, in der gleichen Art wie in der konventionellen Technik.
  • Nach dem Beenden des spaltengerichteten iterativen Decodiervorgang geht der LDPC-Decodierer zu Schritt 416, so dass dieser feststellt, ob die Zahl der derzeitigen Iterationsvorgänge eine Maximalzahl von Iterationsvorgängen erreicht hat in Schritt 416. Wenn festgestellt wurde, dass die Zahl von jetzigen Iterationsvorgängen gleich der Maximalzahl von Iterationsvorgängen in Schritt 416 ist, informiert der LDPC-Decodierer entsprechende empfangene codierte Symbole über einen Decodierfehler in Schritt 418 derart, dass dieser einen entsprechenden Vorgang durchführt, welcher mit dem Decodierfehler einhergeht.
  • Jedoch wenn die Zahl der jetzigen Iterationsvorgänge nicht die Maximalzahl von Iterationsvorgängen in Schritt 416 erreicht, geht der LDPC-Decodierer zu Schritt 420 über, so dass dieser einen temporären Decodiervorgang wie in Gleichung 4 gezeigt, durchführt. Der LDPC-Decodierer geht zu Schritt 422, so dass dieser einen Paritätskontrollprozess durchführt unter Benutzung des temporären Decodierergebnisses. Wenn dem Paritätskontrollprozess gemäß dem Paritätskontrollergebnis entsprochen wurde, beendet der LDPC-Decodierer das Decodieren der empfangenen codierten Symbole in Schritt 424. Jedoch wenn dem Paritätskontrollprozess gemäß dem Paritätskontrollergebnis nicht entsprochen wurde, kehrt der LDPC-Decodierer zu Schritt 402 zurück, so dass dieser die zuvor beschriebenen Schritte 402 bis 422 wiederholt. Als ein Ergebnis kann der LDPC-Decodierer den LDPC korrekter decodieren.
  • 5 ist ein Blockdiagramm, welches den LDPC-Code-Decodierer gemäß einer bevorzugten Ausführungsform der voliegenden Erfindung illustriert. In Bezug auf 5 sind zwei Operatoren 501 und 502 für das Berechnen von Syndromwerten, nach dem Empfang von Paritätseingabewerten, Syndromberechner, welche auch für den Normalized-BP-Algorithmus der konventionellen Technik verwendet werden können, so dass deren detaillierte Beschreibung ausgelassen wird. Jedoch sollte angemerkt werden, dass die vorliegende Erfindung einen Syndromwert in eine Vergleichs- und Auswahleinheit 503 eingibt, wobei die konventionelle Technik einen Syndromwert, welcher durch den Normalized-BP-Algorithmus berechnet wird, lediglich als einen Paritätsausgabewert benutzt. Die Vergleichs- und Auswahleinheit 503 empfängt Verlässlichkeitswerte von individuellen codierten Symbolen als Eingabewerte. Die Vergleichs- und Auswahleinheit 503 wählt einen Verlässlichkeitswert aus den Verlässlichkeitswerten unter Benutzung des Paritätsausgabewertes aus und gibt den ausgewählten Verlässlichkeitswert aus. Der ausgegebene Verlässlichkeitswert der Vergleichs- und Auswahleinheit 503 wird ausgewählt, so dass dieser die Verlässlichkeit eines Bits mit dem niedrigsten LLR aus der Vielzahl von Bits, welche mit der Paritätskontrollgleichung verbunden sind, angibt, so dass die Vergleichs- und Auswahleinheit 503 den ausgewählten Verlässlichkeitswert ausgibt.
  • Der ausgewählte Wert wird zu einer Kontrollbaugruppe oder Steuereinheit 510 und einem Schalter 504 übertragen. Die Kontrollbaugruppe 510 gibt ein Schaltkontrollsignal unter Benutzung des Ausgabewertes der Vergleichs- und Auswahleinheit 503 aus. Die Kontrollbaugruppe 510 benutzt den Ausgabewert der Vergleichs- und Auswahleinheit 503 als Verlässlichkeitswerte, so dass diese direkt Verlässlichkeitswerte empfangen/verarbeiten kann, wenn dies nötig ist. Der Controller 510 stellt fest, ob der Wert von σm, wie in 4 gezeigt, gleich '1' ist. Wenn festgestellt wird, dass der Wert von σm gleich 1 ist, berechnet die Kontrollbaugruppe – der Controller 510 den empfangenen Wert, um festzustellen, ob der Wert von Zmn gleich einem Minimalwert ist. Wenn festgestellt wird, dass der Wert von Zmn nicht gleich dem Minimalwert ist, gibt der Controller 510 ein Schaltkontrollsignal aus, um den Schalter 504 mit einem zweiten Multiplizierer 506 zu verbinden. Wenn der Wert von Zmn gleich dem Minimalwert ist, gibt der Controller 510 ein Schaltkontrollsignal aus, um den Schalter 504 mit einem dritten Multiplizierer 507 zu verbinden. Wenn der Wert von Zmn nicht gleich dem Minimalwert ist, gibt der Controller 510 ein Schaltkontrollsignal aus. In der Zwischenzeit, wenn festgestellt wurde, dass der Wert von σm nicht gleich 1 ist, gibt der Controller 510 ein Schaltkontrollsignal aus, um den Schalter 504 mit einem ersten Multiplizierer 505 zu verbinden.
  • Wie zuvor ausgeführt, ist die Anzahl der Ausgabevorrichtungen des Schalter 504 gleich 3 und einzelne Multiplizierer 505, 506 und 507 sind mit den einzelnen Ausgabevorrichtungen verbunden. Der erste Multiplizierer 505 passt einen vorbestimmten Wert, der durch den ersten Standardisierungsfaktor α1 geteilt werden soll, als einen anderen Eingabewert an, der zweite Multiplizierer 506 passt einen vorherbestimmten Wert, der durch den zweiten Standardisierungsfaktor α2 geteilt werden soll, als einen anderen Eingabewert an, und der dritte Multiplizierer 507 passt einen vorherbestimmten Wert, der durch den zweiten Standardisierungsfaktor α3 geteilt werden soll, als einen anderen Eingabewert an. Daher wird der Wert, der durch den Schalter 504 nach dem Erzeugen durch die Vergleichs- und Auswahleinheit 503 hindurch geht, geteilt durch einen korrespondierenden Faktor, so dass dieser in der Form der geänderten Verlässlichkeitswerte der vorliegenden Erfindung erzeugt wird. Es soll erwähnt werden, dass die temporäre Decodiervorrichtung und ihre zugeordnete Paritätskontrollvorrichtung in den beigefügten Zeichnungen nicht gezeigt sind, da die temporäre Decodiervorrichtung und ihre zugeordnete Paritätskontrollvorrichtung auch in der Form der gleichen Anordnung wie im Stand der Technik implementiert werden können.
  • 6 ist ein Graph, der ein SNR-Simulationsergebnis des erfindungsgemäßen Algorithmus, des LLR-BP-Algorithmus und des Normalized-BP-Algorithmus zeigt, in dem Fall des Decodierens eines LDPC-Codes, der eine Blocklänge von 20000 hat, gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung. Der erfindungsgemäße Graph wird bezeichnet durch "modified Normalized-BP" in 6. Wie in 6 gesehen werden kann, kann das erfindungsgemäße Verfahren der vorliegenden Erfindung die Decodiervorgangsleistungsfähigkeit stärker verbessern als die konventionellen Normalized-BP-Algorithmen. Der Algorithmus erfordert im Vergleich mit dem Normalized-BP-Algorithmus keine zusätzlichen Multiplikationsoperationen, außer für einen Vorgang des Auswählens eines geeigneten Standardisierungsfaktors, so dass dieser auch Vorteile des konventionellen Normalized-BP-Algorithmus in Bezug auf Komplexität aufweist. Wie aus den Simulationsergebnissen der 6 gesehen werden kann, nähert das erfindungsgemäße Verfahren sich um 0,02 dB an den LLR-BP-Algorithmus bei gleicher Komplexität wie bei dem Normalized-BP-Algorithmus an.
  • Wie aus der obigen Beschreibung deutlich wird, ist die vorliegende Erfindung für den LDPC-Code-Decodiervorgang zur Benutzung in einem Kommunikationssystem geeignet, so dass dieser Leistungsfähigkeitseinbußen verhindert, und kann ebenso eine Decodieroperation unter Benutzung einer einfachen Schaltkreiskonfiguration durchführen.
  • Obwohl die bevorzugten Ausführungsformen der vorliegenden Erfindung zum Zwecke der Verdeutlichung offenbart wurden, wird der Fachmann zahlreiche Änderungen, Zusätze und Ersetzungen durchführen können, ohne von dem Schutzbereich der Erfindung wie in den angehängten Ansprüchen definiert, abzuweichen.

Claims (12)

  1. Eine Low-Density-Parity-Check, hiernach bezeichnet als LDPC, Codedekodiervorrichtung für das Dekodieren von LDPC-codierten Symbolen, beinhaltend: einen Syndromberechner (501, 502) zum Empfangen von Entscheidungswerten der codierten Symbole, Berechnen eines Syndromwertes unter Benutzung der empfangenen Entscheidungswerte und Ausgeben des berechneten Syndromwertes als ein Paritätsausgabewert; eine Vergleichs/Auswahl-Einheit (503) zum Empfangen von Kanal-Verlässlichkeitswerten der codierten Symbole, Empfangen des Syndromwertes; Auswählen eines Verlässlichkeitwertes unter den Kanal-Verlässlichkeitswerten, der ein niedrigstes Log-Likelihood-Verhältnis, hiernach bezeichnet als LLR, aufweist und Ausgeben des ausgewählten Verlässlichkeitswertes; einen Schalter (504) zum Schalten des ausgewählten Verlässlichkeitswertes der Vergleichs/Auswahl-Einheit zu einer von drei Ausgabevorrichtungen, jeweils entsprechend einem der von ersten bis dritten Schaltkontrollsignalen; erste bis dritte Multiplizierer (505, 506, 507) in welchen die drei Ausgabevorrichtungen des Schalters mit jeweils einem ersten Standardisierungsfaktor α1, einem zweiten Standardisierungsfaktor α2 und einem dritten Standardisierungsfaktor α3 zum Ausgeben des ausgewählten standardisierten Verlässlichkeitswertes verbunden sind; und eine Kontrollbaugruppe (510) zum Empfangen des Ausgabe-Wertes von der Vergleichs/Auswahl-Einheit und Erzeugen von einem der ersten bis dritten Schaltkontrollsignale entsprechend einer vorgegebenen Bedingung.
  2. Die Vorrichtung gemäß Anspruch 1, worin die vorgegebene Bedingung beinhaltet: eine erste Bedingung, in welcher das erste Schaltkantrollsignal den Ausgabewert der Vergleichs/Auswahl-Einheit mit dem zweiten Multiplizierer verbindet, wenn ein Wert, der sich aus einer Modulo-2-Operation der Entscheidungswerte ergibt, gleich 0 ist; eine zweite Bedingung, in welcher das zweite Schaltkontrollsignal den Ausgabewert der Vergleichs/Auswahl-Einheit mit dem dritten Multiplizierer verbindet, wenn das Ergebnis der Modulo-Operation gleich 1 ist und wenn ein LLR-Wert, der von einem Bitknoten zu einem Kontrollknoten propagiert, gleich dem Minimalwert ist, und eine dritte Bedingung, in weicher das dritte Schaltkontrollsignal den Ausgabewert der Vergleichs/Auswahl-Einheit mit dem ersten Multiplizierer verbindet, wenn das Ergebnis der Modulo-Operation gleich 1 ist und besagter LLR Wert, der von dem Bitknoten zu dem Kontrollknoten propagiert, nicht gleich dem Minimalwert ist.
  3. Die Vorrichtung gemäß Anspruch 1, worin der erste Standardisierungsfaktor α1 größer ist als der zweite Standardisierungsfaktor α2, welcher größer ist als der dritte Standardisierungsfaktor α3.
  4. Die Vorrichtung gemäß Anspruch 1, weiter beinhaltend: einen temporären Dekodierer (420) für das Durchführen eines temporären Dekodierprozesses unter Benutzung des Kanalwertes und des ausgewählten, standardisierten Verlässlichkeits-Wertes, und Beenden des Dekodierungsprozess der Symbole.
  5. Die Vorrichtung gemäß Anspruch 1, weiter beinhaltend: einen temporären Dekodierer (420) für das Durchführen eines temporären Dekodierprozesses, unter Benutzung des Kanalwertes und des ausgewählten, standardisierten Verlässlichkeitsausgabewertes, und Durchführen eines iterativen Dekodierprozesses gemäß des temporären Dekodierergebnisses.
  6. Die Vorrichtung gemäß Anspruch 5, worin die Vorrichtung weiter beinhaltet: einen Zähler zum Ermitteln, ob eine Anzahl des iterativen Dekodier-Wiederholungen eine vorbestimmte Anzahl von Dekodier-Wiederholungen erreicht, Erhöhen des Zählerwertes bei jeder Dekodieroperation, und weiterhin Durchführen eines Dekodier-Fehler-Prozesses, wenn der Dekodierprozess nicht beendet ist, bis der Zählerwert einen vorbestimmten Wert erreicht.
  7. Ein Low-Density-Parity-Check, hiernach bezeichnet als LDPC, -Codedekodierverfahren für das Dekodieren von LDPC-codierten Symbolen, umfassend die Schritte: a) Empfangen von codierten Symbolen; b) Durchführen der Initialisierung (400) der Bitknotenwerte ZMN unter Benutzung individueller Werte der empfangenen codierten Symbole; c) Modulo-2-Summieren (402) von Entscheidungswerten, die auf Bitknotenwerten Zmn basieren, für das Ermitteln von Werten σm von individuellen Kontrollknoten; d) Ermitteln (404), ob die ermittelten Werte σm jeweils gleich einem spezifischen Wert von 0 sind; e) Durchführen (406) eines zeilengerichteten iterativen Dekodierprozesses für das Berechnen von Lmn-Werte, wobei Lmn einen Wert bezeichnet, der von einem Kontrollknoten m zu einem Bitknoten n propagiert, unter Benutzung eines zweiten Standardisierungsfaktors α2, wenn in dem Schritt d) der Wert 0 ermittelt wurde; f) Ermitteln (408), ob ein derzeitiger Bitknotenwert Zmn gleich einem Minimalwert ist, wenn in dem Schritt d) der Wert von 1 ermittelt wurde; g) Durchführen (410) eines zeilengerichteten iterativen Dekodiervorgangs für das Berechnen der Lmn-Werte unter Benutzung einen ersten Standardisierungsfaktors α1, wenn der gegenwärtige Bitknotenwert Zmn nicht gleich dem Minimalwert ist; h) Durchführen (412) eines zeilengerichteten iterativen Dekodiervorgangs für das Berechnen der Lmn-Werte unter Benutzung einen dritten Standardisierungsfaktors α3, wenn der derzeitige Bitknotenwert Zmn gleich dem Minimalwert ist; i) Auf das Erhalten eines ersten iterativen Dekodierergebnisses aus dem Schritt e), eines zweiten iterativen Dekodierergebnisses aus dem Schritt g) und eines dritten iterativen Dekodierergebnisses aus dem Schritt h) hin, Durchführen (414) eines zeilengerichteten iterativen Dekodierprozesses für das Aktualisieren der Bitknotenwerte Zmn, unter Benutzung die Werte Lm'n, wobei m' ungleich m ist; und j) Durchführen (420) eines temporären Dekodiervorgangs, unter Benutzung des Ergebnisses des zeilengerichteten iterativen Dekodierprozesses aus Schritt i) und Durchführen (422) einer Paritätskontrolloperation.
  8. Das Verfahren gemäß Anspruch 7, wobei der erste Standardisierungsfaktor α1 größer ist als der zweite Standardisierungsfaktor α2, der größer ist als der dritte Standardisierungsfaktor α3.
  9. Das Verfahren gemäß Anspruch 7, wobei der zeilengerichtete iterative Dekodiervorgang des Schrittes e) berechnet ist gemäß:
    Figure 00200001
    wobei σmn Werte repräsentiert, die durch einen Kontrollknoten m von einem Bitknoten n empfangen wurden, σm ist ein Wert, der durch einen Kontrollknoten m bestimmt wird, Zmn ist ein LLR des Bits n welcher von dem Bit n zu einer Paritätskontrollgleichung m propagiert, und α2 ist der zweite Standardisierungsfaktor.
  10. Das Verfahren gemäß Anspruch 7, wobei der zeilengerichtete iterative Dekodiervorgang des Schrittes g) berechnet wird gemäß:
    Figure 00200002
    wobei σmn Werte repräsentiert, die durch einen Kontrollknoten m von einem Bitknoten n empfangen wurden, σm ein Wert ist, der von einem Kontrollknoten m bestimmt wird, Zmn ist ein LLR des Bits n, welcher von dem Bit n zu einer Paritätskontrollgleichung m propagiert, und α3 der dritte Standardisierungsfaktor ist.
  11. Das Verfahren gemäß Anspruch 7, wobei der zeilengerichtete iterative Dekodiervorgang des Schrittes h) berechnet wird gemäß:
    Figure 00210001
    wobei σmn Werte repräsentiert, die durch einen Kontrollknoten m von einem Bitknoten n empfangen wurden, σm ein Wert ist, der von einem Kontrollknoten m bestimmt wird, Zmn ist ein LLR des Bits n, welcher von dem Bit n zu einer Paritätskontrollgleichung m propagiert, und α1 der erste Standardisierungsfaktor ist.
  12. Das Verfahren gemäß Anspruch 7, weiter beinhaltend den Schritt: k) wenn das Ergebnis der Paritätskontrolle (422) das Auftreten eines Paritätsfehlers anzeigt, Wiederholen der Schritte c) bis j) für eine vorbestimmte Anzahl von Wiederholungen.
DE602004001548T 2003-05-26 2004-05-26 Verfahren und Vorrichtung zur Decodierung eines Low Density Partity Check (LDPC) Codes in einem Kommunikationssystem Active DE602004001548T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR2003033456 2003-05-26
KR1020030033456A KR20040101743A (ko) 2003-05-26 2003-05-26 통신 시스템에서 저밀도 패리티 검사 코드의 복호 장치 및방법

Publications (2)

Publication Number Publication Date
DE602004001548D1 DE602004001548D1 (de) 2006-08-31
DE602004001548T2 true DE602004001548T2 (de) 2007-06-21

Family

ID=36794439

Family Applications (1)

Application Number Title Priority Date Filing Date
DE602004001548T Active DE602004001548T2 (de) 2003-05-26 2004-05-26 Verfahren und Vorrichtung zur Decodierung eines Low Density Partity Check (LDPC) Codes in einem Kommunikationssystem

Country Status (5)

Country Link
US (1) US20040243917A1 (de)
EP (1) EP1482643B1 (de)
KR (1) KR20040101743A (de)
CN (1) CN1574650A (de)
DE (1) DE602004001548T2 (de)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100594818B1 (ko) * 2004-04-13 2006-07-03 한국전자통신연구원 순차적 복호를 이용한 저밀도 패리티 검사 부호의 복호장치 및 그 방법
JP4282558B2 (ja) * 2004-06-30 2009-06-24 株式会社東芝 低密度パリティチェック符号復号器及び方法
KR101390544B1 (ko) 2005-05-13 2014-04-30 닛본 덴끼 가부시끼가이샤 Ldpc 부호화 방식에 의한 인코더 및 디코더
US7562279B2 (en) * 2005-05-20 2009-07-14 Mitsubishi Electric Research Laboratories, Inc. 2D-normalized min-sum decoding for ECC codes
DE602006011240D1 (de) * 2005-06-21 2010-02-04 Samsung Electronics Co Ltd Vorrichtung und Methode zum Übermitteln/Empfangen von Daten in einem Mehrantennenkommunikationssystem unter Verwendung eines strukturierten Low Density Parity Check (LDPC) Codes
KR100804793B1 (ko) * 2005-10-07 2008-02-20 삼성전자주식회사 저밀도 패러티 검사 복호기에서의 검사 노드 갱신 방법
CN101064591B (zh) * 2006-04-24 2010-05-12 中兴通讯股份有限公司 低密度奇偶校验码的译码方法及其校验节点更新电路
TWI318507B (en) * 2006-05-19 2009-12-11 Univ Nat Chiao Tung Method and apparatus for self-compensation on belief-propagation algorithm
KR100950661B1 (ko) * 2006-05-20 2010-04-02 삼성전자주식회사 통신 시스템에서 신호 수신 장치 및 방법
US7752529B2 (en) * 2006-07-26 2010-07-06 Broadcom Corporation Combined LDPC (low density parity check) encoder and syndrome checker
US8255763B1 (en) * 2006-11-08 2012-08-28 Marvell International Ltd. Error correction system using an iterative product code
JP4743156B2 (ja) * 2007-04-27 2011-08-10 ソニー株式会社 復号装置
US8151171B2 (en) 2007-05-07 2012-04-03 Broadcom Corporation Operational parameter adaptable LDPC (low density parity check) decoder
KR20090064268A (ko) 2007-12-15 2009-06-18 한국전자통신연구원 가변 보정값을 이용한 복호화 장치 및 그 방법
WO2009078644A1 (en) * 2007-12-15 2009-06-25 Electronics And Telecommunications Research Institute Decoding apparatus and method based on variable error correction value
US8230294B2 (en) * 2008-07-30 2012-07-24 Ciena Corporation Low density parity check (LDPC) decoder using broadcast messaging
US8572460B2 (en) * 2009-03-17 2013-10-29 Broadcom Corporation Communication device employing binary product coding with selective additional cyclic redundancy check (CRC) therein
CN102111241B (zh) * 2011-03-04 2013-07-03 四川虹微技术有限公司 低密度奇偶校验迭代译码提前终止的方法
US8767889B2 (en) 2011-08-23 2014-07-01 Texas Instruments Incorporated Normalization of soft bit information for FEC decoding
KR101837099B1 (ko) * 2012-07-05 2018-03-09 에스케이하이닉스 주식회사 가변 구조의 에러 정정 부호화기
US9191256B2 (en) 2012-12-03 2015-11-17 Digital PowerRadio, LLC Systems and methods for advanced iterative decoding and channel estimation of concatenated coding systems
KR102080069B1 (ko) * 2013-09-25 2020-04-14 삼성전자주식회사 비이진 ldpc 부호를 사용하는 수신기에서 데이터를 복호하는 방법 및 장치
CN104393875A (zh) * 2014-10-23 2015-03-04 天津师范大学 基于优化llp-bp算法的信道译码方法
US20170288697A1 (en) * 2016-03-31 2017-10-05 Silicon Motion Inc. Ldpc shuffle decoder with initialization circuit comprising ordered set memory
KR102534044B1 (ko) * 2016-08-12 2023-05-19 삼성전자 주식회사 이동 통신 시스템에서 데이터 디코딩 방법 및 장치
US10969785B2 (en) * 2017-07-24 2021-04-06 Motional Ad Llc Automated vehicle operation to compensate for sensor field-of-view limitations
KR102543059B1 (ko) * 2017-11-22 2023-06-14 삼성전자주식회사 저밀도 패리티 체크 코드의 디코딩 방법, 이를 수행하는 디코더 및 시스템
CN109361491A (zh) * 2018-09-26 2019-02-19 西安科技大学 基于ldpc的多输入多输出系统的译码方法、设备和存储介质
CN110190856A (zh) * 2019-06-27 2019-08-30 本征信息技术(上海)有限公司 一种ldpc码的解码方法和解码装置
CN110752852B (zh) * 2019-09-26 2023-10-03 浙江科睿微电子技术有限公司 极化码的bp译码方法、装置、系统、设备及存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE60040805D1 (de) * 1999-12-20 2008-12-24 Research In Motion Ltd Hybrid-wiederholungsaufforderungsystem und -verfahren
KR100891782B1 (ko) * 2002-06-11 2009-04-07 삼성전자주식회사 고속 데이터 전송 시스템에서 순방향 오류 정정 장치 및방법

Also Published As

Publication number Publication date
EP1482643B1 (de) 2006-07-19
KR20040101743A (ko) 2004-12-03
EP1482643A2 (de) 2004-12-01
US20040243917A1 (en) 2004-12-02
CN1574650A (zh) 2005-02-02
EP1482643A3 (de) 2005-05-11
DE602004001548D1 (de) 2006-08-31

Similar Documents

Publication Publication Date Title
DE602004001548T2 (de) Verfahren und Vorrichtung zur Decodierung eines Low Density Partity Check (LDPC) Codes in einem Kommunikationssystem
DE3910739C2 (de)
DE60001988T2 (de) Turbo Dekodierung mit variabler Anzahl von Iterationen
EP0755122B1 (de) Verfahren und Anordnung zur Bestimmung eines adaptiven Abbruchkriteriums beim iterativen Decodieren multidimensional codierter Information
DE60122200T2 (de) Stopkriterien für interative dekodierung
DE602005000595T2 (de) Iterative Demodulation und Decodierung von multi-level Turbo oder LDPC (low-density parity-check) codierten Modulationssignalen
DE69936908T2 (de) Iterative dekodierung von produktkoden
DE69722331T2 (de) Informationsbits-Übertragungsverfahren mit Fehlerkorrektur-Kodierung, Kodier- und Dekodiervorrichtung dafür
DE102017110389B4 (de) Verfahren und Decoder zur Softinput Decodierung von verallgemeinerten verketteten Codes
EP0737389B1 (de) Übertragungssystem mit soft-output-dekodierung bei reduziertem speicherbedarf
DE60211413T2 (de) Verfahren und Vorrichtung zur Optimierung der Größe von codierten Datenblöcken
DE102007035210A1 (de) Verfahren und Vorrichtung zur LDPC-Dekodierung mit gemeinsamer Hardwarenutzung und serieller Summe-Produkt-Architektur
DE102010035210B4 (de) Verfahren zur Rückgewinnung verlorener Daten und zur Korrektur korrumpierter Daten
DE112005003706T5 (de) Modifizierter turbo-decodierender Nachrichtenweiterleitungsalgorithmus für Paritätsprüfcodes mit geringer Dichte
DE10196688B3 (de) Ein Decodierer für eine trellis-basierte Kanalcodierung
DE102017216264B4 (de) Decodierverfahren
DE102012220334B3 (de) Verfahren zum Wiederherstellen verlorengegangener und/oder beschädigter Daten
DE69823307T2 (de) Digitales Übertragungssystem, Dekoder und Dekodierungsverfahren
DE69908820T2 (de) Verfahren und system zur schnellen maximale-a-posteriori-dekodierung
DE10012873A1 (de) Optimierter Turbo-Decodierer
EP1249074B1 (de) Verfahren zur decodierung eines datensignals
DE102011056132B4 (de) Verfahren und Vorrichtung zum Decodieren von Daten
DE60118716T2 (de) Log-MAP Dekodierung
DE19717546A1 (de) Verfahren und Vorrichtung zur Decodierung bei einem CDMA-Übertragungssystem zum Demodulieren eines Empfangssignals, das in serieller Codeverkettung vorliegt
DE19725275C2 (de) Verfahren zur Decodierung von block- oder faltungscodierten digitalen Signalen

Legal Events

Date Code Title Description
8364 No opposition during term of opposition