-
Die Erfindung betrifft ein Verfahren zum Wiederherstellen verlorengegangener und/oder beschädigter Daten.
-
Aus dem Stand der Technik ist es bekannt, Daten, die über einen sogenannten Packet-Erasure-Channel (PEC) übermittelt werden, durch Fehlerkorrekturverfahren zu schützen. Beispielsweise ist Packet-Level-Coding eine einfache Methode, um eine verlässliche Übertragung in einem Kommunikationssystem zu gewährleisten (J. Byers, M. Luby, M. Mitzenmacher, and A. Rege, ”A digital fountain approach to reliable distribution of bulk data,” SIGCOMM Comput. Commun. Rev., vol. 28, no. 4, pp. 56–67, Oct. 1998). Die zu übertragenden Informationen sollen ferner geschützt werden, indem Pakete in höheren Schichten codiert werden. Das Grundprinzip des Packet-Level-Coding ist in 1 dargestellt.
-
Zunächst wird die übertragene Nachricht in k Informationspakete aufgeteilt und in n Codewortpakete codiert. Dies geschieht durch einen (n, k)-Code, wobei n die Codewortlänge und k die Blockgröße angibt. Somit werden m = n – k Paritätspakete durch den Packet-Level-Encoder erzeugt.
-
Weiterhin werden die n Codewortpakete im Physical Layer durch Fehlerkorrekturcodes (z. B. Turbo, LDPC ...), Fehlererkennungscodes (z. B. Cyclic Redundancy Check) geschützt und anschließend übermittelt.
-
Anschließend wird auf der Empfängerseite für jedes Paket im Physical Layer eine Fehlerkorrektur durchgeführt, so dass verbleibende Fehler durch den Fehlererkennungscode erkannt werden. Wenn Fehler erkannt werden, wird das Datenpaket als verlorengegangen angesehen und entsprechend markiert. Somit sehen die Schichten über dem Physical Layer das Kommunikationsmedium als einen Packet-Erasure-Channel an, über den Pakete entweder korrekt empfangen oder mit einer bestimmten Auslöschungswahrscheinlichkeit ε verlorengehen.
-
Wenn eine ausreichend große Menge an Paketen empfangen wurde, stellt der Packet-Level-Decoder die Originalnachricht wieder her.
-
Die Codierprozedur wird üblicherweise bitweise (symbolweise) unter Verwendung des Encoders eines binären oder nicht-binären Codes durchgeführt. Maximum Likelihood Decoding wird über dem Packet-Erasure-Channel ausgeführt, in dem das folgende lineare Gleichungssystem gelöst wird:
wobei
ein Vektor ist, der die ausgelöschten Codewortpakete enthält. x
k ist ein Vektor, der die korrekt empfangenen Codewortpakete enthält.
ist die Submatrix, die zusammengesetzt ist aus den Spalten in der Parity-Check-Matrix, die den ausgelöschten Spaltenpaketen entsprechen. H
k ist die Submatrix, die aus den Spalten in der Parity-Check-Matrix zusammengesetzt ist, die den empfangenen Codewortpaketen entsprechen.
-
Es ist zu beachten, dass die rechte Seite der Gleichung (1) bekannt ist und
die dünn besetzte Matrix bezeichnet, die das Gleichungssystem beschreibt, das zu lösen ist, um die Auslöschungen wieder herzustellen. Die Parity-Check-Matrix eines nicht-binären LDPC-Codes ist eine dünn besetzte Matrix mit nicht-binären Nicht-Null-Elementen.
-
Softwareimplementierungen von Packet-Level-Encodern und Decodern sind besonders vorteilhaft, da sie keinen großen Aufwand hinsichtlich des Designs oder der Implementierung erfordern und ferner flexibler im Vergleich zu Hardwareimplentierungen sind. Softwaremodule können auf einfache Weise in eine Hardwarearchitektur integriert werden, die nicht speziell entwickelt wurde, um Packet-Level-Coding zu unterstützen.
-
Es ist aus dem Stand der Technik bekannt, dass ein nicht-binärer LDPC-Code bessere Möglichkeiten zur Fehlerkorrektur bietet (Giuliano Garrammone, Balázs Matuz, ”Short Erasure Correcting LDPC IRA Codes over GF(q),” GLOBEOM 2010, pp. 1–5; G. Garrammone, B. Matuz, G. Liva, ”An Overview of Efficient Coding Techniques for Packet Loss Recovery in CCSDS Telemetry Links,” 5th European Space Agency Workshop on Tracking, Telemetry and Command Systems for Space Applications, TTC 2010, Noordwijk (Netherlands), 21–23 September 2010). Die Auswahl der nicht-binären Nicht-Null-Elemente der Parity-Check-Matrix des Codes wurde bisher immer zufällig vorgenommen. Als Randbedingung wurde nur berücksichtigt, dass die gewählten nicht-binären Nicht-Null-Elemente dem gewählten Galois-Feld entnommen sind, das zur Erzeugung des Codes gewählt wurde.
-
Die folgende Matrix stellt eine binäre Parity-Check-Matrix eines (8,5) binären Codes dar:
-
Für die Erzeugung einer nicht-binären Parity-Check-Matrix kann beispielsweise ein Galois-Feld der Ordnung 4 verwendet werden. Dies bedeutet, dass drei Nicht-Null-Elemente in dem Galois-Feld existieren. Eine mögliche 3 × 8 nicht-binäre Parity-Check-Matrix H für den (8,5) Code über dem Galois-Feld der Ordnung 4 ist:
-
Hier wurden die binären Nicht-Null-Elemente der binären Parity-Check-Matrix 2 durch zufällig gewählte nicht-binäre Elemente aus dem Galois-Feld der Ordnung 4 ersetzt.
-
Nachteilig an einer zufälligen Auswahl der nicht-binären Koeffizienten der Parity-Check-Matrix eines nicht-binären LDPC-Codes ist, dass viele Gleichungen in der Parity-Check-Matrix linear abhängig sein können, was zu einer schlechten Performance des Codes führt.
-
Eine Verbesserung der Performance des Codes kann erreicht werden, wenn ein Galois-Feld höherer Ordnung verwendet wird, um die nicht-binäre Parity-Check-Matrix zu erstellen. Jedoch steigt mit einem Galois-Feld höherer Ordnung auch die Komplexität beim Durchführen nicht-binärer Rechenoperationen.
-
Die Druckschrift D1 (POULLIAT, C.; FOSSORIER, M.; DECLERCQ, D.: Design of Regular (2, dc)-LDPC Codes over GF(q) Using Their Binary Images. In: IEEE Transactions on Communications, Vol. 56, 2008, Iss. 10, S. 1626–1635. – ISSN 0090-6778) beschreibt ein Verfahren zum Decodieren von Daten, wobei das Codieren und Decodieren unter Verwendung eines nicht binären LDPC-Codes durchgeführt wird, dessen Parity-Check-Matrix-Koeffizienten in Abhängigkeit von einem Kanalmodell mittels Monte Carlo Simulation ausgewählt werden.
-
Aufgabe der Erfindung ist es, ein leistungsfähigeres Verfahren zum Wiederherstellen verlorengegangener und/oder beschädigter Daten bereitzustellen, das insbesondere eine geringe Berechnungskomplexität ermöglicht, da der verwendete Code über einem Galois-Feld niedriger Ordnung gebildet wurde.
-
Die Lösung der Aufgabe erfolgt erfindungsgemäß durch die Merkmale des Anspruchs 1.
-
Das erfindungsgemäße Verfahren dient dem Wiederherstellen verlorengegangener und/oder beschädigter Daten, die von einer Sendevorrichtung über einen Übertragungskanal an eine Empfangsvorrichtung übermittelt werden. Das Verfahren weist die folgenden Schritte auf:
- – Die Daten werden durch einen mit der Sendevorrichtung verbundenen Encoder codiert.
- – Anschließend werden sie von der Sendevorrichtung über einen Übertragungskanal an die Empfangsvorrichtung übermittelt.
- – Die Daten werden durch einen mit der Empfangsvorrichtung verbundenen Decoder decodiert, wobei verlorengegangene und/oder beschädigte Daten während des Decodierens wieder hergestellt werden.
-
Das Codieren und Decodieren erfolgt unter Verwendung eines nicht-binären LDPC-Codes, dessen Parity-Check-Matrix die durch die folgenden Schritte generiert wurde:
- a) Durchführen einer Initialisierungsprozedur mit folgenden Schritten:
Schritt a1): Auswählen eines Galois-Feldes, aus dem der nicht binäre LDPC-Code gebildet werden soll;
Schritt a2) Ersetzen der Nicht-Null-Einträge einer binären LDPC-Parity-Check-Matrix durch zufällig gewählte nicht-binäre Einträge aus dem gewählten Galois-Feld;
- b) Durchführen eines Optimierungsalgorithmus mit folgenden Schritten:
Schritt b1): Mehrmaliges Durchführen einer Simulation des Übertragungs- und Decodiervorgangs, wobei bei jedem nicht erfolgreichen Decodieren während einer Simulation mindestens ein Variable Node der Tannergraphdarstellung des LDPC-Codes identifiziert wird, der nicht wieder hergestellt werden konnte;
Schritt b2): Ermitteln und Speichern einer Performance-Messgröße über die Leistungsfähigkeit des verwendeten Codes sowie Speichern der verwendeten Koeffizienten der Nicht-Null-Einträge der Parity-Check-Matrix;
Schritt b3): Auswählen des Sets von nicht wieder hergestellten Variable Nodes mit dem niedrigsten Gewicht aus der gemäß Verfahrensschritt b1) durchgeführten Simulation;
Schritt b4): Auswählen eines Variable Nodes j, aus dem gemäß Verfahrensschritt b2) ausgewählten Set von Variable Nodes mit dem niedrigsten Gewicht;
Schritt b5): Identifizieren einer Zeile i in der Parity-Check-Matrix, in der der gemäß Verfahrensschritt b3) ausgewählte Variable Node j und alle anderen Variable Nodes aus dem in Verfahrensschritt ausgewählten Set vorhanden sind;
Schritt b6): Ersetzen des Eintrags der Parity-Check-Matrix in Zeile i und Spalte j mit einem anderen Eintrag aus dem gemäß Verfahrensschritt a1) gewählten Galois-Feld, wobei der Eintrag ungleich Null ist. Der neue Eintrag in Zeile i und Spalte j soll sich von dem aktuellen Eintrag unterscheiden. Wenn die Auswahl des neuen Eintrags zufällig erfolgt, kann es passieren, dass der neue Eintrag mit dem bisherigen Eintrag identisch ist. Dies soll erfindungsgemäß vermieden werden.
Schritt b7): Mehrmaliges Wiederholen der Verfahrensschritte b1)–b6) mit dem gemäß Verfahrensschritt b6) geänderten Eintrag in der Parity-Check-Matrix;
Schritt b8): Auswählen der Koeffizienten der Nicht-Null-Einträge der Parity-Check-Matrix, für die gemäß Verfahrensschritte b2) die beste Performance-Messgröße ermittelt wurde.
-
Bei der gemäß Verfahrensschritt b2) ermittelten Performance-Messgröße über die Leistungsfähigkeit des verwendeten Codes kann es sich beispielsweise um die Codeword Error Rate (CER) handeln. Beispielsweise ist es auch möglich, die Symbol Error Rate (SER) zu messen.
-
Erfindungsgemäß werden somit die nicht-binären Nicht-Null-Einträge der Parity-Check-Matrix nicht zufällig ausgewählt, sondern basierend auf dem dargestellten Algorithmus. Versuche des Anmelders, basierend auf Simulationen haben gezeigt, dass dies zu einer verbesserten Decodierleistung führt. Nähere Einzelheiten hierzu werden in Zusammenhang mit den Figuren der vorliegenden Anmeldung beschrieben.
-
Durch das erfindungsgemäße Verfahren wird die Wahrscheinlichkeit, dass das Decodieren aufgrund von linear abhängigen Gleichungen in der Parity-Check-Matrix versagt, verringert. Dies wird dadurch erreicht, dass Fehlermuster mit einem niedrigen Gewicht (d. h. kleine Sets von Variable Nodes, die nicht wieder hergestellt werden können) seltener ein Scheitern des Decodiervorgangs verursachen.
-
Zum Verständnis der genannten Verfahrensschritte ist zu beachten, dass Variable Nodes den Spalten der Parity-Check-Matrix H des Codes entsprechen, während Check-Nodes den Zeilen der Matrix entsprechen.
-
Es ist bevorzugt, dass eine Anzahl I_max von Wiederholungen ausgewählt wird, für die gemäß Verfahrensschritt b7) die Schritte b1)–b6) wiederholt werden, wobei I_max den Wert 1, 10, 30 oder 50 annehmen kann.
-
Weiterhin ist bevorzugt, dass eine Anzahl N_Sim für die zu ermittelnden Simulationsvorgänge ausgewählt wird, die nicht zu einem erfolgreichen Decodieren geführt haben, wobei jeder dieser Simulationsvorgänge ein Set nicht wieder hergestellter Variable Nodes liefert. Gemäß Verfahrensschritt b1) wird die Simulation sooft wiederholt, bis N_Sim Sets nicht wieder hergestellter Variable Nodes ermittelt wurden.
-
N_Sim kann > 10, bevorzugt > 20 und besonders bevorzugt > 30 sein.
-
Weiterhin ist es bevorzugt, dass die Verfahrensschritte b1)–b7) mit anderen während der Initialisierungsprozedur gemäß Verfahrensschritt a2), zufällig gewählten nicht-binären Einträgen in der Parity-Check-Matrix wiederholt werden.
-
Die gemäß Verfahrensschritt b1) durchgeführte Simulation kann eine Monte Carlo-Simulation sein. Es ist auch möglich, jede andere Art von Simulation einzusetzen, die Sets von Variable Nodes identifiziert, die nicht durch den Decoder wieder hergestellt werden konnten.
-
Weiterhin ist es bevorzugt, dass, wenn mehr als ein Variable Node Set mit dem niedrigsten Gewicht existiert, gemäß Verfahrensschritt b3) ein Set zufällig ausgewählt wird.
-
Weiterhin ist es bevorzugt, dass das Auswählen des Variable Nodes j gemäß Verfahrensschritt b4) zufällig erfolgt.
-
Weiterhin ist es bevorzugt, dass der neue Eintrag der Parity-Check-Matrix, der gemäß Verfahrensschritt b6) den alten Eintrag in Zeile i und Spalte j ersetzt, zufällig gewählt wird.
-
Im Folgenden werden bevorzugte Ausführungsformen der Erfindungen anhand von Figuren erläutert.
-
Es zeigen:
-
1 eine schematische Darstellung des Grundprinzips von Packet-Level-Coding und
-
2 und 3 Ergebnisse von Simulationen, die die Leistungsfähigkeit des erfindungsgemäßen Verfahrens, verglichen zum Stand der Technik betreffen.
-
1 wurde bereits in Zusammenhang mit dem Stand der Technik ermittelt.
-
Als erstes Beispiel wurde die binäre Parity-Check-Matrix des (256, 128) LDPC-Codes verwendet, der in der folgenden Veröffentlichung beschrieben ist:
Giuliano Garrammone, Balázs Matuz, ”Short Erasure Correcting LDPC IRA Codes over GF(q),” GLOBEOM 2010, pp. 1–5.
-
Basierend auf der binären Parity-Check-Matrix wurden zwei Codes über einem Galois-Feld der Ordnung 4 erzeugt. Die Auswahl der nicht-binären Elemente der Parity-Check-Matrix wurde zufällig ausgeführt. Ferner wurde bei einer Versuchsreihe die Auswahl gemäß dem erfindungsgemäßen Verfahren ausgeführt, wobei die folgenden Parameter verwendet wurden: N_Sim = 50 und I_max = 50.
-
In 2 ist die Performancekurve im Hinblick auf die Channel-Erasure-Rate, verglichen mit der Paketauslöschungswahrscheinlichkeit für die jeweiligen Codes dargestellt. Die Leistungsfähigkeit des binären Codes ist ebenfalls dargestellt. Die Singleton-Grenze ist ebenfalls dargestellt (durchgehende Linie). Die Resultate, die auf dem erfindungsgemäßen Verfahren basieren, wurden erreicht unter Anwendung einer Monte Carlo-Simulation, durch die 50 Simulationsvorgänge gesammelt wurden, die nicht zu einem erfolgreichen Decodieren geführt haben. Anders ausgedrückt, wurde die Monte Carlo-Simulation sooft wiederholt, bis in 50 Simulationsvorgängen das Decodieren nicht erfolgreich war, so dass jeder dieser Simulationsvorgänge ein Set nicht wieder hergestellter Variable Nodes geliefert hat.
-
In 2 ist erkennbar, dass die nicht-binären Codes eine bessere Performance liefern als die binären Codes. Ferner ist erkennbar, dass das erfindungsgemäße Verfahren eine bessere Performance liefert als das Verfahren, in dem die nicht-binären Nicht-Null-Einträge der Parity-Check-Matrix zufällig gewählt wurden. Beispielsweise ist erkennbar, dass bei einer Paketauslöschungswahrscheinlichkeit = 0,35 die CER des erfindungsgemäßen Verfahrens, verglichen zum Stand der Technik um fast eine Größenordnung verbessert wurde.
-
Als zweites Beispiel wurde die binäre Parity-Check-Matrix des (512, 256) LDPC-Codes verwendet, der in der folgenden Veröffentlichung entworfen wurde:
G. Garrammone, T. De Cola, B. Matuz, G. Liva, ”Erasure Codes for Space Communications: Recent Findings and New Challenges,” 6th Advanced Satellite Multimedia Systems Conference (ASMS) and 12th Signal Processing for Space Communications Workshop (SPSC), Baiona (Spain), September 2012.
-
Basierend auf der binären Parity-Check-Matrix wurden zwei nicht binäre Codes einmal über einem Galois-Feld der Ordnung 16 und einmal über einem Galois-Feld der Ordnung 256 erstellt. Die Auswahl der nicht binären Elemente der Parity-Check-Matrix wurde gemäß dem erfindungsgemäßen Verfahren ausgeführt mit den folgenden Parametern: N_Sim = 50 und I_max = 50
-
In 3 sind die entsprechenden Performancekurven dargestellt, wobei hier auch ein entsprechender binärer Code dargestellt ist. Auch hier ist erkennbar, dass die nicht-binären Codes gegenüber den nicht-binären Codes eine verbesserte Performance liefern. Es ist beachtenswert, dass die Performance des Codes über einem Galois-Field von 16 (d. h. einem sehr niedrigen Galois-Feld) annähernd die Performance des Codes über dem Galois-Feld höherer Ordnung, nämlich 256 erreicht.
-
Somit erlaubt es die Erfindung, Codes über einem Galois-Feld niedriger Ordnung zu erzeugen, die dennoch eine sehr gute Performance aufweisen (z. B. verglichen mit der Performance von Codes über Galois-Feldern höherer Ordnung). Gleichzeitig kann die Komplexität im Vergleich zu Codes, basierend auf Galois-Feldern höherer Ordnung reduziert werden.
-
Die vorliegende Erfindung kann verwendet werden in allen Arten von kommerziellen drahtlosen oder drahtgebundenen Übertragungssystemen. Durch das erfindungsgemäße Verfahren wird es möglich, nicht-binäre LDPC-Codes auch auf Plattformen mit niedriger Rechenleisung auszuführen.