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

Procedure for recovering lost and / or corrupted data Download PDF

Info

Publication number
DE102013223801B4
DE102013223801B4 DE102013223801.0A DE102013223801A DE102013223801B4 DE 102013223801 B4 DE102013223801 B4 DE 102013223801B4 DE 102013223801 A DE102013223801 A DE 102013223801A DE 102013223801 B4 DE102013223801 B4 DE 102013223801B4
Authority
DE
Germany
Prior art keywords
decoding
matrix
data
verification
errors
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
DE102013223801.0A
Other languages
German (de)
Other versions
DE102013223801A1 (en
Inventor
Matuz Balazs
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 DE102013223801.0A priority Critical patent/DE102013223801B4/en
Publication of DE102013223801A1 publication Critical patent/DE102013223801A1/en
Application granted granted Critical
Publication of DE102013223801B4 publication Critical patent/DE102013223801B4/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/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/615Use of computational or mathematical techniques
    • H03M13/616Matrix operations, especially for generator matrices or check matrices, e.g. column or row permutations
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1108Hard decision decoding, e.g. bit flipping, modified or weighted bit flipping
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1128Judging correct decoding and iterative stopping criteria other than syndrome check and upper limit for decoding iterations
    • 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/3707Adaptive decoding and hybrid decoding, e.g. decoding methods or techniques providing more than one decoding algorithm for one code
    • 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

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 zur Wiederherstellung verloren gegangener und/oder beschädigter Daten, die von einer Sendevorrichtung über einen verlustbehafteten q-ären symmetrischen Kanal an eine Empfangsvorrichtung übertragen werden, wobei das Verfahren die folgenden Schritte aufweist, Kodieren der Daten durch einen Kodierer, der mit der Sendevorrichtung verbunden ist, Übertragen der Daten von der Sendevorrichtung an die Empfangsvorrichtung über den Übertragungskanal und Dekodieren der Daten durch einen mit der Empfangsvorrichtung verbundenen Dekodierer, wobei während des Dekodierens eine Rückgewinnung verloren gegangener und/oder beschädigter Daten durch Lösen des Gleichungssystems einer Parity-Check-Matrix H durchgeführt wird, wobei in einem ersten Dekodierschritt ein Verification-based-Decoding-Verfahren durchgeführt wird und im Falle eines Dekodierversagens, d. h. wenn nicht sämtliche Daten durch das Verification-based-Decoding-Verfahren wiederhergestellt werden konnten, ein Vector-Symbol-Decoding-Verfahren zum Dekodieren verwendet wird.A method for recovering lost and / or corrupted data transmitted from a transmitting device to a receiving device via a lossy q-ary balanced channel, 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 the transmission channel and decoding the data by a decoder connected to the receiving device, wherein recovery of lost and / or damaged data is performed by decoding the equation system of a parity check matrix H during decoding is performed, wherein in a first decoding step, a verification-based decoding method is performed and in the case of a decoder failure, d. H. if all data could not be recovered by the verification-based decoding method, a vector symbol decoding method is used for decoding.

Description

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

Bei den übertragenen Daten kann es sich beispielsweise um Audio- oder Videostreams handeln. Diese werden von einer Sendevorrichtung, die die Daten zur Verfügung stellt, beispielsweise an eine mobile Empfangsvorrichtung übermittelt. Bei der mobilen Empfangsvorrichtung kann es sich beispielsweise um ein Mobiltelefon, ein PDA oder ein anderes mobiles Endgerät handeln. Alternativ können auch Daten von einer Sendevorrichtung an eine stationäre Empfangsvorrichtung übertragen werden.The transmitted data may be, for example, audio or video streams. These are transmitted by a transmitting device, which provides the data, for example, to a mobile receiving device. The mobile receiving device may be, for example, a mobile phone, a PDA or another mobile terminal. Alternatively, data may also be transmitted from a transmitting device to a stationary receiving device.

Um eine gewünschte Übertragungsqualität zu sichern, ist es notwendig, die korrekte Übermittlung der Daten oder Datenpakete an die Empfangsvorrichtung zu überprüfen. Durch verschiedene Verfahren können verlorene und/oder beschädigte Daten, die nicht korrekt an die Empfangsvorrichtung übertragen wurden, wiederhergestellt werden.In order to ensure a desired transmission quality, it is necessary to check the correct transmission of the data or data packets to the receiving device. Various methods can recover lost and / or corrupted data that has not been correctly transmitted to the receiving device.

Ein bekanntes Verfahren zum Wiederherstellen verlorener und/oder beschädigter Daten ist das Low-Density-Parity-Check-Verfahren oder der Low-Density-Parity-Check-Code. Dieses wird auf einem sogenannten Erasure-Channel angewendet. Neben einer Anwendung durch Codieren auf der Ebene des Physical Layer existieren auch Anwendungen im Bereich eines Packet-Erasure-Channels (PEC).One known method of recovering lost and / or corrupted data is the low density parity check method or the low density parity check code. This is applied on a so-called erasure channel. Apart from an application by coding at the level of the physical layer, there are also applications in the area of a packet erasure channel (PEC).

Die vorliegende Erfindung betrifft allerdings ein Szenario, bei dem ein Bit-Strom über einen Kanal übertragen wird, auf dem Fehler in der Bit-Übertragungsschicht generiert werden. Hierbei kann es sich bspw. um einen binären, symmetrischen Error-Channel mit einer festgelegten Fehlerwahrscheinlichkeit oder mit Gauß'schen weißen Rauschen handeln. Bei einem solchen Kanal können Vertauschungen von Bitwerten vorkommen, sodass ein Bit als eine Null empfangen wird, obwohl es als eine 1 gesendet wurde. Die Besonderheit eines solchen Kanals liegt somit darin, dass der Empfänger nicht weiß, ob ein von ihm empfangenes Bit den richtigen Wert aufweist oder nicht. Im Gegensatz hierzu kann beim sogenannten Erasure-Channel davon ausgegangen werden, dass sämtliche empfangen Bits den richtigen Wert aufweisen, da sie ansonsten durch den Übertragungskanal ausgelöscht worden wären. In einem solchen Szenario führen Kodier- und Dekodierverfahren üblicherweise Berechnungen an einzelnen Bits durch, sodass die Datenstruktur beibehalten wird. Bspw. existieren sogenannte ”Belief-Propagation-Techniken”, bei denen die Wahrscheinlichkeit verwendet wird, dass jedes übertragene Bit Null oder 1 ist. Es werden Berechnungen ausgeführt, um diese Wahrscheinlichkeiten zu aktualisieren.However, the present invention relates to a scenario in which a bit stream is transmitted over a channel on which errors are generated in the bit transmission layer. This may, for example, be a binary, symmetric error channel with a defined error probability or with Gaussian white noise. In such a channel, swaps of bit values may occur, so that a bit is received as a zero even though it was sent as a 1. The peculiarity of such a channel is thus that the receiver does not know whether a bit received by it has the correct value or not. In contrast, in the so-called erasure channel, it can be assumed that all received bits have the correct value, since otherwise they would have been canceled out by the transmission channel. In such a scenario, encoding and decoding methods typically perform calculations on individual bits, so that the data structure is maintained. For example. There exist so-called "belief propagation techniques" which use the probability that each transmitted bit is zero or one. Calculations are performed to update these probabilities.

In vielen praktischen Anwendungen dagegen muss die Grundeinheit einer Datenübertragung nicht ein einzelnes Bit sein. Vielmehr werden Bit-Blöcke übertagen, die als Pakete organisiert sind. Der Ausdruck ”Pakete” bedeutete im Allgemeinen eine Ansammlung von mehreren Bits. Im Einzelfall kann ein Paket jedoch auch aus ausschließlich einem Bit bestehen. Bspw. können Datenpakete aus Tausenden von Bits bestehen, wie bspw. bei Internetpaketen. Andererseits kann ein Paket auch einfach ein 32-Bit-Integer sein. Um hohe Geschwindigkeiten zu erreichen, ist es naheliegend Codierverfahren zu verwenden, die Berechnungsoperationen in der Paket-Ebene anstatt in der Bit-Ebene durchführen. Ein Beispiel hierfür sind die bereits oben genannten paketbasierten LDPC-Codes.In contrast, in many practical applications, the basic unit of a data transfer need not be a single bit. Rather, bit blocks are transmitted, organized as packets. The term "packets" generally meant an accumulation of several bits. In individual cases, however, a package can also consist of only one bit. For example. Data packets can consist of thousands of bits, such as in Internet packages. On the other hand, a packet can simply be a 32-bit integer. In order to achieve high speeds, it is obvious to use coding methods which perform computational operations at the packet level rather than at the bit level. An example of this is the already mentioned packet-based LDPC codes.

Eine weitere Motivation, um Paket-Level-Verfahren zu betrachten, ist, dass diese in einem konkatenierten Code verwendet werden können. Bspw. kann ein innerer Code, der auf Bit-Level arbeitet, auf einzelnen Paketen angewandt werden. Wenn dieser innere Code versagt, können die Bits in dem Paket in unvorhersehbarer und scheinbar willkürlicher Art fehlerhaft sein. Ein äußerer Code, der dazu geeignet ist, mit Fehlern im Paket-Level umzugehen, könnte dann verwendet werden, um Daten wiederherzustellen, bei denen der innere Code versagt hat. Konkatenierte Codes erlauben die Verwendung von berechnungsintensiven inneren Codes, die auf Paketen mit einer festgelegten kleinen Größe angewandt werden, während sie gleichzeitig auf größere Blocklängen skaliert werden können, dadurch dass ein äußere Code im Paket-Level verwendet wird. Alternativ können in einem konkatenierten Code ein weniger berechnungsintensiver innerer Code verwendet werden, wobei dann ein äußerer Code im Paket-Level verwendet wird, der die dann häufiger auftretenden, durch den inneren Code nicht dekodierten Daten bearbeitet.Another motivation to consider packet-level methods is that they can be used in a concatenated code. For example. For example, an inner code that works at bit-level can be applied to individual packets. If this inner code fails, the bits in the packet may be erroneous in an unpredictable and seemingly arbitrary manner. An external code that is capable of handling packet-level errors could then be used to recover data that the inner code has failed. Concatenated codes allow the use of computation-intensive inner codes that are applied to packets of a fixed small size while at the same time being scalable to larger block lengths by using outer packet-level code. Alternatively, in a concatenated code, a less computation-intensive inner code may be used, then an outer packet-level code is used which handles the then more frequently occurring data not decoded by the inner code.

Informationen zu den aus dem Stand der Technik bekannten Verfahren können den folgenden Veröffentlichungen entnommen werden:

  • [1] G. Liva, B. Matuz, E. Paolini, and M. Chiani, ”Pivoting algorithm for maximum likelihood decoding of LDPC codes over erasure channels”, IEEE Global Telecommun. Conf., Honolulu, HI, USA, Nov. 2009.
  • [2] E. Paolini, G. Liva, B. Matuz, and M. Chiani, ”Maximum likelihood erasure decoding of LDPC codes: Pivoting algorithm and code design”, IEEE Trans. Commun. Vol. 60, no. 11, Nov. 2012.
  • [3] J. J. Metzner and E. J. Kapturowski, ”A general decoding technique applicable to replicated file disagreement location and concatenated code decoding”, IEEE Trans. Inform. Theory, vol. 36, pp. 911–917, July 1990.
  • [4] K. T. Oh and J. J. Metzner, ”Performance of a general decoding technique over the class of randomly chosen parity check codes”, IEEE Tans. Inform. Theory, vol. 40, no. 1, January 1994.
  • [5] M. Luby and M. Mitzenmacher, ”Verification-based decoding for packet-based low-density parity-check codes,” IEEE Trans. Inf. Theory, vol. 51, no. 1, pp. 120–127, Jan. 2005.
  • [6] F. Zhang and H. Pfister, ”List-message passing achieves capacity on the qary symmetric channel for large q,” in Proc. IEEE Global Telecommun. Conf., Washington, DC, USA, Nov. 2007, pp. 283–287.
  • [7] B. Matuz, G. Liva, E. Paolini, and M. Chiani, ”Verification-based decoding with MAP erasure recovery,” in Proc. ITG Int. Conf. Syst., Commun. and Coding (SCC), Munich, Germany, Jan. 2013, pp. 1–6.
Information on the methods known from the prior art can be found in the following publications:
  • [1] G. Liva, B. Matuz, E. Paolini, and M. Chiani, "Pivoting algorithm for maximum likelihood decoding of LDPC codes over erasure channels", IEEE Global Telecommun. Conf., Honolulu, HI, USA, Nov. 2009.
  • [2] E. Paolini, G. Liva, B. Matuz, and M. Chiani, "Maximum likelihood erosure decoding of LDPC codes: Pivoting algorithm and code design", IEEE Trans. Commun. Vol. 60, no. 11, Nov. 2012.
  • [3] JJ Metzner and EJ Kapturowski, "A general decoding technique applicable to replicated file disagreement location and concatenated code decoding", IEEE Trans. Inform. Theory, vol. 36, pp. 911-917, July 1990.
  • [4] KT Oh and JJ Metzner, "Performance of a general decoding technique over the randomly selected parity check codes", IEEE Tans. Inform. Theory, vol. 40, no. 1, January 1994.
  • [5] M. Luby and M. Mitzenmacher, "Verification-based decoding for packet-based low-density parity-check codes," IEEE Trans. Inf. Theory, vol. 51, no. 1, pp. 120-127, Jan. 2005.
  • [6] F. Zhang and H. Pfister, "List-message passing achievements capacity on the qary symmetric channel for large q," in Proc. IEEE Global Telecommun. Conf., Washington, DC, USA, Nov. 2007, pp. 283-287.
  • [7] B. Matuz, G. Liva, E. Paolini, and M. Chiani, "Verification-based decoding with MAP erasure recovery," in Proc. ITG Int. Conf. Syst., Commun. and Coding (SCC), Munich, Germany, Jan. 2013, pp. 1-6.

DE 10 2011 102 503 B3 beschreibt ein Verfahren, das der Veröffentlichung [7] entspricht. DE 10 2011 102 503 B3 describes a method corresponding to publication [7].

Aus dem Stand der Technik ist der Algorithmus von Luby und Mitzenmacher bekannt (siehe Druckschrift [5]), der als Verification-based decoding (VBD) bezeichnet wird. Hierin ist ein iterativer' Algorithmus beschrieben, der somit keine besonders hohe Berechnungskomplexität aufweist. Dieser Algorithmus dient der Verarbeitung von Paketfehlern. Die Idee besteht darin, Variable Nodes (VNs), die jeweils einem Paket entsprechen und Check Nodes (CNs) als verifiziert zu markieren (d. h. als korrekt), wenn die Pakete (lokal) die korrespondierende Paritätsgleichung erfüllen. Für den Fall, dass die Paritätsgleichung nicht erfüllt ist, existieren je nach konkreter Ausgestaltung des Algorithmus diverse Strategien, um die beschädigten Pakete zu korrigieren. Abhängig von den Parity-Checks können bspw. Kandidatenwerte für die Pakete entlang des Graphen propagiert werden. In der komplexesten Ausgestaltung entspricht Verification-based Decoding einem Message-List-Passing-Algorithmus, wie er bspw. in Druckschrift [6] beschrieben ist. Aufgrund der schnell wachsenden Listengrößen ist ein solcher Algorithmus nicht leicht zu implementieren.From the prior art, the algorithm of Luby and Mitzenmacher is known (see reference [5]), which is called Verification-based decoding (VBD). An iterative algorithm is described here which thus does not have a particularly high computational complexity. This algorithm is used to handle packet errors. The idea is to mark variable nodes (VNs), each corresponding to a packet, and check nodes (CNs) as verified (i.e., as correct) if the packets (locally) satisfy the corresponding parity equation. In the event that the parity equation is not met, various strategies exist to correct the damaged packets, depending on the specific configuration of the algorithm. Depending on the parity checks, for example, candidate values for the packets can be propagated along the graph. In the most complex embodiment, verification-based decoding corresponds to a message-list-passing algorithm, as described, for example, in reference [6]. Due to the fast-growing list sizes, such an algorithm is not easy to implement.

Ein weiterer aus dem Stand der Technik bekannter Algorithmus ist das sogenannte Vector-Symbol Decoding (VSD), das in Druckschrift [3] beschrieben ist. Die Hauptidee besteht darin, Manipulationen am Syndromvektor auszuführen, um die Positionen der Fehler in dem übertragenen Codewort festzustellen. Anschließend können die fehlerhaften Pakete korrigiert werden.Another algorithm known from the prior art is the so-called Vector-Symbol Decoding (VSD), which is described in reference [3]. The main idea is to perform manipulations on the syndrome vector to determine the positions of the errors in the transmitted codeword. Subsequently, the erroneous packages can be corrected.

Es ist Aufgabe der vorliegenden Erfindung, ein Verfahren zum Übertragen von Daten über einen bitfehlerbehafteten Kanal mit einer verbesserten Leistungsfähigkeit bereitzustellen.It is an object of the present invention to provide a method of transmitting data over a bit-error channel having 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.

Das erfindungsgemäße Verfahren dient zur Wiederherstellung verloren gegangener und/oder beschädigter Daten, die von einer Sendevorrichtung über einen fehlerbehafteten Kanal, der Bitfehler generiert, insbesondere einen q-ären symmetrischen Kanal an eine Empfangsvorrichtung übertragen werden. Das Verfahren weist die folgenden Schritte auf:
Kodieren der Daten durch einen Kodierer, der mit der Sendevorrichtung verbunden ist,
Übertragen der Daten von der Sendevorrichtung an die Empfangsvorrichtung über den Übertragungskanal und
Dekodieren der Daten durch einen mit der Empfangsvorrichtung verbundenen Dekodierer, wobei während des Dekodierens eine Rückgewinnung verloren gegangener und/oder beschädigter Daten durch Lösen des Gleichungssystems einer Parity-Check-Matrix H durchgeführt wird.
The inventive method is used to restore lost and / or damaged data, which are transmitted from a transmitting device via a faulty channel that generates bit errors, in particular a q-ary balanced channel to a receiving device. The method comprises the following steps:
Encoding the data by an encoder connected to the transmitting device,
Transmitting the data from the transmitting device to the receiving device via the transmission channel and
Decoding the data by a decoder connected to the receiving device, wherein recovery of lost and / or damaged data is performed by decoding the equation system of a parity check matrix H during decoding.

Erfindungsgemäß wird in einem ersten Dekodierschritt ein Verification-based-Decoding-Verfahren durchgeführt. Im Falle eines Dekodierversagens, d. h. wenn nicht sämtliche Daten durch das Verification-based-Decoding-Verfahren wiederhergestellt werden konnten, wird ein Vector-Symbol-Decoding-Verfahren zum Dekodieren verwendet.According to the invention, a verification-based decoding method is carried out in a first decoding step. In case of a decoding failure, i. H. if all data could not be recovered by the verification-based decoding method, a vector symbol decoding method is used for decoding.

Es wird somit vorgeschlagen, dekodierseitig einen Verification-based-Decoding-Algorithmus mit einem Vector-Symbol-Decoding-Algorithmus zu konkatenieren. Es kann jeglicher Typ eines Verification-based-Decoding-Algorithmus verwendet werden. Wenn der Verification-based-Decoding-Algorithmus kein erfolgreiches Dekodieren ermöglicht, werden die nicht wiederhergestellten Daten einem anschließenden Vector-Symbol-Decoding-Algorithmus zugeführt.It is thus proposed to concatenate on the decoder side a verification-based decoding algorithm with a vector symbol decoding algorithm. Any type of verification-based decoding algorithm can be used. If the verification-based decoding algorithm does not enable successful decoding, the unrecovered data is passed to a subsequent vector symbol decoding algorithm.

Es ist bevorzugt, dass dieser nach der Ermittlung der Fehlerpositionen im Codewort, die Verwendung eines intelligenten Gauß'schen Eliminationsverfahrens einschließt. Diese besondere Ausführungsform eines VSD-Algorithmus wird im Folgenden näher beschrieben. It is preferred that this, after detecting the error positions in the codeword, include the use of a smart Gaussian elimination method. This particular embodiment of a VSD algorithm is described in more detail below.

Die Kombination eines VBD-Verfahrens mit einem VSD-Verfahren bietet einerseits einen Anstieg der Leistungsfähigkeit, da der VSD-Algorithmus einige Fehler korrigieren kann, die der VBD-Algorithmus nicht korrigieren konnte. Andererseits kann der vorangehende VBD-Algorithmus linear abhängige Fehlermuster auflösen, sodass ein erfolgreiches Dekodieren durch den VSD-Algorithmus möglich ist. Ferner kann die Komplexität im Vergleich zu reinem VSD-Decoding verringert werden, da zahlreiche Fehler bereits während des ersten Dekodierschrittes durch den VBD-Algorithmus korrigiert werden.On the one hand, the combination of a VBD method with a VSD method provides an increase in performance because the VSD algorithm can correct for some errors that the VBD algorithm could not correct. On the other hand, the foregoing VBD algorithm can resolve linearly dependent error patterns so that successful decoding by the VSD algorithm is possible. Furthermore, the complexity can be reduced compared to pure VSD decoding, since numerous errors are already corrected during the first decoding step by the VBD algorithm.

Es ist bevorzugt, dass ein VBD-Verfahren durchgeführt wird, indem in der Darstellungsform eines bipartiten Graphen zu Beginn alle Variable Nodes als unverifiziert ( V ) und alle Check Nodes als unbestätigt ( C ) markiert werden, wobei alle Check Nodes gleichzeitig verarbeitet werden durch paralleles Durchführen der folgenden Schritte:

  • a) nämlich einer Verifikation, indem, sofern alle mit einem Check Node verbundenen Variable Nodes die Paritätsgleichung erfüllen, sie als verifiziert ( V ) markiert werden und der Check Node als bestätigt ( C ) markiert wird,
  • b) nämlich einer Korrektur, indem, sofern alle mit einem Check Node verbundenen Variable Nodes bis auf einen Variable Node verifiziert sind, der nicht-verifizierte Variable Node gemäß der Paritätsgleichung auf die elementweise Modulo-2-Summe der verifizierten Variable Node-Werte gesetzt wird, sodass sein Status als verifiziert markiert wird und der Status des Check Nodes als bestätigt markiert wird.
It is preferred that a VBD method is performed by initializing all variable nodes as unverified in the representation of a bipartite graph ( V ) and all check nodes are unconfirmed ( C ), whereby all check nodes are processed simultaneously by performing the following steps in parallel:
  • a) Verification in that, provided that all variable nodes associated with a check node satisfy the parity equation, they are verified ( V ) and the check node is confirmed ( C ) is marked,
  • b) namely a correction in that, provided that all variable nodes connected to a check node are verified except for one variable Node, the non-verified variable Node is set according to the parity equation to the elementary modulo-2 sum of the verified variable node values so that its status is marked as verified and the status of the check node is marked as confirmed.

Sofern der Dekodierprozess durch das VBD-Verfahren nicht erfolgreich abgeschlossen werden konnte, wird ein VSD-Verfahren durchgeführt durch

  • a) Berechnen einer Syndrom-Matrix S durch Multiplikation der Parity-Check-Matrix mit dem empfangenen Codewort,
  • b) Anwenden des Gauß'schen Eliminationsverfahrens auf die Syndrom-Matrix, um eine neue Syndrom-Matrix S' zu erhalten, die zum Teil die Form einer Identitätsmatrix aufweist,
  • c) Ausnullen des restlichen Teils der neuen Syndrom-Matrix S', der nicht die Form einer Einheitsmatrix aufweist, durch lineares Kombinieren mit den Zeilen der neuen Syndrom-Matrix S', die die Form einer Identitätsmatrix aufweisen, wobei die gleichen Linearkombinationen wie in der neuen Syndrom-Matrix S' in den entsprechenden Zeilen der Parity-Check-Matrix vorgenommen werden, sodass ein korrespondierendes Set an Nullkombinationen aus der Parity-Check-Matrix entsteht.
  • d) Ermitteln, welche Spalten dieser Nullkombinationen aus der Parity-Check-Matrix ausschließlich Nullen aufweisen, sodass hierdurch die Positionen der Fehler im empfangenen Codewort bekannt sind,
If the decoding process could not be successfully completed by the VBD method, a VSD method is performed by
  • a) calculating a syndrome matrix S by multiplying the parity check matrix by the received codeword,
  • b) applying the Gaussian elimination method to the syndrome matrix to obtain a new syndrome matrix S 'which is partly in the form of an identity matrix,
  • c) nulling out the remainder of the new syndrome matrix S ', which does not have the form of a unit matrix, by linearly combining with the lines of the new syndrome matrix S' having the form of an identity matrix, the same linear combinations as in FIG new syndrome matrix S 'be made in the corresponding lines of the parity check matrix, so that a corresponding set of zero combinations from the parity check matrix is created.
  • d) determining which columns of these zero combinations from the parity check matrix have all zeros, so that the positions of the errors in the received codeword are known,

Die fehlerhaften Daten im empfangenen Codewort, deren Position ermittelt wurde, werden unter Verwendung der korrekt empfangenen Daten korrigiert.The erroneous data in the received codeword whose position has been detected is corrected using the correctly received data.

Es ist bevorzugt, dass das VSD-Verfahren angewandt wird, um nach dem Durchführen des VBD-Verfahrens linear unabhängige Fehler zu korrigieren.It is preferred that the VSD method be used to correct for linearly independent errors after performing the VBD method.

Es ist bevorzugt, dass im Rahmen des VSD-Verfahrens die fehlerhaften Daten, deren Positionen festgestellt wurden durch die Verwendung eines intelligenten Gauß'schen Eliminationsverfahrens korrigiert werden. Dies wird im Folgenden näher beschrieben.It is preferred that in the VSD method, the erroneous data whose positions were detected be corrected by the use of a smart Gaussian elimination method. This will be described in more detail below.

In den folgenden Dekodierschritten werden die Fehler im empfangenen Codewort, deren Positionen im Codewort bekannt sind, als Auslöschungen betrachtet. Somit kann der verlustbehaftete Übertragungskanal anstatt als q-ärer symmetrischer Kanal als ein Erasure-Channel betrachtet werden. Bei einem Erasure-Channel wird davon ausgegangen, dass eine empfangene Dateneinheit (z. B. ein Bit-Wert) einen richtigen Wert darstellt, da ansonsten eine Auslöschung vorliegen würde.In the following decoding steps, the errors in the received codeword whose positions are known in the codeword are considered as cancellations. Thus, rather than being a q-ary symmetric channel, the lossy transmission channel may be considered an erasure channel. For an erasure channel, it is assumed that a received data unit (eg, a bit value) represents a correct value, otherwise an erasure would occur.

Da der Kanal nun als Erasure-Channel betrachtet wird, können für das weitere Dekodieren Techniken verwendet werden, die üblicherweise bei einer Datenübertragung über einen Erasure-Channel Anwendung finden. Für das Lösen des Gleichungssystems der Parity-Check-Matrix wird die Parity-Check-Matrix H durch Spalten- und/oder Zeilenvertauschungen in eine Dreiecksform gebracht. Spalten einer Submatrix B der Matrix H, die den Triangularisationsprozess behindern, werden in eine Submatrix P der Matrix H verschoben, sodass der Triangularisationsprozess fortgeführt werden kann, bis die Matrix H außer der Matrix P vollständig in eine Dreiecksform gebracht wurde. Anschließend wird auf einen Teil P1 der Submatrix P das Gauß'sche Eliminationsverfahren angewendet.Since the channel is now considered an erasure channel, techniques that are commonly used in data transmission over an erasure channel can be used for further decoding. For solving the equation system of the parity check matrix, the parity check matrix H is converted into a triangular form by means of column and / or line interchanges. Columns of a sub-matrix B of the matrix H that obstruct the triangularization process are shifted into a submatrix P of the matrix H, so that the triangularization process can continue until the matrix H except the matrix P is completely in one Triangular shape was brought. Subsequently, the Gaussian elimination method is applied to a part P1 of the submatrix P.

Ziel des erfindungsgemäßen Verfahrens ist es, den Bereich der Parity-Check-Matrix H, auf den das Gaußsche Eliminationsverfahren angewendet wird, so klein wie möglich zu halten, da dieses Verfahren aufgrund der notwendigen Zeilenadditionen für große Matrizen eine hohe Rechenleistung erfordert. Die Komplexität des Maximum-Likelihood-Verfahrens ist O(n3), wobei n die Blocklänge, das heißt die Anzahl der Spalten der Parity-Check-Matrix H ist. Wird nur auf einen kleinen Teil der Parity-Check-Matrix H das Gaußsche Eliminationsverfahren angewandt, so kann die erforderliche Rechenleistung erheblich reduziert werden. Hierzu wird die Submatrix A schrittweise vergrößert.The aim of the method according to the invention is to keep the area of the parity check matrix H to which the Gaussian elimination method is applied as small as possible, since this method requires a high computing power owing to the necessary row additions for large arrays. The complexity of the maximum likelihood method is O (n 3 ), where n is the block length, that is, the number of columns of the parity check matrix H. If the Gaussian elimination method is applied to only a small part of the parity check matrix H, the required computing power can be considerably reduced. For this purpose, the submatrix A is gradually increased.

Somit kann die Submatrix P so klein wie möglich gehalten werden, sodass der Rechenaufwand für das Gauß'sche Eliminationsverfahren, das auf die Submatrix P angewandt wird, minimiert werden kann.Thus, the sub-matrix P can be kept as small as possible, so that the computational effort for the Gaussian elimination method applied to the submatrix P can be minimized.

Bevor das Gauß'sche Eliminationsverfahren auf die Submatrix P angewandt wird, wird die Submatrix A in die Diagonalform gebracht und die Submatrix D ausgenullt. Das Gauß'sche Eliminationsverfahren muss somit nur auf den unteren Teil der Submatrix P, nämlich auf P1 angewandt werden. P1 ist dicht besetzt. Wenn die Gaußsche Elimination von P1 erfolgreich durchgeführt wurde, können die übrigen Unbekannten iterativ oder durch Rücksubstitution bestimmt werden. Das iterative Verfahren ist hierbei bevorzugt. Dieses wird auf die ursprüngliche Matrix angewendet, in dem die nunmehr ermittelten Unbekannten verwendet werden.Before the Gaussian elimination method is applied to the submatrix P, the submatrix A is placed in the diagonal form and the submatrix D is nullified. The Gaussian elimination method therefore only has to be applied to the lower part of the submatrix P, namely to P1. P1 is densely occupied. If the Gaussian elimination of P1 has been successfully performed, the remaining unknowns can be determined iteratively or by back substitution. The iterative method is preferred here. This is applied to the original matrix, in which the now discovered unknowns are used.

Der genaue Ablauf des Vector Symbol Decoding Algorithmus wird im Folgenden detaillierter dargestellt:
Es wird davon ausgegangen, dass H eine (n – k) × n Parity-Check-Matrix eines Parity-Check-Blockcodes ist. H definiert den (n, k) Code des Codesymbols x der Länge l Bit als das Set von Codeworten, die die Parity-Gleichungen erfüllen:

Figure DE102013223801B4_0002
The exact procedure of the Vector Symbol Decoding Algorithm is described in more detail below:
It is assumed that H is a (n-k) × n parity check matrix of a parity check block code. H defines the (n, k) code of the code symbol x of length l bits as the set of codewords that satisfy the parity equations:
Figure DE102013223801B4_0002

Wenn eine Sequenz von n Symbolen empfangen wurde, wird eine Syndrommatrix berechnet:

Figure DE102013223801B4_0003
When a sequence of n symbols has been received, a syndrome matrix is calculated:
Figure DE102013223801B4_0003

Hierbei ist e = y + x der Fehlervektor in der Position j.Here, e = y + x is the error vector in the position j.

Jede Reihe der Matrix H definiert eine Parity-Check-Gleichung am Vektorsymbol, die durch ein Codewort erfüllt sein muss. Wenn es möglich ist, eine Zeile von H zu finden, die diese Bedingung erfüllt, dann ist jede Position, in der dieser Zeilenvektor der Länge n Bits eine 1 enthält, fehlerfrei, sofern davon ausgegangen wird, dass die I-Bit Fehlervektoren linear unabhängig sind. Solch ein Vector in dem Zeilenraum von H wird als Null-Kombination bezeichnet.Each row of the matrix H defines a parity check equation on the vector symbol which must be satisfied by a codeword. If it is possible to find a line of H satisfying this condition, then any position in which this n-bit line vector contains a 1 is error-free, assuming that the I-bit error vectors are linearly independent , Such a vector in the line space of H is called a null combination.

Es existiert eine Fehlermatrix, in der einige Zeilen nur Nullen aufweisen und andere Zeilen, die nicht nur Nullen aufweisen, das Fehlermuster darstellen.There is an error matrix in which some lines have only zeros and other lines that are not just zeros represent the error pattern.

Um die Syndrommatrix zu erhalten, muss diese Fehlermatrix mit der Parity-Check-Matrix des Codes multipliziert werden. Es ist bekannt, dass elementare Spaltenoperationen in einer Matrix nichts daran ändern, welche Kombinationen von Zeilen von S zusammen Null ergeben. Dies ist wichtig, da an der Matrix S Spaltenoperationen durchgeführt werden, die entsprechend einer Gauß'schen Elimination funktionieren, sodass eine neue Matrix S' erhalten wird. Wenn die t Fehler linear unabhängig sind, dann ist die Matrix S' zusammengesetzt aus t Zeilen einer Identitätsmatrix und weiteren scheinbar zufällig verteilten Zeilen. Es ist möglich, dass in der Matrix S' eine oder mehrere Zeilenvektoren, die Null sind, gefunden werden. Dies bedeutet, dass die entsprechenden Reihen der Matrix H eine Null-Kombination darstellen (siehe Veröffentlichung [4]). Nach diesen Operationen sind die Kombinationen von Zeilen von S', die zusammen Null ergeben bekannt (durch Ausnullen des Teils der Matrix, der nicht die Form einer Identitätsmatrix aufweist). Ebenso sind die korrespondierenden Zeilen der Parity-Check-Matrix bekannt. Tatsächlich werden in der Matrix S' n-k-t solcher Null-Indikatoren existieren. Wenn vektorweise die Modulo-2 Summen der entsprechenden Zeilen von H gebildet werden, werden n-k-t Null-Kombinationen gefunden. Nach diesem Schritt muss die sogenannten ”Union” dieser Null-Kombinationen gebildet werden. Hierbei wird ermittelt, welche Spalten dieser Null-Kombinationen aus der Parity-Check-Matrix ausschließlich Nullen aufweisen. Hieraus ergibt sich ein logischer Vector, der verwendet werden kann, um die Positionen der t Fehlervektoren zu finden. Diese Union der Null-Kombinationen wird unter den beschriebenen Voraussetzungen in allen t Positionen, in denen sich die Fehler befinden, Nullen aufweisen. Dagegen wird sie an den Positionen ohne Fehler eine 1 aufweisen.To obtain the syndrome matrix, this error matrix must be multiplied by the parity check matrix of the code. It is known that elementary column operations in a matrix do not change which combinations of rows of S together yield zero. This is important because column operations are performed on the matrix S, which operate according to a Gaussian elimination, so that a new matrix S 'is obtained. If the t errors are linearly independent, then the matrix S 'is composed of t rows of an identity matrix and other seemingly random lines. It is possible that in the Matrix S 'one or more row vectors that are zero can be found. This means that the corresponding rows of the matrix H represent a zero combination (see publication [4]). After these operations, the combinations of rows of S 'which together make zero are known (by nulling out the part of the matrix that does not have the form of an identity matrix). Likewise, the corresponding lines of the parity check matrix are known. In fact, there will be no such zero indicators in the matrix. If the modulo-2 sums of the corresponding rows of H are vector-wise formed, nkt null combinations are found. After this step, the so-called "union" of these zero combinations must be formed. In this case, it is determined which columns of these zero combinations from the parity check matrix have all zeros. The result is a logical vector that can be used to find the positions of the t error vectors. This union of zero combinations will, under the conditions described, have zeros in all t positions where the errors are located. On the other hand, it will have a 1 at the positions without error.

Die im Folgenden beschriebenen Verfahrensschritte finden lediglich im Vektor Symbol Decoding Algorithmus, die aus dem Stand der Technik bekannt ist, Anwendung und werden, wie im Folgenden beschrieben, im Rahmen des erfindungsgemäßen Verfahrens durch ein alternatives Verfahren ersetzt:
Wenn die Fehlerpositionen gefunden sind, wird eine t×t Submatrix erzeugt, deren Spalten die t Spalten von H sind, die den Vektorpositionen der Identitätsmatrix in S' entsprechen. Nun wird diese Submatrix invertiert (hierbei kann Gauß'sche Elimination verwendet werden) und die exakten Fehlerwerte können gefunden werden durch Multiplizieren der inversen Matrix mit den entsprechenden t Zeilen von S.
The method steps described below are only used in the vector symbol decoding algorithm, which is known from the prior art, and are replaced, as described below, in the context of the method according to the invention by an alternative method:
When the error positions are found, a t × t sub-matrix is generated whose columns are the t columns of H that correspond to the vector positions of the identity matrix in S '. Now, this sub-matrix is inverted (Gaussian elimination can be used here) and the exact error values can be found by multiplying the inverse matrix by the corresponding t rows of S.

Im erfindungsgemäßen Verfahren wird dieser zweite Teil des Vector Symbol Decoding Algorithmus, nämlich die Inversion einer Submatrix von H (durch Gauß-Jordan-Elimination mit einer Komplexität von O(n3)) und die Multiplikation zwischen zwei Matrizen (die eine Komplexität von O(n3) aufweist, da die Matrizen dicht besetzt sind) mit einem Maximum a posteriori (MAP) Erasure Decoding Algorithmus ersetzt, in dem intelligente Gauß'sche Elimination verwendet wird.In the method according to the invention, this second part of the Vector Symbol Decoding Algorithm becomes the inversion of a sub-matrix of H (by Gauss-Jordan elimination with a complexity of O (n 3 )) and the multiplication between two matrices (which has a complexity of O ( n 3 ), since the matrices are densely populated) has been replaced with a maximum a posteriori (MAP) erasure decoding algorithm using smart Gaussian elimination.

Durch das MAP Erasure Decoding sind bereits die wahren Werte der ausgelöschten Symbole bekannt anstelle lediglich des Fehlermusters, wie es aus dem VSD-Algorithmus gemäß dem Stand der Technik bekannt ist. Daher ist es nicht notwendig die wahren Werte der fehlerhaften Symbole durch ein elementweises Bilden der Modulo-2 Summe zwischen den empfangenen Symbolen und den Fehlermuster wiederherzustellen.MAP erasure decoding already knows the true values of the erased symbols instead of just the error pattern as known from the VSD algorithm of the prior art. Therefore, it is not necessary to recover the true values of the erroneous symbols by elementally forming the modulo-2 sum between the received symbols and the error patterns.

Es ist anzumerken, dass der o. g. Verfahrensschritt b) des VSD-Algorithmus ebenfalls einen intelligenten Gauß'schen Eliminationsalgorithmus aufweisen kann. Dies würde jedoch von geringem Nutzen sein, da das Syndrom üblicherweise dünn besetzt ist.It should be noted that the o. G. Method step b) of the VSD algorithm can also have an intelligent Gaussian elimination algorithm. However, this would be of little use, since the syndrome is usually sparse.

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 Funktion eines VBD-Algorithmus, 1 the function of a VBD algorithm,

2 eine schematische Darstellung eines erfindungsgemäßen Decoders, 2 a schematic representation of a decoder according to the invention,

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

Im Folgenden wird ein einfaches Beispiel für den VSD-Algorithmus dargestellt. Die Berechnung des Syndroms erfolgt als ein Produkt der Parity-Check-Matrix und des Fehler-Vektors.The following is a simple example of the VSD algorithm. The calculation of the syndrome is done as a product of the parity check matrix and the error vector.

Figure DE102013223801B4_0004
Figure DE102013223801B4_0004

Durch Durchführen von Spaltenoperationen am Syndrom (was einer Gauß'schen Elimination entspricht) gelangt man zu dem modifizierten Syndrom S':

Figure DE102013223801B4_0005
By performing column operations on the syndrome (which corresponds to Gaussian elimination) one arrives at the modified syndrome S ':
Figure DE102013223801B4_0005

Die unteren vier Reihen des modifizierten Syndroms S' können ausgenullt werden durch lineares Kombinieren der ersten drei Zeilen. Somit kann geschlossen werden, dass die korrespondierenden Parity-Checks (die auch aus linearen Kombinationen der ersten drei Parity-Check-Gleichungen bestehen) keine fehlerhaften Symbole enthalten. Andernfalls wäre das Syndrom nicht Null. Dann wird die Union der Null-Kombinationen erzeugt (siehe Druckschrift [5]), d. h. es wird ermittelt, welche Spalten dieser Null-Kombination aus der Parity-Check-Matrix ausschließlich Nullen aufweisen, sodass hierdurch die Positionen der Fehler im dem empfangenen Codewort bekannt sind. Nun können die fehlerhaften Symbole bspw. durch Erasure-Decoding-Techniken oder durch eine Inversion der Syndrom-Gleichungen (siehe Druckschrift [3]) korrigiert werden.The lower four rows of the modified syndrome S 'can be nullified by linearly combining the first three rows. Thus, it can be concluded that the corresponding parity checks (which also consist of linear combinations of the first three parity check equations) do not contain any erroneous symbols. Otherwise, the syndrome would not be zero. Then the union of zero combinations is generated (see reference [5]), d. H. it is determined which columns of this zero combination from the parity check matrix have all zeros, so that thereby the positions of the errors in the received codeword are known. Now, the erroneous symbols can be corrected, for example, by erasure decoding techniques or by inversion of the syndrome equations (see reference [3]).

Im Folgenden wird ein Beispiel für einen VBD-Algorithmus dargestellt. Es wird die Übertragung von Paketen über einen Kanal betrachtet, der Fehler generiert. Es wird ein (6,2) Code verwendet, der die folgende Parity-Check-Matrix aufweist:

Figure DE102013223801B4_0006
The following is an example of a VBD algorithm. It looks at the transmission of packets over a channel that generates errors. A (6.2) code is used that has the following parity check matrix:
Figure DE102013223801B4_0006

Es wird davon ausgegangen, dass das Codewort x = [0 0 0 0 0 0] übertragen wird. Dieses Codewort weist nur Nullen auf. Jedes xi muss verstanden werden als ein GF(q) Feldelement. Ferner wird davon ausgegangen, dass der Kanal ein Fehlermuster e = [0 0 0 0 a b] generiert, wobei a, b Nicht-Null-Elemente aus GF(q) sind. Beim Beginn des VBD-Algorithmus sind alle Knoten (Variable-Nodes und Check-Nodes) unverifiziert/unbestätigt. Die Zustände der Variable-Nodes und Check-Nodes als auch die aktuellen Werte, die den Variable-Nodes zugeordnet sind, sind in 1 für den Zeitpunkt der ersten Iteration des VBD-Algorithmus dargestellt. Direkt hiernach stoppt der Decoder, da kein Check-Node exisitiert, dessen Parität erfüllt ist. Der oben unter Verfahrensschritt a) beschriebene Verifikationsschritt kann somit nicht durchgeführt werden. Auch existiert kein Check-Node, der mit einem einzigen unverifizierten Variable-Node verbunden ist (der oben dargestellte Korrekturschritt b) kann ebenfalls nicht durchgeführt werden). Daher ist in dem dargestellten Beispiel das Dekodieren nicht erfolgreich, da lediglich drei von sechs Variable-Nodes verifiziert werden konnten.It is assumed that the codeword x = [0 0 0 0 0 0] is transmitted. This codeword has only zeros. Every x i must be understood as a GF (q) field element. Furthermore, it is assumed that the channel generates an error pattern e = [0 0 0 0 ab], where a, b are nonzero elements of GF (q). At the beginning of the VBD algorithm, all nodes (variable nodes and check nodes) are unverified / unacknowledged. The states of the variable nodes and check nodes as well as the current values associated with the variable nodes are in 1 for the time of the first iteration of the VBD algorithm. Immediately thereafter the decoder stops because there is no check-node whose parity is satisfied. The verification step described above under process step a) can thus not be carried out. Also if there is no check node associated with a single unverified variable node (the above-described correction step b) can not be performed either). Therefore, in the illustrated example, decoding is unsuccessful since only three out of six variable nodes could be verified.

Im Rahmen des erfindungsgemäßen Verfahrens wird nun im Folgenden dargestellt, wie in dem gerade betrachteten Beispiel doch ein erfolgreiches Dekodieren durchgeführt werden kann. Hierzu findet dekoderseitig ein Konkatenieren eines VBD-Verfahrens mit einem VSD-Verfahren statt. Genauer gesagt, empfängt der Encoder ein Set von k-Paketen und generiert ein Set von n-Paketen an seinem Ausgang. Hieraus wird der Paketvektor x gebildet. Der Kommunikationskanal, bei dem es sich bspw. um einen q-ären symmetrischen Kanal handeln kann, erzeugt Fehler, sodass dekoderseitig y = x + e empfangen wird, wobei im Falle eines Fehlers e ≠ 0. Der Dekoder möchte die übertragenen Pakete x wiederherstellen. Im ersten Schritt wird VBD durchgeführt. Aufgrund des suboptimalen Charakters dieses Decoding-Algorithmus werden nicht alle Fehler wiederhergestellt. Linear abhängige Fehler innerhalb eines Codeworts werden möglicherweise aufgelöst, sofern sie nicht innerhalb der gleichen Parity-Check-Gleichung auftreten. In einem solchen Fall könnte es vorkommen, dass der Decoder beschädigte Variable-Nodes fälschlicherweise verifiziert. In Druckschrift [5] wurde gezeigt, dass die Wahrscheinlichkeit für eine falsche Verifikation an einem Check-Node mit der Paketgröße abnimmt, da 1/(q – 1), wobei q = 2l. Daher sinkt diese Wahrscheinlichkeit bereits für kleine Paketgrößen (d. h. z. B. l = 50 Bits) sehr stark und ist praktisch nicht vorhanden. Für den Fall, dass der VBD-Algorithmus versagt (siehe das oben genannte Beispiel), kann die Originalnachricht nach wie vor wiederhergestellt werden unter Verwendung eines optimalen (aber nicht praktischen) Maxium-Likelihood-Decoders. Erfindungsgemäß ist jedoch in diesem Schritt die Verwendung eines VSD-Algorithmus vorgesehen. Für den Fall, dass keine linear abhängigen Fehler nach dem VBD-Algorithmus übrig geblieben sind, können durch den VSD-Algorithmus die Positionen der Fehler im übertragenen Codewort ermittelt werden und die fehlerhaften Symbole können anschließend unter Verwendung der korrekt empfangenen Daten korrigiert werden.In the context of the method according to the invention, it will now be shown below how successful decoding can be carried out in the example just considered. For this purpose, a concatenation of a VBD method with a VSD method takes place on the decoder side. More specifically, the encoder receives a set of k-packets and generates a set of n-packets at its output. From this, the packet vector x is formed. The communication channel, which may be, for example, a q-ary symmetric channel, generates errors so that decoder-side y = x + e is received, in case of an error e ≠ 0. The decoder wants to recover the transmitted packets x. In the first step, VBD is performed. Due to the suboptimal nature of this decoding algorithm, not all errors are recovered. Linear dependent errors within a codeword may be resolved unless they occur within the same parity check equation. In such a case, the decoder might incorrectly verify corrupted variable nodes. Document [5] has shown that the probability of a wrong verification at a check node decreases with the packet size, since 1 / (q - 1), where q = 2 l . Therefore, this probability already drops very low for small packet sizes (ie eg l = 50 bits) and is virtually non-existent. In the event the VBD algorithm fails (see the above example), the original message can still be recovered using an optimal (but not practical) Maxium likelihood decoder. According to the invention, however, the use of a VSD algorithm is provided in this step. In the event that no linearly dependent errors are left after the VBD algorithm, the VSD algorithm can determine the positions of the errors in the transmitted codeword and then correct the erroneous symbols using the correctly received data.

Es wird erneut die bereits oben dargestellte Parity-Check-Matrix H betrachtet:

Figure DE102013223801B4_0007
The parity check matrix H already shown above is again considered:
Figure DE102013223801B4_0007

Es wird angenommen, dass das Codewort, das nur aus Nullen besteht mit I = 2 Bits übertragen wird und, dass das Fehlermuster die folgende Form aufweist:

Figure DE102013223801B4_0008
It is assumed that the codeword which consists only of zeros is transmitted with I = 2 bits and that the error pattern has the following form:
Figure DE102013223801B4_0008

Nachdem durch das VBD-Verfahren die Variable-Nodes 1, 3, und 4 verifiziert wurden (d. h. als korrekt identifiziert wurden) wird eine bereinigte Parity-Check-Matrix H' erzeugt, in der alle Zeilen von H entfernt wurden, die nicht die unbekannten Variable-Nodes 2, 5 und 6 enthalten. In diesem Fall wurde Zeile 1 entfernt. Daher wird das Syndrom berechnet als S' = H' × y, sodass sich ergibt:

Figure DE102013223801B4_0009
After the variable nodes 1, 3, and 4 have been verified (ie, identified as correct) by the VBD method, an adjusted parity check matrix H 'is generated in which all rows of H that are not the unknown ones have been removed Variable Nodes 2, 5 and 6 included. In this case, line 1 was removed. Therefore, the syndrome is calculated as S '= H' × y so that:
Figure DE102013223801B4_0009

Es ist leicht zu erkennen, dass die letzte Zeile des Syndroms ausgenullt werden kann durch Addieren der ersten zwei Zeilen. Wenn die gleichen Additionen auf der rechten Seite durchgeführt werden (d. h. wenn die ersten zwei Zeilen der Parity-Check-Matrix) addiert werden, ergibt sich die Reihe [0 1 0 1 0 0], aus der hervorgeht, dass die Variable-Nodes 2 und 4 korrekt sind. Aus dem vorangehenden VBD-Algorithmus ist bekannt, dass die Variable-Nodes 1, 3 und 4 korrekt sind. Daher ist nun bekannt, dass die Variable-Nodes 5 und 6 den Fehler enthalten.It is easy to see that the last line of the syndrome can be nullified by adding the first two lines. If the same additions are performed on the right hand side (ie if the first two lines of the parity check matrix) are added, the result is the row [0 1 0 1 0 0], which shows that the variable nodes 2 and 4 are correct. It is known from the preceding VBD algorithm that the variable nodes 1, 3 and 4 are correct. Therefore, it is now known that the variable nodes 5 and 6 contain the error.

Um die Werte der Variable-Nodes 5 und 6 wiederherzustellen, ist der einfachste Ansatz, davon auszugehen, dass die Variable-Nodes 5 und 6 Auslöschungen sind, sodass es möglich ist, intelligente Gauß'sche Elimination (smart Gaussian elimination) zur Fehlerwiederherstellung zu verwenden. Werden die Auslöschungen als ŷ5, ŷ6 bezeichnet, so ist folgendes zu lösen:

Figure DE102013223801B4_0010
To recover the values of variable nodes 5 and 6, the simplest approach is to assume that variable nodes 5 and 6 are dropouts, so it is possible to use smart gaussian elimination for error recovery , If the deletions are designated as ŷ 5 , ŷ 6 , the following must be solved:
Figure DE102013223801B4_0010

Dies führt zu: ŷ5 = [0 0], ŷ6 = [0 0].This leads to: ŷ 5 = [0 0], ŷ 6 = [0 0].

Die oben genannten Gleichung kann in effizienter Weise unter Verwendung des intelligenten Gauß'schen Eliminationsverfahrens gelöst werden. Ferner müssen dank des VBD-Verfahrens weniger Gleichungen im VSD-Verfahren betrachtet werden. Dies führt zu einer reduzierten Komplexität. Es ist zu beachten, dass zwei linear abhängige Fehlermuster, z. B. e5 = [1 0], e6 = [1 0] dazu führen würden, dass die dritte Zeile des Syndroms nur Nullen aufweist und somit [1 1 1 1 1 1] eine gültige Null-Kombination wäre (alle Variable-Nodes sind scheinbar korrekt).The above equation can be efficiently solved using the smart Gaussian elimination method. Furthermore, the VBD method requires fewer equations to be considered in the VSD process. This leads to a reduced complexity. It should be noted that two linearly dependent error patterns, e.g. For example, e 5 = [1 0], e 6 = [1 0] would cause the third line of the syndrome to have only zeros and thus [1 1 1 1 1 1] would be a valid null combination (all variable Nodes are apparently correct).

Im Folgenden wird anhand von 3 ein Beispiel für die Leistungsfähigkeit des erfindungsgemäßen Verfahrens dargestellt. Es wird eine Übertragung über einen q-ären symmetrischen Kanal betrachtet. Es wird von einem Low-Density-Parity-Check-Code mit n = 200 und k = 100 und einer Paketgröße l von 64 Bits ausgegangen. Betrachtet wird die Performance des Codes im Hinblick auf die Codeword-Error-Rate (CER) unter Verwendung von VBD, VSD und des erfindungsgemäßen Verfahrens (hier als VBDSR, nämlich Verification-based decoding with syndrome reprocessing) betrachtet. Das VBD-Verfahren und der VBD-Schritt in VBDSR basieren hierbei auf dem in Druckschrift [7] beschriebenen Ansatz, d. h. es wird eine modifizierte Version des oben beschriebenen VBD-Algorithmus verwendet.The following is based on 3 an example of the performance of the method according to the invention is shown. A transmission over a q-ary symmetric channel is considered. It is assumed that a low-density parity check code with n = 200 and k = 100 and a packet size l of 64 bits. Considered is the performance of the code in terms of codeword error rate (CER) using VBD, VSD and the method of the invention (considered here as VBDSR, namely Verification-based decoding with syndrome reprocessing). The VBD method and the VBD step in VBDSR are based on the approach described in reference [7], ie a modified version of the VBD algorithm described above is used.

Es ist erkennbar, dass der VBD-Algorithmus die schlechteste Performance liefert, während eine starke Verbesserung erkennbar ist, wenn stattdessen VSD verwendet wird. Durch das erfindungsgemäße Verfahren kann nicht nur die Komplexität gegenüber VSD verringert werden, sondern es kann auch ein erkennbarer Gewinn in der Channel-Erasure-Rate erreicht werden.It can be seen that the VBD algorithm provides the worst performance, while a strong improvement is seen when VSD is used instead. Not only can the complexity be reduced over VSD by the method of the invention, but also a recognizable gain in the channel erosure rate can be achieved.

Claims (3)

Verfahren zur Wiederherstellung verloren gegangener und/oder beschädigter Daten, die von einer Sendevorrichtung über einen fehlerbehafteten Kanal, der Bitfehler generiert, an eine Empfangsvorrichtung übertragen werden, wobei das Verfahren die folgenden Schritte aufweist, Kodieren der Daten durch einen Kodierer, der mit der Sendevorrichtung verbunden ist, Übertragen der Daten von der Sendevorrichtung an die Empfangsvorrichtung über den Übertragungskanal und Dekodieren der Daten durch einen mit der Empfangsvorrichtung verbundenen Dekodierer, wobei während des Dekodierens eine Rückgewinnung verloren gegangener und/oder beschädigter Daten durch Lösen des Gleichungssystems einer Parity-Check-Matrix H durchgeführt wird, wobei in einem ersten Dekodierschritt ein Verification-based-Decoding-Verfahren durchgeführt wird und im Falle eines Dekodierversagens, d. h. wenn nicht sämtliche Daten durch das Verification-based-Decoding-Verfahren wiederhergestellt werden konnten, ein Vector-Symbol-Decoding-Verfahren zum Dekodieren verwendet wird, in dem beim Dekodieren die Positionen von Fehlern in einem empfangenen Codewort ermittelt werden, wobei die fehlerhaften Daten im empfangenen Codewort, deren Positionen ermittelt wurden, unter Verwendung der korrekt empfangenen Daten korrigiert werden.A method of recovering lost and / or corrupted data transmitted to a receiving device by a transmitting device via a faulty channel that generates bit errors, 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 the transmission channel and decoding the data by a decoder connected to the receiving device, wherein recovery of lost and / or damaged during decoding Data is performed by solving the equation system of a parity check matrix H, wherein in a first decoding step, a verification-based decoding method is performed and in case of a decoding failure, that is, if not all data by the verification-based decoding method a vector symbol decoding method is used for decoding, in which the positions of errors in a received codeword are determined during decoding, the erroneous data in the received codeword whose positions were determined using the correctly received corrected data. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass ein Verification-based-Decoding-Verfahren durchgeführt wird, indem in der Darstellungsform eines bipartiten Graphen zu Beginn alle Variable Nodes als unverifiziert ( V ) und alle Check Nodes als unbestätigt ( C ) markiert werden, wobei alle Check Nodes gleichzeitig verarbeitet werden durch paralleles Durchführen der folgenden Schritte: a) nämlich einer Verifikation, indem, sofern alle mit einem Check Node verbundenen Variable Nodes die Paritätsgleichung erfüllen, sie als verifiziert ( V ) markiert werden und der Check Node als bestätigt ( C ) markiert wird, b) nämlich einer Korrektur, indem, sofern alle mit einem Check Node verbundenen Variable Nodes bis auf einen Variable Node verifiziert sind, der nicht-verifizierte Variable Node gemäß der Paritätsgleichung auf die elementweise Modulo-2-Summe der verifizierten Variable Node-Werte gesetzt wird, sodass sein Status als verifiziert markiert wird und der Status des Check Nodes als bestätigt markiert wird, wobei, sofern der Dekodierprozess durch das Verification-based-Decoding-Verfahren nicht erfolgreich abgeschlossen werden konnte, ein Vector-Symbol-Decoding-Verfahren durchgeführt wird, in dem beim Dekodieren die Positionen von Fehlern in einem empfangenen Codewort wie folgt ermittelt werden: a) Berechnen einer Syndrom-Matrix S durch Multiplikation der Parity-Check-Matrix mit dem empfangenen Codewort, b) Anwenden des Gauß'schen Eliminationsverfahrens auf die Syndrom-Matrix, um eine neue Syndrom-Matrix S' zu erhalten, die zum Teil die Form einer Identitätsmatrix aufweist, c) Ausnullen des restlichen Teils der neuen Syndrom-Matrix S', der nicht die Form einer Einheitsmatrix aufweist, durch lineares Kombinieren mit den Zeilen der neuen Syndrom-Matrix S', die die Form einer Identitätsmatrix aufweisen, wobei die gleichen Linearkombinationen wie in der neuen Syndrom-Matrix S' in den entsprechenden Zeilen der Parity-Check-Matrix vorgenommen werden, sodass ein korrespondierendes Set an Nullkombinationen aus der Parity-Check-Matrix entsteht. d) Ermitteln, welche Spalten dieser Nullkombinationen aus der Parity-Check-Matrix ausschließlich Nullen aufweisen, sodass hierdurch die Positionen der Fehler im empfangenen Codewort bekannt sind, wobei die fehlerhaften Daten im empfangen Codewort, deren Position ermittelt wurde, unter Verwendung der korrekt empfangenen Daten wiederhergestellt werden.A method according to claim 1, characterized in that a verification-based decoding method is performed by starting in the representation of a bipartite graph at the beginning of all variable nodes as unverifiziert ( V ) and all check nodes are unconfirmed ( C ), whereby all check nodes are processed simultaneously by performing the following steps in parallel: a) namely a verification in that, if all variable nodes connected to a check node satisfy the parity equation, they are verified ( V ) and the check node is confirmed ( C ), b) a correction in that, provided that all variable nodes connected to a check node are verified with the exception of one variable Node, the non-verified variable Node according to the parity equation applies to the elementary modulo-2 sum of the verified variable Node Values are set so that their status is marked as verified and the status of the check node is marked as confirmed, whereby, if the decoding process could not be successfully completed by the verification-based decoding method, a Vector-Symbol-Decoding- A method is carried out in which the positions of errors in a received codeword are determined during decoding as follows: a) calculating a syndrome matrix S by multiplying the parity check matrix with the received codeword, b) applying the Gaussian elimination method on the syndrome matrix to obtain a new syndrome matrix S ', which partly takes the form of an identity matrix c) nulling out the remainder of the new syndrome matrix S 'which does not have the form of a unit matrix by linearly combining with the lines of the new syndrome matrix S' having the form of an identity matrix, the same linear combinations as in the new syndrome matrix S 'in the corresponding lines of the parity check matrix, so that a corresponding set of null combinations arises from the parity check matrix. d) Determine which columns of these null combinations from the parity check matrix have all zeros, thereby the positions of the errors in the received codeword are known, the erroneous data in the received codeword whose position was determined using the correctly received data be restored. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass das Vector-Symbol-Decoding-Verfahren angewandt wird, um nach dem Durchführen des Verification-based-Decoding-Verfahrens noch bestehende linear unabhängige Fehler zu korrigieren.A method according to claim 1 or 2, characterized in that the vector symbol decoding method is used to correct existing linearly independent errors after performing the verification-based decoding method.
DE102013223801.0A 2013-11-21 2013-11-21 Procedure for recovering lost and / or corrupted data Active DE102013223801B4 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102013223801.0A DE102013223801B4 (en) 2013-11-21 2013-11-21 Procedure for recovering lost and / or corrupted data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102013223801.0A DE102013223801B4 (en) 2013-11-21 2013-11-21 Procedure for recovering lost and / or corrupted data

Publications (2)

Publication Number Publication Date
DE102013223801A1 DE102013223801A1 (en) 2015-05-21
DE102013223801B4 true DE102013223801B4 (en) 2015-09-03

Family

ID=53184432

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102013223801.0A Active DE102013223801B4 (en) 2013-11-21 2013-11-21 Procedure for recovering lost and / or corrupted data

Country Status (1)

Country Link
DE (1) DE102013223801B4 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102011102503B3 (en) * 2011-05-25 2012-10-25 Deutsches Zentrum für Luft- und Raumfahrt e.V. 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

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102011102503B3 (en) * 2011-05-25 2012-10-25 Deutsches Zentrum für Luft- und Raumfahrt e.V. 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

Also Published As

Publication number Publication date
DE102013223801A1 (en) 2015-05-21

Similar Documents

Publication Publication Date Title
DE102009017540B4 (en) Procedure for recovering lost and / or damaged data
DE602005003767T2 (en) METHOD FOR COMPRESSING A LOT OF CORRELED SIGNALS
DE102017110389B4 (en) Method and decoder for soft input decoding of generalized chained codes
DE102011085602B4 (en) Apparatus and method for correcting at least one bit error in a coded bit sequence
DE102010035210B4 (en) Method for recovering lost data and correcting corrupted data
DE102014215252A1 (en) EFFECTIVE ERROR CORRECTION OF MULTI-BIT ERRORS
DE102017216264B4 (en) Decoding method
DE102013223801B4 (en) Procedure for recovering lost and / or corrupted data
DE102013223813B4 (en) Procedures 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
DE102014204828B4 (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
DE102014208996B3 (en) Procedure for recovering lost and / or corrupted data
DE102016201408B4 (en) Method for transmitting data
DE102014214451B4 (en) Procedure for recovering lost and / or corrupted data
DE102013218311B4 (en) Procedure for recovering lost and / or damaged data
DE102013223413B4 (en) Procedure for recovering lost and / or corrupted data
DE102004053656B4 (en) Method for processing signals according to methods with block-based error protection codes
DE102017206718B4 (en) Method for generating a class of non-binary LDPC codes
DE102014215478B4 (en) Method for transmitting data
DE102014210955B4 (en) Procedure for recovering lost and / or corrupted data
DE102012223040B3 (en) Method for restoring missing and/or damaged data transmitted from transmission device to receiving device in communication system, involves concatenating LDPC code with repetition code such that code word is multiplied with coefficient
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
DE102014218384B3 (en) Recovery of a binary response pattern from a noisy channel
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

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