DE10147482A1 - Error correction of data transmitted in optical data transmission systems involves using serially chained, three-dimensional Single Parity Check turbo-code - Google Patents
Error correction of data transmitted in optical data transmission systems involves using serially chained, three-dimensional Single Parity Check turbo-codeInfo
- Publication number
- DE10147482A1 DE10147482A1 DE2001147482 DE10147482A DE10147482A1 DE 10147482 A1 DE10147482 A1 DE 10147482A1 DE 2001147482 DE2001147482 DE 2001147482 DE 10147482 A DE10147482 A DE 10147482A DE 10147482 A1 DE10147482 A1 DE 10147482A1
- Authority
- DE
- Germany
- Prior art keywords
- code word
- decoder
- encoder
- decoders
- spc
- 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.)
- Withdrawn
Links
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/2957—Turbo codes and decoding
- H03M13/296—Particular turbo code structure
- H03M13/2972—Serial concatenation using convolutional component 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/09—Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
-
- 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
-
- 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
- H03M13/2909—Product 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/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
- H03M13/2918—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 with error correction codes in three or more dimensions, e.g. 3-dimensional product code where the bits are arranged in a cube
-
- 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/2957—Turbo codes and decoding
- H03M13/296—Particular turbo code structure
- H03M13/2963—Turbo-block codes, i.e. turbo codes based on block codes, e.g. turbo decoding of product codes
Abstract
Description
Die Erfindung betrifft ein Fehlerkorrekturverfahren bzw. ein entsprechendes System zur Korrektur digitaler Daten, die in einem Datenübertragungssystem, insbesondere einem optischen Übertragungssystem, übertragen werden, gemäß dem Oberbegriff des Patentanspruchs 1 bzw. 9. The invention relates to an error correction method and a Corresponding system for the correction of digital data, which in a data transmission system, in particular an optical one Transmission system to be transmitted, according to the preamble of claims 1 and 9 respectively.
In einem Übertragungssystem werden Daten zwischen einem Sender und einem Empfänger übertragen. Dabei werden die ursprünglich in Form von Rechteckimpulsen eingekoppelten Daten auf ihrem Weg zum Empfänger durch verschiedene Einflüsse verzerrt, so dass es am Empfänger zu einer fehlerhaften Datenrückerkennung, also Bitfehlern kommen kann. In a transmission system, data between one Transmitter and a receiver transmitted. The data originally coupled in the form of rectangular pulses on their way to the recipient through various influences distorted so that it is a faulty at the receiver Data recognition, that is, bit errors can occur.
Um derartige Bitfehler zu minimieren, ist es bekannt, die Daten vor ihrer Übermittlung zu codieren. Dabei werden zusätzliche Bits (check Bits) aus den Informationsdaten erzeugt, die zusammen mit den Informationsdaten übertragen werden. Aus der zusätzlichen Information lassen sich je nach Art des Codes Hinweise auf die Existenz eines oder mehrerer Fehler und auf die Position des bzw. der Fehler herleiten. In order to minimize such bit errors, it is known that Encode data before it is transmitted. In doing so additional bits (check bits) are generated from the information data, which are transmitted together with the information data. Out the additional information can be, depending on the type of Codes indicate the existence of one or more errors and deduce the position of the error (s).
Nach Übertragung der Daten müssen diese empfängerseitig decodiert werden. Hierfür sind eine Reihe von Decodierverfahren bekannt. Eine effektive Methode zur Decodierung von Daten bieten z. B. Turbo-Decodierverfahren für Produktcodes. Turbo- Decodierverfahren wurden zuerst von Pyndiah: R.M. Pyndiah, A. Glavieux, A. Picart, S. Yasq "Near-optimum decoding of product codes" in Proc. of IEEE Globecom 1994 Conference, Nov.-Dec. 1994, San Francisco, 1/3, Seiten 339-343, vorgestellt. After the data have been transferred, they must be received by the recipient be decoded. There are a number of decoding methods for this known. An effective way to decode data offer z. B. Turbo decoding method for product codes. Turbo- Decoding methods were first described by Pyndiah: R.M. Pyndiah, A. Glavieux, A. Picart, S. Yasq "Near-optimum decoding of product codes "in Proc. of IEEE Globecom 1994 Conference, Nov.-Dec. 1994, San Francisco, 1/3, pages 339-343, presented.
Bei Produktcodes handelt es sich um einen mehrdimensionalen Blockcode mit den Parametern (n,k,d,) wobei n die Codewortlänge, k die Anzahl von Informationsbits, und d die minimale Hammingdistanz ist. Product codes are multi-dimensional Block code with the parameters (n, k, d,) where n is the Code word length, k the number of information bits, and d the minimum Hamming distance is.
In Fig. 1 ist ein Beispiel eines zweidimensionalen (n1,k1,d1)×(n2,k2,d2) Produktcodes dargestellt. Dabei enthält das Feld A die Informationsbits, das Feld B die Prüfbits für jeweils eine Reihe von Informationsbits, und das Feld C die Prüfbits für jeweils eine Spalte von Informationsbits. Jede Reihe bzw. Spalte des Produktcodes bildet ein Codewort. In Fig. 1, an example is a two-dimensional (n1, k1, d1) × (n2, k2, d2) product code shown. Field A contains the information bits, field B the check bits for each row of information bits, and field C the check bits for each column of information bits. Each row or column of the product code forms a code word.
Der dargestellte Produktcode ist im übrigen ein sog. voller Produktcode, da auch für die Prüfbits (Felder C,B) eigene Prüfbits vorgesehen sind (Feld D). The product code shown is otherwise a full one Product code, because also for the check bits (fields C, B) own Check bits are provided (field D).
In der oben genannten Veröffentlichung verwendet Pyndiah für beide Dimensionen BCH-Codes. Unter Verwendung eines speziellen Turbo-Decodierverfahrens (basierend auf dem Chase Algorithmus) werden damit gute Resultate bezüglich der Bitfehlerrate erreicht. Trotz der geringen Bitfehlerrate hat der Chase-Algorithmus aber Nachteile wegen seiner hohen Komplexität und ist daher für die Anwendung in optischen Übertragungssystemen nur bedingt geeignet. In the above publication, Pyndiah used for both dimensions BCH codes. Using a special turbo decoding method (based on the chase Algorithm) will give good results in terms of Bit error rate reached. Despite the low bit error rate, the Chase algorithm but disadvantages because of its high complexity and is therefore for use in optical Transmission systems only suitable to a limited extent.
Es ist daher die Aufgabe der vorliegenden Erfindung ein Fehlerkorrekturverfahren sowie ein entsprechendes System zu schaffen, das besonders einfach ist und gleichzeitig minimale Bitfehlerraten ermöglicht. It is therefore an object of the present invention Error correction procedures and a corresponding system too create that is particularly simple and at the same time minimal Bit error rates enabled.
Gelöst wird diese Aufgabe durch die im Patentanspruch 1 bzw. 9 angegebenen Merkmale. Weitere Ausgestaltungen der Erfindung sind Gegenstand von Unteransprüchen. This problem is solved by the in claim 1 or 9 specified characteristics. Further refinements of the invention are the subject of subclaims.
Die Vorteile der Erfindung ergeben sich durch eine Reihe von Maßnahmen, die insgesamt zu einer starken Verbesserung der Bitfehlerrate (Coding Gain) führen. Zunächst wird vorgeschlagen, die zu übertragenden Daten mittels eines verketteten, dreidimensionalen SPC-Produktcodes (SPC: Single Parity Check) zu codieren. Ein entsprechender Codierer umfaßt einen ersten Codierer zum Erzeugen eines dreidimensionalen SPC-Codeworts aus den Informationsdaten, einen Interleaver zum Umgruppieren der Daten, sowie einen zweiten Codierer zum Erzeugen eines dreidimensionalen SPC-Codeworts aus dem vom Interleaver ausgegebenen Codewort. The advantages of the invention result from a number of Measures that greatly improve overall Bit error rate (coding gain). First of all proposed that the data to be transmitted be linked using a chained three-dimensional SPC product codes (SPC: Single Parity Check) to code. A corresponding encoder comprises a first one Encoder for generating a three-dimensional SPC code word from the information data, an interleaver for regrouping of the data, and a second encoder for generating a three-dimensional SPC code word from that of the interleaver output code word.
Die Informationsdaten werden schließlich zusammen mit den erzeugten Paritätsbits über eine Übertragungsstrecke übertragen und empfängerseitig decodiert. Die Decodierung erfolgt mittels eines iterativen Turbo-Decodieralgorithmus, wobei das vom zweiten Codierer erzeugte SPC-Codewort mittels eines zweiten Decodierers und das vom ersten Codierer erzeugte SPC- Codewort mittels eines ersten Decodierers decodiert wird. Dabei wird zwischen den Decodierern extrinsische Information ausgetauscht. The information data will eventually be shared with the generated parity bits transmitted over a transmission link and decoded on the receiver side. The decoding takes place using an iterative turbo decoding algorithm, which SPC code word generated by the second encoder by means of a second decoder and the SPC generated by the first encoder Code word is decoded by means of a first decoder. Thereby extrinsic information is added between the decoders replaced.
Ein erfindungsgemäß aufgebauter Decodierer umfasst somit einen zweiten Decodierer zum Decodieren des vom zweiten Codierer erzeugten SPC-Codeworts, einen ersten Decodierer zum Decodieren des vom ersten Codierer erzeugten SPC-Codeworts, sowie einen Deinterleaver. A decoder constructed according to the invention thus comprises a second decoder for decoding the second Encoder generated SPC code word, a first decoder for Decoding the SPC code word generated by the first encoder, as well as a deinterleaver.
Bei extrinsischer Information handelt es sich um zusätzliche Information, die anhand von Wahrscheinlichkeitsüberlegungen aus den empfangenen Codeworten ermittelt und mit deren Hilfe das empfangene Codewort bei jedem Iterationsschritt modifiziert wird. Extrinsic information is additional Information based on probability considerations determined from the received code words and with their help the code word received at each iteration step is modified.
Zum besseren Verständnis wird das Verfahren im Folgenden
anhand eines Beispiels erläutert, wobei ein Code C mit einer
Längen n angenommen wird. Ein Codewort läßt sich dabei als
ci = (ci1, ci2, . . ., cin) i = 1, 2, . . . 2n-1, und cij ∈ {-1, +1}
darstellen. Jedes Codewort eines SPC-Codes hat eine gerade
Anzahl von +1-Bits. Die SPC-Codeworte für n = 3 sind z. B.:
C1 = (-1, -1, -1)
C2 = (-1, +1, +1)
C3 = (+1, -1, +1)
C4 = (+1, +1, -1)
wobei ci1 und ci2 Informationsbits sind und ci3 das Paritätsbit
ist. Dieses Codewort c wird beispielsweise über ein optisches
Übertragungssystem an einen Empfänger gesendet, wobei es
verzerrt wird.
For a better understanding, the method is explained below using an example, a code C with a length n being assumed. A code word can be c i = (c i1 , c i2 , ... , C in ) i = 1, 2 ,. , , 2 represent n-1 , and c ij ∈ {-1, +1}. Each code word of an SPC code has an even number of +1 bits. The SPC code words for n = 3 are e.g. B .:
C 1 = (-1, -1, -1)
C 2 = (-1, +1, +1)
C 3 = (+1, -1, +1)
C 4 = (+1, +1, -1)
where c i1 and c i2 are information bits and c i3 is the parity bit. This code word c is sent to a receiver via an optical transmission system, for example, whereby it is distorted.
Der am Empfänger erhaltene, verzerrte Vektor läßt sich als
x = (x1, x2, . . . xn), xj = cj + nj, darstellen, wobei {nj}
unabhängige Gausssche Zufallsvariablen mit einem Nullmittelwert und
einer Standardabweichung von σ2 sind. Alle Codeworte haben
die gleiche Wahrscheinlichkeit. Gleiches gilt für die Bits +1
und -1. Aufgrund der Verzerrung werden beispielsweise
folgende Codeworte erhalten:
C1 = (-0,9 -0,2 0,4)
C2 = (0,2 1,3 0,8)
C3 = (0,5 -1 0,3)
C4 = (-0,1 0,7 -1,8)
The distorted vector obtained at the receiver can be represented as x = (x 1 , x 2 ,... X n ), x j = c j + n j , where {n j } independent Gaussian random variables with a zero mean and a Are standard deviation of σ 2 . All code words have the same probability. The same applies to bits +1 and -1. Due to the distortion, the following code words are obtained, for example:
C 1 = (-0.9 -0.2 0.4)
C 2 = (0.2 1.3 0.8)
C 3 = (0.5 -1 0.3)
C 4 = (-0.1 0.7 -1.8)
Aus diesem Code sollen nun die ursprünglichen Daten zurück erkannt werden. Eine Möglichkeit hierfür ist das sog. "Hard decoding" (die direkte Entscheidung für einen Wert - hier +1 oder -1 - aufgrund von Entscheidungsschwellen. Dieses Verfahren ist für die vorliegende Erfindung jedoch weniger von Bedeutung. The original data should now be returned from this code be recognized. One possibility for this is the so-called "hard decoding "(the direct decision for a value - here +1 or -1 - due to decision thresholds. This However, method is less of the present invention Importance.
Der andere Decodieralgorithmus wird als "soft decoding" bezeichnet. Er zeichnet sich dadurch aus, dass erst nach mehreren Iterationsschritten eine Entscheidung (+1 oder -1) getroffen wird und bis dahin mit analogen Werten gerechnet wird, die bei jedem Iterationsschritt gemäß dem angewandten Decodieralgorithmus modifiziert werden. The other decoding algorithm is called "soft decoding" designated. It is characterized by the fact that only after several iteration steps one decision (+1 or -1) is taken and until then analog values are expected which is used in each iteration step according to the Decoding algorithm can be modified.
Zur Durchführung des Decodierverfahrens werden sog.
Softinput-Softoutput-Decodierer verwendet, die ein zugeführtes
Codewort unter Berücksichtigung von extrinsischer Information
modifizieren und selbst extrinsische Information
bereitstellen. Hierbei können verschiedene Decodieralgorithmen
verwendet werden. Der optimale Ausgangswert eines Softinput-
Softoutput-Decodierers kann z. B. mittels eines MAP-
Algorithmus (MAP: Maximum a posteriori) unter Auswertung
eines Wahrscheinlichkeitsverhältnisses LLR (LLR: Log Likelihood
Ratio) berechnet werden, wobei gilt:
To carry out the decoding process, so-called soft input soft output decoders are used which modify a supplied code word taking into account extrinsic information and which themselves provide extrinsic information. Various decoding algorithms can be used here. The optimal output value of a soft input soft output decoder can e.g. B. using a MAP algorithm (MAP: Maximum a posteriori) with evaluation of a probability ratio LLR (LLR: Log Likelihood Ratio), where:
Dabei ist Pr die Wahrscheinlichkeit, dass ein Bit eines
empfangenen Codewortes x gleich +1 bzw. -1 ist. Diese Beziehung
kann auch dargestellt werden als
Pr is the probability that a bit of a received code word x is +1 or -1. This relationship can also be represented as
Der Wert xjext stellt dabei die extrinsische Information dar. The value x jext represents the extrinsic information.
Gemäß einer bevorzugten Ausführungsform der Erfindung wird
anstelle des MAP-Algorithmus ein "Max-Log-Map"-Algorithmus
verwendet, mittels dessen eine zusätzliche Reduzierung des
Signal-Rausch-Verhältnis erreicht werden kann. Dieser "Max-
Log-Map"-Algorithmus ist außerdem wesentlich einfacher
auszuführen. Die extrinsische Information kann nach folgender
Gleichung berechnet werden:
According to a preferred embodiment of the invention, a "Max-Log-Map" algorithm is used instead of the MAP algorithm, by means of which an additional reduction in the signal-to-noise ratio can be achieved. This "max log map" algorithm is also much easier to implement. The extrinsic information can be calculated using the following equation:
Ein erfindungsgemäßer Codierer besteht vorzugsweise aus mehreren, insbesondere drei verketteten Einzelcodierern, die jeweils ein SPC-Codewort für eine Dimension erzeugen. An encoder according to the invention preferably consists of several, in particular three concatenated individual encoders, the generate one SPC code word for each dimension.
Ein erfindungsgemäßer Decodierer umfasst vorzugsweise mehrere, insbesondere drei seriell verkettete Einzeldecodierer. Jeder Einzeldecodierer eines Decodierers erzeugt dabei extrinsische Information, die von den anderen Einzeldecodierern berücksichtigt wird, um ein an deren Eingang zugeführtes Codewort zu modifizieren. A decoder according to the invention preferably comprises several, in particular three, serial-linked individual decoders. Each individual decoder of a decoder generates extrinsic information from others Individual decoders is taken into account in order to be fed to their input Modify code word.
Gemäß einer bevorzugten Ausführungsform der Erfindung wird für die Decodierung ein Soft-Decodierverfahren eingesetzt. Die Einzeldecodierer sind daher vorzugsweise als SISO - (Softinput Softoutput) Decodierer realisiert. According to a preferred embodiment of the invention a soft decoding method is used for the decoding. The individual decoders are therefore preferably SISO - (Softinput softoutput) decoder implemented.
Die Redundanz bei der Codierung ist vorzugsweise kleiner als 25% insbesondere kleiner als 20%. The redundancy in the coding is preferably less than 25% especially less than 20%.
Die Erfindung wird nachstehend anhand der beigefügten Zeichnungen beispielhaft näher erläutert. Es zeigen: The invention is described below with reference to the accompanying Drawings explained in more detail by way of example. Show it:
Fig. 1 ein Beispiel eines zweidimensionalen Produkt- Codeworts; FIG. 1 shows an example of a two-dimensional product code word;
Fig. 2 ein Beispiel eines dreidimensionalen SPC-Produkt- Codeworts; FIG. 2 shows an example of a three-dimensional SPC product codeword;
Fig. 3 eine schematische Darstellung der Erzeugung eines verketteten dreidimensionalen SPC-Codeworts; Fig. 3 is a schematic representation of the generation of a three-dimensional concatenated SPC code word;
Fig. 4 den schematischen Aufbau eines Datenübertragungssystems mit einem Codierer zur Erzeugung eines verketteten dreidimensionalen SPC-Produkt-Codeworts und einem entsprechenden Decodierer; und FIG. 4 shows the schematic structure of a data transmission system comprising an encoder for generating a three-dimensional concatenated SPC product codeword and a corresponding decoder; and
Fig. 5 einen seriell verketteten Decodierer gemäß einem Ausführungsbeispiel der Erfindung. Fig. 5 shows a serial-concatenated decoder according to an embodiment of the invention.
Bezüglich Fig. 1 wird auf die in der Beschreibungseinleitung gemachten Erläuterungen verwiesen. With regard to FIG. 1, reference is made to the explanations given in the introduction to the description.
Fig. 2 zeigt ein typisches Beispiel eines dreidimensionalen SPC-Produkt-Codeworts. Das 3D-Codewort umfasst einen Block A mit Informationsbits, der insgesamt k1×k2×k3 Bits enthält. Jede Zeile (in x- oder z-Richtung) sowie Spalte (in y- Richtung) stellt ein Sub-Codewort dar, das an seiner letzten Stelle ein Paritätsbit aufweist (ni - ki = 1). Die Paritätsbits sind insgesamt mit P1 bezeichnet. Fig. 2 shows a typical example of a three-dimensional SPC product codeword. The 3D code word comprises a block A with information bits, which contains a total of k1 × k2 × k3 bits. Each row (in the x or z direction) and column (in the y direction) represents a sub-code word which has a parity bit in its last position (n i - k i = 1). The parity bits are designated overall by P1.
Ein Paritätsbit ist z. B. 1, wenn das Codewort eine ungerade Anzahl von 1-Bits aufweist und 0, wenn das Codewort eine gerade Anzahl von 1-Bits aufweist. Die Anzahl von 1-Bits in jeder Zeile oder Spalte ist somit immer gerade. A parity bit is e.g. B. 1 if the code word is an odd Number of 1 bits and 0 if the code word is one has an even number of 1 bits. The number of 1 bits in every row or column is therefore always even.
Die Anzahl ki der Informationsbits in jeder Dimension ist vorzugsweise gleich groß. Bei dem gezeigten 3D-Codewort handelt es sich außerdem um einen vollen Produktcode. The number k i of information bits in each dimension is preferably the same. The 3D code word shown is also a full product code.
Fig. 3 zeigt die Erzeugung eines dreidimensionalen SPC- Produkt-Codeworts mittels eines seriell verketteten Codierers. Der seriell verkettete Codierer umfaßt einen ersten Codierer 1 und einen zweiten Codierer 2. Der erste Codierer 1 erzeugt ein dreidimensionaled SPC-Produkt-Codewort 4 mit einer Coderate von z. B. (26/27)3. Dieser entspricht dem 3D- Codewort von Fig. 2 mit einer Gesamtzahl an Informationsbits von 263 = 17576. FIG. 3 shows the generation of a three-dimensional SPC product code word by means of a serial-linked encoder. The serially concatenated encoder comprises a first encoder 1 and a second encoder 2 . The first encoder 1 generates a three-dimensional SPC product code word 4 with a code rate of z. B. (26/27) 3 . This corresponds to the 3D code word of FIG. 2 with a total number of information bits of 26 3 = 17576.
Das am Ausgang des ersten Codierers 1 ausgegebene 3D-Codewort 4 wird einem Interleaver 3 zugeführt, der eine Modifikation eines Interleavers ist, wie er z. B. in einem Artikel von L. Ping, S. Chan, und K.L. Yiung, "Efficient soft-in-soft-out sub-optimal decoding rule for single parity check codes", Electron. lett., Band 33, Nr. 19, Seiten 1614-1615, 1997 offenbart ist. Der Interleaver 3 bewirkt eine Umordnung der einzelnen Bits des 3D-Codeworts 4, wodurch ein neues 3D-Codewort 5 entsteht. The 3D code word 4 output at the output of the first coder 1 is fed to an interleaver 3 , which is a modification of an interleaver, as used, for. B. in an article by L. Ping, S. Chan, and KL Yiung, "Efficient soft-in-soft-out sub-optimal decoding rule for single parity check codes", Electron. lett., Vol. 33, No. 19, pages 1614-1615, 1997. The interleaver 3 rearranges the individual bits of the 3D code word 4 , whereby a new 3D code word 5 is created.
Das vom Interleaver 3 ausgegebene Codewort 5 wird schließlich vom Codierer 2 codiert, der ein dreidimensionales SPC- Produkt-Codewort mit Paritätsbits P2 und einer Coderate von (27/28)3 erzeugt. Die Coderate des gesamten, verketteten Codierers ist daher (26/28)3 = 0,8. Die Redundanz somit 25%. The code word 5 output by the interleaver 3 is finally encoded by the encoder 2 , which generates a three-dimensional SPC product code word with parity bits P2 and a code rate of (27/28) 3 . The code rate of the entire concatenated encoder is therefore (26/28) 3 = 0.8. The redundancy is thus 25%.
Fig. 4 zeigt den schematischen Aufbau eines Datenübertragungssystems mit einem verketteten Codierer, umfassend die Codierer 1 und 2, und einem entsprechenden Decodierer, umfassend die Decodierer 7 und 8. Fig. 4 shows the schematic structure of a data transmission system having a concatenated encoder, comprising the encoder 1 and 2, and a corresponding decoder comprising the decoder 7 and 8.
Der erste Codierer 1 umfaßt wiederum drei Einzelcodierer C11, C12 und C13, die jeweils ein SPC-Codewort für eine Dimension des 3D-Produkt-Codeworts 4 erzeugen. Der zweite Codierer 2 umfaßt ebenfalls drei Einzelcodierer C21, C22, C23 zur Erzeugung des dreidimensionalen SPC-Produkt-Codeworts 6. The first encoder 1 in turn comprises three individual encoders C11, C12 and C13, each of which generates an SPC code word for one dimension of the 3D product code word 4 . The second encoder 2 also comprises three individual encoders C21, C22, C23 for generating the three-dimensional SPC product code word 6 .
Das vom ersten Codierer 1 erzeugte SPC-Codewort 4 sowie die Paritätsbits P2 des vom zweiten Codierer 2 erzeugten SPC- Codeworte 6 werden über eine Übertragungsleitung L übertragen. Wahlweise kann auch das vom ersten Codierer 1 erzeugte SPC-Codewort 4 und das gesamte SPC-Codewort 6 übertragen werden. The SPC code word 4 generated by the first encoder 1 and the parity bits P2 of the SPC code words 6 generated by the second encoder 2 are transmitted via a transmission line L. Optionally, the SPC code word 4 generated by the first encoder 1 and the entire SPC code word 6 can also be transmitted.
Die übertragene Information wird schließlich von einem Decodierer empfangen, der einen zweiten Decodierer 7 zum Decodieren des vom zweiten Codierer 2 erzeugten SPC-Codeworts 6, und einen ersten Decodierer 8 zum Decodieren des vom ersten Codierer 1 erzeugten SPC-Codeworts 4. Zwischen den beiden Decodierern 7, 8 ist ein Deinterleaver 9 angeordnet, der eine inverse Umordnung der einzelnen Bits durchführt. The transmitted information is finally received by a decoder, which has a second decoder 7 for decoding the SPC code word 6 generated by the second encoder 2 , and a first decoder 8 for decoding the SPC code word 4 generated by the first encoder 1 . A deinterleaver 9 is arranged between the two decoders 7 , 8 and performs an inverse rearrangement of the individual bits.
Die den Decodierern 7, 8 zugeführten Informationsdaten sind mit u bezeichnet, extrinsische Information mit EXT. Wie zu erkennen ist, erzeugt der zweite Decodierer 7 extrinsische Information, die dem ersten Decodierer 8 über den Deinterleaver 9 zugeführt wird. Der erste Decodierer 8 berücksichtigt diese Information und gibt selbst extrinsische Information aus, die wiederum dem zweiten Decodierer 7 beim nächsten Iterationsschritt über einen Interleaver 10 zugeführt wird. The information data supplied to the decoders 7 , 8 are designated by u, extrinsic information by EXT. As can be seen, the second decoder 7 generates extrinsic information which is fed to the first decoder 8 via the deinterleaver 9 . The first decoder 8 takes this information into account and outputs extrinsic information itself, which in turn is fed to the second decoder 7 in the next iteration step via an interleaver 10 .
Die Decodierer 7, 8 umfassen jeweils drei Einzeldecodierer D21,D22,D23 bzw. D11,D12,D13, die jeweils für die Decodierung in einer Dimension zuständig sind. The decoders 7 , 8 each comprise three individual decoders D21, D22, D23 or D11, D12, D13, which are each responsible for decoding in one dimension.
Fig. 5 zeigt eine detailliertere Ansicht des Decodierers von Fig. 4, wobei im oberen Teil der zweite Decodierer 7 und im unteren Teil der Figur der erste Decodierer 8 dargestellt ist. FIG. 5 shows a more detailed view of the decoder from FIG. 4, the second decoder 7 being shown in the upper part and the first decoder 8 being shown in the lower part of the figure.
Die Einzeldecodierer SISO21-23 bzw. SISO11-13 des ersten und zweiten Decodierers 7, 8 sind jeweils als SISO-Decodierer realisiert. The individual decoders SISO21-23 and SISO11-13 of the first and second decoders 7 , 8 are each implemented as SISO decoders.
Die Informationsdaten sind mit u und die Paritätsbits mit p bezeichnet. Dabei bestimmt der hochgestellte Index denjenigen Decodierer 7, 8, von dem die Daten stammen bzw. an den die betreffenden Daten gesendet werden. Der tiefgestellte Index bezeichnet den Einzeldecodierer (SISO21-23 bzw. SISO11-13), der die Daten erzeugt hat. Extrinsische Information, die von einem der Decodierer 7, 8 erzeugt wurde und für den anderen der Decodierer 7, 8 bestimmt ist, ist mit dem Index ext bezeichnet. The information data are denoted by u and the parity bits by p. The superscript determines the decoder 7 , 8 from which the data originate or to which the relevant data are sent. The subscript denotes the individual decoder (SISO21-23 or SISO11-13) that generated the data. Extrinsic information generated by one of the decoders 7 , 8 and intended for the other one of the decoders 7 , 8 is identified by the index ext.
Der Turbo-Decodieralgorithmus wird in n iterativen Schritten durchgeführt. Vor dem ersten Iterationsschritt sind sämtliche extrinsischen Daten gleich Null. The turbo decoding algorithm is done in n iterative steps carried out. All are before the first iteration step extrinsic data is zero.
Am Eingang des zweiten Decodierers 7 werden die Informationsbits u2 und die Paritätsbits p2 des SPC-Codeworts 6 zugeführt. Diese Daten werden auch den nachfolgenden Einzeldecodierern SISO22 bzw. SISO23 zugeführt. Jeder der Einzeldecodierer SISO21-23 erzeugt aus den ihm zugeführten Daten modifizierte Paare von Informationsdaten u und Paritätsbits p, genauer gesagt eine Reihe von Wahrscheinlichkeitsverteilungen, die extrinsische Information enthalten bzw. darstellen. Diese extrinsische Information wird jeweils den anderen beiden Einzeldecodierern SISO21-23 an deren Eingang zugeführt. At the input of the second decoder 7 , the information bits u 2 and the parity bits p 2 of the SPC code word 6 are supplied. This data is also fed to the subsequent SISO22 and SISO23 individual decoders. Each of the individual decoders SISO21-23 generates modified pairs of information data u and parity bits p from the data supplied to it, more precisely a series of probability distributions which contain or represent extrinsic information. This extrinsic information is fed to the other two SISO21-23 individual decoders at their input.
So erhält z. B. der zweite Einzeldecodierer SISO22 neben den Paritätsbits p2 des SPC-Codeworts 6 die extrinsische Information der Einzeldecodierer SISO21 und SISO23 (p2 21, p2 23). Der dritte Einzeldecodierer SISO23 erhält z. B. an seinem Eingang die Informationsdaten u2 0 sowie die extrinsische Information der beiden anderen Einzeldecodierer SISO21,SISO22 (u2 21, u2 22). So z. B. the second individual decoder SISO22 in addition to the parity bits p 2 of the SPC code word 6, the extrinsic information of the individual decoders SISO21 and SISO23 (p 2 21 , p 2 23 ). The third individual decoder SISO23 receives e.g. B. at its input the information data u 2 0 and the extrinsic information of the two other individual decoders SISO21, SISO22 (u 2 21 , u 2 22 ).
Der Decodierer 7 erhält außerdem extrinsische Information u2 ext des ersten Decodierers 8 und umgekehrt. The decoder 7 also receives extrinsic information u 2 ext from the first decoder 8 and vice versa.
Die von den Einzeldecodierern SISO21-SISO23 erzeugten Informationsdaten u2 21- u2 23 werden einem Deinterleaver 9 zugeführt. Der Deinterleaver 9 bildet daraus wiederum Informationsdaten u1 ext und Paritätsbits p1 ext für die weitere Verarbeitung durch den ersten Decodierer 8. The information data u 2 21 - u 2 23 generated by the individual decoders SISO21-SISO23 are fed to a deinterleaver 9 . The deinterleaver 9 in turn forms information data u 1 ext and parity bits p 1 ext for further processing by the first decoder 8 .
Am Eingang des ersten Decodierers 8 werden die Informationsdaten u1 und die Paritätsbits p1 des vom ersten Codierer 1 erzeugten Codeworts 4 zugeführt. Hierzu werden die vom zweiten Decodierer 7 erzeugten extrinsischen Daten p1 ext bzw. u1 ext addiert. At the input of the first decoder 8 , the information data u 1 and the parity bits p 1 of the code word 4 generated by the first encoder 1 are supplied. For this purpose, the extrinsic data p 1 ext or u 1 ext generated by the second decoder 7 are added.
Wie im Beispiel des zweiten Decodierers 7 erhält auch jeder Einzeldecodierer SISO11-SISO13 des ersten Decodierers 8 jeweils extrinsische Information der beiden anderen Einzeldecodierer. Am Ausgang des letzten Einzeldecodierers SISO13 werden sämtliche extrinsischen Daten, d. h. sowohl die Informationsdaten u1 11-u1 13 als auch Paritätsdaten p1 11-p1 13 addiert und jeweils einem Interleaver 10 zugeführt. Dieser erzeugt eine extrinsische Information u2 ext, die dem zweiten Decodierer 7 zugeführt wird. As in the example of the second decoder 7 , each individual decoder SISO11-SISO13 of the first decoder 8 also receives extrinsic information from the other two individual decoders. At the output of the last individual decoder SISO13, all extrinsic data, ie both the information data u 1 11 -u 1 13 and parity data p 1 11 -p 1 13 are added and each fed to an interleaver 10 . This generates extrinsic information u 2 ext , which is fed to the second decoder 7 .
Damit beginnt ein zweiter Iterationsschritt. Nach n Iterationsschritten wird eine Entscheidung getroffen (Decision). This starts a second iteration step. After n A decision is made in iteration steps.
Mit dem vorgestellten verketteten, dreidimensionalen SPC- Turbocode kann eine starke Verbesserung der Bitfehlerrate in einem optischen Übertragungssystem erreicht werden. Da dieses Codierverfahren ziemlich einfach ist und kostengünstig implementiert werden kann, ist es auch für weit ausgedehnte optische Übertragungssysteme geeignet. Der Q-Faktor bei nahezu fehlerfreier Übertragung (BER = 10-15) wird damit auf etwa 6,4 dB reduziert. With the presented concatenated, three-dimensional SPC turbo code, a great improvement in the bit error rate in an optical transmission system can be achieved. Since this coding method is fairly simple and can be implemented inexpensively, it is also suitable for wide-area optical transmission systems. The Q factor with almost error-free transmission (BER = 10 -15 ) is thus reduced to around 6.4 dB.
Claims (14)
einen ersten Codierer (1) zur Erzeugung eines dreidimensionalen SPC-Produkt-Codeworts (4);
einen Interleaver (3) zum Umordnen des SPC-Codeworts (4);
einen zweiten Codierer (2) zum Erzeugen eines zweiten dreidimensionalen SPC-Produkt-Codeworts (6) aus dem vom Interleaver (3) ausgegebenen Codewort (5);
eine Übertragungsleitung (L) zum Übertragen der codierten Daten;
einen zweiten Decodierer (7) zum Decodieren des vom zweiten Codierer (2) erzeugten SPC-Codeworts (6); und
einen ersten Decodierer (8) zum Decodieren des vom ersten Codierer (1) erzeugten SPC-Codeworts (4), wobei der erste und zweite Decodierer (7 bzw. 8) extrinsische Information erzeugen, die dem jeweils anderen Decodierer (8 bzw. 7) zugeführt wird. 9. An error correction system for digital data that is transmitted in a data transmission system, in particular an optical transmission system, comprising:
a first encoder ( 1 ) for generating a three-dimensional SPC product code word ( 4 );
an interleaver ( 3 ) for rearranging the SPC code word ( 4 );
a second encoder ( 2 ) for generating a second three-dimensional SPC product code word ( 6 ) from the code word ( 5 ) output by the interleaver ( 3 );
a transmission line (L) for transmitting the encoded data;
a second decoder ( 7 ) for decoding the SPC code word ( 6 ) generated by the second encoder ( 2 ); and
a first decoder ( 8 ) for decoding the SPC code word ( 4 ) generated by the first encoder ( 1 ), the first and second decoders ( 7 and 8 ) generating extrinsic information that the other decoder ( 8 and 7 ) is fed.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE2001147482 DE10147482A1 (en) | 2001-09-26 | 2001-09-26 | Error correction of data transmitted in optical data transmission systems involves using serially chained, three-dimensional Single Parity Check turbo-code |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE2001147482 DE10147482A1 (en) | 2001-09-26 | 2001-09-26 | Error correction of data transmitted in optical data transmission systems involves using serially chained, three-dimensional Single Parity Check turbo-code |
Publications (1)
Publication Number | Publication Date |
---|---|
DE10147482A1 true DE10147482A1 (en) | 2003-01-23 |
Family
ID=7700366
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE2001147482 Withdrawn DE10147482A1 (en) | 2001-09-26 | 2001-09-26 | Error correction of data transmitted in optical data transmission systems involves using serially chained, three-dimensional Single Parity Check turbo-code |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE10147482A1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7415651B2 (en) * | 2004-06-02 | 2008-08-19 | Seagate Technology | Data communication system with multi-dimensional error-correction product codes |
-
2001
- 2001-09-26 DE DE2001147482 patent/DE10147482A1/en not_active Withdrawn
Non-Patent Citations (3)
Title |
---|
LI J. et al.: "On the Performance of Turbo Product Codes over Partial Response Channels", In: IEEE Transactions on Magnetics, Vol. 37, No.4,July2001,S.1932 * |
PING L. et al.: "Iterative Decoding of Multi-Di- mensional Concatenated Single Parity Check Codes",IN: IEEE international Conference on Communi- cations, Vol.1, 1998, S.131-135 * |
STOJANOVIC N. et al.: Concatenated Three * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7415651B2 (en) * | 2004-06-02 | 2008-08-19 | Seagate Technology | Data communication system with multi-dimensional error-correction product codes |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69736881T2 (en) | PARALLEL CHAINED TAIL BITING FOLDING CODE AND DECODER THEREFOR | |
DE60113053T2 (en) | Turbo decoder predecoder, for retrieving punctured parity symbols, and a method for recovering a turbo code | |
DE69923970T2 (en) | Channel decoder and method for channel decoding | |
DE3910739C3 (en) | Method for generalizing the Viterbi algorithm and means for performing the method | |
DE60001988T2 (en) | Turbo decoding with variable number of iterations | |
WO2001039421A2 (en) | Method for adjusting the data rate in a communication device and the corresponding communication device | |
DE60211413T2 (en) | Method and apparatus for optimizing the size of coded data blocks | |
DE60111974T2 (en) | Abort criterion for a turbo decoder | |
DE102018218729B3 (en) | Interleaving with circular line rotation for transmission with telegram splitting | |
DE102017216264B4 (en) | Decoding method | |
DE19934646C2 (en) | Method and device for iterative decoding of chained codes | |
DE69908629T2 (en) | HYBRID NESTLER FOR TURBO ENCODERS | |
DE19539343A1 (en) | Digital data bit stream error detection and correction method | |
DE19521327A1 (en) | Secure information transmission method using multi-component coding | |
EP1249074B1 (en) | Method for decoding a data signal | |
DE10147482A1 (en) | Error correction of data transmitted in optical data transmission systems involves using serially chained, three-dimensional Single Parity Check turbo-code | |
DE60209196T2 (en) | Method and apparatus for optimizing, under power constraints, the size of coded data blocks | |
DE60118716T2 (en) | Log-MAP decoding | |
DE19520987A1 (en) | Terminating trellis in recursive systematic convolutional code for data security applications | |
EP1290808A1 (en) | System for data transmission according to the frequency hopping method | |
DE60026109T2 (en) | Combined channel and entropy decoding | |
DE102014216143B4 (en) | Procedure for recovering lost and / or corrupted data | |
WO1998052362A2 (en) | Channel coding method | |
DE102004053656B4 (en) | Method for processing signals according to methods with block-based error protection codes | |
DE10000932C2 (en) | Method and device for decoding a sequence of code words of variable length, method and device for generating a data stream and method and device for decoding a data stream |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8130 | Withdrawal | ||
8165 | Unexamined publication of following application revoked |