DE102013223813A1 - Verfahren zur Wiederherstellung verloren gegangener und/oder beschädigter Daten - Google Patents

Verfahren zur Wiederherstellung verloren gegangener und/oder beschädigter Daten Download PDF

Info

Publication number
DE102013223813A1
DE102013223813A1 DE102013223813.4A DE102013223813A DE102013223813A1 DE 102013223813 A1 DE102013223813 A1 DE 102013223813A1 DE 102013223813 A DE102013223813 A DE 102013223813A DE 102013223813 A1 DE102013223813 A1 DE 102013223813A1
Authority
DE
Germany
Prior art keywords
matrix
parity check
submatrix
decoding
data
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
DE102013223813.4A
Other languages
English (en)
Other versions
DE102013223813B4 (de
Inventor
Balazs Matuz
Alessandro Bigucci
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
Priority to DE102013223813.4A priority Critical patent/DE102013223813B4/de
Publication of DE102013223813A1 publication Critical patent/DE102013223813A1/de
Application granted granted Critical
Publication of DE102013223813B4 publication Critical patent/DE102013223813B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/615Use of computational or mathematical techniques
    • H03M13/616Matrix operations, especially for generator matrices or check matrices, e.g. column or row permutations
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/373Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with erasure correction and erasure determination, e.g. for packet loss recovery or setting of erasures for the decoding of Reed-Solomon codes

Abstract

Die Erfindung betrifft ein Verfahren zum Wiederherstellen verloren gegangener und/oder beschädigter Daten. Die Daten werden vor Ihrer Übertragung über den Übertragungskanal kodiert und anschließend dekodiert. Beim Dekodieren erfolgt eine Rückgewinnung verloren gegangener und/oder beschädigter Daten durch Lösen des Gleichungssystems einer Parity-Check-Matrix. Erfindungsgemäß werden zunächst die Positionen von Fehler in einem empfangenen Codewort unter Verwendung eines Vector Symbol Decoding Algorithmus ermittelt. Anschließend wird 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.

Description

  • Die Erfindung betrifft ein Verfahren zum Wiederherstellen verloren gegangener und/oder beschädigter Daten.
  • 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.
  • 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).
  • Die vorliegende Erfindung betrifft allerdings ein Szenario, bei dem ein Bit-Strom über einen Kanal übertragen wird, auf dem Fehler in der Bit-Übertragungsschicht generiert werden. Hierbei kann es sich bspw. um einen binären, symmetrischen Error-Channel mit einer festgelegten Fehlerwahrscheinlichkeit oder mit Gauß'schen weißen Rauschen handeln. Bei einem solchen Kanal können Vertauschungen von Bitwerten vorkommen, sodass ein Bit als eine Noll empfangen wird, obwohl es als eine 1 gesendet wurde. Die Besonderheit eines solchen Kanals liegt somit darin, dass der Empfänger nicht weiß, ob ein von ihm empfangenes Bit den richtigen Wert aufweist oder nicht. Im Gegensatz hierzu kann beim sogenannten Erasure-Channel davon ausgegangen werden, dass sämtliche empfangen Bits den richtigen Wert aufweisen, da sie ansonsten durch den Übertragungskanal ausgelöscht worden wären. In einem solchen Szenario führen Kodier- und Dekodierverfahren üblicherweise Berechnungen an einzelnen Bits durch, sodass die Datenstruktur beibehalten wird. Bspw. existieren sogenannte "Belief-Propagation-Techniken", bei denen die Wahrscheinlichkeit verwendet wird, dass jedes übertragene Bit Noll oder 1 ist. Es werden Berechnungen ausgeführt, um diese Wahrscheinlichkeiten zu aktualisieren.
  • In vielen praktischen Anwendungen dagegen muss die Grundeinheit einer Datenübertragung nicht ein einzelnes Bit sein. Vielmehr werden Bit-Blöcke übertagen, die als Pakete organisiert sind. Der Ausdruck "Pakete" bedeutete im Allgemeinen eine Ansammlung von mehreren Bits. Im Einzelfall kann ein Paket jedoch auch aus ausschließlich einem Bit bestehen. Bspw. können Datenpakete aus Tausenden von Bits bestehen, wie bspw. bei Internetpaketen. Andererseits kann ein Paket auch einfach ein 32-Bit-Integer sein. Um hohe Geschwindigkeiten zu erreichen, ist es naheliegend Codierverfahren zu verwenden, die Berechnungsoperationen in der Paket-Ebene anstatt in der Bit-Ebene durchführen. Ein Beispiel hierfür sind die bereits oben genannten paketbasierten LDPC-Codes.
  • Eine weitere Motivation, um Paket-Level-Verfahren zu betrachten, ist, dass diese in einem konkatenierten Code verwendet werden können. Bspw. kann ein innerer Code, der auf Bit-Level arbeitet, auf einzelnen Paketen angewandt werden. Wenn dieser innere Code versagt, können die Bits in dem Paket in unvorhersehbarer und scheinbar willkürlicher Art fehlerhaft sein. Ein äußerer Code, der dazu geeignet ist, mit Fehlern im Paket-Level umzugehen, könnte dann verwendet werden, um Daten wiederherzustellen, bei denen der innere Code versagt hat. Konkatenierte Codes erlauben die Verwendung von berechnungsintensiven inneren Codes, die auf Paketen mit einer festgelegten kleinen Größe angewandt werden, während sie gleichzeitig auf größere Blocklängen skaliert werden können, dadurch dass ein äußere Code im Paket-Level verwendet wird. Alternativ können in einem konkatenierten Code ein weniger berechnungsintensiver innerer Code verwendet werden, wobei dann ein äußerer Code im Paket-Level verwendet wird, der die dann häufiger auftretenden, durch den inneren Code nicht dekodierten Daten bearbeitet.
  • Relevante Hintergrundinformationen zum Stand der Technik können den folgenden Veröffentlichungen entnommen werden:
  • In diesem Zusammenhang ist der Algorithmus von Metzner bekannt, der auch als Vector Symbol Decoding (VSD) bezeichnet wird (siehe Veröffentlichung [3]). Dieser Algorithmus bearbeitet ein Set von Bits (Pakete) und versucht Daten, die durch Paketfehler verloren gingen, wiederherzustellen. Ein Nachteil dieses Algorithmus' ist seine Komplexität O(n3), da Standard-Gauß'sche-Elimination verwendet wird.
  • Aufgabe der Erfindung ist es ein Verfahren zum Wiederherstellen verloren gegangener und/oder beschädigter Daten bereitzustellen, die über einen fehlerbehafteten Übertragungskanal übertragen werden, der auf Bit-Ebene Fehler erzeugt.
  • Die Lösung der Aufgabe erfolgt erfindungsgemäß durch die Merkmale des Anspruchs 1.
  • Das erfindungsgemäße Verfahren dient zur Wiederherstellung verloren gegangener und/oder beschädigter Daten, die von einer Sendevorrichtung über einen fehlerbehafteten Kanal, der Bitfehler generiert, insbesondere einen q-ären symmetrischen Kanal an eine Empfangsvorrichtung übertragen werden. Das Verfahren weist die folgenden Schritte auf:
    Kodieren der Daten durch einen Kodierer, der mit der Sendevorrichtung verbunden ist,
    Übertragen der Daten von der Sendevorrichtung an die Empfangsvorrichtung über den Übertragungskanal und
    Dekodieren der Daten durch einen mit der Empfangsvorrichtung verbundenen Dekodierer, wobei während des Dekodierens eine Rückgewinnung verloren gegangener und/oder beschädigter Daten durch Lösen des Gleichungssystems einer Parity-Check-Matrix H durchgeführt wird.
  • Beim Dekodieren werden die Positionen von Fehlern in einem empfangenen Codewort durch die folgenden Verfahrensschritte ermittelt:
    • a) Berechnen einer Syndrom-Matrix S durch Multiplikation der Parity-Check-Matrix mit dem empfangenen Codewort,
    • b) Anwenden des Gauß'schen Eliminationsverfahrens auf die Syndrom-Matrix, um eine neue Syndrom-Matrix S' zu erhalten, die zum Teil die Form einer Identitätsmatrix aufweist,
    • c) Ausnullen des restlichen Teils der neuen Syndrom-Matrix S', der nicht die Form einer Einheitsmatrix aufweist, durch lineares Kombinieren mit den Zeilen der neuen Syndrom-Matrix S', die die Form einer Identitätsmatrix aufweisen, wobei die gleichen Linearkombinationen wie in der neuen Syndrom-Matrix S' in den entsprechenden Zeilen der Parity-Check-Matrix vorgenommen werden, sodass ein korrespondierendes Set an Nullkombinationen aus der Parity-Check-Matrix entsteht.
    • d) Ermitteln, welche Spalten dieser Nullkombinationen aus der Parity-Check-Matrix ausschließlich Nullen aufweisen, sodass hierdurch die Positionen der Fehler im empfangenen Codewort bekannt sind.
  • Die genannten Verfahrensschritte zum Ermitteln der Positionen von Fehlern in einem empfangenen Codewort entsprechen dem Vector Symbol Decoding Algorithmus, der in den Veröffentlichungen [3] und [4] beschrieben ist.
  • In den folgenden Dekodierschritten werden die Fehler im empfangenen Codewort, deren Positionen im Codewort bekannt sind, als Auslöschungen betrachtet. Somit kann der verlustbehaftete Übertragungskanal anstatt als q-ärer symmetrischer Kanal als ein Erasure-Channel betrachtet werden. Bei einem Erasure-Channel wird davon ausgegangen, dass eine empfangene Dateineinheit (z.B. Bit-Wert oder Paket) einen richtigen Wert darstellt, da ansonsten eine Auslöschung vorliegen würde.
  • Da der Kanal nun als Erasure-Channel betrachtet wird, können für das weitere Dekodieren Techniken verwendet werden, die üblicherweise bei einer Datenübertragung über einen Erasure-Channel Anwendung finden. Für das Lösen des Gleichungssystems der Parity-Check-Matrix wird die Parity-Check-Matrix H durch Spalten- und/oder Zeilenvertauschungen in eine Dreiecksform gebracht. Spalten einer Submatrix B der Matrix H, die den Triangularisationsprozess behindern, werden in eine Submatrix P der Matrix H verschoben, sodass der Triangularisationsprozess fortgeführt werden kann, bis die Matrix H außer der Matrix P vollständig in eine Dreiecksform gebracht wurde. Anschließend wird auf einen Teil P1 der Submatrix P das Gauß'sche Eliminationsverfahren angewendet.
  • 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 schrittweise vergrößert.
  • Somit kann die Submatrix P so klein wie möglich gehalten werden, sodass der Rechenaufwand für das Gauß'sche Eliminationsverfahren, das auf die Submatrix P angewandt wird, minimiert werden kann.
  • 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.
  • Der genaue Ablauf des Vector Symbol Decoding Algorithmus wird im Folgenden detaillierter dargestellt:
    Es wird davon ausgegangen, dass H eine (n – k) × n Parity-Check-Matrix eines Parity-Check-Blockcodes ist. H definiert den (n, k) Code des Codesymbols x der Länge l Bit als das Set von Codeworten, die die Parity-Gleichungen erfüllen:
    Figure DE102013223813A1_0002
  • Vorliegend werden binäre lineare Block-Codes betrachtet, obwohl die Ausführungen auch in einfacher Weise auf den allgemeineren nicht-binären Fall ausgeweitet werden können. Ein binärer linearer Block-Code beschreibt ein Set von n – k binären Paritätsbedingungen für die n-Codewort-Symbole. Die Übertragung über den Kommunikationskanal wird beschrieben als y = x + e, wobei x = [x1, ...., xn], den übertragenen Codewort-Symbolen entspricht y = [y1, ..., yn], den empfangenen Codewort-Symbolen entspricht und der Vektor e = [e1, ......, en] dem Fehlermuster entspricht. Es ist zu berücksichtigen, dass die Übertragung von Paketen betrachtet wird, sodass alle xi, yi und ei aus dem lnicht-binären Feld der Ordnung q = 2l ausgewählt werden. Alternativ ist es möglich, die Elemente xi, yi und ei als Vektoren von l Bits darzustellen, die als x →i, y →i, e →i. Wenn eine Sequenz von n Symbolen empfangen wurde, wird eine Syndrom-Matrix berechnet:
    Figure DE102013223813A1_0003
  • Hierbei ist e = y + x der Fehlervektor in der Position j.
  • Jede Reihe der Matrix H definiert eine Parity-Check-Gleichung am Vektorsymbol, die durch ein Codewort erfüllt sein muss. Wenn es möglich ist, eine Zeile von H zu finden, die diese Bedingung erfüllt, dann ist jede Position, in der dieser Zeilenvektor der Länge n Bits eine 1 enthält, fehlerfrei, sofern davon ausgegangen wird, dass die l-Bit Fehlervectoren linear unabhängig sind. Solch ein Vector in dem Zeilenraum von H wird als Null-Kombination bezeichnet.
  • Es existiert eine Fehlermatrix, in der einige Zeilen nur Nullen aufweisen und andere Zeilen, die nicht nur Nullen aufweisen, das Fehlermuster darstellen. Um die Syndrommatrix zu erhalten, muss diese Fehlermatrix mit der Parity-Check-Matrix des Codes multipliziert werden. Es ist bekannt, dass elementare Spaltenoperationen in einer Matrix nichts daran ändern, welche Kombinationen von Zeilen von S zusammen Null ergeben. Dies ist wichtig, da an der Matrix S Spaltenoperationen durchgeführt werden, die entsprechend einer Gauß'schen Elimination funktionieren, sodass eine neue Matrix S' erhalten wird. Wenn die t Fehler linear unabhängig sind, dann ist die Matrix S' zusammengesetzt aus t Zeilen einer Identitätsmatrix und weiteren scheinbar zufällig verteilten Zeilen. Es ist möglich, dass in der Matrix S' eine oder mehrere Zeilenvektoren, die Null sind, gefunden werden. Dies bedeutet, dass die entsprechenden Reihen der Matrix H eine Null-Kombination darstellen (siehe Veröffentlichung [4]). Nach diesen Operationen sind die Kombinationen von Zeilen von S', die zusammen Null ergeben bekannt (durch Ausnullen des Teils der Matrix, der nicht die Form einer Identitätsmatrix aufweist). Ebenso sind die korrespondierenden Zeilen der Parity-Check-Matrix bekannt. Tatsächlich werden in der Matrix S' n-k-t solcher Null-Indikatoren existieren. Wenn vektorweise die Modulo-2 Summen der entsprechenden Zeilen von H gebildet werden, werden n-k-t Null-Kombinationen gefunden. Nach diesem Schritt muss die sogenannten "Union" dieser Null-Kombinationen gebildet werden. Hierbei wird ermittelt, welche Spalten dieser Null-Kombinationen aus der Parity-Check-Matrix ausschließlich Nullen aufweisen. Hieraus ergibt sich ein logischer Vector, der verwendet werden kann, um die Positionen der t Fehlervektoren zu finden. Diese Union der Null-Kombinationen wird unter den beschriebenen Voraussetzungen in allen t Positionen, in denen sich die Fehler befinden, Nullen aufweisen. Dagegen wird sie an den Positionen ohne Fehler eine 1 aufweisen.
  • Die im Folgenden beschriebenen Verfahrensschritte finden lediglich im Vektor Symbol Decoding Algorithmus, die aus dem Stand der Technik bekannt ist, Anwendung und werden, wie im Folgenden beschrieben, im Rahmen des erfindungsgemäßen Verfahrens durch ein alternatives Verfahren ersetzt:
    Wenn die Fehlerpositionen gefunden sind, wird eine t×t Submatrix erzeugt, deren Spalten die t Spalten von H sind, die den Vektorpositionen der Identitätsmatrix in S' entsprechen. Nun wird diese Submatrix invertiert (hierbei kann Gauß'sche Elimination verwendet werden) und die exakten Fehlerwerte können gefunden werden durch Multiplizieren der inversen Matrix mit den entsprechenden t Zeilen von S.
  • Im erfindungsgemäßen Verfahren wird dieser zweite Teil des Vector Symbol Decoding Algorithmus, nämlich die Inversion einer Submatrix von H (durch Gauß-Jordan-Elimination mit einer Komplexität von O(n3)) und die Multiplikation zwischen zwei Matrizen (die eine Komplexität von O(n3) aufweist, da die Matrizen dicht besetzt sind) mit einem Maximum a posteriori (MAP) Erasure Decoding Algorithmus ersetzt, in dem intelligente Gauß'sche Elimination verwendet wird.
  • Durch das MAP Erasure Decoding sind bereits die wahren Werte der ausgelöschten Symbole bekannt anstelle lediglich des Fehlermusters, wie es aus dem VSD-Algorithmus gemäß dem Stand der Technik bekannt ist. Daher ist es nicht notwendig die wahren Werte der fehlerhaften Symbole durch ein elementweises Bilden der Modulo-2 Summe zwischen den empfangenen Symbolen und den Fehlermuster wiederherzustellen.
  • Es ist anzumerken, dass der o.g. Verfahrensschritt b) des VSD-Algorithmus ebenfalls einen intelligenten Gauß'schen Eliminationsalgorithmus aufweisen kann. Dies würde jedoch von geringem Nutzen sein, da das Syndrom üblicherweise dünn besetzt ist.
  • Im Folgenden wird eine bevorzugte Ausführungsform der Erfindung anhand einer Figur erläutert:
  • 1 zeigt die Parity-Check-Matrix H während des Triangularisationsprozesses (linke Seite) und nach dem Pivotisieren (rechte Seite).
  • 2 eine Darstellung der Leistungsfähigkeit des erfindungsgemäßen Verfahrens.
  • MAP Erasure Decoding wird durchgeführt durch Lösen des Systems: x / KH T / K = xKH T / K
  • Hierbei beschreibt x / K das Set der ausgelöschten Symbole und H T / K bezeichnet die Submatrix, die sich aus den entsprechenden Spalten der Parity-Check-Matrix zusammensetzt. xK bezeichnet die korrekt empfangenen Symbole und H T / K bezeichnet die Submatrix, die sich aus den entsprechenden Spalten der Parity-Check-Matrix zusammensetzt. Ein einfacher Weg, um lineare Gleichungen zu lösen, ist die Anwendung von Gauß'scher Elimination. Für große Blocklängen würde dies jedoch viele Berechnungsschritte erfordern (d.h. viele Additionen im Galoisfeld 2) und würde daher sehr viel Zeit in Anspruch nehmen. Daher sollen intelligente Gauß'sche Eliminationstechniken verwendet werden, die die Tatsache ausnutzen, dass die Parity-Check-Matrix dünn besetzt ist. Dies bringt den Vorteil, dass die meisten Unbekannten durch iteratives Dekodieren mit einer linearen Komplexität von O(n) wiederhergestellt werden, während nur eine sehr kleine Anzahl an Unbekannten durch Gauß'sche Elimination wiederhergestellt wird.
  • Im Folgenden wird der intelligente Gauß'sche Eliminationsprozess detaillierter beschrieben. Die Matrix H / K kann, wie in 1 dargestellt in verschiedene Submatrizen aufgeteilt werden. A stellt den Teil in Dreiecksform dar, während B noch in die Dreiecksform gebracht werden muss. D ist zu Beginn eine dünnbesetzte Matrix und wird am Ende ausgenullt. Z enthält nur Nullen und P besteht aus den Spalten, die den Referenzsymbolen entsprechen. Am Ende kann P aufgeteilt werden in einen dünnbesetzen oberen Teil und einen dichtbesetzten unteren Teil. Nun kann der folgende Algorithmus angewandt werden:
    • 1. Es wird nach irgendeiner Zeile in B gesucht, die einen Grad von 1 aufweist. Der Grad einer Zeile oder Spalte wird definiert als die Anzahl der Einsen, die sie enthält. Zu Beginn ist B identisch mit H / K . Wenn keine Zeile mit einem Grad von 1 gefunden werden kann, wird mit Schritt 4 fortgefahren.
    • 2. Es werden nur Spalten- und Zeilenpermutationen durchgeführt, um den einzelnen 1-Eintrag in der ausgewählten Zeile an die obere linke Position der Submatrix B zu bringen.
    • 3. i und k werden um 1 erhöht. Hierdurch wird A größer, während die Dimension von B kleiner wird. Zu Beginn existiert die Submatrix A noch nicht.
    • 4. Falls keine Zeile mit einem Grad von 1 gefunden werden konnte (siehe Schritt 1) wird eine definierte Spalte von B und Z nach P verschoben. Somit wird j um den Wert 1 verringert. Zu Beginn existiert die Submatrix P noch nicht. Welche Spalte von B und Z nach P verschoben wird, wird durch die Pivoting-Strategie definiert.
    • 5. Die Schritte 1 bis 4 werden wiederholt bis dim(B) ≠ 0 × l, wobei l eine zufällige Ganzzahl ist.
    • 6. D wird ausgenullt. Nun wird der untere Teil von P, nämlich P1 dicht besetzt.
    • 7. Es wird einfache Gauß'sche Elimination auf P1 angewandt.
    • 8. Wenn die Gauß'sche Elimination erfolgreich war, wird eine Rücksubstitution durchgeführt, um die verbleibenden Unbekannten wiederherzustellen. Ansonsten hat das Dekodieren versagt.
  • In einem konkreten Beispiel wird eine Datenübertragung über einen q-ären symmetrischen Kanal betrachtet, bei der ein (6,2) Code mit folgender Parity-Check-Matrix verwendet wird:
    Figure DE102013223813A1_0004
  • Nach Anwenden des ersten Schrittes folgt:
    Figure DE102013223813A1_0005
  • Nach dem dritten Schritt des VSD-Algorithmus folgt:
    Figure DE102013223813A1_0006
  • Die zwei Fehler wurden identifiziert als die einzigen Positionen, an denen eine Null in allen zwei bestimmten Null-Kombinationen von H vorhanden ist. Nun kann die Matrix H'' aus der Matrix H erhalten werden. H'' hat lediglich zwei Zeilen, die den ersten zwei Zeilen von H entsprechen. Nun wird MAP Erasure Decoding unter Verwendung von intelligenten Gauß'schen Eliminationstechniken verwendet.
  • In 2 ist der Durchsatz eines (2048,1024) IRA-Codes und eines unstrukturierten LDPC-Codes dargestellt. Hierbei wurden intelligente Gauß'sche Eliminationstechniken auf dem Erasure-Channel mit einem Overhead von δ durchgeführt. Wie erkennbar ist, ist der niedrigste gemessene Durchsatz für die beiden Codes ungefähr 1,4 Gbps. Dies zeigt die Effizienz des vorgeschlagenen Algorithmus.
  • 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
    • G. Liva, B. Matuz, E. Paolini, and M. Chiani, "Pivoting algorithm for maximum likelihood decoding of LDPC codes over erasure channels", IEEE Global Telecommun. Conf., Honolulu, HI, USA, Nov. 2009 [0008]
    • E. Paolini, G. Liva, B. Matuz, and M. Chiani, "Maximum likelihood erasure decoding of LDPC codes: Pivoting algorithm and code design", IEEE Trans. Commun. Vol. 60, no. 11, Nov. 2012 [0008]
    • J. J. Metzner and E. J. Kapturowski, "A general decoding technique applicable to replicated file disagreement location and concatenated code decoding", IEEE Trans. Inform. Theory, vol. 36, pp. 911–917, July 1990 [0008]
    • K. T. Oh and J. J. Metzner, "Performance of a general decoding technique over the class of randomly chosen parity check codes", IEEE Tans. Inform. Theory, vol. 40, no. 1, January 1994 [0008]

Claims (1)

  1. Verfahren zur Wiederherstellung verloren gegangener und/oder beschädigter Daten, die von einer Sendevorrichtung über einen fehlerbehafteten Kanal, der Bitfehler generiert, insbesondere einen q-ären symmetrischen Kanal an eine Empfangsvorrichtung übertragen werden wobei das Verfahren die folgenden Schritte aufweist, Kodieren der Daten durch einen Kodierer, der mit der Sendevorrichtung verbunden ist, Übertragen der Daten von der Sendevorrichtung an die Empfangsvorrichtung über den Übertragungskanal und Dekodieren der Daten durch einen mit der Empfangsvorrichtung verbundenen Dekodierer, wobei während des Dekodierens eine Rückgewinnung verloren gegangener und/oder beschädigter Daten durch Lösen des Gleichungssystems einer Parity-Check-Matrix H durchgeführt wird, wobei beim Dekodieren die Positionen von Fehlern in einem empfangenen Codewort wie folgt ermittelt werden: a) Berechnen einer Syndrom-Matrix S durch Multiplikation der Parity-Check-Matrix mit dem empfangenen Codewort, b) Anwenden des Gauß'schen Eliminationsverfahrens auf die Syndrom-Matrix, um eine neue Syndrom-Matrix S' zu erhalten, die zum Teil die Form einer Identitätsmatrix aufweist, c) Ausnullen des restlichen Teils der neuen Syndrom-Matrix S', der nicht die Form einer Einheitsmatrix aufweist, durch lineares Kombinieren mit den Zeilen der neuen Syndrom-Matrix S', die die Form einer Identitätsmatrix aufweisen, wobei die gleichen Linearkombinationen wie in der neuen Syndrom-Matrix S' in den entsprechenden Zeilen der Parity-Check-Matrix vorgenommen werden, sodass ein korrespondierendes Set an Nullkombinationen aus der Parity-Check-Matrix entsteht. d) Ermitteln, welche Spalten dieser Nullkombinationen aus der Parity-Check-Matrix ausschließlich Nullen aufweisen, sodass hierdurch die Positionen der Fehler im empfangenen Codewort bekannt sind, e) wobei in den folgenden Dekodierschritten die Fehler im empfangenen Codewort, deren Positionen im Codewort bekannt sind, als Auslöschungen betrachtet werden, sodass der verlustbehaftete Übertragungskanal anstatt als q-ärer symmetrischer Kanal als Erasure-Channel betrachtet wird, f) wobei für das Lösen des Gleichungssystems der 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.
DE102013223813.4A 2013-11-21 2013-11-21 Verfahren zur Wiederherstellung verloren gegangener und/oder beschädigter Daten Active DE102013223813B4 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102013223813.4A DE102013223813B4 (de) 2013-11-21 2013-11-21 Verfahren zur Wiederherstellung verloren gegangener und/oder beschädigter Daten

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102013223813.4A DE102013223813B4 (de) 2013-11-21 2013-11-21 Verfahren zur Wiederherstellung verloren gegangener und/oder beschädigter Daten

Publications (2)

Publication Number Publication Date
DE102013223813A1 true DE102013223813A1 (de) 2015-05-21
DE102013223813B4 DE102013223813B4 (de) 2015-05-28

Family

ID=53045753

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102013223813.4A Active DE102013223813B4 (de) 2013-11-21 2013-11-21 Verfahren zur Wiederherstellung verloren gegangener und/oder beschädigter Daten

Country Status (1)

Country Link
DE (1) DE102013223813B4 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10489482B1 (en) 2018-06-01 2019-11-26 Hewlett Packard Enterprise Development Lp Gaussian elimination via a vector matrix multiplication accelerator

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102010035210B4 (de) * 2010-08-24 2012-08-30 Deutsches Zentrum für Luft- und Raumfahrt e.V. Verfahren zur Rückgewinnung verlorener Daten und zur Korrektur korrumpierter Daten

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102010035210B4 (de) * 2010-08-24 2012-08-30 Deutsches Zentrum für Luft- und Raumfahrt e.V. Verfahren zur Rückgewinnung verlorener Daten und zur Korrektur korrumpierter Daten

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
E. Paolini, G. Liva, B. Matuz, and M. Chiani, "Maximum likelihood erasure decoding of LDPC codes: Pivoting algorithm and code design", IEEE Trans. Commun. Vol. 60, no. 11, Nov. 2012
G. Liva, B. Matuz, E. Paolini, and M. Chiani, "Pivoting algorithm for maximum likelihood decoding of LDPC codes over erasure channels", IEEE Global Telecommun. Conf., Honolulu, HI, USA, Nov. 2009
J. J. Metzner and E. J. Kapturowski, "A general decoding technique applicable to replicated file disagreement location and concatenated code decoding", IEEE Trans. Inform. Theory, vol. 36, pp. 911-917, July 1990
K. T. Oh and J. J. Metzner, "Performance of a general decoding technique over the class of randomly chosen parity check codes", IEEE Tans. Inform. Theory, vol. 40, no. 1, January 1994

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10489482B1 (en) 2018-06-01 2019-11-26 Hewlett Packard Enterprise Development Lp Gaussian elimination via a vector matrix multiplication accelerator

Also Published As

Publication number Publication date
DE102013223813B4 (de) 2015-05-28

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
DE102010035210B4 (de) Verfahren zur Rückgewinnung verlorener Daten und zur Korrektur korrumpierter Daten
DE60220341T2 (de) Verfahren zum Erzeugen eines Burstfehlermusters sowie Burst- und Bytefehlerermittlungs- und-korrekturvorrichtung
DE112011101995T5 (de) Verfahren und Vorrichtung für eine Parallelverarbeitung in einem Gigabit-LDPC-Decodierer
DE102013223813B4 (de) Verfahren zur Wiederherstellung verloren gegangener und/oder beschädigter Daten
DE102012203653B3 (de) Verfahren zum Wiederherstellen von verloren gegangenen und/oder beschädigten Daten
DE102013201422B3 (de) Verfahren zum Wiederherstellen verlorengegangener und/ oder beschädigter Daten
DE102014204828B4 (de) Verfahren zum Wiederherstellen verlorengegangener und/oder beschädigter Daten
DE102013223801B4 (de) Verfahren zum Wiederherstellen verloren gegangener und/oder beschädigter Daten
DE102014215478B4 (de) Verfahren zum Übertragen von Daten
DE102016222007B4 (de) Verfahren zum Übertragen von Daten
DE102016201408B4 (de) Verfahren zum Übertragen von Daten
DE102011102503B3 (de) Verfahren zum Berichtigen beschädigter Daten
DE102014208996B3 (de) Verfahren zum Wiederherstellen verlorengegangener und/oder beschädigter Daten
DE102012223040B3 (de) Verfahren zum Wiederherstellen verloren gegangener und/oder beschädigter Daten
DE102014214451B4 (de) Verfahren zum Wiederherstellen von verloren gegangenen und/oder beschädigten Daten
DE102013213778B3 (de) Verfahren zum Übertragen einer Nachricht von einem Sender zu einem Empfänger über ein Kommunkationsmedium mittels Packet-Level-Kodierung
DE102013218311B4 (de) Verfahren zum Wiederherstellen von verloren gegangenen und-/ oder beschädigten Daten
DE102017206718A1 (de) Verfahren zur Erzeugung einer Klasse von non-binary LDPC-Codes
DE102013223413B4 (de) Verfahren zum Wiederherstellen verloren gegangener und/oder beschädigter Daten
DE102011015811B3 (de) Schemata zum effizienten Kodieren zur Verwendung bei nichtbinären GeIRA-Codes
DE102014210955B4 (de) Verfahren zum Wiederherstellen von verlorengegangenen und/oder beschädigten Daten
DE102014215477B3 (de) Verfahren zum Übertragen von Daten
DE2160595C3 (de) Fehlerentdeckendes und fehlerkorrigierendes Codierverfahren zur Datenübertragung

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final