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

Procedure for recovering lost and / or corrupted data Download PDF

Info

Publication number
DE102014214451B4
DE102014214451B4 DE102014214451.5A DE102014214451A DE102014214451B4 DE 102014214451 B4 DE102014214451 B4 DE 102014214451B4 DE 102014214451 A DE102014214451 A DE 102014214451A DE 102014214451 B4 DE102014214451 B4 DE 102014214451B4
Authority
DE
Germany
Prior art keywords
matrix
received
vector
output symbols
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.)
Active
Application number
DE102014214451.5A
Other languages
German (de)
Other versions
DE102014214451A1 (en
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 DE102014214451.5A priority Critical patent/DE102014214451B4/en
Publication of DE102014214451A1 publication Critical patent/DE102014214451A1/en
Application granted granted Critical
Publication of DE102014214451B4 publication Critical patent/DE102014214451B4/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/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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/373Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with erasure correction and erasure determination, e.g. for packet loss recovery or setting of erasures for the decoding of Reed-Solomon codes

Abstract

Verfahren zum Wiederherstellen von verloren gegangenen und/oder beschädigten Daten, die von einer Sendevorrichtung zu einer Empfängervorrichtung übertragen werden, wobei dieses Verfahren die Schritte aufweist: Codieren der Daten durch einen Encoder, der mit der Sendevorrichtung verbunden ist, Übertragen der Daten von der Sendevorrichtung zu der Empfängervorrichtung über einen q-ären symmetrischen Übertragungskanal und Decodieren der Daten durch einen Decoder, der mit der Empfängervorrichtung verbunden ist, wobei verloren gegangene und/oder beschädigte Daten während des Decodierens wiederhergestellt werden, wobei zum Codieren ein Fountain Code verwendet wird, durch den ein Eingangs-Zeilenvektor u bestehend aus k Eingangssymbolen der Länge L Bits mit einer Generator-Matrix G der Größe k × (k + Δ) multipliziert wird, sodass der Ausgangs-Zeilenvektor k + Δ Ausgangssymbole aufweist, die durch eine Multiplikation des Eingangs-Zeilenvektors u mit den k + Δ Spalten der Generator-Matrix G entstehen, wobei der empfangene Zeilenvektor der Länge n mit y bezeichnet wird, wobei die Spalten der Generator-Matrix G, die den empfangenen Ausgangssymbolen entsprechen, eine neue Matrix GR der Größe k × n bilden, die als Generator-Matrix des empfangenen Fountain Codes betrachtet werden kann und umgeschrieben werden kann als GR = [I|P], wobei I eine k × k Identitätsmatrix und P eine k × (n – k) Matrix ist, wobei der neuen Generator-Matrix GR des empfangenen Fountain Codes eine Parity Check Matrix HR zugeordnet wird, die erlangt wird durch HR = (PT|I), wobei PT die Transponierte von P ist und I eine (n – k) × (n – k) Identitätsmatrix ist, wobei, falls der empfangene Vektor y keine fehlerhaften Pakete enthält, die folgende Gleichung gilt: 0T = HRyT wobei 0 ein Zeilenvektor der Länge n – k ist, dessen Komponenten Pakete der Länge L Bits sind, und falls der empfangene Vektor y fehlerhafte Pakete enthält, mit hoher Wahrscheinlichkeit die folgende ...A method of recovering lost and / or corrupted data transmitted from a sending device to a receiving device, the method comprising the steps of: encoding the data by an encoder connected to the sending device, transmitting the data from the sending device the receiver device via a q-type symmetric transmission channel and decoding the data by a decoder connected to the receiver device, wherein lost and / or damaged data are restored during decoding, wherein for encoding a fountain code is used by the Input line vector u consisting of k input symbols of length L bits multiplied by a generator matrix G of size k × (k + Δ) such that the output line vector k + Δ has output symbols which are multiplied by the input line vector u with the k + Δ columns of the genera tor matrix G are formed, wherein the received line vector of length n is denoted by y, wherein the columns of the generator matrix G corresponding to the received output symbols form a new matrix GR of size k × n, which is used as the generator matrix of received Fountain codes and can be rewritten as GR = [I | P], where I is a k × k identity matrix and P is a k × (n-k) matrix, the new generator matrix GR of the received fountain code assigning a parity check matrix HR obtained by HR = (PT | I), where PT is the transpose of P and I is an (n-k) × (n-k) identity matrix, where if the received vector y contains no erroneous packets, the following equation holds: 0T = HRyT where 0 is a row vector of length n - k whose components are packets of length L bits, and if the received vector y contains erroneous packets, the following is most likely. ..

Description

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

Es ist bekannt, dass Daten während der Übertragung beispielsweise über einen rauschbehafteten Kanal durch verschiedene Fehlerkorrekturverfahren geschützt werden können. Zu diesem Zweck werden m Parity Pakete durch einen Encoder erzeugt, die k Informationspaketen hinzugefügt werden, so dass n = k + m Codeword Pakete über den Kanal übertragen werden. Durch Verwenden der übertragenen Parity Informationen können verloren gegangene oder beschädigte Daten wiederhergestellt werden.It is known that data can be protected during transmission, for example over a noisy channel, by various error correction methods. For this purpose, m parity packets are generated by an encoder, which are added to k information packets so that n = k + m codeword packets are transmitted over the channel. By using the transmitted parity information, lost or corrupted data can be recovered.

Ein Codierschema, das aus dem Stand der Technik bekannt ist, ist Fountain Coding. Fountain Coding kann beispielsweise auf Packet Level angewandt werden und ist eine einfache und effiziente Technik, um in einem Kommunikationssystem eine verlässliche Übertragung sicherzustellen. Die Grundprinzipien von Packet Level Fountain Coding sind in 1 dargestellt.An encoding scheme known in the art is fountain coding. For example, Fountain Coding can be applied at the packet level and is a simple and efficient technique for ensuring reliable transmission in a communication system. The basic principles of Packet Level Fountain Coding are in 1 shown.

Zuerst wird die zu übertragende Nachricht, z. B. eine Datei, aufgeteilt in k Infopakete von L Bits oder Bytes (Eingangssymbole für den Fountain Encoder) und codiert in k + Δ Fountain Code (FC) Symbole (Pakete von L Bits oder Bytes). Somit werden die k + Δ Pakete erzeugt durch den Paket Level Encoder und sind die Ausgangssymbole des Fountain Encoders. Δ ist der Overhead auf der Transmitterseite, d. h. die Anzahl an Paketen, zusätzlich zu den k die durch den Encoder erzeugt werden.First, the message to be transmitted, z. A file divided into k info packets of L bits or bytes (input symbols for the fountain encoder) and encoded into k + Δ Fountain Code (FC) symbols (packets of L bits or bytes). Thus, the k + Δ packets are generated by the packet level encoder and are the output symbols of the fountain encoder. Δ is the overhead on the transmitter side, i. H. the number of packets, in addition to the k generated by the encoder.

Zweitens, werden die k + Δ Fountain Encoder Symbole im Physical Layer (innerhalb des PHY Layer Frames) durch Fehlerkorrekturcodes (z. B. Turbo, LDPC...), Fehlererkennungscodes (z. B. Cyclic Redundancy Check (CRC)) geschützt und sie werden übertragen.Secondly, the k + Δ fountain encoder symbols in the physical layer (within the PHY layer frame) are protected by error correction codes (eg Turbo, LDPC ...), error detection codes (eg Cyclic Redundancy Check (CRC)) and they are transferred.

Drittens wird auf jedes Paket auf der Empfängerseite Physical Layer Fehlerkorrektur angewandt und verbleibende Fehler werden durch einen Fehlererkennungscode detektiert. Wenn Fehler detektiert werden, wird das Paket als verloren angesehen und als Auslöschung gekennzeichnet. Somit sehen die Layer über dem Physical Layer das Kommunikationsmedium als einen Packet Erasure Channel (PEC), wo Pakete entweder korrekt empfangen werden oder verloren gehen.Third, physical layer error correction is applied to each packet on the receiver side and remaining errors are detected by an error detection code. If errors are detected, the packet is considered lost and marked as extinguished. Thus, the layers above the physical layer see the communication medium as a Packet Erasure Channel (PEC), where packets are either received correctly or lost.

Zuletzt stellt der Packet-Level Decoder die Original Nachricht wieder her, sofern eine ausreichende Menge an Paketen empfangen wurde.Finally, the packet-level decoder recovers the original message, provided that a sufficient number of packets has been received.

Fountain Codes sind ratenlose Codes, d. h. Δ = 0, 1, 2, ... was bedeutet, dass keine Grenze für die Anzahl von erzeugten Fountain Encoder Paketen existiert. Fountain Encoder Pakete werden erzeugt, bis der Packet-Level Decoder in der Lage ist, die ursprüngliche Nachricht wieder herzustellen.Fountain codes are guesswork codes, d. H. Δ = 0, 1, 2, ... which means that there is no limit to the number of generated fountain encoder packets. Fountain Encoder packets are generated until the packet-level decoder is able to recover the original message.

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

  • [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, Nr. 4, S. 56–67, Okt. 1998.
  • [2] M. G. Luby, M. Mitzenmacher, ”Verification-Based Decoding for Packet-Based Low-Density Parity-Check Codes”, IEEE Transaction on Information Theory, vol. 51, Nr. 1, Jan. 2005.
  • [3] ”R. Karp, M. Luby, A. Shokrollahi, ”Verification Decoding of Raptor Codes”, International Symposium in Information Theory (ISIT), Sep. 2005, Adelaide, Australien.
  • [4] D. Burshtein and G. Miller, ”An efficient maximum likelihood decoding of LDPC codes over the binary erasure channel,” IEEE Trans. Inf. Theory, vol. 50, Nr. 11, S. 2837–2844, Nov. 2004.
  • [5] E. Paolini, G. Liva, B. Matuz, and M. Chiani, ”Maximum likelihood erasure decoding of LDPC codes: Pivoting algorithms and code design,” IEEE Trans. Commun., vol. 60, Nr. 11, S. 3209–3220, Nov. 2012.
  • [6] G. Garrammone, F. Lázaro Blasco, ”On Fragmentation for Fountain Codes,” 9th International ITG Conference on Systems, Communications and Coding (SCC), Jan. 2013, München, Deutschland.
Information on 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, pp. 56-67, Oct. 1998.
  • [2] MG Luby, M. Mitzenmacher, "Verification-Based Decoding for Packet-Based Low-Density Parity-Check Codes", IEEE Transaction on Information Theory, vol. 51, No. 1, Jan. 2005.
  • [3] "R. Karp, M. Luby, A. Shokrollahi, "Verification Decoding of Raptor Codes", International Symposium in Information Theory (ISIT), Sep. 2005, Adelaide, Australia.
  • [4] D. Burshtein and G. Miller, "Efficient maximum likelihood decoding of LDPC codes over the binary erasure channel," IEEE Trans. Inf. Theory, vol. 50, No. 11, pp. 2837-2844, Nov. 2004.
  • [5] E. Paolini, G. Liva, B. Matuz, and M. Chiani, "Maximum likelihood erosure decoding of LDPC codes: Pivoting algorithms and code design," IEEE Trans. Commun., Vol. 60, No. 11, p. 3209-3220, Nov. 2012.
  • [6] G. Garrammone, F. Lázaro Blasco, "On Fragmentation for Fountain Codes," 9th International ITG Conference on Systems, Communications and Coding (SCC), Jan. 2013, Munich, Germany.

DE 10 2012 203 653 B3 beschreibt ein Verfahren zum Wiederherstellen von verloren gegangenen oder beschädigten Daten, die von einer Sendevorrichtung zu einer Empfängervorrichtung übertragen werden. Hierbei werden Daten sendeseitig codiert und empfängerseitig decodiert, wobei beim Decodieren verloren gegangene oder beschädigte Daten wiederhergestellt werden. Zum Codieren wird ein Fountain Code verwendet. DE 10 2012 203 653 B3 describes a method for restoring lost or corrupted data transmitted from a sending device to a receiving device. In this case, data is encoded on the transmission side and decoded on the receiver side, with lost or damaged data being restored during decoding. For encoding a fountain code is used.

Ein weiteres Verfahren zum Wiederherstellen von verloren gegangenen oder beschädigten Daten ist bekannt aus Veröffentlichung ”MATUZ, B. [et al.]: Verification-Based Decoding with MAP Erasure Recovery. In 9th International ITG Conference on Systems, Communication and Coding, 2013, S 1–6 – ISBN 978-3-8007-3482-5”.Another method of recovering lost or corrupted data is known from the publication "MATUZ, B. [et al.]: Verification-Based Decoding with MAP Erasure Recovery. In 9th International ITG Conference on Systems, Communication and Coding, 2013, pp 1-6 - ISBN 978-3-8007-3482-5 ".

Der Paketfehlerkanal (Packet Error Channel) wird in Fällen gebraucht, in denen der Preis einer zusätzlichen Redundanz zur Fehlererkennung, z. B. durch einen Cyclic Redudancy Check (CRC) zu hoch ist. Tatsächlich können zusätzliche Bytes für den CRC einen unangemessenen Aufwand darstellen, wenn die Paketgröße L klein ist. Hierbei ist zu beachten, dass nach der Anwendung eines CRC nach dem Physical Layer Coding der Paketfehlerkanal ein Paketauslöschungskanal (Paket Erasure Channel) wird, bei dem die Position der fehlerhaften Pakete (nämlich die bei denen der CRC versagt) bekannt ist. Diese Positionen werden als Auslöschungen behandelt. In 2 ist die Übertragung von Paketen der Länge p über einen q-ären symmetrischen Kanal mit q = 2p dargestellt. Ein Paket wird mit der Wahrscheinlichkeit 1 – λ korrekt empfangen. Es wird mit der Wahrscheinlichkeit λ fehlerhaft empfangen. Ferner ist jedes der Fehlermuster gleich wahrscheinlich.The packet error channel is used in cases where the price of additional redundancy for error detection, e.g. B. by a Cyclic Redudancy Check (CRC) is too high. In fact, additional bytes for the CRC represent an undue burden when the packet size L is small. Note that after the application of a CRC after physical layer coding, the packet error channel becomes a packet erasure channel in which the position of the failed packets (namely, the ones in which the CRC fails) is known. These positions are treated as cancellations. In 2 the transmission of packets of length p is represented by a q-ary symmetrical channel with q = 2 p . A packet is correctly received with the probability 1 - λ. It is received incorrectly with the probability λ. Furthermore, each of the error patterns is equally likely.

In Veröffentlichung [2] wurde ein Dekodieralgorithmus für LDPC-Codes über einem q-ären symmetrischen Kanal vorgeschlagen, der als Verification Based Decoding (VBD) bezeichnet wird. Der Algorithmus funktioniert wie folgt:
Zunächst werden die Check Nodes in einem unbestätigten Status initialisiert (”unconfirmed”). Die Variable Nodes werden in einem unverifizierten Status initialisiert. Wenn die Symbole, die in eine Prüfgleichung involviert sind, in Summe 0 ergeben, werden die zugehören Variable Nodes verifiziert und die zugehörigen Check Nodes bestätigt (”confirmed”). Wenn alle Variable Nodes, die mit einem Check Node verbunden sind, bis auf einen Variable Node verifiziert sind, so wird der unverifizierte Variable Node auf die Summe der benachbarten verifizierten Variable Nodes gesetzt. Sein Status gilt nun als verifiziert. Der genannte Prozess wird iteriert.
Publication [2] proposed a decoding algorithm for LDPC codes over a q-ary symmetric channel called Verification Based Decoding (VBD). The algorithm works as follows:
First, the check nodes are initialized in an unconfirmed state ("unconfirmed"). The variable nodes are initialized in an unverified state. If the symbols involved in a check equation add up to 0, the associated variable nodes are verified and the associated check nodes confirmed. If all variable nodes connected to a check node are verified to a variable Node, then the unverified variable Node is set to the sum of the neighboring verified variable Nodes. His status is now verified. The named process is iterated.

In Veröffentlichung [3] wurde der in Veröffentlichung [2] beschriebene Algorithmus modifiziert, sodass Fountain Codes verwendet werden können. Der modifizierte Algorithmus funktioniert folgendermaßen:
Es wird nach einem Eingangssymbol gesucht, das mit zwei Ausgangssymbolen mit Grad 1 und mit demselben Wert w verbunden ist. Wenn solch ein Eingangssymbol nicht existiert und nicht alle Eingangssymbole wiederhergestellt wurden, wird eine Fehlermeldung ausgegeben. Der Wert des Eingangssymbols wird auf w gesetzt. w wird zu den Werten aller benachbarten Ausgangssymbole dieses Eingangssymbols hinzuaddiert. Das Eingangssymbol zusammen mit allen Kanten, die von diesem Eingangssymbol ausgehen, wird von dem Graphen entfernt.
In publication [3] the algorithm described in publication [2] has been modified so that fountain codes can be used. The modified algorithm works as follows:
It searches for an input symbol that is connected to two output symbols with degree 1 and the same value w. If such an input symbol does not exist and all input symbols have not been restored, an error message will be displayed. The value of the input symbol is set to w. w is added to the values of all adjacent output symbols of this input symbol. The input symbol along with any edges that originate from that input symbol is removed from the graph.

Der Nachteil der genannten aus dem Stand der Technik bekannten Verfahren ist der große Overhead, der definiert wird durch die Anzahl der Ausgangssymbole, die zusätzlich zu k empfangen werden. Ferner ist der Algorithmus gemäß Veröffentlichung [3] suboptimal, d. h. er erreicht nicht die Leistungsfähigkeit von Maximum-a-posteriori-(MAP)-VerfahrenThe disadvantage of said prior art methods is the large overhead defined by the number of output symbols received in addition to k. Furthermore, the algorithm according to publication [3] is suboptimal, i. H. it does not achieve the performance of maximum a posteriori (MAP) procedures

Aufgabe der Erfindung ist es, ein Verfahren zum Wiederherstellen verlorengegangener und/oder beschädigter Daten mit einer verbesserten Leistungsfähigkeit bereitzustellen.The object of the invention is to provide a method for restoring lost and / or damaged data with improved performance.

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

Gemäß dem erfindungsgemäßen Verfahren werden Daten von einer Sendevorrichtung zu einer Empfängervorrichtung übertragen, wobei Daten durch einen Encoder, der mit der Sendevorrichtung verbunden ist, codiert werden. Daten werden über einen Übertragungskanal übertragen, der bspw. ein Broadcasting-Netzwerk in einem Satellitenszenario sein kann. Jeder andere geeignete Übertragungskanal kann verwendet werden. Die übertragenen Daten werden durch einen Decoder, der mit der Empfängervorrichtung verbunden ist, decodiert, wobei verlorengegangene oder beschädigte Daten während des Decodierens wiederhergestellt werden.According to the method of the invention, data is transmitted from a transmitting device to a receiving device, data being encoded by an encoder connected to the transmitting device. Data is transmitted over a transmission channel, which may be, for example, a broadcasting network in a satellite scenario. Any other suitable transmission channel may be used. The transmitted data is decoded by a decoder connected to the receiver device, recovering lost or corrupted data during decoding.

Zum Codieren wird ein Fountain Code verwendet, durch ein Eingangs-Zeilenvektor u bestehend aus k Eingangssymbolen der Länge L Bits mit einer Generator-Matrix G der Größe k × (k + Δ) multipliziert wird, sodass der Ausgangs-Zeilenvektor k + Δ Ausgangssymbole aufweist, die durch eine Multiplikation des Eingangs-Zeilenvektors u mit den k + Δ Spalten der Generator-Matrix G entstehen.For encoding, a fountain code is used, multiplied by an input row vector u consisting of k input symbols of length L bits with a generator matrix G of size k × (k + Δ), so that the output row vector k + Δ has output symbols which arise by multiplying the input row vector u by the k + Δ columns of the generator matrix G.

Der empfangene Zeilenvektor der Länge n wird mit y bezeichnet, wobei die Spalten der Generator-Matrix G, die den empfangenen Ausgangssymbolen entsprechen, eine neue Matrix GR der Größe k × n bilden, die als Generator-Matrix des empfangenen Fountain Codes betrachtet werden kann und umgeschrieben werden kann als GR = [I|P], wobei I eine k × k Identitätsmatrix und P eine k × (n – k) Matrix ist.The received line vector of length n is denoted by y, and the columns of the generator matrix G corresponding to the received output symbols form a new matrix G R of size k × n, which can be considered as a generator matrix of the received fountain code and can be rewritten as G R = [I | P], where I is a k × k identity matrix and P is a k × (n-k) matrix.

Der neuen Generator-Matrix GR des empfangenen Fountain Codes wird eine Parity Check Matrix HR zugeordnet, die erlangt wird durch HR = (PT|I), wobei PT die Transponierte von P ist und I eine (n – k) × (n – k) Identitätsmatrix ist.The new generator matrix G R of the received fountain code is assigned a parity check matrix H R , which is obtained by H R = (P T | I), where P T is the transpose of P and I is a (n - k) × (n - k) is identity matrix.

Falls der empfangene Vektor y keine fehlerhaften Pakete enthält, gilt die folgende Gleichung: 0T = HRyT wobei 0 ein Zeilenvektor der Länge n – k ist, dessen Komponenten Pakete der Länge L Bits sind.If the received vector y does not contain any erroneous packets, the following equation holds: 0 T = H R y T where 0 is a line vector of length n - k, whose components are packets of length L bits.

Falls der empfangene Vektor y fehlerhafte Pakete enthält, gilt mit hoher Wahrscheinlichkeit die folgende Gleichung: S = HRyT wobei S sich von 0 unterscheidet und S eine Matrix der Größe (n – k) × L ist,
Sofern fehlerhafte Pakete im empfangenen Vektor y vorhanden sind, wird die Syndrom-Matrix S zunächst durch Gaußsche Elimination verarbeitet, um die Anzahl der 0-Einträge auf ein Minimum zu reduzieren und die zugehörigen Zeilenoperationen auch in der Parity-Check Matrix HR durchgeführt werden, sodass eine möglichst große Anzahl an empfangenen Ausgangssymbolen verifiziert wären.
If the received vector y contains erroneous packets, the following equation is most likely valid: S = H R y T where S is different from 0 and S is a matrix of size (n-k) × L,
If defective packets are present in the received vector y, the syndrome matrix S is first processed by Gaussian elimination in order to minimize the number of 0 entries and the associated line operations are also performed in the parity check matrix H R. so that the largest possible number of received output symbols would be verified.

Die verifizierten Ausgangssymbole enthalten mit hoher Wahrscheinlichkeit keine Fehler.The verified output symbols are unlikely to contain errors.

Sofern weniger als k Ausgangssymbole verifiziert werden, wird wenigstens ein Teil der unverifizierten Ausgangssymbole als Auslöschungen behandelt und durch Maximum-a-posteriori-(MAP)-Erasure Decoding wiederhergestellt.If less than k output symbols are verified, at least a portion of the unverified output symbols will be treated as cancellations and restored by maximum a posteriori (MAP) -shear decoding.

Die Summe aller verifizierten und wiederhergestellten Ausgangssymbole wird als e bezeichnet. Sofern e ≥ k wird der Zeilenvektor, der diese Symbole enthält, als c gekennzeichnet und das folgende Gleichungssystem gelöst: G''uT = cT, wobei G'' eine e × k Matrix ist, deren i-te Zeile die Koeffizienten zum Bilden der i-ten Komponenten von c enthält.The sum of all verified and restored output symbols is called e. If e ≥ k, the row vector containing these symbols is identified as c and the following equation system is solved: G''u T = c T , where G "is an e × k matrix whose i-th row contains the coefficients for forming the ith components of c.

Das erfindungsgemäße Verfahren basiert somit auf dem Gedanken eines Verification Based Decoding-Algorithmus, der aus dem Stand der Technik im Zusammenhang mit LDPC-Codes bekannt ist. Dort werden Variable Nodes verifiziert, während im erfindungsgemäßen Verfahren die empfangenen Ausgangssymbole verifiziert werden. Es wurde somit ein optimaler Maximum-a-posteriori(MAP)-Decodieralgorithmus für Fountain Codes über dem q-ären symmetrischen Kanal vorgeschlagen. Das erfindungsgemäße Verfahren enthält einen Algorithmus zur Syndrom-Vorverarbeitung, ferner Verfahrensschritte zum Erhalten einer Parity-Check Matrix, die einem Fountain Codes an der Empfängerseite zugeordnet ist. Ferner enthält die Erfindung einen Verification Based Decoding-Schritt und einen MAP-Erasure-Decoding-Schritt.The inventive method is thus based on the idea of a verification based decoding algorithm, which is known from the prior art in connection with LDPC codes. There, variable nodes are verified, while in the method according to the invention the received output symbols are verified. Thus, an optimal maximum a posteriori (MAP) decoding algorithm for fountain codes over the q-ary symmetric channel has been proposed. The inventive method includes a syndrome pre-processing algorithm, and method steps for obtaining a parity-check matrix associated with a fountain code at the receiver side. Further, the invention includes a verification based decoding step and a MAP erasure decoding step.

Es ist bevorzugt, dass für die Wiederherstellung der unverifizierten Ausgangssymbole als MAP-Erasure-Decoding-Technik ein Gaußsches Eliminationsverfahren eingesetzt wird.It is preferred that a Gaussian elimination method be used to recover the unverified output symbols as the MAP erasure decoding technique.

Weiterhin ist es bevorzugt, dass das Gleichungssystem G''uT = cT durch Gaußsche Elimination gelöst wird.Furthermore, it is preferred that the equation system G " T = c T be solved by Gaussian elimination.

Weiterhin ist es bevorzugt, dass empfangsseitig das Decodieren begonnen wird, sobald n ≥ 2k Ausgangssymbole empfangen wurden, wobei Δ ≥ k.Furthermore, it is preferred that, on the receiving side, decoding is started as soon as n ≥ 2k output symbols have been received, where Δ ≥ k.

Im Folgenden werden bevorzugte Ausführungsformen der Erfindung anhand von Figuren erläutert.In the following, preferred embodiments of the invention will be explained with reference to figures.

Es zeigen:Show it:

1 die Funktionsweise von Fountain Coding über einem Packet Error-Kanal, 1 How Fountain Coding Works Over a Packet Error Channel

2 eine Datenübertragung über einen q-ären symmetrischen Kanal, 2 a data transmission via a q-ary symmetrical channel,

3 u. 4 eine beispielhafte Darstellung von Verfahrensschritten des erfindungsgemäßen Verfahrens. 3 u. 4 an exemplary representation of process steps of the method according to the invention.

1 und 2 wurden bereits im Zusammenhang mit dem Stand der Technik erläutert. 1 and 2 have already been explained in connection with the prior art.

In 3 sind die Matrizen S = HRyT für die folgenden Parameter dargestellt:
5 Bits pro Paket, n = 10, n – k = 7, k = 3. Da das errechnete Syndrom S sich von 0 unterscheidet, bedeutet dies, dass Fehler aufgetreten sind. In 3 ist dargestellt, wie auf der Empfängerseite eine Parity-Check Matrix für den Fountain Code abgeleitet wird.
In 3 the matrices S = H R y T are shown for the following parameters:
5 bits per packet, n = 10, n - k = 7, k = 3. Since the calculated syndrome S is different from 0, this means that errors have occurred. In 3 It shows how to derive a parity-check matrix for the fountain code on the receiver side.

Durch Anwenden der in 4 dargestellten Zeilenadditionen auf die Syndrom-Matrix S (sodass S' erhalten wird) und ferner auf die Parity-Check Matrix HR (sodass die neue Matrix H'R erhalten wird) werden alle empfangenen Ausgangssymbole, die in die Gleichung Nr. 1 (beschrieben durch die erste Zeile von H'R) involviert sind, verifiziert. Selbiges gilt für die Ausgangssymbole, die in Gleichung 5, Gleichung 6 und Gleichung 7 involviert sind (jeweils dargestellt durch die entsprechende Zeile in H'R). In 4 wird somit dargestellt, wie in der Syndrom-Matrix S die Anzahl der Nicht-Null-Symbole auf ein Minimum reduziert wird.By applying the in 4 The row additions to the syndrome matrix S (such that S 'is obtained) and further to the parity check matrix H R (so that the new matrix H' R is obtained) are all received output symbols which are described in equation no through the first line of H ' R ) are verified. The same applies to the output symbols involved in Equation 5, Equation 6, and Equation 7 (each represented by the corresponding line in H ' R ). In 4 Thus it is shown how in the syndrome matrix S the number of non-zero symbols is reduced to a minimum.

Die verbleibenden Schritte des erfindungsgemäßen Algorithmus können ausgeführt werden gemäß den aus dem Stand der Technik bekannten Algorithmen, insbesondere gemäß der Veröffentlichung [6].The remaining steps of the algorithm according to the invention can be carried out according to the algorithms known from the prior art, in particular according to publication [6].

Claims (4)

Verfahren zum Wiederherstellen von verloren gegangenen und/oder beschädigten Daten, die von einer Sendevorrichtung zu einer Empfängervorrichtung übertragen werden, wobei dieses Verfahren die Schritte aufweist: Codieren der Daten durch einen Encoder, der mit der Sendevorrichtung verbunden ist, Übertragen der Daten von der Sendevorrichtung zu der Empfängervorrichtung über einen q-ären symmetrischen Übertragungskanal und Decodieren der Daten durch einen Decoder, der mit der Empfängervorrichtung verbunden ist, wobei verloren gegangene und/oder beschädigte Daten während des Decodierens wiederhergestellt werden, wobei zum Codieren ein Fountain Code verwendet wird, durch den ein Eingangs-Zeilenvektor u bestehend aus k Eingangssymbolen der Länge L Bits mit einer Generator-Matrix G der Größe k × (k + Δ) multipliziert wird, sodass der Ausgangs-Zeilenvektor k + Δ Ausgangssymbole aufweist, die durch eine Multiplikation des Eingangs-Zeilenvektors u mit den k + Δ Spalten der Generator-Matrix G entstehen, wobei der empfangene Zeilenvektor der Länge n mit y bezeichnet wird, wobei die Spalten der Generator-Matrix G, die den empfangenen Ausgangssymbolen entsprechen, eine neue Matrix GR der Größe k × n bilden, die als Generator-Matrix des empfangenen Fountain Codes betrachtet werden kann und umgeschrieben werden kann als GR = [I|P], wobei I eine k × k Identitätsmatrix und P eine k × (n – k) Matrix ist, wobei der neuen Generator-Matrix GR des empfangenen Fountain Codes eine Parity Check Matrix HR zugeordnet wird, die erlangt wird durch HR = (PT|I), wobei PT die Transponierte von P ist und I eine (n – k) × (n – k) Identitätsmatrix ist, wobei, falls der empfangene Vektor y keine fehlerhaften Pakete enthält, die folgende Gleichung gilt: 0T = HRyT wobei 0 ein Zeilenvektor der Länge n – k ist, dessen Komponenten Pakete der Länge L Bits sind, und falls der empfangene Vektor y fehlerhafte Pakete enthält, mit hoher Wahrscheinlichkeit die folgende Gleichung gilt: S = HRyT wobei S sich von 0 unterscheidet und S eine Matrix der Größe (n – k) × L ist, wobei, sofern fehlerhafte Pakete im empfangenen Vektor y vorhanden sind, die Syndrom-Matrix S zunächst durch Gaußsche Elimination verarbeitet wird, um die Anzahl der 0-Einträge auf ein Minimum zu reduzieren und die zugehörigen Zeilenoperationen auch in der Parity-Check Matrix HR durchgeführt werden, sodass eine möglichst große Anzahl an empfangenen Ausgangssymbolen verifiziert wären, wobei, sofern weniger als k Ausgangssymbole verifiziert wurden, wenigstens ein Teil der unverifizierten Ausgangssymbole als Auslöschungen behandelt werden und durch Maximum-a-posteriori-(MAP)-Erasure Decoding wiederhergestellt werden, wobei die Summe aller verifizierten und wiederhergestellten Ausgangssymbole als e bezeichnet wird und sofern e ≥ k, der Zeilenvektor, der diese Symbole enthält, als c gekennzeichnet wird und das folgende Gleichungssystem gelöst wird: G''uT = cT, wobei G'' eine e × k Matrix ist, deren i-te Zeile die Koeffizienten zum Bilden der i-ten Komponenten von c enthält.A method of recovering lost and / or corrupted data transmitted from a transmitting device to a receiving device, the method comprising the steps of: encoding the data by an encoder connected to the transmitting device, Transmitting the data from the transmitting device to the receiving device via a q-ary symmetric transmission channel and decoding the data by a decoder connected to the receiving device, recovering lost and / or corrupted data during decoding, wherein a fountain is used for encoding A code is used by which an input row vector u consisting of k input symbols of length L bits with a generator matrix G of size k × (k + Δ) is multiplied, so that the output row vector k + Δ output symbols by multiplying the input row vector u by the k + Δ columns of the generator matrix G, the received row vector of length n being denoted by y, the columns of the generator matrix G corresponding to the received output symbols being a new matrix G R of size k × n, which was considered as the generator matrix of the received fountain code can be and can be rewritten as G R = [I | P], where I is a k × k identity matrix and P is a k × (n-k) matrix, where the new generator matrix G R of the received fountain code is a Parity check matrix H R , which is obtained by H R = (P T | I), where P T is the transpose of P and I is an (n-k) × (n-k) identity matrix, where if the received vector y does not contain any erroneous packets, the following equation applies: 0 T = H R y T where 0 is a line vector of length n - k, whose components are packets of length L bits, and if the received vector y contains erroneous packets, the following equation holds with high probability: S = H R y T where S is different from 0 and S is a matrix of size (n-k) x L where, if there are any erroneous packets in the received vector y, the syndrome matrix S is first processed by Gaussian elimination to obtain the number of 0's To reduce entries to a minimum and the associated line operations are also performed in the parity check matrix H R , so that the largest possible number of received output symbols would be verified, and if less than k output symbols were verified at least a portion of the unverifiziert output symbols are treated as extinctions and are restored by maximum a posteriori (MAP) erosion decoding, where the sum of all verified and recovered output symbols is denoted as e, and if e ≥ k, the row vector containing these symbols is labeled c and the following equation system is solved: G''u T = c T , where G "is an e × k matrix whose i-th row contains the coefficients for forming the ith components of c. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass für die Wiederherstellung der unverifzierten Ausgangssymbole als MAP-Erasure Decoding-Technik ein Gaußsches Eliminationsverfahren eingesetzt wird.A method according to claim 1, characterized in that a Gaussian elimination method is used for the restoration of the unverifzierten output symbols as MAP erasure decoding technique. Verfahren nach einem der Ansprüche 1 oder 2, dadurch gekennzeichnet, dass das Gleichungssystem G''uT = cT durch Gaußsche Elimination gelöst wird.Method according to one of claims 1 or 2, characterized in that the equation system G''u T = c T is solved by Gaussian elimination. Verfahren nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, dass empfangsseitig das Decodieren begonnen wird, sobald n ≥ 2k Ausgangssymbole empfangen wurden, wobei Δ ≥ k.Method according to one of claims 1 to 3, characterized in that the decoding is started on the receiving side as soon as n ≥ 2k output symbols have been received, where Δ ≥ k.
DE102014214451.5A 2014-07-23 2014-07-23 Procedure for recovering lost and / or corrupted data Active DE102014214451B4 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102014214451.5A DE102014214451B4 (en) 2014-07-23 2014-07-23 Procedure for recovering lost and / or corrupted data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102014214451.5A DE102014214451B4 (en) 2014-07-23 2014-07-23 Procedure for recovering lost and / or corrupted data

Publications (2)

Publication Number Publication Date
DE102014214451A1 DE102014214451A1 (en) 2016-01-28
DE102014214451B4 true DE102014214451B4 (en) 2017-06-22

Family

ID=55065429

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102014214451.5A Active DE102014214451B4 (en) 2014-07-23 2014-07-23 Procedure for recovering lost and / or corrupted data

Country Status (1)

Country Link
DE (1) DE102014214451B4 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108718225B (en) * 2018-08-25 2021-03-23 中国人民解放军战略支援部队信息工程大学 Safe transmission method based on fountain code key coding symbol interference

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102012203653B3 (en) * 2012-03-08 2013-07-18 Deutsches Zentrum für Luft- und Raumfahrt e.V. 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

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102012203653B3 (en) * 2012-03-08 2013-07-18 Deutsches Zentrum für Luft- und Raumfahrt e.V. 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

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
MATUZ, B. [et al]: Verification-Based Decoding with MAP Erasure Recovery. In: 9th International ITG Conference on Systems, Communication and Coding, 2013, S. 1-6. – ISBN 978-3-8007-3482-5 *

Also Published As

Publication number Publication date
DE102014214451A1 (en) 2016-01-28

Similar Documents

Publication Publication Date Title
DE102009017540B4 (en) Procedure for recovering lost and / or damaged data
DE60206419T2 (en) DELETION AND INDIVIDUAL ERROR CORRECTION DEVICER FOR LINEAR BLOCK CODES
DE102010035210B4 (en) Method for recovering lost data and correcting corrupted data
DE102014214451B4 (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
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
DE69918912T2 (en) METHOD AND EMBODIMENT FOR IMPROVED PERFORMANCE IN A SYSTEM USING FOLDING DECODING
DE102014204828B4 (en) Procedure for recovering lost and / or corrupted data
DE102014208996B3 (en) Procedure for recovering lost and / or corrupted data
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
EP2654209B1 (en) Method and device for determining of a bit error rate for serial concatenated LDPC and block codes
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
DE102013213778B3 (en) A method for transmitting a message from a transmitter to a receiver via a communication medium by means of packet-level coding
DE102014210955B4 (en) Procedure for recovering lost and / or corrupted data
DE102016201408B4 (en) Method for transmitting data
DE102013223813B4 (en) Procedures for recovering lost and / or corrupted data
DE102013223413B4 (en) Procedure for recovering lost and / or corrupted data
DE102015216987B4 (en) Procedure for recovering lost and / or corrupted data
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
DE102013223801B4 (en) Procedure for recovering lost and / or corrupted data
DE102010005702A1 (en) Encoding and decoding data for transmission over a faulty transmission channel
DE102017213711B4 (en) Method for transmitting data
DE102008055139B4 (en) Method for receiving a data block
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