DE102012004273B4 - Procedure for recovering lost and / or corrupted data - Google Patents
Procedure for recovering lost and / or corrupted data Download PDFInfo
- Publication number
- DE102012004273B4 DE102012004273B4 DE102012004273.6A DE102012004273A DE102012004273B4 DE 102012004273 B4 DE102012004273 B4 DE 102012004273B4 DE 102012004273 A DE102012004273 A DE 102012004273A DE 102012004273 B4 DE102012004273 B4 DE 102012004273B4
- Authority
- DE
- Germany
- Prior art keywords
- matrix
- code
- vandermonde
- data
- decoding
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 34
- 239000011159 matrix material Substances 0.000 claims abstract description 108
- 230000005540 biological transmission Effects 0.000 claims abstract description 7
- 238000004364 calculation method Methods 0.000 claims description 8
- 230000008030 elimination Effects 0.000 claims description 7
- 238000003379 elimination reaction Methods 0.000 claims description 7
- 239000000523 sample Substances 0.000 claims description 3
- 238000006467 substitution reaction Methods 0.000 claims description 2
- 238000004891 communication Methods 0.000 description 6
- 238000007792 addition Methods 0.000 description 4
- 238000012937 correction Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 241001061257 Emmelichthyidae Species 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000008033 biological extinction Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/29—Coding, 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/2906—Coding, 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/3761—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 using code combining, i.e. using combining of codeword portions which may have been transmitted separately, e.g. Digital Fountain codes, Raptor codes or Luby Transform [LT] codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic 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/1515—Reed-Solomon codes
Abstract
Verfahren zum Wiederherstellen verlorengegangener und/oder beschädigter Daten, die übertragen wurden von einer Sendevorrichtung zu einer Empfangsvorrichtung, wobei dieses Verfahren die Schritte umfasst: Codieren dieser Daten durch einen Encoder, der mit der Sendevorrichtung verbunden ist, Übertragen dieser Daten von der Sendevorrichtung zu der Empfangsvorrichtung über einen Übertragungskanal und Decodieren dieser Daten durch einen Decoder, der mit der Empfangsvorrichtung verbunden ist, wobei verlorengegangene und/oder beschädigte Daten während des Decodierens wiederhergestellt werden, wobei eine Generatormatrix für das Codieren und Decodieren verwendet wird, wobei die Daten codiert werden durch eine Konkatenation eines MDS (Maximum Distance Separable) Codes und eines Fountain Codes, die Generatormatrix des MDS Codes eine Vandermonde oder Cauchy Struktur hat, wobei während des Decodierens die inverse Matrix der Vandermonde oder Cauchy Matrix berechnet wird, wobei während des Decodierens das Lösen des Gleichungssystems, das durch die Matrix G~ T definiert ist, die eine Konkatenation der Matrix G~ 'T des MDS Codes und Matrix G~ ''T des Fountain Codes ist, die folgenden Verfahrensschritte umfasst: Umschreiben der Matrix G~ T als eine Konkatenation von vier Matrizen in der folgenden Form:wobei die Reihen von Vm'× m' ein Set von m' < k Reihen einer Vandermonde Matrix der Ordnung m' und A, B und C zwei Matrizen ohne Vandermonde Struktur sind, ...A method of recovering lost and / or corrupted data that has been transmitted from a sending device to a receiving device, the method comprising the steps of: encoding this data by an encoder connected to the sending device, transmitting this data from the sending device to the receiving device over a transmission channel and decoding this data by a decoder connected to the receiving device, recovering lost and / or damaged data during decoding, using a generator matrix for coding and decoding, the data being encoded by concatenation an MDS (Maximum Distance Separable) code and a fountain code, the generator matrix of the MDS code has a Vandermonde or Cauchy structure, the inverse matrix of the Vandermonde or Cauchy matrix being calculated during the decoding, and during the decoding solving the system of equations defined by the matrix G ~ T, which is a concatenation of the matrix G ~ 'T of the MDS code and matrix G ~' 'T of the fountain code, comprises the following method steps: rewriting the matrix G ~ T as a concatenation of four matrices in the following form: where the rows of Vm '× m' are a set of m '<k rows of a Vandermonde matrix of order m' and A, B and C are two matrices without a Vandermonde structure, .. .
Description
Die Erfindung betrifft ein Verfahren zum Wiederherstellen verlorengegangener und/oder beschädigter Daten.The invention relates to a method for restoring lost and / or damaged data.
Es ist bekannt, dass Daten während der Übertragung, z. B. über einen rauschbehafteten Kanal durch verschiedene Fehlerkorrekturschemata geschützt werden können. Zu diesem Zweck werden m Paritätspakete durch einen Encoder erzeugt, die k Informationspaketen hinzugefügt werden, sodass n = k + m Codewortpakete über den Kanal übertragen werden. Unter Verwendung der übertragenen Paritätsinformationen können verlorengegangene und/oder beschädigte Daten wiederhergestellt werden. Ein Codierschema, das aus dem Stand der Technik bekannt ist, ist Fountain Coding. Fountain Coding kann z. B. auf Packet Level angewandt werden und ist eine einfache und effiziente Technik, um eine zuverlässige Übertragung in einem Kommunikationssystem zu gewährleisten (
Es ist ferner aus dem Stand der Technik bekannt, Daten durch eine Konkatenation eines MDS-Codes und eines Fountain Codes zu schützen. Dies ist z. B. beschrieben in der Veröffentlichung – F. Lazaro Blasco, G. Liva, ”On the Concatenation of Non-Binary Random Linear Fountain Codes with Maximum Distance Separable Codes,” in proceedings of International Conference an Communications, 5–9 Juni 2011, Japan.It is also known in the art to protect data by concatenation of an MDS code and a fountain code. This is z. As described in the publication - F. Lazaro Blasco, G. Liva, "On the Concatenation of Non-Binary Random Linear Fountain Codes with Maximum Distance Separable Codes," in proceedings of International Conference on Communications, 5-9 June 2011, Japan ,
Eine Klasse einfacher und effektiver Fountain Codes ist bspw. gegeben durch Linear Random Fountain Codes (LRFC) über Galois Felder höherer Ordnung, die beschrieben sind in – G. Liva, E. Paolini, and M. Chiani, ”Performance versus Overhead for Fountain Codes over Fq”, IEEE Communications Letters, vol. 14, no. 2, Seiten 178–180, Februar 2010.For example, a class of simple and effective fountain codes is given by Linear Random Fountain Codes (LRFC) over Galois higher order fields described in G. Liva, E. Paolini, and M. Chiani, "Performance versus Overhead for Fountain Codes over Fq ", IEEE Communications Letters, vol. 14, no. 2, pages 178-180, February 2010.
Software-Implementierungen von Packet Level Encodern und Decodern sind besonders attraktiv, da sie keine großen Anstrengungen für das Design/die Implementierung erfordern und sie mehr Flexibilität im Vergleich zu Hardware-Implementierungen erlauben. Software Module können einfach in einer Hardware-Architektur implementiert werden, die nicht speziell designt wurde, um Packet Level Coding zu unterstützen. Da Software Packet Level Encoder und Decoder auch dazu bestimmt sind, auf energiebeschränkten Plattformen zu laufen (z. B. on-board Units von Raumschiffen, Landungsschiffen, Rovern, Orbitern in erdnahen und Deep-space Missionen, Satelitten) sind effiziente Verfahren notwendig.Software implementations of packet level encoders and decoders are particularly attractive because they do not require much design / implementation effort and allow more flexibility compared to hardware implementations. Software modules can be easily implemented in a hardware architecture that was not specifically designed to support packet level coding. Since software packet level encoders and decoders are also designed to run on energy-constrained platforms (eg on-board units of spaceships, dropships, rovers, orbiters in near-earth and deep-space missions, satellites) efficient procedures are necessary.
Die Generatormatrix einer Konkatenation eines MDS Codes und eines Linear Random Fountain Codes, wie sie aus dem Stand der Technik bekannt ist, ist unten dargestellt, als eine Konkatenation zweier Matrizen G' und G''.The generator matrix of a concatenation of an MDS code and a Linear Random Fountain Code, as known in the art, is shown below, as a concatenation of two matrices G 'and G ".
G' ist eine k × n MDS Matrix und G” ist eine k × l Generator Matrix eines Fountain Codes. Da der Linear Random Fountain Code ein ratenloser Code ist, kann die Anzahl l der Spalten von G'' prinzipiell unendlich ansteigen.G 'is a k × n MDS matrix and G "is a k × 1 generator matrix of a fountain code. Since the Linear Random Fountain Code is a non-random code, the
Das Kodieren wird somit durchgeführt als c = u·G wobei u in Reihenvektor ist, der die k Eingangssymbole enthält und c ein Reihenvektor ist, der die n + l Ausgangssymbole enthält.The coding is thus performed as c = u * G where u is in row vector containing the k input symbols and c is a row vector containing the n + 1 output symbols.
Auf der Empfängerseite wird ein Unterset von m Symbolen empfangen. Wir bezeichnen durch J = {j1, j2, ..., jm} das Set der Indizes an den Symbolen von c, die empfangen wurden. Der empfangene Vektor y ist daher gegeben durch y = (y1, y2, ..., ym) = (cj1, cj2, ..., cjm) und er kann in Bezug gesetzt werden zu dem Quellblock u als y = u·G. Hier bezeichnet G die k m Matrix zusammengesetzt durch die Spalten von G mit den Indizes in J, d. h.On the receiver side, a subset of m symbols is received. We denote by J = {j 1 , j 2 , ..., j m } the set of indices on the symbols of c that have been received. The received vector y is therefore given by y = (y 1 , y 2 , ..., y m ) = (c j1 , c j2 , ..., c jm ) and it can be related to the source block u as y = u · G. Here G denotes the km matrix composed of the columns of G with the indices in J, ie
Die Wiederherstellung von u wird reduziert auf das Lösen des Systems von m = k + δ linearer Gleichungen in k Unbekannten G ~T·uT = YT mit der Matrix des Systems in (2), die umgeschrieben werden kann, wie es in (3) dargestellt ist, wobei m' die gesammelten Ausgangssymbole, die zu dem MDS Code gehören, sind. Somit kann man G ~T, wie unten dargestellt partitionieren.The restoration of u is reduced to solving the system of m = k + δ linear equations in k unknown G ~ T · u T = Y T with the matrix of the system in (2), which can be rewritten as described in ( 3), where m 'is the collected output symbols associated with the MDS code. Thus one can partition G ~ T as shown below.
Das Decodieren gemäß dem Stand der Technik besteht aus dem Lösen des Gleichungssystems G ~T·uT = YT, dessen Matrix in (3) dargestellt ist, mit Gauss'scher Elimination. Somit ist u ein Reihenvektor, der die k Eingangssymbole enthält, y ist der empfangene Vektor und G ~T ist die Matrix des Systems. Insbesondere gehören m' Gleichungen zu dem MDS Code und die verbleibenden Gleichungen gehören zum Fountain Code. Weitere Hintergrundinformationen, die die vorliegende Erfindung betreffen, sind in den folgenden Veröffentlichungen
Byers, M. Luby, M. Mitzenmacher, and A. Rege, ”A digital fountain approach to reliable distribution of bulk data,” SIGCOMM Comput. Commun. Rev., vol. 28, no. 4, Seiten 56–67, Okt. 1998,
L. Richard Turner, ”Inverse of Vandermonde matrix with applications,” NASA Technical Note, August 1966,
Irving S. Reed, Gustave Solomon, ”Polynomial codes over certain finite fields,” Journal of the Society for Industrial and Applied Mathematics. [SIAM J.], 8, 1960, M. Karpinski, R. Karp, M. Luby, J. Bloemer, M. Kalfane and D. Zuckerman, ”An XOR-based erasure-resilient coding scheme,” ICSI, Tech. Rep., Aug. 1995, TR-95-048.The decoding according to the prior art consists of solving the equation system G ~ T · u T = Y T , the matrix of which is shown in (3), with Gaussian elimination. Thus, u is a row vector containing the k input symbols, y is the received vector, and G ~ T is the matrix of the system. In particular, m 'equations belong to the MDS code and the remaining equations belong to the Fountain Code. Further background information concerning the present invention can be found in the following publications
Byers, M. Luby, M. Mitzenmacher, and A. Rege, "A digital fountain approach to reliable distribution of bulk data," SIGCOMM Comput. Commun. Rev., vol. 28, no. 4, pages 56-67, Oct. 1998,
L. Richard Turner, "Inverse of Vandermonde matrix with applications," NASA Technical Note, August 1966,
Irving S. Reed, Gustave Solomon, "Polynomial codes over certain finite fields," Journal of the Society for Industrial and Applied Mathematics. [SIAM J.], 8, 1960, M. Karpinski, R. Karp, M. Luby, J. Bloemer, M. Kalfane and D. Zuckerman, "An XOR-based erasure-resilient coding scheme," ICSI, Tech. Rep., Aug. 1995, TR-95-048.
Druckschrift
Es ist Aufgabe der vorliegenden Erfindung, ein Verfahren zum Wiederherstellen von verlorengegangenen und/oder beschädigten Daten bereitzustellen, wobei Daten mit einer verringerten Berechnungskomplexität wiederhergestellt werden können.It is an object of the present invention to provide a method for recovering lost and / or corrupted data whereby data can be restored with reduced computational complexity.
Diese Aufgabe wird erfindungsgemäß gelöst durch die Merkmale des Anspruchs 1.This object is achieved by the features of
Gemäß der erfindungsgemäßen Methode werden Daten von einer Sendevorrichtung zu einer Empfangsvorrichtung übermittelt, wobei Daten kodiert werden durch einen Encoder, der mit der Sendevorrichtung verbunden ist. Daten werden übertragen über einen Übertragungskanal, der z. B. ein Broadcasting Netzwerk in einem Satellitenszenario ist. Jeder passende Übertragungskanal kann verwendet werden. Die übertragenen Daten werden dekodiert durch einen Decoder, der mit der Empfangsvorrichtung verbunden ist, wobei verlorengegangene und/oder beschädigte Daten während des Dekodierens wiederhergestellt werden. According to the inventive method, data is transmitted from a transmitting device to a receiving device, data being encoded by an encoder connected to the transmitting device. Data is transmitted via a transmission channel, the z. B. is a broadcasting network in a satellite scenario. Any suitable transmission channel can be used. The transmitted data is decoded by a decoder connected to the receiving device, recovering lost and / or damaged data during decoding.
Eine Generatormatrix wird für das Codieren und Decodieren verwendet, wobei Daten kodiert werden durch eine Konkatenation eines MDS Codes und eines Fountain Codes. Gemäß der Erfindung hat die Generator Matrix des MDS Codes eine Vandermonde oder Cauchy Struktur. Während des Decodierens ist ein wichtiger Schritt das Berechnen der inversen Matrix der Vandermonde oder Cauchy Matrix. In diesem Schritt kann die spezielle Struktur einer Vandermonde oder Cauchy Matrix ausgenutzt werden, um die Berechnungskomplexität für das Berechnen der inversen Matrix zu verringern. Die Vorteile des erfindungsgemäßen Verfahrens verglichen zum Stand der Technik werden im Folgenden gezeigt:
Gemäß dem Stand der Technik ist die Decodierkomplexität kubisch mit der Anzahl der Eingangssymbole des Codingschemas k, d. h. ~O(k3). Tatsächlich ist die Anzahl der Operationen, die während der Gauss'schen Elimination (GE) bei einer Matrix der Größe (k + δ) × k benötigt werden, im Packet Level bezeichnet als N
According to the prior art, the decoding complexity is cubic with the number of input symbols of the coding scheme k, ie ~ O (k 3 ). In fact, the number of operations needed during Gaussian elimination (GE) for a matrix of size (k + δ) x k, denoted N in the packet level
Der vorgeschlagene Decodieralgorithmus nutzt die Struktur der Decodiermatrix in (3) und die Struktur einer Vandermonde oder Cauchy Matrix. Um die Erfindung darzustellen, muss zuerst ein Überblick über Reed-Solomon Matrizen und Vandermonde Matrizen und ihre Inversen gegeben werden. Obwohl keine detaillierte Erklärung in Bezug auf Cauchy Matrizen gegeben wird, ist es ebenfalls möglich, eine Cauchy Matrix mit quadratischer Komplexität zu invertieren, wie gezeigt ist in M. Karpinski, R. Karp, M. Luby, J. Bloemer, M. Kalfane and D. Zuckerman, ”An xor-based erasure-resilient coding scheme,” ICSI, Tech. Rep., Aug. 1995, TR-95-048.The proposed decoding algorithm uses the structure of the decoding matrix in (3) and the structure of a Vandermonde or Cauchy matrix. To illustrate the invention, first review the Reed-Solomon matrices and Vandermonde matrices and their inverses. Although no detailed explanation is given with respect to Cauchy matrices, it is also possible to invert a quadratic complexity Cauchy matrix as shown in M. Karpinski, R. Karp, M. Luby, J. Bloemer, M. Kalfane and D. Zuckerman, "An xor-based erasure-resilient coding scheme," ICSI, Tech. Rep., Aug. 1995, TR-95-048.
Im Folgenden wird ein Überblick einer Reed-Solomon Generator Matrix und Vandermonde Matrizen gegeben:
Die Generator Matrix eines Reed-Solomon Codes der Länge n = q – 1 und der Distanz d = n – k + 1 ist im Folgenden dargestellt und wird bezeichnet als G', wobei q die Ordnung des Galois Felds ist, über dem der Code erzeugt wurde, und a das primitive Element des Felds ist.The following is an overview of a Reed-Solomon generator matrix and Vandermonde matrices:
The generator matrix of a Reed-Solomon code of length n = q-1 and the distance d = n-k + 1 is shown below and is referred to as G ', where q is the order of the Galois field over which the code was generated, and a is the primitive element of the field.
Die transponierte Matrix von G' wird bezeichnet als G'T und ist wie folgt definiert, The transposed matrix of G 'is referred to as G' T and is defined as follows,
Eine quadratische Vandermonde Matrix der Ordnung y wird bezeichnet als vγ und ist wie folgt definiert, wobei xi mit i = 1, ..., γ, γ unterschiedliche Elemente sind. Es ist zu beachten, dass das j-te Element in der i-ten Reihe von Vγ geschrieben werden kann als (xi)j-1, für j = 1, ..., γ. Eine wichtige Eigenschaft einer Vandermonde Matrix der Ordnung γ ist, dass sie eine Matrix mit vollem Rang ist, d. h. Rang (Vγ) = γ. A quadratic Vandermonde matrix of order y is denoted v γ and is defined as follows, where x i with i = 1, ..., γ, γ are different 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, for j = 1, ..., γ. An important property of a Vandermonde matrix of order γ is that it is a full rank matrix, ie rank (V γ ) = γ.
Es wird bezeichnet mit J = {j1, j2, ..., jm'} ein zufälliges Set von m' <= k Indizes von Reihen von G'T. Jede der [
Die besondere Struktur einer Vandermonde Matrix der Ordnung y kann ausgenutzt werden, um ihre Inverse (V(γ))–1 mit quadratischer Komplexität in y, d. h. ~O(γ2) anstelle einer kubischen Komplexität in γ ~ O(γ3) zu berechnen, z. B. mit einem Gauss'schen Eliminations Algorithmus.The special structure of a vandermonde matrix of order y can be exploited to give its inverse (V (γ) ) -1 with quadratic complexity in y, ie ~ O (γ 2 ) instead of a cubic complexity in γ ~ O (γ 3 ) calculate, for. With a Gaussian elimination algorithm.
Es ist bevorzugt, dass die Berechnung der inversen Vandermonde oder Cauchy Matrix stattfindet mit einer reduzierten Berechnungskomplexität, verglichen zu einer Matrix, die keine Vandermonde oder Cauchy Struktur hat, insbesondere mit quadratischer Komplexität, verglichen zu einer kubischen Komplexität für eine Matrix ohne die Vandermonde oder Cauchy Struktur.It is preferred that the computation of the inverse vowel probe or Cauchy matrix takes place with a reduced computational complexity compared to a matrix that does not have a vandermonde or cauchy structure, especially with quadratic complexity, compared to a cubic complexity for a matrix without the vandermonde or Cauchy Structure.
Es ist ferner bevorzugt, dass k Ausgangssymbole generiert werden durch den MDS Code und l Ausgangssymbole generiert werden durch den Fountain Code.It is further preferred that k output symbols are generated by the MDS code and l output symbols are generated by the fountain code.
Ferner ist es bevorzugt, dass die Konkatenation des MDS Codes und des Fountain Codes zu einem ratenlosen Code führt. Es ist bevorzugt, dass ein Reed-Solomon Code als ein MDS Code verwendet wird. Die inverse Matrix einer Vandermonde Matrix kann erlangt werden durch ein Produkt der beiden Matrizen U-1 und L–1, wobei U eine obere Dreiecksmatrix ist und L eine untere Dreiecksmatrix ist. Die Berechnung der Matrix L–1 umfasst die folgenden Verfahrensschritte:
Definieren von Koeffizienten der Matrix L–1, d. h. 1 mit i = 1, ..., γ und j = 1, ..., γ durch die folgenden Gleichungen:
- a. l1,1 = 1,
- b. li,j = 0 für j > i, d. h. untere Dreiecksmatrix für j <= i, außer für j = i = 1,
Defining coefficients of the matrix L -1 ,
- a. 1,1 = 1,
- b. l i, j = 0 for j> i, ie lower triangular matrix for j <= i, except for j = i = 1,
Fixieren von j, Fokusieren auf die Koeffizienten der j-ten Spalte von L–1, wobei die folgende rekursive Gleichung für i = j + 1, ..., γ gilt, Starten von dem Element auf der Diagonalen li=j,i gegeben bei c. (außer ll,l) als, Verwenden rekursiver Gleichungen, um die Elemente von L–1 zu berechnen: für jede Spalte j, j = 1, ..., γ,
Beginnen mit dem Berechnen des Elements auf der Diagonalen, d. h. i = j,
Berechnender anderen Elemente für jede Reihe i = j + 1, ..., γ.Fixing j, focusing on the coefficients of the jth column of L -1 , where the following recursive equation holds for i = j + 1, ..., γ, Starting from the element on the diagonal l i = j, i given at c. (except l l, l ) as, Using recursive equations to calculate the elements of L -1 : for each column, j, j = 1, ..., γ,
Starting with calculating the element on the diagonal, ie i = j,
Calculating other elements for each row i = j + 1, ..., γ.
Die Berechnung der Matrix U–1 umfasst die folgenden Verfahrensschritte:
Definieren der Koeffizienten der Matrix U–1, d. h. ui,j mit i = 1, ..., γ und j = 1, ..., γ durch die folgenden Gleichungen:
- a. ui,i = 1, wobei die Hauptdiagonale
nur Elemente gleich 1 hat, - b. ui,j = 0 für j < i, d. h. obere Dreiecksmatrix
- c. ui,j = ui-1,j-1 – ui,j–1xj-1 mit u0,j = 0, für j > i,
Defining the coefficients of the matrix U -1 , ie u i, j with i = 1, ..., γ and j = 1, ..., γ 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 upper triangular matrix
- c. u i, j = u i -1, j -1 - u i, j -1 x j -1 with u 0, j = 0, for j> i,
Im Folgenden wird die Anzahl der Operationen, die notwendig ist, um V(δ) zu invertieren, berechnet gemäß den vorgestellten rekursiven Formeln. Insbesondere berücksichtigt die Berechnung Vandermonde Matrizen mit Elementen in einem Galois Feld der Ordnung q und einem primitiven Element a, wie oben für Reed-Solomon Codes dargestellt. Somit sind die elementaren Operationen Additionen und Multiplikationen über GF(q).In the following, the number of operations necessary to invert V (δ) is calculated according to the recursive formulas presented. In particular, the calculation takes into account Vandermonde matrices with elements in a Galois field of order q and a primitive element a, as shown above for Reed-Solomon codes. Thus, the elementary operations are additions and multiplications over GF (q).
Die Komplexität der Berechnung von L–1 wird bezeichnet als für die Additionen und als für die Multiplikationen und kann ausgedrückt werden, als wobei die erste Serie für die Operationen steht, um die Elemente auf der Hauptdiagonalen von L–1 zu berechnen, und die zweite Serie für die Operationen steht, um die anderen Terme zu berechnen. Somit ist die asymptotische Komplexität der Berechnung von L–1 quadratisch in γ, d. h. ~O(γ2).The complexity of calculating L -1 is referred to as for the additions and as for the multiplications and can be expressed as where the first series represents the operations to compute the elements on the main diagonal of L -1 and the second series represents the operations to compute the other terms. Thus, the asymptotic complexity of calculating L -1 is quadratic in γ, ie ~ O (γ 2 ).
Die Komplexität der Berechnung von U–1 wird bezeichnet als für die Additionen und als für die Multiplikationen und kann ausgedrückt werden als und basiert auf dem rekursiven Term. Somit ist die asymptotische Komplexität der Berechnung von U–1 ebenfalls quadratisch in γ, d. h. ~O(γ2).The complexity of calculating U -1 is referred to as for the additions and as for the multiplications and can be expressed as and is based on the recursive term. Thus, the asymptotic complexity of the computation of U -1 is also quadratic in γ, ie ~ O (γ 2 ).
Erfindungsgemäß ist vorgesehen, dass während des Decodierens das Lösen des Gleichungssystems, das definiert ist durch eine Matrix G ~T, die eine Konkatenation der Matrix G ~'T des MDS Codes und der Matrix G''T des Fountain Codes ist, die folgenden Verfahrensschritte umfasst:
Umschreiben der Matrix G ~T als eine Konkatenation von vier Matrizen in der folgenden Form: wobei die Reihen von Vm'×m' ein Set von m' < k Reihen einer Vandermonde Matrix der Ordnung m' und A, B and C zwei Matrizen ohne Vandermonde Struktur sind,
wobei das System, das auf der Empfängerseite gelöst werden muss, ist
Rewriting the matrix G ~ T as a concatenation of four matrices in the following form: where the rows of V m '× m' are a set of m '<k rows of a vandermonde matrix of order m' and A, B and C are two matrices without a vandermonde structure,
the system that needs to be solved on the receiver side is
Die Berechnung der Inversen von V unter Ausnutzung der Struktur einer Vandermonde Matrix kann durchgeführt werden, mit der folgenden Obergrenze hinsichtlich der Anzahl an Operationen, die bezeichnet werden als N
Ferner ist es bevorzugt, dass der Decodieralgorithmus, die folgenden zusätzlichen Verfahrensschritte umfasst: Multiplizieren der Gleichungen G ~T·uT = γT mit. der Matrix M, die hiernach angegeben ist, d. h. M·G ~T·uT = M·γT,
sodass die Matrix des Systems wird zu sodass der neue bekannte Term bezeichnet wird als y ≈T und das Gleichungssystem nun geschrieben werden kann, als G ≈T·uT = y ≈T.Furthermore, it is preferred that the decoding algorithm comprises the following additional method steps: multiplying the equations G ~ T · u T = γ T by. the matrix M given below ie M · G · T · u T = M · γ T ,
so that the matrix of the system becomes too so that the new known term is called y ≈ T and the system of equations can now be written as G ≈ T · u T = y ≈ T.
Die Anzahl der Operationen, die in diesem Schritt involviert sind, ist die Anzahl der Operationen, die notwendig sind, um V–1 mit A zu multiplizieren, sodass man A' erhält (bezeichnet als und ) plus die Anzahl an Operationen, die notwendig sind um V–1 mit yT zu multiplizieren, sodass man y ≈T (bezeichnet als ) erhält. Durch Verwendung der zerlegten Struktur von V–1 = U–1L–1 kann man zuerst die Anzahl der Operationen, die notwendig ist, um L–1 mit A zu multiplizieren und L–1 mit yT erhalten, wobei zu berücksichtigen ist, dass die Multiplikation mit U–1 die gleiche Anzahl an Operationen beinhaltet. Es ist insbesondere The number of operations involved in this step is the number of operations necessary to multiply V -1 by A, so that A 'is obtained (referred to as and ) plus the number of operations necessary to multiply V -1 by y T such that y ≈ T (denoted as ) receives. By using the decomposed structure of V -1 = U -1 L -1 one can first of all obtain the number of operations necessary to multiply L -1 by A and L -1 by y T , bearing in mind that multiplication by U -1 involves the same number of operations. It is special
Die Anzahl an Operationen, die den o. g. Schritt (bezeichnet als Nn
Der erfindungsgemäße Decodieralgorithmus kann ferner den folgenden zusätzlichen Verfahrensschritt umfassen:
Ausnullen der Matrix B in G ≈T durch Multiplikationen und Reihenadditionen, wobei die Matrix des Systems, die sich nach diesem Schritt ergibt, bezeichnet wird als G =T und hiernach angegeben ist The decoding algorithm according to the invention may further comprise the following additional method step:
Nulling the matrix B in G ≈ T by multiplication and row additions, where the matrix of the system resulting from this step is denoted as G = T and given below
Die Anzahl der Operationen an G =T, die während dieses Schritts notwendig sind, wird bezeichnet als Nn
Die Anzahl der Operationen, die an dem bekannten Term y ≈T notwendig sind, die zu dem neuen bekannten Term y =T führen und somit zu dem System G =T·uT = y =T, wird bezeichnet als, The number of operations necessary on the known term y ≈ T leading to the new known term y = T and thus to the system G = T * u T = y = T is referred to as
Die Anzahl an Operationen, die in Schritt (3) involviert sind (bezeichnet als N
Es ist ferner bevorzugt, dass das Lösen des Gleichungssystems der Matrix C' die Gauss'sche Elimination umfasst, wobei somit k – m' Informationssymbole, nämlich Pakete von L Bits wiederhergestellt werden. It is further preferred that the solving of the system of equations of the matrix C 'comprises the Gaussian elimination, thus restoring k - m' information symbols, namely packets of L bits.
Die Anzahl der Operationen, die während der Gauss'schen Elimination (GE) an einer Matrix der Größe (k + δ) × k im Packet Level benötigt werden, werden bezeichnet als N
Die Anzahl der Operationen, die in diesem Schritt involviert sind, wird bezeichnet als N
Es ist bevorzugt, dass die verbleibenden m' Eingangssymbole wiederhergestellt werden durch Rücksubstitution.It is preferred that the remaining m 'input symbols be restored by back substitution.
Die Anzahl der Operationen, die durch diesen Schritt notwendig sind, wird bezeichnet als N
Somit wird die Gesamtkomplexität der Erfindung bezeichnet als N
Der Schlüsselpunkt des vorgeschlagenen Decodieralgorithmus ist der Schritt bgzl der Berechnung der Inversen einer Vandermonde oder einer Cauchy Matrix der Ordnung m' mit quadratischer Komplexität, d. h. O((m')2), wobei z. B. der vorgeschlagene Algorithmus verwendet werden kann.The key point of the proposed decoding algorithm is the step bgzl of calculating the inverse of a quadratic complexity vowel probe or Cauchy matrix m ', ie, O ((m') 2 ), where z. B. the proposed algorithm can be used.
Die Erfindung erlaubt das Einsparen einer bedeutenden Anzahl an Operationen für das Decodieren von Codes basierend auf konkatenierten MDS Codes und Fountain Codes. Die Komplexitätsverringerung wird erreicht durch Ausnutzen der Struktur der Matrizen des MDS Codes.The invention allows to save a significant number of operations for decoding codes based on concatenated MDS codes and fountain codes. The complexity reduction is achieved by exploiting the structure of the matrices of the MDS code.
Im Folgenden werden bevorzugte Ausführungsformen der Erfindung im Kontext der Figuren erläutert:In the following, preferred embodiments of the invention are explained in the context of the figures:
Das Szenario der vorliegenden Erfindung, d. h. Packet Level Coding mit konkatenierten MDS Codes (Vandermonde/Cauchy-Matrix-basierten Codes) und Fountain Codes, ist in
Im Folgenden wird ein konkretes Beispiel für die Berechnung der inversen einer Vandermonde Matrix beschrieben:
Es wird die folgende Vandermonde Matrix V(3) über GF(4) betrachtet, die mit dem primitiven Polynom p(x) = x2 + x + 1 generiert wurde. Die Inverse von V(3), V–1 = U–1L–1 muss gefunden werden, In the following a concrete example for the calculation of the inverse of a Vandermonde matrix is described:
Consider the following Vandermonde matrix V (3) over GF (4) generated with the primitive polynomial p (x) = x 2 + x + 1. The inverse of V (3) , V -1 = U -1 L -1 must be found
Somit, x1 = α0 = 1, x2 = α' = α, x3 = α2.Thus, x 1 = α 0 = 1, x 2 = α '= α, x 3 = α 2 .
Zuerst muss L–1 gefunden werden, gemäß dem vorgestellten Verfahren, ergibt dies: First, L -1 must be found, according to the presented procedure, this yields:
Nun soll U–1 berechnet werden. Gemäß dem vorgestellten Verfahren ergibt dies: Now let U -1 be calculated. According to the presented method this results in:
Dies ergibt This results
Es jetzt einfach festzustellen, dass V–1·V = I, wobei I eine 3 × 3 Identitätsmatrix ist. Die Inverse von V wurde gefunden.It is now easy to see that V -1 · V = I, where I is a 3 × 3 identity matrix. The inverse of V was found.
Die Form, in die die Matrix G ~T des Systems umgeschrieben werden kann, ist auf der linken Seite der
Eine detaillierte Beschreibung der Erfindung wurde bereits gegeben. Die abgeleiteten Gleichungen für die Anzahl der benötigten Operationen für den vorgeschlagenen Decodieralgorithmus wurden in SW implementiert. Ein Vergleich des Standes der Technik mit der Erfindung wurde durchgeführt. Nun wird das folgende Beispiel für das Prüfen der Komplexität betrachtet.A detailed description of the invention has already been given. The derived equations for the number of operations required for the proposed decoding algorithm have been implemented in SW. A comparison of the prior art with the invention was made. Now consider the following example for checking the complexity.
Wir betrachten einen konkatenierten RS(255, 191) erzeugt in GF(256) mit einem Linear Random Fountain Code über GF(256), sodass die Ordnung des Galois Felds, in dem gearbeitet wird q = 256 ist. Somit ist k = 191, n = 255, q = 256. Es wird ausgegangen von L = 40 Bits, was eine Blockgröße von 3GPP/UMTS Turbo Codes ist. Es wird angenommen, dass m' = 187 ist und somit m = 191. Es wird die Komplexität des vorgeschlagenen Decodierverfahrens mit dem Stand der Technik, z. B. einem Gauss'schen Elimination Algorithmus verglichen.Consider a concatenated RS (255, 191) generated in GF (256) with a Linear Random Fountain Code over GF (256), so that the order of the Galois field in which q is worked is 256. Thus, k = 191, n = 255, q = 256. It is assumed that L = 40 bits, which is a block size of 3GPP / UMTS turbo codes. It is assumed that m '= 187, and thus m = 191. The complexity of the proposed prior art decoding method, e.g. B. compared to a Gaussian elimination algorithm.
Die Ergebnisse wurden berechnet gemäß den präsentierten Gleichungen und sind wiedergegeben in Tabelle I.The results were calculated according to the presented equations and are given in Table I.
Tabelle I. Komplexitätsvergleich für das präsentierte Beispiel im Hinblick auf die Gesamtanzahl der Operationen N = Na + Nm. RS(255, 191) + LRFC über GF(256), q = 256, L = 40 bits, m' = 187. Stand der Technik vs. Erfindung. Table I. Complexity comparison for the presented example with respect to the total number of operations N = N a + N m . RS (255, 191) + LRFC over GF (256), q = 256, L = 40 bits, m '= 187. Invention.
Es ist zu beachten, dass für dieses Beispiel die Erfindung die Anzahl der im Stand der Technik benötigten Operationen um 84% reduziert.It should be noted that for this example, the invention reduces the number of operations required in the prior art by 84%.
Der vorgeschlagene Decodieralgorithmus kann verwendet in allen Arten von kommerziellen kabellosen und kabelgebundenen Übertragungssystemen, wie in der Satelittenkommunikation, der Kommunikation via Internet etc.The proposed decoding algorithm can be used in all types of commercial wireless and wired transmission systems, such as satellite communication, internet communication, etc.
Wie gezeigt wurde, erlaubt das vorgeschlagene Decodierverfahren, eine wesentliche Reduzierung der Komplexität des Decodieralgorithmus aus dem Stand der Technik, sodass konkatenierte Schemata basierend auf MDS Codes (z. B. Reed-Solomon Codes) und Fountain Codes (z. B. LRFC, LT Codes, Raptor Codes) auch auf Plattformen mit niedriger Rechenleistung ausgeführt werden können.As has been shown, the proposed decoding method allows a substantial reduction in the complexity of the prior art decoding algorithm, so that concatenated schemes based on MDS codes (e.g., Reed-Solomon codes) and fountain codes (e.g., LRFC, LT Codes, Raptor codes) can also be executed on platforms with low computing power.
Claims (8)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102012004273.6A DE102012004273B4 (en) | 2012-03-01 | 2012-03-01 | Procedure for recovering lost and / or corrupted data |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102012004273.6A DE102012004273B4 (en) | 2012-03-01 | 2012-03-01 | Procedure for recovering lost and / or corrupted data |
Publications (2)
Publication Number | Publication Date |
---|---|
DE102012004273A1 DE102012004273A1 (en) | 2013-09-05 |
DE102012004273B4 true DE102012004273B4 (en) | 2014-07-03 |
Family
ID=48984957
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102012004273.6A Expired - Fee Related DE102012004273B4 (en) | 2012-03-01 | 2012-03-01 | Procedure for recovering lost and / or corrupted data |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE102012004273B4 (en) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050138533A1 (en) * | 2003-09-29 | 2005-06-23 | Canon Kabushiki Kaisha | Encoding/decoding device using a reed-solomon encoder/decoder |
US20060212782A1 (en) * | 2005-03-15 | 2006-09-21 | Microsoft Corporation | Efficient implementation of reed-solomon erasure resilient codes in high-rate applications |
DE102010029113A1 (en) * | 2010-05-19 | 2011-11-24 | Deutsches Zentrum für Luft- und Raumfahrt e.V. | Method for channel encoding of digital data in transmission system, involves determining random linear combination of code symbols by combining code symbols of block code and linear random fountain code |
-
2012
- 2012-03-01 DE DE102012004273.6A patent/DE102012004273B4/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050138533A1 (en) * | 2003-09-29 | 2005-06-23 | Canon Kabushiki Kaisha | Encoding/decoding device using a reed-solomon encoder/decoder |
US20060212782A1 (en) * | 2005-03-15 | 2006-09-21 | Microsoft Corporation | Efficient implementation of reed-solomon erasure resilient codes in high-rate applications |
DE102010029113A1 (en) * | 2010-05-19 | 2011-11-24 | Deutsches Zentrum für Luft- und Raumfahrt e.V. | Method for channel encoding of digital data in transmission system, involves determining random linear combination of code symbols by combining code symbols of block code and linear random fountain code |
Non-Patent Citations (1)
Title |
---|
L. R. TURNER: Inverse of the Vandermonde Matrix with Applications. In: NASA Technical Note, 1966, S. 1-14 * |
Also Published As
Publication number | Publication date |
---|---|
DE102012004273A1 (en) | 2013-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE102009017540B4 (en) | Procedure for recovering lost and / or damaged data | |
DE602005003767T2 (en) | METHOD FOR COMPRESSING A LOT OF CORRELED SIGNALS | |
DE102010035210B4 (en) | Method for recovering lost data and correcting corrupted data | |
DE60301970T2 (en) | Method and apparatus for weighted, non-binary repetitive coding and space-time coding | |
DE102012200197B4 (en) | Device and method for error correction and protection against data corruption | |
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 | |
DE102012004273B4 (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 | |
DE102013219088B9 (en) | Circuit arrangement and method for realizing check bit compaction for cross-parity codes | |
DE102014204828B4 (en) | Procedure for recovering lost and / or corrupted data | |
DE102013218311B4 (en) | Procedure for recovering lost and / or damaged data | |
DE102013219863B4 (en) | A method of transmitting a message from a sender to a receiver via a communication medium using packet-level encoding | |
DE102013213778B3 (en) | A method for transmitting a message from a transmitter to a receiver via a communication medium by means of packet-level coding | |
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 | |
DE102010029113B4 (en) | Method for channel coding of digital data | |
DE102013223813B4 (en) | Procedures for recovering lost and / or corrupted data | |
DE102016201408B4 (en) | Method for transmitting data | |
DE102013223413B4 (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 | |
DE102014203098B4 (en) | Procedure for recovering lost and / or corrupted data | |
DE102014215478B4 (en) | Method for transmitting 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 | |
DE102014210955B4 (en) | Procedure for recovering lost and / or corrupted data | |
DE102005003914B3 (en) | Error protection method and error correction method, as well as error protection device and error correction device | |
DE102013223801B4 (en) | Procedure for recovering lost and / or corrupted data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R012 | Request for examination validly filed | ||
R016 | Response to examination communication | ||
R016 | Response to examination communication | ||
R018 | Grant decision by examination section/examining division | ||
R020 | Patent grant now final | ||
R119 | Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee |