DE102014208996B3 - Procedure for recovering lost and / or corrupted data - Google Patents

Procedure for recovering lost and / or corrupted data Download PDF

Info

Publication number
DE102014208996B3
DE102014208996B3 DE102014208996.4A DE102014208996A DE102014208996B3 DE 102014208996 B3 DE102014208996 B3 DE 102014208996B3 DE 102014208996 A DE102014208996 A DE 102014208996A DE 102014208996 B3 DE102014208996 B3 DE 102014208996B3
Authority
DE
Germany
Prior art keywords
degree
nodes
variable nodes
separated
code
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
DE102014208996.4A
Other languages
German (de)
Inventor
Giuliano Garrammone
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 DE102014208996.4A priority Critical patent/DE102014208996B3/en
Application granted granted Critical
Publication of DE102014208996B3 publication Critical patent/DE102014208996B3/en
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/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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/033Theoretical methods to calculate these checking codes
    • H03M13/036Heuristic code construction methods, i.e. code construction or code search based on using trial-and-error
    • 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
    • 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/3761Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 using code combining, i.e. using combining of codeword portions which may have been transmitted separately, e.g. Digital Fountain codes, Raptor codes or Luby Transform [LT] codes

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)

Abstract

Die Erfindung betrifft ein Verfahren zum Übertragen von Daten über einen verlustbehafteten Übertragungskanal, wobei Daten durch einen LDPC-Code kodierte werden. Der verwendete LDPC-Code ist durch einen bipartiten Graphen darstellbar. Die Erfindung ist dadurch gekennzeichnet, dass die Anzahl der Variable Nodes mit einem Grad von 2 V2 kleiner als m/2 ist, wobei m die Anzahl der Paritätssymbole ist, die durch den Code erzeugt werden, wobei diese Variable Nodes mit einem Grad von 2 voneinander getrennt sind, d. h. nicht durch Kanten mit gemeinsamen Check Nodes verbunden sind, wobei die Anzahl der voneinander getrennten Variable Nodes mit einem Grad von 3 V3_S = floor ((m – 2 V2)/3) ist, wobei diese Variable Nodes mit einem Grad von 3 voneinander getrennt sind, d. h. nicht durch Kanten mit gemeinsamen Check Nodes verbunden sind.The invention relates to a method for transmitting data over a lossy transmission channel, wherein data is coded by an LDPC code. The LDPC code used can be represented by a bipartite graph. The invention is characterized in that the number of variable nodes having a degree of 2V2 is smaller than m / 2, where m is the number of parity symbols generated by the code, these variables being nodes of degree 2 from each other are separated, d. H. are not connected by edges to common check nodes, where the number of separate variable nodes is to a degree of 3 V3_S = floor ((m-2 V2) / 3), these variable nodes being separated by a degree of 3 , d. H. not connected by edges with common check nodes.

Description

Die Erfindung betrifft ein Verfahren zum Wiederherstellen verlorengegangener und/oder beschädigter Daten.The invention relates to a method for restoring lost and / or damaged data.

Aus dem Stand der Technik ist es bekannt, Daten, die über einen sogenannten Packet-Erasure-Channel (PEC) übermittelt werden, durch Fehlerkorrekturverfahren zu schützen. Beispielsweise ist Packet-Level-Coding eine einfache Methode, um eine verlässliche Übertragung in einem Kommunikationssystem zu gewährleisten. Die zu übertragenden Informationen sollen ferner geschützt werden, indem Pakete in höheren Schichten codiert werden. Das Grundprinzip des Packet-Level-Coding ist in 1 dargestellt.It is known from the prior art to protect data transmitted via a so-called packet erasure channel (PEC) by means of error correction methods. For example, packet-level coding is a simple way to ensure reliable transmission in a communication system. The information to be transmitted should also be protected by encoding packets in higher layers. The basic principle of packet-level coding is in 1 shown.

Zunächst wird die übertragene Nachricht in k Informationspakete aufgeteilt und in n Codewortpakete codiert. Dies geschieht durch einen (n, k)-Code, wobei n die Codewortlänge und k die Blockgröße angibt. Somit werden m = n – k Paritätspakete durch den Packet-Level-Encoder erzeugt.First, the transmitted message is divided into k information packets and coded in n codeword packets. This is done by a (n, k) code, where n is the codeword length and k is the block size. Thus, m = n-k parity packets are generated by the packet-level encoder.

Weiterhin werden die n Codewortpakete im Physical Layer durch Fehlerkorrekturcodes (z. B. Turbo, LDPC...), Fehlererkennungscodes (z. B. Cyclic Redundancy Check) geschützt und anschließend übermittelt.Furthermore, the n codeword packets in the physical layer are protected by error correction codes (eg Turbo, LDPC, etc.), error detection codes (eg cyclic redundancy check) and then transmitted.

Anschließend wird auf der Empfängerseite für jedes Paket im Physical Layer eine Fehlerkorrektur durchgeführt, so dass verbleibende Fehler durch den Fehlererkennungscode erkannt werden. Wenn Fehler erkannt werden, wird das Datenpaket als verlorengegangen angesehen und entsprechend markiert. Somit sehen die Schichten über dem Physical Layer das Kommunikationsmedium als einen Packet-Erasure-Channel an, über den Pakete entweder korrekt empfangen oder mit einer bestimmten Auslöschungswahrscheinlichkeit ε verlorengehen.Subsequently, an error correction is performed on the receiver side for each packet in the physical layer, so that remaining errors are recognized by the error detection code. If errors are detected, the data packet is considered lost and marked accordingly. Thus, the layers above the physical layer view the communication medium as a packet erasure channel over which packets are either received correctly or lost with a certain probability of cancellation ε.

Wenn eine ausreichend große Menge an Paketen empfangen wurde, stellt der Packet-Level-Decoder die Originalnachricht wieder her.When a sufficient amount of packets has been received, the packet level decoder recovers the original message.

Die Codierprozedur wird üblicherweise bitweise unter Verwendung des Encoders eines binären oder nicht binären Codes durchgeführt. Das Dekodieren wird durchgeführt durch Lösen des Gleichungssystems, das durch die Parity-Check-Matrix H des Codes gegeben ist.The coding procedure is usually performed bitwise using the encoder of a binary or non-binary code. The decoding is performed by solving the system of equations given by the parity check matrix H of the code.

Softwareimplementierungen von Packet-Level-Encodern und Decodern sind besonders vorteilhaft, da sie keinen großen Aufwand hinsichtlich des Designs oder der Implementierung erfordern und ferner flexibler im Vergleich zu Hardwareimplentierungen sind. Softwaremodule können auf einfache Weise in eine Hardwarearchitektur integriert werden, die nicht speziell entwickelt wurde, um Packet-Level-Coding zu unterstützen.Software implementations of packet level encoders and decoders are particularly advantageous because they do not require much design or implementation overhead and are also more flexible in comparison to hardware implementations. Software modules can be easily integrated into a hardware architecture that has not been specifically designed to support packet-level coding.

Informationen über den Stand der Technik können den folgenden Veröffentlichungen entnommen werden:

  • [1] J. Byers, M. Luby, M. Mitzenmacher, und A. Rege, ”A digital fountain approach to reliable distribution of bulk data”, SIGCOMM Comput. Commun. Rev., vol. 28, no. 4, Seiten 56–67, Okt. 1998
  • [2] G. Garrammone, B. Matuz, ”Short Erasure Correcting LDPC IRA Codes over GF(q)”, GLOBECOM 2010, Seiten 1–5
  • [3] G. Garrammone, E. Paolini, B. Matuz, G. Liva, M. Chiani, ”Non-Binary Low-Density Parity-Check Codes for the q-ary Erasure Channel”, IEEE International Conference on Communications (ICC), Jun. 2013, Budapest, Ungarn
  • [4] C. Di, ”Asymptotic and Finite-Length Analysis of Low-Density Parity-Check Codes” PhD Thesis, EPFL, Lausanne, Schweiz
  • [5] T. Richardson, A. Shokrollahi, R. Urbanke, ”Finite-length Analysis of various low-density parity-check codes for the binary erasure channel”, IEEE International Symposium on Information Theory (ISIT), 2002, Lausanne, Schweiz
  • [6] DE 10 2013 213 778 B3
  • [7] ”Kanalkodierung”, 3. Auflage, Prof. Dr.-Ing. Martin Bossert, Oldenburg Wissenschaftsverlag 2013, Seiten 126–129
  • [8] ”Low-Density-Parity-Check-Codes” – Eine Einführung, Tilo Strutz, 2010–2013, 26. Februar 2013
Information about the prior art can be found in the following publications:
  • [1] J. Byers, M. Luby, M. Mitzenmacher, and A. Rege, "A digital fountain approach to reliable distribution of bulk data", SIGCOMM Comput. Commun. Rev., vol. 28, no. 4, pages 56-67, Oct. 1998
  • [2] G. Garrammone, B. Matuz, "Short Erasure Correcting LDPC IRA Codes over GF (q)", GLOBECOM 2010, pages 1-5
  • [3] G. Garrammone, E. Paolini, B. Matuz, G. Liva, M. Chiani, "Non-Binary Low-Density Parity-Check Codes for the q-ary Erasure Channel", IEEE International Conference on Communications (ICC ), Jun. 2013, Budapest, Hungary
  • [4] C. Di, "Asymptotic and Finite-Length Analysis of Low-Density Parity Check Codes" PhD Thesis, EPFL, Lausanne, Switzerland
  • [5] T. Richardson, A. Shokrollahi, R. Urbanke, "Finite-length Analysis of Various Low-Density Parity-check Codes for the Binary Erasure Channel", IEEE International Symposium on Information Theory (ISIT), 2002, Lausanne, Switzerland
  • [6] DE 10 2013 213 778 B3
  • [7] "Channel Coding", 3rd edition, Prof. Dr.-Ing. Martin Bossert, Oldenburg Science Publishing 2013, pages 126-129
  • [8] "Low Density Parity Check Codes" - An Introduction, Tilo Strutz, 2010-2013, February 26, 2013

Es ist möglich, einen LDPC-Code mittels eines zweiteiligen Graphs darzustellen, welcher der Paritätsprüfmatrix H zugeordnet ist. Der zweiteilige Graph besteht aus einem Satz variabler Knoten (VNs), einem Satz von Prüf-Knoten (CNs) und einem Satz von Kanten, welche die VNs mit den CNs verbinden. Variable Knoten sind den Spalten von H zugeordnet, und CNs sind den Reihen von H zugeordnet. Eine Kante verbindet einen VN mit einem CN, wenn in der entsprechenden Position der Paritätsprüfmatrix [7 und 8] ein nicht null betragender Eintrag existiert.It is possible to represent an LDPC code by means of a two-part graph associated with the parity check matrix H. The two-part graph consists of a set of variable nodes (VNs), a set of check nodes (CNs), and a set of edges connecting the VNs to the CNs. Variable nodes are assigned to the columns of H, and CNs are assigned to the rows of H. An edge connects one VN with a CN if there is a nonzero entry in the corresponding position of the parity check matrix [7 and 8].

In 2 ist ein Beispiel gezeigt, das eine Paritätsprüfmatrix auf einem Galois-Feld (GF) der Ordnung 4 aufweist, d. h. eines Galois-Felds, das 4 Symbole enthält (die als Potenzen des primitiven Elements alpha repräsentiert sein können). Der zweiteilige Graph, welcher der Paritätsprüfmatrix zugeordnet ist, ist ebenfalls in 2 gezeigt. CNs sind durch Quadrate markiert, und VNs sind durch Kreise markiert. 2 zeigt ferner die Paritätsprüfgleichungen, die von einem Codewort-Vektor v erfüllt werden müssen.In 2 an example is shown having a parity check matrix on a Galois field (GF) of order 4, ie a Galois field containing 4 symbols (which may be represented as powers of the primitive element alpha). The two part graph associated with the parity check matrix is also in 2 shown. CNs are marked by squares, and VNs are marked by circles. 2 also shows the parity check equations that must be satisfied by a codeword vector v.

Der Grad eines VN (bzw. eines CN) wird definiert als die Anzahl der von ihm ausgehenden Kanten. Die kanten-orientierten Grad-Verteilungs-Polynome sind definiert als

Figure DE102014208996B3_0002
wobei λi und pi die Bruchteile von Kanten sind, die mit den VNs und CNs des Grads i verbunden sind, dv,max der maximale VN-Grad ist und dc,max der maximale CN-Grad ist.The degree of a VN (or a CN) is defined as the number of edges emanating from it. The edge-oriented degree distribution polynomials are defined as
Figure DE102014208996B3_0002
where λ i and p i are the fractions of edges associated with the VNs and CNs of degree i, d v, max is the maximum VN degree, and d c, max is the maximum CN degree.

In 3 sind die Grad-Verteilungs-Polynome für den in 2 gezeigten zweiteiligen Graph aufgeführt. Ferner ist in 3 die Definition der Code-Rate R angegeben.In 3 are the degree distribution polynomials for the in 2 listed two-part graph listed. Furthermore, in 3 the definition of the code rate R is given.

In der Praxis beginnt die Konzipierung eines LDPC-Codes mit der Suche nach eine geeigneten Gesamtheit von LDPC-Codes, welche die aufgrund der Grad-Verteilungs-Polynome gegebenen Beschränkungen erfüllt. Tatsächlich werden Gesamtheiten von LDPC-Codes durch die Grad-Verteilungs-Polynome parametrisiert. Generell werden unstrukturierte Gesamtheiten in Betracht gezogen, bei denen jede Permutation der Kanten unter den VNs und CNs zulässig ist, sofern die durch die Grad-Verteilungs-Polynome gegebenen Beschränkungen erfüllt sind [3].In practice, the design of an LDPC code begins with the search for an appropriate set of LDPC codes which satisfies the constraints imposed by the degree distribution polynomials. In fact, sets of LDPC codes are parameterized by the degree distribution polynomials. Generally, unstructured ensembles are considered in which any permutation of the edges among the VNs and CNs is allowed, provided the constraints given by the degree-distribution polynomials are met [3].

Es wurde auch eine teilweise strukturierte Gesamtheit binärer LDPC-Codes untersucht. Insbesondere wurden in Hinblick auf die Grad-Verteilungs-Polynome nicht sämtliche Kanten-Permutationen zugelassen. Es wurde insbesondere die Konnektivität einiger VNs des Grads 2 geprüft. Eine derartige Gesamtheit wurde in [5] erwogen, um die Error-Floor-Leistung binärer LDPC-Codes zu verbessern. Nach bestem Wissen der Erfinder wurde jedoch bisher eine ähnliche Teilstruktur noch nicht für nichtbinäre LDPC-Code-Gesamtheiten in Betracht gezogen.A partially structured set of binary LDPC codes was also examined. In particular, not all edge permutations were allowed with respect to the degree distribution polynomials. In particular, the connectivity of some Grade 2 VNs was examined. Such a set was considered in [5] to improve the error floor performance of binary LDPC codes. However, to the best of the inventors' knowledge, a similar substructure has not yet been considered for nonbinary LDPC code entities.

Auf der Empfängerseite wird ein Maximum-Likelihood-(ML-)Dekodieren durch Lösen der linearen Gleichungssysteme

Figure DE102014208996B3_0003
durchgeführt, wobei
Figure DE102014208996B3_0004
ein Vektor ist, der die gelöschten Codewort-Pakete enthält, xk ein Vektor ist, der die korrekt empfangenen Codewort-Pakete enthält,
Figure DE102014208996B3_0005
die Sub-Matrix ist, die aus den Spalten in der Paritätsprüfmatrix zusammengesetzt ist, die den gelöschten Codewort-Paketen entsprechen, und Hk die Sub-Matrix ist, die aus den Spalten in der Paritätsprüfmatrix zusammengesetzt ist, die den empfangenen Codewort-Paketen entsprechen. Anzumerken ist, dass die rechte Seite des Systems in der Gleichung (1) bekannt ist und es sich bei ihr um einen die Länge (n – k) aufweisenden Vektor von Paketen mit jeweils L Bits handelt, oder äquivalent dazu jeweils mit L/log2q Feld-Symbolen. Das System in Gleichung (1) kann mittels des Gaußschen Eliminations-Algorithmus durch Operationen gelöst werden, die an dem Galois-Feld vorgenommen werden, an dem der Code gebildet ist.At the receiver side, maximum likelihood (ML) decoding is achieved by solving the systems of linear equations
Figure DE102014208996B3_0003
performed, where
Figure DE102014208996B3_0004
is a vector containing the deleted codeword packets, x k is a vector containing the correctly received codeword packets,
Figure DE102014208996B3_0005
is the sub-matrix composed of the columns in the parity check matrix corresponding to the deleted codeword packets, and H k is the sub-matrix composed of the columns in the parity check matrix corresponding to the received codeword packets , It should be noted that the right side of the system is known in equation (1) and is a vector of packets of L bits each having the length (n-k), or equivalently each with L / log 2 q field symbols. The system in equation (1) can be solved by the Gaussian elimination algorithm through operations performed on the Galois field where the code is formed.

Aufgabe der Erfindung ist es, eine Verfahren zum Wiederherstellen verlorengegangener und/oder beschädigter Daten bereitzustellen, das eine verbesserte Leistungsfähigkeit, insbesondere eine verbesserte Codeword Error Rate (CER) aufweist.The object of the invention is to provide a method for recovering lost and / or damaged data, which has improved performance, in particular an improved codeword error rate (CER).

Die Lösung der Aufgabe erfolgt erfindungsgemäß durch die Merkmale des Anspruch 1. The object is achieved according to the invention by the features of claim 1.

Das erfindungsgemäße Verfahren dient dem Wiederherstellen verlorengegangener und/oder beschädigter Daten, die von einer Sendevorrichtung über einen Übertragungskanal an eine Empfangsvorrichtung übermittelt werden. Das Verfahren weist die folgenden Schritte auf:

  • – Die Daten werden durch einen mit der Sendevorrichtung verbundenen Encoder codiert.
  • – Anschließend werden sie von der Sendevorrichtung über einen Übertragungskanal an die Empfangsvorrichtung übermittelt.
  • – Die Daten werden durch einen mit der Empfangsvorrichtung verbundenen Decoder decodiert, wobei verlorengegangene und/oder beschädigte Daten während des Decodierens wieder hergestellt werden.
The method according to the invention serves to restore lost and / or damaged data transmitted by a transmitting device to a receiving device via a transmission channel. The method comprises the following steps:
  • The data is encoded by an encoder connected to the transmitting device.
  • - Then they are transmitted from the transmitting device via a transmission channel to the receiving device.
  • The data is decoded by a decoder connected to the receiving device, whereby lost and / or damaged data are restored during decoding.

Das Codieren und Dekodieren findet unter Verwendung eines Low-Density-Parity-Check-Codes statt.Coding and decoding takes place using a low-density parity check code.

Der verwendete LDPC-Code ist in der Darstellungsform eines bipartiten Graphen darstellbar in Form von Check Nodes und Variable Nodes, die durch Kanten miteinander verbunden sind. Sofern ein Check Node durch eine Kante mit einem Variable Node im bipartiten Graphen verbunden ist, weist die Parity Check Matrix des verwendeten Codes an der korrespondierenden Stelle einen Nicht-Null-Eintrag aus dem Galoisfeld auf, aus dem der Code erzeugt wurde. Erfindungsgemäß ist die Anzahl V2 der Variable Nodes mit einem Grad von 2 kleiner als m/2, sodass gilt: V2 < m/2. Hierbei ist m die Anzahl der Paritätssymbole oder -pakete, die durch den Code erzeugt werden. Diese Variable Nodes mit einem Grad von 2 sind voneinander getrennt, d. h. sie sind nicht durch Kanten mit gemeinsamen Check Nodes verbunden. Anders ausgedrückt sind sämtliche Check Nodes, mit denen ein Variable Node mit einem Grad von 2 verbunden ist, unterschiedlich von den Check Nodes, mit denen ein anderer Variable Node mit einem Grad von 2 verbunden ist.The LDPC code used can be represented in the form of a bipartite graph in the form of check nodes and variable nodes that are connected by edges. If a check node is connected by an edge to a variable Node in the bipartite graph, the parity check matrix of the code used at the corresponding location has a non-zero entry from the Galois field from which the code was generated. According to the invention, the number V 2 of the variable nodes with a degree of 2 is smaller than m / 2, so that V 2 <m / 2. Where m is the number of parity symbols or packets generated by the code. These variable nodes with a degree of 2 are separated from each other, ie they are not connected by edges with common check nodes. In other words, all check nodes to which a variable node is connected with a degree of 2 are different from the check nodes to which another variable node with a degree of 2 is connected.

Weiterhin ist erfindungsgemäß die Anzahl VS der voneinander getrennten Variable Nodes mit einem Grad von 3 V3_S = floor ((m – 2 V2)/3). Furthermore, according to the invention, the number VS of the separate variable nodes is to a degree of 3 V 3_ S = floor ((m - 2 V 2 ) / 3).

Auch die Variable Nodes mit einem Grad von 3 sind voneinander getrennt, d. h. nicht durch Kanten mit gemeinsamen Check Nodes verbunden. Durch die Floor-Funktion wird das Argument auf die nächst niedrigere Ganzzahl abgerundet.Also the variable nodes with a degree of 3 are separated from each other, i. H. not connected by edges with common check nodes. The floor function rounds off the argument to the next lower integer.

Erfindungsgemäß wird somit eine spezielle Klasse von LDPC-Codes vorgeschlagen, die eine besondere Konnektivität der Variable Nodes mit kleinen Graden (2 oder 3) aufweist. Auch die Anzahl dieser Variable Nodes mit kleinen Graden wird im Rahmen des erfindungsgemäßen Verfahrens kontrolliert. Durch das erfindungsgemäße Verfahren kann, wie im Weiteren dargestellt, die Codeword Error Rate (CER) verringert werden und insbesondere ein niedriger Error Floor erreicht werden.Thus, according to the invention, a special class of LDPC codes is proposed which has a particular connectivity of the variable nodes with small degrees (2 or 3). Also, the number of these variable nodes with small degrees is controlled in the context of the method according to the invention. As a result of the method according to the invention, the codeword error rate (CER) can be reduced and, in particular, a lower error floor can be achieved.

Es ist bevorzugt, dass Variable Nodes mit einem Grad ≠ 2, die nicht zu den voneinander getrennten Variable Nodes mit einem Grad von 3 gehören, durch einen Interleaver π mit den Check Nodes verbunden sind, sodass Kantenpermutationen zugelassen sind. Dies bedeutet, dass die Check Nodes, mit denen diese Variable Nodes durch die Kanten verbunden sind, variiert werden können, was bedeutet, dass die Position der Nicht-Null-Einträge in der Parity Check Matrix variiert wird. Das erfindungsgemäße Verfahren ist somit nicht auf einem bestimmten LDPC-Code (mit einer genau definierten Parity Check Matrix) limitiert. Vielmehr ist das erfindungsgemäße Verfahren auf eine Vielzahl verschiedener LDPC-Codes anwendbar, die die in Anspruch 1 genannten Anforderungen hinsichtlich der Anzahl getrennter Variable Nodes mit einem Grad von 2 und 3 erfüllen. Durch diese Anforderungen werden bestimmte Einträge der Parity Check Matrix des Codes festgelegt, sodass bzgl. der Variable Nodes, die diesen Einträgen entsprechen, keine Kantenpermuationen zugelassen sind. Alle übrigen Nicht-Null-Positionen der Parity Check Matrix können jedoch variiert werden.It is preferred that variable nodes with a degree ≠ 2 that do not belong to the separate variable nodes with a degree of 3 are connected to the check nodes through an interleaver π, so that edge permutations are allowed. This means that the check nodes to which these variable nodes are connected by the edges can be varied, which means that the position of the non-zero entries in the parity check matrix is varied. The method according to the invention is thus not limited to a specific LDPC code (with a precisely defined parity check matrix). Rather, the inventive method is applicable to a variety of different LDPC codes that meet the requirements mentioned in claim 1 in terms of the number of separate variable nodes with a degree of 2 and 3. These requirements specify certain entries of the code's Parity Check Matrix, so that no edge permutations are allowed with respect to the variable nodes corresponding to these entries. All other non-zero positions of the Parity Check Matrix, however, can be varied.

Weiterhin ist bevorzugt, dass die übrigen Variable Nodes mit einem Grad > 3 voneinander getrennt sind oder nicht voneinander getrennt sind. Weiterhin können Variable Nodes mit einem Grad von 3 existieren, die nicht voneinander getrennt sind und deren Anzahl somit nicht durch die Floor-Funktion gemäß Anspruch 1 definiert wird. Diese Floor-Funktion definiert die maximale Anzahl getrennter Variable Nodes mit einem Grad von 3.Furthermore, it is preferred that the remaining variable nodes are separated by a degree> 3 or are not separated from each other. Furthermore, variable nodes with a degree of 3 may exist which are not separated from one another and whose number is thus not defined by the floor function according to claim 1. This floor function defines the maximum number of separate variable nodes with a degree of 3.

Weiterhin ist es bevorzugt, dass der verwendete LDPC-Code ein nicht binärer LDPC-Code ist.Furthermore, it is preferable that the LDPC code used is a non-binary LDPC code.

Im Folgenden wird die Erfindung anhand von Figuren näher beschrieben.In the following the invention will be described in more detail with reference to figures.

Es zeigen: Show it:

1 die grundsätzliche Funktion von Paket Level Coding, 1 the basic function of packet level coding,

2 ein Beispiel einer nicht binären Parity Check Matrix eines nicht binären LDPC-Codes und ihres zugeordnete bipartiten Graphen, 2 an example of a non-binary parity check matrix of a non-binary LDPC code and its associated bipartite graph,

3 das Grad-Verteilungs-Polynom für das Codebeispiel gemäß 2 und die Definition der Code Rate R, 3 the degree distribution polynomial for the code example according to FIG 2 and the definition of the code rate R,

4 eine vereinfachte Darstellung einer Ausführungsform eines bipartiten Graphen gemäß dem erfindungsgemäßen Verfahren, 4 a simplified representation of an embodiment of a bipartite graph according to the inventive method,

5 eine Darstellung der Leistungsfähigkeit des erfindungsgemäßen Verfahrens. 5 a representation of the performance of the method according to the invention.

Die 1 bis 3 wurden bereits im Zusammenhang mit dem Stand der Technik erläutert.The 1 to 3 have already been explained in connection with the prior art.

In 4 ist eine vereinfachte Ausführungsform des erfindungsgemäßen Verfahrens dargestellt. Die schraffiert dargestellten Variable Nodes auf der rechten unteren Seite weisen einen Grad von 2 auf und sind voneinander getrennt, da sie nicht durch Kanten mit gemeinsamen Check Nodes verbunden sind.In 4 a simplified embodiment of the method according to the invention is shown. The hatched variable nodes on the lower right-hand side have a degree of 2 and are separated because they are not connected by edges with common check nodes.

Auf der linken unteren Seite der 4 ist ein gepunkteter Variable Node mit einem Grad von 3 dargestellt, der ebenfalls von allen anderen Variable Nodes getrennt ist.On the lower left side of the 4 is a dotted variable node with a degree of 3, which is also separated from all other variable nodes.

Die oberen Variable Nodes in 4 sind über den Kanten-Interleaver π mit den Check Nodes verbunden, sodass hier Kantenpermutationen zugelassen sind. Diese Variable Nodes, die über den Kanteninterleaver π mit den Check Nodes verbunden sind, weisen einen Grad ≠ 2 auf und gehören ferner nicht zu den getrennten Variable Nodes mit einem Grad von 3, deren Anzahl durch die Floor-Funktion definiert wird. Sie können einen Grad > 3 aufweisen und in diesem Fall voneinander getrennt sein oder nicht (wie bspw. die beiden rechten oberen Check Nodes in 4, die einen Grad von 4 aufweisen). Auch können Sie einen Grad von 3 aufweisen, wären jedoch in diesem Fall nicht voneinander getrennt, d. h. sie sind mit Check Nodes verbunden, mit denen auch andere Variable Nodes verbunden sind.The upper variable nodes in 4 are connected to the check nodes via the edge interleaver π, so that edge permutations are allowed here. These variable nodes, which are connected to the check nodes via the edge interleaver π, have a degree ≠ 2 and also do not belong to the separate variable nodes with a degree of 3, the number of which is defined by the floor function. You can have a degree> 3 and in this case be separated or not (such as the two upper right check nodes in 4 having a degree of 4). Also you can have a degree of 3, but in this case would not be separated, ie they are connected to check nodes to which other variable nodes are connected.

Die Notwendigkeit, Variable Nodes mit einem Grad von 3 vorzusehen, resultiert aus der Tatsache, dass Gradverteilungen, die sich an die Kapazität annähern, einen gewissen Anteil an Variable Nodes mit einem Grad von 3 verlangen. Forschungsarbeiten der Anmelderin haben ergeben, dass eine hohe Leistungsfähigkeit erzielt werden kann, sofern eine Anzahl von V3_S = floor ((m – 2 V2)/3) an voneinander getrennten Variable Nodes mit einem Grad von 3 vorgesehen werden. Tatsächlich ist es nicht möglich, eine größere Anzahl an solchen getrennten Variable Nodes mit einem Grad von 3 vorzusehen.The need to provide variable nodes with a degree of 3 results from the fact that degree distributions approaching capacity demand a certain level of variable nodes with a degree of 3. Research by the applicant have revealed that a high efficiency can be achieved, provided that a number of V 3_ S = floor ((m - 2 V 2) / 3) may be provided at separate variable nodes with a degree of third In fact, it is not possible to provide a larger number of such separate variable nodes with a degree of 3.

In 5 ist die Leistungsfähigkeit des erfindungsgemäßen Verfahrens dargestellt. Zum Vergleich ist die Singleton-Grenze dargestellt. Die Darstellung erfolgt als Codeword Error Rate (CER) in Abhängigkeit von der Paketauslöschungswahrscheinlichkeit für (400, 200) LDPC-Codes über Galois-Feldern der Ordnung von jeweils 8 oder 32. Die verwendeten Codes sind ausgebildet gemäß dem erfindungsgemäßen Verfahren. Es gilt: V2 = 77 und V3_S = 15. Beide Codes haben eine identische Coderate von 0,5 und erfüllen die folgenden Grad-Verteilungs-Polynome: ρ3(x) = x8, λ3(x) = 0.085556x + 0.478333x2 + 0.163333x13 + 0.008333x14 + 0.264444x33 In 5 the performance of the method according to the invention is shown. For comparison, the singleton limit is shown. The representation is in the form of a Codeword Error Rate (CER) as a function of the packet extinction probability for (400, 200) LDPC codes over Galois fields of the order of 8 or 32. The codes used are designed according to the method according to the invention. The following applies: V 2 = 77 and V 3_ S = 15. Both codes have an identical code rate of 0.5 and satisfy the following degree distribution polynomials: ρ3 (x) = x 8 , λ 3 (x) = 0.085556x + 0.478333x 2 + 0.163333x 13 + 0.008333x 14 + 0.264444x 33

Die durch eine Simulation erlangten Performancekurven werden mit der Singleton-Grenze verglichen. Wir erkennbar ist, kann auch für kurze Codeword-Längen von n = 400 eine Performance nahe der Singleton-Grenz erreicht werden. Ferner ist kein Error Floor für die Codeword Error Rate bis mindestens 10–6 erkennbar.The performance curves obtained by a simulation are compared with the singleton limit. As can be seen, even for short codeword lengths of n = 400, a performance close to the singleton limit can be achieved. Furthermore, no Error Floor for the Codeword Error Rate is recognizable to at least 10 -6 .

Die vorgeschlagene Klasse nichtbinärer LDPC-Codes kann in jedem kommerziellen drahtlosen und drahtgebundenen Übertragungssystem verwendet werden. Wie hier aufgezeigt wurde, bietet das vorgeschlagene Übertragungsschema bereits bei Galois-Feldern niedriger Ordnung, d. h. mit niedriger Komplexität, hohe Leistungen, so dass es auch bei Plattformen mit niedriger Rechenleistung angewendet werden kann.The proposed class of non-binary LDPC codes can be used in any commercial wireless and wireline transmission system. As pointed out here, the proposed transmission scheme already offers low-order Galois fields, i. H. with low complexity, high performance, so that it can be applied even on platforms with low computing power.

Claims (5)

Verfahren zum Wiederherstellen verlorengegangener und/oder beschädigter Daten, die von einer Sendevorrichtung über einen Übertragungskanal an eine Empfangsvorrichtung 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 wieder hergestellt werden, wobei das Codieren und Decodieren unter Verwendung eines LDPC-Codes durchgeführt wird, wobei der verwendete LDPC-Code in der Darstellungsform eines bipartiten Graphen darstellbar ist in Form von Check Nodes und Variable Nodes, die durch Kanten miteinander verbunden sind, wobei, sofern ein Check Node durch eine Kante mit einem Variable Node im bipartiten Graphen verbunden ist, die Parity Check Matrix des verwendeten Codes an der korrespondierenden Stelle einen Nicht-Null-Eintrag aus dem Galois-Feld aufweist, aus dem der Code erzeugt wurde, dadurch gekennzeichnet, dass, die Anzahl V2 der Variable Nodes mit einem Grad von 2 kleiner als m/2, nämlich V2 < m/2 ist, wobei m die Anzahl der Paritätssymbole ist, die durch den Code erzeugt werden, wobei diese Variable Nodes mit einem Grad von 2 voneinander getrennt sind, d. h. nicht durch Kanten mit gemeinsamen Check Nodes verbunden sind, wobei die Anzahl V3_S der voneinander getrennten Variable Nodes mit einem Grad von 3 V3_S = floor ((m – 2 V2)/3) ist, wobei diese Variable Nodes mit einem Grad von 3 voneinander getrennt sind, d. h. nicht durch Kanten mit gemeinsamen Check Nodes verbunden sind.A method of recovering lost and / or damaged data sent from a transmitting device to a receiving device over a transmission channel, the method comprising the steps of: encoding the data using an encoder connected to the transmitting device; Transmitting the data from the transmitting device to the receiving device via a transmission channel and decoding the data using a decoder connected to the receiving device, wherein lost and / or corrupted data is restored during the decoding, the encoding and decoding using an LDPC code where the used LDPC code in the representation of a bipartite graph is representable in the form of check nodes and variable nodes connected by edges, where a check node is connected by an edge to a variable node in the bipartite graph is, the parity check matrix of the code used has at the corresponding location a non-zero entry from the Galois field from which the code was generated, characterized in that the number V 2 of the variable nodes is at a degree of 2 is less than m / 2, namely V 2 <m / 2, where m is the number d it is parity symbols generated by the code, these variable nodes being separated by a degree of 2, ie not connected by edges to common check nodes, the number V 3_S of the separate variable nodes having a degree of 3 V 3_ S = floor ((m - 2 V 2 ) / 3) is, these variable nodes are separated by a degree of 3, that is not connected by edges with common check nodes. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass Variable Nodes mit einem Grad ≠ 2, die nicht zu den voneinander getrennten Variable Nodes mit einem Grad von 3 gehören, durch einen Interleaver π mit den Check Nodes verbunden sind, sodass Kantenpermutationen zugelassen sind.Method according to Claim 1, characterized in that variable nodes with a degree ≠ 2 which do not belong to the separated variable nodes with a degree of 3 are connected to the check nodes by means of an interleaver π, so that edge permutations are permitted. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass die Variable Nodes mit einem Grad > 3 voneinander getrennt sind oder nicht voneinander getrennt sind.A method according to claim 1 or 2, characterized in that the variable nodes are separated by a degree> 3 from each other or not separated. Verfahren nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, dass die übrigen Variable Nodes mit einem Grad von 3 nicht voneinander getrennt sind.Method according to one of claims 1 to 3, characterized in that the remaining variable nodes are not separated by a degree of 3. Verfahren nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, dass der LDPC-Code ein nicht binärer LDPC-Code ist.Method according to one of claims 1 to 4, characterized in that the LDPC code is a non-binary LDPC code.
DE102014208996.4A 2014-05-13 2014-05-13 Procedure for recovering lost and / or corrupted data Active DE102014208996B3 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102014208996.4A DE102014208996B3 (en) 2014-05-13 2014-05-13 Procedure for recovering lost and / or corrupted data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102014208996.4A DE102014208996B3 (en) 2014-05-13 2014-05-13 Procedure for recovering lost and / or corrupted data

Publications (1)

Publication Number Publication Date
DE102014208996B3 true DE102014208996B3 (en) 2015-11-05

Family

ID=54326236

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102014208996.4A Active DE102014208996B3 (en) 2014-05-13 2014-05-13 Procedure for recovering lost and / or corrupted data

Country Status (1)

Country Link
DE (1) DE102014208996B3 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117459076A (en) * 2023-12-22 2024-01-26 国网湖北省电力有限公司经济技术研究院 MP decoding-based LDPC erasure code decoding method, system, equipment and storable medium

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102013213778B3 (en) * 2013-07-15 2014-12-11 Deutsches Zentrum für Luft- und Raumfahrt e.V. A method for transmitting a message from a transmitter to a receiver via a communication medium by means of packet-level coding

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102013213778B3 (en) * 2013-07-15 2014-12-11 Deutsches Zentrum für Luft- und Raumfahrt e.V. A method for transmitting a message from a transmitter to a receiver via a communication medium by means of packet-level coding

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117459076A (en) * 2023-12-22 2024-01-26 国网湖北省电力有限公司经济技术研究院 MP decoding-based LDPC erasure code decoding method, system, equipment and storable medium
CN117459076B (en) * 2023-12-22 2024-03-08 国网湖北省电力有限公司经济技术研究院 MP decoding-based LDPC erasure code decoding method, system, equipment and storable medium

Similar Documents

Publication Publication Date Title
DE102009017540B4 (en) Procedure for recovering lost and / or damaged data
DE102010035210B4 (en) Method for recovering lost data and correcting corrupted data
DE602005004863T2 (en) Method for puncturing LDPC channel codes
DE102014208996B3 (en) Procedure for recovering lost and / or corrupted data
DE102013213778B3 (en) A method for transmitting a message from a transmitter to a receiver via a communication medium by means of packet-level coding
DE102012203653B3 (en) Method for restoring lost or damaged data, involves carrying-out operations, which are carried on equations that have common equation systems to be solved, once instead of certain times, so that decoding complexity is reduced
DE102014204828B4 (en) Procedure for recovering lost and / or corrupted data
DE102013201422B3 (en) Method for restoring lost and/or damaged data transmitted from transmitting device to receiving device, involves replacing current entry of LDPC parity check matrix with entry of Galois field until entry in matrix is modified
DE102011102503B3 (en) Method for correcting corrupted data, involves generating tanner graph as representation of parity check-matrix of linear block code, and setting all variable nodes of tanner graph in unverified status
DE102013218311B4 (en) Procedure for recovering lost and / or damaged data
DE102014214451B4 (en) Procedure for recovering lost and / or corrupted data
DE102016222007B4 (en) Method for transmitting data
DE102013223413B4 (en) Procedure for recovering lost and / or corrupted data
DE102014216143B4 (en) Procedure for recovering lost and / or corrupted data
DE102016201408B4 (en) Method for transmitting data
DE102011111835B4 (en) Procedure for recovering lost and / or damaged data
DE102017206718B4 (en) Method for generating a class of non-binary LDPC codes
DE102013223801B4 (en) Procedure for recovering lost and / or corrupted data
DE102011115100B3 (en) Method for restoring lost and/or corrupted data, involves fragmenting output symbols of encoder to fit frame in physical layer, such that received fragments are set as output symbols of parallel encoders
DE102014210955B4 (en) Procedure for recovering lost and / or corrupted data
DE102011015811B3 (en) Device for coding k8L information-bits in e.g. universal mobile telecommunications system-applications, has coder for receiving m-symbol-parity-vector from m-symbol-vector, where elements in main-diagonals are formed as non-zero-elements
DE102013219863B4 (en) A method of transmitting a message from a sender to a receiver via a communication medium using packet-level encoding
DE102010029113A1 (en) Method for channel encoding of digital data in transmission system, involves determining random linear combination of code symbols by combining code symbols of block code and linear random fountain code
DE102018202377A1 (en) Method and apparatus for reconstructing a first signal and a second signal by a common receiver
DE102011103564B3 (en) Method for recovery of lost and/or corrupted data transmitted from transmitter to receiver, involves creating new linear block code and parity check matrix using algorithm by generating random vector permutation

Legal Events

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