DE112005003790T5 - Verallgemeinerter Mehrschwellen-Decodierer für Codes für Paritätsprüfungen geringer Dichte - Google Patents

Verallgemeinerter Mehrschwellen-Decodierer für Codes für Paritätsprüfungen geringer Dichte Download PDF

Info

Publication number
DE112005003790T5
DE112005003790T5 DE112005003790T DE112005003790T DE112005003790T5 DE 112005003790 T5 DE112005003790 T5 DE 112005003790T5 DE 112005003790 T DE112005003790 T DE 112005003790T DE 112005003790 T DE112005003790 T DE 112005003790T DE 112005003790 T5 DE112005003790 T5 DE 112005003790T5
Authority
DE
Germany
Prior art keywords
threshold
bit
codeword
decoding
reliability
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.)
Granted
Application number
DE112005003790T
Other languages
English (en)
Other versions
DE112005003790B4 (de
Inventor
Andrey Vladimirovich Belogolovy
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.)
Apple Inc
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of DE112005003790T5 publication Critical patent/DE112005003790T5/de
Application granted granted Critical
Publication of DE112005003790B4 publication Critical patent/DE112005003790B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • 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/65Purpose and implementation aspects
    • H03M13/6577Representation or format of variables, register sizes or word-lengths and quantization
    • H03M13/658Scaling by multiplication or division
    • 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

Abstract

Verfahren, umfassend:
Generieren einer Bitzuverlässigkeit zum iterativen Decodieren eines empfangenen Codewortes, enthaltend Generieren der Bitzuverlässigkeit auf der Grundlage einer Kanalausgabezuverlässigkeit und einer aktualisierten Bitzuverlässigkeit aus einer vorherigen Decodieriteration, so daß für jede Iteration die Bitzuverlässigkeit unter Verwendung eines Normierungsfaktors und eines Vergleiches mit einer Schwelle aktualisiert wird, dadurch gekennzeichnet, daß die Schwelle während des iterativen Decodierens eine Mehrzahl von Schwellenwerten aufweist.

Description

  • Diese Anmeldung ist eine Teilweiterbehandlungsanmeldung der gleichzeitig anhängigen PCT-Anmeldung Nr. PCT/RU2004/000123 des gleichen Anmelders mit dem Titel „MULTI-THRESHOLD RELIABILITY DECODING OF LOW-DENSITY PARITY CHECK CODES", eingereicht am 31. März 2004, die hiermit durch Bezugnahme eingeschlossen ist.
  • Verwandte Anmeldungen
  • Diese Anmeldung bezieht sich auf die folgende gleichzeitig anhängigen Anmeldung des gleichen Inhabers: PCT/RU2004/000536 mit dem Titel „CHANNEL ESTIMATION AND FIXED THRESHOLDS FOR MULTI-THRESHOLD DECODING OF LOW-DENSITY PARITY CHECK CODES", eingereicht am 28. Dezember 2004.
  • Technisches Gebiet
  • Ausführungsformen der Erfindung betreffen im allgemeinen die Fehlerkorrektur in Kommunikationssignalen.
  • Hintergrund
  • Ein Kommunikationskanal, sei es ein faseroptischer Kanal, ein koaxialer Kanal, ein drahtgebundener Kanal, ein drahtloser Kanal oder ein Bus, der Stellen in einem System verbindet, über das große Datenmengen übertragen werden, kann zu Informationen, die über den Kanal übertragen werden, Rauschen und Fehler hinzufügen. Um die durch den Kommunikationskanal hinzugefügten Fehler zu korrigieren, sind Informationen in Form von Codewörtern sendbar, wobei jedes Codewort die gleiche Anzahl von Gesamtbits enthält und in denen eine Anzahl der Bits Informationsbits (Nachrichtenbits) sind und eine Anzahl von Bits zur Fehlerkorrektur verwendet werden. Ein Codewort mit einer Länge von n Bits schließt k Bits für die Nachrichtenlänge des Codes und r = n – k redundante Bits ein. Die r Bits dienen zur Korrektur und können r Paritätsprüfungsbits sein. Eine Paritätsprüfungsmatrix, H, enthält eine Menge von Paritätsprüfungsgleichungen, die das Codewort gemäß der Relation HCT = 0bestimmen, wobei C der n-dimensionale Vektor der Codewortbits ist. Wenn an einem Empfänger diese Relation nicht erfüllt ist, ist das empfangene Codewort ungültig und muß entweder korrigiert oder erneut übertragen werden.
  • Es gibt verschiedene Schemata zum Decodieren eines Codewortes, das sich durch einen Kommunikationskanal fortgepflanzt hat. Einige Schemata können Genauigkeit bieten, und andere Programme können eine schnelle Decodierung bereitstellen. In der Datenkommunikation mit hoher Geschwindigkeit wird ein Decodierprogramm benötigt, das genau und schnell ist, aber gleichzeitig ohne einen hohen Grad an Komplexität implementierbar ist.
  • Kurze Beschreibung der Zeichnungen
  • 1 zeigt ein Ablaufdiagramm einer Ausführungsform eines Verfahrens zum iterativen Decodieren von Informationen, die von einem Kommunikationskanal empfangen werden.
  • 2 veranschaulicht eine Ausführungsform einer Vorrichtung zum iterativen Decodieren von Informationen, die von einem Kommunikationskanal empfangen werden.
  • 3 zeigt ein Ablaufdiagramm einer Ausführungsform eines Verfahrens zum Codieren von Informationen, um ein Codewort, das die Informationen darstellt, auf einen Kommunikationskanal zu übertragen.
  • 4 veranschaulicht eine Ausführungsform einer Vorrichtung zum Codieren von Informationen, die unter Verwendung mehrerer Werte für einen Schwellenwert auf einer Empfangsseite eines Kommunikationskanals iterativ decodiert werden.
  • 5 veranschaulicht ein Blockdiagramm einer Ausführungsform eines Kommunikationsnetzes mit einem System zum Codieren eines Codewortes für Paritätsprüfungen geringer Dichte und einem System zum Decodieren einer Version des codierten Codewortes für Paritätsprüfungen geringer Dichte, das von einem Kommunikationskanal zwischen den beiden Systemen empfangen wird.
  • 6 veranschaulicht ein Ablaufdiagramm einer Ausführungsform eines Verfahrens zum iterativen Decodieren eines Codewortes für Paritätsprüfungen geringer Dichte unter Verwendung eines Decodierers, der so wie in 5 konfiguriert sein kann.
  • 7 zeigt ein Ablaufdiagramm einer Ausführungsform eines Verfahrens zum iterativen Decodieren von Informationen, die von einem Kommunikationskanal empfangen werden, unter Verwendung einer Menge von festen Schwellenwerten.
  • 8 zeigt ein Ablaufdiagramm einer Ausführungsform eines Verfahrens zum Auswählen von mehreren Schwellenwerten zum iterativen Decodieren von Informationen, die von einem Kommunikationskanal empfangen werden.
  • 9 zeigt ein Blockdiagramm einer Ausführungsform einer Vorrichtung mit einem Decodierer und einem Schwellenwertmodul zum iterativen Decodieren von Informationen unter Verwendung einer festen Mehrzahl von Schwellenwerten.
  • 10 zeigt ein Blockdiagramm einer Ausführungsform einer Vorrichtung mit einer Kanalschätzeinheit zum Liefern von Informationen an einen Decodierer zum Auswählen von mehreren Schwellenwerten zum iterativen Decodieren von Informationen.
  • 11 veranschaulicht ein Blockdiagramm einer Ausführungsform eines Netzwerkes, in dem Informationen an einem Ende eines Kanals codiert und an einem anderen Ende des Kanals decodiert werden.
  • 12 veranschaulicht Merkmale einer Ausführungsform eines Verfahrens zum verallgemeinerten Mehrschwellenwert-Decodieren.
  • 13 zeigt die Leistung einer Ausführungsform eines verallgemeinerten Mehrschwellenwert-Decodierschemas, einer Ausführungsform eines Mehrschwellenwert-Decodierschemas und eines Belief-Propagation-Decodierschemas für die binäre Phasenumtastungsmodulation und einen Kanal mit additivem weißen Gauß'schen Rauschen im Falle einer Gleitkommaimplementierung.
  • 14 zeigt die Leistung einer Ausführungsform eines verallgemeinerten Mehrschwellenwert-Decodierschemas und eines Belief-Propagation-Decodierschemas für die binäre Phasenumtastungsmodulation und einen Kanal mit additivem weißen Gauß'schen Rauschen im Falle einer Festkommaimplementierung.
  • 15 veranschaulicht ein Blockdiagramm einer Ausführungsform eines Systems mit einem Decodierer, der ein verallgemeinertes Mehrschwellenwert-Decodierschema verwendet.
  • Ausführliche Beschreibung
  • Die folgende ausführliche Beschreibung bezieht sich auf die beigefügten Zeichnungen, die spezifische Einzelheiten und Ausführungsformen, in denen die Erfindung ausgeführt sein kann, veranschaulichend zeigen. Diese Ausführungsformen werden mit hinreichender Ausführlichkeit beschrieben, um Fachleute in die Lage zu versetzen, die vorliegende Erfindung auszuführen. Andere Ausführungsformen können verwendet werden, und es können strukturelle, logische und elektrische Änderungen vorgenommen werden, ohne von dem Schutzbereich der Erfindung abzuweichen. Die verschiedenen hierin offenbarten Ausführungsformen schließen sich nicht notwendigerweise gegenseitig aus, da einige offenbarte Ausführungsformen mit einer oder mehreren anderen offenbarten Ausführungsformen kombinierbar sind, um neue Ausführungsformen zu bilden. Die folgende ausführliche Beschreibung ist daher nicht als einschränkend aufzufassen, und der Schutzbereich der Ausführungsformen der vorliegenden Erfindung wird lediglich durch die beigefügten Ansprüche bestimmt, zusammen mit dem vollen Schutzbereich von Äquivalenten, zu denen solche Ansprüche berechtigt sind.
  • Codes für Paritätsprüfungen geringer Dichte (LDPC) stellen aufgrund der geringen Decodierkomplexität und der Bitfehlerrate (BER), die in einem Kanal mit additivem weißen Gauß'schen Rauschen (AWGN-Kanal) erreicht wird, ein wirksames Werkzeug zur Vorwärtsfehlerkorrektur in Kommunikationssytemen mit hoher Geschwindigkeit bereit. Herkömmliche LDPC-Decodierer arbeiten unter Verwendung eines Einschwellenwert-Decodierschemas. Beispiele für bekannte LDPC-Decodierer schließen unter anderem den Min-Sum-Algorithmus, den A-Posteriori-Probabilty (APP)-Decodieralgorithmus und den Uniformly Most Powerful (UMP)-Decodierer ein.
  • LDPC-Codes verwenden eine Paritätsprüfungsmatrix, die größtenteils Nullen und eine begrenzte Anzahl von Einsen enthält. Ein binärer LDPC-Code (n, γ, ρ) hat eine Codewortlänge, oder Blocklänge, von n Bits und eine Paritätsprüfungsmatrix mit genau γ Einsen in jeder Spalte und genau ρ Einsen in jeder Zeile. In dem LDPC-Code wird jedes Codebit durch γ Paritätsprüfungen geprüft, und jede Paritätsprüfung verwendet ρ Codebits. Außerdem hat der Code eine Rate R, definiert als R = k/n, wobei k die Anzahl der Nachrichtenbits (Informationsbits) in dem Codewort mit n Bits ist.
  • Ein iterativer Decodierprozeß kann die Prüfung, ob die Paritätsprüfungsgleichung für jedes empfangene Bit von einem Kanal erfüllt ist oder nicht, einschließen. Wenn alle Paritätsprüfungsgleichungen erfüllt sind, werden die empfangenen Bits als das übertragene Codewort angenommen. Wenn die Mehrheit der Paritätsprüfungsgleichungen für ein gegebenes empfangenes Bit nicht erfüllt ist, kann das gegebene empfangene Bit umgedreht werden; anderenfalls wird der Wert des gegebenen empfangenen Bits beibehalten. Unter dem Umdrehen eines Bits ist das Ändern einer Null in eine Eins oder einer Eins in eine Null zu verstehen. Nachdem das Codewort durch das Umdrehen eines Bits rekonstruiert worden ist, werden die Paritätsprüfungsgleichungen erneut geprüft. Wenn alle Paritätsprüfungsgleichungen erfüllt sind, werden die empfangenen Bits als das übertragene Codewort angenommen; anderenfalls läuft die iterative Prozedur weiter, bis eine maximale Anzahl von erlaubten Iterationen erreicht ist.
  • Beim LDPC-Decodieren kann ein Belief-Propagation-Decoding (BPD)-Algorithmus unter Verwendung von probabilistischen Werten verwendet werden. Typischerweise befaßt sich das iterative Decodieren eines LDPC-Codes mit der Bestimmung des wahrscheinlichsten Vektors x, wobei HxT mod 2 = 0 gilt. Die Likelihood von x kann durch das Produkt aus Wahrscheinlichkeiten, daß für jede Bitstelle, n, xn = x gilt, angegeben werden. Für ein binäres Codewort nimmt x den Wert von 0 und 1 an, so daß die Wahrscheinlichkeit, daß x gleich Eins ist, gleich Eins minus der Wahrscheinlichkeit, daß x gleich Null ist, ist. Ferner können die probabilistischen Werte durch Log-Likelihood-Verhältnisse dargestellt werden. Für ein Binärsignal, bei dem ρ als die Wahrscheinlichkeit einer Eins definiert ist, kann ein Log-Likelihood-Verhältnis (LLR) dann angegeben werden durch: LLR(p) = loge((1 – p)/p)
  • Die Summe-Produkt-Decodierung führt eine Decodierung unter Verwendung von LLR-Werten aus.
  • Hinsichtlich des oben erörterten Prozesses bezüglich des Umdrehens eines empfangenen Bits wurde eine anfängliche harte Entscheidung über das von dem Kommunikationskanal empfangene Signal getroffen. Eine harte Entscheidung über ein Bit wird getroffen, indem dieses Bit einzeln bewertet wird. Für eine harte Entscheidung für ein Binärbit stellt der Decodierer das Bit auf 1 oder 0, wenn das Bit kleiner oder größer als ein durch den Decodierer eingestellter Festwert ist. Wenn der Festwert durch den Decodierer auf Null gestellt bzw. gesetzt ist, würde eine harte Entscheidung ein Bit auf 1 stellen, wenn das empfangene Signal für das Bit positiv ist, und das Bit auf 0 stellen, wenn das empfangene Signal negativ ist. Als Alternative dazu kann eine harte Entscheidung ein Bit auf 1 stellen, wenn das empfangene Signal für das Bit negativ ist, und das Bit auf 0 stellen, wenn das empfangene Signal positiv ist.
  • Bei einer weichen Entscheidung wird die Likelihood, daß ein Bit eine Eins oder Null darstellen sollte, bei der Bestimmung des Wertes des Bits aus dem empfangenen Signal berücksichtigt. Decodierer für weiche Entscheidungen können Informationen bezüglich des Vertrauens in das empfangene Signal (weiche empfangene Informationen) und Kenntnisse über die Eigenschaften des Kanals verwenden, um probabilistische Ausdrücke für ein empfangenes Signal relativ zu dem übertragenen Signal bereitzustellen. Während eine harte Entscheidung für einen binären Prozeß einen Vektor einer harten Entscheidung bereitstellt, bei dem die Vektorstellen, oder Vektorbits, entweder Eins oder Null sind, kann eine weiche Entscheidung einen Vektor einer harten Entscheidung und einen Zuverlässigkeitsvektor, oder Bitzuverlässigkeitsvektor, bereitstellen. Der durch die weiche Entscheidung bereitgestellte binäre Vektor einer harten Entscheidung ist ein Vektor von Einsen und Nullen, wobei jedes Vektorbit einzeln hinsichtlich eines festen Kriteriums generiert wird. Der Zuverlässigkeitsvektor schließt eine Menge von Bitzuverlässigkeiten ein, wobei jede Bitzuverlässigkeit einem Bit des zugehörigen Vektors einer harten Entscheidung entspricht. Die Bitzuverlässigkeit stellt ein Maß seines Vertrauens in das entsprechende Bit in dem Vektor der harten Entscheidung bereit. Die Bitzuverlässigkeit kann die Form einer Wahrscheinlichkeit, eines Log-Likelihood-Verhältnisses oder eines anderen gewichteten Faktors, der mit dem Kommunikationskanal, durch den ein empfangenes Codewort übertragen wird, korreliert wird, annehmen. Eine Bitzuverlässigkeit kann direkt mit der Größe des Signals, das ein empfangenes Bit darstellt, korreliert werden.
  • Wie Fachleuten bekannt ist, implementieren verschiedene Decodierschemata weiche Decodierschemata unter Verwendung von Wahrscheinlichkeiten. Ein Schema berechnet in seinen weichen Entscheidungsprozessen die a-posteriori-Wahrscheinlichkeit für jedes Codewortbit, welche die Wahrscheinlichkeit ist, daß das gegebene Bit unter der Bedingung, daß alle Paritätsprüfungs-Randbedingungen erfüllt sind, eine Eins ist. Eine intrinsische oder a-priori-Wahrscheinlichkeit ist die Bitwahrscheinlichkeit unabhängig von Code-Randbedingungen, und eine extrinsische Wahrscheinlichkeit stellt das Gelernte dar. Zum Beispiel wird in einem Summe-Produkt-Algorithmus zum Decodieren ein Log-Likelihood-Verhältnis, LLR, eines empfangenen Signals, das ein Bit darstellt, auf der Grundlage der Kenntnisse über den Kanal eingestellt. Für einen AWGN-Kanal mit einem Störabstand SNR kann das anfängliche LLR für dieses Bit auf
    Figure 00080001
    eingestellt werden, wobei Yi das empfangene Signal und σ die AWGN-Standardabweichung ist. Die Standardabweichung ist über AWGN SNR definierbar als
    Figure 00080002
    wobei n die Codelänge, k die Nachrichtenlänge und SNR der SNR pro Nachrichtenbit ist. Die LLRi stehen funktionell in Beziehung zu der Zuverlässigkeit, Ri, des Bits i. Die Zuverlässigkeit ist ein Maß des Vertrauens in den Wert des Bits. Das iterative Decodieren in verschiedenen Schemata beinhaltet das Aktualisieren der Zuverlässigkeit entsprechend empfangenen Bits und/oder das Aktualisieren der Zuverlässigkeit entsprechend von Null verschiedenen Elementen der Paritätsprüfungsmatrix, H. Solche iterativen Prozesse beinhalten das Prüfen der Gültigkeit eines aktualisierten Testcodewortes, x, über die Relation HxT = 0. Wenn der Test nicht zu einem gültigen Codewort führt, läuft der iterative Prozeß weiter, bis ein gültiges Codewort erlangt wird oder eine maximale Anzahl von Iterationen durchgeführt worden ist.
  • In einer Ausführungsform ist ein Mehrschwellenwert-Decodierer so konstruiert, daß er einen iterativen Decodieralgorithmus mit einer reduzierten Komplexität und guten Fehlerkorrektureigenschaften zum Decodieren von LDPC-Codes von einem Kanal mit weicher Ausgabe bereitstellt. Diese Ausführungsform für einen Mehrschwellenwertzuverlässigkeits-Decodierer für schnelles LDPC-Decodieren arbeitet unter Verwendung einer weichen Kanalausgabe (weiche Entscheidung), um einen Vektor einer harten Entscheidung und einen Zuverlässigkeitsvektor der empfangenen Bits zu produzieren. Die Bitzuverlässigkeiten werden zur Berechnung von Paritätsprüfungszuverlässigkeiten verwendet, und eine Gesamtparitätsprüfungszuverlässigkeit ist auf einen minimalen Bitzuverlässigkeitswert aller Bits, die an einer gegebenen Paritätsprüfung beteiligt sind, gestellt. Zur Neuberechnung von Bitzuverlässigkeiten wird ein gewichtetes Paritätsprüfungsabstimmverfahren verwendet, wobei die Gewichte die Paritätsprüfungszuverlässigkeiten sind. In solchen Ausführungsformen nimmt mit abnehmendem Gewicht des Paritätsprüfungsgewichtes die Decodierqualität zu. Zu Beginn wird die Bitzuverlässigkeit einer Bitzuverlässigkeit zugeordnet, die mit dem Wert des empfangenen Bits korreliert ist. Die Paritätsprüfungsabstimmung wird auf den aktuellen Vektor der harten Entscheidung angewendet. Auf der Grundlage der Paritätsprüfungsabstimmung, verglichen mit einem Schwellenwert bei einer gegebenen Iteration, wird die Bitzuverlässigkeit auf eine neuberechnete Bitzuverlässigkeit eingestellt, die um einen Paritätsprüfungszuverlässigkeitswert erhöht wird; anderenfalls wird die neuberechnete Bitzuverlässigkeit um den Paritätsprüfungszuverlässigkeitswert verringert.
  • Für jede Iteration werden Schwellenwerte bereitgestellt, wobei die Schwellenwerte während einer oder mehreren Iterationen berechnet werden können. Die Schwellenwerte werden dazu verwendet, die Entscheidungen darüber zu treffen, ob ein Bit und die mit ihm verknüpfte Zuverlässigkeit aktualisiert werden sollten. Wenn eine bestimmte Zuverlässigkeit unter dem Schwellenwert liegt, wird das Bit der harten Entscheidung, das mit der Zuverlässigkeit verknüpft ist, umgekehrt, und seine neue Zuverlässigkeit wird dem Absolutwert der neuberechneten Zuverlässigkeit zugeordnet. Das Decodierschema ist iterativ, und die Schwellenwerte können von Iteration zu Iteration unterschiedlich sein, wobei für die Berechnung während des Decodierprozesses mindestens zwei Werte der Schwelle bereitgestellt oder festgesetzt werden. Zwar können die Schwellenwerte während der Iteration berechnet werden, doch können diese Werte auch vordefiniert sein. In einer anderen Ausführungsform wird bei der ersten Iteration der Fehlerentscheidungsschwellenwert auf die geringste der Bitzuverlässigkeiten eingestellt und dann bei allen anderen Iterationen der Fehlerentscheidungsschwellenwert auf Null gesetzt. In dieser Ausführungsform wäre das Mehrschwellenwert-Decodierprogramm ein Decodierprogramm, das zwei Schwellenwerte verwendet. Das Zweischwellenwertschema führt, verglichen mit einer schnellen Decodierung ohne einen Schwellenwert mit mehreren Werten, zu einer Verstärkung der Bitfehlerrate von 0,1 bis 0,4 dB.
  • Eine Ausführungsform für ein neuartiges Schema, das in LDPC-Decodierern implementierbar ist, schließt ein Mehrschwellenwert-Entscheidungsschem ein. Mit „Mehrschwellenwert-Entscheidungsschema" ist gemeint, daß ein Schwellenwert während einer oder mehrerer Decodieriterationen in einen berechneten Wert oder einen vordefinierten Wert abgeändert wird. In einer Ausführungsform wird während der ersten Iteration ein maximaler Schwellenwert (in Absolutwerten) verwendet, und in darauffolgenden Iterationen wird der Schwellenwert geändert, wobei sich der Schwellenwert verringert. Die Änderung des Schwellenwertes ermöglicht die Verwendung eines hohen Schwellenwertes während der ersten Iteration, was dazu führt, daß gar keine oder eine reduzierte Fehlerfortpflanzung auftritt. Somit wird, wenn der Decodierer auch nur eine geringe Anzahl von Fehlern korrigiert, die Decodierung bei darauffolgenden Iterationen bedeutend einfacher. Die Verwendung einer Ausführungsform des Mehrschwellenwert-Decodierprogramms kann zu einer Verringerung der Anzahl der während der Decodierung vorgenommenen Iterationen führen. Diese Ausführungsformen können mit einer Decodierbitfehlerrate ausgeführt werden, die nahe an der eines Maximum-A-Posteriori-Decodierprogramms(MAP)-Decodierschemas liegt.
  • In einer Ausführungsform stellt ein Mehrschwellenwert-Decodierer einen iterativen Decodierer bereit, der einen Vektor mit einer Eingabe in Form einer weichen Entscheidung verwendet, um einen Vektor einer harten Entscheidung und seinen zugehörigen Zuverlässigkeitsvektor zu generieren, der den absoluten Likelihood-Wert jedes Bits beschreibt. Bei jeder Iteration berechnet der Decodierer die Zuverlässigkeit jeder Paritätsprüfungsgleichung unter Verwendung der Bitzuverlässigkeiten. Dann wird für jedes Bit und jede Paritätsprüfung, falls eine Paritätsprüfungsgleichung gescheitert ist, die entsprechende Bitzuverlässigkeit (entsprechend einer Bit- oder Paritätsprüfungsgleichung) verringert; anderenfalls wird die Bitzuverlässigkeit erhöht. Wenn alle Gleichungen geprüft worden sind, wird unter Verwendung der folgenden Regel eine harte Entscheidung getroffen: Wenn die aktualisierte Bitzuverlässigkeit über einem Schwellenwert liegt, bleiben das Bit und seine Zuverlässigkeit unverändert; anderenfalls wird das Bit umgedreht (umgekehrt), und seine Zuverlässigkeit wird als eine Funktion der/des aktualisierten Zuverlässigkeit und Schwellenwertes geändert. Wenn die aktualisierte Zuverlässigkeit bei dieser Iteration geringer als 0 ist, aber über dem Schwellenwert liegt, wird die neue Bitzuverlässigkeit auf 0 gestellt. Es wird festgesetzt, daß der Schwellenwert mindestens einmal während des Decodierprozesses aktualisiert wird. Der Prozeß wird wiederholt, bis das Codewort rekonstruiert worden ist oder der Decodierer die maximal erlaubte Anzahl von Iterationen erreicht hat.
  • 1 zeigt ein Ablaufdiagramm einer Ausführungsform eines Verfahrens zum iterativen Decodieren von Informationen, die aus einem Kommunikationskanal empfangen werden. Bei 110 wird ein Codewort empfangen. Das Codewort kann eine Anzahl von Informationsbits (Nachrichtenbits) und eine Anzahl von Bits zur Verwendung bei der Fehlererkennung und/oder -korrektur enthalten. Bei 120 wird ein Wert für eine Schwelle ausgewählt. In einer Ausführungsform wird ein Wert für die Schwelle unter Verwendung von Bitzuverlässigkeiten ausgewählt, die mit dem empfangenen Codewort während jeder Iteration korreliert werden. Die Auswahl kann durch Berechnen einer Mindestvergleichszuverlässigkeit durchgeführt werden, die anfänglich aus einem an dem empfangenen Codewort ausgeführten weichen Entscheidungsprozeß konstruiert wird, der einen Vektor einer harten Entscheidung und einen Zuverlässigkeitsvektor generiert. Die Bitzuverlässigkeiten können mit dem Kommunikationskanal korreliert werden. In einer Ausführungsform werden die Bitzuverlässigkeiten unter Verwendung bekannter, berechneter oder geschätzter Eigenschaften des Kommunikationskanals, zum Beispiel, ohne darauf beschränkt zu sein, der Störabstand, der mit Signalen verknüpft ist, die sich durch den Kommunikationskanal fortpflanzen, generiert. In einer anderen Ausführungsform wird eine Menge von Bitzuverlässigkeiten anfänglich mit einer Menge von empfangenen Bits, zum Beispiel, ohne darauf beschränkt zu sein, der Absolutwert des für jede Bitadresse empfangenen Signals, korreliert. In einer Ausführungsform ist der Schwellenwert als ein Wert aus einer vorgegebenen Menge von Werten auswählbar, wobei die Auswahl von der gegebenen Codekonstruktion, dem gegebenen SNR des Kanals und der gegebenen Decodieriterationszahl abhängt.
  • Bei 130 wird eine Bitzuverlässigkeit, die aus dem empfangenen Codewort generiert worden ist, auf der Grundlage eines Vergleiches mit dem Schwellenwert aktualisiert. In verschiedenen Ausführungsformen kann eine Menge von Bitzuverlässigkeiten generiert, mit dem Schwellenwert verglichen und aktualisiert werden. Bei 140 wird das Codewort auf der Grundlage von Vergleichen von berechneten Bitzuverlässigkeiten mit dem Schwellenwert rekonstruiert, wobei die berechneten Bitzuverlässigkeiten aus den anfänglich generierten Bitzuverlässigkeiten hergeleitet werden. Wenn das rekonstruierte Codewort eine Gültigkeitsprüfung nicht besteht, läuft der Prozeß mit einer neuen Iteration weiter. Das rekonstruierte Codewort kann durch Umkehren eines oder mehrerer Bits der Version des Codewortes in der gegebenen Iteration generiert werden. Bei 150 wird am Ende des iterativen Decodierprozesses ein rekonstruiertes Codewort bereitgestellt. Wenn der Decodierprozeß erfolgreich ist, wird das rekonstruierte Codewort als das an einer Übertragungsstelle an einem anderen Ende des Kommunikationskanals bereitgestellte Codewort angenommen. Wenn der iterative Decodierprozeß am Ende einer Reihe von Iterationen kein gültiges Codewort bereitstellt, wäre eine erneute Übertragung des Codewortes angebracht. In einer Ausführungsform wird das Verfahren zum Decodieren eines LDPC-Codewortes verwendet.
  • 2 veranschaulicht eine Ausführungsform einer Vorrichtung 200 zum iterativen Decodieren von Informationen, die aus einem Kommunikationskanal empfangen werden. Die Vorrichtung 200 schließt einen Empfänger 210, einen Bitzuverlässigkeitsgenerator 220 und eine Vergleichseinheit 230 ein. Der Empfänger 210 erfaßt Daten von einem Kommunikationskanal. In einer Ausführungsform liegen die erfaßten Daten in Form von Bits in einem Signalstrom vor, wobei die Bits ein Codewort definieren. Als Alternative dazu kann der Empfänger 210 ein Signal empfangen und das empfangene Signal in ein Codewort umsetzen. Der Bitzuverlässigkeitsgenerator 220 generiert eine oder mehrere Bitzuverlässigkeiten, die mit dem empfangenen Codewort verknüpft sind. In einer Ausführungsform werden Anfangsbitzuverlässigkeiten auf der Grundlage des empfangenen Codewortes und eines Likelihood-Verhältnisses bezüglich der Wahrscheinlichkeiten, daß ein Binärsignal eine Eins oder eine Null ist, generiert. Solche Bitzuverlässigkeiten können auch mit einem Störabstand des Kommunikationskanals, aus dem das empfangene Codewort empfangen wird, korreliert werden. Als Alternative dazu sind Anfangsbitzuverlässigkeiten aus dem empfangenen Codewort generierbar, zum Beispiel durch Einstellen der Anfangsbitzuverlässigkeiten auf den Absolutwert des empfangenen Codewortes für jedes Bit.
  • Die Vergleichseinheit 230 vergleicht durch den Bitzuverlässigkeitsgenerator generierte Bitzuverlässigkeiten mit einem Schwellenwert. Im Anschluß an diesen Vergleich aktualisiert die Vergleichseinheit 230 die Bitzuverlässigkeiten und die Bits eines Testcodewortes in Abhängigkeit von den Ergebnissen des Vergleiches mit einem Wert der Schwelle. Die Vergleichseinheit 230 verwendet mehrere Werte für die Schwelle in Abhängigkeit von einer aktuellen Iteration in dem Decodierprozeß. Die aktualisierten Bits des Testcodewortes werden bewertet, um zu ermitteln, ob die aktualisierten Bits ein gültiges Codewort bereitgestellt haben. Wenn ein gültiges Codewort generiert worden ist, kann die Vergleichseinheit 230 das gültige Codewort ausgeben oder die Informationsbits (Nachrichtenbits) aus dem Codewort extrahieren und die Nachricht ausgeben. Die Vergleichseinheit 230 kann in einer Hardware-Konfiguration oder in einer Software-Konfiguration ausgeführt sein. In einer Ausführungsform werden die Werte für die durch die Vergleichseinheit 230 verwendete Schwelle gemäß der Iteration, in der der Wert verwendet wird, eingestellt. Es ist eine Tabelle mit Schwellenwert verwendbar, die einen vorgegebenen Wert mit einer Iterationszahl verknüpft, die für eine gegebene Codekonstruktion und eine gegebene Situation in dem Kanal, zum Beispiel der SNR des Kanals, spezifiziert ist. In einer anderen Ausführungsform werden die Werte für die durch die Vergleichseinheit 230 verwendete Schwelle unter Verwendung der Bitzuverlässigkeiten und des Ergebnisses eines Vergleiches mit dem Schwellenwert, der für die Decodieriteration, bei der die Vergleichseinheit 230 arbeitet, eingestellt ist, eingestellt. In einer Ausführungsform decodiert die Vorrichtung 200 ein LDPC-Codewort.
  • 3 zeigt ein Ablaufdiagramm einer Ausführungsform eines Verfahrens zum Codieren von Informationen, um ein Codewort, das die Informationen darstellt, auf einen Kommunikationskanal zu übertragen. Bei 310 werden Informationen in Form von Informationsbits an einem Codierer empfangen. Bei 320 werden die Informationsbits codiert, um ein Codewort bereitzustellen. Das Codieren erfolgt auf eine solche Weise, daß eine Version des codierten Codewortes nach ihrem Empfang unter Verwendung einer durch Vergleich mit einem Schwellenwert aktualisierten Bitzuverlässigkeit iterativ decodiert wird, wobei der Schwellenwert aktualisiert wird, um während des iterativen Prozesses mehrere Werte bereitzustellen. Wenn die Version des Codewortes an einem anderen Ende des Kommunikationskanals, auf dem das Codewort übertragen wurde, fehlerlos empfangen wird, kann das iterative Decodieren das Codewort ohne Korrektur der empfangenen Version des Codewortes bereitstellen. Wenn die empfangene Version des übertragenen Codewortes fehlerhaft ist, stellt der iterative Decodierprozeß, der mehrere Schwellenwerte verwendet, einen Korrekturprozeß bereit. Bei 330 wird das Codewort auf den Kommunikationskanal übertragen. In einer Ausführungsform wird das Verfahren dazu verwendet, ein LDPC-Codewort zu codieren.
  • 4 veranschaulicht eine Ausführungsform einer Vorrichtung 400 zum Codieren von Informationen, die unter Verwendung mehrerer Werte einer Schwelle auf einer Empfangsseite eines Kommunikationskanals iterativ decodiert werden. Die Vorrichtung 400 schließt einen Empfänger 410 zum Erfassen von zu codierenden Informationen, einen Codierer 420 und einen Sender 430 ein. Der Empfänger 410 erfaßt Daten, die zum Übertragen über einen Kommunikationskanal an die Vorrichtung 400 geliefert werden. Der Codierer 420 nimmt die Informationen und generiert ein codiertes Wort, das Informationen, Nachrichtenbits und Bits zum Korrigieren auf einer Empfangsseite eines Übertragungskanals enthält. Die an den Codierer 420 gelieferten Informationen können in Form von Informationsbits vorliegen. Als Alternative dazu kann der Codierer 420 die gelieferten Informationen nehmen und die Informationsbits konstruieren. Der Codierer 420 codiert die Informationen zu einem Codewort, so daß eine Version des Codewortes nach ihrem Empfang unter Verwendung einer durch Vergleich mit einem Schwellenwert aktualisierten Bitzuverlässigkeit iterativ decodiert wird. Der Schwellenwert wird aktualisiert, um während des iterativen Prozesses mehrere Werte bereitzustellen. Der Sender 430 sendet das codierte Codewort auf einem Kommunikationskanal.
  • Der Kommunikationskanal zwischen einer Vorrichtung, die eine Ausführungsform eines Decodierverfahrens unter Verwendung mehrerer Schwellenwerte verwendet, und einer Vorrichtung, die eine Ausführungsform eines mit dem Decodierverfahren verknüpften Codierverfahrens verwendet, kann einen faseroptischen Kanal, einen drahtgebundenen Kanal, einen Kanal, der Daten liest, die in einer Speichereinheit gespeichert sind, oder einen drahtlosen Kanal einschließen, ohne darauf beschränkt zu sein. Zusätzlich können Decodier- und Codierausführungsformen für die Verwendung mit einem beliebigen Protokoll zur Übertragung über einen beliebigen Kommunikationskanal ausgelegt sein.
  • 5 veranschaulicht ein Blockdiagramm einer Ausführungsform eines Kommunikationsnetzes 500 mit einem System 502 zum Codieren eines Codewortes für Paritätsprüfungen geringer Dichte und einem System 520 zum Decodieren einer Version des codierten Codewortes für Paritätsprüfungen geringer Dichte, das von einem Kommunikationskanal 505 zwischen den beiden Systemen empfangen wird. Eine Informationsquelle liefert Informationsbits 508 an einen LDPC-Codierer 510 des Systems 502. Der LDPC-Codierer 510 schließt eine Codierprozedur 512 ein, die eine H-Matrix-Konstruktion 514 verwendet, um ein Codewort zu generieren, das auf den Kanal 505 übertragen wird. Die H-Matrix-Konstruktion 514 wird unter Verwendung von LDPC-Codeparametern 514 entwickelt, die an das System 502 und das System 520 geliefert werden.
  • Das System 520 schließt einen LDPC-Decodierer 522 ein, der LDPC-Codeparameter 514 verwendet. Die LDPC-Codeparameter werden von der H-Matrix-Konstruktion 524 in dem LDPC-Decodierer 522 verwendet. Ein empfangenes Codewort von dem Kanal 505 wird einer Anfangsentscheidungseinheit 526 zugeführt, um weiche Entscheidungen zu treffen, die zu harten Entscheidungen 528 und Zuverlässigkeitsentscheidungen 530 führen. Harte Entscheidungen 528 sind die Anfangsbinärbits für ein Testcodewort, und Zuverlässigkeitsentscheidungen sind Anfangsbitzuverlässigkeiten, die mit den Bits des Testcodewortes verknüpft sind. In einer Ausführungsform sind harte Entscheidungen 528 Binärbits, die gemäß dem Vorzeichen des entsprechenden Bits des empfangenen Codewortes eingestellt werden. Ein empfangenes Bit mit einem positiven Wert wird auf Eins gesetzt, und ein empfangenes Bit mit einem Nullwert oder einem negativen Wert wird auf Null gesetzt. Als Alternative dazu wird ein empfangenes Bit mit einem Nullwert oder einem positiven Wert auf Null gestellt und ein empfangenes Bit mit einem negativen Wert auf Eins gesetzt. Die Anfangsbitzuverlässigkeiten für jedes Bit des empfangenen Codewortes können auf den Absolutwert des entsprechenden Bits des empfangenen Codewortes gesetzt werden.
  • Die harten Entscheidungen 528, die Zuverlässigkeitsentscheidungen 530 und die H-Matrix-Konstruktion 524 werden einem Mehrschwellenwert-Decodierer 532 zugeführt, um einen iterativen Decodierprozeß durchzuführen, um Informationsbits 508 aus dem System 520 bereitzustellen. Der Mehrschwellenwert-Decodierer 532 verwendet Schwellenwerte 534, mit denen konstruierte Zuverlässigkeiten verglichen werden, und es werden Bitzuverlässigkeiten und Bits für ein Testcodewort aktualisiert. Die konstruierten Zuverlässigkeiten werden aus den Bitzuverlässigkeiten entwickelt. In einer Ausführungsform werden die konstruierten Zuverlässigkeiten aus den Anfangszuverlässigkeitsentscheidungen und berechneten Prüfsummen entwickelt. Die Bits für ein Testcodewort werden aus harten Entscheidungen 528 mit gemäß den Vergleichen mit dem Wert der Schwelle bei jeder Iteration umgedrehten Bits generiert. In einer Ausführungsform werden die Schwellenwerte 534 auf der Grundlage des Vergleiches der konstruierten Bitzuverlässigkeiten und des Wertes der Schwelle für eine gegebene Iteration berechnet. In einer Ausführungsform wird eine Menge von Schwellenwerten 534 auf der Grundlage des Vergleiches der konstruierten Bitzuverlässigkeiten und des Wertes der Schwelle für eine gegebene Iteration berechnet und bei einer Reihe von anderen Iterationen verwendet. Eine zweite Menge von Schwellenwerten 534 ist auf einen Festwert, zum Beispiel Null, gesetzt und wird bei einer Reihe von anderen Iterationen verwendet. Der Festwert der Schwelle wird bei derjenigen Gruppe von Iterationen verwendet, die die letzten Iterationen in dem Decodierprozeß bildet. Als Alternative dazu sind die Schwellenwerte 534 auf vorgegebene Werte in Abhängigkeit von der Iteration, bei der der Wert der Schwelle verwendet wird, gesetzt.
  • Es können verschiedene Ausführungsformen des Kommunikationsnetzes 500, des Systems 502 und des Systems 520 ausgeführt werden. Das Kommunikationsnetz 500 kann ein landbasiertes Netz sein, das Glasfasern, Koaxialkabel oder Drähte als Medien für die Kommunikationskanäle zwischen verschiedenen Knoten des Kommunikationsnetzes 500 verwendet. Das Kommunikationsnetz 500 kann als drahtloses Netz ausgeführt werden, in dem die Systeme 502 und 520 als Teil eines Knotens des Kommunikationsnetzes 500 oder als Teil eines drahtlosen Empfangsgerätes, das Signale von den Knoten des Kommunikationsnetzes 500 empfängt, konfiguriert sind. Das System 502 und das System 520 können als Teil von (ohne darauf beschränkt zu sein) Netzkomponenten, zum Beispiel Basisstationen, konfiguriert sein und können als Teil von (ohne darauf beschränkt zu sein) drahtlosen Empfangsgeräten, zum Beispiel Handheld-Kommunikationsgeräte, -Computer und Laptop-Rechner, konfiguriert sein. Obgleich es nicht gezeigt wird, schließen die Systeme 502 und 520, die in einem drahtlosen Kommunikationssystem 500 konfiguriert sind, Antennen zum Senden und Empfangen von Signalen, die ein oder mehrere Codewörter einschließen, ein. Die Schemata und die Vorrichtung zum Decodieren und Codieren schränken die Art oder Konfiguration von unterstützenden Komponenten, zum Beispiel Antennen, in den Systemen 502 und 520 nicht ein. In einer Ausführungsform wird eine im wesentlichen omnidirektionale Antenne verwendet.
  • Jeder Knoten des Kommunikationsnetzes 500, das als Festnetz oder als drahtloses Netz konfiguriert ist, kann eine Version des Systems 502 und/oder eine Version des Systems 520 oder ein System, das eine Kombination aus dem System 502 und dem System 520 darstellt, enthalten. Außerdem können die Decodier- und Codierprozesse, die in den Codierern und Decodierern des Systems 502 und des Systems 520 verwendet werden, und andere hierin beschriebene Ausführungsformen für Prozesse und eine Vorrichtung zum Decodieren und Codieren für die in dem Kommunikationsnetz 500 verwendeten Kommunikationsstandards und -protokolle ausgelegt sein.
  • 6 veranschaulicht ein Ablaufdiagramm einer Ausführungsform eines Verfahrens, das mit einem LDPC-Decodierer, zum Beispiel der gemäß 5 konfigurierte LDPC-Decodierer 522, verwendbar ist. Bei 610 werden ein anfänglicher Vektor einer harten Entscheidung und ein Anfangszuverlässigkeitsvektor konstruiert. Für ein empfangenes Codewort, Y = (Y1, Y2, ..., Yn), sei N(m) die Menge der Codewortpositionen, die in einer tuten Paritätsprüfung verwendet werden: N(m) = {n : Hm ,n = 1}, wobei H die Paritätsprüfungsmatrix ist, zum Beispiel bereitgestellt von der H-Matrix-Konstruktion 524 in 5, und Hm ,n = 1 bedeutet, daß der Wert der H-Matrix an der Position m,n gleich Eins ist. Ferner sei M(n) die Paritätsprüfungsmenge, die die n-te Codewortposition einschließt: M(n) = {m : Hm,n = 1}.
  • Bei der Initialisierung werden für jedes Element Yi des empfangenen Vektors, zum Beispiel empfangen an dem LDPC-Decodierer 522 von 5, eine harte Entscheidung Xi und eine Bitzuverlässigkeit Ri berechnet. Die Bitzuverlässigkeit Ri wird auf den Absolutwert von Yi gesetzt. Die harte Entscheidung kann Xi auf Eins setzen, wenn Vi größer als Null ist, und Xi auf Null setzen, wenn Yi kleiner als Null oder gleich Null ist. Für jedes m ∊ M(n) ist eine Paritätsprüfungs-Bitzuverlässigkeit definiert als Ymn, wobei anfänglich Ymn = Rn gilt, und eine zugehörige harte Entscheidung definiert als Xmn, wobei anfänglich Xmn = Xn gilt.
  • Nach der Initialisierung beginnt bei 620 ein iterativer Prozeß mit einer Paritätsprüfungszuverlässigkeits-Berechnung. In einer Ausführungsform werden für jedes n und jedes m ∊ M(n) Prüfsummen, Smn, wie folgt berechnet:
    Smn = Xn ⊕ Σ Xmn' mod 2, wobei die Summierung über n' ∊ N(m)\n ist. Ein Ausdruck N(m)\n bedeutet eine Menge N(m), wobei Bit n ausgeschlossen ist. Ein Wert für das Minimum von Ymn ist gekennzeichnet als: Ymn min = min {Ymn'} für n' ∈ N(m)\n.
  • Bei 630 wird ein Schwellenwert berechnet. In einer Ausführungsform wird der Schwellenwert auf den Minimalwert, über alle n, der Menge einer aktualisierten Bitzuverlässigkeit gesetzt, definiert für jedes n als: Zn = Rn + Σ(–1)SmnYmn min für m ∈ M(m).
  • Diese aktualisierten Bitzuverlässigkeiten wirken auch als Vergleichszuverlässigkeiten in dem Decodierprozeß. In einer Ausführungsform wird die mehrere Werte aufweisende Schwelle durch Berechnen eines Wertes der Schwelle während jeder Iteration des Decodierprozesses bereitgestellt. Das ist ein adaptives Verfahren. In einer Ausführungsform kann die mehrere Werte aufweisende Schwelle durch Berechnen eines Wertes der Schwelle während der ersten Iteration unter Verwendung der aktualisierten Bitzuverlässigkeiten bereitgestellt und als Festwert, zum Beispiel Null, für die verbleibenden Iterationen bereitgestellt werden. In einer Ausführungsform kann die mehrere Werte aufweisende Schwelle durch Berechnen eines Wertes der Schwelle während der ersten Iteration unter Verwendung von aktualisierten Bitzuverlässigkeiten und Verwenden dieses Wertes für die erste Hälfte der Gesamtzahl von Iterationen und anschließendes Verwenden eines Festwertes, zum Beispiel Null, für die zweite Hälfte der Gesamtzahl von Iterationen bereitgestellt werden.
  • In einer Ausführungsform kann die mehrere Werte aufweisende Schwelle durch Verwenden einer vorgegebenen Menge von Schwellenwerten bereitgestellt werden, wobei der verwendete Wert mit der Iterationszahl korreliert wird, bei der er angewendet wird. In einer Ausführungsform werden vorgegebene Werte gemäß Parameter des Kommunikationskanals, von dem das empfangene Codewort gewonnen wird, zugeordnet. Diese Parameter können eine Menge von Störabständen, eine Menge von anderen Kanalparametern oder eine Menge von Standardabweichungen, die mit Kanalparametern korreliert sind, einschließen. In einer Ausführungsform kann die vorgegebene Menge von Schwellenwerten in einem Simulationsprozeß bestimmt werden. Einer dieser Prozesse kann das Simulieren des Decodierprozesses zur Bereitstellung einer Menge von Schwellenwerten für einen gegebenen Störabstand und das Einstellen des Schwellenwertes für den gegebenen Störabstand als Mittelwert der Menge von simulierten Schwellenwreten einschließen. Der Prozeß ist für jeden Störabstand einer Menge von Störabständen durchführbar. Andere statistische Variationen von simulierten Schwellenwerten für den Decodierprozeß können implementiert werden. Diese vorgegebenen Werte (ganz gleich, welche Ausführungsform zur Bereitstellung dieser Werte verwendet wird) können in einer Tabelle gespeichert werden. Neben Software-Implementierungen erleichtern diese Tabellen Hardware-Implementierungen, die eine kurze Nachschlagetabelle verwenden.
  • In einer Ausführungsform werden die Schwellenwerte für mehrere Decodierbetriebsarten ausgewählt. Bei einer Betriebsart korrigiert der Decodierprozeß einen oder zwei Fehler. Bei dieser Betriebsart fügt der Decodierprozeß keine zusätzlichen Fehler in einen Codewortvektor ein. Bei einer anderen Betriebsart korrigiert der Decodierprozeß mehr als einen Fehler in einer Iteration und kann in einer späteren Iteration ein bis zwei Fehler korrigieren.
  • In Abhängigkeit von der zulässigen Komplexität, die für eine gegebene Anwendung erwünscht ist, sind verschiedene Kombinationen zur Bereitstellung der mehreren Schwellenwerte während des Iterationsprozesses verwendbar.
  • Bei 640 erfolgt eine Paritätsprüfungs-Bitzuverlässigkeits-Aktualisierung. Eine Menge von Vergleichszuverlässigkeiten wird unter Mitwirkung der Paritätsprüfungszuverlässigkeiten berechnet, was als Paritätsprüfungsabstimmung ansehbar ist. Für jedes n und jedes m ∊ M(n) ist Zmn, definiert als: Zmn = Rn + Σ(–1)Sm'nYm'n min für m' ∊ N(n)\m.
  • Für jedes n werden die Paritätsprüfungs-Bitzuverlässigkeiten, wie auch die zugehörigen harten Entscheidungen Xmn, auf der Grundlage der Vergleichszuverlässigkeiten Zmn aktualisiert. Die Aktualisierung einer Zuverlässigkeit oder einer harten Entscheidung beinhaltet die Beibehaltung des Wertes der Zuverlässigkeit oder der harten Entscheidung, wenn der Vergleich anzeigt, daß die Zuverlässigkeit oder die harte Entscheidung unverändert bleiben sollte.
  • Figure 00200001
  • Bei 650 wird ein neuer Vektor einer harten Entscheidung, C, auf der Grundlage der Vergleichszuverlässigkeiten oder aktualisierten Bitzuverlässigkeiten, Zn, generiert als:
    Figure 00210001
  • Die Aktualisierung eines Bits beinhaltet die Beibehaltung des Wertes des Bits, wenn der Vergleich anzeigt, daß das Bit unverändert bleiben sollte. Die Terme Ci stellen die Bits eines Testcodewortes bereit, um zu ermitteln, ob ein gültiges Codewort generiert worden ist. Bei 660 wird das Testcodewort hinsichtlich der Gültigkeit bewertet. Der iterative Prozeß kehrt unter Verwendung der aktualisierten Paritätsprüfungszuverlässigkeitswerte zu 620 zurück, wenn die folgende Relation eintritt: CHT ≠ 0.
  • Eine andere Ausführungsform eines Verfahrens zum iterativen Decodieren eines LDPC-Codewortes unter Verwendung einer mehrere Werte aufweisenden Schwelle schließt ein, daß man die Schwelle während des Iterationsprozesses nur zwei Werte annehmen läßt. Ein erster Wert ist eingestellt auf das Minimum der aktualisierten Zuverlässigkeiten, Zn, für die Zn, die in der ersten Iteration generiert werden, bevor Entscheidungsvergleiche angestellt werden. Ein zweiter Wert ist für darauffolgende Iterationen auf Null gesetzt. Eine solche Ausführungsform stellt eine Verstärkung der Decodierzeit von 0,5 dB bereit, verglichen mit anderen bekannten schnellen Decodierschemata, die im wesentlichen die gleiche Komplexität aufweisen.
  • Ausführungsformen eines Mehrschwellenwertschemas decodieren einen beliebigen LDPC-Code in jeder Situation, jedoch sind für einen vordefinierten Code und bekannte Kanaleigenschaften die Schwellenwerte genauer auswählbar. In den verschiedenen Ausführungsformen kann als Anzahl der Iterationen log2 n gewählt werden, wobei n die Codewortlänge ist. Das ermöglicht die Ausführung einer maximalen Anzahl von Iterationen, bevor die Iteration vor der Rekonstruktion eines gültigen Codewortes beendet wird. Versuche zeigen, daß die Abstimmung und die Optimierung des Schwellenwerts die BER-Verstärkung erhöhen, aber das Herausfinden der genauen Abhängigkeit von Schwellenwerten, von Codestruktur und Kanaleigenschaften hängt von der jeweiligen Anwendung ab.
  • Verschiedene Ausführungsformen oder eine Kombination aus Ausführungsformen einer Vorrichtung und von Verfahren zum Decodieren und Codieren von Kommunikationssignalen unter Verwendung eines Mehrschwellenwertschemas, wie hierin beschrieben, sind in Hardware-Implementierungen, Software-Implementierungen und Kombinationen aus Hardware- und Software-Implementierungen ausführbar. Diese Implementierungen können einen maschinell lesbaren Datenträger mit maschinell ausführbaren Befehlen zur Ausführung eines Decodier- und/oder Codierverfahrens unter Verwendung einer Ausführungsform eines Schemas, das mehrere Schwellenwerte zum iterativen Decodieren verwendet, einschließen. Der maschinell lesbare Datenträger ist auf keinen Datenträgertyp beschränkt. Der verwendete maschinell lesbare Datenträger hängt von der Anwendung ab, die eine Ausführungsform des Mehrschwellenwertschemas verwendet. In einer Ausführungsform kann ein Prozessor, der an einen Empfänger und/oder Sender gekoppelt ist, verschiedene Formen eines Speichers, an den er gekoppelt ist, und den maschinell lesbaren Datenträger verwenden, um das Decodieren und/oder Codieren von Informationen zur Datenübertragung zu lenken. In einer Ausführungsform kann der Speicher Parameter speichern, die zum iterativen Decodieren des empfangenen Codewortes verwendet werden.
  • Zwar ist eine Ausführungsform eines Verfahrens, das eine mehrere Werte aufweisende Schwelle verwendet, mit einem beliebigen LDPC-Code verwendbar, doch wird das Folgende als nicht einschränkendes Beispiel dargelegt. Dieses Beispiel stellt eine Ausführungsform eines Decodierverfahrens unter Verwendung eines Mehrschwellenwert-Decodierers an einem Code für Paritätsprüfungen geringer Dichte auf der Grundlage von Reed-Solomon-Codes mit zwei Informationssymbolen (RS-LDPC-Code) bereit. Das ist ein Beispiel für einen (n, γ, ρ) RS-LDPC-Code mit n = 32, γ = 4 und ρ = 3, mit einer Rate, R, von ca. 0,4 und folgender Paritätsprüfungsmatrix:
    Figure 00230001
  • Für dieses Beispiel hat der empfangene Vektor Y = {Yi} eine Codewortlänge von 32:
    Figure 00230002
  • In dieser Ausführungsform ist die Anzahl der Iterationen auf log2 n gesetzt, wobei n die Codewortlänge ist. Für n = 32 beträgt die Anzahl der Iterationen 5. Die Schwellenwerte für die Iterationen 1, 2 und 3 sind auf das Minimum der aktualisierten Bitzuverlässigkeiten, Zn, berechnet in der ersten Iteration, gesetzt. Die Schwellenwerte für die Iterationen 4 und 5 sind auf 0 gesetzt.
  • Bei der Initialisierung ist der Vektor der harten Entscheidung X = {Xi}
    Figure 00240001
    sind die Bitzuverlässigkeiten Ri
    Figure 00240002
    und sind die Paritätsprüfungszuverlässigkeiten anfänglich wie folgt eingestellt:
    Figure 00250001
  • Bei der ersten Iteration ergeben die Berechnung der Prüfsummen und die Bestimmung der minimalen Paritätsprüfungszuverlässigkeiten, Ymn-min,: Prüfsummen, Smn:
    Figure 00260001
    Figure 00270001
  • Der Schwellenwert wird berechnet, indem zuerst die aktualisierten Bitzuverlässigkeiten (Vergleichsbitzuverlässigkeiten), Zn, berechnet werden als:
    Figure 00280001
  • Aus diesen Werten von Zn wird bestimmt, daß der Schwellenwert gleich –1,04 ist. Die Bildung der Vergleichszuverlässigkeiten, Zmn, und die Aktualisierung der Paritätsprtifungszuverlässigkeiten, Ymn, und der verknüpften harten Entscheidungen, Xmn, ergeben:
    Figure 00280002
    Figure 00290001
    Figure 00300001
  • Dann wird ein Testcodewort als das rekonstruierte Codewort C = {Ci} gebildet:
    Figure 00300002
  • Das Testcodewort C ist derartig, daß HCT ≠ 0 gilt, und es wird eine zweite Iteration durchgeführt. Die Iteration 2 beginnt mit der Berechnung neuer Prüfsummen und neuer minimaler Paritätsprüfungszuverlässigkeiten, Ymn-min, mit folgenden Ergebnissen: Prüfsummen, Smn:
    Figure 00310001
    Figure 00320001
  • Der Schwellenwert ist für die Iterationen 1, 2 und 3 als Minimalwert der aktualisierten Bitzuverlässigkeiten (Vergleichsbitzuverlässigkeiten), Zn, berechnet in der ersten Iteration, zugeordnet worden. Somit ist der Schwellenwert in dieser Iteration, wie in der ersten Iteration, auf –1,04 gesetzt. Die Bestimmung der aktualisierten Bitzuverlässigkeiten (Vergleichsbitzuverlässigkeiten), Zn, für die zweite Iteration ergibt:
    Figure 00330001
  • Die Bildung der Vergleichszuverlässigkeiten, Zmn, der zweiten Iteration und die Aktualisierung der Paritätsprüfungszuverlässigkeiten, Ymn, und der verknüpften harten Entscheidungen, Xmn, der zweiten Iteration ergeben:
    Figure 00330002
    Figure 00340001
    Figure 00350001
  • Dann wird das Testcodewort als das rekonstruierte Codewort C = {Ci} gebildet:
    Figure 00350002
  • Das Testcodewort C ist derartig, daß HCT = 0 gilt, und die Decodierung wird beendet, wobei die Decodierung als erfolgreich betrachtet wird. Die Iterationen 3 bis 5 sind in diesem Beispiel nicht notwendig, und die Iterationen werden beendet. Zwar wurde ein zweiter Wert zur Verwendung in den Iterationen 4 und 5 ausgewählt und festgesetzt, doch wurde dieser nicht benötigt. Dieses Beispiel einer Implementierung einer Ausführungsform eines Mehrschwellenwert-Decodierschemas soll die verschiedenen Ausführungsformen der vorliegenden Erfindung nicht einschränken.
  • Es sind verschiedene Ausführungsformen zum Decodieren eines empfangenen Codewortes unter Verwendung einer mehrere Werte aufweisenden Schwelle auf einen beliebigen Code für Paritätsprüfungen geringer Dichte anwendbar. In solchen Ausführungsformen nimmt mit abnehmendem Gewicht des Paritätsprüfungsgewichtes die Decodierqualität zu. Diese Ausführungsformen können in einem Verfahren angewendet werden, das das Decodierschema mit einer geringen Komplexität ausstattet. In Abhängigkeit von der zulässigen Komplexität, die für eine gegebene Anwendung erwünscht ist, sind verschiedene Kombinationen zur Bereitstellung der mehreren Schwellenwerte während des Iterationsprozesses verwendbar. Die Verwendung von Ausführungsformen des Mehrschwellenwert-Decodierverfahrens reduziert die Komplexität zusätzlich, da diese Ausführungsformen in Hardware-Implementierungen ohne Gleitkommazahlen funktionieren können, wodurch Komplexität und Aufwand eliminiert werden. Ausführungsformen eines Mehrschwellenwert-Decodierschemas ermöglichen eine Pipeline- und/oder Parallelverarbeitung in Hardware-Implementierungen, da die Verwendung einer mehrere Werte aufweisenden Schwelle ein schnelles Decodierschema bereitstellen kann.
  • Ausführungsformen eines Mehrschwellenwert-Decodierschemas können für die Verwendung in einem beliebigen System, das mit einem Kommunikationskanal arbeitet, ausgelegt sein. Der Kommunikationskanal kann Teil eines landbasierten Kommunikationsnetzes oder eines drahtlosen Kommunikationsnetzes sein. In der Tat können Ausführungsformen der vorliegenden Erfindung durchaus als Teil eines beliebigen drahtlosen Systems, das Mehrträger-Drahtloskommunikationskanäle verwendet (zum Beispiel Orthogonal Frequency Division Multiplexing (OFDM), Discrete Multi-Tone Modulation (DMT) usw.), implementiert werden, wie es ohne Einschränkung in einem WPAN-Netz (Wireless Personal Area Network), einem WLAN-Netz (Wireless Local Area Network), einem WMAN-Netz (Wireless Metropolitan Area Network), einem WWAN-Netz (Wireless Wide Area Network), einem zellularen Netz, einem Netz der dritten Generation (3G), einem Netz der vierten Generation (4G), einem UMTS-Netz (Universal Mobile Telephone System) und in ähnlichen Kommunikationssystemen verwendet werden kann.
  • In verschiedenen Ausführungsformen werden Daten bereitgestellt, indem Codewörter, die von einem Kommunikationskanal empfangen werden, decodiert werden. Verwendete Decodierschemata können Schwellenwerte in dem Decodierprozeß verwenden. Schwellenwerte in einem iterativen Decodierprozeß können als Kriterien betrachtet werden, in Bezug auf die ein Vergleich angestellt werden kann, um nachfolgende Aktivitäten in dem Prozeß zu steuern. Eine Ausführungsform schließt einen Decodierer mit einem Mehrschwellenwert-Entscheidungsschema ein. Mit „Mehrschwellenwert-Entscheidungsschema" ist gemeint, daß ein Schwellenwert während einer oder mehrerer Decodieriterationen in einen berechneten Wert oder einen vordefinierten Wert abgeändert wird. In einem Mehrschwellenwert-Decodierer kann die Schwelle während unterschiedlicher iterativer Segmente des Decodierprozesses unterschiedliche Werte aufweisen. Ausführungsformen von Decodierschemata und eine Vorrichtung, die für solche Schemata ausgelegt ist, schließen die Anwendung eines Mehrschwellenwert-Decodierers mit adaptiver Schwellenwertauswahl und fester Schwellenwertauswahl ein. In einer Ausführungsform wird während der ersten Iteration ein maximaler Schwellenwert (in Absolutwerten) verwendet und in darauffolgenden Iterationen der Schwellenwert geändert, wobei sich der Schwellenwert verringert. Die Änderung der Schwellenwerte ermöglicht die Verwendung eines hohen Schwellenwertes während der ersten Iteration, was dazu führt, daß gar keine oder eine reduzierte Fehlerfortpflanzung auftritt. Somit wird, wenn der Decodierer auch nur eine geringe Anzahl von Fehlern korrigiert, die Decodierung bei darauffolgenden Iterationen bedeutend einfacher. Die Verwendung einer Ausführungsform des Mehrschwellenwert-Decodierschemas kann zu einer Verringerung der Anzahl der während der Decodierung vorgenommenen Iterationen führen.
  • Bei einer adaptiven Schwellenwertauswahl kann ein Schwellenwert während jeder Decodieriteration berechnet werden, oder er kann bei der ersten Decodieriteration berechnet und dann bei darauffolgenden Decodieriterationen verwendet werden. Bei einem adaptiven Schwellenverfahren benötigt der Decodierer keine zusätzlichen Informationen über die Parameter des Kommunikationskanals (zum Beispiel Rauschdispersion), in dem sich das Signal, das das Codewort überträgt, fortpflanzt. Zwar kann ein Schema zur adaptiven Schwellenwertauswahl unabhängig von der Kanalparameterkennzeichnung funktionieren, doch verwenden Decodierer, die mit adaptiver Schwellenwertauswahl arbeiten, zusätzliche Zeit während des Decodierens, um Schwellenwerte zu berechnen, sei es, daß es sich um einen Decodierer auf Software-Basis oder um einen auf Hardware-Basis handelt. Ferner kann in einer Hardware-Implementierung eine große Anzahl von elementaren Logikblöcken verwendet werden, um die Decodierung auszuführen.
  • In einer Ausführungsform zum Decodieren unter Verwendung eines Schemas zur Auswahl eines festen Schwellenwerts verwendet ein Decodierer vordefinierte Schwellen. Die Verwendung von festen Schwellenwert verringert die Komplexität des Decodierers. Die Schwellenwerte für einen Mehrschwellenwert-Decodierer sind nicht konstant und hängen von verschiedenen Parametern ab, zum Beispiel von dem Störabstand (SNR) des Kanals, der Codekonstruktion zum Generieren des Codewortes und der Codelänge. Festwerte für eine Schwelle können für jede Codewortkonstruktion und Codelänge getrennt ausgewählt werden. In einer Ausführungsform kann das Codewort als Codewort für Paritätsprüfungen geringer Dichte (LDPC-Codewort) ausgeführt sein.
  • In einer Ausführungsform wird das Funktionieren eines Mehrschwellenwert-Decodierers in einem Kanal mit additivem weißen Gauß'schen Rauschen (AWGN-Kanal) für einige Kanalparameter simuliert. Eine Ausführungsform eines Mehrschwellenwert-Decodierers, veranschaulicht in den 1 oder 6, kann in einer Simulation zur Bestimmung von Werten der Schwelle verwendet werden. Es wird eine Schwellenwerttabelle mit einem oder mehreren Werten für unterschiedliche Werte des Kanalparameters gebildet. In einer Ausführungsform werden Informationen über den Kanalparameter durch eine Kanalschätzeinheit, die in einer aktiven Übertragungsarchitektur konfiguriert ist, bereitgestellt. Die Kanalschätzeinheit und der Mehrschwellenwert-Decodierer können so angeordnet sein, daß sie Codewörter in einem Signal gemeinsam decodieren. In einer Ausführungsform liefert die Kanalschätzeinheit Informationen über den Kanalparameter an den Decodierer, und der Decodierer wählt eine Mehrzahl von Schwellenwerten für den gegebenen Kanalparameter aus der vordefinierten Schwellenwerttabelle aus. Die Verwendung von Informationen über Kanalparameterwerte generiert zusätzliche Informationen an den Decodierer, was die Leistung des Decodierers erhöht. Ferner ermöglicht die Verwendung einer vordefinierten Schwellenwerttabelle eine schnelle Auswahl von Schwellenwerten auf der Grundlage der Kanalbedingungen, was im Vergleich zu einem Schema zur adaptiven Schwellenwertauswahl die Decodiergeschwindigkeit ohne Qualitätsverlust erhöht.
  • 7 zeigt ein Ablaufdiagramm einer Ausführungsform eines Verfahrens zum iterativen Decodieren von Daten, die von einem Kommunikationskanal empfangen werden, unter Verwendung einer Menge von festen Schwellenwerten. Bei 720 wird eine Mehrzahl von Schwellen erfaßt. Die Mehrzahl von Schwellenwerten kann erfaßt werden, indem auf eine Tabelle oder eine andere Form einer Datenbank, in der diese Schwellenwerten gespeichert sein können, zugegriffen wird. Solche Tabellen oder Datenbanken können in der Vorrichtung oder dem System, die bzw. das die Decodierung ausführt, oder außerhalb einer solchen Vorrichtung oder eines solchen Systems gespeichert sein.
  • Die Mehrzahl von Schwellenwerten kann als Schwellenwerttabelle in verschiedenen Ausführungsformen ausgeführt sein. Die folgende Tabelle ist ein nicht einschränkendes Beispiel für Einträge für einige Codes und SNR-Werte, die in einer Schwellenwerttabelle stehen können:
    SNR EG(255, 175) Eric(2000, 1600) Infenion(24 00,1800) PEG(504, 252) RS(2048, 1649) Vand(1000, 757)
    2.00 –1.703209 –1.013369 –1.473104 –2.696182 –0.830832 –0.918977
    2.25 –1.797118 –1.049672 –1.539172 –2.738346 –0.869202 –0.960916
    2.50 –1.919731 –1.096213 –1.598608 –2.873956 –0.896573 –0.987151
    2.75 –2.035528 –1.121660 –1.686542 –2.973981 –0.951840 –1.025731
    3.00 –2.147337 –1.170183 –1.754481 –3.105872 –1.003469 –1.069663
    3.25 –2.283049 –1.209998 –1.818938 –3.250985 –1.069735 –1.123508
    3.50 –2.440478 –1250196 –1.913103 –3.353540 –1.150105 –1.180198
    3.75 –2.623968 –1297393 –2.004750 –3.489512 –1.237858 –1.229442
    4.00 –2.804447 –1.352606 –2.083417 –3.634091 –1.330557 –1.304540
    4.25 –2.999468 –1.397764 –2.167832 –3.753314 –1.433518 –1.354703
    4.50 –3.205640 –1.441435 –3.866233 –1.546978 –1.419868
  • In dieser Tabelle stellen die in Klammem stehenden Zahlen die Codelänge bzw. die Nachrichtenlänge dar. Im folgenden ist eine Liste der Codes der obigen Tabelle angegeben:
    Konstruktion EG (255, 175): LDPC-Codes auf der Grundlage der euklidischen Geometrie, Länge: 255, Nachrichtenlänge: 175 (Siehe Y. Kou, S. Lin und Marc P. C. Fossorier, Low-Density Parity-Check Codes Based an Finite Geometries: A Rediscovery and New Results, IEEE Transactions an Information Theory, 47(7), Nov. 2001.)
    Konstruktion Eric (2000, 1600): LDPC-Code aus Bo-Xia-Konstruktion, Länge: 2000, Nachrichtenlänge: 1600 (Siehe Eric Jacobsen, Intel LDPC Code Technical Description, 27. Oktober 2003, V 0.01)
    Konstruktion Infenion (2400, 1800): LDPC-Code, Infenion-Konstruktion, Länge: 2400, Nachrichtenlänge: 1800 (A technical presentation by Infenion Technologies.)
    Konstruktion PEG (504, 252): LDPC-Code, erlangt durch Progressive-Edge-Growth-Algorithmus, Länge: 504, Nachrichtenlänge: 252 (Siehe X. -Y. Hu, E. Eleftheriou, D. -M. Arnold, Regular and Irregular Progressive Edge-Growth Tanner Graphs, IBM Research, Zurich Research Laborstory, 2003.)
    Konstruktion RS (2048,1649): LDPC-Code aus Reed-Solomon-Codes mit 2 Informationssymbolen, Länge: 2048, Nachrichtenlange: 1649 (Siehe I. Djurdjevic, J. Xu, K. Abdel-Gharar und S. Lin, A Class of Low-Density Parity-Check Codes Constructed Based an Reed-Solomon Codes With Two Information Symbols, IEEE Communications Letters, 7(7), Juli 2003.)
    Konstruktion Vand (1000, 757): LDPC-Code auf der Grundlage der Vandermondematrix und zyklischer Vertauschungsblöcke, Länge: 1000, Nachrichtenlänge: 757 (Siehe E. Krouk et al., 10G Ethernet, Technical, report, Intel Nizhny Novgorod, Lab, März 2004).
  • Diese LDPC-Code-Konstruktionen sind als Beispiele angeführt, wobei Code-Konstruktionen dieser Art Fachleuten verständlich sind.
  • In einer Ausführungsform hat der Schwellenwert für jeden SNR-Wert und jede Code-Konstruktion einen Wert, der typischerweise auf mindestens die erste Iteration eines Decodierschemas angewendet wird, wobei mindestens ein zusätzlicher Festwert der Schwelle in dem Decodierschema bereitgestellt ist. Der zusätzliche Festwert kann für die zweite Iteration und darauffolgende Iterationen des Decodierschemas Null sein. Als Alternative dazu kann eine Schwellenwerttabelle eine Reihe von Einträgen für einen Kanalparameter einschließen, und für jeden Eintrag für den Kanalparameter kann der Schwellenwertparameter eine Mehrzahl von Werten der Schwelle einschließen, wobei ein Indikator oder Indikatoren bereitgestellt ist/sind, der bzw. die anzeigt/anzeigen, während welcher Iteration ein bestimmter Schwellenwert verwendet wird. Mit der Schwellenwerttabelle verknüpft sein kann ein Wert für die maximale Anzahl von Iterationen, die zu verwenden sind, bevor bestimmt wird, daß das Codewort nicht zu decodieren ist. Eine solche Tabelle kann auch eine Reihe von unterschiedlichen Kanalparametern einschließen, wobei die Werte für jeden Kanalparameter ihre zugehörige Mehrzahl von Schwellenwerten aufweisen.
  • Die Schwellenwerte für einen Mehrschwellenwert-Decodierer sind nicht konstant, sondern hängen von verschiedenen Parameter ab, zum Beispiel von dem Störabstand (SNR) des Kanals, der Codekonstruktion und der Codelänge. Für jede Codewortkonstruktion und Codelänge kann eine getrennte Menge von festen Schwellenwerten ausgewählt werden. Jeder implementierte Codetyp kann seine eigene Menge von festen Schwellenwerten aufweisen. In einer Ausführungsform kann das Codewort als Codewort für Paritätsprüfungen geringer Dichte (LDPC-Codewort) ausgeführt sein. In einer Ausführungsform kann die Menge von festen Schwellenwerten durch Simulieren eines Mehrschwellenwert-Decodierers bestimmt werden. In einer Ausführungsform wird die Funktion eines Mehrschwellenwert-Decodierers simuliert, indem eine Simulation hinsichtlich eines Kanalparameters erfolgt. Der Kanalparameter kann ein SNR sein. In einer Ausführungsform kann der Kanalparameter eine Rauschdispersion sein. Die Menge von Kanalparametern kann eine Menge von Standardabweichungen sein, die mit Kanalparametern korreliert sind. Es können andere statistische Variationen in einem simulierten Kanal implementiert werden, um Schwellenwerte für den Decodierprozeß zu bestimmen.
  • In einer Ausführungsform wird die Funktion eines Mehrschwellenwert-Decodierers in Bezug auf einen AWGN-Kanal simuliert, indem eine Simulation hinsichtlich eines ausgewählten Kanalparameters erfolgt. In einer Ausführungsform stellt die Simulation – für einige SNR – mehrere Schwellenwerte zur Durchführung der Decodierung bereit. Es kann ein Mittelwert der in der Simulationsdecodierung verwendeten Schwellenwerte berechnet werden. Es kann eine Schwellenwerttabelle mit Einträgen für unterschiedliche SNR-Werte oder unterschiedliche Rauschdispersionen gebildet werden. Die Schwellenwerttabelle ist nicht auf unterschiedliche SNR-Werte oder Rauschdispersionen beschränkt, sondern kann auf anderen Kanalparametern basieren. Die Schwellenwerttabelle kann mehrere Werte eines Decodierschwellenwerts für jeden Wert des Kanalparameters enthalten. Jeder der mehreren Werte der Schwelle kann spezifischen Iterationen des Decodierschemas zum Decodieren des Codewortes zugeordnet sein. Die nachfolgende Verwendung der Schwellenwerttabelle zum iterativen Decodieren eines in dem Kommunikationskanal empfangenen Codewortes stellt einem Mehrschwellenwert-Decodierer eine Menge von festen Schwellen für die mehreren Schwellen bereit. Die Bestimmung der Menge von mehreren Schwellenwerten für jeden Wert eines Kanalparameters ist nicht auf einen Simulationsprozeß beschränkt. Es können andere Prozesse zur Bestimmung der Menge von Schwellenwerte, die mehrere Werte aufweisen, implementiert werden.
  • Bei 730 wird ein Codewort von einem Kommunikationskanal empfangen. Das Codewort kann in einem Signal, das sich in dem Kommunikationskanal fortpflanzt, eingebettet sein. Das Codewort kann Informationen darstellen, die in einem Kommunikationskanal übertragen werden, wobei die Informationen so codiert oder umgewandelt werden, daß Codewörter entstehen, die in dem Kommunikationskanal zu übertragen sind. Die Verwendung von Codewörtern zur Übertragung von Informationen ermöglicht die Anwendung von Fehlerkorrekturverfahren auf die Übertragung der Informationen. Der Kommunikationskanal kann ein integraler Bestandteil eines größeren Kommunikationsnetzes oder ein Kanal in einer Vorrichtung, die eine Datenübertragung mit hoher Geschwindigkeit implementiert, sein.
  • Bei 740 wird die Mehrzahl von Schwellenwerten zum iterativen Decodieren des Codewortes verwendet. Das Decodieren von Codewörtern kann unter Verwendung mehrerer Werte einer Schwelle in dem Decodierschema implementiert werden, wobei die mehreren Werte aus der Mehrzahl von Schwellenwerten ausgewählt werden. Diese Schwellen haben Festwerte, die vor dem Decodieren des Codewortes bestimmt worden sind. In einer Ausführungsform werden die Schwellenwerte vor dem Empfang des Codewortes ausgewählt. In einer Ausführungsform kann der Decodierer die Mehrzahl von Schwellenwerten auswählen, indem er einen Wert einer Schwelle auswählt, der in einer oder mehreren Iterationen mit einem anderen Wert der Schwelle, der durch das Decodierschema festgelegt wird, zu verwenden ist.
  • In einer Ausführungsform kann ein Decodierschema, das in 7 veranschaulichte Merkmale aufweist, implementiert werden, indem Merkmale des in den 1 und/oder 6 veranschaulichten Decodierschemas modifiziert werden. Eine solche Modifizierung schließt, im Gegensatz zur Berechnung von Werten der Schwelle während des Decodierprozesses, die Verwendung von vorgegebenen Werten der Schwelle ein. Eine in 6 veranschaulichte Ausführungsform kann verwendet werden, um den Decodierprozeß zur Bestimmung einer Menge von festen Schwellenwerten zu simulieren. Die Auswahl der zu verwendenden Menge von Festwerten kann von Parameter des Kommunikationskanals abhängen.
  • 8 zeigt ein Ablaufdiagramm einer Ausführungsform eines Verfahrens zum Auswählen von mehreren Schwellenwerten zum iterativen Decodieren von Informationen, die von einem Kommunikationskanal empfangen werden. Bei 815 werden in einem Decodierer Informationen über einen Parameter des Kanals empfangen, durch den sich Signale fortpflanzen, die Codewörter enthalten. Die Informationen können eine oder mehrere von verschiedenen Eigenschaften, zum Beispiel der SNR oder die Rauschdispersion des Kanals, bereitstellen. Die Parameterinformationen können in dem Decodierer eingestellt werden, wenn der Kommunikationskanal konstruiert wird. In einer Ausführungsform wird ein Parameter des Kanals periodisch geschätzt und sein Status einem Decodierer zugeführt. In einer Ausführungsform wird ein Parameter des Kanals kontinuierlich geschätzt und sein Status einem Decodierer zugeführt. Als Alternative dazu kann das Eintreffen eines Signals automatisch das Senden der Parameterinformationen an den Decodierer initiieren. Bei 825 können auf der Grundlage der empfangenen Informationen mehrere Werte der Schwelle aus einer Schwellenwerttabelle oder -datenbank zum Decodieren der Codewörter in den empfangenen Signalen ausgewählt werden. Auf die Tabelle oder Datenbank kann innerhalb oder außerhalb des Decodierers zugegriffen werden. Die Werte können ausgewählt werden, indem die Tabelle oder Datenbank vor dem Empfang der Signale abgefragt wird. Die Abfrage kann erfolgen, wenn das Signal eintrifft. Diese Mehrzahl von Decodierschwellenwerten, ausgewählt aus der Mehrzahl von Schwellen mit vordefinierten Werten, die vor dem Decodieren eines Codewortes berechnet werden, kann einem Mehrschwellenwert-Decodierer zum Decodieren zugeführt werden.
  • 9 zeigt ein Blockdiagramm einer Ausführungsform einer Vorrichtung 900 mit einem Decodierer 910 und einem Schwellenwertmodul 920 zum iterativen Decodieren von Informationen unter Verwendung einer festen Mehrzahl von Schwellenwerten. Der Decodierer 910 empfangt ein Signal von einem Kommunikationskanal und eine Menge von mehreren Schwellenwerten von dem Schwellenwertmodul 920, um Codewörter in dem Signal zu decodieren, um Daten bereitzustellen. Die Menge von mehreren Schwellenwerten wird festgelegt, bevor der Decodierer 910 mit dem Decodieren des Signals beginnt. Die Menge von mehreren Schwellenwerten kann mehrere Schwellen für jeden Wert eines Parameters, der den Kanal kennzeichnet, in dem sich das Signal fortpflanzt, einschließen.
  • Das Schwellenwertmodul 920 kann an den Decodierer 910 gekoppelt oder als ein integraler Bestandteil des Decodierers 910 konstruiert sein. In einer Ausführungsform enthält das Schwellenwertmodul 920 eine Schwellenwerttabelle oder eine Schwellenwertdatenbank zum Speichern der vorgegebenen Schwellenwerte. Diese Schwellenwerte können dem Schwellenwertmodul 920 aus einem externen System zugeführt werden, das Schwellenwerte für einen oder mehrere Kanalparameter, zum Beispiel für mehrere SNR-Werte oder einen Rauschparameter, bestimmt. In einer Ausführungsform ist das externe System so gestaltet, daß es einen Mehrschwellenwert-Decodierer auf der Grundlage eines Kanalparameters simuliert. Der Kanalparameter kann den SNR oder Rauschparameter eines Kommunikationskanals, der zum Übertragen des Signals modelliert wird, einschließen. In einer Ausführungsform ist das Schwellenwertmodul 920 so ausgelegt, daß es die mehreren Schwellenwerte für mehrere Werte eines Kanalparameters, zum Beispiel ein SNR, eine Rauschdispersion oder eine mittlere Rauschvarianz, bestimmt. Das Schwellenwertmodul 920 kann so konfiguriert sein, daß es Simulationsverfahren in solch einer Bestimmungsprozedur verwendet. Die Simulation kann als die Wirkungsweise eines mehrere Schwellenwerte aufweisenden iterativen Decodierers, der auf einem AWGN-Kanal arbeitet, modelliert werden.
  • 10 zeigt ein Blockdiagramm einer Ausführungsform einer Vorrichtung 1000 mit einer Kanalschätzeinheit 1030 zum Liefern von Informationen an einen Decodierer 1010 zum Auswählen von mehreren Schwellenwerten zum iterativen Decodieren von Informationen. Der Decodierer 1010 empfängt ein Signal aus einem Kommunikationskanal und eine Menge von mehreren Schwellenwerte aus einem Schwellenwertmodul 1020, um Codewörter in dem Signal zu decodieren, um Daten bereitzustellen. Der Decodierer 1010 kann als eine Ausführungsform des Decodierers 910 von 9 ausgeführt sein. Außerdem kann das Schwellenwertmodul 1020 als eine Ausführungsform des Schwellenwertmoduls 920 von 9 ausgeführt sein. Die Menge von mehreren Schwellenwerten wird festgelegt, bevor der Decodierer 1010 mit dem Decodieren des Signals beginnt. Die Menge von mehreren Schwellenwerten kann mehrere Schwellenwerte für jeden Wert eines Parameters, der den Kanal kennzeichnet, in dem sich das Signal fortpflanzt, einschließen. Der Parameter, der den Kanal kennzeichnet, kann dem Decodierer 1010 aus der Kanalschätzeinheit 1030 zugeführt werden.
  • Die Kanalschätzeinheit 1030 kann an den Decodierer 1010 gekoppelt oder als ein integraler Bestandteil des Decodierers 1010 konfiguriert sein. In einer Ausführungsform sammelt die Kanalschätzeinheit 1030 Informationen über einen oder mehrere kennzeichnende Parameter des Kommunikationskanals, in dem sich das Signal fortpflanzt, ohne sich in dem Signalweg zu dem Decodierer 1010 zu befinden. Als Alternative dazu kann sich das Signal durch die Kanalschätzeinheit 1030 zu dem Decodierer 1010 fortpflanzen. In einer Ausführungsform kann die Kanalschätzeinheit 1030 so ausgelegt sein, daß sie Kanalparameter periodisch schätzt. Die Kanalschätzeinheit 1030 kann so ausgelegt sein, daß sie Kanalparameter nahezu kontinuierlich schätzt.
  • 11 veranschaulicht ein Blockdiagramm einer Ausführungsform eines Netzwerkes 1100, in dem Informationen an einem Ende eines Kanals 1125 codiert und an einem anderen Ende des Kanals 1125 decodiert werden. Das Netzwerk 1100 schließt ein System 1101 ein, das über den Kanal 1125 mit einem System 1102 kommuniziert. Einem Codierer 1115 werden Daten als Informationsbits 1105 zugeführt. Der Codierer 1115 ist so ausgelegt, daß er Informationsbits 1105 codiert und die codierten Informationen in einem Signal auf dem Kanal 1125 sendet. Der Codierer 1115 kann so ausgelegt sein, daß er die Informationsbits so codiert, daß sie einer Codekonstruktion und einer Codewortlänge entsprechen, die ein Decodierer 1110 des System 1102 erwartet.
  • Das System 1102 schließt eine Kanalschätzeinheit 1130 und ein Schwellenwertmodul 1120 zusätzlich zu dem Decodierer 1110 ein, um das Signal von dem Kanal 1125 zu decodieren, um die Informationsbits 1105, die aus dem System 1101 stammen, in dem System 1102 bereitzustellen. Das Schwellenwertmodul 1120 kann optional als ein integraler Bestandteil des Decodierers 1110 ausgeführt sein. In einer Ausführungsform ist die Kommunikation zwischen dem System 1101 und dem System 1102 bidirektional. Das System 1101 kann einen Decodierer, ein Schwellenwertmodul und eine Kanalschätzeinheit einschließen, die in einer Ausführungsform wie in System 1102 konfiguriert sind. Desgleichen kann das System 1102 einen Codierer in einer Ausführungsform wie in System 1101 einschließen.
  • In einer Ausführungsform schließt ein Kommunikationsnetz 1100 von 11 ein System 1101 zum Codieren eines Codewortes für Paritätsprüfungen geringer Dichte (LDPC-Codewort) und ein System 1102 zum Decodieren einer Version des codierten LDPC-Codewortes, das von dem Kommunikationskanal 1125 empfangen wird, ein. Der Kommunikationskanal 1125 kann einen faseroptischen Kanal, einen drahtgebundenen Kanal, einen Kanal, der Daten liest, die in einer Speichereinheit gespeichert sind, oder einen drahtlosen Kanal einschließen, ohne darauf beschränkt zu sein. Zusätzlich können Decodier- und Codierausführungsformen für die Verwendung mit einem beliebigen Protokoll zur Übertragung über einen beliebigen Kommunikationskanal ausgelegt sein.
  • Es können verschiedene Ausführungsformen des Kommunikationsnetzes 1100, des Systems 1101 und des Systems 1102 ausgeführt werden. Die Systeme 1101 und 1102 können als Netzknoten 1101 bzw. 1102 angeordnet sein, wobei jeder Knoten Verarbeitungssysteme darstellen kann, die eine Bitübertragungsschichteinheit (PHY-Einheit) aufweisen, die beispielsweise für den Betrieb gemäß 10GBase-T, definiert durch die Reihe von IEEE-802.3an-Standards, gestaltet ist. Die 10GBase-T-PHY läßt sich zum Beispiel an eine 10G Media Access Control (MAC) (Media-Zugriffssteuerung) und eine Gigabit Media Independent Interface (XGMII) (medienunabhängige Schnittstelle) in einer IEEE-Architektur anschließen. Die 10GBase-T-PHY kann zum Beispiel einen Teil einer Netzwerkkarte (NIC) einschließen. Die Netzknoten 1101 und 1102 können ein beliebiges Verarbeitungssystem und/oder Kommunikationsgerät einschließen, das/die sich für die Verwendung mit einem 10GBase-T-Gerät eignet/eignen. Die Netzknoten 1101 und 1102 können zum Beispiel als ein Paar Schalter/Vermittler, ein Paar Router, ein Paar Server, ein Schalter/Vermittler und ein Router, ein Schalter/Vermittler und ein Server, ein Server und ein Router usw. implementiert sein. Außerdem können die Netzknoten 1101 und 1102 auch Teil eines modularen Systems sein, in dem 10GBase-T die Hochgeschwindigkeitsverbindung für das System ist. In einer Ausführungsform kann jeder der Netzknoten 1101 und 1102 ein Host-System einschließen. Ein Host-System kann eine oder mehrere Funktionen an einem Knoten bereitstellen. Ein Host-System kann Operationen anderer Systeme und/oder einer anderen Vorrichtung an dem Knoten lenken. In einer Ausführungsform können die Netzknoten 1101 und 1102 ein Host-System einschließen, das als ein einziges Host-System für beide Netzknoten 1101 und 1102 konfiguriert ist. Weitere Beispiele für die Netzknoten 1101 und 1102 können High-End- Server, Supercomputer, Cluster, Grid-Computing, Workgroup-Switch-Uplinks, Aggregation-Uplinks, Speicherungseinrichtungen usw. einschließen. Die Ausführungsformen sind in diesem Zusammenhang nicht eingeschränkt.
  • Das Kommunikationsnetz 1100 kann ein handbasiertes Netz sein, das Glasfasern, Koaxialkabel oder Drähte als Medien für die Kommunikationskanäle zwischen verschiedenen Knoten des Kommunikationsnetzes 1100 verwendet. Das Kommunikationsnetz 1100 kann als drahtloses Netz ausgeführt werden, in dem die Systeme 1101 und 1102 als Teil eines Knotens des Kommunikationsnetzes 1100 oder als Teil eines drahtlosen Empfangsgerätes, das Signale von den Knoten des Kommunikationsnetzes 1100 empfangt, konfiguriert sind. Das System 1101 und das System 1102 können als Teil von (ohne darauf beschränkt zu sein) Netzkomponenten, zum Beispiel Basisstationen, konfiguriert sein und können als Teil von (ohne darauf beschränkt zu sein) drahtlosen Empfangsgeräten, zum Beispiel Handheld-Kommunikationsgeräte, -Computer und Laptop-Rechner, konfiguriert sein. Obgleich es nicht gezeigt wird, schließen die Systeme 1101 und 1102, die in einem drahtlosen Kommunikationssystem 1100 konfiguriert sind, Antennen zum Senden und Empfangen von Signalen, die ein oder mehrere Codewörter einschließen, ein. Die Schemata und die Vorrichtung zum Decodieren und Codieren schränken die Art oder Konfiguration von unterstützenden Komponenten, zum Beispiel Antennen, in den Systemen 1101 und 1102 nicht ein. In einer Ausführungsform wird eine im wesentlichen omnidirektionale Antenne verwendet.
  • Jeder Knoten des Kommunikationsnetzes 1100, das als handbasiertes Netz oder als drahtloses Netz konfiguriert ist, kann eine Version des Systems 1101 und/oder eine Version des Systems 1102 oder ein System, das eine Kombination aus dem System 1101 und dem System 1102 darstellt, enthalten. Außerdem können die Decodier- und Codierprozesse, die in den Codierern und Decodierern des Systems 1101 und des Systems 1102 verwendet werden, und andere hierin beschriebene Ausführungsformen für Prozesse und eine Vorrichtung zum Decodieren und Codieren für die in dem Kommunikationsnetz 1100 verwendeten Kommunikationsstandards und -protokolle ausgelegt sein.
  • In einer Ausführungsform kann eine Normierung in einer Zuverlässigkeitsaktualisierungs-Prozedur für das Mehrschwellenwert-Decodieren angewendet werden. Die hierin bereits erörterte Zuverlässigkeitsaktualisierungs-Prozedur in einem Mehrschwellenwert-Decodierer (MT-Decodierer) verwendet Daten aus der Kanalausgabe und die aktualisierten Zuverlässigkeiten aus der vorherigen Decodieriteration. Diese Werte werden verwendet, um das Decodierergebnis der aktuellen Iteration und die Menge der aktualisierten Zuverlässigkeiten zu erlangen, indem die Paritätsprüfungszuverlässigkeit zu der Kanalausgabe addiert oder von dieser subtrahiert wird, je nachdem, ob die Paritätsprüfung bestanden wird oder nicht. Die Kanalausgabe kann effektiv als die Eingabe des Decodierers betrachtet werden. Hier gibt es zwei Arten von Eingaben in der Zuverlässigkeitsaktualisierungs-Prozedur. Die erste Art ist die Kanalausgabe, und die zweite Art ist das Ergebnis der vorherigen Decodieriteration, so daß die Zuverlässigkeitsaktualisierung dargestellt werden kann durch:
    Figure 00490001
  • Bei hohen SNR-Werten, die mit einem Kommunikationskanal verknüpft sind, kann die Kanalausgabe vertrauenswürdiger als die Ergebnisse von Decodieriterationen sein. In einer Ausführungsform kann ein „Vertrauensfaktor" in die Zuverlässigkeitsaktualisierungs-Prozedur eingeführt werden. Der „Vertrauensfaktor" kann zur Erhöhung der Decodierleistung verwendet werden. Der „Vertrauensfaktor" kann die Normierung der Zuverlässigkeiten der Kanalausgabe und die Normierung der aus vorherigen Iterationen bestimmten Zuverlässigkeiten einschließen. Die Kanalausgabe kann einen Vertrauensfaktor (Normierungsfaktor) von 1 aufweisen, und die vorherigen Decodieriterationsergebnisse können einen geringeren Vertrauensfaktor (Normierungsfaktor) K, der geringer als 1 ist, aufweisen. Dann kann die Zuverlässigkeitsaktualisierung dargestellt werden durch:
    Figure 00490002
  • In einer Ausführungsform kann einem Vertrauensfaktor der Kanalausgabe ein von 1 verschiedener Normierungswert zugeordnet werden. Der Kanalausgabe kann zum Beispiel ein Normierungsfaktor zugeordnet werden, der geringer als eins, aber größer als der der Zuverlässigkeitsaktualisierung zugeordnete Normierungsfaktor ist. In einer Ausführungsform können dem Wert des Vertrauensfaktors der Kanalausgabe in Abhängigkeit von der Iterationszahl in dem Decodierprozeß für ein gegebenes Codewort unterschiedliche Werte zugeordnet werden. In verschiedenen Ausführungsformen kann K einen Wert im Bereich von ca. 0,68 bis ca. 0,85 aufweisen. In einer Ausführungsform können dem Wert von K, in Abhängigkeit von der Iterationszahl in dem Decodierprozeß für ein gegebenes Codewort, unterschiedliche Werte zugeordnet werden. Der Wert von K kann von einer in einer Datenkommunikationssitzung verwendeten LDPC-Codekonstruktion und der Anzahl von Einsen in den Spalten einer LDPC-Code-Pantätsprüfungsmatrix, die mit einer verwendeten LDPC-Codekonstruktion verknüpft ist, abhängen. Eine Erhöhung der Decodierleistung kann von der in einer Anwendung implementierten Codekonstruktion abhängen. Bei unterschiedlichen LDPC-Codekonstruktionen kann die Einstellung von K auf einen Wert im Bereich von ca. 0,68 bis ca. 0,85 die Decodierleistung, in Abhängigkeit von der Menge der ausgewählten Codes, von 0,1 auf 0,4 dB erhöhen. Es kann Optimalwerte von K für unterschiedliche LDPC-Codekonstruktionen geben.
  • 12 veranschaulicht Merkmale einer Ausführungsform eines Verfahrens zum verallgemeinerten Mehrschwellenwert-Decodieren. Das verallgemeinerte Mehrschwellenwert-Decodieren schließt neben dem Mehrschwellenwert-Decodieren die Verwendung eines Normierungsfaktors ein. Bei 1210 werden ein anfänglicher Vektor einer harten Entscheidung und ein Anfangszuverlässigkeitsvektor erlangt. Der anfängliche Vektor der harten Entscheidung und der Anfangszuverlässigkeitsvektor können aus einer weichen Kanalausgabe generiert werden. Bei 1220 werden Paritätsprüfungszuverlässigkeiten berechnet. Bitzuverlässigkeiten können zur Berechnung der Paritätsprüfungszuverlässigkeiten verwendet werden, wobei eine Paritätsprüfungszuverlässigkeit als ein minimaler Bitzuverlässigkeitswert aller Bits, die an der Paritätsprüfung beteiligt sind, betrachtet werden kann.
  • Bei 1230 kann ein Schwellenwert ausgewählt werden. In einer Ausführungsform kann der Schwellenwert während des iterativen Prozesses berechnet werden. Als Alternative dazu kann der Schwellenwert aus einer Menge von Schwellenwerten ausgewählt werden. Die Menge von Schwellenwerten kann in einer Simulationsprozedur bestimmt werden, die die Werte auf eine Art berechnet, die der Art der Berechnung des Schwellenwerts während des iterativen Prozesses ähnelt. Die Menge von Schwellenwerten kann eine Mehrzahl von Schwellenwerten für eine Mehrzahl von LDPC-Codekonstruktionen einschließen.
  • Bei 1240 kann eine Bitzuverlässigkeitsaktualisierung unter Einschluß einer Normierung der Zuverlässigkeiten erfolgen. Zur Neuberechnung von Bitzuverlässigkeiten kann ein gewichtetes Paritätsprüfungsabstimmverfahren verwendet werden, wobei die Gewichte die Paritätsprüfungszuverlässigkeiten sind. Zu Beginn kann der neuberechneten Bitzuverlässigkeit eine Bitzuverlässigkeit zugeordnet werden, und dann wird die Paritätsprüfungsabstimmung auf den aktuellen Vektor der harten Entscheidung angewendet. Wenn die Paritätsprüfung bestanden wird, wird die neuberechnete Bitzuverlässigkeit um den Paritätsprüfungszuverlässigkeitswert erhöht; anderenfalls wird die neuberechnete Bitzuverlässigkeit um den Paritätsprüfungszuverlässigkeitswert verringert. Die neuberechneten Zuverlässigkeiten werden mit dem Normierungskoeffizienten K, K ∊ [0,1], normiert. Es wird ein Schwellenwert dazu verwendet, die Entscheidung darüber zu treffen, ob das Bit und seine Zuverlässigkeit aktualisiert werden sollten. In einer Ausführungsform wird, wenn die Zuverlässigkeit unter dem Schwellenwert liegt, das Bit der harten Entscheidung umgekehrt, und seiner neuen Zuverlässigkeit wird der Absolutwert der neuberechneten Zuverlässigkeit zugeordnet.
  • Bei 1250 wird ein neuer Vektor einer harten Entscheidung, C, auf der Grundlage der aktualisierten Bitzuverlässigkeiten generiert. Bei 1260 kann das Codewort des neuen Vektors der harten Entscheidung, das als Testcodewort wirkt, hinsichtlich der Gültigkeit bewertet werden. Der iterative Prozeß kehrt unter Verwendung der aktualisierten Paritätsprüfungszuverlässigkeitswerte zu 1220 zurück, wenn die folgende Relation eintritt: CHT ≠ 0.
  • In einer Ausführungsform kann ein verallgemeinertes Mehrschwellenwert-Decodierschema, wie es in 12 gezeigt wird, auf eine Art implementiert werden, die dem Verfahren ähnelt, das hinsichtlich der 1 oder 6 erörtert worden ist, wobei ein zusätzliches Merkmal darin besteht, daß die Bitzuverlässigkeiten während des Prozesses der Bitzuverlässigkeitsaktualisierung um einen Faktor K normiert werden. In einer solchen Implementierung kann der Schwellenwert während des iterativen Prozesses berechnet oder aus einer Menge von Werten, die vor dem Decodieren des empfangenen Codewortes bestimmt worden sind, ausgewählt werden.
  • Ausführungsformen eines verallgemeinerten Mehrschwellenwert-Decodieralgorithmus (Generalized Multi-Treshold(GMT)-Decodieralgorithmus) mit einem Normierungsfaktor ähnlich der in 12 veranschaulichten Ausführungsform können eine Verbesserung eines Mehrschwellenwert-Decodierschemas, das in 6 für LDPC-Codes veranschaulicht ist, bereitstellen. Während ein MT-Decodierschema mehrere Werte einer Schwelle verwenden kann, um eine schnelle LDPC-Decodierung bereitzustellen, kann ein GMT-Decodierschema eine schnelle LDPC-Decodierung bereitstellen, indem es neben mehreren Werten einer Schwelle einen Normierungsfaktor verwendet.
  • 13 zeigt die BER-Leistung eines GMT-Decodierschemas 1310, eines MT-Decodierschemas 1320 und eines Belief-Propagation(BPD)-Decodierschemas 1330 für die binäre Phasenumtastungsmodulation (BPSK) und einen AWGN-Kanal im Falle einer Gleitkommaimplementierung. Die Verwendung des Normierungsfaktors in dem GMT-Decodieralgorithmus kann die Decodierleistung im Vergleich zu der MT-Decodierung um 0,1 bis 0,4 dB erhöhen. Wie 13 zeigt, nähert sich die GMT-Leistung 1310 der BPD-Leistung des BPD 1330 in einem Kanal mit Gauß'schem Rauschen an.
  • 14 zeigt die BER-Leistung eines GMT-Decodierschemas 1410 und eines BPD-Schemas 1430 für die BPSK-Modulation und einen AWGN-Kanal im Falle einer Festkommaimplementierung. Wie 14 zeigt, nähert sich die GMT-Leistung 1410 der BPD-Leistung 1430 in einem Kanal mit Gauß'schem Rauschen an. Die Verwendung eines verallgemeinerten Mehrschwellenwert-Decodieralgorithmus ist nicht auf die Verwendung bei der BPSK-Modulation beschränkt, sondern auch bei einer anderen Modulation möglich. So kann zum Beispiel ein GMT-Decodierschema für eine 128 Double Square (128-DSQ)-Modulation und AWGN verwendet werden, wobei eine Leistung bereitgestellt wird, die sich der BPD-Leistung für eine 128-DSQ-Modulation und AWGN annähert.
  • Ein Decodierer, der eine Belief-Propagation-Decodierung verwendet, kann als ein Optimalsymboldecodierer betrachtet werden, jedoch können mit einem Decodierer, der eine Belief-Propagation-Decodierung verwendet, Fragen hinsichtlich der Komplexität der Implementierung verbunden sein. Ein Decodierer, der eine Ausführungsform eines verallgemeinerten Mehrschwellenwert-Decodierschemas verwendet, kann mit einer Komplexität implementiert werden, die geringer als die Komplexität eines Belief-Propagation-Decodierers ist. Die Reduzierung der Komplexität der Implementierung kann aus der Verwendung von Zuverlässigkeiten am Eingang eines GMT-Decodierers resultieren. Bei der Verwendung dieser Zuverlässigkeiten mag die Berechnung von Log-Likelihood-Verhältnissen (LLR) am Eingang des Decodierers nicht erforderlich sein. In verschiedenen Ausführungsformen für die verallgemeinerte Mehrschwellenwert-Decodierung nähert sich die Leistung eines GMT-basierten Demodulators zwar der Leistung eines BPD-basierten Demodulators an, doch kann ein GMT-basierter Demodulator weniger komplex sein, da ein Prozeß zur LLR-Berechnung oder -schätzung in dem GMT-basierten Demodulator nicht notwendig sein mag.
  • In verschiedenen Ausführungsformen kann ein verallgemeinerter Mehrschwellenwert-Decodierer in verschiedenen elektronischen Vorrichtungen implementiert werden. Ein GMT-Decodierer kann in Kommunikationssytemen mit hoher Geschwindigkeit, bei der Vorwärtsfehlerkorrektur (FEC) für die LDPC-Decodierung im 10-Gigabit-Ethernet, im drahtlosen Ethernet, in Hochgeschwindigkeitsmodems und bei anderen Anwendungen zur Übertragung von Informationen verwendet werden. Eine Ausführungsform eines GMT-Decodierers kann in 10GBase-T-Netzwerkkarten implementiert werden. Ein GMT-Decodierschema kann in einem Demodulator implementiert werden, der einen Arbeitspunkt von 23,35 dB in AWGN für eine FEC für Paritätsprüfungen geringer Dichte auf der Bitübertragungsschicht eines Netzes unter Verwendung von zweidimensionalem 128-DSQ-Mapping mit einem (2048,1723)-LDPC-Code bereitstellt. Ein solcher GMT- Decodieralgorithmus kann in einem Hardware-Demodulationsmodul von 10G-Ethemet-Netzwerkkarten implementiert werden, die beispielsweise für den Betrieb gemäß 10GBase-T, definiert durch die Reihe von IEEE-802.3an-Standards (IEEE = Institute of Electrical and Electronics Engineers), angeordnet sind.
  • Verschiedene Ausführungsformen oder eine Kombination aus Ausführungsformen einer Vorrichtung und von Verfahren zum Decodieren von Kommunikationssignalen unter Verwendung eines verallgemeinerten Mehrschwellenschemas, wie hierin beschrieben, sind in Hardware-Implementierungen, Software-Implementierungen und Kombinationen aus Hardware- und Software-Implementierungen ausführbar. Diese Implementierungen können einen maschinell lesbaren Datenträger mit maschinell ausführbaren Befehlen zur Ausführung eines Decodierverfahrens unter Verwendung einer Ausführungsform eines Programms mit einem Normierungsfaktor und mehreren Schwellenwerten zum Aktualisieren von Bitzuverlässigkeiten zum iterativen Decodieren einschließen. Die Maschine kann ein Rechner sein, ohne darauf beschränkt zu sein. Der maschinell lesbare Datenträger ist auf keinen Datenträgertyp beschränkt. Der verwendete maschinell lesbare Datenträger hängt von der Anwendung ab, die eine Ausführungsform eines verallgemeinerten Mehrschwellenprogramms verwendet. In einer Ausführungsform kann ein Prozessor, der an einen Empfänger gekoppelt ist, verschiedene Formen eines Speichers, an den er gekoppelt ist, und den maschinell lesbaren Datenträger verwenden, um das Decodieren von Informationen zu lenken. In einer Ausführungsform kann der Speicher Parameter speichern, die zum iterativen Decodieren des empfangenen Codewortes verwendet werden.
  • 15 veranschaulicht ein Blockdiagramm einer Ausführungsform eines Systems 1500 mit einem Decodierer 1505, der ein GMT-Decodierschema verwendet. Das GMT-Decodierschema kann einen oder mehrere Normierungsfaktoren zum Decodieren eines LDPC-Codewortes verwenden, wobei der Wert des Normierungsfaktors von der implementierten spezifischen LDPC-Codekonstruktion und/oder Kanalparametern für eine gegebene Kommunikationssitzung abhängen kann. Der Decodierer 1505 kann eine Schwellenwertauswahl 1507 und eine Zuverlässigkeitsnormierung 1506 einschließen. Verschiedene Ausführungsformen, veranschaulicht in den 2, 5 und 9 bis 11, können so modifiziert werden, daß sie die Zuverlässigkeitsnormierung eines GMT-Decodierschemas einschließen. Der Decodierer 1505 kann mit einer Hardware-Architektur, einer Architektur auf Software-Basis oder einer Kombination aus Hardware-/Software-Architektur ausgeführt werden. Das System 1500 kann auch einen Controller 1510 und einen Bus 1530 einschließen, wobei der Bus 1530 einen Übertragungsweg zwischen dem Controller 1510 und einer Kommunikationseinheit 1540 bereitstellt. In einer Ausführungsform ist der Controller 1510 ein Prozessor. Der Bus 1530 kann ein Parallelbus sein. Der Bus 1530 kann ein serieller Bus sein. Der Bus 1530 kann PCI-kompatibel (periphere Komponentenverbindung) oder PCI-Express-kompatibel sein. In einer Ausführungsform kann das System 1500 einen Speicher 1520 und ein oder mehrere zusätzliche Peripheriegeräte 1560, die an den Bus 1530 gekoppelt sind, einschließen. Die Peripheriegeräte 1560 können Displays, Speicher oder andere Steuergeräte einschließen, die zusammen mit dem Controller 1510, der Kommunikationseinheit 1540 und/oder dem Decodierer 1505 arbeiten können.
  • Es können verschiedene Ausführungsformen des Systems 1500 ausgeführt werden. Das System 1500 kann als Knoten oder Komponente eines Knotens in einem Netz angeordnet sein. Das Netz kann eine Reihe von Knoten aufweisen, wobei jeder Knoten Verarbeitungssysteme darstellen kann, die eine Bitübertragungsschichteinheit (PHY-Einheit) aufweisen, die beispielsweise für den Betrieb gemäß 10GBase-T, definiert durch die Reihe von IEEE-802.3an-Standards, angeordnet ist. Die 10GBase-T-PHY läßt sich zum Beispiel an eine 10G Media Access Control (MAC) (Media-Zugriffssteuerung) und eine Gigabit Media Independent Interface (XGMII) (medienunabhängige Schnittstelle) in einer IEEE-Architektur anschließen. Die 10GBase-T-PHY kann zum Beispiel einen Teil einer Netzwerkkarte (NIC) einschließen. Ein Netzknoten kann als ein oder mehrere Systeme ausgeführt werden. Ein Netzknoten kann ein beliebiges Verarbeitungssystem und/oder Kommunikationsgerät einschließen, das/die sich für die Verwendung mit einem 10GBase-T-Gerät eignet/eignen. Netzknoten können zum Beispiel als ein Paar Vermittler/Schalter, ein Paar Router, ein Paar Server, ein Vermittler/Schalter und ein Router, ein Vermittler und ein Server, ein Server und ein Router usw. implementiert sein. Außerdem können Netzknoten auch Teil eines modularen Systems sein, in dem 10GBase-T die Hochgeschwindigkeitsverbindung für das System ist. Netzknoten können High-End-Server, Supercomputer, Cluster, Grid-Computing, Workgroup-Switch-Uplinks, Aggregation-Uplinks, Speicherungseinrichtungen usw. einschließen. Die Ausführungsformen sind in diesem Zusammenhang nicht eingeschränkt.
  • Die Kommunikationseinheit 1540 kann den Decodierer 1505 einschließen. Der Decodierer 1505 kann in dem System 1500 ein separates Modul sein, das operativ an die Kommunikationseinheit 1540 gekoppelt ist, um Nachrichten, die von einem Kommunikationskanal empfangen werden, zu decodieren. In einer Ausführungsform kann die Kommunikationseinheit 1540 eine Netzwerkkarte einschließen. In einer Ausführungsform kann die Kommunikationseinheit 1540 ein Kommunikationsgerät einschließen, das sich für die Verwendung mit einem 10GBase-T-Gerät eignet. In einer drahtlosen Ausführungsform kann die Kommunikationseinheit 1540 einen Anschluß 1547 zum Ankoppeln an eine Antenne 1550 einschließen. Der Anschluß 1547 kann einen Eingang zum Empfangen eines Codewortes für Paritätsprüfungen geringer Dichte bereitstellen. In einer Ausführungsform kann die Antenne 1550 eine im wesentlichen omnidirektionale Antenne sein. Die Kommunikationseinheit 1540 kann einen Anschluß 1543 zum Ankoppeln an ein Übertragungsmedium 1541 einschließen. Der Anschluß 1543 kann einen Eingang zum Empfangen eines Codewortes für Paritätsprüfungen geringer Dichte bereitstellen. Das Übertragungsmedium 1541 kann ein Glasfasermedium sein. Das Übertragungsmedium 1541 kann an ein drahtgebundenes Netz ankoppeln. Das Übertragungsmedium 1541 kann ein Kabel sein. Das Übertragungsmedium 1541 kann ein Koaxialkabel, ein unabgeschirmtes verdrilltes Leitungspaar oder ein abgeschirmtes verdrilltes Leitungspaar einschließen.
  • Das System 1500 kann, ohne darauf beschränkt zu sein, Informationsverarbeitungsgeräte, drahtlose Systeme, Telekommunikationsnetze, Glasfasersysteme, elektrooptische Systeme und Rechner einschließen. Ausführungsformen eines verallgemeinerten Codierprogramms, die den hierin beschriebenen ähneln, können für die Verwendung in einem System, das mit einem Kommunikationskanal arbeitet, ausgelegt sein. Solche Ausführungsformen können mit einem Ethernetkanal, einschließlich eines drahtlosen Ethernetkanals, verwendet werden. Der Kommunikationskanal kann Teil eines handbasierten Kommunikationsnetzes oder in Form eines drahtlosen Kommunikationsnetzes sein. In der Tat können Ausführungsformen der vorliegenden Erfindung durchaus als Teil eines beliebigen drahtlosen Systems, das Mehrträger-Drahtloskommunikationskanäle verwendet (zum Beispiel Orthogonal Frequency Division Multiplexing (OFDM), Discrete Multi-Tone Modulation (DMT) usw.), implementiert werden, wie es ohne Einschränkung in einem WPAN-Netz (Wireless Personal Area Network), einem WLAN-Netz (Wireless Local Area Network), einem WMAN-Netz (Wireless Metropolitan Area Network), einem WWAN-Netz (Wireless Wide Area Network), einem zellularen Netz, einem Netz der dritten Generation (3G), einem Netz der vierten Generation (4G), einem UMTS-Netz (Universal Mobile Telephone System) und in ähnlichen Kommunikationssystemen verwendet werden kann.
  • Es sind hierin zwar spezifische Ausführungsformen veranschaulicht und beschrieben worden, doch wird Fachleuten einleuchten, daß jede Anordnung, von der erwartet wird, daß sie den gleichen Zweck erfüllt, an die Stelle der gezeigten spezifischen Ausführungsformen treten kann. Diese Anwendung soll alle Anpassungen oder Variationen von Ausführungsformen der vorliegenden Erfindung einschließen. Es versteht sich, daß die obige Beschreibung veranschaulichen und nicht einschränken soll und daß die hierin verwendete Ausdrucksweise oder Fachsprache der Beschreibung und nicht der Einschränkung dienen soll.
  • Zusammenfassung
  • Es werden Verfahren, eine Vorrichtung und Systeme zur Fehlerkorrektur eines Kommunikationssignals bereitgestellt. Ein verallgemeinertes Mehrschwellenwertprogramm zum iterativen Decodieren eines empfangenen Codewortes kann Generieren einer Bitzuverlässigkeit auf der Grundlage einer Kanalausgabezuverlässigkeit und einer aktualisierten Bitzuverlässigkeit aus einer vorherigen Decodieriteration einschließen, wobei die Bitzuverlässigkeit unter Verwendung eines Normierungsfaktors und eines Vergleiches mit einer Schwelle aktualisiert wird. Die Schwelle kann während des iterativen Decodierens eine Mehrzahl von Schwellenwerten aufweisen.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • - RU 2004/000123 [0001]
    • - RU 2004/000536 [0002]
  • Zitierte Nicht-Patentliteratur
    • - Y. Kou, S. Lin und Marc P. C. Fossorier, Low-Density Parity-Check Codes Based an Finite Geometries: A Rediscovery and New Results, IEEE Transactions an Information Theory, 47(7), Nov. 2001 [0082]
    • - Eric Jacobsen, Intel LDPC Code Technical Description, 27. Oktober 2003 [0082]
    • - X. -Y. Hu, E. Eleftheriou, D. -M. Arnold, Regular and Irregular Progressive Edge-Growth Tanner Graphs, IBM Research, Zurich Research Laborstory, 2003 [0082]
    • - I. Djurdjevic, J. Xu, K. Abdel-Gharar und S. Lin, A Class of Low-Density Parity-Check Codes Constructed Based an Reed-Solomon Codes With Two Information Symbols, IEEE Communications Letters, 7(7), Juli 2003 [0082]
    • - E. Krouk et al., 10G Ethernet, Technical, report, Intel Nizhny Novgorod, Lab, März 2004 [0082]

Claims (29)

  1. Verfahren, umfassend: Generieren einer Bitzuverlässigkeit zum iterativen Decodieren eines empfangenen Codewortes, enthaltend Generieren der Bitzuverlässigkeit auf der Grundlage einer Kanalausgabezuverlässigkeit und einer aktualisierten Bitzuverlässigkeit aus einer vorherigen Decodieriteration, so daß für jede Iteration die Bitzuverlässigkeit unter Verwendung eines Normierungsfaktors und eines Vergleiches mit einer Schwelle aktualisiert wird, dadurch gekennzeichnet, daß die Schwelle während des iterativen Decodierens eine Mehrzahl von Schwellenwerten aufweist.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß das Verfahren Auswählen des Normierungsfaktors auf der Grundlage einer vorgegebenen Codekonstruktion für Paritätsprüfungen geringer Dichte einschließt.
  3. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß das Verfahren Korrigieren eines oder mehrerer Bits eines Testcodewortes auf der Grundlage eines Vergleiches der aktualisierten Bitzuverlässigkeit mit der Schwelle, um ein gültiges Codewort bereitzustellen, einschließt, wobei das Testcodewort zu Beginn aus dem empfangenen Codewort generiert wird.
  4. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß das Verfahren Anwenden eines Kanalnormierungsfaktors auf eine Kanalausgabezuverlässigkeit, um die Bitzuverlässigkeit zu aktualisieren, einschließt, wobei der Kanalnormierungsfaktor geringer als der Normierungsfaktor ist.
  5. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß das Verfahren einschließt: Durchführen eines weichen Entscheidungsprozesses zu jedem Bit des empfangenen Codewortes, um einen empfangenen Vektor zu generieren, aus dem ein Vektor einer harten Entscheidung und Bitzuverlässigkeiten generiert werden, Berechnen von Paritätsprüfungszuverlässigkeiten unter Verwendung der Bitzuverlässigkeiten, Neuberechnen der durch den Normierungsfaktor angepaßten Bitzuverlässigkeiten, und Berechnen eines Wertes der Schwelle.
  6. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß das Verfahren Erfassen der Mehrzahl von Schwellenwerten als vorgegebene Werte, die auf der Grundlage eines Kommunikationskanalparameters generiert werden, einschließt.
  7. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß das Verfahren Erfassen der Mehrzahl von Schwellenwerten aus einer Menge von vorgegebenen Werten, die auf der Grundlage einer oder mehrerer Codekonstruktionen für Paritätsprüfungen geringer Dichte generiert werden, einschließt.
  8. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß der Normierungsfaktor einen Wert im Bereich von 0,68 bis 0,85 einschließt.
  9. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß das iterative Decodieren eines empfangenen Codewortes die Begrenzung der Iteration auf eine Anzahl von Iterationen einschließt, wobei die Anzahl der Iterationen gleich log2 n ist, wobei n eine Codelänge des Codewortes ist.
  10. Maschinell lesbarer Datenträger, der Befehle speichert, die, wenn sie durch eine Maschine ausgeführt werden, bewirken, daß die Maschine eine Bitzuverlässigkeit generiert, um ein empfangenes Codewort iterativ zu decodieren, wobei die generierte Bitzuverlässigkeit auf einer Kanalausgabezuverlässigkeit und einer aktualisierten Bitzuverlässigkeit aus einer vorherigen Decodieriteration basiert, so daß für jede Iteration die Bitzuverlässigkeit unter Verwendung eines Normierungsfaktors und eines Vergleiches mit einer Schwelle aktualisiert wird, dadurch gekennzeichnet, daß die Schwelle während des iterativen Decodierens eine Mehrzahl von Schwellenwerten aufweist.
  11. Maschinell lesbarer Datenträger nach Anspruch 10, dadurch gekennzeichnet, daß die Befehle Befehle zum Korrigieren eines oder mehrerer Bits eines zu Beginn aus dem empfangenen Codewort generierten Testcodewortes, um ein gültiges Codewort bereitzustellen, einschließen.
  12. Maschinell lesbarer Datenträger nach Anspruch 10, dadurch gekennzeichnet, daß die Befehle Befehle zum Bereitstellen eines Nachrichtenwortes aus dem empfangenen Codewort nach dem iterativen Decodieren des empfangenen Codewortes einschließen.
  13. Maschinell lesbarer Datenträger nach Anspruch 10, dadurch gekennzeichnet, daß die Befehle Befehle einschließen zum: Durchführen eines weichen Entscheidungsprozesses zu jedem Bit des empfangenen Codewortes, um einen empfangenen Vektor zu generieren, aus dem ein Vektor einer harten Entscheidung und Bitzuverlässigkeiten generiert werden, Berechnen von Paritätsprüfungszuverlässigkeiten unter Verwendung der Bitzuverlässigkeiten, Neuberechnen der durch den Normierungsfaktor angepaßten Bitzuverlässigkeiten, und Berechnen eines Wertes der Schwelle.
  14. Maschinell lesbarer Datenträger nach Anspruch 10, dadurch gekennzeichnet, daß die Befehle Befehle zum Erfassen der Mehrzahl von Schwellenwerten aus einer Menge von vorgegebenen Werten, die auf der Grundlage einer oder mehrerer Codekonstruktionen für Paritätsprüfungen geringer Dichte generiert werden, einschließen.
  15. Maschinell lesbarer Datenträger nach Anspruch 10, dadurch gekennzeichnet, daß der Normierungsfaktor einen Wert im Bereich von 0,68 bis 0,85 einschließt.
  16. Vorrichtung, umfassend: einen Decodierer zum iterativen Decodieren eines empfangenen Codewortes, wobei der Decodierer einschließt: einen Bitzuverlässigkeitsgenerator zum Bereitstellen einer Menge von Bitzuverlässigkeiten, wobei jede Bitzuverlässigkeit einem Bit eines empfangenen Codewortes, das durch den Empfänger erfaßt wird, entspricht, und eine Vergleichseinheit, die eine Schwelle verwendet, so daß für jede Iteration eines iterativen Prozesses zum Decodieren des empfangenen Codewortes die Bitzuverlässigkeit auf der Grundlage eines Normierungsfaktors und eines Vergleiches mit der Schwelle aktualisiert wird, dadurch gekennzeichnet, daß die Schwelle während des iterativen Decodierens eine Mehrzahl von Schwellenwerten aufweist.
  17. Vorrichtung nach Anspruch 16, dadurch gekennzeichnet, daß die Vorrichtung eine Schwelleneinheit zum Speichern der Mehrzahl von Schwellenwerten als vorgegebene Werte, die auf der Grundlage eines Kommunikationskanalparameters generiert werden, einschließt.
  18. Vorrichtung nach Anspruch 16, dadurch gekennzeichnet, daß die Vorrichtung eine Schwelleneinheit zum Speichern der Mehrzahl von Schwellenwerten als vorgegebene Werte, die auf der Grundlage einer oder mehrerer Codekonstruktionen für Paritätsprüfungen geringer Dichte generiert werden, einschließt.
  19. Vorrichtung nach Anspruch 16, dadurch gekennzeichnet, daß der Normierungsfaktor einen Wert im Bereich von 0,68 bis 0,85 einschließt.
  20. Vorrichtung nach Anspruch 16, dadurch gekennzeichnet, daß die Vorrichtung eine 10GBase-T-Netzwerkkarte, in der der Decodierer angeordnet ist, einschließt.
  21. System, umfassend: einen Controller, einen Parallelbus, und einen Decodierer, der über den Parallelbus kommunikativ an den Controller gekoppelt ist, wobei der Decodierer zum iterativen Decodieren eines empfangenen Codewortes dient, wobei der Decodierer einschließt: einen Bitzuverlässigkeitsgenerator zum Bereitstellen einer Menge von Bitzuverlässigkeiten, wobei jede Bitzuverlässigkeit einem Bit eines empfangenen Codewortes, das durch den Empfänger erfaßt wird, entspricht, und eine Vergleichseinheit, die eine Schwelle verwendet, so daß für jede Iteration eines iterativen Prozesses zum Decodieren des empfangenen Codewortes die Bitzuverlässigkeit auf der Grundlage eines Normierungsfaktors und eines Vergleiches mit der Schwelle aktualisiert wird, dadurch gekennzeichnet, daß die Schwelle während des iterativen Decodierens eine Mehrzahl von Schwellenwerten aufweist.
  22. System nach Anspruch 21, dadurch gekennzeichnet, daß das System einen maschinell lesbaren Datenträger einschließt, der Befehle speichert, die, wenn sie durch das System ausgeführt werden, bewirken, daß das System den Decodierer zum iterativen Decodieren des empfangenen Codewortes steuert.
  23. System nach Anspruch 22, dadurch gekennzeichnet, daß die Befehle Befehle zum Generieren der Mehrzahl von Schwellenwerten einschließen.
  24. System nach Anspruch 21, dadurch gekennzeichnet, daß das System einen Speicher zum Speichern der Mehrzahl von Schwellenwerten als vorgegebene Werte, die auf der Grundlage eines Kommunikationskanalparameters generiert werden, einschließt.
  25. System nach Anspruch 21, dadurch gekennzeichnet, daß das System eine Schwelleneinheit zum Speichern der Mehrzahl von Schwellenwerten als vorgegebene Werte, die auf der Grundlage einer oder mehrerer Codekonstruktionen für Paritätsprüfungen geringer Dichte generiert werden, einschließt.
  26. System nach Anspruch 21, dadurch gekennzeichnet, daß der Normierungsfaktor einen Wert im Bereich von 0,68 bis 0,85 einschließt.
  27. System nach Anspruch 21, dadurch gekennzeichnet, daß das System einen Speicher zum Speichern mehrerer Werte des Normierungsfaktors einschließt.
  28. System nach Anspruch 21, dadurch gekennzeichnet, daß die Netzwerkkarte eine 10GBase-T-Netzwerkkarte einschließt.
  29. System nach Anspruch 21, dadurch gekennzeichnet, daß der Decodierer einen Ausgang zum Bereitstellen eines aus einem empfangenen Code für Paritätsprüfungen geringer Dichte decodierten Codewortes einschließt.
DE112005003790T 2005-12-26 2005-12-26 Verallgemeinerter Mehrschwellen-Decodierer für Codes für Paritätsprüfungen geringer Dichte Active DE112005003790B4 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/RU2005/000668 WO2007075098A1 (en) 2005-12-26 2005-12-26 Generalized multi-threshold decoder for low-density parity check codes

Publications (2)

Publication Number Publication Date
DE112005003790T5 true DE112005003790T5 (de) 2008-09-18
DE112005003790B4 DE112005003790B4 (de) 2013-03-07

Family

ID=36992548

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112005003790T Active DE112005003790B4 (de) 2005-12-26 2005-12-26 Verallgemeinerter Mehrschwellen-Decodierer für Codes für Paritätsprüfungen geringer Dichte

Country Status (3)

Country Link
US (1) US8209579B2 (de)
DE (1) DE112005003790B4 (de)
WO (1) WO2007075098A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103532568A (zh) * 2012-07-03 2014-01-22 联咏科技股份有限公司 迭代译码装置及其相关译码方法

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005096509A1 (en) * 2004-03-31 2005-10-13 Intel Corporation Multi-threshold message passing decoding of low-density parity check codes
US8281210B1 (en) * 2006-07-07 2012-10-02 Aquantia Corporation Optimized correction factor for low-power min-sum low density parity check decoder (LDPC)
US8228017B2 (en) 2009-02-09 2012-07-24 Analog Devices, Inc. Control techniques for motor driven systems
US8766565B2 (en) 2009-02-09 2014-07-01 Analog Devices, Inc. Control techniques for motor driven systems
US8473798B1 (en) * 2009-03-20 2013-06-25 Comtect EF Data Corp. Encoding and decoding systems and related methods
US8675693B2 (en) * 2009-04-27 2014-03-18 Qualcomm Incorporated Iterative decoding with configurable number of iterations
US8155049B2 (en) 2009-04-29 2012-04-10 Hong Kong Technologies Group Limited Method and device for user cooperative communication
US8280729B2 (en) * 2010-01-22 2012-10-02 Research In Motion Limited System and method for encoding and decoding pulse indices
US8495479B1 (en) * 2010-11-22 2013-07-23 Marvell International Ltd. Defect detection and correction via monitoring of syndromes and bit flips in decoder
US9270297B2 (en) * 2011-07-31 2016-02-23 SanDisk Technologies, Inc. Error-correction decoding with reduced memory and power requirements
US10365969B2 (en) 2011-11-01 2019-07-30 International Business Machines Corporation Multiple wireless communication systems stream slices based on geography
US9798616B2 (en) * 2011-11-01 2017-10-24 International Business Machines Corporation Wireless sending a set of encoded data slices
US9047203B1 (en) * 2011-12-21 2015-06-02 Altera Corporation Systems and methods for encoding and decoding data
US8645788B2 (en) * 2011-12-30 2014-02-04 Infinera Corporation Forward error correction (FEC) convergence by controlling reliability levels of decoded words in a soft FEC decoder
US8713414B2 (en) * 2012-01-26 2014-04-29 Telefonaktiebolager L M Ericsson (Publ) Method and apparatus for soft information transfer between constituent processor circuits in a soft-value processing apparatus
GB2500625B (en) * 2012-03-27 2014-11-12 Canon Kk Method and device for obtaining a data unit from a plurality of received data units
RU2012129926A (ru) * 2012-07-13 2014-01-20 ЭсЭсАй КОРПОРЕЙШН Ускорение имитирований декодера с исправлением ошибок с помощью добавления случайного шума
US10797728B1 (en) * 2012-07-25 2020-10-06 Marvell Asia Pte, Ltd. Systems and methods for diversity bit-flipping decoding of low-density parity-check codes
US20140129905A1 (en) * 2012-11-06 2014-05-08 Lsi Corporation Flexible Low Density Parity Check Code Seed
US9121753B2 (en) 2013-02-06 2015-09-01 Analog Devices Global Control techniques for motor driven systems utilizing back-EMF measurement techniques
US10084479B2 (en) * 2014-07-07 2018-09-25 Toshiba Memory Corporation Low BER hard-decision LDPC decoder
US20160378594A1 (en) * 2015-06-26 2016-12-29 Intel Corporation Method and apparatus to decode low density parity codes
US10447301B2 (en) 2017-09-13 2019-10-15 Toshiba Memory Corporation Optimal LDPC bit flip decision
CN112118016B (zh) * 2020-09-22 2022-07-19 展讯通信(上海)有限公司 译码控制方法及装置、终端、存储介质

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US495218A (en) * 1893-04-11 Elastic tire
US3806883A (en) 1972-11-22 1974-04-23 Rca Corp Least recently used location indicator
US5285498A (en) 1992-03-02 1994-02-08 At&T Bell Laboratories Method and apparatus for coding audio signals based on perceptual model
DE4240226C2 (de) 1992-11-30 1996-12-12 Deutsche Forsch Luft Raumfahrt Verfahren zum digitalen Übertragen von hierarchischen HDTV-, EDTV- und SDTV-Fernsehsignalen
SE516173C2 (sv) 1993-02-16 2001-11-26 Ericsson Telefon Ab L M Anordning för telekommunikation
US5550837A (en) 1994-05-24 1996-08-27 Telogy Networks, Inc. Adaptive differential pulse code modulation system with transmission error compensation
US5691992A (en) 1995-10-12 1997-11-25 Ericsson Inc. Punctured coding system for providing unequal error protection in a digital communication system
TW321810B (de) 1995-10-26 1997-12-01 Sony Co Ltd
US6031874A (en) 1997-09-26 2000-02-29 Ericsson Inc. Unequal error protection in coded modulation schemes
TW385602B (en) 1998-05-26 2000-03-21 Koninkl Philips Electronics Nv Transmission system with adaptive channel encoder and decoder
US6292917B1 (en) 1998-09-30 2001-09-18 Agere Systems Guardian Corp. Unequal error protection for digital broadcasting using channel classification
JP3728578B2 (ja) 1999-03-31 2005-12-21 富士通株式会社 マルチキャリア伝送における不均一誤り保護方法並びにその符号器及び復号器
US6771772B1 (en) 1999-07-09 2004-08-03 Oguz Tanrikulu Method and apparatus for fast network bulk delay and span estimation for line echo cancellation
US6614858B1 (en) * 2000-02-17 2003-09-02 Agere Systems Inc. Limiting range of extrinsic information for iterative decoding
US7190732B2 (en) 2000-04-06 2007-03-13 Lucent Technologies Inc. Multilevel coding with unequal error protection and time diversity for bandwidth efficient transmission
JP4389373B2 (ja) 2000-10-11 2009-12-24 ソニー株式会社 2元巡回符号を反復型復号するための復号器
US6694474B2 (en) 2001-03-22 2004-02-17 Agere Systems Inc. Channel coding with unequal error protection for multi-mode source coded information
US6633856B2 (en) 2001-06-15 2003-10-14 Flarion Technologies, Inc. Methods and apparatus for decoding LDPC codes
JP4047279B2 (ja) 2001-10-25 2008-02-13 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ ターボデコーダシステムの信頼度値の非線形スケーリング
US6854082B1 (en) 2001-11-27 2005-02-08 Lsi Logic Corporation Unequal error protection Reed-Muller code generator and decoder
KR100462611B1 (ko) 2002-06-27 2004-12-20 삼성전자주식회사 하모닉 성분을 이용한 오디오 코딩방법 및 장치
US7350130B2 (en) * 2002-08-15 2008-03-25 Broadcom Corporation Decoding LDPC (low density parity check) code with new operators based on min* operator
KR20040036460A (ko) 2002-10-26 2004-04-30 삼성전자주식회사 Ldpc 복호화 장치 및 그 방법
JP4062435B2 (ja) 2002-12-03 2008-03-19 日本電気株式会社 誤り訂正符号復号装置
JP4373340B2 (ja) 2003-02-26 2009-11-25 クゥアルコム・インコーポレイテッド 反復復号のためのソフト情報スケーリング
US7237181B2 (en) * 2003-12-22 2007-06-26 Qualcomm Incorporated Methods and apparatus for reducing error floors in message passing decoders
WO2005096509A1 (en) 2004-03-31 2005-10-13 Intel Corporation Multi-threshold message passing decoding of low-density parity check codes
CN101091320B (zh) 2004-12-29 2011-09-14 英特尔公司 用于通信信号的纠错的方法、装置和系统
US8051355B2 (en) 2004-12-29 2011-11-01 Intel Corporation Multilevel low density parity-check coded modulation
US8015468B2 (en) * 2004-12-29 2011-09-06 Intel Corporation Channel estimation and fixed thresholds for multi-threshold decoding of low-density parity check codes
US7856584B2 (en) 2005-03-30 2010-12-21 Intel Corporation Unequal error protection apparatus, systems, and methods
WO2007037713A1 (en) * 2005-09-30 2007-04-05 Intel Corporation Modified turbo-decoding message-passing algorithm for low-density parity check codes
TWI372523B (en) * 2008-11-14 2012-09-11 Realtek Semiconductor Corp Recording controller and decoder for parity-check code

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103532568A (zh) * 2012-07-03 2014-01-22 联咏科技股份有限公司 迭代译码装置及其相关译码方法

Also Published As

Publication number Publication date
DE112005003790B4 (de) 2013-03-07
US20090222711A1 (en) 2009-09-03
US8209579B2 (en) 2012-06-26
WO2007075098A1 (en) 2007-07-05

Similar Documents

Publication Publication Date Title
DE112005003790B4 (de) Verallgemeinerter Mehrschwellen-Decodierer für Codes für Paritätsprüfungen geringer Dichte
US8015468B2 (en) Channel estimation and fixed thresholds for multi-threshold decoding of low-density parity check codes
DE60313832T2 (de) Verfahren und System für die Generierung von Low Density Parity Check (LDPC) Codes
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
EP2204984B1 (de) Rundfunkempfänger und Verfahren zur Optimierung eines Skalierungsfaktors für eine Log-Likelihood-Zuweisung
DE60316616T2 (de) Verfahren und system zur berechnung der bitfehlerrate eines empfangenen signals
Trifonov et al. Generalized concatenated codes based on polar codes
Seidl et al. Improving successive cancellation decoding of polar codes by usage of inner block codes
US10566999B2 (en) Low-density parity check decoding
DE112005003706T5 (de) Modifizierter turbo-decodierender Nachrichtenweiterleitungsalgorithmus für Paritätsprüfcodes mit geringer Dichte
DE102018206132B4 (de) Decodergestützte iterative Kanalschätzung
DE112004003036T5 (de) Gemeinsamer Vorwärtsfehlerkorrektur- und automatischer Wiederholanforderungsbetrieb für eine Datenübertragungsschicht
CN110830049B (zh) 一种基于密度进化改进偏移最小和的ldpc译码方法
DE112017005181T5 (de) Systeme und Verfahren für ein auf Log-Likelihood-Ratio-basiertes dynamisches Vorverarbeitungs-Auswahlschema in einem Low-Density-Parity-Check-Decoder
DE102015110602A1 (de) Verfahren und Vorrichtung zum iterativen Decodieren einer Datentransferstruktur
DE602004009706T2 (de) Belief-ausbreitungsdecodierer, der den austausch unzuverlässiger nachrichten aufhebt
Habib et al. Learning to decode: Reinforcement learning for decoding of sparse graph-based channel codes
CN112491422A (zh) 基于高斯优化的比特翻转串行消除列表译码方法和系统
US8019020B1 (en) Binary decoding for correlated input information
DE60312906T2 (de) Turbo-dekodierung mit iterativer schätzung von kanalparametern
US10903855B2 (en) Convolutional LDPC decoding method and apparatus, decoder, and system
CN111555759A (zh) 一种广义ldpc码的设计方法
Frenzel Decoder Improvements for Fast Decoding of Low-Density Parity-Check Codes
Olaniyi et al. Machine Learning for Channel Coding: A Paradigm Shift from FEC Codes

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final

Effective date: 20130608

R082 Change of representative

Representative=s name: WITHERS & ROGERS LLP, DE

R081 Change of applicant/patentee

Owner name: APPLE INC., CUPERTINO, US

Free format text: FORMER OWNER: INTEL CORPORATION, SANTA CLARA, CALIF., US

R082 Change of representative

Representative=s name: WITHERS & ROGERS LLP, DE