-
HINTERGRUND DER ERFINDUNG
-
Gebiet der Erfindung
-
Die vorliegende Erfindung bezieht sich auf eine Decodiervorrichtung und ein Decodierverfahren und genauer gesagt auf eine Decodiervorrichtung und ein Decodierverfahren zum Decodieren von Daten, die durch einen Low-Density Parity-Check Code (Paritätskontrollcode niedriger Dichte) codiert sind.
-
Beschreibung des Stands der Technik
-
Der Low-Density Parity-Check (LDPC) Code (nachfolgend als LDPC-Code bezeichnet) ist ein Fehlerkorrekturcode, der einen iterativen Prozess verwendet, der von Gallager 1962 vorgeschlagen wurde und als Merkmal aufweist, dass eine Decodiereigenschaft, die nahe am Shannon-Limit liegt, mit wachsender Codelänge erhalten wird, und dass kaum ein Fehlersockel-(error floor) Phänomen auftritt, das beim Decodieren eines Turbo-Codes beobachtet wird.
-
Es ist möglich, einen LDPC-Code durch einen Meldungsweitergabe-Algorithmus durch Belief-Propagation (Erwartungsausbreitung) auf dem Tanner-Graph zu decodieren, der ein Graph ist, bei dem variable Knoten korrespondierend entsprechenden Bits eines Codeworts und Prüfknoten korrespondierend mit einer Paritätskontrollsumme miteinander mit einem Zweig verlinkt sind.
-
Ein typischer Meldungsweitergabe-Algorithmus ist der Summenproduktalgorithmus (sum-product algorithm). Beim Summenproduktalgorithmus wird das Decodieren durch Berechnen eines Log-Wahrscheinlichkeitsverhältnisses (nachfolgend als LLR bezeichnet) als stochastische Zuverlässigkeitsinformationen eines empfangenen Signals und simultan iteratives Durchführen einer Kalkulation durchgeführt (siehe beispielsweise Tadashi Wadayama, „Low-density parity-check (LDPC) Codes and its decoding algorithm“, Triceps, Seiten 76-99, 5. Juni 2002).
-
Beim Summenproduktalgorithmus ist die Decodierleistung hoch, da eine genaue Kalkulation durchgeführt wird, während Kalkulationskosten steigen, weil eine Kalkulation (wie etwa eine Addition von Realzahlen und Evaluierung von Funktionen) unter Verwendung mathematischer Funktionen erforderlich ist. Aus diesem Grund ist es, wenn der Summenproduktalgorithmus in einer Decodiervorrichtung implementiert wird, erforderlich, die Kalkulationskosten zu senken, indem beispielsweise eine Tabelle zum Halten eines Wertes einer Funktion vorbereitet wird.
-
Im Gegensatz zum Summenproduktalgorithmus gibt es einen Min-Summenalgorithmus als einen Algorithmus, bei dem bei einer Implementierung die Schaltungskonfiguration vereinfacht ist. Beim Min-Summenalgorithmus werden nur vier Arten von Kalkulationen einschließlich Addition, Detektion eines Minimalwertes, Entscheiden, ob eine Zahl positiv oder negativ ist, und Multiplikation der Vorzeichen von positiven und negativen Zahlen unter Verwendung eines einfachen Ausdrucks durchgeführt, bei dem die mathematischen Funktionen, die im Summenproduktalgorithmus verwendet werden, einer Annäherung unterworfen werden, was zu einer Reduktion bei den Kalkulationskosten führt. Jedoch gibt es den Nachteil, der die Decodierleistung aufgrund von Effekten der Approximation degradiert.
-
Weiterhin gibt es als Decodier-Algorithmus, der denselben Betrag an Kalkulationskosten wie der Min-Summenalgorithmus erfordert, und dessen Decodierleistung derjenigen des Summenproduktalgorithmus etwas unterlegen ist, beispielsweise den normalisierten Belief-Propagation (BP)-Algorithmus und den Offset-BP-Algorithmus (siehe beispielsweise Jinghu Chen et al, „Reduced complexity decoding of LDPC codes“, (online), gefunden am 22. Dezember 2008 (URL.: http://wwwee.eng.hawaii.edu/-jinghu/FILES/tcom02v3p2.pdf)).
-
Darüber hinaus wird als ein Decodier-Algorithmus mit demselben Grad an Decodierleistung wie der Summenproduktalgorithmus, dessen Kalkulationsbetrag im Vergleich zum Min-Summenalgorithmus größer ist, der δ-Min-Algorithmus vorgeschlagen (siehe beispielsweise R. Sakai et al, „Low complexity decoding algorithm for LDPC codes and its descretized density evolution", RCS2005-42 (2005-7), Seiten 13-18, Okayama, Juli 2005).
-
Jedoch werden bei den oben erwähnten Algorithmen Operationen für alle Zeilen beendet, und dann werden Operationen für alle Spalten durchgeführt, durch einen Decodierprozess. Daher tritt das Problem auf, dass eine für den Decodierprozess erforderliche Verzögerungszeit mit Anwachsen der Anzahl von Iterationen des Decodierprozesse länger wird.
-
Als Algorithmus zum Lösen der oben erwähnten Probleme gibt es den Shuffled_BP-Algorithmus, bei dem die Anzahl von Iterationen des Decodierprozesses reduziert ist. Beim Shuffled_BP-Algorithmus werden Berechnung und Aktualisierung von Wahrscheinlichkeitsinformationen, die durch eine Zeilenoperation und eine Spaltenoperation erhalten werden, für jedes Wort ausgeführt. Daher wird die Propagierung einer Wahrscheinlichkeitsinformation effizient durchgeführt, um rascher zu konvergieren, aber es wird Speicher zum Halten entsprechender Knoten erforderlich, was die Speichergröße um einen Betrag eines Zeilengewichts und eines Spaltengewichts vergrößert (siehe beispielsweise Juntan Zhang et al, Shuffled belief propagation decoding", (online), ermittelt am 28.09.2004, (URL: http://lester.univubs.fr:8080/-boutillon/Journee_GDR_LDPC/Fossorier1_GDR_LDPC.p df)).
-
Im Gegensatz dazu wird vorgeschlagen ein zyklischer approximierter Min-Algorithmus, der durch Verbessern des Min-Summenalgorithmus erhalten wird, des zyklischen Aktualisierens nur der Absolutwerte von LLR mit einer angemessenen Anzahl von Minimalwerten (was eine angemessene Anzahl bedeutet, die von einem Minimalwert aus in aufsteigender Reihenfolge beginnt), das heißt, dass die Decodierung nicht unter Verwendung eines genauen Minimalwertes, sondern unter Verwendung eines approximierten Minimalwerts durchgeführt wird. Der Einsatz des zyklischen approximierten Min-Algorithmus ermöglicht eine Reduktion der Speichergröße um einen größeren Betrag im Vergleich zum Shuffled-BP_Algorithmus (siehe beispielsweise Internationale Offenlegungsschrift
WO 2007/018066A1 ).
-
Druckschrift
EP 1 819 056 A1 , 15 August 2007, bezieht sich auf eine Dekodiervorrichtung mit einem Dekodiermittel zum Durchführen einer Berechnung und einer Aktualisierung von Wahrscheinlichkeitsinformationen mit Zeilenverarbeitung und Spaltenverarbeitung gemäß eines Min-Sum-Algorithmus bei einem empfangenen Signal, das Low-Density-Parity-Check-Codiert ist (LDPC)in Mengen von 1 Bit als ein Schiebeverarbeitungsschema für eine Belief-Propagation-Dekodierung oder von einer vorbestimmten Zahl von Bits als ein Gruppenschiebeverarbeitungsschema für eine Belief-Propagation-Dekodierung.
-
Druckschrift
US 2007/118 786 A1 , 24 Mai 2007, bezieht sich auf ein Verfahren und ein Vorrichtung zum Empfangen von Daten in einem Empfänger eines Kommunikationssystems. In dem Empfänger berechnet ein erster Rechner einen Log-Likelihood-Verhältnis (LLR)-Wert von Daten, die von einem Sender übertragen werden, und ein Dekodier führt eine iterative Dekodierung der übertragenen Daten unter Verwendung des von dem ersten Rechner berechneten LLR-Wertes durch. Ein zweiter Rechner ermittelt, durch Berechnung eines Fehlers der vom Dekodier dekodierten Daten, ob in den dekodierten Daten ein Fehler vorliegt. Ein Speicher speichert einen LLR-Wert der dekodierten Daten gemäß dem Bestimmungsergebnis des zweiten Rechners. Ein Addierer summiert den vom ersten Rechner berechneten LLR-Wert und den im Speicher gespeicherten LLR-Wert.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Bei einer Decodiervorrichtung und einem Decodierverfahren konventioneller Art, die den oben erwähnten Decodier-Algorithmus verwenden, muss die Anzahl an iterativem Decodierprozessen angehoben werden, um eine hohe Decodierleistung zu erhalten, was zu dem Problem führt, dass zusammen mit dem Ansteigen bei der Anzahl von Iterationen auch die Verzögerungszeit länger wird.
-
Die vorliegende Erfindung hat daher die Aufgabe, eine Decodiervorrichtung und eine Decodierverfahren bereitzustellen, die zur Reduktion der Anzahl von Iterationen des Decodierprozesses in der Lage sind, durch Durchführen einer hoch effizienten Belief-Propagation, um die Konvergenz von Berechnungsergebnissen zu beschleunigen.
-
Eine Decodiervorrichtung gemäß der vorliegenden Erfindung beinhaltet: eine Decodiereinheit 1, die iterativ an zu verarbeitenden Daten eine Berechnung durchführt, die eine Zeilenoperation und eine Spaltenoperation beinhaltet, in Übereinstimmung mit einem Summenproduktalgorithmus, um einen Wert von Wahrscheinlichkeitsinformation zu berechnen und zu aktualisieren; und eine Zuverlässigkeitsveränderungseinheit 2, die basierend auf einem Vergleich zwischen einem ersten Wert, welches der Wert eines Teils der Wahrscheinlichkeitsinformation ist, die durch die Decodiereinheit 1 berechnet oder aktualisiert ist, und einem zweiten Wert, der ein Wert von stochastischer Zuverlässigkeitsinformation der zu verarbeitenden Daten ist, den zweiten Wert ändert und den veränderten zweiten Wert am ersten Wert reflektiert, um den ersten Wert zu korrigieren.
-
Dementsprechend wird eine hoch effiziente Belief-Propagation durchgeführt, um die Konvergenz der Berechnungsergebnisse zu beschleunigen, wodurch es möglich wird, die Anzahl von Iterationen des Decodierprozesses zu reduzieren.
-
Diese und andere Aufgaben, Merkmale, Aspekte und Vorteile der vorliegenden Erfindung werden aus der nachfolgenden detaillierten Beschreibung der vorliegenden Erfindung ersichtlicher werden, wenn zusammen mit den beigefügten Zeichnungen betrachtet.
-
Figurenliste
-
- 1 ist eine Blockdiagramm einer Decodiervorrichtung gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung; und
- 2 ist ein Flussdiagramm eines Betriebs der Decodiervorrichtung gemäß der bevorzugten Ausführungsform der vorliegenden Erfindung.
-
BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORM
-
Eine bevorzugte Ausführungsform der vorliegenden Erfindung wird unten unter Bezugnahme auf die Zeichnungen beschrieben.
-
Bei der bevorzugten Ausführungsform der vorliegenden Erfindung werden eine Decodiervorrichtung und ein Decodierverfahren, die auf den Summenproduktalgorithmus adaptiert sind, als ein Beispiel eines Decodier-Algorithmus für LDPC-Codes beschrieben.
-
1 ist ein Blockdiagramm einer Decodiervorrichtung gemäß der bevorzugten Ausführungsform der vorliegenden Erfindung. Wie in 1 gezeigt, ist die Decodiervorrichtung gemäß der vorliegenden Ausführungsform dadurch gekennzeichnet, dass sie eine Decodiereinheit 1 und eine Zuverlässigkeitsänderungseinheit 2 enthält. Die Decodiereinheit 1 führt einen Decodierprozess an durch einen LDPC-Code codierten Daten durch und führt iterativ eine Berechnung durch, die eine Zeilenoperation und eine Spaltenoperation in Übereinstimmung mit dem Summenproduktalgorithmus an den zu verarbeitenden Daten beinhaltet, um dadurch einen Wert von Belief-Information zu berechnen und zu aktualisieren. Die Zuverlässigkeitsänderungseinheit 2 ändert, basierend auf einem Vergleich zwischen einem ersten Wert, der ein Wert eines Stückes von Wahrscheinlichkeitsinformation ist, die durch die Decodiereinheit berechnet oder aktualisiert ist, und einem zweiten Wert, der ein Wert von stochastischer Zuverlässigkeitsinformation von zu verarbeitenden Daten ist, den zweiten Wert und reflektiert den geänderten zweiten Wert am ersten Wert, um dadurch den ersten Wert zu korrigieren. Die Decodiereinheit 1 enthält eine LLR-Berechnungseinheit 1, eine Zuverlässigkeitsinformations-Berechnungsergebnishalteeinheit 12, eine Zeilenverarbeitungseinheit 13, eine Spaltenverarbeitungseinheit 14, eine Steuereinheit 15 und eine Decodierergebnis-Entscheidungseinheit 16, in der an der LLR-Berechnungseinheit 11 eingegebene Eingabeinformationen einem Decodierprozess durch die Decodiereinheit 1 und die Zuverlässigkeitsänderungseinheit 2 unterworfen werden und dann als Decodierergebnisse aus der Decodierergebnis-Entscheidungseinheit 16 ausgegeben werden.
-
Als Nächstes wird ein Betrieb der Decodiervorrichtung gemäß der bevorzugten Ausführungsform der vorliegenden Erfindung beschrieben.
-
2 ist ein Flussdiagramm des Betriebs der Decodiervorrichtung gemäß der bevorzugten Ausführungsform der vorliegenden Erfindung. Wie in 2 gezeigt, wird LDPCcodierte Eingabeinformation (zu verarbeitende Daten) an der LLR-Berechnungseinheit 11 eingegeben (Schritt S1). Die LLR-Berechnungseinheit 11 berechnet einen LLR-Wert aus der Eingabeinformation, die eingegeben worden ist (Schritt S2). Der berechnete LLR-Wert wird jeweils an die Zuverlässigkeitsinformations-Berechnungsergebnishalteeinheit 12 und die Zuverlässigkeitsänderungseinheit 2 ausgegeben. Der durch die LLR-Berechnungseinheit 11 berechnete LLR-Wert wird als Anfangswert in der Zuverlässigkeitsinformations-Berechnungsergebnishalteeinheit 12 eingestellt und gleichzeitig wird die Anzahl von Iterationen des Decodierprozesses in der Steuereinheit 15 so initialisiert, dass I=1 (Schritt S3).
-
Nach Schritt
S3 führt die Zeilenverarbeitungseinheit
13 bezüglich entsprechenden Zeilen, die von der ersten Zeile einer Kontrollmatrix von LDPC-Code beginnt, in der Reihenfolge die Zeilenoperation gemäß Ausdruck (1) durch (Schritt
S4).
(Ausdruck 1)
-
Die Definition von Ausdruck (1) wird unten beschrieben.
-
Anzahl von Iterationen
-
A(m): Satz von Spaltennummern n, deren Matrixkomponente eine in einer m-ten Zeile einer Kontrollmatrix H ist
-
A(m)\n: Satz, der ein Element n aus dem Satz A(m) exkludiert
Wahrscheinlichkeitsinformation, die aus einem Prüfknoten der m-ten Zeile zu einem variablen Knoten der n-ten Spalte in der i-ten Iteration gesendet wird
Wahrscheinlichkeitsinformation, die aus dem variablen Knoten der n-ten Spalte zum Prüfknoten der m-ten Zeile in der i-ten Iteration gesendet wird.
-
Hier ist Ausdruck (1) ein Ausdruck durch den Summenproduktalgorithmus und ein anderer Ausdruck als Ausdruck 1 wird durch andere Decodier-Algorithmen erhalten. Jedoch gibt es keine essentielle Differenz dazwischen und der Ausdruck durch einen anderen Decodier-Algorithmus ist ebenfalls anwendbar.
-
Nach Schritt
S4 führt die Spaltenverarbeitungseinheit
14, basierend auf der, der Zeilenoperation durch die Zellenverarbeitungseinheit
13 unterworfenen Wahrscheinlichkeitsinformation eine Spaltenoperation gemäß Ausdruck (2) hinsichtlich entsprechender Spalten durch, die mit der ersten Spalte der Kontrollmatrix der LDPC-Codes beginnen, in Reihenfolge (Schritt
S5). Ein als Ergebnis der Spaltenoperation berechneter Wert wird an die Zuverlässigkeitsänderungseinheit
2 ausgegeben. Bei dieser Gelegenheit wird gleichzeitig die Berechnung von Ausdruck (3) durchgeführt.
(Ausdruck 2)
(Ausdruck 3)
-
Die Definitionen von Ausdruck (2) und Ausdruck (3) werden unten beschrieben. Man beachte, dass die Beschreibung jener mit derselben Definition wie der oben erwähnten Definition weggelassen wird.
-
B(n): Satz von Zeilennummern m, deren Matrixkomponente eine in der n-ten Spalte der Kontrollmatrix H ist
-
B(n)\m: Satz, der ein Element m aus dem Satz B(n) exkludiert
-
Posteriori Wahrscheinlichkeitsinformation in der i-ten Iteration
-
In der Zuverlässigkeitsänderungseinheit
2 hat der durch die LLR-Berechnungseinheit
11 berechnete LLR-Wert (zweiter Wert) eine niedrigere Zuverlässigkeit als der in Übereinstimmung mit Ausdruck (2) durch die Spaltenverarbeitungseinheit
14 berechnete Wert (erster Wert). Aus diesem Grund wird in einem Fall, bei dem diese zwei Werte sich signifikant voneinander unterscheiden, die Zuverlässigkeit des durch die LLR-Berechnungseinheit
11 berechneten LLR-Wertes geändert (das heißt, Effekte auf die Berechnung werden verändert), und der veränderte LLR-Wert wird dem aus Ausdruck (2) berechneten Wert hinzu addiert, um der zu sein, der durch Ausdruck (4) angezeigt wird, und wird durch die Zuverlässigkeitsinformations-Berechnungsergebnishalteeinheit
12 gehalten, wie unten durch ein spezifisches Beispiel beschrieben (Schritt
S6). Bei dieser Gelegenheit wird auch gleichzeitig die Berechnung von Ausdruck (5) durchgeführt.
(Ausdruck 4)
(Ausdruck 5)
-
Die Definitionen von Ausdruck (4) und Ausdruck (5) werden unten beschrieben. Man beachte, dass die Beschreibung jener mit derselben Definition wie den oben erwähnten Definitionen weggelassen wird.
-
LLR-Wert, nachdem die Zuverlässigkeit des durch die LLR-Berechnungseinheit
11 berechneten LLR-Werts geändert ist.
-
Beispielsweise in einem Fall, wo der aus der LLR-Berechnungseinheit 11 ausgegebene LLR-Wert (zweiter Wert), und der in Übereinstimmung mit Gleichung (2) durch die Spaltenverarbeitungseinheit 14 berechnete Wert (erster Wert) denselben Code aufweisen und ein Absolutwert des aus der LLR-Berechnungseinheit 11 ausgegebenen LLR-Werts (zweiter Wert) viel kleiner als ein Absolutwert des in Übereinstimmung mit Ausdruck (2) durch die Spaltenverarbeitungseinheit 14 berechneten Wert (erster Wert) ist, wird ein Wert des aus der LLR-Berechnungseinheit 11 ausgegebenen LLR-Werts (zweiter Wert) größer gemacht (d.h. es wird eine Korrektur durchgeführt). Andererseits wird in einem Fall, bei dem der aus der LLR-Berechnungseinheit 11 ausgegebene LLR-Wert (zweiter Wert) und der in Übereinstimmung mit Ausdruck (2) durch die Spaltenverarbeitungseinheit 14 berechnete Wert (erster Wert) voneinander abweichenden Code aufweisen und der Absolutwert des aus der LLR-Berechnungseinheit 11 ausgegebenen LLR-Werts (zweiter Wert) viel größer als der Absolutwert des in Übereinstimmung mit Ausdruck (2) durch Spaltenverarbeitungseinheit 14 berechneten Werts (erster Wert) ist, der Wert des aus der LLR-Berechnungseinheit 11 ausgegebenen LLR-Werts kleiner gemacht (d.h. es wird eine Korrektur vorgenommen).
-
Man beachte, dass in dem Fall, bei dem der Wert des LLR-Wertes verändert wird, ein fester Wert verwendet werden kann, oder es kann eine konstante Zahl von Werten des LLR-Wertes durch irgendeine von Addition, Subtraktion, Division und Multiplikation oder Kombination einer Mehrzahl derselben verwendet werden.
-
Alternativ kann der Wert des LLR-Wertes durch ein Register geeignet verändert werden. Ein Beispiel der vorliegenden Ausführungsform ist oben illustriert und die vorliegende Erfindung ist nicht darauf beschränkt. Man beachte, dass bezüglich der oben beschriebenen Änderung des LLR-Werts die Operation von „Größer machen im Falle des viel kleineren Absolutwerts“ oder „Kleiner machen im Falle des viel größeren Absolutwerts“ mit einer vorgegebenen Regel durchgeführt werden kann.
-
Die Decodierergebnis-Entscheidungseinheit 16 trifft eine harte Entscheidung zu Posteriori Wahrscheinlichkeitsinformationen, die in Übereinstimmung mit Ausdruck (5) durch die Zuverlässigkeitsänderungseinheit 2 berechnet sind (wenn jedoch keine Korrektur durch die Zuverlässigkeitsänderungseinheit 2 gemacht wird, in Übereinstimmung mit Ausdruck (5) unter Verwendung des durch die LLR-Berechnungseinheit 11 berechneten Anfangs-LLR-Werts berechnete Posteriori-Wahrscheinlichkeitsinformation), um Decodierergebnisse zu berechnen und führt eine Paritätsprüfung durch, basierend auf den berechneten Ergebnissen. Die Decodierergebnis-Entscheidungseinheit 16 entscheidet, ob eine Bedingung für „korrekte Paritätsprüfergebnisse (inneres Produkt von Kontrollmatrix und Decodierspalte = 0)“ oder eine Bedingung für „Maximalwert der Anzahl von Iterationen (I=Imax)“ erfüllt ist. Falls irgendeine Bedingung erfüllt ist, beendet die Decodierergebnis-Entscheidungseinheit 16 den Decodierprozess und gibt die Decodierergebnisse aus. Zwischenzeitlich, falls die Decodierbedingung nicht erfüllt ist, erhöht die Decodierergebnis-Entscheidungseinheit 16 die Anzahl von Iterationen I um Eins und bringt die Prozesse von Schritt S4 bis Schritt S7 zur iterativen Ausführung (Schritt S7).
-
Aus dem Obigen werden Effekte des aus der Eingabeinformation berechneten LLR-Wertes in der Spaltenoperation durch den Summenproduktalgorithmus verändert, wodurch es möglich ist, die Konvergenz der Berechnungsergebnisse durch höher effiziente Belief-Propagation im Vergleich zum konventionellen Fall zu beschleunigen, um die Anzahl von Iterationen des Decodierprozesses zu reduzieren. Zusätzlich wird die Anzahl von Iterationen des Decodierprozesses reduziert, was zu einer Reduktion bei der Decodierverzögerung führt.
-
Während der Summenproduktalgorithmus als der Decodier-Algorithmus für einen LDPC-Code in der bevorzugten Ausführungsform der vorliegenden Erfindung beschrieben worden ist, können dieselben Effekte wie jene der vorliegenden Ausführungsform durch Verwenden irgendeines von Min-Summenalgorithmus, normalisierten BP-Algorithmus, Offset_BP-Algorithmus, δ-min-Algorithmus, Shuffled_BP-Algorithmus und zyklischen approximierten Min-Algorithmus anstelle des Summenproduktalgorithmus erhalten werden.
-
Während die Erfindung im Detail gezeigt und beschrieben worden ist, ist die vorstehende Beschreibung in allen Aspekten illustrativ und nicht beschränkend. Es versteht sich daher, dass zahlreiche Modifikationen und Variationen vorstellbar sind, ohne vom Schutzumfang der Erfindung abzuweichen.