-
Technisches Gebiet
-
Die vorliegende Erfindung betrifft eine Vorrichtung zum Generieren einer Paritätsprüfmatrix, durch die ein Codierer (Codiervorrichtung) und ein Decoder (Decodiervorrichtung), die LDPC-(Low-Density Parity-Check)Codes als Fehlerkorrekturcodes verwenden, eine Paritätsprüfmatrix generieren; und ein Datenübertragungssystem, eine Codiervorrichtung und eine Decodiervorrichtung, die ein Verfahren zum Generieren der Paritätsprüfmatrix und das Programm zum Generieren einer Paritätsprüfmatrix anwenden.
-
Hintergrundtechnik
-
Fehlerkorrekturcodes werden typischerweise beim Übertragen von Daten mittels Übertragungsleitungen verwendet, in denen Übertragungsfehler auftreten können. 1 ist ein Blockdiagramm, das ein Beispiel der Konfiguration eines Datenübertragungssystems zeigt, in dem Daten mittels einer Übertragungsleitung übertragen werden. Zum Beispiel ist das in 1 gezeigte Datenübertragungssystem mit einem Übertragungsleitungscodierer 11 auf der Sendeseite und einem Übertragungsleitungsdecoder 13 auf der Empfangsseite mittels einer Übertragungsleitung 12 versehen. Die Verwendung des Übertragungsleitungscodierers 11 und des Übertragungsleitungsdecoders 13 zum Ausführen von Fehlerkorrektur beseitigt die Auswirkung von Übertragungsfehlern auf Daten, die von einem Datengenerator 10 und zu einer Datenverbrauchseinrichtung 14 geschickt werden.
-
Reed-Solomon-Codes und Turbo-Codes sind bekannte Fehlerkorrekturcodes. Darüber hinaus haben in den letzten Jahren LDPC-Codes, die Fähigkeiten zur Annäherung logischer Grenzen (Shannon-Grenzen) aufweisen, als Fehlercodes Aufmerksamkeit erregt.
-
Wenn k die Nachrichtenlänge von Nachrichten (Daten) ist, die LDPC-Codierung unterzogen wurden, und n die Codewortlänge nach Codierung ist, kann die Paritätsprüfmatrix H des LDPC-Codes als eine Matrix aus (n – k) Reihen und n Spalten dargestellt werden. Wenn die Nachrichten S = (s1, s2, ..., sk) sind und die Codewörter C = (c1, c2, ..., cn) sind, werden Codewörter C durch Multiplizieren der Generatormatrix G aus k Reihen und n Spalten mit der Nachricht S erhalten. Mit anderen Worten, Codewörter C werden durch Ermitteln von C = SG erhalten. Da alle Codewörter C die Bedingung HCt = 0 erfüllen, ist GHt = 0. Weiter zeigt Ct den transponierten Vektor des Codeworts C, und Ht zeigt die transponierte Matrix der Paritätsprüfmatrix H.
-
Als ein Beispiel der Anwendung des LDPC-Codes beschreibt Nicht-Patentdokument 1 ein Beispiel der Anwendung von LDPC-Codes als eine Gegenmaßnahme für Paketverlust, der in einem Paketaustauschnetz erfolgt, in dem Paketreihen LDPC-Codierung unterzogen werden.
-
Die Fehlerkorrekturcharakteristiken von LDPC-Codes werden durch eine Paritätsprüfmatrix bestimmt. Das Nicht-Patentdokument 2 offenbart eine logische Analyse der Fehlerkorrekturcharakteristiken von LDPC-Codes. Dem Nicht-Patentdokument 2 zufolge, werden die Fehlerkorrekturcharakteristiken von LDPC-Codes kurz durch die Gewichtsverteilung der Paritätsprüfmatrix bestimmt. Die Paritätsprüfmatrix besteht beinahe vollständig aus dem Element ”0”, enthält jedoch sporadische Elemente ”1”. Gewichtung zeigt die Anzahl von Elementen ”1” an, die in jeder Reihe und jeder Spalte der Paritätsprüfmatrix enthalten sind.
-
Die durch Robert G. Gallager, dem Erfinder von LDPC-Codes vorgeschlagene Paritätsprüfmatrix ist eine Matrix, in der die Gewichtung von Reihen und Spalten einheitlich ist. LDPC-Codes gemäß der von Robert G. Gallager vorgeschlagenen Paritätsprüfmatrix werden als ”reguläre” LDPC-Codes bezeichnet. 2 ist eine Erklärungsansicht, die ein Beispiel einer Paritätsprüfmatrix des regulären LDPC-Codes zeigt. In der in 2 gezeigten Paritätsprüfmatrix ist die Gewichtung jeder Reihe, d. h. die Anzahl von Elementen ”1”, bei WR fixiert (einheitlich), und die Gewichtung jeder Spalte, d. h. die Anzahl von Elementen ”1”, ist bei WC fixiert (einheitlich).
-
Im Gegensatz dazu zeigt das Nicht-Patentdokument 2 deutlich, dass LDPC-Codes gemäß einer Paritätsprüfmatrix, in der Gewichtung nicht einheitlich ist und die eine spezifische Verteilung hat, bessere Fehlerkorrekturcharakteristiken als reguläre LDPC-Codes aufweisen. LDPC-Codes, die durch eine Paritätsprüfmatrix realisiert werden, in der Gewichtung nicht einheitlich ist und die eine spezifische Verteilung aufweist, werden als irreguläre LDPC-Codes bezeichnet.
-
Als ein Verfahren zum Generieren einer Paritätsprüfmatrix mit einer optimalen Gewichtsverteilung beschreibt Patentdokument 1 ein Verfahren zum Generieren einer LDPC-Code-Paritätsprüfmatrix, bei dem eine Paritätsprüfmatrix basierend auf einer Codierrate erzeugt wird. Bei dem in Patentdokument 1 beschriebenen Verfahren zum Generieren einer LDPC-Code-Paritätsprüfmatrix wird ein lineares Programmierverfahren zum Bestimmen der Gewichtsverteilung verwendet. Anschließend wird nach der Bestimmung der Anzahl von Elementen ”1” pro Reihe und Spalte eine Paritätsprüfmatrix durch Verwendung von Pseudozufallszahlen erzeugt, die in die Positionen der Elemente ”1” einzusetzen sind.
-
Die Fehlerkorrekturcharakteristiken der Paritätsprüfmatrix werden nicht lediglich durch die Gewichtsverteilung von Reihen und Spalten bestimmt. Selbst bei der optimalen Gewichtsverteilung von Reihen und Spalten einer Paritätsprüfmatrix, ist es bekannt, dass, wenn die Paritätsprüfmatrix unter Verwendung eines zweiteiligen Graphs (Tanner Graph) dargestellt wird, das Auftreten kurzer Schleifen mit einer Länge von 4 auf dem zweiteiligen Graph zu einer drastischen Verschlechterung der Fehlerkorrekturcharakteristiken führt.
-
Die 3A und 3B sind Erklärungsansichten, die ein Beispiel eines zweiteiligen Graphs zeigen, der einer Paritätsprüfmatrix entspricht. 3A zeigt ein Beispiel einer Paritätsprüfmatrix, und 3B zeigt einen zweiteiligen Graph, der die in 3A gezeigte Paritätsprüfmatrix darstellt. In 3B entsprechen variable Knoten jedem Bit eines Codeworts, und Prüfknoten entsprechen jeder Reihe der Paritätsprüfmatrix. Zusätzlich stellen die Kanten, die die Knoten verbinden, Elemente ”1” in der Paritätsprüfmatrix dar. Wie in den 3A und 3B gezeigt ist, werden Schleifen mit einer Länge von 4 in einem zweiteiligen Graph auftreten, wenn zwei oder mehr Spalten (gemeinsame Spalten) mit Elementen ”1” vorhanden sind, die zwischen jeweiligen zwei Reihen in der Paritätsprüfmatrix geteilt werden.
-
Das Decodieren der LDPC-Codes wird typischerweise durch Verwendung eines Summenprodukt-Decodierverfahrens durchgeführt, um die Originalnachricht basierend auf Codewörtern zu bestimmen, in denen Fehler überlagert sind. Wenn keine Schleifen in der Paritätsprüfmatrix auftreten, ist das Summenprodukt-Decodierverfahren eine Maximum-A-Posteriori-Probability (MAP) Schätzung. Wenn Schleifen in der Paritätsprüfmatrix vorliegen, wird das Summenprodukt-Decodierverfahren von MAP-Schätzung verschlechtert und nähert sich lediglich MAP-Schätzung an. Infolgedessen ist eine Anzahl von Verfahren zum Generieren einer Paritätsprüfmatrix zum Verhindern des Auftretens von Schleifen in der Paritätsprüfmatrix vorgeschlagen worden.
-
Darüber hinaus bestimmt die Paritätsprüfmatrix nicht nur die Fehlerkorrekturcharakteristiken, sondern bestimmt auch die Berechnungskosten (Anzahl von Berechnungen) beim Codieren und die Berechnungskosten zum Generieren einer Generatormatrix. Typischerweise sind O (n2) Berechnungen zum Durchführen von Codieren erforderlich, aber O (n3) Berechnungen sind zum Berechnen einer Generatormatrix erforderlich.
-
Zum Reduzieren der Berechnungskosten zur Berechnung der Generatormatrix und der Berechnungskosten beim Codieren, ist ein Verfahren vorgeschlagen worden, bei dem ein Teil einer Paritätsprüfmatrix als eine Einheitsmatrix oder eine Dreiecksmatrix aufgebaut wird, um die Anzahl von Berechnungen von O (n) während Berechnung für eine Generatormatrix oder Codieren zu begrenzen.
-
Zum Beispiel beschreibt Patentdokument 2 ein Low-Density Parity-Check-Codierverfahren, bei dem die Potenz von Quadratmatrizen, die zyklische Verschiebungen darstellen, als Teilmatrizen verwendet wird, und diese Teilmatrizen zum Aufbau einer Paritätsprüfmatrix zusammengestellt werden, um die Erzeugung kurzer Schleifen zu verhindern. Bei dem in Patentdokument 2 beschriebenen Low-Density Parity-Check-Codierverfahren wird die Paritätsprüfmatrix trianguliert, während gleichzeitig die Erzeugung von Schleifen verhindert wird. Indem die Generatormatrix und die Paritätsprüfmatrix äquivalent gestaltet werden, kann die Anzahl von Berechnungen beim Codieren auf O (n) begrenzt werden. Zusätzlich sind bei dem in Patentdokument 2 beschriebenen Low-Density Parity-Check-Codierverfahren die Kosten zum Generieren der Paritätsprüfmatrix niedrig, da die Paritätsprüfmatrix lediglich durch Verwendung regulärer Verschiebungen erzeugt werden kann.
Nicht-Patentdokument 1:
Michael G. Luby, Michael Mitzenmacher, M. Amin Shokrollahi, Daniel A. Spielmann, Efficient Erasure Correction Codes [Effiziente Löschkorrekturcodes], "IEEE Transactions on Information Theory", Februar 2001, Band 47, Nr. 2, Seiten 569–584.
Nicht-Patentdokument 2:
Thomas J. Richardson, M. Amin Shokrallahi, Design of Capacity-Approaching Irregular Low-Density Parity-Check Codes [Design von kapazipätsannähernden irregulären Low-Density Parity-Check Codes], "IEEE Transactions on Information Theory", Februar 2001, Band 47, Nr. 2, Seiten 619–637.
Patentdokument 1:
JP-A-2003-198383 (Seiten 4–10,
1–
18)
Patentdokument 2:
JP-A-2003-115768 (Seiten 6–10,
1–
9)
-
Offenbarung der Erfindung
-
Das in Patentdokument 1 beschriebene Verfahren zum Generieren einer LDPC-Code-Paritätsprüfmatrix ermöglicht eine Senkung der Kosten zum Generieren einer. Paritätsprüfmatrix. Dieses Verfahren kann jedoch nicht die Berechnungskosten zum Berechnen einer Generatormatrix aus einer Paritätsprüfmatrix oder die Berechnungskosten beim Verwenden der berechneten Generatormatrix zum Codieren senken. Ferner sind für dieses Verfahren komplexe Berechnungen erforderlich, die Pseudo-Zufallszahlen und ein lineares Programmierverfahren zum Generieren einer Paritätsprüfmatrix verwenden.
-
Außerdem sind in dem in Patentdokument 2 beschriebenen Low-Density Parity-Check-Codierverfahren die Reihengewichtung und Spaltengewichtung einer Matrix vor Durchführung von Triangulierung einheitlich, und die generierte Paritätsprüfmatrix nähert sich der Paritätsprüfmatrix eines regulären LDPC-Codes an. Infolgedessen kann eine Paritätsprüfmatrix nicht generiert werden, um immer eine Verbesserung in den Fehlerkorrekturcharakteristiken zu generieren.
-
Es ist deshalb eine Aufgabe der vorliegenden Erfindung, eine Vorrichtung zum Generieren einer Paritätsprüfmatrix, ein Datenübertragungssystem, eine Codiervorrichtung und eine Decodiervorrichtung zum Generieren einer Paritätsprüfmatrix zu schaffen, das hervorragende Fehlerkorrekturcharakteristiken in Low-Density Parity-Check-Codes realisieren kann, und das eine Paritätsprüfmatrix durch ein einfaches Verfahren generieren kann.
-
Es ist eine andere Aufgabe der vorliegenden Erfindung, eine Vorrichtung zum Generieren einer Paritätsprüfmatrix, ein Datenübertragungssystem, eine Codiervorrichtung, eine Decodiervorrichtung und ein Programm zum Generieren einer Paritätsprüfmatrix zu schaffen, das Berechnungskosten beim Generieren einer Paritätsprüfmatrix und beim Codieren begrenzen kann.
-
Die Vorrichtung zum Generieren einer Paritätsprüfmatrix gemäß der vorliegenden Erfindung ist eine Vorrichtung zum Generieren einer Paritätsprüfmatrix H aus m Reihen und n Spalten in einem Low-Density Parity-Check-Code; wobei die Paritätsprüfmatrix H aus einer Teilmatrix H1 aus m Reihen und k Spalten (wobei k = n – m) und einer Teilmatrix H2 aus m Reihen und m Spalten aufgebaut wird; und wobei die Positionen der Matrixelemente ”1” jeder Reihe der Teilmatrix H1 bestimmt werden, um die Bedingungen zu erfüllen, dass, wenn jegliche zwei in der Teilmatrix H1 enthaltenen Reihen ausgewählt werden, die Perioden der beiden Reihen relativ prim sind, oder, wenn die Perioden der beiden Reihen identisch sind, die Phasen verschieden sind.
-
Darüber hinaus kann die Vorrichtung zum Generieren einer Paritätsprüfmatrix so konfiguriert werden, dass eine Periodenliste P = {p(1), p(2), ..., p(PL)} (wobei p(1) – p(PL) relativ prim sind) bestimmt wird; und, für jedes von Elementen p(j) der Periodenliste P maximal p(j) Reihen der Teilmatrix H1 generiert werden, in denen die Perioden p(j) und die Phasen verschieden sind. Dieser Konfiguration zufolge ermöglicht lediglich die Eingabe der Periodenliste P die einfache Generierung der Teilmatrix H1.
-
Die Vorrichtung zum Generieren einer Paritätsprüfmatrix kann weiter so konfiguriert sein, dass Elemente von Element p(2) bis Element p(PL) basierend auf dem führenden Element p(1) generiert werden. Dieser Konfiguration zufolge bestimmt lediglich die Eingabe des führenden Elements der Periodenliste P automatisch die Periodenliste P und ermöglicht die einfache Generierung der Teilmatrix H1.
-
Die Vorrichtung zum Generieren einer Paritätsprüfmatrix kann auch konfiguriert sein, um Elemente p(j) der Periodenliste P so zu generieren, dass Elemente p(j) die kleinsten Werte unter Werten sind, die die Bedingung erfüllen, relativ prim mit allen Elementen von dem führenden Elemente p(1) bis zum Element p(j – 1) zu sein. Dieser Konfiguration zufolge bestimmt lediglich die Eingabe des führenden Elements der Periodenliste P automatisch die Periodenliste P und ermöglicht das einfache Generieren einer Paritätsprüfmatrix.
-
Die Vorrichtung zum Generieren einer Paritätsprüfmatrix kann weiter konfiguriert sein, um Elemente p(j) der Periodenliste P so zu generieren, dass Elemente p(j) die kleinsten Werte unter den Werten darstellen, die die Bedingung erfüllen, eine größere Primzahl als das vorhergehende Element p(j – 1) zu sein. Dieser Konfiguration zufolge bestimmt lediglich die Eingabe des führenden Elements der Periodenliste P automatisch die Periodenliste P und ermöglicht die einfache Generierung einer Paritätsprüfmatrix.
-
Die Vorrichtung zum Generieren einer Paritätsprüfmatrix kann weiter konfiguriert sein, um eine Einheitsmatrix als Teilmatrix H2 zu erzeugen. Dieser Konfiguration zufolge können die Kosten zum Generieren einer Generatormatrix und die Kosten zum Codieren verglichen mit einem Fall gesenkt werden, in dem die Paritätsprüfmatrix keine Einheitsmatrix enthält.
-
Die Vorrichtung zum Generieren einer Paritätsprüfmatrix kann weiter konfiguriert sein, um eine untere Dreiecksmatrix als Teilmatrix H2 durch Bestimmen der Positionen der Matrixelemente ”1” innerhalb eines unteren Dreiecks so zu generieren, dass die Bedingungen erfüllt sind, dass, wenn jegliche zwei in der Teilmatrix H2 enthaltene Reihen ausgewählt werden, die Perioden der zwei Reihen relativ prim sind, oder, wenn die Perioden der beiden Reihen identisch sind, ihre Phasen verschieden sind. Dieser Konfiguration zufolge können die Kosten zum Generieren einer Generatormatrix und die Kosten zum Codieren verglichen mit einem Fall gesenkt werden, in dem die Paritätsprüfmatrix keine untere Dreiecksmatrix enthält.
-
Die Vorrichtung zum Generieren einer Paritätsprüfmatrix kann weiter so konfiguriert sein, dass eine Periodenliste P = {p(1), p(2), ..., p(PL)}, (wobei p(1) – p(PL) relativ prim sind) bestimmt wird, und für jedes von Elementen p(j) der Periodenliste P maximal p(j) Reihen der Teilmatrix H2 generiert werden, in denen die Perioden p(j) sind und die Phasen verschieden sind. Dieser Konfiguration zufolge ermöglicht lediglich die Eingabe der Periodenliste P die einfache Generierung der Teilmatrix H2.
-
Die Vorrichtung zum Generieren einer Paritätsprüfmatrix kann auch konfiguriert sein, um Elemente von Element p(2) bis Element p(PL) basierend auf dem führenden Element p(1) zu generieren. Dieser Konfiguration zufolge ermöglicht lediglich die Eingabe des führenden Elements der Periodenliste P die automatische Bestimmung der Periodenliste P und die einfache Generierung der Teilmatrix H2.
-
Die Vorrichtung zum Generieren einer Paritätsprüfmatrix kann weiter konfiguriert sein, um Elemente p(j) der Periodenliste P so zu generieren, dass Elemente p(j) die kleinsten Werte von Werten sind, die die Bedingung erfüllen, relativ prim mit allen Elementen von dem führenden Element p(1) bis zum Element p(j – 1) zu sein. Dieser Konfiguration zufolge ermöglicht lediglich die Eingabe des führenden Elements der Periodenliste P die automatische Bestimmung der Periodenliste P und die einfache Generierung der Teilmatrix H2.
-
Die Vorrichtung zum Generieren einer Paritätsprüfmatrix kann weiter konfiguriert sein, um Elemente p(j) der Periodenliste P so zu generieren, dass die Elemente p(j) die kleinsten Werte von Werten sind, die jeweils die Bedingung erfüllen, eine größere Primzahl als das vorhergehende Element p(j – 1) zu sein. Dieser Konfiguration zufolge ermöglicht lediglich die Eingabe des führenden Elements der Periodenliste P die automatische Bestimmung der Periodenliste P und die einfache Generierung der Teilmatrix H2.
-
Die Vorrichtung zum Generieren einer Paritätsprüfmatrix kann weiter ein Verfahren zum Generieren einer Paritätsprüfmatrix darstellen, um eine Paritätsprüfmatrix aus m Reihen und n Spalten in einem Low-Density Parity-Check-Code zu generieren; und kann konfiguriert sein, um Reihen r einer Paritätsprüfmatrix durch Verwenden einer Periodenliste P = {p(1), p(2), ..., p(PL)}, (wobei p(1) – p(PL) relativ prim sind) zu generieren, um: diejenigen Matrixelemente als ”1” festzulegen, die Spalten c entsprechen, welche unter Verwendung einer ganzen Zahl i und eines vorgegebenen Werts F(j) die Bedingungen erfüllen, dass 1 ≤ c ≤ n – m und c = p(j)·i + r + F(j), wenn N(j – 1) + 1 ≤ r ≤ N(j), wobei N(j) als die Summe von Werten vom Element p(1) bis zum Element p(j) der Periodenlisten P definiert ist, und darüber hinaus N(0) als ”0” definiert ist; diejenigen Matrixelemente als ”1” festzulegen, die Spalten c entsprechen, welche die Bedingung c = n – m + r erfüllen; und diejenigen Matrixelemente als ”0” festzulegen, die keine der Bedingungen erfüllen.
-
Dieser Konfiguration zufolge kann, anstatt jede Teilmatrix zu generieren, eine Paritätsprüfmatrix aus m Reihen und n Spalten als ein Satz generiert werden, um die Bedingungen zu erfüllen, dass, wenn jegliche zwei Reihen ausgewählt werden, die beiden Reihen Perioden aufweisen, die relativ prim sind, oder, wenn die Perioden identisch sind, die beiden Reihen verschiedene Phasen aufweisen. Darüber hinaus kann, anstatt jede Teilmatrix zu generieren, eine Paritätsprüfmatrix als eine Gruppe generiert werden, um eine Einheitsmatrix zu enthalten.
-
Infolgedessen können hervorragende Fehlerkorrekturcharakteristiken in Low-Density Parity-Check-Codes realisiert werden, und eine Paritätsprüfmatrix kann durch ein einfaches Verfahren erzeugt werden. Außerdem können die Kosten zum Generieren einer Generatormatrix und die Kosten zum Codieren verglichen mit einem Fall gesenkt werden, in dem die Paritätsprüfmatrix H keine Einheitsmatrix enthält.
-
Die Vorrichtung zum Generieren einer Paritätsprüfmatrix kann weiter so konfiguriert sein, dass F(j) = N(j – 1).
-
Das Verfahren zum Generieren einer Paritätsprüfmatrix kann weiter so konfiguriert sein, dass F(j) = n – m.
-
Darüber hinaus kann die Vorrichtung zum Generieren einer Paritätsprüfmatrix ein Verfahren zum Generieren einer Paritätsprüfmatrix verwenden, um eine Paritätsprüfmatrix aus m Reihen und n Spalten in Low-Density Parity-Check Codes zu generieren; und kann konfiguriert sein, um Reihe r einer Paritätsprüfmatrix durch Verwendung einer Periodenliste P = {p(1), p(2), ..., p(PL)} (wobei p(1) – p(PL) relativ prim sind) zu generieren, um: diejenigen Matrixelemente als ”1” festzulegen, die Spalten c entsprechen, welche unter Verwendung einer ganzen Zahl i die Bedingungen erfüllen, dass 1 ≤ c ≤ n – m + r und c = p(j)·i + n – m + r, wenn N(j – 1) + 1 ≤ r ≤ N(j), wobei N(j) als die Summe von Werten von dem Element p(1) bis zum Element p(j) der Periodenliste P definiert ist, und darüber hinaus N(0) als ”0” definiert ist, und Matrixelemente als ”0” festzulegen, die nicht diese Bedingungen erfüllen. Dieser Konfiguration zufolge kann ohne Generieren jeder Teilmatrix eine Paritätsprüfmatrix aus m Reihen und n Spalten als eine Gruppe generiert werden, um die Bedingungen zu erfüllen, dass, wenn jegliche zwei Reihen ausgewählt werden, die beiden Reihen Perioden aufweisen, die relativ prim sind, oder, wenn die Perioden identisch sind, die beiden Reihen verschiedene Phasen aufweisen. Zusätzlich kann eine Paritätsprüfmatrix als eine Gruppe generiert werden, um eine untere Dreiecksmatrix zu enthalten, ohne jede Teilmatrix zu generieren. Dementsprechend können hervorragende Fehlerkorrekturcharakteristiken in Low-Density Parity-Check-Codes realisiert werden, und eine Paritätsprüfmatrix kann durch ein einfaches Verfahren generiert werden. Ferner können die Kosten zum Generieren einer Generatormatrix und die Kosten zum Codieren verglichen mit einem Fall gesenkt werden, in dem eine Paritätsprüfmatrix keine untere Dreiecksmatrix enthält.
-
Die Vorrichtung zum Generieren einer Paritätsprüfmatrix kann weiter ein Verfahren zum Generieren einer Paritätsprüfmatrix darstellen, um eine Paritätsprüfmatrix aus m Reihen und n Spalten in Low-Density Parity-Check-Codes zu generieren; und kann konfiguriert sein, um Reihe r einer Paritätsprüfmatrix durch Verwenden der Periodenliste P = {p(1), p(2), ..., p(PL)} (wobei p(1) – p(PL) relativ prim sind) und einer Periodenliste Q = {q(1), q(2), ..., q(QL)} (wobei q(1) – q(QL) relativ prim sind) zu generieren, um: diejenigen Matrixelemente als ”1” festzulegen, die Spalten c entsprechen, welche unter Verwendung einer ganzen Zahl i und eines vorgegebenen Werts F(j) die Bedingungen erfüllen, dass, 1 ≤ c ≤ n – m und c = p(j)·i + r + F(j), wenn N(j – 1) + 1 ≤ r ≤ N(j), wobei N(j) als die Summe von Werten vom Element p(1) bis zum Element p(j) der Periodenliste P definiert ist, und darüber hinaus, N(0) als ”0” definiert ist; diejenigen Matrixelemente als ”1” festzulegen, die Spalten c entsprechen, welche unter Verwendung der ganzen Zahl i die Bedingungen erfüllen, dass n – m + 1 ≤ c ≤ n – m + r und c = q(j)·i + n – m + r, wenn M(j – 1) + 1 ≤ r ≤ M(j), wobei M(j) als die Summe von Werten vom Element q(1) bis zum Element q(j) der Periodenliste Q definiert ist, M(0) als ”0” definiert ist; und diejenigen Matrixelemente als ”0” festzulegen, die keine dieser Bedingungen erfüllen. Dieser Konfiguration zufolge kann eine Paritätsprüfmatrix aus m Reihen und n Spalten als eine Gruppe basierend auf zwei Typen von Periodenlisten so generiert werden, dass die Bedingungen erfüllt werden, dass, wenn jegliche zwei Reihen ausgewählt werden, die beiden Reihen Perioden aufweisen, die relativ prim sind, oder, wenn die Perioden identisch sind, die beiden Reihen verschiedene Phasen aufweisen. Zusätzlich kann die Paritätsprüfmatrix als eine Gruppe generiert werden, um eine untere Dreiecksmatrix zu enthalten.
-
Die Vorrichtung zum Generieren einer Paritätsprüfmatrix kann auch so konfiguriert werden, dass F(j) = –N(j – 1).
-
Die Vorrichtung zum Generieren einer Paritätsprüfmatrix kann auch so konfiguriert werden, dass F(j) = n – m.
-
Die Vorrichtung zum Generieren einer Paritätsprüfmatrix kann weiter konfiguriert werden, um eine Periodenliste P durch Generieren von Elementen vom Element p(2) bis zum Element p(PL) basierend auf dem führenden Element p(1) zu bestimmen. Dieser Konfiguration zufolge ermöglicht lediglich die Eingabe des führenden Elements der Periodenliste P die automatische Bestimmung der Periodenliste P und die einfache Generierung einer Paritätsprüfmatrix.
-
Die Vorrichtung zum Generieren einer Paritätsprüfmatrix kann weiter konfiguriert sein, um Elemente p(j) einer Periodenliste P so zu generieren, dass die Elemente p(j) die kleinsten Werte von Werten sind, die die Bedingung erfüllen, relativ prim mit allen Elementen von dem führenden Element p(1) bis zum Element p(j – 1) zu sein. Dieser Konfiguration zufolge ermöglicht lediglich die Eingabe des führenden Elements der Periodenliste P die automatische Bestimmung der Periodenliste P und die einfache Generierung einer Paritätsprüfmatrix.
-
Die Vorrichtung zum Generieren einer Paritätsprüfmatrix kann auch konfiguriert sein, um Elemente p(j) einer Periodenliste P so zu generieren, dass die Elemente p(j) die kleinsten Werte von Werten sind, die jeweils die Bedingung erfüllen, eine größere Primzahl als das vorhergehende Element p(j – 1) zu sein. Dieser Konfiguration zufolge ermöglicht lediglich die Eingabe des führenden Elements der Periodenliste P die automatische Bestimmung der Periodenliste P und die einfache Generierung einer Paritätsprüfmatrix.
-
Das Datenübertragungssystem gemäß der vorliegende Erfindung ist ein Datenübertragungssystem, das Folgendes umfasst: eine Codiervorrichtung zum Codieren von Daten und eine Decodiervorrichtung zum Decodieren von Daten, die codiert wurden; wobei die Codiervorrichtung basierend auf vorgegebenen Parametern ein Verfahren zum Generieren einer Paritätsprüfmatrix verwendet, um eine Paritätsprüfmatrix zu generieren, die generierte Paritätsprüfmatrix zum Durchführen von Low-Density Parity-Codieren verwendet, um Daten in Codewörter zu konvertieren, und die konvertierten Codewörter mittels einer Übertragungsleitung zu der Decodiervorrichtung überträgt; und die Decodiervorrichtung, basierend auf Parametern, die identisch mit den durch die Codiervorrichtung verwendeten Parameter sind, das Verfahren zum Generieren einer Paritätsprüfmatrix verwendet, um eine Paritätsprüfmatrix zu generieren, und die generierte Paritätsprüfmatrix zum Decodieren der Codewörter verwendet, die von der Codiervorrichtung empfangen wurden, um sie in die Daten zu konvertieren, die vor der Codierung vorlagen.
-
Die Codiervorrichtung kann konfiguriert sein, um die Paritätsprüfmatrix basierend auf einer als die Parameter vorgegebenen Periodenliste P zu generieren, und die Decodiervorrichtung kann konfiguriert sein, um eine Paritätsprüfmatrix basierend auf der Periodenliste P zu generieren, die identisch mit der durch die Codiervorrichtung verwendeten Periodenliste P ist. Dieser Konfiguration zufolge ermöglicht einfaches Bestimmen der Periodenliste P die einfache Generierung einer Paritätsprüfmatrix.
-
Ferner kann die Codiervorrichtung weiter konfiguriert sein, um die Periodenliste P zu bestimmen, indem Elemente vom Element p(2) bis zum Element p(PL) basierend auf dem führenden Element p(1) der Periodenliste P als die Parameter generiert werden, und um eine Paritätsprüfmatrix basierend auf der bestimmten Periodenliste zu generieren, und die Decodiervorrichtung kann konfiguriert sein, um die Periodenliste P durch Generieren von Elementen vom Element p(2) bis zum Element p(PL) basierend auf Element p(1) zu bestimmen, das identisch mit dem durch die Codiervorrichtung verwendeten Element p(1) ist, und um eine Paritätsprüfmatrix basierend auf der bestimmten Periodenliste zu generieren. Dieser Konfiguration zufolge ermöglicht lediglich das Bestimmen des führenden Elements der Periodenliste P die automatische Bestimmung der Periodenliste P und die einfache Generierung einer Paritätsprüfmatrix.
-
Die Codiervorrichtung kann weiter konfiguriert sein, um Elemente p(j) einer Periodenliste P so zu generieren, dass die Elemente p(j) die kleinsten Werte von Werten sind, die die Bedingung erfüllen, relativ prim mit allen Elementen von dem führenden Element p(1) bis zum Element p(j – 1) zu sein; und die Decodiervorrichtung kann konfiguriert sein, um Elemente p(j) der Periodenliste P so zu generieren, dass die Elemente p(j) die kleinsten Werte von Werten sind, die die Bedingung erfüllen, relativ prim mit allen Elementen von dem führenden Element (p(1) bis zum Element p(j – 1) zu sein. Dieser Konfiguration zufolge ermöglicht lediglich das Bestimmen des führenden Elements der Periodenliste P die automatische Bestimmung der Periodenliste P und die einfache Generierung einer Paritätsprüfmatrix.
-
Zusätzlich kann die Codiervorrichtung auch konfiguriert sein, um Elemente p(j) der Periodenliste P so zu generieren, dass die Elemente p(j) die kleinsten Werte der Werte sind, die jeweils die Bedingung erfüllen, eine größere Primzahl als das vorhergehende Element p(j – 1) zu sein; und die Decodiervorrichtung kann konfiguriert sein, um Elemente p(j) der Periodenliste P so zu erzeugen, dass die Elemente p(j) die kleinsten Werte von Werten sind, die jeweils die Bedingung erfüllen, eine größere Primzahl als das vorhergehende Element p(j – 1) zu sein. Dieser Konfiguration zufolge ermöglicht lediglich das Bestimmen des führenden Elements der Periodenliste P die automatische Bestimmung der Periodenliste P und die einfache Generierung einer Paritätsprüfmatrix.
-
Die Codiervorrichtung kann auch konfiguriert sein, um Parameter zu der Decodiervorrichtung mittels einer Übertragungsleitung zu senden, und die Decodiervorrichtung kann konfiguriert sein, um die von der Codiervorrichtung empfangenen Parameter zum Generieren einer Paritätsprüfmatrix basierend auf Parametern zu generieren, die identisch mit den durch die Codiervorrichtung verwendeten Parametern sind. Dieser Konfiguration zufolge kann die Einheitlichkeit der durch die Codiervorrichtung verwendeten Periodenliste und der durch die Decodiervorrichtung verwendeten Periodenliste einfach aufrechterhalten werden.
-
Die Decodiervorrichtung kann weiter konfiguriert sein, um Parameter mittels der Übertragungsleitung an die Codiervorrichtung zu senden, und die Codiervorrichtung kann konfiguriert sein, um die von der Decodiervorrichtung empfangenen Parameter zum Generieren einer Paritätsprüfmatrix basierend auf Parametern zu verwenden, die identisch mit den durch die Decodiervorrichtung verwendeten Parametern sind. Dieser Konfiguration zufolge kann die Einheitlichkeit der durch die Codiervorrichtung verwendeten Periodenliste und der durch die Decodiervorrichtung verwendeten Periodenliste einfach aufrechterhalten werden.
-
Die Codiervorrichtung kann weiter konfiguriert sein, um Parameter für jeden von vorgegebenen Zeitintervallen mittels einer Übertragungsleitung an die Decodiervorrichtung zu senden, und die Decodiervorrichtung kann konfiguriert sein, um die von der Codiervorrichtung empfangenen Parameter zum Generieren einer Paritätsprüfmatrix basierend auf Parameter zu verwenden, die identisch mit den durch die Codiervorrichtung verwendeten Parametern sind. Dieser Konfiguration zufolge kann die Einheitlichkeit der durch die Codiervorrichtung verwendeten Periodenliste und der durch die Decodiervorrichtung verwendeten Periodenliste einfach aufrechterhalten werden.
-
Die Decodiervorrichtung kann weiter konfiguriert sein, um Parameter für jeden von vorgegebenen Zeitintervallen mittels einer Übertragungsleitung an die Codiervorrichtung zu senden, und die Codiervorrichtung kann konfiguriert sein, um die von der Decodiervorrichtung empfangenen Parameter zum Generieren einer Paritätsprüfmatrix basierend auf Parametern zu verwenden, die identisch mit den durch die Decodiervorrichtung verwendeten Parametern sind. Dieser Konfiguration zufolge kann die Einheitlichkeit der durch die Codiervorrichtung verwendeten Periodenliste und der durch die Decodiervorrichtung verwendeten Periodenliste einfach aufrechterhalten werden.
-
Die Codiervorrichtung kann weiter konfiguriert sein, um Parameter mittels einer Übertragungsleitung an die Decodiervorrichtung zu senden, wenn der Inhalt der Parameter aktualisiert wurde, und die Decodiervorrichtung kann konfiguriert sein, um von der Codiervorrichtung empfangene Parameter zum Generieren einer Paritätsprüfmatrix basierend auf Parametern zu verwenden, die identisch mit durch die Codiervorrichtung verwendeten Parameter sind. Dieser Konfiguration zufolge kann die Einheitlichkeit der durch die Codiervorrichtung verwendeten Periodenliste und der durch die Decodiervorrichtung verwendeten Periodenliste in Echtzeit aufrechterhalten werden.
-
Die Decodiervorrichtung kann weiter konfiguriert sein, um Parameter mittels einer Übertragungsleitung an die Codiervorrichtung zu senden, wenn der Inhalt der Parameter aktualisiert wurde, und die Codiervorrichtung kann konfiguriert sein, von der Decodiervorrichtung empfangene Parameter zum Erzeugen einer Paritätsprüfmatrix basierend auf Parametern zu verwenden, die identisch mit durch die Decodiervorrichtung verwendeten Parameter sind. Dieser Konfiguration zufolge kann die Einheitlichkeit der durch die Codiervorrichtung verwendeten Periodenliste und der durch die Decodiervorrichtung verwendeten Periodenliste in Echtzeit aufrechterhalten werden.
-
Die Codiervorrichtung gemäß der vorliegenden Erfindung verwendet basierend auf vorgegebenen Parametern ein Verfahren zum Generieren einer Paritätsprüfmatrix, um eine Paritätsprüfmatrix zu genieren, verwendet die. generierte Paritätsprüfmatrix zum Durchführen von Low-Density Parity-Codieren, um Daten in Codewörter zu konvertieren, und sendet die konvertierten Codewörter mittels einer Übertragungsleitung an eine Decodiervorrichtung.
-
Die Decodiervorrichtung gemäß der vorliegenden Erfindung empfängt Codewörter von der Codiervorrichtung mittels einer Übertragungsleitung und verwendet, basierend auf vorgegebenen Parametern, ein Verfahren zum Generieren einer Paritätsprüfmatrix, um eine Paritätsprüfmatrix zu generieren, verwendet die generierte Paritätsprüfmatrix zum Decodieren der empfangenen Codewörter und konvertiert diese in die Daten, die vor der Codierung vorlagen.
-
Der vorliegenden Erfindung zufolge wird eine Teilmatrix H1 einer Paritätsprüfmatrix H generiert, um die Bedingung zu erfüllen, dass, wenn jegliche zwei Reihen ausgewählt werden, die beiden Reihen Perioden aufweisen, die relativ prim sind, oder, wenn die Perioden identisch sind, die beiden Reihen verschiedene Phasen aufweisen. Wenn die beiden Reihen Perioden aufweisen, die relativ prim sind, kann das Vorliegen gemeinsamer Spalten in zwei Reihen verhindert werden. Wenn die beiden Reihen identische Perioden aber verschiedene Phasen aufweisen, kann darüber hinaus das Vorliegen gemeinsamer Spalten in zwei Reihen auf ein Maximum von nur einer gemeinsamen Spalte begrenzt werden. Infolgedessen kann die Verschlechterung der Fehlerkorrekturfähigkeiten, die durch kurze Schleifen in einem zweiteiligen Graph bewirkt wird, verhindert werden. Da Reihen unter Verwendung einer Mehrzahl von Perioden generiert werden, die relativ prim sind, kann außerdem eine Verschlechterung der Fehlerkorrekturfähigkeiten, die durch Einheitlichkeit von Reihengewichtung bewirkt wird, verhindert werden. Schließlich kann die Generierung einer Teilmatrix H1 vereinfacht werden, wenn die Perioden und Phasen bestimmt werden. Dementsprechend können hervorragende Fehlerkorrekturcharakteristiken in Low-Density Parity-Check-Code realisiert werden und eine Paritätsprüfmatrix kann durch ein einfaches Verfahren generiert werden.
-
Kurze Beschreibung der Zeichnungen
-
1 ist ein Blockdiagramm, das ein Beispiel der Konfiguration eines Datenübertragungssystems zeigt;
-
2 ist eine Erklärungsansicht, die ein Beispiel einer Paritätsprüfmatrix eines regulären LDPC-Codes zeigt;
-
3A zeigt ein Beispiel einer Paritätsprüfmatrix;
-
3B ist eine Erklärungsansicht, die ein Beispiel eines zweiteiligen Graphs für die Paritätsprüfmatrix zeigt;
-
4 ist ein Blockdiagramm, das ein Beispiel der Konfiguration eines Übertragungsleitungscodierers zeigt, in dem das Verfahren zum Generieren einer Paritätsprüfmatrix gemäß der vorliegende Erfindung angewendet wird;
-
5 ist ein Ablaufdiagramm, das ein Beispiel der Progression von Prozessen zeigt, durch die ein Prozessor 50 eine Teilmatrix H1 erzeugt;
-
6 ist eine Erklärungsansicht, die ein Beispiel einer Paritätsprüfmatrix H zeigt, die durch den Prozessor 50 generiert wird;
-
7 ist ein Ablaufdiagramm, das ein Beispiel der Progression von Prozessen zeigt, durch die der Prozessor 50 die Teilmatrix H2 erzeugt;
-
8 ist eine Erklärungsansicht, die ein anderes Beispiel der durch den Prozessor 50 erzeugten Paritätsprüfmatrix H zeigt;
-
9 ist ein Ablaufdiagramm, das ein Beispiel der Progression von Prozessen zeigt, durch die der Prozessor 50 die Paritätsprüfmatrix H generiert; und
-
10 ist eine Erklärungsansicht, die noch ein anderes Beispiel einer durch den Prozessor 50 erzeugten Paritätsprüfmatrix H zeigt.
-
Bezugszeichenliste
-
- 50
- Prozessor
- 51
- Speicher
- 52
- Eingabe-/Ausgabeeinheit
-
Beste Durchführungsart der Erfindung
-
Erste Ausführungsform
-
Die nächste Erklärung betrifft die erste Ausführungsform der vorliegenden Erfindung unter Bezugnahme auf die anliegenden Figuren. 4 ist ein Blockdiagramm, das ein Beispiel der Konfiguration eines Übertragungsleitungscodierers zeigt, der das Verfahren zum Generieren einer Paritätsprüfmatrix gemäß der vorliegenden Erfindung anwendet. Wie in 4 gezeigt ist, enthält der Übertragungsleitungscodierer einen Prozessor 50, einen Speicher 51 und eine Eingabe-/Ausgabeeinheit 52.
-
In 4 generiert der Prozessor 50 eine Paritätsprüfmatrix eines LDPC-Codes und schreibt die generierte Paritätsprüfmatrix in den Speicher 51 ein. Der Prozessor 50 liest ferner eine Datenkette (eine Nachricht) aus dem Speicher 51 aus und unterzieht die ausgelesene Datenkette LDPC-Codierung zum Generieren von Codewörtern. Der Prozessor 50 führt anschließend die generierten Codewörter der Eingabe-/Ausgabeeinheit 52 zu. Der Speicher 51 speichert zum Beispiel eine Paritätsprüfmatrix und Datenketten. Die Eingabe-/Ausgabeeinheit 52 liefert Codewörter von dem Prozessor 50 nach außen.
-
Zum Beispiel sendet die Eingabe-/Ausgabeeinheit 52 Codewörter mittels einer Übertragungsleitung an einen Übertragungsleitungsdecoder. Wenn eine Datenkette als Eingabe von außen empfangen wird, schreibt die Eingabe-/Ausgabeeinheit 52 die empfangene Datenkette in den Speicher 51 ein.
-
Der Übertragungsleitungscodierer ist mit einer Speichereinheit (nicht gezeigt) zum Speichern verschiedener Programme ausgerüstet, um den Prozessor 50 zu veranlassen, Prozesse zum Generieren einer Paritätsprüfmatrix und zum Codieren von Datenketten durchzuführen. Zum Beispiel speichert die Speichereinheit des Übertragungsleitungscodierers ein Programm zum Generieren einer Paritätsprüfmatrix, um einen Computer zu veranlassen, einen Prozess zum Bilden einer Paritätsprüfmatrix H aus einer Teilmatrix H1 aus m Reihen und k Spalten und einer Teilmatrix H2 aus m Reihen und m Spalten zu bilden (wobei m = n – k), und einen Prozess zum Bestimmen der Positionen von Matrixelementen ”1” jeder Reihe der Teilmatrix H1 durchzuführen, um die Bedingungen zu erfüllen, dass, wenn jegliche zwei in der Teilmatrix H1 enthaltene Reihen ausgewählt werden, die Perioden der beiden Reihen relativ prim sind, oder, wenn die Perioden der beiden Reihen identisch sind, ihre Phasen verschieden sind.
-
In der vorliegenden Ausführungsform betrifft die Erklärung einen Fall, in dem der Prozessor 50 eine Paritätsprüfmatrix H aus m Reihen und n Spalten generiert, die beim Codieren von LDPC-Codes verwendet werden, wobei die Nachrichtenlänge k beträgt und die Codewortlänge n ist. In diesem Fall ist m = n – k. In dieser Ausführungsform konstruiert der Prozessor 50 die Paritätsprüfmatrix H aus einer Teilmatrix H1 aus m Reihen und k Spalten auf der linken Seite und einer Teilmatrix H2 aus m Reihen und m Spalten auf der rechten Seite.
-
In der vorliegenden Ausführungsform generiert der Prozessor 50 eine Teilmatrix H2 als eine Einheitsmatrix. Zusätzlich generiert der Prozessor 50 die Teilmatrix H1 als eine Matrix mit Matrixelementen ”1” oder ”0” in Übereinstimmung mit vorgegebenen Bedingungen. Der Prozessor 50 verbindet dann die Teilmatrix H1 und die Teilmatrix H2 zum Generieren der Paritätsprüfmatrix H. Die folgende Erklärung betrifft den Prozess zum Generieren der Teilmatrix H1.
-
Der Prozessor 50 generiert die Teilmatrix H1 so, dass in jeder Reihe Matrixelemente von Positionen, die durch vorgegebene Perioden und vorgegebene Phasen bestimmt werden, ”1” sind, und so, dass andere Matrixelemente ”0” sind. ”Periode” gibt hier den Abstand zwischen einem Element ”1” und einem anderen Element ”1” an, die in einer Reihe enthalten sind. In der vorliegenden Ausführungsform sind die Elemente ”1” für jede Periode innerhalb einer Reihe angeordnet. Zusätzlich stellt ”Phase” die Position der Spalte des Elements dar, das sich am Weitesten links von den Elementen ”1” befindet, die sich innerhalb einer Reihe befinden. Phase nimmt einen Wert von 1 zu der Periode an. Wenn die Periode und Phase bestimmt werden, werden die Positionen der Elemente ”1” und die Anzahl von Elementen ”1” innerhalb einer Reihe bestimmt.
-
In der vorliegenden Ausführungsform generiert der Prozessor 50 eine Teilmatrix H1, um die Bedingungen zu erfüllen, dass, wenn jegliche zwei in einer Teilmatrix H1 enthaltene Reihen ausgewählt werden, die beiden Reihen die Perioden aufweisen, die relativ prim sind, oder, wenn die Perioden identisch sind, die beiden Reihen verschiedene Phasen aufweisen. Wenn jede Reihe der Teilmatrix H1 erfolgreich generiert wurde, wählt der Prozessor 50 die Periode und Phase aus, die beim Generieren der nächsten Reihe verwendet werden, um eine der beiden Bedingungen in Bezug zu den Perioden und den Phasen aller Reihen zu erfüllen, die bis zu diesem Punkt generiert worden sind.
-
5 ist ein Ablaufdiagramm, das ein Beispiel der Progression von Prozessen zeigt, durch die der Prozessor 50 die Teilmatrix H1 generiert. Der Prozessor 50 legt die Periodenliste P = {p1, p2, ..., pj} fest (Schritt S110). Wenn zum Beispiel jedes Element der Periodenliste P als Eingabe durch den Benutzer angewendet wird, legt der Prozessor 50 die Periodenliste P fest, die jedes Element enthält, das als Eingabe angelegt wurde. Alternativ, zum Beispiel wenn jedes Element als Eingabe in Übereinstimmung mit der Host-Anwendung empfangen wurde, legt der Prozessor 50 eine Periodenliste P fest, die jedes Element enthält, das als Eingabe empfangen wurde. In Schritt S110 werden Einstellungen so vorgenommen, dass jedes der Elemente der Periodenliste P relativ prim ist und so, dass die Summe der Werte der Elemente der Periodenliste P gleich oder größer als m ist.
-
Der Prozessor 50 initialisiert jede Variable, die bei der Generierung jeder Reihe der Teilmatrix H1 verwendet wird (Schritt S120). In der vorliegenden Ausführungsform werden eine Periodenvariable a, die die Periode angibt, Variable b, und eine Generierungs-Zielreihennummer r, die die Reihe angibt, welche das Generierungsobjekt unter jeder der Reihen der Teilmatrix H1 darstellt, als Variablen verwendet. Darüber hinaus stimmt in der vorliegenden Ausführungsform der Wert der Variablen b mit der Position des Elements überein, das sich am Weitesten links von den Elementen ”1” jeder Reihe befindet.
-
Somit spielt die Variable b in der vorliegenden Ausführungsform die Rolle einer Phasenvariablen, die die Phase angibt.
-
In Schritt S120 legt der Prozessor 50 das führende Element p1 der Periodenliste als den Anfangswert der Periodenvariablen a fest und setzt den Ausgangswert der Variablen b auf ”1”. Der Prozessor setzt ferner den Anfangswert der Generierungs-Zielreihennummer r auf ”1”.
-
Der Prozessor 50 generiert die Reihe, die der Generierungs-Zielreihennummer r entspricht (Schritt S121). In Schritt S121 verwendet der Prozessor 50 die Generierungsgleichung c = a·i + b zum Generieren der Reihe r der Teilmatrix H1. Der Prozessor 50 generiert die Reihe r durch Setzen der Matrixelemente, die sich in den Spalten c befinden und durch die Generierungsgleichung c = a·i + b angegeben werden, auf ”1” und Setzen der anderen Matrixelemente auf ”0”. In diesem Fall ist ”i” eine ganze Zahl.
-
Der Prozessor 50 bestimmt als nächstes, ob die generierte Reihe r die letzte Reihe der Teilmatrix H1 ist (Schritt S122). Wenn die generierte Reihe r als letzte Reihe bestimmt wird, beendet der Prozessor den Prozess zum Generieren der Teilmatrix H1. Wenn die generierte Reihe r nicht als die letzte Reihe bestimmt wird, aktualisiert der Prozessor 50 die Variable b und die Generierungs-Zielreihennummer r (Schritt S123). In Schritt S123 fügt der Prozessor 50 der Generierungs-Zielreihennummer r ”1” hinzu. Der Prozessor fügt ”1” auch der Variablen b hinzu.
-
Nach Aktualisierung der Variablen b bestimmt der Prozessor 50, ob die Variable b gleich oder kleiner als die Periodenvariable a ist (Schritt S124). Wenn ”b” als gleich oder kleiner als ”a” bestimmt wird, kehrt der Prozessor 50 zu dem Prozess von Schritt S121 zurück und führt erneut die Prozesse von Schritt S121 durch.
-
Wenn bestimmt wird, dass b nicht kleiner als oder gleich a ist, aktualisiert der Prozessor 50 die Periodenvariable a (Schritt S125). In Schritt S125 liest der Prozessor 50 den Wert des nächsten Elements aus der Periodenliste P aus, um diesen Wert auf die Periodenvariable einzustellen. Weiter setzt der Prozessor 50 den Wert der Variablen b auf ”1”. Der Prozessor 50 kehrt dann zu dem Prozess von Schritt S121 zurück und führt erneut die Prozesse von Schritt S121 durch.
-
6 ist eine Erklärungsansicht, die ein Beispiel einer durch den Prozessor 50 generierten Paritätsprüfmatrix H zeigt. Die in 6 gezeigte Paritätsprüfmatrix H ist eine Matrix, die mit einer auf k = 12 festgelegten Nachrichtenlänge und einer auf n = 20 festgelegten Codewortlänge generiert wurde. Wie in 6 gezeigt ist, beträgt die Anzahl von Reihen der Paritätsprüfmatrix H dementsprechend m = n – k = 8. Wie zusätzlich in 6 gezeigt ist, generiert der Prozessor 50 eine Teilmatrix H2 in der Paritätsprüfmatrix H als eine Einheitsmatrix. Die Teilmatrix H1 innerhalb der Paritätsprüfmatrix H wird in Schritt S110 auf die Periodenliste P = {3, 4, 5} eingestellt und gemäß dem in 2 gezeigten Prozess generiert.
-
Zum Beispiel legt der Prozessor 50 in Schritt S120 das führende Element 3 der Periodenliste P als den Anfangswert der Periodenvariablen a fest und setzt die Anfangswerte der Variablen b und der Generierungs-Zielreihennummer auf ”1”. In Schritt S121 verwendet der Prozessor 50 diese Variablen a und b, um jeden Wert von c = 1, 4, 7 und 10 für i = 0, 1, 2 bzw. 3 zu ermitteln. Wie in 6 gezeigt ist, setzt der Prozessor 50 anschließend die Elemente der ersten, vierten, siebten und zehnten Spalten von den Elementen der ersten Reihe der Teilmatrix H1 auf ”1” und die anderen Elemente auf ”0”, um die Reihe zu erzeugen.
-
Wenn in Schritt S123 die Variable b und die Generierungsprozess-Zielreihennummer r jeweils auf ”2” aktualisiert werden, verwendet der Prozessor 50 die Periodenvariable a = 3 und die Variable b = 2, um jeden Wert von c = 2, 5, 8 und 11 für i = 0, 1, 2 bzw. 3 zu ermitteln. Der Prozessor 50 setzt dann die Elemente der zweiten, fünften, achten und elften Spalte von den Elementen der zweiten Reihe der Teilmatrix H1 auf ”1” und setzt die anderen Elemente auf ”0”, um die Reihe zu generieren, wie in 6 gezeigt ist.
-
Wenn die dritte Reihe der Teilmatrix H1 generiert wird und die Variable b auf ”4” aktualisiert wird, bestimmt der Prozessor 50, ob die Variable b = 4 nicht kleiner als oder gleich der Variablen a = 3 ist, und aktualisiert anschließend in Schritt S124 die Periodenvariable a auf ”4”. Der Prozessor 50 verwendet dann die Periodenvariable a = 4, um die vierte und siebte Reihe der Teilmatrix H1 wie in 6 gezeigt zu generieren.
-
Nach Generieren der achten Reihe der Teilmatrix H1 bestimmt der Prozessor 50, dass die generierte Reihe r = 8 die letzte Reihe ist und beendet den Prozess. Auf diese Weise wird die Teilmatrix H1 durch die oben beschriebene Prozedur generiert. Der Prozessor 50 verbindet anschließend die Teilmatrix H1 und die Teilmatrix H2, um die in 6 gezeigte Paritätsprüfmatrix H zu generieren.
-
Wie in 6 gezeigt ist, existieren in der Teilmatrix H1 im vorliegenden Beispiel Reihen, die allen Phasen (Phase von 1 bis zum Wert der Periode) für Periode 3 und Periode 4 entsprechen, aber nur eine Reihe, die Phase 1 entspricht, existiert für Periode 5.
-
Wie in 6 gezeigt ist, sind die Perioden einer jeglichen Reihe der ersten bis dritten Reihe der Teilmatrix H1, jede Reihe der vierten bis siebten Reihe, und der achten Reihe relativ prim, und es existiert nicht mehr als eine gemeinsame Spalte. Wenn jegliche zwei Reihen von der ersten bis dritten Reihe ausgewählt werden, stehen außerdem die Perioden für beide identisch bei ”3”, aber die Phasen für die beiden sind verschieden und keine gemeinsame Spalte existiert. Wenn jegliche zwei Reihen der vierten bis siebten Reihe ausgewählt werden, stehen die Perioden in ähnlicher Weise identisch bei ”4”, aber die Phasen sind verschieden und es existierte keine gemeinsame Spalte.
-
In Schritt S121 kann c = a·i + k + r als die Generierungsgleichung verwendet werden, anstatt die Bedingung c = a·i + b als die Generierungsgleichung zu verwenden. Durch Annehmen dieser Form können die Phasen der Teilmatrizen H1 und H2 kombiniert werden, wenn die Gesamtheit der Paritätsprüfmatrix H betrachtet wird.
-
Obwohl die Periodenliste P eine Mehrzahl von Elementen enthält, kann diese Mehrzahl von Elementen außerdem auch aus einem einzelnen Parameter generiert werden. Zum Beispiel erfüllen die Elemente der Periodenliste P nicht nur die Bedingung, relativ prim zu sein, sondern erfüllen auch die Bedingung, dass sie sich in einer ansteigenden Progression befinden. Wenn die Elemente der Periodenliste P als der kleinste Wert der Werte definiert werden, die zwei Bedingungen erfüllen, ermöglicht lediglich die Bestimmung des führenden Elements p1 als ein Parameter die Bestimmung jedes Elements der gesamten Periodenliste P.
-
Wenn alternativ andere Elemente pi als das führende Element p1 jeweils als die kleinste Primzahl von Primzahlen definiert werden, die größer als das vorhergehende Element p(j – 1) sind, ermöglicht lediglich die Bestimmung des führenden Elements p1 die Bestimmung der gesamten Periodenliste P.
-
Obwohl in der vorliegenden Ausführungsform ein Fall beschrieben wurde, in dem die gesamte Periodenliste P in Schritt S110 festgelegt wurde, kann jedes Element definitiv durch Annehmen einer Definition zum Generieren jedes Elements für die Periodenliste P von einem einzigen Parameter abgeleitet werden. In einem solchen Fall kann der Prozessor 50 Elemente der Periodenliste P bei jeder Aktualisierung der Periodenvariablen a in Schritt S125 generieren. Zum Beispiel kann der Prozessor 50 in Schritt S110 nur Elemente p1 festlegen und anschließend den nächsten Wert ermitteln, der die definierte Bedingung in Schritt S125 erfüllt. Durch Annehmen dieses Ansatzes kann eine Operation realisiert werden, die im Wesentlichen äquivalent zum Festlegen der gesamten Periodenliste P in Schritt S110 ist.
-
In der vorliegenden Ausführungsform wurde darüber hinaus ein Fall beschrieben, in dem der Übertragungsleitungscodierer die Paritätsprüfmatrix H zum Gebrauch beim LDPC-Codieren generiert hat; das Verfahren zum Generieren einer Paritätsprüfmatrix kann jedoch auch auf einen Fall angewendet werden, in dem ein Übertragungsleitungsdecoder eine Paritätsprüfmatrix H zum Gebrauch beim Decodieren von Codewörtern generiert.
-
Wie oben beschrieben ist, wird gemäß der vorliegenden Ausführungsform die Paritätsprüfmatrix H aus m Reihen und n Spalten, die in Low-Density Parity-Check-Codes verwendet wird, aus der Teilmatrix H1 aus m Reihen und k Spalten auf der linken Seite und der Teilmatrix H2 aus m Reihen und m Spalten auf der rechten Seite aufgebaut. Zusätzlich generiert der Prozessor 50 die Teilmatrix H1, um die Bedingungen zu erfüllen, dass, wenn jegliche zwei in der Teilmatrix H1 enthaltene Reihen ausgewählt werden, die beiden Reihen Perioden aufweisen, die relativ prim sind (Bedingung a) oder, wenn die Perioden identisch sind, Phasen aufweisen, die verscheiden sind (Bedingung b).
-
Der vorliegenden Ausführungsform zufolge generiert der Prozessor 50 die Teilmatrix H2 als eine Einheitsmatrix.
-
Es treten nie gemeinsame Spalten in jeglichen zwei Reihen der Reihen der Paritätsprüfmatrix H auf, die die Reihen der Teilmatrix H1 enthält, welche gemäß Bedingung b generiert wurden. Infolgedessen kann das Auftreten kurzer Schleifen mit einer Länge von 4 verhindert werden, und die Verschlechterung von Fehlerkorrekturfähigkeiten, die durch kurze Schleifen in einem zweiteiligen Graph bewirkt werden, können verhindert werden.
-
Ferner treten gemeinsame Spalten für jedes kleinste gemeinsame Vielfache der Periode in jeglichen zwei Reihen der Paritätsprüfmatrix H auf, die die Reihen der Teilmatrix H1 enthält, welche gemäß Bedingung a generiert wurden. In diesem Fall sind die Perioden der beiden Reihen relativ prim, und das kleinste gemeinsame Vielfache stellt deshalb das Produkt der Perioden dar. Wenn solche Perioden ausgewählt werden, dass das Produkt der Perioden gleich oder größer als k ist, kann die Anzahl gemeinsamer Spalten, die in zwei Reihen auftreten, auf nur eine begrenzt werden. Infolgedessen kann das Auftreten kurzer Schleifen mit einer Länge von 4 verhindert werden, und eine Verschlechterung von Fehlerkorrekturfähigkeiten, die durch kurze Schleifen auf einem zweiteiligen Graph bewirkt werden, kann verhindert werden.
-
Ferner ermöglicht die Verwendung einer Mehrzahl von Perioden, die relativ prim sind, zum Generieren von Reihen, eine nicht einheitliche Reihengewichtung, wodurch die Verschlechterung von Fehlerkorrekturfähigkeiten, die durch Einheitlichkeit von Reihengewichtung bewirkt wird, verhindert werden.
-
Wenn darüber hinaus Periode und Phase bestimmt werden, kann die Teilmatrix H1 einfach durch Verwendung einer einfachen Generierungsgleichung generiert werden. Dementsprechend können hervorragende Fehlerkorrekturcharakteristiken in Low-Density Parity-Check-Codes realisiert werden, und die Paritätsprüfmatrix H kann durch ein einfaches Verfahren generiert werden. Da die Teilmatrix H1 durch ein einfaches Verfahren generiert werden kann, können zusätzlich die Kosten zum Generieren einer Paritätsprüfmatrix gesenkt werden.
-
Der vorliegenden Ausführungsform zufolge wird eine Teilmatrix H2 als eine Einheitsmatrix generiert, und eine eingegebene Nachricht wird ein Teil von Codewörtern. Wenn der Prozessor 50 LDPC-Codieren durchführt, müssen infolgedessen nur Redundanzteile, die der eingegebenen Nachricht hinzugefügt werden, berechnet werden, und die Kosten zum Generieren einer Generatormatrix und die Kosten zum Codieren können verglichen mit einem Fall gesenkt werden, in dem die Paritätsprüfmatrix H keine Einheitsmatrix enthält.
-
Zweite Ausführungsform
-
Die folgende Erklärung betrifft die zweite Ausführungsform der vorliegenden Erfindung unter Bezugnahme auf die anliegenden Figuren. In dieser Ausführungsform ist die Konfiguration des Übertragungsleitungscodierers die gleiche wie die des in der ersten Ausführungsform gezeigten Übertragungsleitungscodierers. In der vorliegenden Ausführungsform generiert der Prozessor 50 des Übertragungsleitungscodierers eine Teilmatrix H1 gemäß dem gleichen Prozess wie in der ersten Ausführungsform. In der vorliegenden Ausführungsform generiert der Prozessor 50 außerdem eine Teilmatrix H2 als eine untere Dreiecksmatrix.
-
7 ist ein Ablaufdiagramm, das ein Beispiel der Progression von Prozessen zeigt, durch die der Prozessor 50 eine Teilmatrix H2 generiert. In der vorliegenden Ausführungsform verwendet der Prozessor 50 in dem in 7 gezeigten Schritt S221 eine andere Generierungsgleichung zum Generieren jeder Reihe als in Schritt S121 der ersten Ausführungsform. Die Prozesse außer dem von Schritt S221 sind die gleichen wie die in der ersten Ausführungsform gezeigten Prozesse.
-
In Schritt S221 verwendet der Prozessor 50 die Generierungsgleichung c = a·i + r zum Generieren der Reihe r der Teilmatrix H2. Der Prozessor 50 generiert Reihe r, indem er diejenigen in Spalten c vorhandenen Matrixelemente auf ”1” setzt, die durch die Generierungsgleichung c = a·i + r dargestellt werden, und die anderen Matrixelemente auf ”0” setzt. In diesem Fall ist ”i” ”0” oder eine negative ganze Zahl. Die Periodenliste P kann identisch sein, wenn die Teilmatrix H1 generiert wird und wenn die Teilmatrix H2 generiert wird, oder kann verschieden sein.
-
8 ist eine Erklärungsansicht, die ein anderes Beispiel der durch den Prozessor 50 generierten Paritätsprüfmatrix H zeigt. Wie bei der in 6 gezeigten Paritätsprüfmatrix H wird die in 8 gezeigte Paritätsprüfmatrix mit einer auf k = 12 festgelegten Nachrichtenlänge, einer auf n = 20 festgelegten Codewortlänge und einer auf m = 8 festgelegten Anzahl von Reihen der Paritätsprüfmatrix. generiert. Zusätzlich werden die in 8 gezeigten Teilmatrizen H1 und H2 beide mit der Periodenliste P = {4, 5} generiert. Wie in 8 gezeigt ist, generiert der Prozessor 50 die Teilmatrix H2 als eine untere Dreiecksmatrix gemäß der in 7 gezeigten Prozedur.
-
Wie in 8 gezeigt ist, kann die Teilmatrix H2 einfach als eine untere Dreiecksmatrix generiert werden, indem jede Reihe generiert wird, um die Bedingungen zu erfüllen, dass, wenn jegliche zwei in der Teilmatrix H2 enthaltene Reihen ausgewählt werden, die beiden Reihen Perioden aufweisen, die relativ prim sind, oder, wenn die Perioden identisch sind, die beiden Reihen Phasen aufweisen, die verschieden sind, wie bei der Generierung der Teilmatrix H1.
-
Obwohl ein Fall in der vorliegenden Ausführungsform beschrieben wurde, in dem die Teilmatrix H2 eine untere Dreiecksmatrix aufweist, werden die gleichen Fehlerkorrekturfähigkeiten realisiert, wenn jegliche der Reihen und Spalten der Paritätsprüfmatrix H ersetzt werden. Zum Beispiel können die in der Paritätsprüfmatrix H enthaltenen Elemente vertikal invertiert werden, so dass die Teilmatrix H2 eine obere Dreiecksmatrix wird, und die Bedeutung der LDPC-Codierung unverändert ist. Alternativ können die in der Paritätsprüfmatrix H enthaltenen Elemente horizontal invertiert werden, so dass der Teil von m Reihen und m Spalten auf der linken Seite der Paritätsprüfmatrix H eine Dreiecksmatrix wird, und die Bedeutung der LDPC-Codierung bleibt unverändert.
-
Alternativ kann die Mehrzahl von Elementen der Periodenliste P aus einem einzigen Parameter generiert werden. Zum Beispiel können die Elemente der Periodenliste P auch als die kleinsten Werte definiert werden, die nicht nur die Bedingung erfüllen, relativ prim zu sein, sondern auch die Bedingung, sich in ansteigender Progression zu befinden. Durch Annehmen dieses Ansatzes ermöglicht lediglich die Bestimmung des führenden Elements p1 als ein Parameter die Bestimmung jedes Elements der gesamten Periodenliste P. Wenn alternativ andere Elemente pi als das führende Element p1 jeweils als die kleinste Primzahl der Primzahlen größer als das vorhergehende Element p(i – 1) definiert werden, ermöglicht lediglich die Bestimmung des führenden Elements p1 die Bestimmung der gesamten Periodenliste P.
-
Beim Generieren der Teilmatrix H2 wird die Periodenliste P auf P = {p} festgelegt, um nur ein Element zu enthalten, und wenn das Element auf einen Wert gleich oder größer als m festgelegt wird, generiert der Prozessor 50 die Teilmatrix H2 als eine Einheitsmatrix. Wenn solche Einstellung vorgenommen werden, dass die Periodenliste P = {p}, und darüber hinaus solche, dass p gleich oder größer als m ist, kann dementsprechend eine Paritätsprüfmatrix H ähnlich wie in der ersten Ausführungsform generiert werden.
-
Obwohl ein Fall in der vorliegenden Ausführungsform beschrieben wurde, in dem der Übertragungsleitungscodierer die Paritätsprüfmatrix H zum Gebrauch bei LDPC-Codierung generiert, kann das Verfahren zum Generieren einer Paritätsprüfmatrix auch auf einen Fall angewendet werden, in dem ein Übertragungsleitungsdecoder die Paritätsprüfmatrix H zum Gebrauch beim Decodieren von Codewörtern generiert.
-
Der vorliegenden Ausführungsform zufolge, wie sie im Vorhergehenden beschrieben wurde, wird die Teilmatrix H2 als eine untere Dreiecksmatrix oder eine Einheitsmatrix durch den Prozessor 50 generiert. Wenn die Teilmatrix H2 als eine untere Dreiecksmatrix generiert wird, treten nie gemeinsame Spalten in jeglichen zwei Reihen der Paritätsprüfmatrix H auf, die gemäß Bedingung b generiert wurde. Infolgedessen kann das Auftreten kurzer Schleifen mit einer Länge von 4 verhindert werden, und die durch kurze Schleifen in einem zweiteiligen Graph bewirkte Verschlechterung kann verhindert werden.
-
Wenn die Teilmatrix H2 als eine untere Dreiecksmatrix generiert wird, treten gemeinsame Spalten für jedes kleinste gemeinsame Vielfache der Perioden in jeglichen zwei Reihen der Paritätsprüfmatrix H auf, die gemäß Bedingung a generiert werden. In diesem Fall sind die Perioden der beiden Reihen relativ prim, und das kleinste gemeinsame Vielfache ist deshalb das Produkt der Perioden. Wenn Perioden so gewählt werden, dass das Produkt der Perioden gleich oder größer als n ist, kann die Anzahl gemeinsamer Spalten, die in zwei Reihen der Teilmatrix H1 auftreten, auf nur eine begrenzt werden, und die Anzahl der gemeinsamen Spalten, die in zwei Reihen der Teilmatrix H2 auftreten, kann auch auf nur eine begrenzt werden. Infolgedessen kann das Auftreten kurzer Schleifen mit einer Länge von 4 verhindert werden, und die durch das Auftreten kurzer Schleifen in einem zweiteiligen Graph bewirkte Verschlechterung der Fehlerkorrekturfähigkeiten kann verhindert werden.
-
Wenn die Teilmatrix H2 als eine Einheitsmatrix generiert wird, treten gemeinsame Spalten nie in jeglichen zwei Reihen der Paritätsprüfmatrix H auf, die gemäß Bedingung b generiert wurde. Infolgedessen kann das Auftreten kurzer Schleifen mit einer Länge von 4 verhindert werden, und die durch kurze Schleifen in einem zweiteiligen Graph bewirkte Verschlechterung der Fehlerkorrekturfähigkeiten kann verhindert werden.
-
Wenn die Teilmatrix H2 als eine Einheitsmatrix generiert wird, treten gemeinsame Spalten bei jedem kleinsten gemeinsamen Vielfachen von Perioden in jeglichen zwei Reihen der Paritätsprüfmatrix H auf, die gemäß Bedingung a generiert wurden. In diesem Fall sind die Perioden der beiden Reihen relativ prim, und das kleinste gemeinsame Vielfache ist deshalb das Produkt der Perioden. Wenn Perioden so ausgewählt werden, dass das Produkt der Perioden gleich oder größer als k ist, kann das Auftreten gemeinsamer Spalten in zwei Reihen der Paritätsprüfmatrix H auf nur eine begrenzt werden. Infolgedessen kann das Auftreten kurzer Schleifen mit einer Länge von 4 verhindert werden, und die durch kurze Schleifen in einem zweiteiligen Graph bewirkte Verschlechterung der Fehlerkorrekturfähigkeiten kann verhindert werden.
-
Der vorliegenden Ausführungsform zufolge wird die Teilmatrix H2 als eine untere Dreiecksmatrix oder als eine Einheitsmatrix generiert, und eingegebene Nachrichten sind deshalb Teil von Codewörtern ohne Änderung. Beim Durchführen von LDPC-Codieren muss der Prozessor 50 daher nur die Redundanzteile berechnen, die den eingegebenen Nachrichten hinzugefügt werden, wodurch eine Senkung in den Kosten zum Generieren einer Generatormatrix und die Kosten zum Codieren verglichen mit einem Fall realisiert werden kann, in dem die Paritätsprüfmatrix H keine Einheitsmatrix oder keine untere Dreiecksmatrix enthält.
-
Dritte Ausführungsform
-
Die folgende Erklärung betrifft die dritte Ausführungsform der vorliegenden Erfindung unter Bezugnahme auf die anliegenden Figuren. In der vorliegenden Ausführungsform ist die Konfiguration des Übertragungsleitungscodierers die gleiche wie die des in der ersten Ausführungsform und in der zweiten Ausführungsform gezeigten Übertragungsleitungscodierers. In der vorliegenden Ausführungsform generiert der Prozessor 50 des Übertragungsleitungscodierers die Teilmatrix H1 und die Teilmatrix H2 nicht getrennt, sondern generiert stattdessen die Teilmatrix H1 und die Teilmatrix H2 gleichzeitig.
-
9 ist ein Ablaufdiagramm, das ein Beispiel der Progression von Prozessen zeigt, durch die der Prozessor 50 die Paritätsprüfmatrix H erzeugt. In der vorliegenden Ausführungsform verwendet der Prozessor 50 eine Generierungsgleichung, die sich von der in der ersten Ausführungsform und der zweiten Ausführungsform verwendeten Gleichung unterscheidet, um jede Reihe in dem in 9 gezeigten Schritt S321 zu generieren. Außerdem sind die restlichen Prozesse außer Schritt S321 die gleichen wie die Prozesse der ersten Ausführungsform und der zweiten Ausführungsform.
-
In Schritt S321 verwendet der Prozessor 50 die Generierungsgleichung c = a·i + k + r zum Generieren der Paritätsprüfmatrix H. Der Prozessor 50 generiert eine Reihe r, indem die Matrixelemente, die sich in den durch die Generierungsgleichung c = a·i + k + r dargestellten Spalten c befinden, auf ”1” gesetzt werden, und die anderen Matrixelemente auf ”0” gesetzt werden. In diesem Fall ist ”i” 0 oder eine negative ganze Zahl.
-
10 ist eine Erklärungsansicht, die noch ein anderes Beispiel der durch den Prozessor 50 generierten Paritätsprüfmatrix H zeigt. Die in 10 gezeigte Paritätsprüfmatrix H wird mit einer auf k = 12 festgelegten Nachrichtenlänge, der auf n = 20 festgelegten Codewortlänge und der auf m = 8 festgelegten Anzahl von Reihen der Paritätsprüfmatrix H generiert, wie bei der in 6 und 8 gezeigten Paritätsprüfmatrix H. Ferner ist die in 10 gezeigte Paritätsprüfmatrix H eine Matrix, die durch Festlegen der Periodenliste P = {4, 5} in Schritt S110 generiert wird.
-
Wie in 10 gezeigt ist, generiert der Prozessor 50 jede Reihe in Übereinstimmung mit der in 9 gezeigten Prozedur, um solche Bedingungen zu erfüllen, dass, wenn jegliche zwei in der Paritätsprüfmatrix H enthaltene Reihen ausgewählt werden, die beiden Reihen Perioden aufweisen, die relativ prim sind, oder, wenn die Perioden identisch sind, so, dass die beiden Perioden verschiedene Phasen aufweisen.
-
Dementsprechend kann das Auftreten einer gemeinsamen Spalte in jeglichen zwei Reihen verhindert werden, oder das Auftreten einer gemeinsamen Spalte kann auf nur eine begrenzt werden. Wie in 10 gezeigt ist, wird alternativ eine Teilmatrix H2 innerhalb der Paritätsprüfmatrix H als eine untere Dreiecksmatrix gemäß der in 9 gezeigten Prozedur generiert.
-
Obwohl in der vorliegenden Ausführungsform ein Beispiel beschrieben ist, in dem die Teilmatrix H2 innerhalb der Paritätsprüfmatrix H eine untere Dreiecksmatrix ist, sind die Fehlerkorrekturcharakteristiken die gleichen, selbst wenn jegliche Reihen oder Spalten der Paritätsprüfmatrix H ausgetauscht werden. Zum Beispiel können in der Paritätsprüfmatrix H enthaltene Elemente vertikal so invertiert werden, dass die Teilmatrix H2 eine obere Dreiecksmatrix ist, und die Bedeutung der LDPC-Codierung bleibt unverändert. Alternativ können die in der Paritätsprüfmatrix H enthaltenen Elemente horizontal invertiert werden, so dass der Teil von m Reihen und m Spalten auf der linken Seite der Paritätsprüfmatrix H eine Dreiecksmatrix wird, und die Bedeutung der LDPC-Codierung bleibt unverändert.
-
In der vorliegenden Ausführungsform generiert der Prozessor 50 durch Ausführen von Verarbeitung gemäß der in 9 gezeigten Prozedur die Paritätsprüfmatrix H gemäß den folgenden Bedingungen. Die in Schritt S110 festgelegte Periodenliste P ist definiert als P = {p(1), p(2), ..., p(PL}, und N(j) ist als die Summe der Werte des ersten bis j-ten Elements der Periodenliste P definiert. Zusätzlich ist N(0) als N(0) = 0 definiert. Wenn die Generierungs-Zielreihennummer r die Beziehung N(j – 1) + 1 ≤ r ≤ N(j) erfüllt, verwendet der Prozessor 50 die Periodenvariable a = p(j) zum Generieren von Reihe r, so dass Matrixelemente von Spalten c, die die Beziehungen 1 ≤ c ≤ n – m + r und c = p(j)·i + n – m + r erfüllen, ”1” sind und andere Matrixelemente ”0” sind. In diesem Fall ist ”i” eine ganze Zahl.
-
Obwohl in der vorliegenden Ausführungsform ein Fall beschrieben wurde, in dem Elemente der Spalten c, die die Beziehungen 1 ≤ c ≤ n – m + r und c = p(j)·i + n – m + r erfüllen, in Schritt 321 auf ”1” gesetzt werden, sind die Bedingungen zum Setzen von Elementen auf ”1” nicht auf die in dieser Ausführungsform gezeigte Form begrenzt. Wenn zum Beispiel die Generierungs-Zielreihennummer r die Beziehung N(j – 1) + 1 ≤ r ≤ N(j) erfüllt, kann der Prozessor 50 einen vorgegebenen Wert F(j) verwenden, der zum Verwenden des Elements Nummer j der Periodenliste P bestimmt wird, um die Elemente zu bestimmen, die auf ”1” zu setzen sind. In einem solchen Fall generiert der Prozessor 50 Reihe r in Schritt S321, indem Matrixelemente auf ”1” gesetzt werden, die sich in Spalten c befinden und die Beziehungen 1 ≤ c ≤ n – m und c = p(j)·i + r + F(j) erfüllen, und Spalten c, die die Beziehung c = n – m + r erfüllen, und die anderen Matrixelement auf ”0” gesetzt werden. Durch Annehmen dieses Verfahrens kann der H2 innerhalb der Paritätsprüfmatrix H entsprechende Teil als eine Einheitsmatrix generiert werden.
-
Als ein Beispiel kann F(j) = N(j – 1) als Wert F(j) verwendet werden, der durch Verwendung des Elements Nummer j bestimmt wird. Alternativ kann F(j) = n – m verwendet werden. Obwohl in der vorliegenden Ausführungsform ein Beispiel beschrieben wurde, in dem in Schritt S110 nur eine Periodenliste festgelegt wird, ist die Anzahl von Periodenlisten, die festgelegt werden, nicht auf eine begrenzt. Zum Beispiel kann die Periodenliste Q = {q(1), a(2), ..., q(QL)} zusätzlich zu der Periodenliste P in Schritt S110 festgelegt werden. In diesem Fall kann M(j) als die Summe der Werte des ersten bis j-ten Elements der Liste Q definiert werden, und M(0) kann als M(0) = 0 definiert werden. Der Prozessor 50 kann dann diese beiden Bedingungen zum Bestimmen von Elementen verwenden, die auf ”1” zu setzen sind.
-
Wenn zum Beispiel die Generierungs-Zielreihennummer r die Beziehung N(j – 1) + 1 ≤ r ≤ N(j) erfüllt, setzt der Prozessor 50 in Schritt S321 diejenigen Matrixelemente auf ”1”, die sich in Spalten c befinden, welche die Bedingungen 1 ≤ c ≤ n – m und c = p(j)·i + r + F(j) erfüllen. Wenn die Generierungs-Zielreihennummer r ferner die Beziehung M(j – 1) + 1 ≤ r ≤ M(j) erfüllt, setzt der Prozessor 50 diejenigen Matrixelement auf ”1”, die sich in Spalten c befinden, welche die Bedingungen n – m + 1 ≤ c ≤ n – m + r und c = p(j)·i + n – m + r erfüllen, und setzt anschließend die anderen Matrixelemente auf ”0”, um auf diese Weise die Reihe r zu generieren. F(j) = –N(j – 1) kann als F(j) verwendet werden, oder F(j) = n – m kann verwendet werden.
-
Die Mehrzahl von Elementen der Periodenliste P kann auch aus einem einzigen Parameter generiert werden. Zum Beispiel können die Elemente der Periodenliste P als die kleinsten Werte der Werte definiert werden, die die beiden Bedingungen erfüllen, nicht nur relativ prim zu sein, sondern sich auch in einer ansteigenden Progression zu befinden. Durch Annehmen dieses Verfahrens ermöglicht die Bestimmung nur des führenden Elements p1 als ein Parameter die Bestimmung jedes Elements der gesamten Periodenliste P. Alternativ können andere Elemente p(j) als das führende Element p1 als die kleinste Primzahl der Primzahlen definiert werden, die größer als das vorhergehende Element p(j – 1) sind, um dadurch die Bestimmung der gesamten Periodenliste P lediglich durch Bestimmung des führenden Elements p1 zu ermöglichen.
-
Obwohl ein Beispiel in der vorliegenden Ausführungsform beschrieben wurde, in dem ein Übertragungsleitungscodierer eine Paritätsprüfmatrix H zum Gebrauch beim LDPC-Codieren generiert, kann das Verfahren zum Generieren einer Paritätsprüfmatrix auch auf einen Fall angewendet werden, in dem der Übertragungsleitungsdecoder die Paritätsprüfmatrix H zum Gebrauch beim Decodieren von Codewörtern generiert.
-
Wie in der vorhergehenden Erklärung beschrieben wurde, kann gemäß der vorliegenden Ausführungsform eine Paritätsprüfmatrix, anstatt für jede Teilmatrix generiert zu werden, als eine Gruppe generiert werden, so dass die Bedingungen erfüllt werden, dass, wenn jegliche zwei Reihen ausgewählt werden, die beiden Reihen Perioden aufweisen, die relativ prim sind, oder, wenn die Perioden identisch sind, die beiden Reihen Phasen aufweisen, die verschieden sind. Anstatt jede Teilmatrix zu generieren, kann ferner eine Paritätsprüfmatrix als eine Gruppe generiert werden, um eine untere Dreiecksmatrix oder eine Einheitsmatrix zu enthalten. Infolgedessen können hervorragende Fehlerkorrekturcharakteristiken in Low-Density Parity-Check-Codes realisiert werden, und eine Paritätsprüfmatrix kann durch ein einfaches Verfahren generiert werden. Zusätzlich können die Kosten zum Generieren einer Generatormatrix und die Kosten zum Codieren verglichen mit einem Fall gesenkt werden, in dem die Paritätsprüfmatrix keine untere Dreiecksmatrix oder Einheitsmatrix enthält.
-
Vierte Ausführungsform
-
Die folgende Erklärung betrifft die vierte Ausführungsform der vorliegenden Erfindung unter Bezugnahme auf die anliegenden Zeichnungen. In der vorliegenden Ausführungsform wird ein Datenübertragungssystem beschrieben, das einen jeglichen der in der ersten bis dritten Ausführungsform gezeigten Übertragungsleitungscodierer und Übertragungsleitungsdecoder anwendet. Die Konfiguration des Datenübertragungssystems gemäß der vorliegenden Erfindung ist identisch mit der in 1 gezeigten Konfiguration. Wenn der Datengenerator 10 eine Datenkette generiert, die zu übertragen ist, wird die generierte Datenkette als Ausgabe an den Übertragungsleitungscodierer 11 geliefert. Mit anderen Worten, der Datengenerator 10 liefert eine generierte Datenkette an den Übertragungsleitungscodierer 11.
-
Der Übertragungsleitungscodierer 11 ist mit einer jeglichen Konfiguration zum Realisieren des in der ersten bis dritten Ausführungsform beschriebenen Verfahrens zum Generieren einer Paritätsprüfmatrix ausgerüstet. Zum Beispiel ist ein Programm zum Generieren einer Paritätsprüfmatrix in dem Übertragungsleitungscodierer 11 installiert, um eine Paritätsprüfmatrix zu generieren. Der Übertragungsleitungscodierer 11 generiert eine Paritätsprüfmatrix H basierend auf einer Periodenliste P. Der Übertragungsleitungscodierer 11 verwendet weiter die generierte Paritätsprüfmatrix H zum Konvertieren der von dem Datengenerator 10 gelieferten Datenkette in Codewörter. Der Übertragungsleitungscodierer 11 sendet die Codewörter anschließend mittels einer Übertragungsleitung 12 an den Übertragungsleitungsdecoder 13.
-
Der Übertragungsleitungsdecoder 13 ist mit einer Konfiguration zum Realisieren des Verfahrens zum Generieren einer Paritätsprüfmatrix ausgestattet. Zum Beispiel ist ein Programm zum Generieren einer Paritätsprüfmatrix in dem Übertragungsleitungsdecoder 13 installiert, um eine Paritätsprüfmatrix zu generieren. Der Übertragungsleitungsdecoder 13 generiert die Paritätsprüfmatrix H basierend auf der Periodenliste P. Zusätzlich verwendet der Übertragungsleitungsdecoder 13 die Paritätsprüfmatrix H, die generiert wurde, zum Wiederherstellen der originalen Datenkette aus den empfangenen Codewörtern in Übereinstimmung mit einem Summenprodukt-Decodierverfahren. Der Übertragungsleitungsdecoder 13 liefert die wiederhergestellte Datenkette anschließend an die Datenverbrauchseinrichtung 14. Mit anderen Worten, der Übertragungsleitungsdecoder 13 liefert die wiederhergestellte Datenkette an die Datenverbrauchseinrichtung 14.
-
Die Datenverbrauchseinrichtung 14 verbraucht die Datenkette, die von dem Übertragungsleitungsdecoder 13 geliefert wurden. Mit anderen Worten, die Datenverbrauchseinrichtung 14 verarbeitet die gelieferte Datenkette, um Anzeige oder Ausgabe durchzuführen.
-
Wenn das Datenübertragungssystem zum Beispiel ein System zum Übertragen von Videodaten ist, ist der Datengenerator 10 ein Videocodierer, und die durch den Datengenerator 10 erzeugte Datenkette ist ein Bitstrom. Die Datenverbrauchseinrichtung 14 ist ein Videodecoder.
-
Der Übertragungsleitungscodierer 11 und der Übertragungsleitungsdecoder 13 verwenden jeweils die gleiche Periodenliste P. Als ein Verfahren zum Bewahren der Einheitlichkeit der Periodenliste P, kann ein Verfahren zum Übertragen der gleichen Periodenliste P als einen Anfangswert sowohl an den Übertragungsleitungscodierer 11 als auch den Übertragungsleitungsdecoder 13 verwendet werden. Wenn die Periodenliste P alternativ durch Eingabe von außen übertragen wird, kann die als Eingabe von außen angelegte Periodenliste P sowohl dem Übertragungsleitungscodierer 11 als auch dem Übertragungsleitungsdecoder 13 gemeldet werden, woraufhin sowohl der Übertragungsleitungscodierer 11 als auch der Übertragungsleitungsdecoder 13 die gemeldete Periodenliste P verwenden können.
-
Alternativ kann ein Verfahren verwenden werden, in dem der Übertragungsleitungscodierer 11 die Periodenliste P festlegt, woraufhin der Übertragungsleitungscodierer 11 die festgelegte Periodenliste P mittels der Übertragungsleitung 12 an den Übertragungsleitungsdecoder 13 sendet (meldet). In diesem Fall unterscheiden sich die optimalen Werte der Periodenliste P abhängig von dem Fehlergenerierungsmodel der Übertragungsleitung 12. Der Übertragungsleitungscodierer 11 kann die Periodenliste P mit jeder Übertragung von Codewörtern senden (melden), oder die Periodenliste P nur senden (melden), wenn die Periodenliste P aktualisiert wird. Wenn Aktualisierung der Periodenliste P für jeden von vorbestimmten vorgegebenen Zeitintervallen durchgeführt wird, kann der Übertragungsleitungscodierer 11 die Periodenliste P mit jedem vorgegebenen Zeitintervall nach Aktualisierung an den Übertragungsleitungsdecoder 13 senden (melden).
-
Der Übertragungsleitungsdecoder 13 detektiert als Erster das Auftreten eines Fehlerzustands der Übertragungsleitung 12, und der Übertragungsleitungsdecoder 13 kann daher die Einstellungen der Periodenliste P vornehmen. In diesem Fall sendet der Übertragungsleitungscodierer 11 nicht die Periodenliste P zu dem Übertragungsleitungsdecoder 13, sondern stattdessen sendet (meldet) der Übertragungsleitungsdecoder 13 die Periodenliste (P) mittels der Übertragungsleitung 12 an den Übertragungsleitungscodierer 11.
-
Wenn eine Definition zum Generieren jedes der Elemente der Periodenliste P aus einem einzigen Parameter angenommen wurde und jedes der einem führenden Element folgenden Elemente somit basierend auf dem führenden Element der Periodenliste P bestimmt werden kann, muss der Übertragungsleitungscodierer 11 oder Übertragungsleitungsdecoder 13 nur das führende Element übertragen (melden). Zum Beispiel ist auch eine Konfiguration möglich, in der durch Definieren der Elemente der Periodenliste P als die kleinsten Werte von den Werten, die die beiden Bedingungen erfüllen, dass die Elemente nicht nur relativ prim sind, sondern dass die Elemente sich ferner in einer ansteigenden Progression befinden, jedes Elemente der gesamten Periodenliste P bestimmt werden kann, wenn lediglich das führende Element p1 bestimmt wird. Alternativ ist eine Konfiguration möglich, in der, durch Definieren der Elemente p(j) außer dem führenden Element p1 als die kleinste Primzahl von Primzahlen, die größer als das vorhergehende Element p(j – 1) sind, die gesamte Periodenliste P bestimmt werden kann, wenn lediglich das führende Element p1 bestimmt wird.
-
Wenn eine Änderung in der Größe der Paritätsprüfmatrix gewünscht ist, kann der Übertragungsleitungscodierer 11 die Anzahl von Reihen und die Anzahl von Spalten der Paritätsprüfmatrix nach einer Änderung mittels der Übertragungsleitung 12 an den Übertragungsleitungsdecoder 13 senden (melden). Wenn alternativ eine Änderung der Größe der Paritätsprüfmatrix gewünscht ist, kann der Übertragungsleitungsdecoder 13 die Anzahl von Reihen und die Anzahl von Spalten der Paritätsprüfmatrix nach einer Änderung mittels der Übertragungsleitung 12 an den Übertragungsleitungscodierer 11 senden (melden).
-
Der wie oben beschriebenen vorliegenden Ausführungsform zufolge verwenden der Übertragungsleitungscodierer 11 und der Übertragungsleitungsdecoder 13 in einem Datenübertragungssystem jegliche der Verfahren zum Generieren einer Paritätsprüfmatrix, die in der ersten bis dritten Ausführungsform beschrieben wurden, um eine Paritätsprüfmatrix zu generieren. Dementsprechend können hervorragende Fehlerkorrekturcharakteristiken in Low-Density Parity-Check-Codes realisiert werden, und eine Paritätsprüfmatrix kann durch ein einfaches Verfahren erzeugt werden. Darüber hinaus können die Kosten zum Generieren einer Generatormatrix und die Kosten zum Codieren verglichen mit einem Fall gesenkt werden, in dem die Paritätsprüfmatrix keine untere Dreiecksmatrix oder Einheitsmatrix enthält.
-
Der vorliegenden Erfindung zufolge kann eine Paritätsprüfmatrix bestimmt werden, wenn die Periodenliste P oder das führende Element der Periodenliste P bekannt ist. Wenn einer des Übertragungsleitungscodierers 11 und des Übertragungsleitungsdecoders 13 die Periodenliste P oder das führende Element dem jeweils anderen meldet, können infolgedessen der Übertragungsleitungscodierer 11 und der Übertragungsleitungsdecoder 13 die gleiche Paritätsprüfmatrix teilen.
-
Wenn außerdem die Größe einer Paritätsprüfmatrix zu ändern ist, wenn einer des Übertragungsleitungscodierers und des Übertragungsleitungsdecoders 13 dem anderen die Matrixgröße meldet, kann die Größe der Paritätsprüfmatrix einfach geändert werden. Dementsprechend kann die optimale Paritätsprüfmatrix zur Übertragung zum Zeitpunkt der Datenübertragung einfach sogar in dem Fall von Änderungen in den Charakteristiken der Übertragungsleitung 12 oder des Überlastungszustands eines Netzes zum Austausch von Datenpaketen verwendet werden.
-
Potentieller Gebrauch in der Industrie
-
Das Verfahren zum Generieren einer Paritätsprüfmatrix gemäß der vorliegenden Erfindung kann angewendet werden, wenn ein in einem Datenübertragungssystem enthaltener Übertragungsleitungscodierer eine Paritätsprüfmatrix generiert, die zum LDPC-Codieren einer Datenkette verwendet wird. Das Verfahren zum Generieren der Paritätsprüfmatrix kann auch angewendet werden, wenn ein in dem Datenübertragungssystem enthaltener Übertragungsleitungsdecoder eine Paritätsprüfmatrix zum Gebrauch beim Decodieren von Codewörtern generiert, die empfangen wurden.
-
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
-
- JP 2003-198383 A [0015]
- JP 2003-115768 A [0015]
-
Zitierte Nicht-Patentliteratur
-
- Michael G. Luby, Michael Mitzenmacher, M. Amin Shokrollahi, Daniel A. Spielmann, Efficient Erasure Correction Codes [Effiziente Löschkorrekturcodes], ”IEEE Transactions on Information Theory”, Februar 2001, Band 47, Nr. 2, Seiten 569–584 [0015]
- Thomas J. Richardson, M. Amin Shokrallahi, Design of Capacity-Approaching Irregular Low-Density Parity-Check Codes [Design von kapazipätsannähernden irregulären Low-Density Parity-Check Codes], ”IEEE Transactions on Information Theory”, Februar 2001, Band 47, Nr. 2, Seiten 619–637 [0015]