DE102009017540A1 - Verfahren zum Wiederherstellen verlorener und/oder beschädigter Daten - Google Patents

Verfahren zum Wiederherstellen verlorener und/oder beschädigter Daten Download PDF

Info

Publication number
DE102009017540A1
DE102009017540A1 DE102009017540A DE102009017540A DE102009017540A1 DE 102009017540 A1 DE102009017540 A1 DE 102009017540A1 DE 102009017540 A DE102009017540 A DE 102009017540A DE 102009017540 A DE102009017540 A DE 102009017540A DE 102009017540 A1 DE102009017540 A1 DE 102009017540A1
Authority
DE
Germany
Prior art keywords
submatrix
matrix
column
check
nodes
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE102009017540A
Other languages
English (en)
Other versions
DE102009017540B4 (de
Inventor
Gianluigi Dr. Liva
Balázs Matuz
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Deutsches Zentrum fuer Luft und Raumfahrt eV
Original Assignee
Deutsches Zentrum fuer Luft und Raumfahrt eV
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Deutsches Zentrum fuer Luft und Raumfahrt eV filed Critical Deutsches Zentrum fuer Luft und Raumfahrt eV
Publication of DE102009017540A1 publication Critical patent/DE102009017540A1/de
Application granted granted Critical
Publication of DE102009017540B4 publication Critical patent/DE102009017540B4/de
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • H04L1/0047Decoding adapted to other signal detection operation
    • H04L1/005Iterative decoding, including iteration between signal detection and decoding operation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • H04L1/0054Maximum-likelihood or sequential decoding, e.g. Viterbi, Fano, ZJ algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes

Abstract

Die Erfindung betrifft ein Verfahren zum Wiederherstellen verlorener und/oder beschädigter Daten, die von einer Sendevorrichtung (10) an eine Empfangsvorrichtung (12) übertragen werden. Hierbei erfolgt ein Codieren der Daten durch einen Encoder (14), der mit der Sendevorrichtung (10) verbunden ist. Die Daten werden von der Sendevorrichtung (10) an die Empfangsvorrichtung (12) über eine Übertragungsvorrichtung (18) übertragen und durch einen mit der Empfangsvorrichtung (12) verbundenen Decoder (16) decodiert. Hierbei wird das Low-Density-Parity-Check-Verfahren angewandt, wobei beim Decodieren verlorene und/oder beschädigte Daten wieder hergestellt werden. Das Decodieren erfolgt durch das Lösen des Gleichungssystems der Parity-Check-Matrix H. Hierbei wird die Parity-Check-Matrix durch Spalten- und/oder Zeilenvertauschungen in eine Dreiecksform gebracht. Spalten eine Submatrix B der Matrix H, die den Triangularisationsprozess behindern, werden in eine Submatrix P der Matrix H verschoben, so dass der Triangularisationsprozess fortgeführt werden kann, bis die Matrix H außer der Submatrix P vollständig in eine Dreiecksform gebracht wurde. Auf einen Teil P1 der Submatrix P wird anschließend das Gaußsche Eliminationsverfahren angewendet. Erfindungsgemäß erfolgt die Auswahl der Spalte oder der Spalten der Submatrix B, die in die Submatrix P verschoben werden, basierend auf dem Gewicht der Spalte, das der Anzahl der Nicht-Null-Stellen in der Spalte entspricht und/oder dem Gewicht ...

Description

  • Die Erfindung betrifft ein Verfahren zum Wiederherstellen verlorener und/oder beschädigter Daten, die von einer Sendevorrichtung an eine Empfangsvorrichtung übertragen werden.
  • Bei den übertragenen Daten kann es sich beispielsweise um Audio- oder Videostreams handeln. Diese werden von einer Sendevorrichtung, die die Daten zur Verfügung stellt, beispielsweise an eine mobile Empfangsvorrichtung übermittelt. Bei der mobilen Empfangsvorrichtung kann es sich beispielsweise um ein Mobiltelefon, ein PDA oder ein anderes mobiles Endgerät handeln. Alternativ können auch Daten von einer Sendevorrichtung an eine stationäre Empfangsvorrichtung übertragen werden.
  • Verwendete Standards zum Übertragen von Daten an mobile Endgeräte sind beispielsweise DVB-H, MBMS sowie in naher Zukunft DVB-SH.
  • Um eine gewünschte Übertragungsqualität zu sichern, ist es notwendig, die korrekte Übermittlung der Daten oder Datenpakete an die Empfangsvorrichtung zu überprüfen. Durch verschiedene Verfahren können verlorene und/oder beschädigte Daten, die nicht korrekt an die Empfangsvorrichtung übertragen wurden, wiederhergestellt werden.
  • Ein bekanntes Verfahren zum Wiederherstellen verlorener und/oder beschädigter Daten ist das Low-Density-Parity-Check-Verfahren oder der Low-Density-Parity-Check-Code. Dieses wird auf einem sogenannten Erasure-Channel angewendet. Neben einer Anwendung durch Codieren auf der Ebene des Physical Layer existieren auch Anwendungen im Bereich eines Packet-Erasure-Channels (PEC).
  • In 1 ist die Wiederherstellung verlorener und/oder beschädigter Daten gemäß dem Stand der Technik beispielhaft dargestellt. Es soll eine Anzahl von k Informationspaketen von einer Sendevorrichtung (linke Seite) an eine Empfangsvorrichtung (rechte Seite) übermittelt werden. Durch einen Packet-Level-Encoder auf der Sendeseite werden die k Info-Packets und die m Parity-Packets zu n = m + k Codeword-Packets zusammengesetzt. Auf der Ebene des Physical Layer sind die Pakete gesichert durch einen Fehlerkorrekturcode (beispielsweise einen Turbocode) und einen Fehlererkennungscode (beispielsweise durch einen Cyclic Redundancy Check, CRC), so dass beschädigte Pakete entfernt werden können. Auf den Ebenen oberhalb des Physical Layer werden Pakte entweder korrekt empfangen oder als verloren betrachtet, indem sie gelöscht werden, da der CRC im Physical Layer ein beschädigtes Paket erkannt hat. Der Übertragungskanal wird daher von dem darüber liegenden Schichten als ein sogenannter Erasure-Channel angesehen, wobei die Pakte die Übertragungseinheiten darstellen. Auf Empfängerseite werden die empfangenen Codeword-Packets durch den Packet-Level-Decoder decodiert, so dass die verlorenen und/oder beschädigten Daten wiederhergestellt werden können.
  • Das Wiederherstellen verlorener und/oder beschädigter Daten kann durch eine Redundanz der Daten realisiert werden. Der Encoding-Vorgang durch den Packet-Level-Encoder erfolgt üblicherweise bitweise (oder byteweise) durch Verwendung eines Encoders mit einem Generic-Binary-Linear-Block-Code. Das Decodieren erfolgt anschließend durch Lösen des Gleichungssystems, das durch die Parity-Check-Matrix H des Codes definiert ist. Derartige Decoder, die auf der Gauß-Elimination basieren, zeigen mit zunehmender Blocklänge stark ansteigende Komplexität, so dass hohe Datenraten of nicht erreicht werden können.
  • Prinzipiell bietet eine Verwendung eines Low-Density-Parity-Check-Codes als Linear-Block-Code zwei Hauptvorteile: Der verwendete Maximum-Likelihood-Decoder (bzw. die Gauß-Elimination) kann durch einen Iterativen Decoder ersetzt werden. Dies hat eine Obergrenze hinsichtlich der Fähigkeit zur Folge, beschädigte oder verlorene Daten wiederherzustellen. Ferner ist es für LDPC-Codes möglich, den Maximum-Likelihood-Decoder dadurch zu vereinfachen, dass ausgenutzt wird, dass die Parity-Check-Matrix dünn besetzt ist.
  • Eine Verringerung der Komplexität des Maximum-Likelihood-Decoders führt zu einer verbesserten Performance, ist aber dennoch komplexer verglichen mit dem Iterativen Verfahren. In 13 ist die Performance eines Low-Density-Parity-Check-Codes mit n = 1024 und k = 512 dargestellt. Hierbei ist die Codeword-Error-Rate (CER), d. h. der Decodierungsfehler unter Verwendung eines Maximum-Likelihood-Decoders und eines Iterativen Decoders in Abhängigkeit von der Erasure-Channel-Wahrscheinlichkeit ε dargestellt. Als Referenzkurve ist die Singleton-Untergrenze dargestellt. Der Maximum-Likelihood-Decoder nähert sich in seiner Leistungsfähigkeit dieser theoretischen Grenze.
  • Von großer Wichtigkeit ist in einer mobilen Broadcasting-Anwendung die Fähigkeit der Packet-Level-Codes, mit Signalabschwächungen oder -ausfällen umzugehen, so dass die meisten der verlorenen oder beschädigten Datenpakete ohne einen Retransmission-Request wiederhergestellt werden können. Besonders bevorzugt werden softwareimplementierte Packet-Level-Decoder angewendet, da sie keinen hohen Implementierungsaufwand erfordern, leicht und flexibel upgedated werden können und durch Terminals angespasst werden können, die kein hierfür spezifisches Hardwaredesign aufweisen müssen. Nachteilig an bisher bekannten Verfahren ist, dass entweder durch den Iterativen Decoder ein schnelles und effizient arbeitendes Decoderverfahren angewendet werden kann, das jedoch schlechte Recoveryergebnisse liefert, oder durch den Maximum-Likelihood-Decoder ein Verfahren mit verbesserten Recoveryergebnissen angewendet wird, das jedoch eine hohe Komplexität und u. U. eine eingeschränkte Felxibilität aufweist.
  • Aufgabe der Erfindung ist es, ein Verfahren zum Wiederherstellen verlorener und/oder beschädigter Daten, die von einer Sendevorrichtung an eine Empfangsvorrichtung übertragen werden, zu schaffen, das eine bessere und/oder weniger aufwändige Wiederherstellung der Daten erlaubt.
  • Die Lösung der Aufgabe erfolgt erfindungsgemäß durch die Merkmale des Anspruchs 1.
  • In einem Verfahren zum Wiederherstellen verlorener und/oder beschädigter Daten, die von einer Sendevorrichtung an eine Empfangsvorrichtung übertragen werden, erfolgt zunächst ein Codieren der Daten durch einen mit der Sendevorrichtung verbundenen Encoder. Hierbei kann es sich beispielsweise um einen Packet-Level-Encoder handeln. Die Daten werden von der Sendevorrichtung über eine Übertragungsvorrichtung an die Empfangsvorrichtung übertragen. Als Übertragungsvorrichtung im Sinne der Erfindung wird jegliche Vorrichtung verstanden, die eine Übertragung von Daten von der Sendevorrichtung an die Empfangsvorrichtung und/oder umgekehrt ermöglicht. Beispielsweise kann die Übertragungsvorrichtung dadurch ausgebildet sein, dass ein mobiles Broadcasting-System (beispielsweise DVB-H oder MBMS) verwendet wird. Auch können die Daten beispielsweise über UMTS übermittelt werden.
  • Durch einen mit der Empfangsvorrichtung verbundenen Decoder werden die übertragenen Daten unter Verwendung eines Low-Density-Parity-Check- Verfahrens decodiert, wobei beim Decodieren verlorene und/oder beschädigte Daten wiederhergestellt werden.
  • Das Dekodieren erfolgt durch das Lösen des Gleichungssystems der Parity-Check-Matrix H. Hierbei wird die Parity-Check-Matrix H durch Spalten- und/oder Zeilenvertauschungen in eine Dreiecksform gebracht. Spalten eine Submatrix B der Matrix H, die den Triangularisationsprozess behindern, werden in einer Submatrix P der Matrix H verschoben, so dass der Triangularisationsprozess fortgeführt werden kann, bis die Matrix H außer der Submatrix P vollständig in eine Dreiecksform gebracht wurde. Auf einen Teil P1 der Submatrix P wird das Gaußsche Eliminationsverfahren angewendet. Erfindungsgemäß erfolgt die Auswahl der Spalte oder der Spalten der Submatrix B, die in die Submatrix P verschoben werden, basierend auf dem Gewicht der Spalte oder dem Gewicht der mit der Spalte verbundenen Zeilen der Submatrix B. Das Gewicht einer Spalte ist definiert als die Anzahl der Nicht-Null-Stellen in der Spalte. Selbiges gilt für das Gewicht einer Zeile.
  • Zum Lösen des Gleichungssystems der Parity-Check-Matrix H wird diese in mehrere Submatrizen aufgeteilt. Dies ist in 2 dargestellt. Die Hauptbestandteile der Matrix sind A, das den Teil darstellt, der sich in Dreiecksform befindet und B, das den Teil darstellt, der in die Dreiecksform gebracht werden muss. D ist zu Anfang eine dünn besetzte Matrix, wird jedoch schließlich ausgenullt. Z weist nur Nullen auf. Als P wird die Submatrix bezeichnet, in die die Spalten der Submatrix verschoben werden, die den Triangularisationsprozess behindern.
  • Prinzipiell wird zu Anfang der erfindungsgemäßen Verfahrens ein iterativer Decoder verwendet, um das lineare Gleichungssystem zu lösen. Wie im weiteren Verlauf der vorliegenden Anmeldung beschrieben, reicht die Verwendung des iterativen Decoders aus, um in einem Großteil der Fälle, die beschädigten oder verlorenen Daten wieder herzustellen. Das iterative Decodieren basiert auf dem sogenannten Message-Passing (MP) Algorithmus, bei dem keine Zeilenadditionen durchgeführt werden und der damit keine hohe Rechenintensität erfordert. In einem weiteren Decodierungsschritt wird ein Maximum-Likelihood-Decoder verwendet, wobei dieser Decodierungsschritt nur dann durchgeführt wird, wenn die Daten mit Hilfe des iterativen Decoders nicht ausreichend wieder hergestellt werden können. Einzelheiten zu diesem sogenannten Hybriddecoder werden in den folgenden Teilen der vorliegenden Anmeldung erläutert. Zunächst wird jedoch beschrieben, wie der Prozess des Maximum-Likelihood-Decoding und hier insbesondere der Triangularisationsprozess durch das sogenannten Pivoting verbessert werden kann.
  • Ziel des erfindungsgemäßen Verfahrens ist es, den Bereich der Parity-Check-Matrix H auf den das Gaußsche Eliminationsverfahren angewendet wird, so klein wie möglich zu halten, da dieses Verfahren aufgrund der notwendigen Zeilenadditionen für große Matrizen eine hohe Rechenleistung erfordert. Die Komplexität des Maximum-Likelihood-Verfahrens ist O(n3), wobei n die Blocklänge, das heißt die Anzahl der Spalten der Parity-Check-Matrix H ist. Wird nur auf einen kleinen Teil der Parity-Check-Matrix H das Gaußsche Eliminationsverfahren angewandt, so kann die erforderliche Rechenleistung erheblich reduziert werden. Hierzu wird die Submatrix A wie in 2 dargestellt, schrittweise vergrößert. Durch das bewusste Auswählen der Spalte oder der Spalten der Submatrix B, die in die Submatrix P verschoben werden, ist es möglich, die Submatrix A in eine Dreiecksform, beispielsweise in die untere Dreiecksform, zu bringen und gleichzeitig die Submatrix P so klein wie möglich zu halten, so dass der Rechenaufwand für das Gaußsche Eliminationsverfahren, das auf die Submatrix P angewandt wird, minimiert werden kann. Beispielsweise kann durch gezielte Spaltenwahl die Spaltengröße der Submatrix P auf die Hälfte bis ein Drittel reduziert werden, zum Beispiel von 90 auf etwa 30–40, was sich in der Ausführungsgeschwindigkeit des Decoders bemerkbar macht.
  • Bevor das Gaußsche Eliminationsverfahren auf die Submatrix P angewandt wird, wird die Submatrix A in die Diagonalform gebracht und die Submatrix D ausgenullt. Das Gaußsche Eliminationsverfahren muss somit nur auf den unteren Teil der Submatrix P, nämlich auf P1 angewandt werden. P1 ist dicht besetzt. Wenn die Gaußsche Elimination von P1 erfolgreich durchgeführt wurde, können die übrigen Unbekannten iterativ oder durch Rücksubstitution bestimmt werden. Das iterative Verfahren ist hierbei bevorzugt. Dieses wird auf die ursprüngliche Matrix angewendet, in dem die nunmehr ermittelten Unbekannten verwendet werden.
  • Eine Möglichkeit, die jeweiligen Spalten der Submatrix B bewusst auszuwählen, die in die Submatrix P verschoben werden, ist, diejenige Spalte zu wählen, die das höchste Gewicht aufweist. Bei mehreren Spalten mit gleichem Gewicht wird eine Spalte zufällig ausgewählt, die in die Submatrix P verschoben wird.
  • Alternativ ist es möglich, diejenige Spalte oder diejenigen Spalten der Submatrix B in die Submatrix P zu verschieben, die mit der Zeile mit dem niedrigsten Gewicht verbunden sind. Bei mehreren Zeilen mit dem gleichen niedrigsten Gewicht wird diejenige Zeile mit dem höchsten kumulativen Spaltengewicht ausgewählt und die mit ihr verbundenen Spalten der Submatrix B bis auf eine Spalte in die Submatrix P verschoben. Das kumulative Spaltengewicht einer Zeile ist definiert als die Summe der Gewichte aller mit dieser Zeile verbundenen Spalten. Hierbei kann diejenige Spalte, die nicht in die Submatrix P verschoben wird, beliebig gewählt werden. Bei mehreren Zeilen mit dem gleichen niedrigsten Gewicht und dem gleichen kumulativen Spaltengewicht kann eine Zeile zufällig ausgewählt und die mit ihr verbundenen Spalten bis auf eine in die Submatrix P verschoben werden.
  • Weiterhin ist es alternativ möglich, diejenige Spalte der Submatrix B in die Submatrix P zu verschieben, die mit der größten Anzahl an Zeilen mit einem Gewicht von zwei verbunden ist. Bei mehreren Spalten, die mit der gleichen Anzahl von Zeilen mit einem Gewicht von zwei verbunden sind, kann eine Spalte zufällig ausgewählt werden. Sofern die Prüfung nach Spalten, die mit Zeilen mit einem Gewicht von zwei verbunden sind, ergibt, dass keine solchen Spalten existieren wird die jenige Spalte der Submatrix B in die Submatrix P verschoben, die das höchste Gewicht aufweist, wobei bei mehreren Spalten mit gleichem Gewicht eine Spalte zufällig ausgewählt wird, die in die Submatrix P verschoben wird.
  • In einem weiteren Algorithmus ist es möglich, jedes mal wenn eine Spalte der Submatrix B den Triangularisationsprozess behindert, einen Tanner-Graph für die verbleibenden Variable Nodes der Submatrix B zu erstellen. In einem ersten Schritt senden im Tanner-Graph alle Variable Nodes ihren Grad an alle mit ihnen verbundenen Check Nodes. Der Grad eines Variable Nodes entspricht der Anzahl der mit ihm verbundenen Check Nodes. In einem weiteren Schritt wählt jeder Check Node aus den übermittelten Graden den niedrigsten aus und sendet ihn an alle mit ihm verbundenen Variable Nodes. Hierbei wird der Grad des jeweiligen variablen Nodes an den gesendet wird, bei der jeweiligen Auswahl des niedrigsten Grades unberücksichtigt gelassen, so dass einem variablen Node nie sein eigener Grad zurückgesendet wird. Dies bedeutet, dass demjenigen Variable Node mit dem niedrigsten Grad nicht sein eigener Grad sondern der Grad eines anderen Variable Nodes mit dem gleichen Grad oder der zweit niedrigste Grad eines anderen Variable Node übermittelt wird.
  • In einem weiteren Schritt addiert jeder Variable Node die von den mit dem jeweiligen Variable Node verbundenen Check Nodes empfangenen minimalen Grade und seinen eigenen Grad und sendet diese Summe an alle mit ihm verbundenen Check Nodes. Hierbei wird der minimale, das heißt der niedrigste Grad der von einem bestimmten Check Node empfangen wurde, bei der Bildung der Summe der minimalen Grade, die an diesen bestimmten Check Nodes zurückgesandt werden soll, nicht berücksichtigt. Dies bedeutet, dass jeder Check Node von jedem mit ihm verbundenen Variable Node eine Summe erhält, die den minimalen Grad, der von diesem Check Node an den jeweiligen Variable Node übermittelt wurde, nicht enthält.
  • Die bisher beschriebenen Verfahrensschritte werden n Mal wiederholt. Beispielsweise sind 10 Wiederholungen möglich. Anschließend wird der Variable Node mit der größten Summe an minimalen Graden und seinem eigenen Grad als Spalte bestimmt, die von der Submatrix B in die Submatrix P verschoben wird.
  • In einem weiteren alternativen Verfahren wird ebenfalls ein Tanner-Graph für die verbleibenden Variable Nodes der Submatrix B erstellt, wenn eine Spalte der Submatrix B den Triangularisationsprozess behindert. Anschließend werden die folgenden Schritte durchgeführt:
    Zunächst erfolgt ein Suchen von Variable Nodes, die durch Check Nodes mit einem Grad von 2 direkt miteinander verbunden sind. Diese Variable Nodes und die mit ihnen verbundenen Check Nodes mit einem Grad von 2 werden zu einem sogenannten Super Variable Node zusammengefasst. An dieser Stelle können Check Nodes identifiziert werden, die mehr als eine Verbindung zu einem Super Variable Node aufweisen. Dies bedeutet, dass ein deratiger Check Node zu mehreren Variable Nodes aus diesem Super Variable Node eine Verbindung aufweist. Da ein Super Variable Node dadurch definiert ist, dass sämtliche Variable Nodes bekannt sind, sobald ein Variable Node aus diesem Super Variable Node bekannt ist, können die Mehrfachverbindungen eines solchen Check Nodes zum Super Variable Node bis auf eine ignoriert werden. Somit kann der Grad dieses Check Nodes reduziert werden. Sofern außer den Verbindungen zu dem Super Variable Node nur eine zusätzliche Verbindung von diesem Check Node zu einem weiteren Variable Node besteht, entsteht hier ein Check Node mit einem Grad von 2.
  • Somit ist es möglich, weitere Check Nodes mit einem Grad von 2 zu kreieren, so dass möglicherweise weitere Variable Nodes oder Super Variable Nodes entstehen, die durch Check Nodes mit einem Grad von 2 direkt miteinander verbunden sind. Diese können zusammen mit den mit ihnen verbundenen Check Nodes mit einem Grad von 2 zu einem erweiterten Super Variable Node zusammengefasst werden, jedoch nur dann, wenn diese mindestens einen Key-Node besitzt. Die genannten Verfahrensschritte werden so lange wiederholt, bis keine Erweiterung des Super Variable Nodes mehr möglich ist. Im Folgenden werden die Begriffe „erweiterte SVN” und „SVN” als gleichwertig angesehen.
  • Schließlich wird derjenige Variable Node oder Super Variable Node mit dem höchsten Grad bestimmt. Handelt es sich dabei um eine Super Variable Node, so wird von der Submatrix B in die Submatrix P diejenige Spalte verschoben, die dem Key-Node der Super Variable Node entspricht. Handelt es sich bei dem Node mit dem höchsten Grad um eine einfache Variable Node, so wird die entsprechende Spalte von der Submatrix B in die Submatrix P verschoben.
  • Der Grad eines Super Variable Nodes ist als die Anzahl der abgehenden Verbindungen zu Check Nodes außerhalb dieses Super Variable Nodes definiert.
  • Vorraussetzung für das genannte Verfahren ist, dass für jeden Super Variable Node ein sogenannter Key-Node existieren muss, wobei ein Key-Node ein Variable Node ist, der Teil des Super Variable Nodes ist und der, wenn er bekannt ist, die Lösung des Super Variable Nodes ermöglicht. Ist also dieser Key-Node bekannt, beispielsweise durch einen später folgenden Gauß-Eliminationsschritt angewendet auf P1, so lassen sich alle anderen Variable Nodes der betreffenden Super Variable Node mit Hilfe eines Iterativen Decoding Schritts wiederherstellen.
  • Nach einer Verschiebung einer oder mehreren Spalten, die durch die genannten Verfahren ausgewählt wurde, von der Submatrix B in die Submatrix P kann der Triangularisationsprozess so lange fortgesetzt werden, bis erneut eine Spalte des Triangularisationsprozess behindert, so dass erneut eine oder mehrere Spalten von der Submatrix B in die Submatrix P verschoben werden müssen.
  • Der Triangularisationsprozess ist dadurch gekennzeichnet, dass der einzige Eintrag mit einem Wert von 1 einer Zeile mit einem Gewicht von 1 der Submatrix B durch Zeilen- und/oder Spaltenvertauschungen in die linke obere Ecke der Submatrix B verschoben wird und anschließend die Submatrix A der Matrix H, die sich bereits in Dreiecksform befindet, um eine Spalte und eine Zeile vergrößert wird, so dass die Submatrix B um die gleiche Zeile und Spalte verkleinert wird. Hierbei wird die Matrix in die untere Dreiecksform gebracht.
  • Im Folgenden wird die prinzipielle Arbeitsweise des Hybriddecoders, das heißt der Verbindung aus einem iterativen Decoder in einem ersten Decodierungsschritt und einem Maximum-Likelihood-Decoder in einem zweiten Decodierungsschritt erläutert.
  • Erfindungsgemäß wird in einem ersten Decodierungsschritt ein Iterativer Decoder verwendet. In einem zweiten Decodierungsschritt wird ein Maximum-Likelihood-Decoder verwendet, wobei der zweite Decodierungsschritt insbesondere ausschließlich dann durchgeführt wird, wenn die Daten mit Hilfe des Iterativen Decoders nicht ausreichend wiederhergestellt werden können.
  • Mit anderen Worten wird zunächst der erste Decodierungsschritt mit Hilfe des Iterativen Decoders durchgeführt. Sofern es gelingt, die verlorenen und/oder beschädigten Daten durch den Iterativen Decoder wiederherzustellen, werden die wiederhergestellten Daten ausgegeben. Sofern eine Wiederherstellung der Daten durch den Iterativen Decoder nicht vollständig gelingt es aber unbedingt gewünscht wird, wird der zweite Decodierungsschritt mittels des Maximum-Likelihood-Decoders eingeleitet. Hierdurch kann die Häufigkeit, in der der Maximum-Likelihood-Decoder verwendet wird, verringert werden. Betrachtet man beispielsweise die Performanceverläufe gemäß 9, die aus dem Stand der Technik bekannt sind und geht man weiterhin von einer Channel-Erasure-Rate ε von 0,4 aus, so ist der Iterative Decoder im Durchschnitt in 2% der Fälle nicht in der Lage, die beschädigten und/oder verlorenen Daten wiederherzustellen. Daher würde im dargestellten Beispiel der Maximum-Likelihood-Decoder nur in 2% der Fälle verwendet werden. Da der Iterative Decoder in den restlichen 98% der Fälle verwendet wird und seine Anwendung schneller und einfacher vonstatten geht, bietet das erfindungsgemäße Verfahren eine erhebliche Vereinfachung beim Wiederherstellen verlorener und/oder beschädigter Daten. Insbesondere kann es auch bei Empfangsvorrichtungen angewendet werden, die über einen leistungsschwächeren Prozessor verfügen, der beispielsweise nicht zu einer dauerhaften Durchführung des Maximum-Likelihood-Verfahrens geeignet ist. Gemäß dem Stand der Technik wäre es bei einem derartigen Prozessor bisher nur möglich, das Iterative Decodierungsverfahren anzuwenden, was zu einer Verschlechterung der Recovery-Rate führen würde. Durch das erfindungsgemäße Verfahren ist es auch bei leistungsschwächeren Prozessoren möglich, eine hohe Recovery-Rate zu erreichen. Erfindungsgemäß kann daher durch das vorgeschlagene Verfahren die Performance eines Maximum-Likelihood-Decoders mit einer weniger komplexen Anwendung erreicht werden.
  • Sowohl der Encoder, der mit der Sendevorrichtung verbunden ist, als auch der Decoder, der mit der Empfangsvorrichtung verbunden ist, können als Hardware oder Software ausgebildet sein. Insbesondere können der Encoder und/oder der Decoder als eine Software ausgebildet sein, die in der Sendevorrichtung und/oder der Empfangsvorrichtung implementiert ist.
  • Vorzugsweise findet das Codierung und Decodieren der Daten auf Packet-Level, d. h. im Network-Layer des OSI-Schichtenmodels statt.
  • Um die im zweiten Decodierungsschritt für den Maximum-Likelihood-Decoder benötigte Rechenleistung zu verringern, wird eine LDPC-Matrix im Decoder verwendet. Dies führt einerseits zwar zu einer schlechteren Recovery-Rate, ermöglicht andererseits aber ein schnelleres und weniger rechenintensives Decodierungsverfahren. Die Datenpakete, die weder durch den Iterativen Decoder noch durch den Maximum-Likelihood-Decoder wiederhergestellt werden konnten, werden als nicht korrekt übermittelt betrachtet, so dass ihre erneute Übermittlung durch die Sendevorrichtung veranlasst werden kann.
  • Vorzugsweise erfolgt zum Verringern der Komplexität des Maximum-Likelihood-Decoders die Definition eines Abbruchparameters, wobei die Berechnungen zur Wiederherstellung verlorener und/oder beschädigter Daten durch die Maximum-Likelihood-Decoder abgebrochen werden, falls der Wert alpha in der strukturierten Gauß-Elimination, die durch den Maximum-Likelihood-Decoder durchgeführt wird, die Größe des gewählten Abbruchparameters überschreitet. Der Abbruchparameter definiert vorzugsweise eine Obergrenze für die Größe der verwendeten Matrix, auf die das Gaußsche Eliminationsverfahren angewandt wird.
  • Prinzipiell kann ein Maximum-Likelihood-Decoder zur Verwendung mit Low-Density-Parity-Check-Codes auf intelligenten, effizienten Gauß-Eliminationsmethoden im Binärfeld basieren, wie sie beispielsweise in „D. Burshtein und G. Miller, „An efficient maximum likelihood decoding of LDPC codes over the binary erasure channel", IEEE Transactions on Information Therory, volume 50, no. 11, pp. 2837–2844, November 2004" oder „E. Paolini, G. Liva, M. Balazs und M. Chiani, „Generalized IRA Erasure Correcting Codes for Maximum Likelihood Decoding" submitted to IEEE Communication Letters 2008" beschrieben sind. Vorzugsweise wird die sogenannte strukturierte Gauß-Elimination verwendet. Weitere Details zur Definition des Abbruchparameters sind in der Figurenbeschreibung in Zusammenhang mit 3 der vorliegenden Anmeldung dargestellt.
  • Vorzugsweise werden die Berechnungen zur Wiederherstellung verlorener und/oder beschädigter Daten durch den Maximum-Likelihood-Decoder abgebrochen, falls der Wert alpha in der strukturierten Gauß-Elimination, die durch den Maximum-Likelihood-Decoder durchgeführt wird, die Größe des gewählten Abbruchparameters überschreitet. Der Wert alpha in der strukturierten Gauß-Elimination wird ebenfalls im Zusammenhang mit 10 in der Figurenbeschreibung der vorliegenden Anmeldung näher beschrieben.
  • Die Größe des Abbruchparameters kann durch einen Anwender der Empfangsvorrichtung, anhand der verfügbaren Rechenleistung der Empfangsvorrichtung, anhand der aktuellen Belastung eines Prozessors der Empfangsvorrichtung, anhand eines gewünschten Quality of Service und/oder anhand der verfügbaren Kapazität eines Energiespeichers der Empfangsvorrichtung gewählt werden. So ist es beispielsweise möglich, durch eine Erhöhung des Abbruchparameters eine Verbesserung der Recovery-Rate zu erreichen. Hierdurch ist eine Verbesserung des Quality of Service möglich. Wird dagegen der Abbruchparameter verringert, so kann beispielsweise die aktuelle Belastung eines Prozessors der Empfangsvorrichtung oder der Stromverbrauch der Empfangsvorrichtung verringert werden.
  • Somit wird durch die Definition des genannten Abbruchparameters ein zusätzlicher Freiheitsgrad geschaffen, durch den es möglich wird, den Decoder der Empfangsvorrichtung an vorhandene Randbedingungen anzupassen und damit benutzerfreundlicher und/oder zuverlässiger zu gestalten.
  • Vorzugsweise erfolgt bei einem Abbruch der Berechnung der Wiederherstellung der verlorenen und/oder beschädigten Daten durch den Maximum-Likelihood-Decoder nur ein Ausgeben der korrekt übertragenen und/oder wiederhergestellten Daten durch den Decoder. Ferner kann durch den Decoder eine Fehlermeldung erzeugt werden. Eine Fehlermeldung bedeutet insbesondere, dass die nicht wiederhergestellten Daten oder Datenpakete als vermisst gemeldet werden, so dass eine erneute Übermittlung angestoßen wird.
  • Eine unabhängige Erfindung betrifft die Verwendung eines Verfahrens, insbesondere wie es in der vorliegenden Anmeldung beschrieben ist, zur kabellosen oder kabelgebundenen Datenübertragung zwischen einer Sendevorrichtung und einer Empfangsvorrichtung.
  • Im Folgenden werden bevorzugte Ausführungsformen der Erfindung anhand von Figuren erläutert.
  • Es zeigen:
  • 1 einen Ablaufplan der Datenübertragung zwischen einer Sendevorrichtung und einer Empfangsvorrichtung wie sie auch im erfindungsgemäßen Verfahren stattfinden kann,
  • 2 die Parity-Check-Matrix H während des Triangularisationsprozesses (linke Seite) und nach dem Pivotisieren (rechte Seite),
  • 3 u. 4 die Pivotgröße α, die die Blocklänge der Submatrix P darstellt in Abhängigkeit von verschiedenen Overheads,
  • 5 eine Darstellung der Super Variable Nodes des fünften erfindungsgemäßen Algorithmus,
  • 6 eine Darstellung der Pivotgröße α, die die Blocklänge der Submatrix P darstellt, in Abhängigkeit vom Overhead für den fünften erfindungsgemäßen Algorithmus,
  • 7 die Codeword-Error-Rate (CER) in Abhängigkeit von der Channel-Erasure-Rate ε mit dem ersten der erfindungsgemäßen Algorithmen
  • 8 eine Darstellung der erreichbaren Geschwindigkeit mit dem ersten der erfindungsgemäßen Algorithmen,
  • 9 eine graphische Darstellung der Codeword-Error-Rate in Abhängigkeit von der Channel-Erasure-Rate gemäß dem Stand der Technik,
  • 10a10c eine Darstellung der Berechnungen zur strukturierten Gauß-Elimination,
  • 11 eine graphische Darstellung der Codeword-Error-Rate in Abhängigkeit von der Channel-Erasure-Rate mit verschiedenen Abbruchparametern α gemäß einer möglichen Ausführungsform der Erfindung,
  • 12 eine schematische Darstellung einer Sende- und Empfangsvorrichtung zur Durchführung des erfindungsgemäßen Verfahrens, und
  • 13 ein Vergleich der Performance eines Iterativen und eines ML-Decoders.
  • Aus 2 geht, wie bereits beschrieben, hervor, auf welche Weise die Submatrix A vergrößert wird, indem Spalten der Submatrix B in die Submatrix P verschoben werden. Die rechte Seite der 2 stellt die Matrix H dar, nachdem die Submatrix D ausgenullt wurde, so dass das Gaußsche Eliminationsverfahren nur noch auf die Submatrix P1 angewandt werden muss.
  • Die 3 und 4 stellen die Pivotgröße α, nämlich die Blocklänge der Submatrix P, das heißt die Anzahl der Spalten, die verschoben wurden, in Abhängigkeit vom Overhead dar. Der Overhead ist hierbei abhängig von der Channel-Erasure-Rate. Es wurde die durchschnittliche Pivotgröße α für verschiedene Overheads bei hundert unterschiedlichen Versuchen simuliert. Hierbei wurde ein Iregular Repeat Accumulate (IRA) (2048, 1024) Code verwendet. Im besten Fall kann ein derartiger Code 1024 Auslöschungen tolerieren. Daher kann der Overhead ausgedrückt werden als Overhead = 1024 – tatsächliche Anzahl von Auslöschungen im Codeword.
  • Die Simulationsergebnisse für die ersten vier erfindungsgemäßen Algorithmen sind in 3 dargestellt, wobei der obere Verlauf ein Verfahren darstellt, bei dem Spalten beliebig, das heißt zufällig in die Submatrix P verschoben wurden. Aus Gründen der Übersichtlichkeit wurden in 4 die ersten vier erfindungsgemäßen Algorithmen noch einmal gesondert auf einer anderen Skala dargestellt. Für alle Algorithmen ist erkennbar, dass α mit steigendem Overhead kleiner wird. Dies liegt teilweise daran, dass HTK , nämlich die Matrix, die dem ML-Decoder übergeben wird, kleiner wird, da zahlreiche Gleichungen bereits gelöst wurden. Wichtiger jedoch ist die Tatsache, dass der Triangularisationsprozess nicht so häufig behindert wird, da die Zeilengewichte in der Submatrix B mit größeren Overheads kleiner werden.
  • Vergleicht man die vier verschiedenen Algorithmen in 4 ist festzustellen, dass sie eine ähnliche Performance erzielen. Für schnelle Anwendungen ist Algorithmus 1 aufgrund seiner Einfachheit am geeignetsten. Um ein kleinstmögliches α zu erlangen, wird vorgeschlagen, Algorithmus 4 zu verwenden. Für alle Algorithmen ist ein großer Unterschied zum Verfahren aus dem Stand der Technik (Random Pivoting aus 3) erkennbar. Hierbei muss festgehalten werden, dass die Komplexität des Gaußschen Eliminationsverfahrens kubisch mit der Blocklänge α ansteigt.
  • Der vierte erfindungsgemäße Algorithmus kann mathematisch wie folgt dargestellt werden: jeder Variable Node übermittelt eine Nachricht zu den verbundenen Check Nodes, wobei die Nachricht berechnet wird als:
    Figure 00180001
    wobei mI→J die Nachricht beschreibt, die von einem bestimmten Variable Node I zu dem Check Node J übermittelt wird. mI←J ist die Nachricht von einem beliebigen Check Node j zu dem Variable Node I und M' ist die Anzahl aller ungelöste Check Nodes in der Submatrix B. Zusammengefasst ist die Nachricht eines Variable Nodes I zu einem Check Node J zusammengesetzt aus dem Grad des Variable Nodes und der Summe aller ankommenden Nachrichten (mI←j), außer der Nachricht von dem Check Node J. Zu Beginn sind alle eingehenden Nachrichten = 0.
  • Jeder Check Node übermittelt Nachrichten zu den verbundenen Variable Nodes gemäß:
    Figure 00180002
  • Hier stellt mI<-J die Nachricht vom Check Node J zum Variable Node I dar und N' die Anzahl der ungelösten Variable Nodes in der Submatrix B. mi->J stellt die Nachricht von einem beliebigen Variable Node i zum Check Node J dar. Schließlich übermittelt Check Node J nur die Nachricht mit dem kleinsten Wert zum Variable Node I ohne dass die Nachricht, die vom Variable Node I empfangen wurde, berücksichtigt wird. Anschließend wird für jeden Variable Node ein Wert berechnet, der sich zusammensetzt aus der Summe aller Nachrichten und dem Grad dieses Nods und der variable Node mit dem höchsten Wert wird der Liste der Pivots, nämlich der Submatrix P hinzugefügt. Es muss beachtet werden, dass eine größere Anzahl an Iterationen zu besseren Ergebnissen führt, jedoch auch mehr Zeit erfordert. Für die Simulation in den 3 und 4 wurden zehn Iterationen durchgeführt.
  • Im Folgenden wird der fünfte erfindungsgemäße Algorithmus nochmals kurz erläutert.
  • Vor der detaillierten Beschreibung der neuen Pivotisierungsstrategie sollen einige Definitionen eingeführt werden. Im Folgenden wird nicht länger auf Reihen und Spalten Bezug genommen, sondern es wird die graphische Wiedergabe des Codes zugrundegelegt. Hier entspricht jede Reihe einem Check Node (CN), und jede Spalte entspricht einem Variable Node (VN). Ein CN(i) ist mit VN(j) verbunden und umgekehrt, falls der entsprechende Eintrag H(i, j) in der Parity-Check-Matrix des Codes den Wert Eins hat. Der Grad eines CN (VN) ist die Anzahl verbundener VNs (CNs) und entspricht somit den zuvor eingeführten Reihen-(Spalten-)Gewichtungen. Ein Super Variable Node (SVN) ist ein Variable Node, der aus mehreren Check Nodes und Variable Nodes besteht. Er ist derart ausgebildet, dass, er mindestens eine spezielle VN, die als Key-Node bezeichnet wird, beinhalten muss. Ist diese Key-Node in dem SVN bekannt, können sämtliche anderen VNs in dem SVN einfach durch iterative Decodierung gewonnen werden können. In einem Tanner Graphen, welche anfänglich nur aus CNs und VNs besteht, können Super Variable Nodes wie folgt generiert werden:
    • 1. Es wird ein Check Node zweiten Grades gewählt, der nicht Teil eines SVN ist; falls keiner existiert, kann kein SVN generiert werden, und der Algorithmus ist beendet.
    • 2. Der gewählte Check Node zweiten Grades und beide verbundenen VNs oder SVNs werden zu einer als SVN bezeichneten Einheit zusammengefasst. In dem zweiteiligen Schaubild kommt dem SVN die Rolle eines (hochgradigen) VN zu (vgl. 5 unten). Dabei ist zu beachten, dass jede SVN mindestens einen Key-Node besitzen muss.
    • 3. Falls weitere Check Nodes zweiten Grades mit dem SVN verbunden sind, werden diese und die verbundenen VNs oder SVNs dem SVN hinzugefügt. Dabei ist zu beachten, dass jede SVN mindestens einen Key-Node besitzen muss.
    • 4. Falls Mehrfachverbindungen existieren, werden sämtliche Mehrfachverbindungen mit Ausnahme eines einzigen zwischen dem SVN und den verbundenen CNs ignoriert, und der Grad der betreffenden CNs wird um deren Anzahl reduziert.
    • 5. Die Schritte 3 und 4 werden wiederholt (Dies ist die sogenannte Wachstumsphase), bis keine weiteren Zusammenschlüsse mehr möglich sind.
    • 6. Es erfolgt eine Rückkehr zu Schritt 1, um weitere SVNs zu identifizieren.
  • Der oben aufgeführte Algorithmus wurde unter Verwendung verschiedener LDPC-Codes getestet. Üblicherweise bleiben nach dem ersten iterativen Dekodierungs-Schritt zahlreiche ungelöste Gleichungen zweiten Grades übrig, so dass mehrere SVNs generiert werden können. Da die Kenntnis eines VN in einem SVN ausreicht, um sämtliche anderen VNs in diesem Super Node zu gewinnen, ist es sinnvoll, diese als eine Einheit zu betrachten. Eine weitere Eigentümlichkeit der hier erörterten LDPC-Codes besteht in den Loops in dem Schaubild des Codes, die auch als Girth bezeichnet werden. Dies ist der Grund dafür, dass mehrere Verbindungen zwischen einem CN und einem SVN auftreten. Würde man diese entfernen, könnten zusätzliche Gleichungen zweiten Grades generiert werden, so dass das SVN weiter wachsen könnte. Durch das Ignorieren von Mehrfachverbindungen nehmen nicht nur Gleichungen, die ursprünglich zweiten Grades sind, sondern auch Gleichungen höheren Grades an der Generierung eines SVN teil. Selbstverständlich sind die Anzahl von SVNs und die Größe, d. h. die Anzahl der innen befindlichen VNs, klar von der Code-Konzeption abhängig.
  • 5 zeigt die vereinfachte Graph-Struktur eines LDPC-Codes, der SVNs enthält. Check Nodes sind durch Quadrate, Variable Nodes durch Kreise und Super Variable Nodes durch konzentrische Kreise dargestellt. Es ist offensichtlich, dass SVNs üblicherweise höhere Grade aufweisen, da sie aus mehreren VNs gebildet sind. Zu beachten ist, dass der Grad eines SVN durch die Anzahl ausgehender Verbindungen bestimmt ist, d. h. Verbindungen zu CNs, die keine Mitglieder des SVN sind. Sämtliche Verbindungen zu CNs innerhalb des Super Node werden beim Berechnen des Grads nicht einbezogen. Ein Einblick in die innere Struktur eines SVN wird im unteren Teil von 5 gegeben.
  • Nach dem Erzeugen der SVNs soll eine Pivotisierungsstrategie auf dieses vereinfachte Schaubild angewandt werden.
    • 1. Falls die Triangulierung nicht fortgesetzt werden kann, wird das SVN oder VN mit dem höchsten Grad eliminiert. Bei der Eliminierung einer SVN wird immer nur die zur Key-Node gehörige Spalte entfernt. Ansonsten wird hier kein weiterer Unterschied zwischen SVNs und VNs gemacht wird. Ein SVN entspricht einfach einem VN eines (hohen) Grads. Als Konsequenz ist nur der Grad des Node und nicht der Typ (VN oder SVN) von Bedeutung.
    • 2. Im Fall mehrerer Nodes (SVNs, VNs) gleichen Grades kann nach Belieben einer von ihnen gewählt werden.
  • 6 stellt die Größe der Blocklänge α in Abhängigkeit von verschiedenen Overheads dar. Hierbei sind die erfindungsgemäßen Algorithmen 1 und 4 sowie der erfindungsgemäße Algorithmus fünf, der gerade beschrieben wurde, dargestellt. Als Algorithmus sechs ist ein aus dem Stand der Technik bekannter Algorithmus dargestellt.
  • In 7 ist die Codeword-Error-Rate eines Maximum-Likelihood-Decoders, in dem einer der erfindungsgemäßen Algorithmen implementiert wurde, im Vergleich zu einem iterativen Decoder dargestellt. Es ist erkennbar, dass es sinnvoll ist, den Maximum-Likelihood-Decoder zu verwenden, wenn ε zwischen 0,4 bis etwas unter 0,5 liegt. Bei Werten von ε kleiner als 0,4 kann der iterative Decoder eingesetzt werden. Die hierbei erzielbaren Geschwindigkeiten sind in 8 dargestellt, wobei erkennbar ist, dass der iterative Decoder für Werte ε größer als 0,43 sehr hohe Geschwindigkeiten erzielt, was daran liegt, dass der iterative Decoder die einen Großteil Daten nicht wieder herstellen kann. In 8 ist erkennbar, dass für Werte von ε kleiner als 0,43 auch im hybriden Decoder lediglich der iterative Decoder verwendet wird, da dieser die verlorengegangenen Daten in fast allen Fällen wieder herstellen kann. Der Maximum-Likelihood-Decoder wird praktisch nur bei größeren Channel-Erasure-Rates angewandt.
  • 10 stellt den prinzipiellen Ablauf einer Gauß-Elimination dar. U stellt eine Untermatrix von H dar und wird ausgebildet durch die Spalten von H, die sich an den Stellen verlorener und/oder beschädigter Datenpakete befinden. Zur Vereinfachung wurde in 10 angenommen, dass die gelöschten Pakete alle benachbart, d. h. zusammenhängend und am Ende des Packet-Level-Codewords angeordnet sind. Um das Gleichungssystem zu lösen, muss U in die Diagonalform gebracht werden. Dies ist möglich, wenn U die größtmögliche Anzahl unabhängiger Zeilen und Spalten aufweist, das heißt, dass das Rand U der Anzahl der gelöschten Pakete entspricht (Full-Rank-Kriterium).
  • Die strukturierte Gauß-Elimination erfolgt folgendermaßen: Zunächst wird U in eine annähernd dreieckige Form gebracht. Dies erfolgt durch einfache Permutationen der Zeilen/Spalten (10a). In einem zweiten Schritt wird die Matrix B in 10a durch Zeilensummen gleich Null gesetzt, so dass eine Struktur gemäß 10b entsteht. Die genannten ersten zwei Schritte ergeben eine Komplexität von O(u2), wobei u die Größe der gelöschten Bitmuster darstellt.
  • In einem dritten Schritt wird eine „Brute-Force-Gauß-Elimination” auf die Matrix A' in 10b angewandt. Dies führt zu der Identitätsmatrix I. Der dritte Schritt hat eine Komplexität von O(alpha3), wobei alpha die Anzahl der Spalten der Matrix A' darstellt.
  • Es ist ersichtlich, dass das Gleichungssystem durch die Matrix im rechten Teil der 10c dargestellt ist, durch Rücksubstitution lösbar ist. Das beschriebene Verfahren ist ausschließlich dann anwendbar, wenn U das Kriterium „Full Rank” erfüllt.
  • Die Komplexität eines derartigen Decoders wird bereits für mittlere Blocklängen durch die Größe von alpha bestimmt. Die Komplexität des Iterativen Decoders ist linear, bietet aber eine verringerte Decodierleistung.
  • Da für viele Anwendungen, wie beispielsweise Audio- oder Videostreaming auf mobilen Endgeräten die Prozessorleistung nicht für ein dauerhaftes Maximum-Likelihood-Decoding ausreicht, kann durch das erfindungsgemäße Verfahren dennoch eine verbesserte Datenübertragung auf die genannte Geräte erfolgen. Neben der Verwendung des Iterativen Decoders im ersten Decodierungsschritt und die Verwendung des Maximum-Likelihood-Decoders im zweiten Decodierungsschritt, sofern der erste Decodierungsschritt nicht erfolgreich war, bietet die Veränderung des Parameters a weitere Anpassungsmöglichkeiten. Dieser Parameter definiert vorzugsweise die Obergrenze der Größe der Matrix A'. Die Komplexität des dargestellten Maximum-Likelihood-Algorithmus wird durch alpha nämlich der Anzahl von Spalten der Matrix A' bestimmt. Alpha hängt hauptsächlich von der Channel-Erasure-Rate ε ab, d. h. je höher die Wahrscheinlichkeit einer Löschung von Daten auf dem Kanal ist, desto höher ist alpha. Für geringe Channel-Erasure-Wahrscheinlichkeiten kann alpha den Wert null annehmen.
  • Die Anpassung der Komplexität des Maximum-Likelihood-Decoders erfolgt dadurch, dass sofern, nachdem U gemäß 10a in die Dreieckform gebracht wurde, alpha den Wert des Parameters a übersteigt, der Decoder eine Fehlermeldung ausgibt und ausschließlich die korrekt übertragenen und/oder wiederhergestellten Datenpakete ausgibt. Allein schon durch die Verwendung eines Iterativen Decoders und die anschließende Verwendung eines Maximum-Likelihood-Decoders, sofern eine Wiederherstellung der Daten durch den Iterativen Decoder nicht gelingt, erreicht die Leistungsfähigkeit eines Maximum-Likelihood-Decoders, jedoch mit einer geringeren Komplexität. Durch die anschließende Anpassung des Parameters a kann die Komplexität des Decoders weiterhin reduziert werden, dadurch, dass eine Obergrenze für die Größe der Matrix definiert wird, auf die die Gauß-Elimination angewandt ist. Hierdurch wird der Maximum-Likelihood-Decoder bereits zu einem frühen Zeitpunkt gestoppt. Durch den genannten Schritt, nämlich die Anpassung des Parameters a, erfolgt ein Verschieben der Leistungsfähigkeit des Decoders. Je größer a. ist, desto näher wird die Komplexität und die Performance des Decoders am Maximum-Likelihood-Verfahren sein. Je niedriger a ist, desto näher wird die Komplexität und die Performance des Decoders am Iterativen Verfahren sein.
  • In 11 ist die Codeword-Error-Rate in Abhängigkeit von ε für verschiedene Werte des Parameters a dargestellt. Die verwendeten Werte sind a = 0 (entspricht einer ausschließlichen Verwendung des Iterativen Decoders), a = 4, a = 8, a = 16, a = 24, a = 32 und a = ∞ (entspricht der Verwendung des Maximum-Likelihood-Decoders ohne Einschränkungen). Hierdurch kann ein fließender Übergang der Performance zwischen der ausschließlichen Verwendung eines Iterativen Decoders und der ausschließlichen Verwendung eines Maximum-Likelihood-Decoders erreicht werden. Beispielsweise ist die Komplexität einer Anwendung der Gauß-Elimination auf eine 8×8-Matrix, 8:43 = 23 = 8 Mal größer als die Komplexität der Anwendung einer Gauß-Elimination auf eine 4×4-Matrix.
  • 12 stellt schematisch eine Sendevorrichtung 10 und eine Empfangsvorrichtung 12 dar, wobei über die Übertragungsvorrichtung 18, die beispielsweise eine UMTS-Verbindung ist, Daten von der Sendevorrichtung 10 an die Empfangsvorrichtung 12 übermittelt werden. Auf der Sendeseite erfolgt ein Codieren der Daten durch den mit der Sendevorrichtung 10 verbundenen Encoder 14. Die übertragenen Daten werden empfangsseitig durch den mit der Empfangsvorrichtung 12 verbundenen Decoder decodiert. Hierbei wird das Low-Density-Parity-Check-Verfahren verwendet, so dass beim Decodieren verlorene und/oder beschädigte Daten wiederhergestellt werden. In einem ersten Decodierungsschritt wird der Iterative Decoder 16a verwendet. Sofern eine Wiederherstellung der Daten durch den Iterativen Decoder 16a nicht erfolgreich ist, wird in einem zweiten Decodierungsschritt der Maximum-Likelihood-Decoder 16b verwendet. Die Empfangsvorrichtung kann einen Prozessor 22 und/oder einen Energiespeicher 20, wie beispielsweise einen Akku aufweisen und als mobile Empfangsvorrichtung 12 ausgebildet sein.
  • 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 Nicht-Patentliteratur
    • - „D. Burshtein und G. Miller, „An efficient maximum likelihood decoding of LDPC codes over the binary erasure channel”, IEEE Transactions on Information Therory, volume 50, no. 11, pp. 2837–2844, November 2004” [0040]
    • - „E. Paolini, G. Liva, M. Balazs und M. Chiani, „Generalized IRA Erasure Correcting Codes for Maximum Likelihood Decoding” submitted to IEEE Communication Letters 2008” [0040]

Claims (18)

  1. Verfahren zum Wiederherstellen verlorener und/oder beschädigter Daten, die von einer Sendevorrichtung (10) an eine Empfangsvorrichtung (12) übertragen wurden, mit den Schritten: Codieren der Daten durch einen mit der Sendevorrichtung (10) verbundenen Encoder (14), Übertragen der Daten von der Sendevorrichtung (10) an die Empfangsvorrichtung (12) über eine Übertragungsvorrichtung (18), und Decodieren der Daten durch einen mit der Empfangsvorrichtung (12) verbundenen Decoder (16) unter Verwendung eines Low-Density-Parity-Check-Verfahrens, wobei beim Decodieren verlorene und/oder beschädigte Daten wiederhergestellt werden, wobei das Decodieren durch das Lösen des Gleichungssystems der Parity-Check-Matrix (H) erfolgt, wobei die Parity-Check-Matrix (H) durch Spalten- und/oder Zeilenvertauschungen in eine Dreiecksform gebracht wird und Spalten einer Submatrix (B) der Matrix (H), die den Triangularisationsprozess behindern in eine Submatrix (P) der Matrix (H) verschoben werden, so dass der Triangularisationsprozess fortgeführt werden kann, bis die Matrix (H) außer der Submatrix (P) vollständig in eine Dreiecksform gebracht wurde, wobei auf einem Teil P1 der Submatrix (P) das Gaußsche-Eliminationsverfahren angewendet wird, dadurch gekennzeichnet, dass die Auswahl der Spalte oder der Spalten der Submatrix (B), die in die Submatrix (P) verschoben werden, basierend auf dem Gewicht der Spalte, das der Anzahl der Nicht-Null-Stellen in der Spalte entspricht und/oder dem Gewicht der mit der Spalte verbundenen Zeilen der Submatrix (B) erfolgt.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass eine Spalte (j) mit einer Zeile (i) der Matrix (H) verbunden ist, wenn der i-te Eintrag dieser Spalte j1 ist.
  3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass diejenige Spalte der Submatrix (B) in die Submatrix (P) verschoben wird, die das höchste Gewicht aufweist.
  4. Verfahren nach Anspruch 3, dadurch gekennzeichnet, dass bei mehreren Spalten mit gleichem Gewicht eine Spalte zufällig ausgewählt wird, die in die Submatrix (P) verschoben wird.
  5. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass diejenige Spalte oder diejenigen Spalten der Submatrix (B) in die Submatrix (P) verschoben werden, die mit der Zeile mit dem niedrigsten Gewicht verbunden sind.
  6. Verfahren nach Anspruch 5, dadurch gekennzeichnet, dass bei mehreren Zeilen mit dem gleichen niedrigsten Gewicht, diejenige Zeile mit dem höchsten kumulativen Spaltengewicht ausgewählt und die mit ihr verbundenen Spalten der Submatrix (B) bis auf eine Spalte in die Submatrix (P) verschoben werden, wobei das kumulative Spaltengewicht einer Zeile definiert ist als die Summe der Gewichte aller mit dieser Zeile verbundenen Spalten.
  7. Verfahren nach Anspruch 6, dadurch gekennzeichnet, dass diejenige Spalte, die nicht in die Submatrix (P) verschoben wird, beliebig gewählt wird.
  8. Verfahren nach einem der Ansprüche 5 bis 7, dadurch gekennzeichnet, dass bei mehreren Zeilen mit dem gleichen niedrigsten Gewicht und dem gleichen kumulativen Spaltengewicht eine Zeile zufällig ausgewählt wird und die mit ihr verbundenen Spalten bis auf eine Spalte in die Submatrix (P) verschoben werden.
  9. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass diejenige Spalte der Submatrix (B) in die Submatrix (P) verschoben wird, die mit der größten Anzahl an Zeilen mit einem Gewicht von zwei verbunden ist.
  10. Verfahren nach Anspruch 9, dadurch gekennzeichnet, dass bei mehreren Spalten, die mit der gleichen Anzahl von Zeilen mit einem Gewicht von zwei verbunden sind, eine Spalte zufällig ausgewählt wird und in die Submatrix (P) verschoben wird.
  11. Verfahren nach Anspruch 9 oder 10, dadurch gekennzeichnet, dass, sofern die Prüfung nach Spalten, die mit Zeilen mit einem Gewicht von zwei verbunden sind, ergibt, dass keine solchen Spalten existieren, diejenige Spalte der Submatrix (B) in die Submatrix (P) verschoben wird, die das höchste Gewicht aufweist, wobei bei mehreren Spalten mit gleichem Gewicht eine Spalte zufällig ausgewählt wird, die in die Submatrix (P) verschoben wird.
  12. Verfahren zum Wiederherstellen verlorener und/oder beschädigter Daten, die von einer Sendevorrichtung (10) an eine Empfangsvorrichtung (12) übertragen wurden, mit den Schritten: Codieren der Daten durch einen mit der Sendevorrichtung (10) verbundenen Encoder (14), Übertragen der Daten von der Sendevorrichtung (10) an die Empfangsvorrichtung (12) über eine Übertragungsvorrichtung (18), und Decodieren der Daten durch einen mit der Empfangsvorrichtung (12) verbundenen Decoder (16) unter Verwendung eines Low-Density-Parity-Check-Verfahrens, wobei beim Decodieren verlorene und/oder beschädigte Daten wiederhergestellt werden, wobei das Decodieren durch das Lösen des Gleichungssystems der Parity-Check-Matrix (H) erfolgt, wobei die Parity-Check-Matrix (H) durch Spalten- und/oder Zeilenvertauschungen in eine Dreiecksform gebracht wird und Spalten einer Submatrix (B) der Matrix (H), die den Triangularisationsprozess behindern in eine Submatrix (P) der Matrix (H) verschoben werden, so dass der Triangularisationsprozess fortgeführt werden kann, bis die Matrix (H) außer der Submatrix (P) vollständig in eine Dreiecksform gebracht wurde, wobei auf einem Teil P1 der Submatrix (P) das Gaußsche-Eliminationsverfahren angewendet wird, dadurch gekennzeichnet, dass jedes Mal, wenn eine Spalte der Submatrix (B) den Triangularisationsprozess behindert, ein Tanner-Graph für die verbleibenden Variable Nodes der Submatrix (B) erstellt wird, wobei a) im Tanner-Graph alle Variable Nodes ihren Grad, nämlich die Anzahl der mit ihnen verbundenen Check Nodes an alle mit ihnen verbundenen Check Nodes senden, b) jeder Check Node aus den übermittelten Graden den niedrigsten auswählt und an alle mit ihm verbundenen Variable Nodes sendet, wobei der Grad des jeweiligen Variable Nodes, an den gesendet wird, bei der jeweiligen Auswahl des niedrigsten Grads unberücksichtigt bleibt, so dass einem Variable Node nie sein eigener Grad zurückgesendet wird, c) jeder Variable Node die von den mit dem jeweiligen Variable Node verbundenen Check Nodes empfangenen minimalen Grade und seinen eigenen Grad addiert und diese Summe an alle mit ihm verbundenen Check Nodes sendet, wobei der minimale Grad, der von einem bestimmten Check Node empfangen wurde, bei der Bildung der Summe der minimalen Grade, die an diesen Check Node zurückgesandt werden soll, unberücksichtigt bleibt, wobei die Verfahrensschritte a) bis c) n-mal wiederholt werden und derjenige Variable Node mit der größten Summe an minimalen Graden und seinem eigenen Grad als Spalte bestimmt wird, die von der Submatrix (B) in die Submatrix (P) verschoben wird.
  13. Verfahren zum Wiederherstellen verlorener und/oder beschädigter Daten, die von einer Sendevorrichtung (10) an eine Empfangsvorrichtung (12) übertragen wurden, mit den Schritten: Codieren der Daten durch einen mit der Sendevorrichtung (10) verbundenen Encoder (14), Übertragen der Daten von der Sendevorrichtung (10) an die Empfangsvorrichtung (12) über eine Übertragungsvorrichtung (18), und Decodieren der Daten durch einen mit der Empfangsvorrichtung (12) verbundenen Decoder (16) unter Verwendung eines Low-Density-Parity-Check-Verfahrens, wobei beim Decodieren verlorene und/oder beschädigte Daten wiederhergestellt werden, wobei das Decodieren durch das Lösen des Gleichungssystems der Parity-Check-Matrix (H) erfolgt, wobei die Parity-Check-Matrix (H) durch Spalten- und/oder Zeilenvertauschungen in eine Dreiecksform gebracht wird und Spalten einer Submatrix (B) der Matrix (H), die den Triangularisationsprozess behindern in eine Submatrix (P) der Matrix (H) verschoben werden, so dass der Triangularisationsprozess fortgeführt werden kann, bis die Matrix (H) außer der Submatrix (P) vollständig in eine Dreiecksform gebracht wurde, wobei auf einem Teil P1 der Submatrix (P) das Gaußsche-Eliminationsverfahren angewendet wird, dadurch gekennzeichnet, dass jedes Mal, wenn eine Spalte der Submatrix (B) den Triangularisationsprozess behindert, ein Tanner-Graph für die verbleibenden Variable Nodes der Submatrix (B) erstellt wird, mit folgenden zusätzlichen Schritten: a) Suchen von Variable Nodes, die durch Check Nodes mit einem Grad von 2 direkt miteinander verbunden sind, b) Zusammenfassen dieser Variable Nodes und der mit ihnen verbundenen Check Nodes mit einem Grad von 2 zu einem Super Variable Node, c) Suchen nach Check Nodes, die mehr als eine Verbindung zu einem Super Variable Node aufweisen, wobei bei solchen Check Nodes die Mehrfachverbindungen zum Super Variable Node bis auf eine ignoriert werden, so dass der Grad dieses Check Nodes reduziert wird d) Suchen von Variable Nodes oder Super Variable Nodes, die durch Check Nodes mit einem Grad von 2 direkt miteinander verbunden sind, e) Zusammenfassen dieser Variable Nodes und Super Variable Nodes und der mit ihnen verbundenen Check Nodes mit einem Grad von 2 zu einem erweiterten Super Variable Node, wenn diese mindestens einen key node bestitzt f) Wiederholen der Schritte c) bis e), bis keine Erweiterung des Super Variable Nodes mehr möglich ist, g) Wobei derjenige Variable Node oder Super Variable Node mit dem höchsten Grad bestimmt wird, und diejenige Spalte von der Submatrix (B) in die Submatrix (P) verschoben wird, die der key node der betreffenden SVN, bzw. die der betreffenden VN entspricht.
  14. Verfahren nach Anspruch 13, dadurch gekennzeichnet, dass der Grad eines Super Variable Nodes die Anzahl der abgehenden Verbindungen zu Check Nodes außerhalb dieses Super Variable Nodes ist.
  15. Verfahren nach Anspruch 13 oder 14, dadurch gekennzeichnet, dass für jeden Super Variable Node ein Key Node existieren muss, wobei ein Key Node ein Variable Node ist, der Teil des Super Variable Nodes ist und der, wenn er bekannt ist, die Lösung des Super Variable Nodes ermöglicht, dadurch, dass der Wert aller Member Variable Nodes der Super Variable Nodes mithilfe der Member Check Nodes der Super Variable Nodes wiederhergestellt werden kann, wobei bei der Bestimmung des Key Nodes der ursprünglich Subgraph des Tanner-Graphen mit den multiplen Verbindungen vor der Reduzierung des Grades der Check Nodes herangezogen wird.
  16. Verfahren nach einem der Ansprüche 1 bis 15, dadurch gekennzeichnet, dass nach einer Verschiebung einer oder mehrerer Spalten von der Submatrix (B) in die Submatrix (P) der Triangularisationsprozess solange fortgesetzt wird, bis erneut eine Spalte den Triangularisationsprozess behindert, so dass erneut eine oder mehrere Spalten von der Submatrix (B) in die Submatrix (P) verschoben werden.
  17. Verfahren nach einem der Ansprüche 1 bis 16, dadurch gekennzeichnet, dass im Triangularisationsprozess der einzige Eintrag mit einem Wert von 1 einer Zeile mit einem Gewicht von 1 der Submatrix (B) durch Zeilen- und/oder Spaltenvertauschungen in die linke obere Ecke der Submatrix (B) verschoben wird und anschließend eine Submatrix (A) der Matrix (H), die sich bereits in einer Dreiecksform befindet um eine Spalte und eine Zeile vergrößert wird, so dass die Submatrix (B) um die gleiche Spalte und Zeile verkleinert wird.
  18. Verfahren nach einem der Ansprüche 1 bis 17, dadurch gekennzeichnet, dass die Matrix (H) in die untere Dreiecksform gebracht wird.
DE102009017540A 2008-05-23 2009-04-17 Verfahren zum Wiederherstellen verlorener und/oder beschädigter Daten Expired - Fee Related DE102009017540B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP08156794.3 2008-05-23
EP08156794A EP2134018A1 (de) 2008-05-23 2008-05-23 Verfahren zur Wiederherstellung von verlorenen bzw. beschädigten Daten

Publications (2)

Publication Number Publication Date
DE102009017540A1 true DE102009017540A1 (de) 2009-12-10
DE102009017540B4 DE102009017540B4 (de) 2011-01-20

Family

ID=40151319

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102009017540A Expired - Fee Related DE102009017540B4 (de) 2008-05-23 2009-04-17 Verfahren zum Wiederherstellen verlorener und/oder beschädigter Daten

Country Status (3)

Country Link
US (1) US8413008B2 (de)
EP (1) EP2134018A1 (de)
DE (1) DE102009017540B4 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012025457A1 (en) 2010-08-24 2012-03-01 Deutsches Zentrum für Luft- und Raumfahrt e.V. Method for recovery of lost data and for correction of corrupted data

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8959182B1 (en) * 2008-04-15 2015-02-17 Crimson Corporation Systems and methods for computer data recovery and destruction
CN101902315B (zh) * 2009-06-01 2013-04-17 华为技术有限公司 基于前向纠错的重传方法、设备和通信系统
US9397699B2 (en) * 2009-07-21 2016-07-19 Ramot At Tel Aviv University Ltd. Compact decoding of punctured codes
US8516351B2 (en) * 2009-07-21 2013-08-20 Ramot At Tel Aviv University Ltd. Compact decoding of punctured block codes
US8516352B2 (en) * 2009-07-21 2013-08-20 Ramot At Tel Aviv University Ltd. Compact decoding of punctured block codes
US8375278B2 (en) * 2009-07-21 2013-02-12 Ramot At Tel Aviv University Ltd. Compact decoding of punctured block codes
JP5388351B2 (ja) * 2009-11-19 2014-01-15 株式会社Nttドコモ 受信装置及び受信方法
JP5792256B2 (ja) * 2013-10-22 2015-10-07 日本電信電話株式会社 疎グラフ作成装置及び疎グラフ作成方法
US9158633B2 (en) 2013-12-24 2015-10-13 International Business Machines Corporation File corruption recovery in concurrent data protection
WO2015141903A1 (ko) * 2014-03-17 2015-09-24 엘지전자 주식회사 무선 통신 시스템에서의 순방향 에러 정정을 위한 저밀도 패리티 체크 코드의 디코딩 방법 및 장치
WO2015178018A1 (ja) 2014-05-22 2015-11-26 日本電気株式会社 端末、パケット復号方法、および、プログラムが記憶された記憶媒体
EP3142280A1 (de) * 2015-09-09 2017-03-15 Alcatel Lucent Verfahren, system und computerlesbares medium zur übertragung von symbolen zwischen mindestens zwei telekommunikationsvorrichtungen
CN108918928B (zh) * 2018-09-11 2020-11-10 广东石油化工学院 一种负荷分解中功率信号自适应重构方法
CN108918930B (zh) * 2018-09-11 2020-12-22 广东石油化工学院 一种负荷分解中功率信号自适应重构方法
CN109309513B (zh) * 2018-09-11 2021-06-11 广东石油化工学院 一种电力线通信信号自适应重构方法
CN112015325B (zh) * 2019-05-28 2024-03-26 阿里巴巴集团控股有限公司 一种生成解码矩阵的方法、解码方法和对应装置
CN117459076B (zh) * 2023-12-22 2024-03-08 国网湖北省电力有限公司经济技术研究院 基于mp译码ldpc纠删码译码方法、系统、设备及可存储介质

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030012315A1 (en) * 2001-07-06 2003-01-16 John Fan System and method for multistage error correction coding wirelessly transmitted information in a multiple antennae communication system
KR100996029B1 (ko) * 2003-04-29 2010-11-22 삼성전자주식회사 저밀도 패리티 검사 코드의 부호화 장치 및 방법
US20050268202A1 (en) * 2004-05-28 2005-12-01 Molisch Andreas F Quasi-block diagonal low-density parity-check code for MIMO systems
DE102004053656B4 (de) * 2004-09-10 2006-11-30 Technische Universität Dresden Verfahren zur Verarbeitung von Signalen nach Verfahren mit blockbasierten Fehlerschutzcodes
WO2006031686A2 (en) * 2004-09-13 2006-03-23 Conexant Systems, Inc. Systems and methods for multistage signal detection in mimo transmissions and iterative detection of precoded ofdm
CN100550655C (zh) * 2004-11-04 2009-10-14 中兴通讯股份有限公司 一种低密度奇偶校验码的编码器/译码器及其生成方法
EP1829223B1 (de) * 2004-12-22 2013-02-13 LG Electronics Inc. Parallele, mehrlagige Decodierung von Low-Density Parity-Check (LDPC) Codes
WO2007068554A1 (en) * 2005-12-12 2007-06-21 Thomson Holding Germany Gmbh & Co. Ohg Serial concatenation scheme and its iterative decoding using an inner ldpc and an outer bch code
US8171371B2 (en) * 2005-12-20 2012-05-01 Mitsubishi Electric Corporation Inspection matrix generation method, encoding method, communication device, communication system, and encoder
DE102006028947B4 (de) * 2006-06-23 2008-06-26 Technische Universität Kaiserslautern Empfänger zum Empfangen und störungsreduzierten Ausgeben von Daten, Sender, System, Verfahren und Computerprogrammprodukt

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"D. Burshtein und G. Miller, "An efficient maximum likelihood decoding of LDPC codes over the binary erasure channel", IEEE Transactions on Information Therory, volume 50, no. 11, pp. 2837-2844, November 2004"
"E. Paolini, G. Liva, M. Balazs und M. Chiani, "Generalized IRA Erasure Correcting Codes for Maximum Likelihood Decoding" submitted to IEEE Communication Letters 2008"

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012025457A1 (en) 2010-08-24 2012-03-01 Deutsches Zentrum für Luft- und Raumfahrt e.V. Method for recovery of lost data and for correction of corrupted data
DE102010035210A1 (de) 2010-08-24 2012-03-01 Deutsches Zentrum für Luft- und Raumfahrt e.V. Verfahren zur Rückgewinnung verlorener Daten und zur Korrektur korrumpierter Daten

Also Published As

Publication number Publication date
US8413008B2 (en) 2013-04-02
DE102009017540B4 (de) 2011-01-20
US20090292966A1 (en) 2009-11-26
EP2134018A1 (de) 2009-12-16

Similar Documents

Publication Publication Date Title
DE102009017540B4 (de) Verfahren zum Wiederherstellen verlorener und/oder beschädigter Daten
DE602005003767T2 (de) Verfahren zum komprimieren einer menge korrelierter signale
DE60029601T2 (de) Gruppenkettenreaktionskodierer mit variabler anzahl zugeordneter eingabedaten für jeden ausgaben gruppenkode
DE102010035210B4 (de) Verfahren zur Rückgewinnung verlorener Daten und zur Korrektur korrumpierter Daten
DE602004009706T2 (de) Belief-ausbreitungsdecodierer, der den austausch unzuverlässiger nachrichten aufhebt
DE102008061069A1 (de) Neuübertragung fehlerhafter Daten
DE102012203653B3 (de) Verfahren zum Wiederherstellen von verloren gegangenen und/oder beschädigten Daten
DE60035099T2 (de) Verfahren zur bestimmung der rahmenfrequenz eines datenrahmens in einem kommunikationssystem
DE102013201422B3 (de) Verfahren zum Wiederherstellen verlorengegangener und/ oder beschädigter Daten
DE102013223813B4 (de) Verfahren zur Wiederherstellung verloren gegangener und/oder beschädigter Daten
DE102016222007B4 (de) Verfahren zum Übertragen von Daten
DE602004006558T2 (de) Codierung und Decodierung von Trellis-Codes mit Trellis Sektionen basierend auf Blockcodes mit guten Distanzeigenschaften
DE102014208996B3 (de) Verfahren zum Wiederherstellen verlorengegangener und/oder beschädigter Daten
DE102013218311B4 (de) Verfahren zum Wiederherstellen von verloren gegangenen und-/ oder beschädigten Daten
DE102014214451B4 (de) Verfahren zum Wiederherstellen von verloren gegangenen und/oder beschädigten Daten
DE102022117663B3 (de) Verfahren zur Übertragung einer IBLT-Datenstruktur und Benutzerendgerät
DE102010029113B4 (de) Verfahren zur Kanalcodierung von digitalen Daten
DE102011102503B3 (de) Verfahren zum Berichtigen beschädigter Daten
DE102016201408B4 (de) Verfahren zum Übertragen von Daten
DE102013223801B4 (de) Verfahren zum Wiederherstellen verloren gegangener und/oder beschädigter Daten
DE102012223040B3 (de) Verfahren zum Wiederherstellen verloren gegangener und/oder beschädigter Daten
DE102017206718B4 (de) Verfahren zur Erzeugung einer Klasse von non-binary LDPC-Codes
DE102014215015B3 (de) Verfahren zum Wiederherstellen verlorengegangener und /oder beschädigter Daten
DE102011103631A1 (de) Verfahren zur Übertragung von Daten
DE102013223413B4 (de) Verfahren zum Wiederherstellen verloren gegangener und/oder beschädigter Daten

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R020 Patent grant now final

Effective date: 20110420

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee