DE102013219863B4 - A method of transmitting a message from a sender to a receiver via a communication medium using packet-level encoding - Google Patents

A method of transmitting a message from a sender to a receiver via a communication medium using packet-level encoding Download PDF

Info

Publication number
DE102013219863B4
DE102013219863B4 DE102013219863.9A DE102013219863A DE102013219863B4 DE 102013219863 B4 DE102013219863 B4 DE 102013219863B4 DE 102013219863 A DE102013219863 A DE 102013219863A DE 102013219863 B4 DE102013219863 B4 DE 102013219863B4
Authority
DE
Germany
Prior art keywords
matrix
packets
parity check
codeword
mds
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
DE102013219863.9A
Other languages
German (de)
Other versions
DE102013219863A1 (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 DE102013219863.9A priority Critical patent/DE102013219863B4/en
Publication of DE102013219863A1 publication Critical patent/DE102013219863A1/en
Application granted granted Critical
Publication of DE102013219863B4 publication Critical patent/DE102013219863B4/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/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/1148Structural properties of the code parity-check or generator matrix
    • H03M13/1171Parity-check or generator matrices with non-binary elements, e.g. for non-binary LDPC codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • H03M13/2927Decoding strategies
    • H03M13/293Decoding strategies with erasure setting
    • 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
    • H03M13/3715Adaptation to the number of estimated errors or to the channel state
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/373Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with erasure correction and erasure determination, e.g. for packet loss recovery or setting of erasures for the decoding of Reed-Solomon codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3746Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with iterative decoding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/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/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1515Reed-Solomon codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1575Direct decoding, e.g. by a direct determination of the error locator polynomial from syndromes and subsequent analysis or by matrix operations involving syndromes, e.g. for codes with a small minimum Hamming distance

Landscapes

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

Abstract

Verfahren zum Übertragen einer Nachricht von einem Sender zu einem Empfänger über ein Kommunikationsmedium mittels Packet-Level-Coding, mit den folgenden Schritten: – an der Sender-Seite – Aufteilen der zu übertragenden Nachricht in k Informationspakete von jeweils L Bits (Eingabe-Zeichen), – Kodieren der k Informationspakete zu n Codewort-Paketen von jeweils L Bits (Ausgabe-Zeichen), wobei n größer als k ist und wobei m = n – k Paritäts-Pakete erzeugt werden, und – Schützen der n Codewort-Pakete durch Fehler-Detektions- und -Korrektur-Codes, – Übertragen der n Codewort-Pakete und m Paritäts-Pakete über das Kommunikationsmedium vom Sender zum Empfänger, und – an der Empfänger-Seite – für jedes der gesendeten Codewort-Pakete, Durchführen einer Fehlerkorrektur mittels des Fehler-Korrektur-Codes und Detektion von Restfehlern mittels des Fehler-Detektions-Codes, wobei ein Codewort-Paket, an dem ein Fehler detektiert wird, als verloren betrachtet und als Löschung markiert wird, und – zwecks Rückgewinnen der Nachricht erfolgendes Dekodieren der empfangenen Codewort-Pakete mittels einer konkatenierten Paritätsprüf-Matrix, die einen Informations-Teil und einen Paritätsprüf-Teil aufweist, und zwar sofern eine hinreichende Anzahl an Codewort-Paketen empfangen worden ist, dadurch gekennzeichnet, dass – das Kodieren der k Informationspakete mittels Maximum-Distance-Separable-(MDS-)Codes durchgeführt wird, die auf Vandermonde- oder Cauchy-Matrices basieren, welche mit nicht-binären oder binären Low-Density-Parity-Check-(LDPC-)Codes seriell konkateniert sind, was dazu führt, dass die konkatenierte Gesamt-Paritätsprüf-Matrix aufweist: (I) als ihren Informations-Teil (i) eine dichtbesetzte erste Teil-Matrix, welche die Paritätsprüf-Matrix ...Method for transmitting a message from a sender to a receiver via a communication medium by means of packet-level coding, comprising the following steps: at the sender side splitting the message to be transmitted into k information packets of L bits (input characters) Encoding the k information packets into n codeword packets of L bits (output characters), where n is greater than k and where m = n-k parity packets are generated, and - protecting the n codeword packets by errors Detection and correction codes, transmitting the n codeword packets and m parity packets over the communication medium from the sender to the receiver, and at the receiver side for each of the transmitted codeword packets, performing an error correction by means of the Error correction codes and detection of residual errors by means of the error detection code, wherein a codeword packet on which an error is detected, considered lost and as Lösc hung, and for the purpose of recovering the message, decoding the received codeword packets by means of a concatenated parity check matrix comprising an information part and a parity check part, if a sufficient number of codeword packets have been received, characterized in that - the coding of the k information packets is carried out by means of Maximum Distance Separable (MDS) codes based on Vandermonde or Cauchy matrices which are checked with non-binary or binary low-density parity checks. (LDPC) codes are serially concatenated, which results in the concatenated total parity check matrix having: (I) as its information part (i) a densely packed first sub-matrix which the parity check matrix ...

Description

Die vorliegende Erfindung betrifft ein Verfahren zum Übertragen einer Nachricht von einem Sender zu einem Empfänger über ein Kommunikationsmedium mittels Packet-Level-Kodierung, wie es grundsätzlich aus [3] bekannt ist.The present invention relates to a method for transmitting a message from a transmitter to a receiver via a communication medium by means of packet-level coding, as is basically known from [3].

Bei der Packet-Level-Kodierung handelt es sich um eine einfache und effiziente Technik zum Garantieren einer zuverlässigen Übertragung in einem Kommunikationssystem [1]. Der Hauptgedanke besteht darin, die zu sendende Information noch weiter zu schützen, indem Daten-Pakete auf höheren Schichten des Kommunikationsstapels kodiert werden. Das Szenario, mit dem sich diese Erfindung befasst, d. h. das Packet-Level-Kodieren mit seriell konkatenierten MDS-Codes (Vandermonde-/Cauchy-Matrix-basierte Codes) und LDPC-Codes, ist in 1 gezeigt. (Die Kodierung der Informationspakete mittels MDS-Codes mit seriell konkatenierten LDPC-Codes ist in [9] beschrieben.)Packet-level encoding is a simple and efficient technique for guaranteeing reliable transmission in a communication system [1]. The main idea is to further protect the information to be sent by encoding data packets on higher layers of the communication stack. The scenario to which this invention pertains, ie packet level encoding with serial concatenated MDS codes (Vandermonde / Cauchy matrix based codes) and LDPC codes, is disclosed in U.S.P. 1 shown. (The coding of the information packets by means of MDS codes with serially concatenated LDPC codes is described in [9].)

Zuerst wird die zu übertragende Nachricht, z. B. eine FILE, in k Info-Pakete von L Bits (Eingangs-Zeichen) unterteilt und in n Code-Zeichen kodiert, die Pakete von L Bits (Ausgangs-Zeichen) sind. Dann werden die n Ausgangs-Zeichen mittels des Packet-Level-Kodierers erzeugt.First, the message to be transmitted, z. A FILE, is divided into k info packets of L bits (input characters) and encoded into n code characters which are packets of L bits (output characters). Then, the n output characters are generated by the packet-level encoder.

Zweitens werden die n Ausgangs-Zeichen an der Physical Layer (innerhalb des PHY-Layer-Rahmens) durch Fehlerkorrekturcodes (z. B. Turbo, LDPC ...) und Fehlerdetektionscodes (z. B. zyklische Redundanz-Prüfungen (CRC)) geschützt, und sie werden gesendet. Drittens wird an jedem Paket an der Empfängerseite eine Physical-Layer-Fehlerkorrektur vorgenommen, und Restfehler werden mit Hilfe des Fehlerdetektionscodes erkannt. Falls Fehler detektiert werden, wird das Paket als verloren erachtet und als Löschung markiert. Somit betrachten die über der Physical Layer angeordneten Schichten das Kommunikationsmedium als einen Paketlöschkanal (PEC), an dem die Pakete entweder korrekt empfangen werden oder verlorengehen. Falls eine hinreichende Menge an Paketen empfangen worden ist, nimmt der Packet-Level-Dekodierer schließlich eine Rückgewinnung der Original-Nachricht vor.Second, the n output characters on the physical layer (within the PHY layer frame) are protected by error correction codes (eg, Turbo, LDPC ...) and error detection codes (eg, cyclic redundancy checks (CRC)) and they are sent. Third, a physical layer error correction is made on each packet at the receiver side, and residual errors are detected by means of the error detection code. If errors are detected, the packet is deemed lost and marked as deletion. Thus, the layers located above the physical layer regard the communication medium as a packet deletion channel (PEC) at which the packets are either correctly received or lost. Finally, if a sufficient amount of packets has been received, the packet level decoder will recover the original message.

Die Paritätsprüfmatrix H des konkatenierten Codes kann geschrieben werden als

Figure DE102013219863B4_0002
wobei
Figure DE102013219863B4_0003
die Paritätsprüfmatrix des MDS-Codes der Größe mMDS × nMDS ist,
Figure DE102013219863B4_0004
der Informationsteil der Paritätsprüfmatrix des LDPC-Codes der Größe mLDPC × kLDPC ist,
Figure DE102013219863B4_0005
der Paritätsteil der Paritätsprüfmatrix des LDPC-Codes der Größe mLDPC × mLDPC ist, und 0 die Null-Matrix der Größe mMDS × mLDPC ist.The parity check matrix H of the concatenated code can be written as
Figure DE102013219863B4_0002
in which
Figure DE102013219863B4_0003
the parity check matrix of the MDS code of size m MDS × n MDS is,
Figure DE102013219863B4_0004
the information part of the parity check matrix of the LDPC code of size m is LDPC × k LDPC ,
Figure DE102013219863B4_0005
the parity part of the parity check matrix of the LDPC code of size m is LDPC × m LDPC , and 0 is the zero matrix of size m MDS × m LDPC .

Das Dekodieren wird an dem PEC durch Lösen des linearen Gleichungssystems

Figure DE102013219863B4_0006
vorgenommen, wobei
Figure DE102013219863B4_0007
ein Vektor ist, der die gelöschten kodierten Symbole enthält, xk ein Vektor ist, der die korrekt empfangenen kodierten Symbole enthält,
Figure DE102013219863B4_0008
die Sub-Matrix ist, die aus den Spalten in der Paritätsprüfmatrix zusammengesetzt ist, welche den gelöschten Zeichen entsprechen, und Hk die Sub-Matrix ist, die aus den Spalten in der Paritätsprüfmatrix zusammengesetzt ist, welche den empfangenen Zeichen entsprechen.The decoding is done on the PEC by solving the linear equation system
Figure DE102013219863B4_0006
made, where
Figure DE102013219863B4_0007
is a vector containing the deleted coded symbols, x k is a vector containing the correctly received coded symbols,
Figure DE102013219863B4_0008
is the sub-matrix composed of the columns in the parity-check matrix corresponding to the deleted characters, and H k is the sub-matrix composed of the columns in the parity-check matrix corresponding to the received characters.

Zu beachten ist, dass die rechte Seite des Systems in (1) bekannt ist, und dass

Figure DE102013219863B4_0009
die dünnbesetzte Matrix ist, die das Gleichungssystem beschreibt, die gelöst werden sollen, um die Löschungen rückzugewinnen.Note that the right side of the system is known in (1), and that
Figure DE102013219863B4_0009
is the sparsely populated matrix that describes the equation system that should be solved to recover the deletions.

Das Dekodieren gemäß dem Stand der Technik besteht aus dem Lösen des Gleichungssystems in (1) mittels hybrider iterativer/Maximum-Likelihood-Techniken auf der Basis einer smarten Gauß'schen Elimination (GE), bei denen die dünnbesetzte Natur des System mit Vorteil genutzt wird; siehe z. B. [7], [8]. Diese Dekodiertechniken können auch zum Dekodieren nichtbinärer LDPC-Codes verwendet werden [2].The prior art decoding consists of solving the equation system in (1) by means of hybrid iterative / maximum likelihood techniques based on smart Gaussian elimination (GE), in which the sparse nature of the system is used to advantage ; see, for. For example, [7], [8]. These decoding techniques can also be used to decode non-binary LDPC codes [2].

Insbesondere ist die Komplexität smarter GE-Techniken hinsichtlich der Anzahl von Pivots p des Codes kubisch beschaffen, d. h. O(p3).In particular, the complexity of smart GE techniques is cubic with respect to the number of pivots p of the code, ie, O (p 3 ).

Hybrides iteratives/Maximum-Likelihood-Dekodieren auf der Basis smarter Gauß'scher Elimination (GE)Hybrid iterative / maximum likelihood decoding based on smart Gaussian elimination (GE)

Es soll ein kurzer Überblick über das hybride Dekodierverfahren gegeben werden. Ferner sollen Obergrenzen der Anzahl an dem Galois-Feld durchzuführender Operationen angegeben werden, welche von jedem Schritt des Verfahrens verlangt werden.A brief overview of the hybrid decoding method will be given. Furthermore, upper limits of the number of operations to be performed on the Galois field are required, which are required of each step of the method.

Die Komplexität des Dekodier-Algorithmus des Standes der Technik wird in Form der Anzahl der erforderlichen Feld-Operationen angegeben. Die Anzahl der Feld-Additionen wird als Na angegeben, und die Anzahl der Feld-Multiplikationen wird als Nm angegeben.The complexity of the prior art decoding algorithm is given in terms of the number of field operations required. The number of field additions is given as N a , and the number of field multiplications is given as N m .

Es werden angegeben: mit L (Bits) die Paket-Größe des Schemas, mit d (max) / v der maximale variable Knoten-Grad des Codes, mit d (max) / c der maximale Prüf-Knoten-Grad des Codes, mit eIT die Anzahl von Löschungen, die durch iteratives Dekodieren rückgewonnen werden, mit e' die Anzahl von Löschungen, die nach dem IT-Dekodieren verbleiben, und mit p die Anzahl von Pivots des Codes. Anzumerken ist, dass, falls Codes an einem Galois-Feld der Ordnung q erstellt werden, wobei q eine Potenz 2 ist, jede Paket-Größe von L Bits eine Anzahl von

Figure DE102013219863B4_0010
Feld-Elementen enthält.It specifies: with L (bits) the package size of the schema, with d (max) / v the maximum variable node degree of the code, with d (max) / c the maximum check node degree of the code, with e IT the number of erasures retrieved by iterative decoding, e 'the number of erasures remaining after IT decoding, and p the number of pivots of the code , It should be noted that if codes are created on a Galois field of order q, where q is a power of 2, each packet size of L bits is a number of bits
Figure DE102013219863B4_0010
Contains field elements.

Es werden die folgenden Vorgänge durchgeführt:The following operations are performed:

1. IT-Dekodier-Schritt1. IT decoding step

Gleichungen mit nur einer einzigen Unbekannten werden durch einen IT-Dekodierer gelöst.Equations with only a single unknown are solved by an IT decoder.

Obergrenzen für die Anzahl involvierter Operationen:

Figure DE102013219863B4_0011
Upper limits for the number of operations involved:
Figure DE102013219863B4_0011

2. Triangulations- and Pivoting-Schritt2. Triangulation and Pivoting Step

Falls der Iterativ-(IT-)Dekodierer versagt, wird die verbleibende Matrix

Figure DE102013219863B4_0012
in eine tiefere triangulare Form gebracht, indem nur Reihen und Spalten permutiert werden. Falls die Triangulation steckenbleibt, wird eine Pivoting-Strategie angewandt, was bedeutet, dass Spalten der nicht triangulierten Matrix ausgewählt und zur Seite der Matrix bewegt werden. Die kodierten Zeichen, die den bewegten Spalten entsprechen, werden als pivots bezeichnet. Innerhalb dieses Schritts sind keine Feld-Operationen involviert.If the iterative (IT) decoder fails, the remaining matrix becomes
Figure DE102013219863B4_0012
into a deeper triangular shape by permuting only rows and columns. If the triangulation gets stuck, a pivoting strategy is applied, which means that columns of the non-triangulated matrix are selected and added to the Side of the matrix to be moved. The coded characters corresponding to the moving columns are called pivots. Within this step, no field operations are involved.

3. Ausnullungs-Schritt3. Cancel step

Die Matrix unterhalb der Haupt-Diagonalen der unter-triangularen Matrix wird durch Reihen-Additionen in eine Null-Matrix transformiert. Obergrenzen für die Anzahl involvierter Operationen:

Figure DE102013219863B4_0013
The matrix below the main diagonal of the sub-triangular matrix is transformed by row additions into a zero matrix. Upper limits for the number of operations involved:
Figure DE102013219863B4_0013

4. Gauß'sche Elimination (GE)4. Gaussian elimination (GE)

Es wird eine Überschlags-GE angewandt, um das Größen-System (p + δ) × p zu lösen, das nur durch die Pivot-Variablen beschrieben wird. δ ist der Overhead des Systems.A rollover GE is applied to solve the size system (p + δ) × p, which is described only by the pivot variables. δ is the overhead of the system.

Diese involviert (for k = p):

Figure DE102013219863B4_0014
This involved (for k = p):
Figure DE102013219863B4_0014

5. IT-Dekodier-Schritt5. IT decoding step

Falls die GE erfolgreich war, ist ein IT-Dekodier-Schritt ausreichend, um die verbleibenden e'-p Unbekannten rückzugewinnen, die eine lineare Kombination der Pivots sind.If the GE was successful, an IT decode step is sufficient to recover the remaining e'-p unknowns, which are a linear combination of the pivots.

Obergrenzen für die Anzahl involvierter Operationen:

Figure DE102013219863B4_0015
Figure DE102013219863B4_0016
Upper limits for the number of operations involved:
Figure DE102013219863B4_0015
Figure DE102013219863B4_0016

Anzumerken ist, dass Reihen-Permutationen und Reihen-Additionen auch an dem bekannten Term des Systems vorgenommen werden, der durch die rechte Seite von (1) gegeben ist. Anzumerken ist ferner, dass die Matrix

Figure DE102013219863B4_0017
dünnbesetzt ist. Somit wird die Gesamt-Komplexität von Schritt 4 dominiert, wobei das von den Pivot-Variablen beschriebene lineare System aufgrund der Operationen von Schritt 3 dichtbesetzt ist. Insbesondere weist Schritt 4 die Komplexität O(p3) auf, wobei p die Anzahl der Pivots ist. In der Tat ist der Algorithmus effizient, solange die Anzahl der Pivots klein gehalten wird. Hochentwickelte Pivoting-Strategien sind in [7] untersucht worden.It should be noted that row permutations and series additions are also made on the known term of the system given by the right-hand side of (1). It should also be noted that the matrix
Figure DE102013219863B4_0017
is sparse. Thus, the overall complexity of step 4 is dominated, with the linear system described by the pivot variables being densely populated due to the operations of step 3. In particular, step 4 has the complexity O (p 3 ), where p is the number of pivots. In fact, the algorithm is efficient as long as the number of pivots is kept small. Sophisticated pivoting strategies have been studied in [7].

Die Dekodier-Komplexität ist hinsichtlich der Anzahl von Pivots kubisch beschaffen, und die Anzahl von Pivots steigt bei konkatenierten Codes an.The decoding complexity is cubic with respect to the number of pivots, and the number of pivots increases with concatenated codes.

Die mittlere Anzahl von Pivots für konkatenierte Codes ist im Zusammenhang mit dem alleinstehenden LDPC-Code höher (siehe 4 und 5). Mit θ + p sei die Anzahl von Pivots für den konkatenierten Code bezeichnet, wobei θmax < θ(Δ) ≤ 0 und θmax = θ(Δ = 0); dabei ist Δ der Overhead der RX-Seite, d. h. die Anzahl empfangener kodierter Zeichen zusätzlich zu k. Die asymptotische Komplexität des Dekodierens gemäß dem Stand der Technik ist somit O((θ + p)3).The median number of concatenated code pivots is higher in the context of the standalone LDPC code (see 4 and 5 ). Let θ + p be the number of concatenated code pivots referred to, wherein θ max <θ (Δ) ≤ 0 and θ = θ max (Δ = 0); where Δ is the overhead of the RX page, ie the number of received coded characters in addition to k. The asymptotic complexity of the prior art decoding is thus O ((θ + p) 3 ).

Bei der Aufgabenstellung, mit der sich diese Erfindung befasst, handelt es sich um das Reduzieren der Komplexität des Dekodierens seriell konkatenierter MDS-Codes (basierend auf Vandermonde- oder Cauchy-Matrices) und LDPC-Codes bei Anwendung auf der Paket-Ebene.The task addressed by this invention is to reduce the complexity of decoding serial concatenated MDS codes (based on Vandermonde or Cauchy matrices) and LDPC codes when applied at the packet level.

Somit wird mit der Erfindung ein Verfahren bereitgestellt, das zum Übertragen einer Nachricht von einem Sender zu einem Empfänger über ein Kommunikationsmedium mittels Packet-Level-Coding dient und die folgenden Schritte aufweist:

  • – an der Sender-Seite
  • – Aufteilen der zu übertragenden Nachricht in k Informationspakete von jeweils L Bits (Eingabe-Zeichen),
  • – Kodieren der k Informationspakete zu n Codewort-Paketen von jeweils L Bits (Ausgabe-Zeichen), wobei n größer als k ist und wobei m = n – k Paritäts-Pakete erzeugt werden, und
  • – Schützen der n Codewort-Pakete durch Fehler-Detektions- und -Korrektur-Codes,
  • – Übertragen der n Codewort-Pakete und m Paritäts-Pakete über das Kommunikationsmedium vom Sender zum Empfänger, und
  • – an der Empfänger-Seite
  • – für jedes der gesendeten Codewort-Pakete, Durchführen einer Fehlerkorrektur mittels des Fehler-Korrektur-Codes und Detektion von Restfehlern mittels des Fehler-Detektions-Codes, wobei ein Codewort-Paket, an dem ein Fehler detektiert wird, als verloren betrachtet und als Löschung markiert wird, und
  • – zwecks Rückgewinnen der Nachricht erfolgendes Dekodieren der empfangenen Codewort-Pakete mittels einer konkatenierten Paritätsprüf-Matrix, die einen Informations-Teil und einen Paritätsprüf-Teil aufweist, und zwar sofern eine hinreichende Anzahl an Codewort-Paketen empfangen worden ist,
  • – wobei das Kodieren der k Informationspakete mittels MDS-Codes durchgeführt wird, die auf Vandermonde- oder Cauchy-Matrices basieren, welche mit nicht-binären oder binären LDPC-Codes seriell konkateniert sind, was dazu führt, dass die konkatenierte Gesamt-Paritätsprüf-Matrix aufweist: (I) als ihren Informations-Teil (i) eine dichtbesetzte erste Teil-Matrix, welche die Paritätsprüf-Matrix des MDS-Codes ist und dementsprechend vom Vandermonde- oder Cauchy-Matrix-Typ ist, und (ii) eine dünnbesetzte zweite Teil-Matrix, die aus dem Informations-Teil der Paritätsprüf-Matrix des LDPC-Codes besteht, und (II) als ihren Paritätsprüf-Teil (i) eine dritte Teil-Matrix, die eine Null-Matrix ist, und (ii) eine dünnbesetzte vierte Teil-Matrix, die aus dem Paritätsprüf-Teil der Paritätsprüf-Matrix des LDPC-Codes besteht,
  • – wobei das Dekodieren der empfangenen Codewort-Pakete unter Berücksichtigung derjenigen Spalten der konkatenierten Gesamt-Paritätsprüf-Matrix durchgeführt wird, die den gelöschten Codewort-Paketen zugeordnet sind und die folgende Gleichung lösen:
    Figure DE102013219863B4_0018
    wobei
    Figure DE102013219863B4_0019
    einen Vektor bezeichnet, der die gelöschten kodierten Codewort-Pakete (Ausgabe-Zeichen) enthält, xk einen Vektor bezeichnet, der die korrekt empfangenen kodierten Codewort-Pakete enthält,
    Figure DE102013219863B4_0020
    die Sub-Matrix ist, die aus den Spalten in der Gesamt-Paritätsprüf-Matrix besteht, welche den gelöschten Codewort-Paketen (Ausgabe-Zeichen) entsprechen, Hk die Sub-Matrix der Gesamt-Paritätsprüf-Matrix bezeichnet, die aus den Spalten in der Gesamt-Paritätsprüf-Matrix besteht, welche den korrekt empfangenen Codewort-Paketen (Ausgabe-Zeichen) entsprechen, und das hochgestellte T die Transponierte der betreffenden Matrix bezeichnet, und
  • – wobei
    Figure DE102013219863B4_0021
    eine dünnbesetzte Matrix ist, die das Gleichungssystem beschreibt, welche zum Rückgewinnen der gelöschten Codewort-Pakete (Ausgabe-Zeichen) zu lösen sind.
Thus, the invention provides a method for transmitting a message from a sender to a receiver via a communication medium using packet-level coding, comprising the steps of:
  • - at the transmitter side
  • Splitting the message to be transmitted into k information packets of L bits (input characters),
  • Encoding the k information packets into n codeword packets of L bits (output characters), where n is greater than k and where m = n-k parity packets are generated, and
  • Protect the n codeword packets by error detection and correction codes,
  • Transmitting the n codeword packets and m parity packets over the communication medium from the sender to the receiver, and
  • - at the receiver side
  • For each of the transmitted codeword packets, performing error correction by means of the error correction code and detection of residual errors by means of the error detection code, wherein a codeword packet on which an error is detected is considered lost and as deletion is marked, and
  • Decoding the received codeword packets by means of a concatenated parity check matrix comprising an information part and a parity check part, provided that a sufficient number of codeword packets have been received, for the purpose of recovering the message;
  • Wherein the coding of the k information packets is performed by means of MDS codes based on Vandermonde or Cauchy matrices serially concatenated with non-binary or binary LDPC codes, resulting in the concatenated total parity check matrix comprising: (I) as its information part (i), a sparse first sub-matrix which is the parity-check matrix of the MDS code and is accordingly of the Vandermonde or Cauchy matrix type, and (ii) a sparse second one Sub-matrix consisting of the information part of the parity check matrix of the LDPC code, and (II) as its parity check part (i) a third sub-matrix which is a null matrix, and (ii) a sparse fourth sub-matrix consisting of the parity check part of the parity check matrix of the LDPC code,
  • Wherein the decoding of the received codeword packets is performed taking into account those columns of the concatenated total parity check matrix associated with the deleted codeword packets and solving the following equation:
    Figure DE102013219863B4_0018
    in which
    Figure DE102013219863B4_0019
    denotes a vector containing the deleted coded codeword packets (output characters), x k denotes a vector containing the correctly received coded codeword packets,
    Figure DE102013219863B4_0020
    is the sub-matrix consisting of the columns in the total parity check matrix corresponding to the deleted codeword packets (output characters), H k denotes the sub-matrix of the total parity check matrix consisting of the columns in the total parity check matrix, which correspond to the correctly received codeword packets (output character), and the superscript T denotes the transpose of the respective matrix, and
  • - in which
    Figure DE102013219863B4_0021
    is a sparse matrix describing the system of equations to be solved for recovering the deleted codeword packets (output characters).

Gemäß der Erfindung wird eine serielle Konkatenation von MDS-Codes mit LDPC-Codes (das Kodieren ist in 2 gezeigt) berücksichtigt, d. h.:

  • – die k Eingangs-Zeichen werden zuerst mittels eines (nMDS, k)-MDS-Codes (basierend auf einer Vandermonde- oder Cauchy-Matrix) zu einer Anzahl nMDS von Zeichen kodiert,
  • – die nMDS MDS-kodierten Zeichen werden dann mittels eines (n, kLDPC = nMDS) LDPC-Codes zu n Ausgangs-Zeichen kodiert.
According to the invention, a serial concatenation of MDS codes with LDPC codes (the coding is in 2 shown), ie:
  • The k input characters are first encoded into a number n MDS of characters by means of an (n MDS , k) MDS code (based on a Vandermonde or Cauchy matrix),
  • - The n MDS MDS coded characters are then coded by a (n, k LDPC = n MDS ) LDPC code to n output characters.

Durch diese Konkatenation, wie sie sie mit der Erfindung vorgeschlagen wird, wird die Leistung des LDPC-Codes unter gemeinsamer ML-Dekodierung verbessert, insbesondere im Fehler-Boden-Bereich (siehe 3). Insbesondere werden Konkatenierungen mit nichtbinären LDPC-Codes berücksichtigt, da sich erwiesen hat, dass diese die Leistungen ihrer binären Gegenstücke verbessern [2][3].This concatenation, as proposed by the invention, improves the performance of the LDPC code under shared ML decoding, in particular in the error ground area (see 3 ). In particular, concatenations with nonbinary LDPC codes are taken into account, as it has been proven that these improve the performance of their binary counterparts [2], [3].

Software-Implementierungen von Packet-Level-Kodierern und -Dekodierern sind besonders attraktiv, da sie keinen hohen Design-/Implementierungs-Aufwand erfordern und höhere Flexibilität hinsichtlich Hardware-Implementierungen bieten. Software-Module können leicht in eine Hardware-Architektur integriert werden, die nicht speziell für das Stützen eines Packet-Level-Kodierens ausgelegt ist.Software implementations of packet-level encoders and decoders are particularly attractive because they do not require high design / implementation effort and offer greater flexibility in hardware implementations. Software modules can be easily integrated into a hardware architecture that is not specifically designed to support packet-level coding.

Da Software-Packet-Level-Kodierer und -Dekodierer auch für den Betrieb auf Plattformen mit eingeschränkter Energie vorgesehen sind (z. B. als On-board-Einheiten von Raumschiffen, Landegeräten, Rovern, Orbitern bei erdnahen oder Weltraum-Missionen, Satelliten), sind effiziente Schemata erforderlich.Because software packet-level encoders and decoders are also designed to operate on energy-constrained platforms (such as on-board units of spaceships, landing gear, rovers, orbiting near-Earth or space missions, satellites). , efficient schemes are required.

Insbesondere wird mit dieser Erfindung ein effizientes Packet-Level-Kodiererverfahren für seriell konkatenierte MDS-Codes (basierend auf Vandermonde- oder Cauchy-Matrices) oder nichtbinäre oder binäre LDPC-Codes vorgeschlagen.In particular, this invention proposes an efficient packet-level coder method for serial concatenated MDS codes (based on Vandermonde or Cauchy matrices) or non-binary or binary LDPC codes.

Die Erfindung macht es möglich, die Komplexität des Dekodierens gemäß dem Stand der Technik zu reduzieren.The invention makes it possible to reduce the complexity of decoding according to the prior art.

Vorgeschlagenes Dekodier-SchemaProposed decoding scheme

Bei dem gemäß der Erfindung vorgeschlagenen Dekodier-Schritt werden die Dünnbesetztheit der Dekodier-Matrix des Systems in (1) und die Struktur einer Vandermonde- oder Cauchy-Matrix genutzt.The decoding step proposed according to the invention utilizes the sparse nature of the system's decoding matrix in (1) and the structure of a vandermonde or Cauchy matrix.

Um die Erfindung präsentieren zu können, ist es zunächst erforderlich, einen Überblick über MDS-Matrices und über Vandermonde-Matrices und deren Inverse zu geben. Es soll hier kein Überblick über Cauchy-Matrices gegeben werden, wobei jedoch darauf hingewiesen wird, dass es auch möglich ist, eine Cauchy-Matrix in quadratischer Komplexität zu invertieren [6].To present the invention, it is first necessary to review MDS matrices and Vandermonde matrices and their inverse. It is not intended to give an overview of Cauchy matrices, but it should be noted that it is also possible to invert a Cauchy matrix in quadratic complexity [6].

Überblick über die MDS-Paritätsprüf-Matrix und die Vandermonde-MatrizenOverview of the MDS Parity Check Matrix and the Vandermonde Matrices

Die Paritätsprüf-Matrix eines auf einem Galois-Feld der Ordnung q aufgebauten MDS-Codes mit der Informations-Größe k und der Block-Länge nMDS ist wie folgt beschaffen:

Figure DE102013219863B4_0022
wobei βi worin i = 1, ..., nMDS die nMDS Nicht-Null-Elemente des Galois-Felds der Ordnung q sind, auf dem der Code aufgebaut ist.The parity check matrix of an MDS code constructed on a Galois field of order q with the information size k and the block length n MDS is as follows:
Figure DE102013219863B4_0022
where β i, where i = 1, ..., n MDS are the n MDS non-zero elements of the order q Galois field on which the code is constructed.

Anzumerken ist, dass mMDS = nMDS – k.It should be noted that m MDS = n MDS - k.

Eine quadratische Vandermonde-Matrix der Ordnung γ ist als V(γ) bezeichnet und ist wie folgt definiert:

Figure DE102013219863B4_0023
wobei xi, worin i = 1, ..., γ für γ distinkte Elemente stehen. Anzumerken ist, dass das j-te Element in der i-ten Reihe von V(γ) geschrieben werden kann als (xi)j–1, mit j = 1, ..., γ. Eine wichtige Eigenschaft einer Vandermonde-Matrix der Ordnung γ besteht darin, dass sie eine vollrangige Matrix ist, d. h. mit einem Rang (V(γ)) = γ.A quadratic Vandermonde matrix of order γ is designated V (γ) and is defined as follows:
Figure DE102013219863B4_0023
where x i , where i = 1,..., γ stand for γ-distinct elements. It should be noted that the j-th element in the i-th row of V (γ) can be written as (x i) j-1, j = 1, ..., γ. An important property of a Vandermonde matrix of order γ is that it is a full-ranked matrix, ie with a rank (V (γ) ) = γ.

Mit J = {j1, j2, ..., jm'} sei ein beliebiges Set von m' <= mMDS Indices von Spalten von

Figure DE102013219863B4_0024
bezeichnet. Jede der
Figure DE102013219863B4_0025
Matrices, die aus den m' Spalten (abgekürzt auf ihre m' Elemente) of
Figure DE102013219863B4_0026
bestehen, deren Indices in J definiert sind, ist die Transponierte einer Vandermonde-Matrix der Ordnung m' für jedes m' <= mMDS. With J = {j 1 , j 2 , ..., j m ' } let any set of m'<= m MDS be indices of columns of
Figure DE102013219863B4_0024
designated. Each of the
Figure DE102013219863B4_0025
Matrices coming from the m 'columns (abbreviated to their m' elements) of
Figure DE102013219863B4_0026
whose indices are defined in J, is the transpose of a vandermonde matrix of order m 'for each m'<= m MDS .

Als Beispiel sei angenommen, dass

Figure DE102013219863B4_0027
d. h. m' = mMDS, und der Fokus soll auf die Matrix gerichtet werden, die aus den ersten mMDS Spalten von
Figure DE102013219863B4_0028
besteht. Es liegt die Transponierte einer Vandermonde-Matrix des Rangs mMDS vor, wobei es sich bei den mMDS distinkten Elementen um xi = βi handelt, mit i = 1, ..., mMDS.As an example, suppose that
Figure DE102013219863B4_0027
ie m '= m MDS , and the focus should be directed to the matrix consisting of the first m MDS columns of
Figure DE102013219863B4_0028
consists. The transpose of a vandermonde matrix of the rank m MDS is present, where the m MDS- distinct elements are x i = β i , where i = 1, ..., m MDS .

Die Inverse einer Vandermonde-MatrixThe inverse of a vandermonde matrix

Die spezielle Struktur einer Vandermonde-Matrix der Ordnung γ kann genutzt werden, um ihre Inverse (V(γ))–1 in einer quadratischen Komplexität in γ [4], d. h. ~ O(γ2), statt in einer kubischen Komplexität in γ ~ O(γ3) zu berechnen, z. B. mit einem GE-Algorithmus.The special structure of a Vandermonde matrix of order γ can be used to calculate its inverse (V (γ) ) -1 in a quadratic complexity in γ [4], ie ~ O (γ 2 ), rather than in a cubic complexity in γ ~ O (γ 3 ) to calculate, z. With a GE algorithm.

Die inverse Matrix einer Vandermonde-Matrix kann als das Produkt zweier Matrices erhalten werden, die als V–1 = U–1L–1 bezeichnet werden, d. h. V–1 = U–1L–1, wobei U eine obere triangulare Matrix ist, L eine untere triangulare Matrix ist und die Hochstellung von V zwecks besserer Übersichtlichkeit der Schreibung wegelassen ist.The inverse matrix of a Vandermonde matrix can be obtained as the product of two matrices called V -1 = U -1 L -1 , ie V -1 = U -1 L -1 , where U is an upper triangular matrix, L is a lower triangular matrix, and the superscript of V is omitted for better clarity of writing.

Der Algorithmus zum Berechnen der Inversen von V(γ) durchläuft die folgenden zwei Schritte:

  • 1. Berechnen von L–1
  • 2. Berechnen von U–1
The algorithm for calculating the inverse of V (γ) goes through the following two steps:
  • 1. Calculate L -1
  • 2. Calculate U -1

Schritt 1 – Berechnen von L–1 Step 1 - Calculate L -1

Die Koeffizienten der Matrix L–1, d. h. li,j wobei i = 1, ..., γ und j = 1, ..., γ, sind durch die folgenden Gleichungen gegeben:

  • a) li,i = 1
  • b) li,j = 0 für j > i , d. h. eine untere triangulare Matrix
Figure DE102013219863B4_0029
The coefficients of the matrix L -1 , ie l i, j where i = 1, ..., γ and j = 1, ..., γ, are given by the following equations:
  • a) l i, i = 1
  • b) l i, j = 0 for j> i, ie a lower triangular matrix
Figure DE102013219863B4_0029

Es soll j festgelegt werden, wobei der Fokus auf die Koeffizienten der j-ten Spalte von L–1 gerichtet wird. Let j be set, focusing on the coefficients of the jth column of L -1 .

Anzumerken ist, dass für i = j + 1, ..., γ die folgende rekursive Gleichung geschrieben werden kann:

Figure DE102013219863B4_0030
und zwar ausgehend von dem Element li=j,j auf der Diagonalen gemäß obiger Definition c (unter Ausschluss von li,i) als
Figure DE102013219863B4_0031
It should be noted that for i = j + 1, ..., γ the following recursive equation can be written:
Figure DE102013219863B4_0030
starting from the element l i = j, j on the diagonal according to the above definition c (excluding l i, i ) as
Figure DE102013219863B4_0031

Somit kann man rekursive Gleichungen verwenden, um die Elemente von L–1 zu berechnen: für jede Spalte j, j = 1, ..., γ beginnt man mit dem Berechnen des Elements auf der Diagonalen, d. h. i = j, und dann berechnet man die anderen Elemente für jede Reihe i, wobei i = j + 1, ..., γ.Thus one can use recursive equations to compute the elements of L -1 : for each column j, j = 1, ..., γ, one begins by calculating the element on the diagonal, ie i = j, and then computes the other elements for each row i, where i = j + 1, ..., γ.

Schritt 2 – Berechnung von U–1 Step 2 - Calculation of U -1

Die Koeffizienten der Matrix U–1, d. h. ui,j wobei i = 1, ..., γ und j = 1, ..., γ, sind durch die folgenden Gleichungen gegeben:

  • a) ui,i = 1, wobei die Haupt-Diagonale nur Elemente hat, die gleich 1 sind
  • b) ui,j = 0 für j < i , d. h. die obere triangulare Matrix
  • c) ui,j = ui-1,j-1 – ui,j-1xj-1 wobei u0,j = 0, für j > i
The coefficients of the matrix U -1 , ie u i, j where i = 1, ..., γ and j = 1, ..., γ, are given by the following equations:
  • a) u i, i = 1, where the main diagonal has only elements equal to 1
  • b) u i, j = 0 for j <i, ie the upper triangular matrix
  • c) u i, j = u i-1, j-1 -u i, j-1 x j-1 where u 0, j = 0, for j> i

Somit kann man die rekursive Gleichung in der Gleichung c) verwenden, um die Elemente von U–1 zu berechnen: zuerst wird die Reihe i für jedes i = 1, ..., γ festgelegt, und dann werden die Elemente von U–1 für jede Spalte j berechnet, wobei j = i + 1, ..., γ.Thus, one can use the recursive equation in equation c) to compute the elements of U -1 : first, the series i is set for each i = 1, ..., γ, and then the elements of U -1 is calculated for each column j, where j = i + 1, ..., γ.

Es soll nun die Anzahl von Operationen berechnet werden, die für das Invertieren von V(γ) gemäß den angeführten rekursiven Formeln erforderlich sind. Insbesondere sollen Vandermonde-Matrices mit Elementen in einem Galois-Feld der Ordnung q berücksichtigt werden.Now, let us calculate the number of operations required for inverting V (γ) according to the recursive formulas cited. In particular, Vandermonde matrices should be considered with elements in a Galois field of order q.

Somit sind die elementaren Operationen Additionen und Multiplikationen, die an GF(q) vorgenommen werden.Thus, the elementary operations are additions and multiplications made to GF (q).

Die Komplexität von Schritt 1 wird als

Figure DE102013219863B4_0032
für die Additionen und als
Figure DE102013219863B4_0033
für die Multiplikationen aufgeführt, was geschrieben werden kann als
Figure DE102013219863B4_0034
wobei die erste Gleichung die Operationen zum Berechnen der Elemente auf der Hauptdiagonalen von L–1 betrifft und die zweite Gleichung die Operationen zum Berechnen der anderen Terme betrifft. Somit ist die asymptotische Komplexität von Schritt 1 hinsichtlich γ quadratisch, d. h. ~ O(γ2).The complexity of step 1 is called
Figure DE102013219863B4_0032
for the additions and as
Figure DE102013219863B4_0033
listed for multiplications, which can be written as
Figure DE102013219863B4_0034
wherein the first equation relates to the operations for computing the elements on the main diagonal of L -1 and the second equation concerns the operations for computing the other terms. Thus, the asymptotic complexity of step 1 with respect to γ is quadratic, ie ~ O (γ 2 ).

Die Komplexität von Schritt 2 wird als

Figure DE102013219863B4_0035
für die Additionen und als
Figure DE102013219863B4_0036
für die Multiplikationen aufgeführt, was geschrieben werden kann als
Figure DE102013219863B4_0037
und sie basieren auf dem rekursiven Term.The complexity of step 2 is called
Figure DE102013219863B4_0035
for the additions and as
Figure DE102013219863B4_0036
listed for multiplications, which can be written as
Figure DE102013219863B4_0037
and they are based on the recursive term.

Somit ist auch die asymptotische Komplexität von Schritt 2 in γ quadratisch, i. e. ~ O(γ2).Thus, the asymptotic complexity of step 2 in γ is also quadratic, ie ~ O (γ 2 ).

Beispiel. Es soll die folgende Vandermonde-Matrix V(3) an GF(4) betrachtet werden, die mit primitiven Polynomen p(x) = x2 + x + 1 generiert wird. a ist das primitive Element des Felds. Zu ermitteln ist die Inverse von V(3), V–1 = U–1L–1.

Figure DE102013219863B4_0038
Example. Consider the following Vandermonde matrix V (3) at GF (4), which is generated with primitive polynomials p (x) = x 2 + x + 1. a is the primitive element of the field. The inverse of V (3) , V -1 = U -1 L -1 is to be determined .
Figure DE102013219863B4_0038

Somit ist x1 = α0 = 1, x2 = α1 = α, x3 = α2.Thus, x 1 = α 0 = 1, x 2 = α 1 = α, x 3 = α 2 .

Zuerst soll L–1 gefunden werden. Gemäß dem hier vorgelegten Verfahren ergibt sich:

Figure DE102013219863B4_0039
First, L -1 should be found. According to the method presented here:
Figure DE102013219863B4_0039

Nun soll U–1 berechnet werden. Gemäß dem hier vorgelegten Verfahren ergibt sich:

Figure DE102013219863B4_0040
Now let U -1 be calculated. According to the method presented here:
Figure DE102013219863B4_0040

Somit erhält man:

Figure DE102013219863B4_0041
Thus one obtains:
Figure DE102013219863B4_0041

Es lässt sich nun leicht feststellen, dass V–1·V = I, wobei I eine 3 × 3-Identitätsmatrix ist. Somit ist die Inverse von V ermittelt worden.It is easy to find that V -1 · V = I, where I is a 3 × 3 identity matrix. Thus, the inverse of V has been determined.

Anzumerken ist, dass für eine allgemeine vollrangige Matrix M die folgende Eigenschaft gilt: (MT)–1 =(M1)T It should be noted that for a general full matrix M, the following property applies: (M T ) -1 = (M 1 ) T

Somit besteht, wenn die Inverse der Transponierten einer Matrix M berechnet werden soll, die Möglichkeit, die Inverse von M zu berechnen und dann ihre Transverse zu erfassen.Thus, if the inverse of the transpose of a matrix M is to be computed, then it is possible to compute the inverse of M and then capture its transversal.

Beschreibung der ErfindungDescription of the invention

Die Erfindung zielt darauf ab, das Gleichungssystem in (1) zu lösen, indem die Struktur der System-Matrix und die Eigenschaften einer Vandermonde-(oder Cauchy-)Matrix genutzt werden.The invention aims to solve the equation system in (1) by taking advantage of the structure of the system matrix and the properties of a vandermonde (or Cauchy) matrix.

Es sei mit ei die Anzahl der Löschungen bezeichnet, die den Informationsteil der Paritätsprüfmatrix des konkatenierten Codes betreffen, und mit ep die Anzahl von Löschungen, die den Paritätsteil der Paritätsprüfmatrix betreffen. Somit beträgt die Gesamt-Anzahl von Löschungen e = ei + ep.Let e i be the number of deletes concerning the information part of the concatenated code parity check matrix, and e p the number of deletes concerning the parity part of the parity check matrix. Thus, the total number of deletions is e = e i + e p .

Anzumerken ist, dass die maximale Anzahl von Löschungen, die rückgewonnen werden können, emax = mMDS + mLDPC beträgt.It should be noted that the maximum number of deletions that can be recovered is e max = m MDS + m LDPC .

Mit der Erfindung wird ein verbessertes Gemeinsam-Dekodierungs-Verfahren erstellt, das aus 4 Dekodier-Algorithmen besteht, und zwar jeweils einem für jeden Typ von Lösch-Muster, wie in Tabelle I angegeben.The invention provides an improved shared decoding method consisting of 4 decoding algorithms, one for each type of erase pattern, as indicated in Table I.

Figure DE102013219863B4_0042
Tabelle I. Löschmuster-Typen und zugeordnete Algorithmen.
Figure DE102013219863B4_0042
Table I. Deletion pattern types and associated algorithms.

Wie bereits erläutert wurde, kann die Paritätsprüfmatrix des konkatenierten Codes geschrieben werden als

Figure DE102013219863B4_0043
As already explained, the parity check matrix of the concatenated code can be written as
Figure DE102013219863B4_0043

Es sei mit H (zuvor durch

Figure DE102013219863B4_0044
bezeichnet) die Matrix bezeichnet, die aus den Spalten von H zusammengesetzt ist, welche den e gelöschten Positionen des empfangenen Codeworts entsprechen.It was with H (previously through
Figure DE102013219863B4_0044
denotes) the matrix composed of the columns of H corresponding to the e-deleted positions of the received codeword.

Die Komplexität der vorgeschlagenen Algorithmen ist in Form der Anzahl erforderlicher Feld-Operationen gegeben. Die Anzahl der Feld-Additionen ist als Na angegeben, und die Anzahl von Feld-Multiplikationen ist mit als Nm angegeben.The complexity of the proposed algorithms is given in terms of the number of required field operations. The number of field additions is indicated as N a , and the number of field multiplications is indicated as N m .

Mit L (Bits) ist die Paket-Größe des Schemas angegeben, mit d (max-LDPC) / v der maximale variable Knoten-Grad des LDPC-Codes, und mit d (max-LDPC) / c der maximale Prüf-Knoten-Grad des LDPC-Codes. Anzumerken ist, dass beim Erstellen von Knoten auf einem Galois-Feld der Ordnung q, wobei q eine Potenz von 2 ist, jede Paket-Größe von L Bits

Figure DE102013219863B4_0045
Feld-Elemente enthält.L (bits) specifies the package size of the schema, with d (max-LDPC) / v the maximum variable node degree of the LDPC code, and with d (max-LDPC) / c the maximum check node degree of the LDPC code. It should be noted that when creating nodes on a Galois field of order q, where q is a power of 2, each packet size is L bits
Figure DE102013219863B4_0045
Contains field elements.

Löschmuster vom Typ 1 – Algorithmus 1 Deletion pattern of type 1 - Algorithm 1

Es können mehrere Algorithmen für das Dekodieren von MDS-Codes mit quadratischer Komplexität verwendet werden.Several algorithms can be used to decode quadratic complexity MDS codes.

Ein möglicher Dekodier-Algorithmus durchläuft die folgenden Schritte:A possible decoding algorithm goes through the following steps:

Schritt 1 – Berechnen der Inversen der Vandermonde-Matrix des Grads ei Step 1 - Calculate the inverse of the vandermonde matrix of degree e i

Dieser Schritt involviert die folgende Anzahl von Operationen:

Figure DE102013219863B4_0046
This step involves the following number of operations:
Figure DE102013219863B4_0046

Schritt 2 – Multiplikation mit der Inversen von VStep 2 - Multiplication with the inverse of V

Der bekannte Term des Systems wird mit der berechneten Inversen von V multipliziert.The known term of the system is multiplied by the calculated inverse of V.

Dieser Schritt involviert die folgende Anzahl von Operationen:

Figure DE102013219863B4_0047
This step involves the following number of operations:
Figure DE102013219863B4_0047

Die Gesamt-Anzahl von Operationen für den Algorithmus 1 ist somit:

Figure DE102013219863B4_0048
The total number of operations for Algorithm 1 is thus:
Figure DE102013219863B4_0048

Löschmuster vom Typ 2 – Algorithmus 2Type 2 deletion pattern - Algorithm 2

Für dieses Löschmuster kann die Matrix des Gleichungs-Systems Hals eine Konkatenation von 3 Matrizen geschrieben werden. Anzumerken ist, das V die Transponierte einer Vandermonde-Matrix der Größe mMDS × mMDS ist, die mit quadratischer Komplexität invertiert werden kann.

Figure DE102013219863B4_0049
For this deletion pattern, the matrix of the equations system Hals can be written a concatenation of 3 matrices. It should be noted that V is the transpose of a vertex probe matrix of size m MDS × m MDS that can be inverted with quadratic complexity.
Figure DE102013219863B4_0049

Der vorgeschlagene Dekodier-Algorithmus durchläuft die folgenden Schritte:The proposed decoding algorithm goes through the following steps:

Schritt 1. Berechnung der Inversen der Vandermonde-Matrix V des Grads mMDS.Step 1. Calculation of the inverse of the Vandermonde matrix V of degree m MDS .

Dieser Schritt involviert die folgende Anzahl von Operationen:

Figure DE102013219863B4_0050
This step involves the following number of operations:
Figure DE102013219863B4_0050

Schritt 2. Multiplikation mit der Inversen von V. Step 2. Multiplication by the inverse of V.

Der bekannte Term des Systems und die Matrix A müssen mit der berechneten Inversen von V multipliziert werden.The known term of the system and the matrix A must be multiplied by the calculated inverse of V.

Dieser Schritt involviert die folgende Anzahl von Operationen an der Matrix A:

Figure DE102013219863B4_0051
This step involves the following number of operations on the matrix A:
Figure DE102013219863B4_0051

Dieser Schritt involviert die folgende Anzahl von Operationen an dem bekannten Term des Systems:

Figure DE102013219863B4_0052
This step involves the following number of operations on the known term of the system:
Figure DE102013219863B4_0052

Die Komplexität dieses Schritts ist somit:

Figure DE102013219863B4_0053
The complexity of this step is thus:
Figure DE102013219863B4_0053

Die Matrix des Gleichungssystems nach diesem Schritt wird

Figure DE102013219863B4_0054
The matrix of the equation system after this step becomes
Figure DE102013219863B4_0054

Schritt 3 - Ausnullen des Teils der Matrix unter der diagonalen Matrix I.Step 3 - Degrade the part of the matrix under the diagonal matrix I.

Die Komplexität dieses Schritts, der an der Matrix H des Systems vorgenommen wird, kann nach oben hin begrenzt werden durch

Figure DE102013219863B4_0055
The complexity of this step, that of the matrix H of the system can be limited to the top by
Figure DE102013219863B4_0055

Die Komplexität dieses Schritts, der an dem bekannten Term des Systems vorgenommen wird, kann nach oben hin begrenzt werden durch

Figure DE102013219863B4_0056
The complexity of this step, which is done on the known term of the system, can be limited upwards by
Figure DE102013219863B4_0056

Eine obere Grenze für die Gesamt-Komplexität dieses Schritts lautet

Figure DE102013219863B4_0057
An upper limit to the overall complexity of this step is
Figure DE102013219863B4_0057

Die Matrix des Systems nach Schritt 3 wird

Figure DE102013219863B4_0058
The matrix of the system after step 3 becomes
Figure DE102013219863B4_0058

Anzumerken ist, dass die Matrix B nach Schritt 3 dichtbesetzt ist.It should be noted that the matrix B is densely populated after step 3.

Schritt 4 – Gauß'sche Elimination an B.Step 4 - Gaussian elimination on B.

ei – mMDS Löschungen werden mit einem GE-Schritt rückgewonnen. Der Overhead des Gleichungssystems, die in diesem Schritt gelöst werden sollen, beträgt δ = mLDPC –(ei – mMDS).e i - m MDS deletions are recovered with a GE step. The overhead of the equation system to be solved in this step is δ = m LDPC - (e i -m MDS ).

Somit gilt für die Anzahl der Operationen, die sowohl an der Matrix des Systems als auch an dem bekannten Term vorgenommen werden sollen:

Figure DE102013219863B4_0059
Thus, for the number of operations to be performed both on the matrix of the system and on the known term:
Figure DE102013219863B4_0059

Schritt 5 – Rück-SubstitutionStep 5 - Back Substitution

Die verbleibenden mMDS gelöschten Zeichen werden in einem Rück-Substitutions-Schritt rückgewonnen.The remaining m MDS deleted characters are recovered in a back-substitution step.

Dieser involviert die folgende Anzahl von Operationen:

Figure DE102013219863B4_0060
This involves the following number of operations:
Figure DE102013219863B4_0060

Die Gesamt-Komplexität des Algorithmus 2 ist nach oben hin begrenzt durch:

Figure DE102013219863B4_0061
The overall complexity of Algorithm 2 is limited upwards by:
Figure DE102013219863B4_0061

Lösch-Muster vom Typ 3 – Algorithmus 3.Deletion pattern of type 3 - Algorithm 3.

Für dieses Lösch-Muster kann die Matrix des zu lösenden Systems geschrieben werden als

Figure DE102013219863B4_0062
For this erase pattern, the matrix of the system to be solved can be written as
Figure DE102013219863B4_0062

Anzumerken ist, dass V die Transponierte einer Vandermonde-Matrix des Grads ei ist. It should be noted that V is the transpose of a vandermonde matrix of degree e i .

Schritt 1 – Invertierte der Vandermonde-Matrix V des Grads ei Step 1 - Invert the vandermonde matrix V of degree e i

Die folgende Anzahl von Operationen ist erforderlich.

Figure DE102013219863B4_0063
The following number of operations is required.
Figure DE102013219863B4_0063

Schritt 2 – Multiplikation mit der Inversen von VStep 2 - Multiplication with the inverse of V

In diesem Schritt werden ei gelöschte Symbole rückgewonnen.In this step, e i deleted symbols are recovered.

Dieser Schritt involviert keine Operationen an der Matrix des Systems.This step does not involve any operations on the matrix of the system.

Der bekannte Term des Systems wird mit der berechneten Inverse von V multipliziert.The known term of the system is multiplied by the calculated inverse of V.

Die an dem bekannten Term auszuführenden Operationen sind

Figure DE102013219863B4_0064
The operations to be performed on the known term are
Figure DE102013219863B4_0064

Die Komplexität dieses Schritts ist somit

Figure DE102013219863B4_0065
The complexity of this step is thus
Figure DE102013219863B4_0065

Die Matrix des Systems nach diesem Schritt ist

Figure DE102013219863B4_0066
The matrix of the system after this step is
Figure DE102013219863B4_0066

Schritt 3. Aktualisieren des bekannten Terms hinsichtlich des durch den unteren Teil der Matrix gegebenen Gleichungssystems, d. h.

Figure DE102013219863B4_0067
mit den ei rückgewonnenen Unbekannten.Step 3. Updating the known term with respect to the system of equations given by the lower part of the matrix, ie
Figure DE102013219863B4_0067
with the e i reclaimed unknowns.

Eine obere Grenze für die in diesem Schritt involvierte Anzahl von Operationen ist

Figure DE102013219863B4_0068
An upper bound on the number of operations involved in this step is
Figure DE102013219863B4_0068

Schritt 4 – Smarte GE an dem dünnbesetzten Gleichungssystem, das durch die Matrix

Figure DE102013219863B4_0069
und den aktualisierten bekannten Term gegeben ist.Step 4 - Smart GE on the sparse system of equations passing through the matrix
Figure DE102013219863B4_0069
and the updated known term is given.

Da die in diesem Schritt involvierten Unbekannten Funktionen der (bereits rückgewonnenen) ei Unbekannten sind und das System dünnbesetzt ist, kann ein smarter GE-Algorithmus angewandt werden, um die verbleibenden ep Unbekannten rückzugewinnen. Die asymptotische Komplexität dieses Schritts ist hinsichtlich der Anzahl von Pivots für den durch die Paritätsprüf-Matrix

Figure DE102013219863B4_0070
beschriebenen Code kubisch.Since the unknowns involved in this step are functions of the (already recovered) e i unknowns and the system is sparse, a smart GE algorithm can be applied to recover the remaining e p unknowns. The asymptotic complexity of this step is in terms of the number of pivots for the parity check matrix
Figure DE102013219863B4_0070
described code cubic.

Anzumerken ist, dass man null Pivots und nur einen einzigen Dekodier-Schritt benötigt, um die ep Unbekannten rückzugewinnen.It should be noted that one needs zero pivots and only a single decode step to recover the e p unknowns.

Die Gesamt-Komplexität des Algorithmus 3 ist nach oben hin begrenzt durch:

Figure DE102013219863B4_0071
The overall complexity of Algorithm 3 is limited upwards by:
Figure DE102013219863B4_0071

Lösch-Muster vom Typ 4 – Algorithmus 4Deletion pattern of type 4 - Algorithm 4

Für dieses Lösch-Muster ist die Matrix des zu lösenden Systems wie folgt beschaffen:

Figure DE102013219863B4_0072
For this erase pattern, the matrix of the system to be solved is as follows:
Figure DE102013219863B4_0072

Anzumerken ist, dass V die Transponierte einer Vandermonde-Matrix des Grads mMDS ist.It should be noted that V is the transpose of a vandermonde matrix of degree m MDS .

Schritt 1 – Invertierte der Vandermonde-Matrix V des Grads mMDS Step 1 - Inverted vertex probe matrix V of degree m MDS

Die in diesem Schritt involvierten Operationen sind:

Figure DE102013219863B4_0073
The operations involved in this step are:
Figure DE102013219863B4_0073

Schritt 2 – Multiplikation mit der Inversen von V.Step 2 - Multiplication with the inverse of V.

Der bekannte Term des Systems und die Matrix A müssen mit der berechneten Inversen von V multipliziert werden.The known term of the system and the matrix A must be multiplied by the calculated inverse of V.

Dieser Schritt involviert die folgende Anzahl von Operationen an der Matrix A:

Figure DE102013219863B4_0074
This step involves the following number of operations on the matrix A:
Figure DE102013219863B4_0074

Schritt involviert die folgende Anzahl von Operationen an dem bekannten Term des Systems:

Figure DE102013219863B4_0075
Step involves the following number of operations on the known term of the system:
Figure DE102013219863B4_0075

Die Gesamt-Anzahl von Operationen in Schritt 2 ist

Figure DE102013219863B4_0076
The total number of operations in step 2 is
Figure DE102013219863B4_0076

Die Matrix des Systems nach diesem Schritt ist

Figure DE102013219863B4_0077
The matrix of the system after this step is
Figure DE102013219863B4_0077

Schritt 3 – Ausnullen des Teils der Matrix unterhalb der diagonalen Matrix I.Step 3 - Degrade the part of the matrix below the diagonal matrix I.

Die Komplexität dieses Schritts, der an der Matrix des Systems vorgenommen wird, kann nach oben hin begrenzt werden durch

Figure DE102013219863B4_0078
The complexity of this step, which is done on the matrix of the system, can be limited upwards by
Figure DE102013219863B4_0078

Die Komplexität dieses Schritts, der an dem bekannten Term des Systems vorgenommen wird, kann nach oben hin begrenzt werden durch

Figure DE102013219863B4_0079
The complexity of this step, which is done on the known term of the system, can be limited upwards by
Figure DE102013219863B4_0079

Die Gesamt-Komplexität dieses Schritts lautet

Figure DE102013219863B4_0080
The overall complexity of this step is
Figure DE102013219863B4_0080

Die Matrix des Systems nach diesem Schritt ist

Figure DE102013219863B4_0081
The matrix of the system after this step is
Figure DE102013219863B4_0081

Anzumerken ist, dass die Matrix B nach Schritt 3 dichtbesetzt ist.It should be noted that the matrix B is densely populated after step 3.

Schritt 4 – Smarte GE an dem dünnbesetzten Gleichungssystem, das durch den unteren Teil des Systems gegeben ist, d. h. (0 B H (LDPC-Parity)) ep + (ei – mMDS) Löschungen werden in diesem Schritt rückgewonnen.Step 4 - Smart GE on the sparse system of equations given by the lower part of the system, ie (0 B H (LDPC parity) ) e p + (e i -m MDS ) Erasures are recovered in this step.

Die Anzahl von Pivots in diesem Schritt kann nach oben hin begrenzt werden durch ei – mMDS + p, wobei p die Anzahl von Pivots des Original LDPC-Codes ist.The number of pivots in this step may be limited upwards by e i -m MDS + p, where p is the number of pivots of the original LDPC code.

Anzumerken ist, dass man für IRA/GeIRA-Codes nur ei – mMDS Pivots hat, da man stets die Matrix H (LDPC-Parity) mit Reihen- und Spalten-Permutationen triangulieren kann.It should be noted that one for IRA / Geira codes only e i - has m MDS Pivots, as you always the matrix H (LDPC parity) can triangulate with row and column permutations.

Schritt 5 – Rück-Substitution.Step 5 - Back Substitution.

Die übrigen mMDS Löschungen werden in einem Rück-Substitutions-Schritt rückgewonnen.The remaining m MDS deletions are recovered in a back-substitution step.

Es ist die folgende Anzahl von Operationen involviert:

Figure DE102013219863B4_0082
The following number of operations are involved:
Figure DE102013219863B4_0082

Die Gesamt-Komplexität des Algorithmus 4 kann nach oben hin begrenzt werden durch:

Figure DE102013219863B4_0083
The overall complexity of Algorithm 4 can be limited upwards by:
Figure DE102013219863B4_0083

Die Erfindung erlaubt das Einsparen einer beträchtlichen Anzahl von Operationen zum Dekodieren von Codes, die auf einer seriellen Konkatenation von MDS-Codes und PDPC-Codes basieren. Die Komplexitätsreduzierung wird erreicht, indem sowohl die Struktur der Matrices des MDS-Codes als auch die Dünnbesetztheit des LDPC-Codes genutzt werden.The invention allows to save a considerable number of operations for decoding codes based on a serial concatenation of MDS codes and PDPC codes. The complexity reduction is achieved by taking advantage of both the structure of the matrices of the MDS code and the sparse nature of the LDPC code.

Vorstehend wurde bereits eine detaillierte Beschreibung der Erfindung gegeben. Die abgeleiteten Gleichungen für die Anzahl von Operationen (oder die oberen Grenzwerte), die durch den vorgeschlagenen Dekodier-Algorithmus erforderlich sind, sind in Software (SW) implementiert worden. Es wurde ein Vergleich zwischen dem Stand der Technik und der Erfindung durchgeführt. Es soll nun das folgende Beispiel betrachtet werden, und die Komplexität soll untersucht werden.A detailed description of the invention has already been given above. The derived equations for the number of operations (or upper bounds) required by the proposed decoding algorithm have been implemented in software (SW). A comparison was made between the prior art and the invention. The following example will be considered, and the complexity will be examined.

Beispielexample

Es seien serielle Konkatenationen mit dem (256, 128)-LDPC-Code an dem in [2] bezeichneten GF(256) angenommen.Consider serial concatenations with the (256, 128) LDPC code at the GF (256) designated in [2].

Der maximale VN-Grad beträgt d (max-LDPC) / v = 100, und der maximale CN-Grad beträgt d (max-LDPC) / c = 10. The maximum VN degree is d (max LDPC) / v = 100, and the maximum CN grade is d (max-LDPC) / c = 10.

Es seien L = 40 Bits angenommen, wobei es sich um eine Block-Größe von 3GPP/UMTS Turbo-Codes handelt.Let L = 40 bits be assumed, which is a block size of 3GPP / UMTS turbo codes.

Daran soll eine Konkatenierung vorgenommen werden, und zwar bezüglich zu:

  • 1. einem in dem GF(256) aufgebauten (128, 126)-MDS-Code, der somit 2 MDS-Gleichungen in der Paritätsprüf-Matrix des LDPC-Codes enthält
  • 2. einem in dem GF(256) aufgebauten (128, 124)-MDS-Code, der somit 4
  • MDS-Gleichungen in der Paritätsprüf-Matrix des LDPC-Codes enthält
  • 3. einem in dem GF(256) aufgebauten (128, 120)-MDS-Code, der somit 8 MDS-Gleichungen in der Paritätsprüf-Matrix des LDPC-Codes enthält
  • 4. einem in dem GF(256) aufgebauten (128, 88)-MDS-Code, der somit 40 MDS-Gleichungen in der Paritätsprüf-Matrix des LDPC-Codes enthält
  • 5. einem in dem GF(256) aufgebauten (128, 68)-MDS-Code, der somit 60 MDS-Gleichungen in der Paritätsprüf-Matrix des LDPC-Codes enthält Die Leistung der ersten drei konkatenierten Codes in Form der Codewort-Fehlerrate (CER) gegenüber der Lösch-Wahrscheinlichkeit ε an dem Kanal ist in 3 gezeigt. Zu beachten ist, dass die Leistung verbessert wird, wenn mehr Gleichungen aus dem MDS-Code an die Paritätsprüf-Matrix des LDPC-Codes angefügt werden.
A concatenation should be made on this, with regard to:
  • 1. a (128, 126) MDS code constructed in GF (256), thus containing 2 MDS equations in the parity check matrix of the LDPC code
  • 2. a (128, 124) -MDS code constructed in the GF (256), which is thus 4
  • Contains MDS equations in the parity check matrix of the LDPC code
  • 3. a (128, 120) MDS code constructed in the GF (256), thus containing 8 MDS equations in the parity check matrix of the LDPC code
  • 4. a (128, 88) MDS code built in the GF (256), thus containing 40 MDS equations in the parity check matrix of the LDPC code
  • 5. a (128, 68) -MDS code constructed in the GF (256), thus containing 60 MDS equations in the parity check matrix of the LDPC code The power of the first three concatenated codes in the form of the codeword error rate ( CER) against the deletion probability ε at the channel is in 3 shown. Note that performance improves as more equations from the MDS code are added to the parity check matrix of the LDPC code.

Die mittlere Anzahl von Pivots gegenüber dem Overhead Δ auf der RX-Seite für die bezeichneten Codes bei Anwendung der Dekodierung gemäß dem Stand der Technik ist in 4 und 5 gezeigt. (Die Ergebnisse sind für 1000 Probeläufe gemittelt, bei denen der IT-Dekodierer nicht erfolgreich arbeitet und die weiteren Schritte erforderlich sind.) Der Overhead ist die Anzahl empfangener Zeichen zusätzlich zu k. Anzumerken ist, dass die Anzahl von Pivots und somit die Komplexität einhergehend mit der Anzahl der MDS-Gleichungen zunimmt, die an die Paritätsprüf-Matrix des LDPC-Codes angefügt werden.The average number of pivots against the overhead Δ on the RX side for the designated codes when using the prior art decoding is shown in FIG 4 and 5 shown. (The results are averaged for 1000 trial runs where the IT decoder is unsuccessful and further steps are required.) The overhead is the number of characters received in addition to k. It should be noted that the number of pivots and thus the complexity increases along with the number of MDS equations attached to the parity check matrix of the LDPC code.

Es soll nun die serielle Konkatenation mit einem (128, 68)-MDS-Code erläutert werden. Die mittlere Anzahl von Pivots für diesen Code für ein Dekodieren gemäß dem Stand der Technik ist in 5 gezeigt.Let us now explain the serial concatenation with a (128, 68) -MDS code. The average number of pivots for this code for prior art decoding is shown in FIG 5 shown.

Es soll nun die Anzahl erforderlicher Operationen für das Dekodieren gemäß dem Stand der Technik und für den vorgeschlagenen Algorithmus berechnet werden. Insbesondere soll gelten, dass ep = 64 und ei = 60. Die Gesamt-Anzahl empfangener Symbole ist somit gleich 256 – 124 = 132, es wird mit einem Overhead Δ = 132 – 68 = 64 gearbeitet. Die mittlere Anzahl von Pivots beim gemäß dem Stand der Technik vorgenommenen Dekodieren von θ + p bei diesem Overhead ist gleich ~6 (5), und im Mittel werden beim Stand der Technik mit IT-Dekodierung 6 Löschungen rückgewonnen.Now, the number of required operations for decoding according to the prior art and for the proposed algorithm will be calculated. In particular, it should be said that e p = 64 and e i = 60. The total number of symbols received is thus equal to 256 - 124 = 132, and an overhead Δ = 132 - 68 = 64 is used. The average number of pivots in the prior art decoding of θ + p at this overhead is ~ 6 ( 5 ), and on average 6 deletions are recovered in the prior art with IT decoding.

Die Ergebnisse wurden gemäß den vorgestellten Gleichungen berechnet und sind in Tabelle II aufgeführt.The results were calculated according to the presented equations and are listed in Table II.

Figure DE102013219863B4_0084
Tabelle II. Komplexitätsvergleich für das präsentierte Beispiel anhand der Gesamt-Anzahl von Operationen N = Na + Nm. (128, 68) MDS + (256, 128) LDPC an GF(256), q = 256, L = 40 Bits. Aufgeführt ist der Stand der Technik im Vergleich zur Erfindung.
Figure DE102013219863B4_0084
Table II. Complexity comparison for the presented example, based on the total number of operations N = N a + N m . (128, 68) MDS + (256, 128) LDPC at GF (256), q = 256, L = 40 bits. Listed is the prior art compared to the invention.

Anzumerken ist, dass für dieses Beispiel, und basierend auf den abgeleiteten Obergrenzen, mit Hilfe der Erfindung die beim Stand der Technik erforderliche Anzahl von Operationen um 79% reduziert wird.It should be noted that for this example, and based on the derived upper limits, the invention reduces the number of operations required by the prior art by 79%.

Der vorgeschlagene Algorithmus kann für sämtliche Typen kommerzieller drahtloser und verdrahteter Übertragungssysteme verwendet werden, wie z. B. Satelliten-Kommunikation, Kommunikation über das Internet, etc. Wie dargelegt wurde, ermöglicht das vorgeschlagene Dekodierverfahren eine beträchtliche Reduzierung des Dekodier-Algorithmus des Standes der Technik, so dass seriell konkatenierte Schemata, die auf MDS-Codes (z. B. Reed-Solomon-Codes) und LDPC-Codes basieren, auch an Plattformen mit geringer Rechenkapazität angewandt werden können.The proposed algorithm can be used for all types of commercial wireless and wired transmission systems, such as: As has been stated, the proposed decoding method allows a considerable reduction of the prior art decoding algorithm such that serially concatenated schemes based on MDS codes (e.g., Reed Solomon codes) and LDPC codes can also be applied to platforms with low computational capacity.

AbkürzungenAbbreviations

  • CERCERIUM
    Codewort-Fehlerrate (Codeword Error Rate)Codeword Error Rate
    CRCCRC
    zyklische Redundanzprüfung (Cyclic Redundancy Check)cyclic redundancy check (Cyclic Redundancy Check)
    CNCN
    Prüf-Knoten (Check node)Check node
    GeIRAGeira
    Generalized irregular-repeat accumulateGeneralized irregular-repeat accumulate
    GEGE
    Gauß'sche EliminationGaussian elimination
    GFGF
    Galois-FeldGalois field
    ITIT
    iterativiterative
    IRAIRA
    Irregular-repeat accumulateIrregular-repeat accumulate
    LDPCLDPC
    Niedrigdichte-Paritätsprüfung (Low density parity check)Low density parity check (low density parity check)
    MDSMDS
    maximale Trennungsdistanz (Maximum distance separable)maximum separation distance (maximum distance separable)
    PHYPHY
    PhysischPhysically
    PP
    EC Paketlöschkanal (Packet Erasure Channel)EC packet clear channel (Packet Erasure Channel)
    VNVN
    variable Knoten (Variable node)variable node

Literaturliterature

  • [1] J. Byers, M. Luby, M. Mitzenmacher, 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.[1] J. Byers, M. Luby, M. Mitzenmacher, 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] Giuliano Garrammone, Balázs Matuz, ”Short Erasure Correcting LDPC IRA Codes over GF(q)”, GLOBECOM 2010, S. 1–5.[2] Giuliano Garrammone, Balazs Matuz, "Short Erasure Correcting LDPC IRA Codes over GF (q)", GLOBECOM 2010, pp. 1-5.
  • [3] G. Garrammone, B. Matuz, G. Liva, ”An Overview of Efficient Coding Techniques for Packet Loss Recovery in CCSDS Telemetry Links”, 5th European Space Agency Workshop on Tracking, Telemetry and Command Systems for Space Applications, TTC 2010, Noordwijk (Netherlands), 21.–23. September 2010.[3] G. Garrammone, B. Matuz, G. Liva, "An Overview of Efficient Coding Techniques for Packet Loss Recovery in CCSDS Telemetry Links," 5th European Space Agency Workshop on Tracking, Telemetry and Command Systems for Space Applications, TTC 2010 , Noordwijk (Netherlands), 21.-23. September 2010.
  • [4] L. Richard Turner, ”Inverse of Vandermonde matrix with applications”, NASA Technical Note, August 1966.[4] L. Richard Turner, "Inverse of Vandermonde matrix with applications", NASA Technical Note, August 1966.
  • [5] Irving S. Reed, Gustave Solomon, ”Polynomial codes over certain finite fields”, Journal of the Society for Industrial and Applied Mathematics. [SIAM J.], 8, 1960.[5] Irving S. Reed, Gustave Solomon, "Polynomial codes over certain finite fields," Journal of the Society for Industrial and Applied Mathematics. [SIAM J.], 8, 1960.
  • [6] J. Blömer, M. Kalfane, R. Karp, M. Karpinski, M. Luby, D. Zuckerman, ”An xor- based erasure-resilient coding scheme”, ICSI, Tech. Rep., Aug. 1995, TR-95-048.[6] J. Blömer, M. Kalfane, R. Karp, M. Karpinski, M. Luby, D. Zuckerman, "An xor-based erasure-resilient coding scheme", ICSI, Tech. Rep., Aug. 1995, TR-95-048.
  • [7] G. Liva, B. Matuz, E. Paolini, M. Chiani, ”Pivoting Algorithms for Maximum Likelihood Decoding of LDPC Codes over Erasure Channels”, IEEE Globecom 2009 (Communication Theory Symposium), Honolulu, November 2009.[7] G. Liva, B. Matuz, E. Paolini, M. Chiani, "Pivoting Algorithms for Maximum Likelihood Decoding of LDPC Codes over Erasure Channels", IEEE Globecom 2009 (Communication Theory Symposium), Honolulu, November 2009.
  • [8] D. Burshtein, 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.[8] D. Burshtein, G. Miller, "An 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.
  • [9] LIU, Qi, LU Yang, WANG Wensheng, CUI Huijuan, TANG Kun, ”Robust Video Transmission Scheme Using Dynamic Rate Selection LDPC and RS codes. In: IMACS Multiconference on Computational Engineering in Systems Applications, Vol. 2, 2006, S. 1673–1679. – ISBN 7-302-13922-9.[9] LIU, Qi, LU Yang, WANG Wensheng, CUI Huijuan, TANG Kun, "Robust Video Transmission Scheme Using Dynamic Rate Selection LDPC and RS codes. In: IMACS Multiconference on Computational Engineering in Systems Applications, Vol. 2, 2006, pp. 1673-1679. - ISBN 7-302-13922-9.

Claims (1)

Verfahren zum Übertragen einer Nachricht von einem Sender zu einem Empfänger über ein Kommunikationsmedium mittels Packet-Level-Coding, mit den folgenden Schritten: – an der Sender-Seite – Aufteilen der zu übertragenden Nachricht in k Informationspakete von jeweils L Bits (Eingabe-Zeichen), – Kodieren der k Informationspakete zu n Codewort-Paketen von jeweils L Bits (Ausgabe-Zeichen), wobei n größer als k ist und wobei m = n – k Paritäts-Pakete erzeugt werden, und – Schützen der n Codewort-Pakete durch Fehler-Detektions- und -Korrektur-Codes, – Übertragen der n Codewort-Pakete und m Paritäts-Pakete über das Kommunikationsmedium vom Sender zum Empfänger, und – an der Empfänger-Seite – für jedes der gesendeten Codewort-Pakete, Durchführen einer Fehlerkorrektur mittels des Fehler-Korrektur-Codes und Detektion von Restfehlern mittels des Fehler-Detektions-Codes, wobei ein Codewort-Paket, an dem ein Fehler detektiert wird, als verloren betrachtet und als Löschung markiert wird, und – zwecks Rückgewinnen der Nachricht erfolgendes Dekodieren der empfangenen Codewort-Pakete mittels einer konkatenierten Paritätsprüf-Matrix, die einen Informations-Teil und einen Paritätsprüf-Teil aufweist, und zwar sofern eine hinreichende Anzahl an Codewort-Paketen empfangen worden ist, dadurch gekennzeichnet, dass – das Kodieren der k Informationspakete mittels Maximum-Distance-Separable-(MDS-)Codes durchgeführt wird, die auf Vandermonde- oder Cauchy-Matrices basieren, welche mit nicht-binären oder binären Low-Density-Parity-Check-(LDPC-)Codes seriell konkateniert sind, was dazu führt, dass die konkatenierte Gesamt-Paritätsprüf-Matrix aufweist: (I) als ihren Informations-Teil (i) eine dichtbesetzte erste Teil-Matrix, welche die Paritätsprüf-Matrix des MDS-Codes ist und dementsprechend vom Vandermonde- oder Cauchy-Matrix-Typ ist, und (ii) eine dünnbesetzte zweite Teil-Matrix, die aus dem Informations-Teil der Paritätsprüf-Matrix des LDPC-Codes besteht, und (II) als ihren Paritätsprüf-Teil (i) eine dritte Teil-Matrix, die eine Null-Matrix ist, und (ii) eine dünnbesetzte vierte Teil-Matrix, die aus dem Paritätsprüf-Teil der Paritätsprüf-Matrix des LDPC-Codes besteht, und – das Dekodieren der empfangenen Codewort-Pakete unter Berücksichtigung derjenigen Spalten der konkatenierten Gesamt-Paritätsprüf-Matrix, die den gelöschten Codewort-Paketen zugeordnet sind, und durch Lösen der folgenden Gleichung durchgeführt wird:
Figure DE102013219863B4_0085
wobei
Figure DE102013219863B4_0086
einen Vektor bezeichnet, der die gelöschten kodierten Codewort-Pakete (Ausgabe-Zeichen) enthält, xk einen Vektor bezeichnet, der die korrekt empfangenen kodierten Codewort-Pakete enthält,
Figure DE102013219863B4_0087
die Sub-Matrix ist, die aus den Spalten in der Gesamt-Paritätsprüf-Matrix besteht, welche den gelöschten Codewort-Paketen (Ausgabe-Zeichen) entsprechen, Hk die Sub-Matrix der Gesamt-Paritätsprüf-Matrix bezeichnet, die aus den Spalten in der Gesamt-Paritätsprüf-Matrix besteht, welche den korrekt empfangenen Codewort-Paketen (Ausgabe-Zeichen) entsprechen, und das hochgestellte T die Transponierte der betreffenden Matrix bezeichnet, – wobei
Figure DE102013219863B4_0088
eine dünnbesetzte Matrix ist, die das Gleichungssystem beschreibt, welche zum Rückgewinnen der gelöschten Codewort-Pakete (Ausgabe-Zeichen) zu lösen sind.
Method for transmitting a message from a sender to a receiver via a communication medium by means of packet-level coding, comprising the following steps: at the sender side splitting the message to be transmitted into k information packets of L bits (input characters) Encoding the k information packets into n codeword packets of L bits (output characters), where n is greater than k and where m = n-k parity packets are generated, and - protecting the n codeword packets by errors Detection and correction codes, transmitting the n codeword packets and m parity packets over the communication medium from the sender to the receiver, and at the receiver side for each of the transmitted codeword packets, performing an error correction by means of the Error correction codes and detection of residual errors by means of the error detection code, wherein a codeword packet on which an error is detected, considered lost and as Lösc hung, and for the purpose of recovering the message, decoding the received codeword packets by means of a concatenated parity check matrix comprising an information part and a parity check part, if a sufficient number of codeword packets have been received, characterized in that The coding of the k information packets is carried out by means of Maximum Distance Separable (MDS) codes based on Vandermonde or Cauchy matrices which are used with non-binary or binary Low Density Parity Check (LDPC). Codes are serially concatenated, which results in the concatenated total parity check matrix comprising: (I) as its information part (i) a densely packed first sub-matrix which is the parity check matrix of the MDS code and, accordingly, from Vandermonde or Cauchy matrix type, and (ii) a sparsely populated second sub-matrix consisting of the information portion of the parity check matrix of the LDPC code, and (II) as its parity check portion (i) third sub-matrix being a null matrix, and (ii) a sparse fourth sub-matrix consisting of the parity check part of the parity check matrix of the LDPC code, and decoding the received codeword packets considering those columns of concatenation total parity check matrix associated with the deleted codeword packets, and performed by solving the following equation:
Figure DE102013219863B4_0085
in which
Figure DE102013219863B4_0086
denotes a vector containing the deleted coded codeword packets (output characters), x k denotes a vector containing the correctly received coded codeword packets,
Figure DE102013219863B4_0087
is the sub-matrix consisting of the columns in the total parity check matrix corresponding to the deleted codeword packets (output characters), H k denotes the sub-matrix of the total parity check matrix consisting of the columns in the total parity check matrix, which correspond to the correctly received codeword packets (output character), and the superscript T denotes the transpose of the respective matrix, - where
Figure DE102013219863B4_0088
is a sparse matrix describing the system of equations to be solved for recovering the deleted codeword packets (output characters).
DE102013219863.9A 2012-10-17 2013-10-01 A method of transmitting a message from a sender to a receiver via a communication medium using packet-level encoding Active DE102013219863B4 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102013219863.9A DE102013219863B4 (en) 2012-10-17 2013-10-01 A method of transmitting a message from a sender to a receiver via a communication medium using packet-level encoding

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE102012218942 2012-10-17
DE102012218942.4 2012-10-17
DE102013219863.9A DE102013219863B4 (en) 2012-10-17 2013-10-01 A method of transmitting a message from a sender to a receiver via a communication medium using packet-level encoding

Publications (2)

Publication Number Publication Date
DE102013219863A1 DE102013219863A1 (en) 2014-04-30
DE102013219863B4 true DE102013219863B4 (en) 2015-01-08

Family

ID=50479875

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102013219863.9A Active DE102013219863B4 (en) 2012-10-17 2013-10-01 A method of transmitting a message from a sender to a receiver via a communication medium using packet-level encoding

Country Status (1)

Country Link
DE (1) DE102013219863B4 (en)

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
GARRAMMONE, G.; MATUZ, B.; LIVA, G.: An Overview of Efficient Coding Techniques for Packet Loss Recovery in CCSDS Telemetry Links. In: 5th ESA International Workshop on Tracking, Telemetry and Command Systems for Space Applications, 2010 *
LIU, Q. [et al.]: Robust Video Transmission Scheme Using Dynamic Rate Selection LDPC and RS codes. In: IMACS Multiconference on Computational Engineering in Systems Applications, Vol. 2, 2006, S. 1673-1679. - ISBN 7-302-13922-9 *
LIU, Q. [et al.]: Robust Video Transmission Scheme Using Dynamic Rate Selection LDPC and RS codes. In: IMACS Multiconference on Computational Engineering in Systems Applications, Vol. 2, 2006, S. 1673-1679. – ISBN 7-302-13922-9

Also Published As

Publication number Publication date
DE102013219863A1 (en) 2014-04-30

Similar Documents

Publication Publication Date Title
DE102009017540B4 (en) Procedure for recovering lost and / or damaged data
DE102017110389B4 (en) Method and decoder for soft input decoding of generalized chained codes
DE102009036946A1 (en) Programmable error correction capability for BCH codes
DE2217935C3 (en) Arrangement and method for correcting double errors in a message
CN102420616B (en) Error correction method by using quasi-cyclic LDPC code based on Latin square
CN107786210B (en) Middle and high code rate LDPC code word structure and coding method for multi-point cooperative communication system
CN1625057A (en) High structural LDPC coding and decoding method and coder and decoder
DE102013219863B4 (en) A method of transmitting a message from a sender to a receiver via a communication medium using packet-level encoding
DE102012203653B3 (en) Method for restoring lost or damaged data, involves carrying-out operations, which are carried on equations that have common equation systems to be solved, once instead of certain times, so that decoding complexity is reduced
DE102014204828B4 (en) Procedure for recovering lost and / or corrupted data
DE102013201422B3 (en) Method for restoring lost and/or damaged data transmitted from transmitting device to receiving device, involves replacing current entry of LDPC parity check matrix with entry of Galois field until entry in matrix is modified
DE102013213778B3 (en) A method for transmitting a message from a transmitter to a receiver via a communication medium by means of packet-level coding
DE102014208996B3 (en) Procedure for recovering lost and / or corrupted data
Chen et al. Cyclic LRC codes with hierarchy and availability
DE102013218311B4 (en) Procedure for recovering lost and / or damaged data
DE102012004273B4 (en) Procedure for recovering lost and / or corrupted data
DE102017107431B4 (en) Methods and devices for error correction coding based on high rate generalized concatenated codes
DE102014214451B4 (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
DE102013223813B4 (en) Procedures for recovering lost and / or corrupted data
DE102011015811B3 (en) Device for coding k8L information-bits in e.g. universal mobile telecommunications system-applications, has coder for receiving m-symbol-parity-vector from m-symbol-vector, where elements in main-diagonals are formed as non-zero-elements
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
DE102013223801B4 (en) Procedure for recovering lost and / or corrupted data
DE102014210955B4 (en) Procedure for recovering lost and / or corrupted data
DE102017206718B4 (en) Method for generating a class of non-binary LDPC codes

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