DE102010035210B4 - Verfahren zur Rückgewinnung verlorener Daten und zur Korrektur korrumpierter Daten - Google Patents

Verfahren zur Rückgewinnung verlorener Daten und zur Korrektur korrumpierter Daten Download PDF

Info

Publication number
DE102010035210B4
DE102010035210B4 DE102010035210A DE102010035210A DE102010035210B4 DE 102010035210 B4 DE102010035210 B4 DE 102010035210B4 DE 102010035210 A DE102010035210 A DE 102010035210A DE 102010035210 A DE102010035210 A DE 102010035210A DE 102010035210 B4 DE102010035210 B4 DE 102010035210B4
Authority
DE
Germany
Prior art keywords
syndrome
decoding
error
matrix
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.)
Expired - Fee Related
Application number
DE102010035210A
Other languages
English (en)
Other versions
DE102010035210A1 (de
Inventor
Balazs Matuz
Dr. Liva Gianluigi
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 DE102010035210A priority Critical patent/DE102010035210B4/de
Priority to PCT/EP2011/064291 priority patent/WO2012025457A1/en
Priority to US13/767,979 priority patent/US9015565B2/en
Priority to EP11754632.5A priority patent/EP2609703A1/de
Publication of DE102010035210A1 publication Critical patent/DE102010035210A1/de
Application granted granted Critical
Publication of DE102010035210B4 publication Critical patent/DE102010035210B4/de
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • 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/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
    • H03M13/1108Hard decision decoding, e.g. bit flipping, modified or weighted bit flipping
    • 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
    • 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/65Purpose and implementation aspects
    • H03M13/6522Intended application, e.g. transmission or communication standard
    • H03M13/6541DVB-H and DVB-M
    • 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
    • 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/0061Error detection codes

Abstract

Verfahren zur Rückgewinnung verlorener Daten und zur Korrektur korrumpierter Daten, die von einer Sende-Vorrichtung an eine Empfangs-Vorrichtung übertragen werden, wobei das Verfahren folgende Schritte aufweist: – Kodieren der Daten durch einen Kodierer, der mit der Sende-Vorrichtung verbunden ist, – Übertragen der Daten von der Sende-Vorrichtung an die – Empfangs-Vorrichtung über eine Übertragungs-Vorrichtung und – Dekodieren der Daten durch einen mit der Empfangs-Vorrichtung verbundenen Dekodierer, wodurch während des Dekodierens eine Rückgewinnung verlorener und/oder korrumpierter Daten durch Lösen des Gleichungssystems einer Parity-Check-Matrix H durchgeführt wird, wobei ein übertragenes Codewort auf der Empfangs-Seite in einen korrekt empfangenen Teil und einen fehlenden Teil unterteilt wird und die folgende Gleichung gilt:wobei die Matrixderart manipuliert wird, dass ihr unterer Teil nur Null-Einträge enthält, was zu der Gleichungführt, wobeieinigen unbekannten Codewort-Symbolen entspricht und x'K bekannten Codewort-Symbolen entspricht, wobeider Teil der Parity-Check-Matrix H ist,...

Description

  • Die Erfindung betrifft ein Verfahren zur Rückgewinnung verlorener Daten und zur Korrektur korrumpierter Daten, die von einer Sende-Vorrichtung zu einer Empfangs-Vorrichtung übertragen werden. Zuerst wird ein Kodieren der Daten mittels eines Kodierers durchgeführt, der mit der Sende-Vorrichtung verbunden ist. Anschließend werden die Daten über ein Übertragungssystem von der Sende-Vorrichtung zu der Empfangs-Vorrichtung übertragen, und die Daten werden vorzugsweise unter Anwendung eines Low-Density-Parity-Check-Verfahrens mittels eines mit der Empfangs-Vorrichtung verbundenen Dekodierers dekodiert, wobei während des Dekodierens die verlorenen Daten wiederhergestellt werden und die korrumpierten Daten korrigiert werden.
  • Bei den übertragenen Daten kann es sich z. B. um einen Audio- oder Video-Stream handeln. Von einer Sende-Vorrichtung, die diese Daten verfügbar macht, werden die Daten z. B. zu einer mobilen Empfangs-Vorrichtung übertragen. Die mobile Empfangs-Vorrichtung kann z. B. ein Mobiltelefon, ein PDA oder eine andere mobile Endvorrichtung sein. Alternativ können die Daten auch von einer Sende-Vorrichtung zu einer stationären Empfangs-Vorrichtung übertragen werden.
  • Zu den Beispielen von Normen, die zur Übertragung von Daten an mobile Endvorrichtungen verwendet werden, zählen DVB-H, MBMS und, wie in naher Zukunft zu erwarten ist, DVB-SH. Das Konzept, das hier vorgeschlagen wird, funktioniert auch bei Punkt-zu-Punkt-Verbindungen.
  • Zur Gewährleistung einer guten Übertragungsqualität ist es erforderlich, die korrekte Übertragung von Daten oder Datenpaketen an die Empfangs-Vorrichtung zu verifizieren. Es existieren verschiedene Verfahren zur Rückgewinnung verlorener Daten und zur Korrektur korrumpierter Daten, die nicht korrekt an die Empfangs-Vorrichtung übertragen wurden.
  • Ein bekanntes Verfahren zur Rückgewinnung verlorener Daten ist das Low-Density-Parity-Check(LDPC-)Verfahren oder der Low-Density-Parity-Check-Code. Dieses Verfahren wird an einem sogenannten Lösch-Kanal angewandt. Neben einer Anwendung durch Kodieren auf der Ebene der Physical Layer existieren weitere Anwendungsmöglichkeiten auf dem Gebiet des Packet-Erasure-Channel (PEC).
  • 1 zeigt schematisch ein Beispiel der Rückgewinnung verlorener Daten und der Korrektur korrumpierter Daten gemäß dem Stand der Technik. In 1 ist der Fall dargestellt, in dem gewünscht ist, eine Anzahl k von Informationspaketen von einer Sende-Vorrichtung (linke Seite) zu einer Empfangs-Vorrichtung (rechte Seite) zu übertragen. Unter Verwendung eines Paketebenen-Kodierers auf der Sende-Seite werden die k Informationspakete und die m Paritätspakete zu n = m + k Codewort-Paketen zusammengefügt. Auf der Ebene der Physical Layer werden die Pakete durch einen Fehlerkorrekturcode (z. B. einen Turbocode) und einen Fehlerdetektionscode (z. B. einen Cyclic Redundancy Check, CRC) gesichert, so dass korrumpierte Pakete entfernt werden können. Auf den Ebenen oberhalb des Physical Layer werden Pakete entweder korrekt empfangen oder dahingehend als verloren angesehen, dass sie gelöscht worden sind, da der CRC ein korrumpiertes Paket in der Physical Layer detektiert hat. Von den darüberliegenden Schichten aus wird somit der Übertragungskanal als ein sogenannter Lösch-Kanal angesehen, wobei die Pakete die Transmissionseinheiten repräsentieren. In der Praxis jedoch tritt der Fall ein, dass der CRC versagt, was zu Fehlern bei Paketen führt, die als korrekt markiert sind. Ein derartiges CRC-Versagen verursacht eine Verschlechterung der Leistung.
  • Auf der Empfangs-Seite werden die empfangenen Codewort-Pakete durch den Paket-Ebenen-Dekodierer dekodiert, so dass die verlorenen Pakete rückgewonnen werden und die korrumpierten Daten korrigiert werden.
  • Die Rückgewinnung verlorener Daten und die Korrektur korrumpierter Daten kann unter Nutzung einer Redundanz der Daten realisiert werden. Der von dem Paket-Ebenen-Dekodierer gehandhabte Kodiervorgang wird gewöhnlich bit-weise (oder byte-weise) unter Verwendung eines Kodierers mit einem Generic Binary Linear Block Code durchgeführt. Das Dekodieren wird anschließend durch Lösen des Gleichungssystems durchgeführt, das durch die Parity-Check-Matrix H des Codes definiert ist.
  • Zur Rückgewinnung verlorener Pakete kann die Maximalwahrscheinlichkeitsdekodierung (ML) verwendet werden, um die Löschungen rückzugewinnen. Das Problem, mit dem jeder Dekodierer konfrontiert wird, nachdem er die Symbole von dem Lösch-Kanal empfangen hat, kann anhand der Lösung der folgenden Gleichung beschrieben werden:
    Figure 00030001
  • Hier bezeichnet
    Figure 00030002
    den Satz gelöschter (korrekt empfangener) Symbole und
    Figure 00030003
    die Submatrix, die aus den entsprechenden Spalten der Parity-Check-Matrix zusammengesetzt ist. Ein korrekter Weg zum Lösen linearer Gleichungen besteht in der Anwendung des Gaußschen Eliminationsverfahrens. Bei großen Blocklängen jedoch würde dies zahlreiche Operationen erfordern (z. B. zahlreiche Additionen für den speziellen Fall von GF(2)) und wäre somit zu zeitaufwendig. Deshalb wurden in DE 10 2009 017 540 einige intelligente Gaußsche Eliminationstechniken vorgeschlagen, die sich die Dünnbesetztheit der der Parity-Check-Matrix zunutze machen. Das Ziel besteht darin, eine zeit aufwendige Brute-Force-Gauß-Elimination nur an einer kleinen Submatrix anzuwenden. Zu diesem Zweck wird
    Figure 00040001
    einfach durch Reihen und Salten-Permutationen in eine niedrigere Triangularform gebracht. Dieser Schritt könnte jedoch durch einige Spalten blockiert werden, und die entsprechenden Symbole werden als Referenzsymbole oder Pivots bezeichnet. Als nächstes werden diese Spalten von
    Figure 00040002
    zu einer separaten Matrix P bewegt, und der Triangularisierungsvorgang kann fortgesetzt werden. Als Endergebnis können sämtliche gelöschten Symbole als eine Kombination von Referenzsymbolen repräsentiert werden, und somit reicht es aus, eine Gaußsche Elimination nur an Teilen von P vorzunehmen. Falls die Anzahl von Pivots gering ist, ist P klein, und die Gaußsche Elimination verläuft schnell. Die Gaußsche Elimination hat eine Komplexität O(n3), wobei n hier für die Blocklänge steht. Falls z. B. die Blocklänge des Codes verdoppelt wird, ist eine Dekodiergeschwindigkeit zu erwarten, die (zumindest bei großen Blocklängen) achtmal niedriger ist.
  • Der smarte Gaußsche Eliminationsvorgang wird im Folgenden detaillierter beschrieben. Die Matrix
    Figure 00040003
    kann in verschiedene Submatrizes unterteilt werden, wie 2 zeigt. Bei den Hauptteilen handelt es sich um A, das den Teil in Triangularform repräsentiert, B, das der Teil ist, der in Triangularform gebracht werden soll, D, das zu Beginn eine dünnbesetzte Matrix ist, jedoch am Ende ausgenullt wird, Z, das nur Nullen enthält, und P, das aus den Spalten besteht, die den Referenzsymbolen entsprechen. Am Ende kann P in einen dünnbesetzten höheren und einen dichten niedrigeren Teil unterteilt werden. Nun kann der folgende Algorithmus angewandt werden:
    • 1. Suchen nach jeder Reihe ersten Grades in B. Der Grad einer Reihe (Spalte) ist definiert durch die Anzahl der Einträge, die sie enthält. Zu Beginn ist B gleich
      Figure 00050001
      Falls keine Reihe ersten Grades gefunden wird, wird mit Schritt 4 fortgefahren.
    • 2. Nur Anwenden von Spalten- und Reihen-Permutationen, um den einzelnen einen Eintrag in der Reihe ersten Grades auf die obere linke Seite von B zu bewegen.
    • 3. Vergrößern von i und k um eins. Auf diese Weise wird A in jedem Schritt größer, während die Bemessung von B schrumpft. Zu Beginn existiert A nicht.
    • 4. Falls keine Reihe ersten Grades gefunden werden kannte (vgl. Schritt 1), Verschieben einer definierten Spalte von B und Z zu P. Somit wird auch j um eins reduziert. Ganz zu Beginn existiert P nicht. Welche Spalte von B und Z gewählt wird, um zu P bewegt zu werden, wird durch die Pivoting-Strategie definiert.
    • 5. Wiederholen der Schritte 1 bis 4, bis dim(P) ≠ 0 × l, wobei l eine beliebige positive Ganzzahl ist.
    • 6. Ausnullen von D. Nun wird der untere Teil von P, der als Pl bezeichnet wird, dicht.
    • 7. Durchführen einer Brute-Force-Gauß-Elimination an Pl. Die Brute-Force-Gauß-Elimination besteht aus zwei Schritten (zur Veranschaulichung siehe 3): a. einem Vorwärts-Eliminations-Schritt, um die Matrix Pl in eine obere Triangularform zu bringen: Betrachtet wird der Satz von Gleichungen
      Figure 00060001
      Hier handelt es sich bei
      Figure 00060002
      nur um die unbekannten Pivots, und somit um einen Sub-Satz der ursprünglichen Unbekannten
      Figure 00060003
      Der Vektor s* ist der entsprechende bekannte Term, der durch Multiplikation des entsprechenden Teils der Parity-Check-Matrix mit den entsprechenden Code-Symbolen
      Figure 00060004
      entsteht. Hier sind die bekannten Code-Symbole xK eine Permutation derjenigen in Gleichung (1). Dann werden (gewichtete) Reihen-Additionen durchgeführt, um Pl in eine obere Triangularform zu bringen. Nach dem Vorwärts-Eliminations-Schritt erhält man einen modifi zierten Satz von Gleichungen
      Figure 00060005
      Die Matrix
      Figure 00060006
      entspricht hier Pl in der oberen Triangularform. S' ist der bekannte Term, auch als Syndrom bezeichnet. Er entsteht durch Multiplikation der bekannten Code-Symbole und des entsprechenden Teils der Parity-Check-Matrix H'K·x'K. b. einem Rückwärts-Eliminations-Schritt, um die Pivots
      Figure 00060007
      zu erhalten.
    • 8. Falls die Gaußsche Elimination erfolgreich war, wird eine erneute Rückwärts-Elimination vorgenommen, um die verbleibenden Unbekannten rückzugewinnen. Andernfalls ist das Dekodieren fehlgeschlagen.
  • Im Fall nicht detektierter Fehler in den Codewort-Symbolen wird das gesamte Codewort korrumpiert, was aufgrund der Tatsache der Fall ist, dass das fehlerhafte Codewort-Symbol (oder -Paket) in mehreren Additionen involviert ist. Dies führt zu einem Mindestwert für den Fehler. Dies ist gezeigt in 6a, oberste Kurve, BEEC (keine Fehlerkorrektur).
  • Ein Nachteil des beschriebenen smarten Gaußschen Eliminationsverfahrens besteht darin, dass es weder in der Lage ist, Fehler in dem Codewort zu detektieren, noch dazu, diese zu korrigieren, was zu einem Leistungsverlust führt.
  • Die Druckschrift – LIVA, G. [et al.]: Pivoting Algorithms for Maximum Likelihood Decoding of LDPC Codes over Erasure Channels. In: IEEE Global Telecommunications Conference, 2009, S. 1–6. – ISBN 978-1-4244-4148-8-beschreibt ein Verfahren zur Rückgewinnung verlorener Daten unter Verwendung von LDPC Codes. Konkret werden verschiedene Pivoting Algorithmen für Maximum Likelihood Decoding bei LDPC Codes vorgestellt.
  • Es ist Aufgabe der vorliegenden Erfindung, ein Verfahren zur Rückgewinnung verlorener Daten und zur Korrektur korrumpierter Daten zu schaffen, das die Möglichkeit bietet, mehrere Fehler zu detektieren und einzelne Codewort-Fehler zu korrigieren.
  • Diese Aufgabe wird durch die Merkmale gemäß Anspruch 1 der Erfindung gelöst.
  • Das Verfahren zur Rückgewinnung verlorener Daten und zur Korrektur korrumpierter Daten weist folgende Schritte auf:
    • – Kodieren der Daten durch einen Kodierer, der mit der Sende-Vorrichtung verbunden ist,
    • – Übertragen der Daten aus der Sende-Vorrichtung an die Empfangs-Vorrichtung über eine Übertragungs-Vorrichtung und
    • – Dekodieren der Daten durch einen mit der Empfangs-Vorrichtung verbundenen Dekodierer, wodurch während des Dekodierens eine Rückgewinnung verlorener und/oder korrumpierter Daten durch Lösen des Gleichungssystems einer Parity-Check-Matrix H durchgeführt wird.
  • Ein übertragenes Codewort wird auf der Empfängerseite in einen korrekt empfangenen Teil und den gelöschten Teil unterteilt (siehe Gleichung (1)). Danach werden einige Manipulationen durchgeführt (z. B. die Anwendung von Schritten der smarten Gaußschen Elimination). Generell kann die Erfindung mit jedem Satz von Gleichungen wie in Gleichung 1 angegeben angewendet werden. Als erster Schritt ist jedoch erforderlich, die Matrix
    Figure 00090001
    in eine derartige Form zu bringen, dass der untere Teil (b-a Reihen) nur Null-Einträge enthält. Eine Dreiecksform ist nicht erforderlich, in der Praxis jedoch wünschenswert (→ Rückwärts-Substitution). Man erhält einen modifizierten Satz von Gleichungen (siehe 4):
    Figure 00090002
  • Figure 00090003
    entspricht
    Figure 00090004
    nachdem einige Operationen an
    Figure 00090005
    vorgenommen worden sind (z. B. Schritte einer smarten Gaußschen Elimination), wodurch diese Operationen dazu führen, dass der untere Teil von
    Figure 00090006
    nämlich
    Figure 00090007
    nur aus Nullen besteht. x'K entspricht bekannten Codewort-Symbolen und
    Figure 00090008
    einigen unbekannten Codewort-Symbolen, z. B. als kleiner Anteil sämtlicher Unbekannten (z. B. Pivots im Fall einer smarten Gaußschen Elimination).
  • Zu beachten ist wiederum, dass die hier aufgeführte Gleichung bereits eine Transformation der Gleichungen auf der Empfangs-Seite ist. Jegliche Transformation ist zulässig. Als Ergebnis wird jedoch ein Satz von Gleichungen benötigt, bei denen der untere Teil der Matrix auf der linken Seite null ist (der obere Teil ist nicht notwendigerweise dreieckig).
  • Das Verfahren gemäß der Erfindung weist ferner folgende Verfahrensschritte auf:
    • – Multiplizieren korrekt empfangener Symbole x'K mit dem entsprechenden Teil H'K der Parity-Check-Matrix H, wobei diese Multiplikation ein (teilweises) Syndrom s' ergibt,
    • – Prüfen der unteren b-a Reihen des Syndroms s' auf Nicht-Null-Einträge, wobei die Reihen, die Nicht-Null-Einträge enthalten, markiert werden. Es wird nur der untere Teil des Syndroms ausgewertet, da Widersprüche nur dort beobachtet werden können.
  • Gemäß der Erfindung werden die folgenden Verfahrensschritte angewandt, um ein einzelnes fehlerhaftes Symbol in dem übertragenen Codewort zu korrigieren:
    • – Prüfen, welche Spalten H'K in der Berechnung der identifizierten Reihen mit den Nicht-Null-Einträgen in dem Syndrom s' involviert sind,
    • – wobei, falls exakt eine Spalte identifiziert wird, das entsprechende Symbol in dem Codewort identifiziert wird, und
    • – Korrigieren des fehlerhaften Symbols in dem Codewort durch Subtraktion des identifizierten Nicht-Null-Syndrom-Werts von dem fehlerhaften Symbol. Zu beachten ist, dass im Fall eines einzelnen Fehlers sämtliche Nicht-Null-Einträge in den unteren b-a Reihen gleich sind. Falls sie nicht gleich sind, muss angenommen werden, dass mehrere Fehler vorhanden sind und der Algorithmus nicht angewandt werden kann.
  • Die Matrix
    Figure 00100001
    an der das Verfahren gemäß der Erfindung angewandt wird, kann jede beliebige Matrix sein, die in Beziehung zu den gelöschten Symbolen steht, wie z. B. die durch Gleichung (1) bestimmte Matrix. Vorzugsweise wird das Verfahren gemäß der Erfindung an einer Submatrix Pl der Parity-Check-Matrix
    Figure 00100002
    angewandt, die gemäß dem in DE 10 2009 017 540 beschriebenen Verfahren generiert worden ist.
  • Die Hauptidee für die Fehlerkorrektur, auf der die Erfindung basiert, liegt in der Tatsache begründet, dass normalerweise mehr Parity-Check-Gleichungen verfügbar sind, als zum Rückgewinnen der Löschungen benötigt werden (b > a). Diese Parity-Check-Gleichungen können dann verwendet werden, um eine Prüfung auf Inkonsistenzen und somit auf Fehler in den Paketen vorzunehmen. Falls keine oder nur wenige zusätzliche Parity-Check-Gleichungen verfügbar sind, könnte der Fehler möglicherweise unentdeckt bleiben. Jedoch sind in diesem Bereich von Löschmöglichkeiten, der nahe an der Auslastung liegt, die BER/PER-Kurven nicht von den Mindestwerten der Fehler dominiert, die durch falsch markierte Codewort-Symbole verursacht werden. Nachstehend folgt eine detaillierte Beschreibung einer bevorzugten Ausführungsform des verbesserten Dekodierers.
  • Für den Moment sei angenommen, dass keine Fehler existieren. Nach dem Durchführen der Schritte 1.–6. der smarten Gaußschen Elimination erhält man eine dichte Matrix Pl (vgl. 2) mit der Dimension a × b. Generell enthält diese Matrix mehr Reihen als Spalten (a ≤ b), Falls die Anzahl der Reihen kleiner ist als die Anzahl der Spalten, ist es nicht möglich, eine Gaußsche Elimination an der Matrix vorzunehmen, und somit kann das System von Gleichungen nicht gelöst werden. Es sei angenommen, dass dies nicht der Fall ist. In diesem Fall ist ein Dekodieren möglich. Um dies vorzunehmen, werden standardgemäße Gaußsche Eliminationen durchgeführt. Es wird begonnen mit (gewichteten) Reihen-Additionen, um die Matrix in eine obere Triangularform zu bringen (Vorwärts-Eliminations-Schritt). Dann wird eine Rück-Substitution durchgeführt. Unter der Annahme, dass die Matrix Pl einen vollen Rang hat, d. h. rank(Pl) == a, können die gelöschten Code-Symbole gelöst werden; andernfalls schlägt das Dekodieren fehl. Da Pl den Rang a hat, erhält man b-a Gleichungen, die durchgehend Nullen aufweisen. Zu beachten ist, dass sämtliche Reihen-Additionen (und -Multiplikationen) auch an dem bekannten Term durchgeführt werden müssen.
  • Eine effiziente Implementierung der Einzelfehler-Mehrfachlöschungs-Dekodierung kann formal in der folgenden Weise dargestellt werden:
    • 1. Ausgehend von dem Satz von Gleichungen
      Figure 00110001
      wobei
      Figure 00110002
      den unbekannten (bekannten) Vektor von Symbolen bezeichnet und
      Figure 00120001
      den entsprechenden Teil der Original-Parity-Check-Matrix bezeichnet, wird – falls möglich – eine in der Größe reduzierte Matrix berechnet, an der eine Brute-Force-Gauß-Elimination vorgenommen werden kann. Eine effiziente Implementierung für Codes, die dünnbesetzte Parity-Check-Matrizes aufweisen, ist durch die Schritte 1.–6. der smarten Gaußschen Elimination repräsentiert. Die Matrix
      Figure 00120002
      wird auf Pl in 2 reduziert. Mit a ist die Anzahl der Spalten bezeichnet, und mit b ist die Anzahl der Reihen von Pl bezeichnet.
    • 2. Nun wird der Schritt der vorwärtsgerichteten Gaußschen Elimination durchgeführt. a. Falls rang (Pl) == a, wird eine Vorwärts-Elimination an der Matrix vorgenommen. Man erhält ein Gleichungssystem
      Figure 00120003
      (vgl. 3). Es sei daran erinnert, dass
      Figure 00120004
      dem Wert Pl in der oberen Triangularform entspricht. i. Falls a == b, ist keine Fehlerkorrektur möglich. Es wird fortgefahren mit Schritt 6. ii. Andernfalls wird mit Schritt 3 fortgefahren. b. Falls rang (Pl) ≠ a, wird das Dekodieren gestoppt, und Ausgeben einer Fehlermeldung.
    • 3. Es wird detektiert, ob das Codewort Fehler enthält. a. Falls a == b, ist keine Fehlerkorrektur möglich. Es wird mit Schritt 6 fortgefahren. b. Falls a < b, wird der Vektor S'' berücksichtigt, der aus den Reihen a + 1, ..., b des Syndrom-Vektors S' besteht. Zu beachten ist, dass die Elemente des Syndrom-Vektors Pakete mit einer bestimmten Größe sein können. Es muss eine Prüfung auf Nicht-Null-Einträge in S'' durchgeführt werden. Es sei angenommen, dass e ein Vektor ist, der die Reihen-Nummern der detektierten Nicht-Null-Einträge in enthält. i. Falls e leer ist, sind keine Fehler in dem Codewort gefunden worden. Es wird mit Schritt 6 fortgefahren. ii. Falls e nicht leer ist und die Nicht-Null-Einträge des Syndroms nicht den gleichen Wert haben, sind mehrere Fehler detektiert worden. Eine Korrektur ist nicht möglich. Das Dekodieren wird gestoppt, und es liegt ein Signal-Dekodierungs-Versagen aufgrund mehrerer Fehler vor. iii. Andernfalls wird mit 4. fortgefahren.
    • 4. Das fehlerhafte Symbol wird identifiziert. Deshalb wird die Submatrix H''K berücksichtigt, die aus den Reihen a + 1, ..., b von H'K besteht. In H''K wird nach Spalten mit Nicht-Null-Einträgen nur an den Reihen gesucht, die durch e angegeben sind. a. Falls keine Spalten gefunden werden, ist keine Fehlerkorrektur möglich. Das Dekodieren wird gestoppt, und es liegt ein Signal-Dekodierungs-Versagen aufgrund eines Fehlers in dem Codewort vor. b. Falls mehrere Spalten gefunden werden, ist keine Fehlerkorrektur möglich. Das Dekodieren wird gestoppt, und es liegt ein Signal-Dekodierungs-Versagen aufgrund eines Fehlers in dem Codewort vor. c. Falls eine einzelne Spalte gefunden wird, ist eine Fehlerkorrektur möglich. Die Nummer der Spalte wird mit t gekennzeichnet. Es wird mit dem nächsten Schritt fortgefahren.
    • 5. Es wird eine einzelne Fehlerkorrektur durchgeführt. Deshalb wird ein Nicht-Null-Eintrag des reduzierten Syndroms s' genommen und von dem Code-Symbol subtrahiert, das der identifizierten Spalte t entspricht. Für GF(2) und die Erweiterungsfelder von GF(2) entspricht die Subtraktion einer Addition.
    • 6. Das Syndrom s' wird durch die folgenden Verfahrensschritte korrigiert: a. Identifizieren sämtlicher Elemente des Syndroms s', für die das fehlerhafte Code-Symbol in der Berechnung berücksichtigt worden ist. b. Subtrahieren des aus dem reduzierten Syndrom s'' erhaltenen Fehlermusters von den identifizierten Reihen von s', wodurch im Fall eines einzelnen Fehlers das Fehlermuster durch sämtliche Nicht-Null-Reihen von s'' gegeben ist.
    • Als Alternative ist es möglich, das Syndrom s' aus s' = H'K·x'K neu zu berechnen, wobei der korrigierte Wert des Code-Symbols in x'K berücksichtigt wird. Bei dem oben vorgeschlagenen Ansatz ist s'' der untere Teil von s'.
    • 7. Es wird eine Rücksubstitution durchgeführt, und die unbekannten Pivots
      Figure 00150001
      werden unter Berücksichtigung der korrigierten Version des Syndroms s' erhalten.
    • 8. Falls die Gaußsche Elimination erfolgreich war, wird die Rücksubstitution oder alternativ ein iterativer Dekodierschritt durchgeführt, um die verbleibenden Unbekannten zu gewinnen. Andernfalls ist das Dekodieren fehlgeschlagen.
  • Ferner ist vorzuziehen, dass
    Figure 00150002
    einer Submatrix Pl entspricht, die durch die folgenden Schritte generiert wird:
    • – Bringen von
      Figure 00150003
      in eine Triangularform mittels Spalten- und/oder Reihen-Permutationen,
    • – Verschieben von Spalten einer Submatrix B von
      Figure 00150004
      die den Triangularisierungsvorgang blockieren, in eine Submatrix P von
      Figure 00150005
      so dass der Triangularisierungsvorgang fortgesetzt werden kann, bis die Parity-Check-Matrix H mit Ausnahme der Submatrix P in eine Triangularform gebracht wird,
    • – wobei Pl dem dichten unteren Teil der Submatrix P entspricht, nachdem die Submatrix D von
      Figure 00150006
      ausgenullt worden ist.
  • Im Folgenden werden bevorzugte Ausführungsformen der Erfindung im Zusammenhang mit den Figuren detaillierter beschrieben.
  • 1 zeigt ein Flussdiagramm der Datenübertragung zwischen einer Sende-Vorrichtung und einer Empfangs-Vorrichtung, wie sie auch bei dem Verfahren gemäß der Erfindung praktikabel ist,
  • 2 zeigt die Generierung der Submatrix Pl der Parity-Check-Matrix H gemäß dem Stand der Technik,
  • 3 zeigt die Notation nach Anwendung der Vorwärts-Elimination und der Rück-Substitution,
  • 4 zeigt eine Darstellung der Submatrizes H'K und
    Figure 00160001
    sowie ihrer jeweiligen Submatrizes,
  • 5, 6a und 6b zeigen die Lösch-Wahrscheinlichkeit gegenüber der Codewort-Fehlerrate.
  • Die 1 und 2 sind bereits in der Einführung der vorliegenden Anmeldung beschrieben worden.
  • Aufgrund von Reihen-Addierungen als Teil der smarten Gaußschen Elimination ändert sich die Matrix Pl(H* K) zu
    Figure 00160002
    Die Matrizes H'K,
    Figure 00160003
    und ihre Submatrizes H''K und
    Figure 00160004
    sind in 4 gezeigt.
  • Für die Einzelfehler-Korrektur kommt den Submatrizes eine Schlüsselrolle zu.
  • Nachstehend wird ein Beispiel eines binären Gleichungssystems nach dem Schritt der Vorwärts-Elimination (Schritt 2.) beschrieben. Bei der Matrix, die
    Figure 00160005
    entspricht, handelt es sich hier um die 8×3-Matrix auf der linken Seite.
  • Zu beachten ist, dass der untere Teil nur Nullen enthält. Auf der rechten Seite ist die 8×5-Matrix H'K gezeigt, welche die Kombinationen der bekannten Pakete zum Erhalt der Unbekannten beschreibt. Es wird eine neue, vereinfachte Notation eingeführt: x1, ..., X5 repräsentieren die korrekt empfangenen Code-Symbole, und x6, ..., X8 die gelöschten Symbole, die den Pivots entsprechen. Dies führt zu:
    Figure 00170001
  • Setzt man die korrekt empfangenen Symbole/Pakete auf [0 0 0 0 0]T kann man das Syndrom auf der rechten Seite berechnen. Aus Gründen der Einfachheit bestehen die Pakete hier nur aus Bits, jedoch gelten sämtliche Erwägungen auch für Pakete mit größeren Bemessungen.
  • Figure 00170002
  • Wie ersichtlich ist, existieren noch 5 überflüssige Gleichungen, die auf beiden Seiten Null betragen.
  • Es sei nun angenommen, dass eines der bekannten Symbole einen Fehler enthält. Dies entspricht hier dem Umdrehen eines Bits in dem bekannten Term. Falls das fehlerhafte Symbol x1 ist, erhält man:
    Figure 00180001
  • Die vorstehend aufgeführten Gleichungen sind nicht mehr konsistent. Es ist ersichtlich, dass sich in den Reihen 4 und 8 Widersprüche ergeben (0 = 1). Somit lassen sich die überschüssigen Gleichungen nutzen, um den Fehler zu detektieren. Die Fehlerkorrektur kann nun in der folgenden Weise durchgeführt werden. Die Reihen 4 und 8 des Syndroms sind dahingehend identifiziert worden, dass sie von dem Fehler beeinträchtigt sind. Mit Hilfe der Matrix H'K wird eine Suche nach Code-Symbolen durchgeführt, die in der Berechnung der 4ten und 8ten Reihe des Syndroms, jedoch nicht in den Reihen 5, 6 und 7 involviert sind. Dies bedeutet, dass nach Spalten von H'K gesucht wird, bei denen die Reihen 4 und 8 Nicht-Null-Einträge enthalten und die Reihen 5, 6 und 7 Null-Einträge enthalten. Falls man in der Lage ist, eine derartige Spalte zu identifizieren, besteht auch die Möglichkeit, das fehlerhafte Code-Symbol zu identifizieren. In dem hier angeführten Fall wird die Spalte 1 identifiziert. Um das fehlerhafte Code-Symbol zu korrigieren, kann man hier das identifizierte Code-Symbol x1 und den Nicht-Null-Syndrom-Eintrag in der Reihe 4 des Syndroms einem xor-Vorgang unterziehen. Alternativ könnte auch der Nicht-Null-Syndrom-Eintrag in der Reihe 8 verwendet werden.
  • Ferner muss vor dem Auflösen des Gleichungssystems das Syndrom korrigiert werden. Dies kann hier durchgeführt werden, indem die Reihe 1 (optional auch Reihe 4 und 8) des Syndroms einem xor-Vorgang mit dem Nicht-Null-Syndrom-Eintrag in der Reihe 4 (oder der Reihe 8) des Syndroms unterzogen wird. Dies führt zu dem ursprünglichen Satz von Gleichungen (erstes Beispiel ohne Fehler), das gelöst werden kann, z. B. durch Rück-Substitution.
  • Da in der Praxis eine CRC-Prüfung angewandt wird, ist die Wahrscheinlichkeit, dass in einem Codewort ein Fehler auftritt (CRC-Versagen), relativ niedrig und kann z. B. in der Größenordnung von 10–6 bis 10–8 liegen. Somit ist die Wahrscheinlichkeit, dass mehr als ein Fehler in einem Codewort vorhanden ist, sehr niedrig.
  • In 5 sind Simulationsergebnisse für einen (2048, 1024) generalisierten unregelmäßigen Repeat-Accumulate-(GeIRA)Code angegeben, der für das ML-Dekodieren konzipiert ist. Die Code-Leistung ist über den BEC unter effizienter ML-Dekodierung und über den BEEC unter SEME-Dekodierung und ohne Fehlerkorrektur simuliert worden. Die Simulationsergebnisse zeigen, wie in den drei Fällen LDPC-Codes nahe an die durchschnittliche Leistung eines beliebigen Code-Systems gelangen, zumindest herunter bis hin zu moderaten bis niedrigen Blockfehler-Wahrscheinlichkeiten. Die Leistung für den gleichen LDPC-Code bei eher komplexer iterativer (IT) Dekodierung unter Verwendung welcher Werte ist ebenfalls für drei Fälle angegeben: für den BEC (d. h. p = 0), für den BEEC mit IT-Lösch-Dekodierung (d. h. keine Fehler-Korrektur), und für den BEEC mit soft-input logarithmischen Wahrscheinlichkeitsverhältnissen (LLRs), die entsprechend den Kanal-Fehler-/Lösch-Wahrscheinlichkeiten gesetzt sind. Die Leistung bei IT-Dekodierung an dem BEC zeigt deutlich den Kodiergewinn-Verlust in Bezug auf den ML-Dekodierer-Fall. Von dem IT-Dekodierer wird eine Blockfehler-Rate Pe = 10–4 bei e ≃ 0,39 erzielt, während bei ML-Dekodierung das Target bei e ≃ 0,46 erzielt wird. Auf dem BEEC-Kanal ist der SEME-Dekodierer leistungsfähiger als der IT-Dekodierer, bis hin zu nur noch moderaten Fehlerraten (Pe ≃ 103). Wenn jedoch die Lösch-Wahrscheinlichkeit abnimmt, konvergiert die Leistungsfähigkeit der SEME-Algorithmen zu einer Blockfehler-Wahrscheinlichkeit Pe ≃ 2·104, was aufgrund der begrenzten (einfachen) Fehlerkorrekturfähigkeit des Algorithmus selbst der Fall ist. Da der IT-Dekodierer nicht auf das Korrigieren einzelner Fehler beschränkt ist, ist bei niedrigen Lösch-Wahrscheinlichkeiten das IT-Dekodieren leistungsfähiger als der SEME-Algorithmus. Dieser Effekt kann von einem hybriden SEME-/IT-Dekodierer genutzt werden; beispielsweise könnte der IT-Dekodierer jedes Mal verwendet werden, wenn mehrere Fehler von dem SEME-Dekodierer detektiert werden. Dennoch kann in zahlreichen praktischen Fällen die BEEC-Fehler-Wahrscheinlichkeit deutlich unter p = 10–5 liegen, was zu einem (viel) niedrigeren Mindestwert für den Fehler bei dem SEME-Algorithmus führt und somit die Notwendigkeit einer IT-Dekodierstufe reduziert wird. Tatsächlich wird der Zuwachs in dem Mindestwert für den Fehler aufgrund der Einzelfehler-Korrekturfähigkeit des SEME-Algorithmus bei niedrigeren Fehlerwahrscheinlichkeiten p verstärkt. In 6(a) und 6(b) sind die Begrenzungen der durchschnittlichen, für ein beliebiges System bestehenden Blockfehler-Wahrscheinlichkeit für den Fall von n = 1000, k = 500 und für zwei BEEC-Fehler-Wahrscheinlichkeiten, p = 10–6 und p = 10–8, gezeigt. Während in dem ersteren Fall der Mindestwert für den Fehler um 3 Größenordnungen reduziert wird, trifft in dem letzteren Fall bei SEME-Dedodierung die Blockfehler-Wahrscheinlichkeit bei Pe > 10–10 auf den Mindestwert für den Fehler, nahezu um 5 Größenordnungen tiefer im Vergleich zu dem Fall, dass keine Fehlerkorrektur durchgeführt wird. Zu beachten ist, dass die Begrenzung (13) in den Mindestwerten für den Fehler im Fall von SEME-Dekodierung eine präzise Einschätzung der Blockfehler-Wahrscheinlichkeit für e → 0 liefert. Tatsächlich liegt für n = 1000, k = 500, p = 10–6 der geschätzte Mindestwert für den Fehler bei P- SEME, BEEC / e, R(nk) ≈ 4.99·10–7 wie 6(a) zeigt, während dies für n = 1000, k = 500, p = 10–8 bei P- SEME, BEEC / e, R(n, k) ≈ 5·10–11 der Fall ist, wie 6(b) zeigt.
  • Das hier vorgeschlagene Verfahren kann bei sämtlichen Typen kommerzieller drahtloser und verdrahteter Systeme angewandt werden. Normalerweise ist die Annahme, dass eine Fehlerdetektion an der Physical Layer mit niedriger Wahrscheinlichkeit versagt, bei den meisten Kommunikationssystemen realistisch. Wie oben aufgezeigt, verursacht dies einen nicht vernachlässigbaren Mindestwert für den Fehler. Die vorgeschlagenen Modifikationen des effizienten ML-Dekodierers machen es möglich, eine Einzelfehler-Korrektur auch an Plattformen mit niedrigerer Rechenleistung durchzuführen, und reduzieren somit den Mindestwert für den Fehler. Der Dekodier-Algorithmus kann mit jedem beliebigen linearen Block-Code verwendet werden. Dennoch besteht das Haupt-Target des hier vorgeschlagenen Dekodierers in den Low-density-Parity-Check-Codes (LDPC), was aufgrund von deren effizienten Kodier- und Dekodiereigenschaften der Fall ist.

Claims (14)

  1. Verfahren zur Rückgewinnung verlorener Daten und zur Korrektur korrumpierter Daten, die von einer Sende-Vorrichtung an eine Empfangs-Vorrichtung übertragen werden, wobei das Verfahren folgende Schritte aufweist: – Kodieren der Daten durch einen Kodierer, der mit der Sende-Vorrichtung verbunden ist, – Übertragen der Daten von der Sende-Vorrichtung an die – Empfangs-Vorrichtung über eine Übertragungs-Vorrichtung und – Dekodieren der Daten durch einen mit der Empfangs-Vorrichtung verbundenen Dekodierer, wodurch während des Dekodierens eine Rückgewinnung verlorener und/oder korrumpierter Daten durch Lösen des Gleichungssystems einer Parity-Check-Matrix H durchgeführt wird, wobei ein übertragenes Codewort auf der Empfangs-Seite in einen korrekt empfangenen Teil und einen fehlenden Teil unterteilt wird und die folgende Gleichung gilt:
    Figure 00220001
    wobei die Matrix
    Figure 00220002
    derart manipuliert wird, dass ihr unterer Teil nur Null-Einträge enthält, was zu der Gleichung
    Figure 00220003
    führt, wobei
    Figure 00220004
    einigen unbekannten Codewort-Symbolen entspricht und x'K bekannten Codewort-Symbolen entspricht, wobei
    Figure 00230001
    der Teil der Parity-Check-Matrix H ist, welcher dem fehlenden Teil des Codeworts
    Figure 00230002
    entspricht, und HK der Teil der Parity-Check-Matrix H ist, der dem korrekt empfangenen Teil des Codeworts xK entspricht, wobei das Verfahren ferner die folgenden weiteren Verfahrensschritte aufweist: – Multiplizieren korrekt empfangener Symbole x'K mit dem entsprechenden Teil H'K, wobei diese Multiplikation ein Syndrom s' ergibt, – Prüfen der unteren b-a Reihen des Syndroms s', nämlich s'' auf Nicht-Null-Einträge, wobei ein Reihen-Vektor e erzeugt wird, der eine 1 enthält, falls ein Nicht-Null-Eintrag gefunden wird, und andernfalls eine Null, wobei a die Anzahl der Spalten der Matrix
    Figure 00230003
    und b die Anzahl der Reihen des Syndroms ist, wobei das Verfahren ferner durch die folgenden Verfahrensschritte zum Korrigieren eines einzelnen fehlerhaften Symbols in dem übertragenen Codewort gekennzeichnet ist: – falls sämtliche Nicht-Null-Einträge von s'' gleich sind, Prüfen, welche Spalten von H''K als unterem Teil von H'K dem Vektor e gleich sind, – wobei, falls exakt eine Spalte des Teils H'K identifiziert wird, das entsprechende Symbol in dem Codewort identifiziert wird, und – Korrigieren des fehlerhaften Symbols in dem Codewort durch Subtraktion des identifizierten Nicht-Null-Werts von dem fehlerhaften Symbol, wobei im Fall eines einzelnen Fehlers sämtliche Nicht-Null-Einträge in den unteren b-a Reihen des Syndroms s' gleich sind.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass
    Figure 00240001
    einer Submatrix Pl entspricht, die durch die folgenden Schritte generiert wird: – Bringen von
    Figure 00240002
    in eine Dreiecksform mittels Spalten- und/oder Reihen-Permutationen, – Verschieben von Spalten einer Submatrix B von
    Figure 00240003
    die den Triangularisierungsvorgang blockieren, in eine Submatrix P von
    Figure 00240004
    so dass der Triangularisierungsvorgang fortgesetzt werden kann, bis
    Figure 00240005
    mit Ausnahme der Submatrix P in eine Dreiecksform gebracht wird, – wobei Pl dem dichten unteren Teil der Submatrix P entspricht, der durch Ausnullen der Submatrix D der Parity-Check-Matrix H generiert wird, – Durchführen von Manipulationen an Pl derart, dass die unteren b-a Reihen nur Nullen enthalten.
  3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass nach dem Korrigieren eines einzelnen Fehlers in dem Codewort das Syndrom s' durch die folgenden Schritte korrigiert wird: – Identifizieren sämtlicher Elemente des Syndroms s', für die das fehlerhafte Code-Symbol in der Berechnung berücksichtigt worden ist, – Subtrahieren des Fehlermusters des reduzierten Syndroms s'' von den identifizierten Reihen von s', wodurch im Fall eines einzelnen Fehlers das Fehlermuster durch sämtliche Nicht-Null-Reihen von s'' gegeben ist.
  4. Verfahren nach den Ansprüchen 2 und 3, dadurch gekennzeichnet, dass die Korrektur eines einzelnen Fehlers in dem Codewort durch die folgenden Verfahrensschritte durchgeführt wird:
  5. Ausgehend von dem Satz von Gleichungen
    Figure 00250001
    wobei
    Figure 00250002
    den unbekannten Vektor und xK den bekannten Vektor von Symbolen bezeichnet und
    Figure 00250003
    bzw. HK den entsprechenden Teil der Original-Parity-Check-Matrix bezeichnet, Berechnen, falls möglich, einer in der Größe reduzierten Matrix Pl, an der eine Brute-Force-Gauß-Elimination vorgenommen werden kann, gemäß den in Anspruch 2 beschriebenen Verfahrensschritten, wobei a die Anzahl der Spalten ist, und b ist die Anzahl der Reihen von Pl ist.
  6. Durchführen der vorwärtsgerichten Gaußschen Elimination: a. Falls rang (Pl) == a, Durchführen einer Vorwärts-Elimination an der Matrix Pl, was zu einem Gleichungssystem
    Figure 00250004
    führt, wobei
    Figure 00250005
    dem Wert Pl in der oberen Triangularform entspricht, wobei, i. falls a == b, keine Fehlerkorrektur möglich ist und mit Schritt 6 fortgefahren wird, und ii. andernfalls mit Schritt 3 fortgefahren wird,
  7. falls rang (Pl) ≠ a, Stoppen des Dekodierens, und Ausgeben einer Fehlermeldung.
  8. Detektieren, ob das Codewort Fehler enthält: a. wobei, falls a == b, keine Fehlerkorrektur möglich ist und mit Schritt 6 fortgefahren wird,
  9. falls a < b, Berücksichtigen des Vektors s'', der aus den Reihen a + 1, ..., b des Syndrom-Vektors s' besteht, und Prüfen auf Nicht-Null-Einträge in s'', die Inkonsistenzen repräsentieren, wobei ein Vektor e definiert wird, der die Reihen-Nummern der detektierten Nicht-Null-Einträge in s'' enthält, i. wobei, falls e leer ist, keine Fehler in dem Codewort gefunden worden sind und mit Schritt 6 fortgefahren wird, ii. falls e nicht leer ist und die Nicht-Null-Einträge des Syndroms nicht den gleichen Wert haben, mehrere Fehler detektiert worden sind, so dass eine Korrektur nicht möglich ist und das Dekodieren gestoppt wird und ein Signal-Dekodierungs-Versagen aufgrund mehrerer Fehler angezeigt wird, und iii. andernfalls mit Schritt 4 fortgefahren wird,
  10. Identifizieren des fehlerhaften Symbols durch Berücksichtigen der Submatrix H''K, die aus den Reihen a + 1, ..., b von H'K besteht, und Suchen nach Spalten mit Nicht-Null-Einträgen in H'K nur an den Reihen, die durch e angegeben sind: a. wobei, falls keine Spalten gefunden werden, keine Fehlerkorrektur möglich ist, so dass das Dekodieren gestoppt wird und ein Dekodierungs-Versagen aufgrund eines Fehlers in dem Codewort angezeigt wird, b. falls mehrere Spalten gefunden werden, keine Fehlerkorrektur möglich ist, so dass das Dekodieren gestoppt wird und ein Dekodierungs-Versagen aufgrund eines Fehlers in dem Codewort angezeigt wird, und c. falls eine einzelne Spalte gefunden wird, eine Fehlerkorrektur möglich ist, wobei die Nummer der Spalte mit t gekennzeichnet wird und mit dem nächsten Schritt fortgefahren wird,
  11. Durchführen einer einzelnen Fehlerkorrektur durch Verwenden eines Nicht-Null-Eintrags des reduzierten Syndroms s'' und Subtrahieren des Eintrags von dem Code-Symbol, das der identifizierten Spalte t entspricht, wobei für GF(2) und die Erweiterungsfelder von GF(2) die Subtraktion einer Addition entspricht,
  12. Korrigieren des Syndroms s' entsprechend Anspruch 3 oder durch Neuberechnung des Syndroms aus s' = H'K·x'K, wobei der korrigierte Wert des Code-Symbols in x'K berücksichtigt wird,
  13. Durchführen einer Rücksubstitution und Erhalt der unbekannten Pivots
    Figure 00270001
    unter Berücksichtigung der korrigierten Version des Syndroms s', und
  14. falls die Gaußsche Elimination erfolgreich war, Durchführen der Rücksubstitution, um die verbleibenden Unbekannten rückzugewinnen, wobei andernfalls das Dekodieren fehlgeschlagen ist.
DE102010035210A 2010-08-24 2010-08-24 Verfahren zur Rückgewinnung verlorener Daten und zur Korrektur korrumpierter Daten Expired - Fee Related DE102010035210B4 (de)

Priority Applications (4)

Application Number Priority Date Filing Date Title
DE102010035210A DE102010035210B4 (de) 2010-08-24 2010-08-24 Verfahren zur Rückgewinnung verlorener Daten und zur Korrektur korrumpierter Daten
PCT/EP2011/064291 WO2012025457A1 (en) 2010-08-24 2011-08-19 Method for recovery of lost data and for correction of corrupted data
US13/767,979 US9015565B2 (en) 2010-08-24 2011-08-19 Method for recovery of lost data and for correction of corrupted data
EP11754632.5A EP2609703A1 (de) 2010-08-24 2011-08-19 Verfahren zur wiederherstellung von verlorenen daten zur korrektur von beschädigten daten

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102010035210A DE102010035210B4 (de) 2010-08-24 2010-08-24 Verfahren zur Rückgewinnung verlorener Daten und zur Korrektur korrumpierter Daten

Publications (2)

Publication Number Publication Date
DE102010035210A1 DE102010035210A1 (de) 2012-03-01
DE102010035210B4 true DE102010035210B4 (de) 2012-08-30

Family

ID=44584159

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102010035210A Expired - Fee Related DE102010035210B4 (de) 2010-08-24 2010-08-24 Verfahren zur Rückgewinnung verlorener Daten und zur Korrektur korrumpierter Daten

Country Status (4)

Country Link
US (1) US9015565B2 (de)
EP (1) EP2609703A1 (de)
DE (1) DE102010035210B4 (de)
WO (1) WO2012025457A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102013223813A1 (de) * 2013-11-21 2015-05-21 Deutsches Zentrum für Luft- und Raumfahrt e.V. Verfahren zur Wiederherstellung verloren gegangener und/oder beschädigter Daten

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015178018A1 (ja) * 2014-05-22 2015-11-26 日本電気株式会社 端末、パケット復号方法、および、プログラムが記憶された記憶媒体
US10256975B2 (en) * 2017-02-28 2019-04-09 International Business Machines Corporation Using encryption to propagate cognitive corrections
CN108664466B (zh) * 2018-04-11 2022-07-08 广州视源电子科技股份有限公司 候选词评估方法、装置、计算机设备和存储介质
US10620951B2 (en) * 2018-06-22 2020-04-14 Intel Corporation Matrix multiplication acceleration of sparse matrices using column folding and squeezing
US10860419B2 (en) * 2018-12-28 2020-12-08 Intel Corporation Minimal aliasing bit-error correction code
CN110781664B (zh) * 2019-10-12 2023-04-25 抖音视界有限公司 文件修复方法及装置
CN115632666B (zh) * 2022-09-30 2023-11-03 电子科技大学 一种新型的可纠正删除和插入错误的rs码译码方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4556977A (en) * 1983-09-15 1985-12-03 International Business Machines Corporation Decoding of BCH double error correction - triple error detection (DEC-TED) codes
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
JP4224022B2 (ja) * 2002-06-11 2009-02-12 デジタル ファウンテン, インコーポレイテッド イナクティブ化によって連鎖反応符号を復号化するためのシステムおよび処理
US7370264B2 (en) * 2003-12-19 2008-05-06 Stmicroelectronics, Inc. H-matrix for error correcting circuitry
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
DE102005022107B9 (de) * 2005-05-12 2016-04-07 Infineon Technologies Ag Vorrichtung und Verfahren zum Bestimmen einer Position eines Bitfehlers in einer Bitfolge
US7533321B2 (en) * 2005-09-13 2009-05-12 International Business Machines Corporation Fault tolerant encoding of directory states for stuck bits
US7844877B2 (en) * 2005-11-15 2010-11-30 Ramot At Tel Aviv University Ltd. Method and device for multi phase error-correction
JP4619931B2 (ja) * 2005-11-22 2011-01-26 株式会社東芝 復号装置、記憶装置および復号方法
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
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
US8832518B2 (en) * 2008-02-21 2014-09-09 Ramot At Tel Aviv University Ltd. Method and device for multi phase error-correction
EP2134018A1 (de) * 2008-05-23 2009-12-16 Deutsches Zentrum für Luft- und Raumfahrt e.V. Verfahren zur Wiederherstellung von verlorenen bzw. beschädigten Daten
US8578256B2 (en) * 2009-04-22 2013-11-05 Agere Systems Llc Low-latency decoder
EP2282433A1 (de) * 2009-08-04 2011-02-09 Deutsches Zentrum für Luft- und Raumfahrt e.V. Verfahren zur Wiederherstellung von verlorenen bzw. beschädigten Daten
US9544090B2 (en) * 2010-03-31 2017-01-10 Avago Technologies General Ip (Singapore) Pte. Ltd. Hard input low density parity check decoder
JP5631846B2 (ja) * 2011-11-01 2014-11-26 株式会社東芝 半導体メモリ装置および復号方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
LIVA, G. [et al.]: Pivoting Algorithms for Maximum Likelihood Decoding of LDPC Codes over Erasure Channels. In: IEEE Global Telecommunications Conference, 2009, S. 1-6. - ISBN 978-1-4244-4148-8 *
LIVA, G. [et al.]: Pivoting Algorithms for Maximum Likelihood Decoding of LDPC Codes over Erasure Channels. In: IEEE Global Telecommunications Conference, 2009, S. 1-6. – ISBN 978-1-4244-4148-8

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102013223813A1 (de) * 2013-11-21 2015-05-21 Deutsches Zentrum für Luft- und Raumfahrt e.V. Verfahren zur Wiederherstellung verloren gegangener und/oder beschädigter Daten
DE102013223813B4 (de) * 2013-11-21 2015-05-28 Deutsches Zentrum für Luft- und Raumfahrt e.V. Verfahren zur Wiederherstellung verloren gegangener und/oder beschädigter Daten

Also Published As

Publication number Publication date
DE102010035210A1 (de) 2012-03-01
US9015565B2 (en) 2015-04-21
EP2609703A1 (de) 2013-07-03
WO2012025457A1 (en) 2012-03-01
US20130151932A1 (en) 2013-06-13

Similar Documents

Publication Publication Date Title
DE102010035210B4 (de) Verfahren zur Rückgewinnung verlorener Daten und zur Korrektur korrumpierter Daten
DE102009017540B4 (de) Verfahren zum Wiederherstellen verlorener und/oder beschädigter Daten
DE60206419T2 (de) Löschung und einzelfehlerkorrekturdekoder für lineare blockkodes
DE102012208711A1 (de) Vorrichtung zum Erzeugen einer Prüfsumme
DE2217935A1 (de) Anordnung und Verfahren zur Korrektur von Doppelfehlern
DE102017216264B4 (de) Decodierverfahren
DE102013201422B3 (de) Verfahren zum Wiederherstellen verlorengegangener und/ oder beschädigter Daten
DE102012203653B3 (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
DE102013223813B4 (de) Verfahren zur Wiederherstellung verloren gegangener und/oder beschädigter Daten
DE102010029113B4 (de) Verfahren zur Kanalcodierung von digitalen Daten
DE102011115100B3 (de) Verfahren zum Wiederherstellen von verloren gegangenen und/oder beschädigten Daten
DE102013218311B4 (de) Verfahren zum Wiederherstellen von verloren gegangenen und-/ oder beschädigten Daten
DE102016201408B4 (de) Verfahren zum Übertragen von Daten
DE102011102503B3 (de) Verfahren zum Berichtigen beschädigter Daten
DE102013213778B3 (de) Verfahren zum Übertragen einer Nachricht von einem Sender zu einem Empfänger über ein Kommunkationsmedium mittels Packet-Level-Kodierung
DE102013223801B4 (de) Verfahren zum Wiederherstellen verloren gegangener und/oder beschädigter Daten
DE102014208996B3 (de) Verfahren zum Wiederherstellen verlorengegangener und/oder beschädigter Daten
DE102014210955B4 (de) Verfahren zum Wiederherstellen von verlorengegangenen und/oder beschädigten Daten
DE102014203098B4 (de) Verfahren zum Wiederherstellen verloren gegangener und/ oder beschädigter Daten
DE102015216987B4 (de) Verfahren zum Wiederherstellen verlorengegangener und/oder beschädigter Daten
DE102012223040B3 (de) Verfahren zum Wiederherstellen verloren gegangener und/oder beschädigter Daten
DE102014114728B4 (de) Mehrschichtige fehlerkorrekturcodierung
DE102013223413B4 (de) Verfahren zum Wiederherstellen verloren gegangener und/oder beschädigter Daten
EP1016236B1 (de) Schnelle decodierung von partiell empfangenen faltungscodierten daten

Legal Events

Date Code Title Description
R409 Internal rectification of the legal status completed
R409 Internal rectification of the legal status completed
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final

Effective date: 20121201

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