DE102012220334B3 - Method for restoring lost and corrupted data transmitted from transmission apparatus to receiver, involves performing calculation-, transmission and stopping processes until number of iterations is reached such that window position is moved - Google Patents
Method for restoring lost and corrupted data transmitted from transmission apparatus to receiver, involves performing calculation-, transmission and stopping processes until number of iterations is reached such that window position is moved Download PDFInfo
- Publication number
- DE102012220334B3 DE102012220334B3 DE201210220334 DE102012220334A DE102012220334B3 DE 102012220334 B3 DE102012220334 B3 DE 102012220334B3 DE 201210220334 DE201210220334 DE 201210220334 DE 102012220334 A DE102012220334 A DE 102012220334A DE 102012220334 B3 DE102012220334 B3 DE 102012220334B3
- Authority
- DE
- Germany
- Prior art keywords
- window
- check
- node
- variable
- 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.)
- Active
Links
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/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/11—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 using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1111—Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
-
- 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/11—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 using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1148—Structural properties of the code parity-check or generator matrix
- H03M13/1154—Low-density parity-check convolutional codes [LDPC-CC]
-
- 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/39—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
- H03M13/3972—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using sliding window techniques or parallel windows
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Error Detection And Correction (AREA)
Abstract
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.
Verschiedene Fehlerkorrekturverfahren sind aus dem Stand der Technik bekannt. Zum Beispiel ist es möglich, LDPC-Codes zum Wiederherstellen beschädigter Daten zu verwenden.Various error correction methods are known in the art. For example, it is possible to use LDPC codes to recover corrupted data.
LDPC-Codes sind lineare Blockcodes gekennzeichnet durch eine dünnbesetzte Parity-Check-Matrix H. Sie wurden 1963 zuerst durch Gallager eingeführt [R. G. Gallager, ”Low-density parity-check codes,” Ph. D. dissertation, Cambridge, M. I. T., Massachusetts, 1963.]. LDPC-Codes können durch H oder durch seine zugeordnete Erzeugermatrix G codiert werden. Tanner hat eine grafische Darstellung von LDPC-Codes eingeführt, die als Tanner-Graph bezeichnet wird und die zum Durchführen von interativem Decodieren von LDPC-Codes nützlich ist [R. Tanner, ”A recursive approach to low complexity codes,” Information Theory, IEEE Transactions on, vol. 27, Nr. 5, Seiten 533–547, September 1981].LDPC codes are linear block codes characterized by a sparsely populated parity check matrix H. They were first introduced in 1963 by Gallager [R. G. Gallager, "Low density parity-check codes," Ph.D. dissertation, Cambridge, M.I.T., Massachusetts, 1963.]. LDPC codes can be coded by H or its associated generator matrix G. Tanner has introduced a graphical representation of LDPC codes, referred to as the Tanner graph, which is useful for performing interactive decoding of LDPC codes [R. Tanner, "A recursive approach to low complexity codes," Information Theory, IEEE Transactions on, vol. 27, No. 5, pages 533-547, September 1981].
Ein komplett anderer Ansatz des Decodierens wurde 1955 durch Elias eingeführt, mit der Einführung von Convolutional-Codes [P. Elias, ”Coding for noisy channels,” Proc. IRE Conv. Rec, part 4, Seiten 37–46, 1955]. Er schlug vor, Bits nicht blockweise in unkorrelierter Weise zu codieren, wie es in Blockcodes der Fall ist, sondern sie kontinuierlich mit einem Encoder zu codieren, der einen Speicher ms aufweist.A completely different approach to decoding was introduced in 1955 by Elias, with the introduction of convolutional codes [P. Elias, "Coding for noisy channels," Proc. IRE Conv. Rec,
Low-Density-Parity-Check-Codes wurden zuerst eingeführt in [A. Jimenez Felstrom and K. Zigangirov, ”Time-varying periodic convolutional codes with low-density parity-check matrix,” Information Theory, IEEE Transactions on, vol. 45, Nr. 6, Seiten 2181–2191, September 1999] und sie vereinen in einem einzigen Coding-Verfahren die Stärken sowohl von Convolutional- als auch von LDPC-Codes. Eine dünnbesetzte Parity-Check-Matrix mit unendlicher Länge ist einem LDPCCC zugeordnet. Jedoch kann der Encoder eines LDPCCC nach L Zeiteinheiten gestoppt werden, sodass ein terminierter LDPCCC erzeugt wird, dem eine dünnbesetzte Parity-Check-Matrix endlicher Länge zugeordnet ist. Der Vorgang des Anhaltens des Encoders nach L Zeiteinheiten wird Termination genannt. Termination hat bestimmte Vorteile, wobei einer von diesen die Tatsache ist, dass die Blocklänge eines solchen Encoders im laufenden Betrieb angepasst werden kann, indem entschieden wird, die Terminierung früher oder später vorzunehmen, d. h. durch Auswahl eines unterschiedlichen L, das als Terminationsfaktor bezeichnet wird. Es wurde für den Binary-Erasure-Channel (BEC) bewiesen in [S. Kudekar, T. Richardson, and R. Urbanke, ”Threshold saturation via spatial coupling: Why convolutional LDPC ensembles perform so well over the BEC,” IEEE Transactions an Information Theory, vol. 57, Nr, 2, Seiten 803–834, Februar 2011], dass terminierte LDPCCC unter iterativem Decodieren (IT) mit niedriger Komplexität in der Lage sind die Leistungsfähigkeit von hochkomplexem Maximum A-Posteriori (MAP) Decoding asymptotisch zu erreichen. Dieses Verhalten wird als Grenzwertsättigung bezeichnet. Protograph-basierte terminierte LDPCCC wurden eingeführt in [M. Lentmaier, G. Fettweis, K. S. Zigangirov, and D. Costello, ”Approaching capacity with asymptotically regular LDPC codes,” in Information Theory and Applications, Februar 2009, Seiten 173–177, San Diego, USA], wo bewiesen wurde, dass sie die Kapazität auf dem BEC asymptotisch erreichen. Von Protographen abgeleitete Codes sind vorteilhaft, da ein Protograph in den abgeleiteten Tanner-Graphen eine Struktur generiert und somit die Konstruktion von Encodern und Decodern vereinfacht.Low-density parity check codes were first introduced in [A. Jimenez Felstrom and K. Zigangirov, "Time-varying periodic convolutional codes with low-density parity-check matrix," Information Theory, IEEE Transactions on, vol. 45, No. 6, pages 2181-2191, September 1999] and combine the strengths of both convolutional and LDPC codes in a single coding process. A sparse infinite length parity check matrix is associated with an LDPCCC. However, the LDPCCC encoder may be stopped after L units of time to produce a scheduled LDPCCC associated with a sparse parity check matrix of finite length. The process of stopping the encoder after L time units is called termination. Termination has certain advantages, one of which is the fact that the block length of such an encoder can be adjusted on the fly by deciding to schedule sooner or later; H. by choosing a different L, called the termination factor. It has been proven for the Binary Erasure Channel (BEC) in [p. Kudekar, T. Richardson, and R. Urbanke, "Threshold saturation via spatial coupling: why convolutionally LDPC ensembles perform so well over the BEC," IEEE Transactions on Information Theory, vol. 57, Nr. 2, pp. 803-834, February 2011], that low-complexity iterative decoding (IT) terminated LDPCCCs are capable of asymptotically achieving the performance of highly complex maximum a posteriori (MAP) decoding. This behavior is called threshold saturation. Protograph-based terminated LDPCCC were introduced in [M. Lentmaier, G. Fettweis, KS Zigangirov, and D. Costello, "Approaching capacity with asymptotically regular LDPC codes," in Information Theory and Applications, February 2009, pages 173-177, San Diego, USA], where it has been proved that they reach capacity at the BEC asymptotically. Protograph-derived codes are advantageous because a protograph in the derived Tanner graphs generates a structure and thus simplifies the construction of encoders and decoders.
Die Parity-Check-Martix eines protograph-basierten terminierten LDPCCC ist The parity check martix of a protograph-based scheduled LDPCCC is
Die Hi-Matrizen sind c×(c-b) dünnbesetzte Matrizen wobei jedes Element entweder 0 oder 1 sein kann. The H i matrices are c × (cb) sparse matrices where each element can be either 0 or 1.
Die Parity-Check-Matrix in 1 kann abgeleitet werden von der folgenden protograph-basierten Matrix The parity check matrix in Figure 1 can be derived from the following protograph-based matrix
In den obigen Matrizen wird Bi bezeichnet als die Basismatrix der i-th Komponente mit i = 0, ..., ms. Als ein Beispiel ist Bi = (1 1) zu berücksichtigen.In the above matrices, B i is referred to as the base matrix of the i-th component with i = 0, ..., m s . As an example, consider B i = (1 1).
Kurz gesagt, besteht die Ableitung eines Tannergraphen (und damit eines Codes) von einer Protograph-Basismatrix aus dem Ersetzen jedes nicht-Null-Elements in der Protograph-Basismatrix (2) mit einer Permutationsmatrix der Größe Q×Q (oder mit der Summe mehrerer Permutationsmatrizen). Null-Elemente in (2) werden ersetzt durch eine Null-Matrix der Größe Q×Q. Die Parity-Check-Matrix in (1) ist daher Q Mal größer als die Protograph-Basismatrix in (2). Q wird als Lifting-Faktor bezeichnet.In short, the derivation of a tanner graph (and thus a code) from a prototype base matrix consists of replacing each non-zero element in the protograph base matrix (2) with a Q × Q permutation matrix (or the sum of several permutation). Zero elements in (2) are replaced by a zero matrix of size Q × Q. The parity check matrix in (1) is therefore Q times larger than the protograph base matrix in (2). Q is called a lifting factor.
Es wird der Fall betrachtet, bei dem es auf der Empfängerseite nicht möglich ist, iteratives Decodieren auf dem gesamten Tannergraph auszuführen, der der Parity-Check-Matrix H in (1) zugeordnet ist. Eine Lösung, die im Stand der Technik verfügbar ist, ist ein fensterbasiertes iteratives Decodieren durchzuführen, was durch die Struktur von H ermöglicht wird.Consider the case where it is not possible on the receiver side to perform iterative decoding on the entire tanner graph associated with the parity check matrix H in (1). One solution available in the prior art is to perform window-based iterative decoding, which is enabled by the structure of H.
Im Folgenden wird das herkömmliche iterative Decodieren von LDPC-Codes über einen AWGN-Kanal erklärt.The following explains conventional iterative decoding of LDPC codes over an AWGN channel.
Als ein Beispiel ist die folgende Parity-Check-Matrix zu berücksichtigen As an example, consider the following parity check matrix
Der mit dieser Matrix verbundene Tannergraph ist in
Ein üblicher iterativer Decoder von LDPC-Codes über dem AWGN-Kanal, der logarithmische Wahrscheinlichkeitsverhältnisse (log-likelihood ratios (LLRs)) zwischen VNs und CNs iterativ übermittelt und der auf einer Tannergraph-Repräsentation basiert, kann gemäß den folgenden Schritten zusammengefasst werden [W. E. Ryan, ”An Introduction to LDPC Codes,” in CRC Handbook for Coding and Signal Processing for Recording Systems (B. Vasic, ed.) CRC Press]:
- 1. Berechnen der LLRs, die der vom Kanal kommenden Nachricht zugeordnet sind, an jedem VN
- 2. Berechnen der Ausgangs-LLRs an den VNs
- 3. Senden der Ausgang-LLRs der VNs auf den entsprechenden Kanten an die benachbarten CNs
- 4. Berechnen der Ausgangs-LLRs an den CNs
- 5. Senden der Ausgangs-LLRs der CNs auf den entsprechenden Kanten an die benachbarten VNs
- 6. Springen zu
Schritt 2. für Imax Male - 7. Schätzen des Bit-Wertes, der jedem VN zugeordnet ist
- 1. Calculate the LLRs associated with the message coming from the channel at each VN
- 2. Calculate the output LLRs at the VNs
- 3. Send the output LLRs of the VNs on the corresponding edges to the neighboring CNs
- 4. Calculate the output LLRs at the CNs
- 5. Send the output LLRs of the CNs on the corresponding edges to the neighboring VNs
- 6. Jump to
Step 2. for Imax Male - 7. Estimate the bit value associated with each VN
Im Folgenden wird ein fensterbasierter iterativer Decodieralgorithmus aus dem Stand der Technik erklärt, der benötigt wird, wenn das Decodieren nicht über den gesamten Tannergraph des Codes durchgeführt werden kann. Ein fensterbasiertes iteratives Decodieren kann implementiert werden aufgrund der Diagonalstruktur der Parity-Check-Matrizen des protograph-basierten terminierten LDPCCC in (1). Als ein Beispiel ist die Parity-Check-Matrix eines protograph-basierten terminierten LDPCCC in
Zunächst wird eine gegebene Anzahl aufeinanderfolgender Check-Nodes ausgewählt, von denen ausgegangen wird, dass sie sich innerhalb des Fensters befinden. Für diese Check-Nodes werden die zugehörigen Variable-Nodes, die in die Parity-Check Gleichungen involviert sind, ausgewählt. Iteratives Decodieren wird dann mit dieser reduzierten Anzahl an Knoten ausgeführt, die sich innerhalb des Fensters befinden (Teil des Tannergraphen), gemäß den vorher vorgestellten Schritten 1 bis 6. Das Fenster bewegt sich zur nächsten Fensterposition (WP) und Schritte 1 bis 6 werden innerhalb der neuen Fensterposition ausgeführt. Das Fenster bewegt sich vorwärts und rückwärts bis zu IFB-Male, entlang aller möglichen Fensterpositionen (was von der Fenstergröße abhängt). Nach jeder Vorwärts- und Rückwärtsiteration werden alle Bit-Werte geschätzt. Wenn alle Parity-Check Gleichungen in H erfüllt sind, wird das Decodieren angehalten. Es ist zu beachten, dass Imax Iterationen bezüglich der Berechnung/des Austausches von LLRs zwischen VNs und CNs innerhalb jeder Fensterposition bis zu 2 IFB-Male durchgeführt werden.First, a given number of consecutive check nodes are selected that are assumed to be within the window. For these check nodes, the associated variable nodes involved in the parity check equations are selected. Iterative decoding is then performed with this reduced number of nodes located within the window (part of the tanner graph) according to
Wenn lange protograph-basierte terminierte LDPCCC verwendet werden (um den Grenzwertsättigungseffekt auszunutzen) und der Empfänger die Implementierung eines fensterbasierten Decoders erfordert, um die Nachrichten, z. B. LLRs, zu verarbeiten, die vom AWGN-Kanal kommen, kann die Decodierzeit immernoch groß sein und Delay kann immernoch ein wichtiges Thema sein.When long protograph-based scheduled LDPCCC is used (to exploit the threshold saturation effect) and the receiver requires the implementation of a window-based decoder to process the messages, e.g. For example, to process LLRs coming from the AWGN channel, the decoding time may still be high and delay may still be an important issue.
Die Druckschrift ”N. ul Hassan, M. Lentmaier and G. Fettweis: ”Comparison of LDPC Convolutional Codes Based an their Decoding Latency”. Proceedings of the 7th International Symposium on Turbo Codes & Related Topics (ISTC'12), Gothenburg, Sweden, 27.8.–31.8.2012” beschreibt ein Verfahren zum Wiederherstellen beschädigter Daten. Hierbei werden LDPC Blockcodes und LDPC Convolutionscodes verglichen.The publication "N. ul Hassan, M. Lentmaier and G. Fettweis: "Comparison of LDPC Convolutional Codes Based on their Decoding Latency". Proceedings of the 7 th International Symposium on Turbo Codes & Related Topics (ISTC'12), Gothenburg, Sweden, 27.8.-31.8.2012 "describes a method for restoring corrupted data. Here, LDPC block codes and LDPC convolution codes are compared.
Es ist eine Aufgabe der vorliegenden Erfindung ein Verfahren zum Wiederherstellen von verlorengegangenen und/oder beschädigten Daten mit einer verringerten Decodierzeit und/oder Delay bereitzustellen.It is an object of the present invention to provide a method for recovering lost and / or corrupted data with reduced decoding time and / or delay.
Diese Aufgabe wird erreicht durch die Merkmale des Anspruchs 1 der Erfindung.This object is achieved by the features of
Das erfindungsgemäße Verfahren wird verwendet zum Übertragen von Daten von einer Sendevorrichtung zu einer Empfangsvorrichtung und umfasst die folgenden Verfahrensschritte:
Codieren dieser Daten unter Verwendung eines Encoders, der mit der Sendevorrichtung verbunden ist unter Verwendung der Parity-Check-Matrix eines Low-Density-Parity-Check-Convolutional-Code (LDPCCC),
Übertragen dieser Daten von der Sendevorrichtung zu der Empfangsvorrichtung über einen Übertragungskanal, und
Decodieren dieser Daten unter Verwendung eines Decoders, der mit der Empfangsvorrichtung verbunden ist, wobei verlorengegangene und/oder beschädigte Daten während des Decodierens durch Verwendung der Parity-Check-Matrix des LDPCCC wiederhergestellt werden.The method according to the invention is used for transmitting data from a transmitting device to a receiving device and comprises the following method steps:
Encoding this data using an encoder connected to the transmitting device using the Parity Check Matrix of a Low Density Parity Check Convolutional Code (LDPCCC),
Transmitting this data from the transmitting device to the receiving device via a transmission channel, and
Decoding that data using a decoder connected to the receiving device, wherein lost and / or corrupted data is recovered during decoding by using the parity check matrix of the LDPCCC.
Erfindungsgemäß wird das Decodieren gemäß den folgenden Verfahrensschritten durchgeführt:
- a) Definieren eines verschiebbaren Fensters in der Parity-Check-Matrix H des LDPCCC,
- b) Selektieren aller Check Nodes und Variable Nodes, die in dem ausgewählten Fenster vorhanden sind,
- c) Berechnen eines Variable-Node-Wahrscheinlichkeitswertes für jeden Variable-Node innerhalb des definierten Fensters, wobei der Variable-Node-Wahrscheinlichkeitswert die Wahrscheinlichkeit darstellt, dass der Bit-Wert an diesem Variable-
Node 1 und/oder 0 ist, - d) Übermitteln des in Verfahrensschritt c) geschätzten Wahrscheinlichkeitswerts von dem entsprechenden Variable-Node zu allen Check-Nodes innerhalb des Fensters, die durch Kanten mit diesem Variable-Node verbunden sind,
- e) Berechnen eines Check-Node-Wahrscheinlichkeitswerts für jeden Check-Node innerhalb des Fensters, wobei der Check-Node-Wahrscheinlichkeitswert die Wahrscheinlichkeit darstellt, die durch diesen Check-Node präsentierte Gleichung erfüllt ist,
- f) Übermitteln des im Verfahrensschritt e) geschätzten Wahrscheinlichkeitswerts von dem jeweiligen Check-Node zu allen Variable-Nodes innerhalb des Fensters, die durch Kanten mit diesem Check-Node verbunden sind,
- g) Schätzen der Bit-Werte, die den Variable-Nodes innerhalb des Fensters zugeordnet sind,
- h) wenn die geschätzten Bit-Werte die Parity-Check Gleichungen in der aktuellen Fensterposition erfüllen, Anhalten der Iteration innerhalb des Fensters und Anhalten des Verschiebens des Fensters,
- i) andernfalls Wiederholen der Verfahrensschritte c) bis h), bis eine maximale Anzahl an Iterationen Imax erreicht ist,
- j) Verschieben der Fensterposition.
- a) Defining a movable window in the parity check matrix H of the LDPCCC,
- b) Selecting all check nodes and variable nodes that are present in the selected window,
- c) calculating a variable node probability value for each variable node within the defined window, the variable node probability value representing the probability that the bit value at that variable node is 1 and / or 0,
- d) transmitting the likelihood value estimated in step c) from the corresponding variable node to all check nodes within the window connected by edges to that variable node,
- e) calculating a check-node probability value for each check-node within the window, the check-node probability value representing the probability that the equation presented by that check-node is satisfied;
- f) transmission of the probability value estimated in method step e) from the respective check node to all variable nodes within the window which are connected by edges to this check node,
- g) estimating the bit values associated with the variable nodes within the window,
- h) if the estimated bit values satisfy the parity-check equations in the current window position, stopping the iteration within the window, and pausing the movement of the window,
- i) otherwise repeating the method steps c) to h) until a maximum number of iterations I max has been reached,
- j) move the window position.
Die bisher beschriebenen Verfahrensschritte werden innerhalb einer Fensterposition ausgeführt. Nachdem diese Verfahrensschritte a) bis i) abgeschlossen sind (einschließlich aller notwendigen Iterationen innerhalb dieser Fensterposition), bewegt sich dieses Fenster zu der nächsten Position innerhalb der Parity-Check-Matrix. Es ist bevorzugt, dass nach jeder Vorwärts- und Rückwärtsbewegung des Fensters die Bit-Werte, die allen Variable-Nodes zugeordnet sind, geschätzt werden. Wenn die geschätzten Bit-Werte alle Parity-Check-Gleichungen in der Parity-Check-Matrix H erfüllen, wird die Vorwärts- und Rückwärtsbewegung des verschiebbaren Fensters angehalten, da das Decodieren erfolgreich durchgeführt wurde. Wenn nicht alle Parity-Check Gleichungen der Parity-Check-Matrix H erfüllt sind, beginnt der Algorithmus erneut von Anfang an.The method steps described so far are executed within a window position. After these process steps a) to i) are completed (including all necessary iterations within this window position), this window moves to the next position within the parity check matrix. It is preferred that after each forward and backward movement of the window, the bit values associated with all variable nodes be estimated. If the estimated bit values satisfy all the parity check equations in the parity check matrix H, the forward and backward movement of the scrollable window is halted since the decoding was successfully performed. If not all parity check equations of the parity check matrix H are satisfied, the algorithm starts again from the beginning.
Somit schlägt das erfindungsgemäße Verfahren einen verbesserten iterativen Decodieralgorithmus vor, der besonders geeignet ist für protograph-basierte terminierte LDPCCC's auf einem Additive White Gaussian Noise (AWGN) Kanal basierend auf einem Ansatz mit einem verschiebbaren Fenster. Ein Ansatz mit einem verschiebbaren Fenster kann notwendig sein, wenn der Empfänger nicht in der Lage ist, iteratives Decodieren auf der gesamten Tannergraph-Repräsentation der Parity-Check-Matrix des Codes auszuführen.Thus, the method of the present invention proposes an improved iterative decoding algorithm that is particularly suitable for protograph-based scheduled LDPCCC's on an additive white gaussian noise (AWGN) channel based on a sliding window approach. A sliding window approach may be necessary if the receiver is unable to perform iterative decoding on the entire tannograph representation of the code's parity check matrix.
Somit wurde ein effizienter Decodieralgorithmus vorgeschlagen, der es möglich macht, lange Codes auf dem AWGN-Kanal zu decodieren, um den Grenzwertsättigungseffekt, der von Binary-Erasure-Channels bekannt ist, auszunutzen.Thus, an efficient decoding algorithm has been proposed that makes it possible to decode long codes on the AWGN channel to exploit the threshold saturation effect known from binary erasure channels.
Die Tatsache, dass die Grenzwertsättigung auch auf dem AWGN-Kanal sichtbar ist, wurde für lange Codes gezeigt in [David G. M. Mitchell, Michael Lentmaier, and Daniel J. Costello, Jr.” AWGN channel analysis of terminated LDPC convolutional codes”, in Proceedings of the Information Theory and Applications Workshop (ITA'11), San Diego, USA, 2011]. The fact that the cutoff saturation is also visible on the AWGN channel has been shown for long codes in [David GM Mitchell, Michael Lentmaier, and Daniel J. Costello, Jr., "AWGN channel analysis of terminated LDPC convolutional codes" in Proceedings of the Information Theory and Applications Workshop (ITA'11), San Diego, USA, 2011].
Ein Hauptmerkmal der Erfindung ist die Entscheidung, die Iterationen der Wahrscheinlichkeitswerte von den Variable-Nodes zu den Check-Nodes und umgekehrt innerhalb des Fensters anzuhalten, wenn eine Voraussetzung der Variable-Nodes innerhalb des Fensters erfüllt ist. Dieser Ansatz reduziert erheblich die Decodierzeit mit vernachlässigbarem Verlust im Hinblick auf die Leistungsfähigkeit verglichen mit dem fensterbasierte Decodieralgorithmus aus dem Stand der Technik.A key feature of the invention is the decision to halt the iterations of the likelihood values from the variable nodes to the check nodes and vice versa within the window if a condition of the variable nodes within the window is met. This approach significantly reduces decoding time with negligible loss in performance compared to the prior art window-based decoding algorithm.
Durch Verwendung des erfindungsgemäßen Decodieralgorithmus kann die Decodierzeit von fensterbasierten Decodieralgorithmen aus dem Stand der Technik reduziert werden.By using the decoding algorithm of the present invention, the decoding time of prior art window-based decoding algorithms can be reduced.
Details bezüglich dieser Verringerung der Decodierzeit werden später erklärt basierend auf Vergleichen, die durch den Anmelder durchgeführt wurden.Details regarding this reduction in decoding time will be explained later based on comparisons made by the applicant.
In einer bevorzugten Ausführungsform wird der folgende vorausgehende Schritt vor den Verfahrensschritten a) bis j) ausgeführt:
Eine Fenstergröße (WS), die die Anzahl der Zeilen der Parity-Check-Matrix innerhalb dieses Fensters wiedergibt, wird definiert.In a preferred embodiment, the following preliminary step is performed prior to method steps a) to j):
A window size (WS) that reflects the number of rows of the parity check matrix within this window is defined.
In einer weiteren bevorzugten Ausführungsform wird der folgende vorausgehende Schritt vor den Verfahrensschritten a) bis j) ausgeführt:
Die maximale Anzahl an Iterationen Imax für jede Fensterposition wird definiert.In a further preferred embodiment, the following preliminary step is carried out before the method steps a) to j):
The maximum number of iterations I max for each window position is defined.
In einer weiteren bevorzugten Ausführungsform wird der folgende vorausgehende Schritt vor den Verfahrensschritten a) bis j) ausgeführt:
Die Anzahl der Male IFB, für die das verschiebbare Fenster in der Parity-Check-Matrix vorwärts und rückwärts bewegt wird, wird definiert. Es ist ferner bevorzugt, dass ein protograph-basierter LDPCCC für das Codieren und Decodieren verwendet wird. Es ist ferner bevorzugt, dass ein protograph-basierter terminierter LDPCCC verwendet wird.In a further preferred embodiment, the following preliminary step is carried out before the method steps a) to j):
The number of times I FB for which the scrollable window in the parity check matrix is moved forward and backward is defined. It is further preferred that a protograph-based LDPCCC is used for encoding and decoding. It is further preferred that a protograph-based terminated LDPCCC is used.
In einer bevorzugten Ausführungsform werden Daten vom Sender zum Empfänger über einen AWGN-Kanal übermittelt, sodass der Decodieralgorithmus, der in dieser Anmeldung vorgeschlagen wird, angewendet wird auf der Bitübertragungsschicht.In a preferred embodiment, data is transmitted from the sender to the receiver over an AWGN channel, so that the decoding algorithm proposed in this application is applied to the physical layer.
Es ist ferner bevorzugt, dass der Wahrscheinlichkeitswert, der zwischen den Check-Nodes und Variable-Nodes ausgetauscht wird, ein logarithmisches Wahrscheinlichkeitsverhältnis ist.It is further preferred that the probability value exchanged between the check nodes and variable nodes is a log-likelihood ratio.
Im Folgenden werden bevorzugte Ausführungsformen der Erfindung im Kontext der Figuren erläutert.In the following, preferred embodiments of the invention will be explained in the context of the figures.
Die Figuren zeigen:The figures show:
Das Problem, das in der vorliegenden Patentanmeldung behandelt wird, betrifft die Übertragung von k Bits, die einem Vektor der Länge k zugeordnet sind, in
Der erfindungsgemäße Algorithmus kann folgendermaßen definiert werden: Algorithmus startet
- Berechnen der Ausgangs-LLRs an den VNs innerhalb des Fensters
- Senden der Ausgang-LLRs der VNs innerhalb des Fensters auf der entsprechenden Kante zu den benachbarten CNs, die sich innerhalb des Fensters befinden
- Berechnen der Ausgangs-LLRs an den CNs innerhalb des Fensters
- Senden der Ausgangs-LLRs der CNs innerhalb des Fensters auf den entsprechenden Kanten an die benachbarten VNs innerhalb des Fensters
- Schätzen der Bit-Werte, die den VNs in der aktuellen Fensterposition zugeordnet sind
- Wenn die geschätzten Bit-Werte die Parity-Check Gleichungen in der aktuellen Fensterposition erfüllen, Anhalten der Iteration innerhalb des Fensters und Bewegen zu der nächsten Fensterposition
- Calculate the output LLRs at the VNs within the window
- Sending the output LLRs of the VNs within the window on the corresponding edge to the neighboring CNs that are within the window
- Calculate the output LLRs on the CNs within the window
- Sending the output LLRs of the CNs within the window on the corresponding edges to the neighboring VNs within the window
- Estimate the bit values associated with the VNs in the current window position
- If the estimated bit values satisfy the parity-check equations in the current window position, pause the iteration within the window and move to the next window position
Nach jeder Vorwärts- und Rückwärtsbewegung des Fensters, Schätzen der Bit-Werte, die allen VNs zugeordnet sind.After each forward and backward movement of the window, estimate the bit values associated with all the VNs.
Wenn die geschätzten Bit-Werte alle Parity-Check Gleichungen in H erfüllen, Unterbrechen von Loop 1 (Anhalten der Vorwärts- und Rückwärtsiteration), weil das Decodieren erfolgreich durchgeführt wurde. Andernfalls fortführen mit Loop 1
End Loop 1If the estimated bit values satisfy all the parity-check equations in H, interrupting Loop 1 (stopping the forward and reverse iteration) because the decode was successfully completed. Otherwise, continue with
Ein Beispiel der Gleichungen der Parity-Check-Matrix H, die innerhalb einer Fensterposition enthalten sind, ist in
Die Gleichungen, die in der aktuell dargestellten Fensterposition enthalten sind, sind markiert. Jedes Quadrat in der Figur stellt eine Permutationsmatrix der Größe Q×Q dar.The equations contained in the currently displayed window position are marked. Each square in the figure represents a permutation matrix of size Q × Q.
Der fensterbasierte Decodieralgorithmus für protograph-basierte terminierte LDPCCC wurde in SW inplementiert. Ein Vergleich des Standes der Technik mit der Erfindung wurde basierend auf den folgenden Code ausgeführt, der als Beispiel erzeugt wurde.The window-based decoding algorithm for protograph-based scheduled LDPCCC was implemented in SW. A comparison of the prior art with the invention was made based on the following code, which was created as an example.
Beispiel: Es wird ein protograph-basierter terminierter LDPCCC mit den folgenden Parametern betrachtet:
- – Bi = (1 1)
- – memory ms = 2
- – Protograph B in (2) der Größe 18×32
- – Eine Circulant Size Q = 64,
- – Parity-Check-Matrix in (1) der Größe 1152×2048
- - B i = (1 1)
- - Memory m s = 2
- - Protograph B in (2) size 18 × 32
- - A Circulant Size Q = 64,
- - parity check matrix in (1) size 1152 × 2048
Es werden die folgenden Decodierparameter betrachtet:
IFB = 100, Imax = 50, WS = 8The following decoding parameters are considered:
I FB = 100, I max = 50, W S = 8
Es ist zu beachten, dass der vorgeschlagene iterative fensterbasierte Decodieralgorithmus eine Leistung liefert, die vergleichbar ist mit dem iterativen fensterbasierten Decodieralgorithmus aus dem Stand der Technik.It should be noted that the proposed iterative window-based decoding algorithm provides performance comparable to the prior art iterative window-based decoding algorithm.
Ferner wurde die Geschwindigkeit für beide Algorithmen gemessen, die nötig war, um die Ergebnisse in
Das vorgeschlagene Verfahren kann in allen Arten von kommerziellen drahtlosen und drahtgebundenen Übertagungssystemen verwendet werden. Wie gezeigt wurde, erlaubt das vorgeschlagene Verfahren, die Decodierzeit für protograph-basierte terminierte LDPCCC auf dem AWGN-Kanal zu verringern. Die Erfindung macht die vorgeschlagenen Codes praktisch und implementierbar.The proposed method can be used in all types of commercial wireless and wireline transmission systems. As shown, the proposed method allows to reduce the decoding time for protograph-based terminated LDPCCC on the AWGN channel. The invention makes the proposed codes practical and implementable.
Claims (8)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE201210220334 DE102012220334B3 (en) | 2012-11-08 | 2012-11-08 | Method for restoring lost and corrupted data transmitted from transmission apparatus to receiver, involves performing calculation-, transmission and stopping processes until number of iterations is reached such that window position is moved |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE201210220334 DE102012220334B3 (en) | 2012-11-08 | 2012-11-08 | Method for restoring lost and corrupted data transmitted from transmission apparatus to receiver, involves performing calculation-, transmission and stopping processes until number of iterations is reached such that window position is moved |
Publications (1)
Publication Number | Publication Date |
---|---|
DE102012220334B3 true DE102012220334B3 (en) | 2013-11-28 |
Family
ID=49547245
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE201210220334 Active DE102012220334B3 (en) | 2012-11-08 | 2012-11-08 | Method for restoring lost and corrupted data transmitted from transmission apparatus to receiver, involves performing calculation-, transmission and stopping processes until number of iterations is reached such that window position is moved |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE102012220334B3 (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102014215015B3 (en) * | 2014-07-30 | 2015-11-19 | Deutsches Zentrum für Luft- und Raumfahrt e.V. | Procedure for recovering lost and / or corrupted data |
WO2016089157A1 (en) | 2014-12-05 | 2016-06-09 | Samsung Electronics Co., Ltd. | Sc-ldpc codes for wireless communication systems |
CN111865557A (en) * | 2019-04-24 | 2020-10-30 | 杭州萤石软件有限公司 | Check code generation method and device |
EP3713096A4 (en) * | 2017-11-15 | 2021-08-04 | ZTE Corporation | Method and device for decoding staircase code, and storage medium |
-
2012
- 2012-11-08 DE DE201210220334 patent/DE102012220334B3/en active Active
Non-Patent Citations (2)
Title |
---|
N. ul Hassan, M. Lentmaier and G. Fettweis: "Comparison of LDPC Block and LDPC Convolutional Codes Based on their Decoding Latency". Proceedings of the 7th International Symposium on Turbo Codes & Related Topics (ISTC'12), Gothenburg, Sweden, 27.8. - 31.8.2012 * |
N. ul Hassan, M. Lentmaier and G. Fettweis: „Comparison of LDPC Block and LDPC Convolutional Codes Based on their Decoding Latency". Proceedings of the 7th International Symposium on Turbo Codes & Related Topics (ISTC'12), Gothenburg, Sweden, 27.8. - 31.8.2012 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102014215015B3 (en) * | 2014-07-30 | 2015-11-19 | Deutsches Zentrum für Luft- und Raumfahrt e.V. | Procedure for recovering lost and / or corrupted data |
WO2016089157A1 (en) | 2014-12-05 | 2016-06-09 | Samsung Electronics Co., Ltd. | Sc-ldpc codes for wireless communication systems |
KR20170092672A (en) * | 2014-12-05 | 2017-08-11 | 삼성전자주식회사 | Sc-ldpc codes for wireless communication systems |
EP3228034A4 (en) * | 2014-12-05 | 2018-01-03 | Samsung Electronics Co., Ltd. | Sc-ldpc codes for wireless communication systems |
KR102539474B1 (en) * | 2014-12-05 | 2023-06-02 | 삼성전자주식회사 | Sc-ldpc codes for wireless communication systems |
EP3713096A4 (en) * | 2017-11-15 | 2021-08-04 | ZTE Corporation | Method and device for decoding staircase code, and storage medium |
US11184034B2 (en) | 2017-11-15 | 2021-11-23 | Xi'an Zhongxing New Software Co., Ltd. | Method and device for decoding staircase code, and storage medium |
CN111865557A (en) * | 2019-04-24 | 2020-10-30 | 杭州萤石软件有限公司 | Check code generation method and device |
CN111865557B (en) * | 2019-04-24 | 2023-12-05 | 杭州萤石软件有限公司 | Verification code generation method and device |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE60122200T2 (en) | STOP CRITERIA FOR INTERACTIVE DECODING | |
DE602005003767T2 (en) | METHOD FOR COMPRESSING A LOT OF CORRELED SIGNALS | |
DE60001988T2 (en) | Turbo decoding with variable number of iterations | |
DE60113053T2 (en) | Turbo decoder predecoder, for retrieving punctured parity symbols, and a method for recovering a turbo code | |
DE602005002815T2 (en) | Method and apparatus for generating a low-density parity-check (LDPC) code | |
DE602004003324T2 (en) | Method and apparatus for encoding Low Density Parity Check (LDPC) long and short block length codes | |
DE69936908T2 (en) | ITERATIVE DECODING OF PRODUCT CODES | |
DE102012220334B3 (en) | Method for restoring lost and corrupted data transmitted from transmission apparatus to receiver, involves performing calculation-, transmission and stopping processes until number of iterations is reached such that window position is moved | |
DE3910739A1 (en) | METHOD FOR GENERATING THE VITERBI ALGORITHM | |
DE60211413T2 (en) | Method and apparatus for optimizing the size of coded data blocks | |
DE102007035210A1 (en) | Code e.g. convolution code, decoding method, involves evaluating value based on sum of transformed values of bit-to-test nodes-messages for bit nodes minus transformed values of bit-to-test nodes-messages for bit nodes and test nodes | |
DE102015110602A1 (en) | Method and apparatus for iteratively decoding a data transfer structure | |
DE602005004863T2 (en) | Method for puncturing LDPC channel codes | |
DE69908820T2 (en) | FAST, MAXIMUM-A-POSTERIORI DECODING METHOD AND SYSTEM | |
DE102008061069A1 (en) | Retransmission of incorrect data | |
DE10012873A1 (en) | Turbo-decoder for turbo-coded data signals e.g. for mobile radio communications | |
Ul Hassan et al. | Reduced complexity window decoding schedules for coupled LDPC codes | |
DE102014215015B3 (en) | Procedure for recovering lost and / or corrupted data | |
DE102011056132B4 (en) | Method and device for decoding data | |
DE102014204828B4 (en) | Procedure for recovering lost and / or corrupted data | |
WO2001054286A1 (en) | Method for decoding a data signal | |
DE102019200256B4 (en) | Nesters | |
DE60209196T2 (en) | Method and apparatus for optimizing, under power constraints, the size of coded data blocks | |
DE102012223040B3 (en) | Method for restoring missing and/or damaged data transmitted from transmission device to receiving device in communication system, involves concatenating LDPC code with repetition code such that code word is multiplied with coefficient | |
DE102004053656B4 (en) | Method for processing signals according to methods with block-based error protection 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 |
Effective date: 20140301 |