DE102014204828B4 - Verfahren zum Wiederherstellen verlorengegangener und/oder beschädigter Daten - Google Patents

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

Info

Publication number
DE102014204828B4
DE102014204828B4 DE102014204828.1A DE102014204828A DE102014204828B4 DE 102014204828 B4 DE102014204828 B4 DE 102014204828B4 DE 102014204828 A DE102014204828 A DE 102014204828A DE 102014204828 B4 DE102014204828 B4 DE 102014204828B4
Authority
DE
Germany
Prior art keywords
code
data
decoding
column
transmitted
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.)
Active
Application number
DE102014204828.1A
Other languages
English (en)
Other versions
DE102014204828A1 (de
Inventor
Gianluigi Liva
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 DE102014204828.1A priority Critical patent/DE102014204828B4/de
Publication of DE102014204828A1 publication Critical patent/DE102014204828A1/de
Application granted granted Critical
Publication of DE102014204828B4 publication Critical patent/DE102014204828B4/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/1191Codes on graphs other than LDPC 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • H03M13/2909Product 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • H03M13/2927Decoding strategies
    • 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/3746Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with iterative decoding
    • 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/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • H03M13/098Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit using single parity bit
    • 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/1148Structural properties of the code parity-check or generator matrix
    • H03M13/1171Parity-check or generator matrices with non-binary elements, e.g. for non-binary LDPC 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/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/13Linear codes
    • H03M13/136Reed-Muller [RM] 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/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/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/152Bose-Chaudhuri-Hocquenghem [BCH] 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/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/13Linear codes
    • H03M13/19Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Algebra (AREA)
  • Computing Systems (AREA)
  • Error Detection And Correction (AREA)

Abstract

Verfahren zum Wiederherstellen verlorengegangener und/oder beschädigter Daten, die von einer Sendevorrichtung über einen Übertragungskanal gesendet werden, wobei das Verfahren die folgenden Schritte aufweist: Codieren der Daten unter Verwendung eines mit der Sendevorrichtung verbundenen Encoders; Übermitteln der Daten von der Sendevorrichtung zu der Empfangsvorrichtung über einen Übertragungskanal und Decodieren der Daten unter Verwendung eines mit der Empfangsvorrichtung verbundenen Decoders, wobei während des Decodierens verlorengegangene und/oder beschädigte Daten wiederhergestellt werden, wobei das Codieren unter Verwendung eines Product-Codes durchgeführt wird, indem die zu übertragenden Datensymbole in Form einer Matrix der Größe k2 × k1 angeordnet werden und unter Verwendung eines Zeilencodes kodiert werden, so dass zeilenweise redundante Datensymbole erzeugt werden und ferner die zu übertragenden Datensymbole in Form der Matrix der Größe k2 × k1 unter Verwendung eines Spaltencodes codiert werden, so dass spaltenweise redundante Datensymbole erzeugt werden, wobei die zeilenweise und spaltenweise erzeugten redundanten Datensymbole zusammen mit den zu übertragenden Datensymbolen vom Sender über den Übertragungskanal an den Empfänger übermittelt werden, wobei mindestens einer der beiden zum Codieren verwendeten Codes, nämlich der Zeilencode und der Spaltencode, ein Single Parity-Check Code ist. dadurch gekennzeichnet, dass die übertragenen Daten decodiert werden, entsprechend einer Dekodierung von Daten, die durch eine serielle Konkatenation eines nicht-binären Single Parity-Check Encoders mit einem zweiten inneren Code erzeugt wurden, so dass der Dekodierungsvorgang beschreibbar ist als ein Decodieren eines nicht binären Low Density Parity-Check Codes mit lediglich einem Check Node, so dass ein nicht-iteratives Decodieren durchgeführt wird.

Description

  • Die Erfindung betrifft ein Verfahren zum Wiederherstellen verlorengegangener und/oder beschädigter Daten.
  • Das erfindungsgemäße Verfahren wird angewandt, wenn Daten von einer Sendevorrichtung über einen verlustbehafteten Übertragungskanal an eine Empfangsvorrichtung gesendet werden.
  • Neben weiteren Verfahren zum Wiederherstellen verlorengegangener und/oder beschädigter Daten sind aus dem Stand der Technik Product Codes bekannt. Diese sind beschrieben in P. Elias, ”Error-free coding,” IRE Trans. Inf. Theory, vol. PGIT-4. pp. 29–37, Sept. 1954.
  • Ein Product Code ist ein Fehlerkorrektur-Code, der auf einer zweidimensionalen Struktur basiert. Eine solche Struktur eines C = C1 × C2 Produkt Codes ist in 1 dargestellt. Beim Codieren werden die k Informationsbits in einer Matrix U der Größe k2 × k1 angeordnet (mit k1·k2 = k). Jede Zeile von U wird kodiert durch einen (n1, k1) binären linearen Blockcode C1. In 1 kann das zeilenweise Codieren beispielsweise stattfinden durch einen (8,4) Hamming Code. Die nach der Zeilencodierung entstehende k2 × n1 Matrix wird dann spaltenweise durch einen (n2, k1) binären linearen Blockcode codiert. In 1 kann es sich hierbei beispielsweise um einen (6,3) Shortened Hamming Code handeln. Es entsteht eine Matrix C der Größe n1 × n2 mit der Struktur
    Figure DE102014204828B4_0002
  • Die Länge und Dimension des Product Codes sind n = n1·n2 und k = k1·k2. Die Coderate r ist das Produkt der Coderaten des Zeilencodes C1 und des Spaltencodes C2, d. h. r = (k1/n1)(k2/n2) = r1·r2. Die beiden Codes C1 und C2 werden üblicherweise als Komponentencodes bezeichnet. Jede Zeile von C ist ein Codewort von C1. Ähnlich ist jede Spalte C ein Codewort von C2. Typische Komponentencodes sind kurze algebraische Codes, wie z. B. Single Parity-Check Codes, Hamming Codes, Bose-Chaudhuri-Hochquenghem (BCH) Codes (und ihre gekürzten/erweiterten Versionen). Produkt Codes dieser Art sind z. B. standardisiert im IEEE 802.16 Standard (WiMax).
  • Product Codes werden iterativ decodiert. Eine typische Implementation eines Decoders funktioniert wie folgt. Jede Iteration ist in zwei Schritte aufgeteilt:
    Erstens wird im Rahmen eines Zeilendecodierungsschrittes jede Zeile decodiert durch einen Soft-Input Soft-Output Decodieralgorithmus (z. B. den BCJR Algorithmus). Hierbei werden die Voraussetzungen berücksichtigt, die durch den Zeilencode C1 vorgegeben sind. Zweitens wird im Rahmen eines anschließenden Spaltendecodierschrittes jede Spalte durch einen Soft-Input Soft-Output Decodieralgorithmus (z. B. BCJR Algorithmus) decodiert. Auch hier werden die Voraussetzungen berücksichtigt, die durch den Code C2 vorgegeben sind. Die Zeilen- und Spaltendecoder tauschen Soft-Informationen aus. Dieser Decodierprozess ist sehr praktisch, jedoch nicht optimal, da der gesamte Code nicht durch die beiden Dekodierer gemeinsam decodiert wird.
  • Wenn einer der beiden Komponentencodes ein Single Parity-Check Code ist, so kann gemäß dem Stand der Technik optimales Maximum Likelihood Decoding durchgeführt werden. Dieser Ansatz ist beschrieben in J. Wolf, ”Efficient maximum likelihood decoding of linear block codes using a trellis,” IEEE Trans. Inf. Theory, vol. 24, no. 1, pp. 76–80, Jan. 1978. Der hier beschriebene Algorithmus basiert auf einer kompakten Trellis-Beschreibung des Product Codes und verwendet Viterbi Decoding. Die gesamte Decodierkomplexität ist proportional zu n1·22·k2.
  • DE 10 2013 201 422 B3 beschreibt ein Verfahren zum Wiederherstellen verlorengegangener Daten, die von einer Sendevorrichtung über einen Übertragungskanal gesendet werden, wobei die Daten mittels eines nichtbinären Low-Density-Parity-Check-Codes kodiert und dekodiert werden.
  • Das Kodieren von Daten unter Verwendung eines Product-Codes ist bekannt aus der Druckschrift LENTMAIER M. [et al.]: From Product Codes to Structured Generalized LDPC Codes. In: 5th International ICST Conference an Communications and Networking in China, 2010, S. 1–8. Die zu übertragenden Datensymbole werden in Form einer Matrix der Größe k2 × k1 angeordnet und unter Verwendung eines Zeilenkodes kodiert, so dass zeilenweise redundante Datensymbole erzeugt werden. Ferner wird ein Spaltencode verwendet, so dass spaltenweise redundante Datensymbole erzeugt werden. Es handelt sich um Single-Parity-Check-Codes.
  • US 2006/0285852 A1 beschreibt das Dekodieren eines Product-Codes durch einen IMAP-TPC-Decoder mit einem symbol-by-symbol MAP-Detector.
  • Aufgabe der Erfindung ist es, ein Verfahren zum Wiederherstellen verlorengegangener und/oder beschädigter Daten bereitzustellen, das eine geringere Decodierkomplexität aufweist.
  • Die Lösung der Aufgabe erfolgt erfindungsgemäß durch die Merkmale des Anspruchs 1.
  • Das erfindungsgemäße Verfahren dient dem Wiederherstellen verloren gegangener und/oder beschädigter Daten, die von einer Sendevorrichtung über einen Übertragungskanal an eine Empfangsvorrichtung gesendet werden. Das Verfahren weist die folgenden Schritte auf:
    Die Daten werden unter Verwendung eines mit der Sendevorrichtung verbundenen Encoders codiert. Anschließend werden sie von der Sendevorrichtung über einen Übertragungskanal zur Empfangsvorrichtung übermittelt. Unter Verwendung eines mit der Empfangsvorrichtung verbundenen Decoders werden die Daten decodiert. Während des Decodierens werden verloren gegangene und/oder beschädigte Daten wiederhergestellt.
  • Das Codieren findet unter Verwendung eines Produkt Codes statt. Hierbei werden die zu übertragenden Datensymbole, insbesondere Datenbits in Form einer Matrix oder eines Arrays der Größe k2 × k1 angeordnet. Unter Verwendung eines Zeilencodes werden die Daten codiert, so dass hierdurch zeilenweise redundante Datensymbole erzeugt werden. Ferner werden die zu übertragenden Datensymbole in Form der genannten Matrix der Größe k1 × k2 unter Verwendung eines Spaltencodes codiert, so dass hierdurch spaltenweise redundante Datensymbole erzeugt werden.
  • Es entsteht somit durch den Product Code eine Matrix oder ein Array der Größe n1 × n2, das aus den zeilenweise und spaltenweise erzeugten redundanten Datensymbole zusammen mit den zu übertragenden Datensymbolen besteht. Diese Daten werden von der Sendervorrichtung über den Übertragungskanal an die Empfangsvorrichtung übermittelt.
  • Erfindungsgemäß ist mindestens einer der beiden zum Codieren verwendeten Codes, nämlich der Zeilencode und der Spaltencode ein Single Parity-Check Code. Hierbei handelt es sich um einen Code, bei dem beim Codiervorgang nur ein Paritätsbit erzeugt wird. Bevorzugt wird ein Single Parity-Check Code verwendet, durch den ein Paritätssymbol bspw. durch eine XOR-Verknüpfung der zu übertragenden Datensymbole erzeugt wird.
  • Erfindungsgemäß werden die übertragenen Daten decodiert entsprechend einer Decodierung von Daten, die durch eine serielle Konkatenation eines nicht binären Single Parity-Check Decoders mit einem zweiten inneren Code erzeugt wurden. Als zweiter innerer Code können verschiedene Codes verwendet werden, bspw. ein Hamming Code (einschließlich seiner gekürzten oder erweiterten Version: shortened Hamming Code, extended Hamming Code), ein Reed-Muller Code oder ein Golay-Code.
  • Der Decodiervorgang ist somit beschreibbar als ein Decodieren eines nicht binären Low-Density-Parity Check Codes mit lediglich einem Check Node in der Darstellung eines bipartiten Graphen, so dass ein nicht iteratives Decodieren durchgeführt wird.
  • Der erfindungsgemäße Decodieralgorithmus weist eine geringere Decodierkomplexität als der aus dem Stand der Technik bekannte Algorithmus von Jack Wolf auf. Die Decodierkomplexität des erfindungsgemäßen Verfahrens ist proportional zu n1·k2·2k2.
  • Es ist bevorzugt, dass der zum Codieren verwendete Code, der kein Single Parity Check Code ist, ein (7,4 oder 8,4)-Hamming Code ist. Weiterhin ist bevorzugt, dass die während des Codierens durchgeführten Operationen unter Verwendung einer Fast Fourier Transformation oder einer Fast Hadamard Transformation durchgeführt werden. Hierbei handelt es sich insbesondere um das Maxium A posteriori (MAP) Decoding. Mit anderen Worten wird somit das aus dem Stand der Technik bekannte Decodierproblem in ein symbolweises MAP Decoding umgewandelt.
  • Weitere Einzelheiten hierzu können den folgenden Veröffentlichungen entnommen werden:
    • L. Barnault and D. Declercq, ”Fast decoding algorithm for LDPC over GF(2q),” in Proc. IEEE Inf. Theory Workshop, März 2003, Seiten 70–73.
    • A. Goupil, M. Colas, G. Gelle, and D. Declercq, ”FFT-based BP decoding of general LDPC codes over Abelian groups,”, IEEE Trans. Commun., vol. 55, Nr. 4, Seiten 644–649, April 2007.
  • Weiterhin kann der Decodiervorgang vereinfacht werden durch Anwenden von Annäherungen für die Check Node Update Regel:
    • A. Voicila, D. Declercq, F. Verdier, M. Fossorier, and P. Urard, ”Low complexity decoding for non-binary LDPC codes in high Order fields,” IEEE Trans. Commun., vol. 58, Nr. 5, Seiten 1365–1375, Mai 2010.
  • Im Folgenden werden bevorzugte Ausführungsformen der Erfindung anhand von Figuren erläutert.
  • Es zeigen:
  • 1 ein vereinfachtes Beispiel des Codiervorgangs durch einen Produkt Code.
  • 2 eine schematische Darstellung des Grundgedankens des erfindungsgemäßen Verfahrens
  • 3 am Beispiel eines Trellis-Abschnittes für einen Single Parity Check Code
  • 46 konkrete Beispiele einer Ausführungsform des erfindungsgemäßen Verfahrens
  • 7 eine Darstellung der Leistungsfähigkeit des erfindungsgemäßen Verfahrens verglichen zum Stand der Technik
  • 1 wurde bereits in Zusammenhang mit dem Stand der Technik erläutert.
  • Im Folgenden wird das erfindungsgemäße Verfahren detaillierter beschrieben: Die Struktur des Codes wird durch den Encoder definiert. Wie bereits dargestellt werden die k Informationsbits des Product Codes in einem Array U der Größe k2 × k1 angeordnet. Jede Zeile von U wird kodiert mit einem Zeilencode. Der Zeilencode kann beispielsweise ein (n1, k1 = n1 – 1) Single Parity Check Code sein. Die berechneten Paritätsbits werden jeder Zeile angehängt. Die hieraus entstehende Matrix der Größe k2 × n1 wird als M bezeichnet. Die n1 Spalten von M werden bezeichnet als mT 1, mT 2, ..., mT n1 Somit ergibt sich (mit T als Transpose Operator)
    Figure DE102014204828B4_0003
  • Hierbei ist 0 der Vektor mit k2 Bits, der nur aus Nullen besteht. Jede Spalte wird dann kodiert durch den (n2, k2) Code C2. Die berechneten Redundanzbits werden an jede Spalte angehängt, so dass eine Matrix C der Größe n2 × n1 entsteht. Die Spalten C werden bezeichnet als CT 1, CT 2, ..., CT n1
  • Es ist zu beachten, dass ci = miG2 wobei G2 die Generatormatrix von C2 ist. Das Product Codewort wird schließlich bezeichnet als c = [c1 c2 ... cn1].
  • Der gesamte Product Code wird bezeichnet als C. Seine Blockgröße und Dimension werden durch n und k bezeichnet mit n = n1 × n2 und k = k1 × k2.
  • Das Codewort wird dann durch Binary Phase Shift Keying (BPSK) moduliert, so dass ein modulierter Vektor mit n Symbolen entsteht. x = [x1 x2 ... xn1] mit xi = 1 – 2·ci, wobei 1 der Vektor der Länge n2 ist, der ausschließlich aus Einsen besteht. Der Vektor x wird schließlich übertragen über einen Additive White Gaussian Noise (AWGN) Kanal. Hieraus resultiert: y = x + ν.
  • Hier ist jedes Element von ν unabhängig verteilt gemäß einer um den Nullpunkt verteilten Gaußschen Verteilung mit einer Varianz von σ2. Das Signal-Rausch-Spannungsverhältnis wird ausgedrückt durch Eb/N0, wobei Eb die Energie per Informationsbit ist und N0 die einseitige Rauschleistungsspektraldichte. Der Vollständigkeit halber werden y und ν ähnlich wie c und x ebenfalls partitioniert: y = [y1 y2 ... yn1] und ν = [ν1 ν2 .... νn1], mit yi = xi + νi.
  • Die Vektoren mT 1, mT 2, ..., mT n1 können betrachtet werden als die binären Vektordarstellungen von Elementen eines finiten Feldes der Ordnung q = 2k
  • Die Elemente, die mT 1, mT 2, ..., mT n1 entsprechen, werden als μ1, μ2, ... μn1 bezeichnet. Daher kann Gleichung (1) umgeschrieben werden als
    Figure DE102014204828B4_0004
    Hierdurch wird eine Parity-Check Gleichung eines (n1, n1– 1)-SPC codes Cq über Fq mit einer Partitätsmatrix H' = [1 1 1 ... 1] definiert.
  • Mit x = [x1, x2, ..., xn1] wird das n1-Symbol Codewort bezeichnet. Die Symbole werden dann einer Konstellation x zugeordnet, die sich zusammensetzt aus q Realzahlvektoren, die gegeben sind durch die q BPSK-modulierten Wörter von C2. Als M wird die Modulation (mapping) M(w) : Fq → x bezeichnet.
  • Die Mapping Funktion M(w) wird beschränkt durch die Product Code Konstruktion. Der Realzahlvektor ist einem generischen Symbol μ zugeordnet, das durch den BPSK-modulierten binären Vektor ci = m1 G 2 gegeben ist.
  • Die Relation zwischen der Perspektive eines konventionellen Product Code Encoders und der von Coded Modulation ist in 2 dargestellt. Der Code Cq kann in effizienter Weise über seine Trellis decodiert werden. Diese umfasst q Zustände. Hierbei ist jeder Zustand (außer den Endzuständen) im Abschnitt i – 1 ist verbunden durch q Kanten mit den Zuständen in Abschnitt i. Ein Beispiel eines Trellis-Abschnittes für einen SPC Code über F8 ist in 3 dargestellt.
  • Hierbei ist α ein Primitivelement von F8. Mit Si wird der Trellis-Zustand zum Zeitpunkt i bezeichnet. Die Bezeichnung, die der Trellis-Kante, die den Zustand s zum Zeitpunkt i – 1 zum Zustand s' zum Zeitpunkt i mit dem Zustand s' verbindet, zugeordnet ist, ist gegeben durch s + s', mit s, s' ∊ Fq.
  • Indem der innere Code C2 zusammen mit dem BPSK Mapping als eine Modulation behandelt wird, ist es möglich einen optimalen symbolweisen Decoder zu verwenden. Dieser kann basieren auf dem nicht binären BCJR Algorithmus, der beschreiben ist in G. Liva, S. Scalise, E. Paolini, and M. Chiani, ”Turbo codes based an time-variant memory-1 convolutional codes over Fq,” in Proc. 2011 IEEE Int. Conf. Commun., Kyoto, Japan, Juni 2011, pp. 1–6.
  • Im Folgenden wird ein konkreteres Beispiel des erfindungsgemäßen Verfahrens dargestellt. In der Darstellung gemäß 4 wird ausgegangen von einer Matrix der Größe k1 × k2, die die zu übertragenden Informationsbits U1 bis U12 enthält. Diese werden durch einen Produkt Code codiert. Als Zeilencode wird ein (4, 3) SPC Code verwendet. Als Spaltencode wird ein (8,4) Hamming Code verwendet. Es entstehen somit die Paritätsbits P1 bis P16.
  • In einer vektorweisen Darstellung ergibt sich die im rechten Teil der 4 dargestellte Anordnung. Es ergibt sich somit die vektorweise Gleichung: p_ = U_A + U_B + U_C
  • Im dargestellten Beispiel ist k1 = 4. Somit ist jeder Vektor ein Element eines Galois-Feldes der Ordnung 2k1 also 16.
  • Bei der Betrachtung gemäß dem erfindungsgemäßen Verfahren ergibt sich somit eine Darstellung gemäß 5. Der Decodiervorgang wird somit betrachtet als eine Konkatenation eines nicht binären Single Parity-Check Encoders mit einem inneren Hamming Encoder.
  • Es ergibt sich somit in der Darstellungsform eines bipartiten Graphen die Darstellung gemäß 6. Hier ist ein nicht binärer LDPC-Code mit lediglich einem Check Node abgebildet, so dass ein nicht iteratives Decodieren durchgeführt werden kann.
  • Hierbei gilt:
    Y_A ist die Kanalausgabe für X_A, Y_A = X_A + n_A.
    Y_B ist die Kanalausgabe für X_B, Y_B = X_B + n_B.
    Y_C ist die Kanalausgabe für X_C, Y_C = X_C + n_C.
    Y_P ist die Kanalausgabe für X_P, Y_P = X_P + n_P.
  • Die Feldordnung q ist 16.
  • Die Leistungsfähigkeit des erfindungsgemäßen Verfahrens verglichen zum Stand der Technik ist in 7 dargestellt. Hier ist der Code C1 ein (8,7) Single Parity Check Code, während der innere Code C2 ein (24,12) Extended Golay Code ist. Die durchgezogene Linie mit den Kreisen stellt die typische Performance eines iterativen Decoders dar. Die Linie mit den Dreiecken stellt die Performance eines iterativen Decoders mit Soft Information Scaling dar. Die durchgezogene Linie ohne Markierungen stellt die maximal erreichbare Grenze bezüglich der Leistungsfähigkeit dar. Die Leistungsfähigkeit des erfindungsgemäßen Verfahrens liegt nahe dieser theoretischen Grenze und übersteigt die Leistungsfähigkeit der aus dem Stand der Technik bekannten Decoder.

Claims (4)

  1. Verfahren zum Wiederherstellen verlorengegangener und/oder beschädigter Daten, die von einer Sendevorrichtung über einen Übertragungskanal gesendet werden, wobei das Verfahren die folgenden Schritte aufweist: Codieren der Daten unter Verwendung eines mit der Sendevorrichtung verbundenen Encoders; Übermitteln der Daten von der Sendevorrichtung zu der Empfangsvorrichtung über einen Übertragungskanal und Decodieren der Daten unter Verwendung eines mit der Empfangsvorrichtung verbundenen Decoders, wobei während des Decodierens verlorengegangene und/oder beschädigte Daten wiederhergestellt werden, wobei das Codieren unter Verwendung eines Product-Codes durchgeführt wird, indem die zu übertragenden Datensymbole in Form einer Matrix der Größe k2 × k1 angeordnet werden und unter Verwendung eines Zeilencodes kodiert werden, so dass zeilenweise redundante Datensymbole erzeugt werden und ferner die zu übertragenden Datensymbole in Form der Matrix der Größe k2 × k1 unter Verwendung eines Spaltencodes codiert werden, so dass spaltenweise redundante Datensymbole erzeugt werden, wobei die zeilenweise und spaltenweise erzeugten redundanten Datensymbole zusammen mit den zu übertragenden Datensymbolen vom Sender über den Übertragungskanal an den Empfänger übermittelt werden, wobei mindestens einer der beiden zum Codieren verwendeten Codes, nämlich der Zeilencode und der Spaltencode, ein Single Parity-Check Code ist. dadurch gekennzeichnet, dass die übertragenen Daten decodiert werden, entsprechend einer Dekodierung von Daten, die durch eine serielle Konkatenation eines nicht-binären Single Parity-Check Encoders mit einem zweiten inneren Code erzeugt wurden, so dass der Dekodierungsvorgang beschreibbar ist als ein Decodieren eines nicht binären Low Density Parity-Check Codes mit lediglich einem Check Node, so dass ein nicht-iteratives Decodieren durchgeführt wird.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass der zum Kodieren verwendete Code, der kein Single Parity-Check Code ist, ein (8,4) Hamming Code ist.
  3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass die während des Dekodierens durchgeführten Operationen unter Verwendung einer Fast Fourier Transformation oder einer Fast Hadamard Transformation durchgeführt werden.
  4. Verfahren nach Anspruch 3, dadurch gekennzeichnet, dass der Decodiervorgang vereinfacht wird durch Anwenden von Annäherungen für die Check Node Update Regel.
DE102014204828.1A 2014-03-14 2014-03-14 Verfahren zum Wiederherstellen verlorengegangener und/oder beschädigter Daten Active DE102014204828B4 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102014204828.1A DE102014204828B4 (de) 2014-03-14 2014-03-14 Verfahren zum Wiederherstellen verlorengegangener und/oder beschädigter Daten

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102014204828.1A DE102014204828B4 (de) 2014-03-14 2014-03-14 Verfahren zum Wiederherstellen verlorengegangener und/oder beschädigter Daten

Publications (2)

Publication Number Publication Date
DE102014204828A1 DE102014204828A1 (de) 2015-09-17
DE102014204828B4 true DE102014204828B4 (de) 2016-06-09

Family

ID=54010216

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102014204828.1A Active DE102014204828B4 (de) 2014-03-14 2014-03-14 Verfahren zum Wiederherstellen verlorengegangener und/oder beschädigter Daten

Country Status (1)

Country Link
DE (1) DE102014204828B4 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102016219393B4 (de) 2016-10-06 2023-11-09 Schaeffler Technologies AG & Co. KG Lastorientiert gestalteter Planetenträger mit in Umfangsrichtung zueinander versetzt angeordneten Ausklinkungen am Rand
DE102016219396A1 (de) 2016-10-06 2018-04-12 Schaeffler Technologies AG & Co. KG Lastorientiert gestalteter Planetenträger mit kooperierenden Einbuchtungen am Verbindungsstück und Aussparungen an Trägerwangen

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060285852A1 (en) * 2005-06-21 2006-12-21 Wenze Xi Integrated maximum a posteriori (MAP) and turbo product coding for optical communications systems
DE102013201422B3 (de) * 2013-01-29 2014-02-20 Deutsches Zentrum für Luft- und Raumfahrt e.V. Verfahren zum Wiederherstellen verlorengegangener und/ oder beschädigter Daten

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060285852A1 (en) * 2005-06-21 2006-12-21 Wenze Xi Integrated maximum a posteriori (MAP) and turbo product coding for optical communications systems
DE102013201422B3 (de) * 2013-01-29 2014-02-20 Deutsches Zentrum für Luft- und Raumfahrt e.V. Verfahren zum Wiederherstellen verlorengegangener und/ oder beschädigter Daten

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
LENTMAIER, M. [et al.]: From Product Codes to Structured Generalized LDPC Codes. In: 5th International ICST Conference on Communications and Networking in China, 2010, S.1-8. - ISBN 973-963-9799-97-4 *
LENTMAIER, M. [et al.]: From Product Codes to Structured Generalized LDPC Codes. In: 5th International ICST Conference on Communications and Networking in China, 2010, S.1-8. – ISBN 973-963-9799-97-4

Also Published As

Publication number Publication date
DE102014204828A1 (de) 2015-09-17

Similar Documents

Publication Publication Date Title
DE60206419T2 (de) Löschung und einzelfehlerkorrekturdekoder für lineare blockkodes
DE602005003767T2 (de) Verfahren zum komprimieren einer menge korrelierter signale
DE102010035210B4 (de) Verfahren zur Rückgewinnung verlorener Daten und zur Korrektur korrumpierter Daten
DE102014204828B4 (de) Verfahren zum Wiederherstellen verlorengegangener und/oder beschädigter Daten
DE69033173T2 (de) Signalzustandsdiagrammanordnung digitaler Datenfolgen
DE102012220334B3 (de) Verfahren zum Wiederherstellen verlorengegangener und/oder beschädigter Daten
DE102013201422B3 (de) Verfahren zum Wiederherstellen verlorengegangener und/ oder beschädigter Daten
DE102014208996B3 (de) Verfahren zum Wiederherstellen verlorengegangener und/oder beschädigter Daten
DE19725275C2 (de) Verfahren zur Decodierung von block- oder faltungscodierten digitalen Signalen
DE102013001740B3 (de) Anordnung und Verfahren zur Decodierung eines Datenworts mit Hilfe eines Reed-Muller-Codes
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
DE102014214451B4 (de) Verfahren zum Wiederherstellen von verloren gegangenen und/oder beschädigten Daten
DE102014216143B4 (de) Verfahren zum Wiederherstellen verlorengegangener und/oder beschädigter Daten
DE102013223813B4 (de) Verfahren zur Wiederherstellung verloren gegangener und/oder beschädigter Daten
DE102014210955B4 (de) Verfahren zum Wiederherstellen von verlorengegangenen und/oder beschädigten Daten
DE102011102503B3 (de) Verfahren zum Berichtigen beschädigter Daten
DE102013223413B4 (de) Verfahren zum Wiederherstellen verloren gegangener und/oder beschädigter Daten
DE102022111624B4 (de) Fehlerkorrektur mit schneller Syndromberechnung
DE102015216710B4 (de) Verfahren zum Übertragen von Daten
DE102013223801B4 (de) Verfahren zum Wiederherstellen verloren gegangener und/oder beschädigter Daten
DE102013219863B4 (de) Verfahren zum Übertragen einer Nachricht von einem Sender zu einem Empfänger über ein Kommunikationsmedium mittels Packet-Level-Kodierung
DE102012004273B4 (de) Verfahren zum Wiederherstellen verlorengegangener und/oder beschädigter Daten
DE102014215015B3 (de) Verfahren zum Wiederherstellen verlorengegangener und /oder beschädigter Daten
DE102014218384B3 (de) Rückgewinnung eines binären Response-Musters von einem verrauschten Kanal

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