DE10120155B4 - Modulation with parallel turbo-rotary coding - Google Patents

Modulation with parallel turbo-rotary coding Download PDF

Info

Publication number
DE10120155B4
DE10120155B4 DE2001120155 DE10120155A DE10120155B4 DE 10120155 B4 DE10120155 B4 DE 10120155B4 DE 2001120155 DE2001120155 DE 2001120155 DE 10120155 A DE10120155 A DE 10120155A DE 10120155 B4 DE10120155 B4 DE 10120155B4
Authority
DE
Germany
Prior art keywords
encoder
parallel
data
adders
recursive
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
Application number
DE2001120155
Other languages
German (de)
Other versions
DE10120155A1 (en
Inventor
Gary Q. Kanata Jin
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
1021 Technologies Kk Yokohama Jp
Original Assignee
1021 TECHNOLOGIES KK YOKOHAMA
1021 TECHNOLOGIES KK
1021 Technologies Kk Yokohama
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 1021 TECHNOLOGIES KK YOKOHAMA, 1021 TECHNOLOGIES KK, 1021 Technologies Kk Yokohama filed Critical 1021 TECHNOLOGIES KK YOKOHAMA
Publication of DE10120155A1 publication Critical patent/DE10120155A1/en
Application granted granted Critical
Publication of DE10120155B4 publication Critical patent/DE10120155B4/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/3905Maximum a posteriori probability [MAP] decoding or approximations thereof based on trellis or lattice decoding, e.g. forward-backward algorithm, log-MAP decoding, max-log-MAP decoding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/23Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using convolutional codes, e.g. unit memory codes
    • H03M13/235Encoding of convolutional codes, e.g. methods or arrangements for parallel or block-wise encoding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/25Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM]
    • H03M13/258Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM] with turbo codes, e.g. Turbo Trellis Coded Modulation [TTCM]
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2957Turbo codes and decoding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/3961Arrangements of methods for branch or transition metric calculation
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/3988Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes for rate k/n convolutional codes, with k>1, obtained by convolutional encoders with k inputs and n outputs
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6561Parallelized implementations
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6577Representation or format of variables, register sizes or word-lengths and quantization
    • H03M13/6583Normalization other than scaling, e.g. by subtraction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • H04L1/0052Realisations of complexity reduction techniques, e.g. pipelining or use of look-up tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • H04L1/0055MAP-decoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0064Concatenated codes
    • H04L1/0066Parallel concatenated codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • H04L1/0047Decoding adapted to other signal detection operation
    • H04L1/005Iterative decoding, including iteration between signal detection and decoding operation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0059Convolutional codes
    • H04L1/006Trellis-coded modulation

Abstract

Codierer für eine turbocodierte Trelliscodemodulation mit einem Codiererdatenblock zum Speichern von eingehenden Daten und mindestens zwei parallelen rekursiven systematischen Faltungscodierern, wobei die rekursiven systematischen Faltungscodierer zum parallelen Empfangen von Daten von dem Codiererdatenblock angeschlossen sind, wobei jeder parallele rekursive systematische Faltungscodierer einen ersten Satz von Addierern, wobei jeder Addierer zum Empfangen einer Vielzahl von Datenströmen von dem Codiererdatensblock angeschlossen ist, einen zweiten Satz von Addierern, die mit den Ausgängen der jeweiligen Addierer des ersten Satzes von Addierern verbunden sind, und Verzögerungseinheiten zum Zuführen der Ausgangssignale des zweiten Satzes von Addierern zu deren Eingängen in einer rekursiven Anordnung umfaßt.encoder for one Turbo coded trellis codemodulation with an encoder data block for storing incoming data and at least two parallel ones recursive systematic convolutional encoders, the recursive ones systematic convolutional encoder for receiving data in parallel are connected by the encoder data block, each being parallel recursive systematic convolutional encoders a first set of adders, wherein each adder is for receiving a plurality of data streams from connected to the encoder data block, a second set of Adders, with the outputs the respective adder of the first set of adders are, and delay units to Respectively the outputs of the second set of adders to their inputs in a recursive arrangement.

Figure 00000001
Figure 00000001

Description

Gebiet der ErfindungField of the invention

Diese Erfindung betrifft das Gebiet von digitalen Datenübertragungen und insbesondere einen Codierer zur Verwendung bei der Implementierung eines turbotrelliscodierten Modulationsschemas.These The invention relates to the field of digital data transmissions and more particularly, an encoder for use in implementing a turbocharc-coded modulation schemes.

Hintergrund der ErfindungBackground of the invention

Ein Turbocode hat aufgrund seines größeren Codiergewinns viel Interesse auf sich gezogen. Siehe beispielsweise "Application of Turbo Codes for Discrete Multi-Tone Modulation", Hamid R. Sadjadpour, AT&T Shannon Labs., 1996. Ein Turbocode besteht aus zwei oder mehreren Faltungscodes, die durch eine Verschachtelungsvorrichtung getrennt sind, welche die Eingangssequenz des ersten Codierers verarbeitet. In einem digitalen Teilnehmermultiplex-(DSL)System kann ein Turbocode verwendet werden, um einen Trelliscode zu ersetzen, um eine bessere Bitfehlerraten-(BER)Leistung zu erhalten. Wenn jedoch die Konstellationsgröße zunimmt, beginnt sich der Codiergewinnvorteil des Turbocodes zu verringern. Dies liegt daran, daß die redundanten Bits die Konstellationsgröße noch größer machen.One Turbo code has due to its larger coding gain attracted much interest. See, for example, "Application of Turbo Codes for Discrete Multi-Tone Modulation ", Hamid R. Sadjadpour, AT & T Shannon Labs. 1996. A turbo code consists of two or more convolutional codes, which are separated by an interleaving device, which processes the input sequence of the first encoder. In a digital Subscriber Multiplexing (DSL) system, a turbo code can be used to replace a trellis code for better bit error rate (BER) performance to obtain. However, as the constellation size increases, the Reduce coding gain advantage of the turbo code. This is because that the redundant bits make the constellation size even larger.

Unsere glechzeitig anhängige Patentanmeldung mit gleichen Datum beschreibt, wie ein Turbocode verwendet werden kann, um nur das niedrigstwertige Bit (LSB) in der Konstellation zu codieren und dadurch eine bessere Leistung zu erzielen als die derzeit verwendete trelliscodierte Modulation, wie z. B. ein Wei-Code. Die erzielbare Datenrate ist nur ein paar dB von der Shannon-Kapazität entfernt.Our currently pending Patent application with same date describes as a turbo code can be used to get only the least significant bit (LSB) in to encode the constellation and thereby better performance to achieve than the currently used trellis-coded modulation, such as For example, a Wei code. The achievable data rate is only a few dB from the Shannon capacity away.

Aus dem Artikel "DMT scheme with multidimensional turbo trellis code" von Cai, Z., Subramanian, K. R. und Zhang, L. in Electronics Letters, vol. 36, no. 4, 17th February 2000, S. 334–335 ist ein Codierer für eine turbocodierte Trelliscodemodulation mit einem Codiererdatenblock zum Speichern von eingehenden Daten und mindestens zwei parallelen rekursiven systematischen Faltungscodierern bekannt, wobei die rekursiven systematischen Faltungscodierer zum parallelen Empfangen von Daten von dem Codiererdatenblock angeschlossen sind.Out the article "DMT scheme with multidimensional turbo trellis code "by Cai, Z., Subramanian, K.R. Zhang, L. in Electronics Letters, vol. 36, no. 4, 17th February 2000, pp. 334-335 is an encoder for a turbocoded trellis code modulation with an encoder data block for storing incoming data and at least two parallel ones Recursive systematic convolutional encoders known, where the recursive systematic convolutional encoder for receiving data in parallel are connected by the encoder data block.

Ferner wird in dem Artikel "Symbol-Based Turbo Codes" von Bingeman, M., und Khandani, A. K. in IEEE Communications Letters, Vol. 3, No. 10, October 1999 eine symbolbasierte Turbocodierung beschrieben, bei der ein Symbol aus mehreren Bits besteht. Ein Codierer, der diese Codierung ausführt, empfängt somit mehrere Bits pro Symbol parallel.Further is in the article "Symbol-Based Turbo Codes "by Bingeman, M., and Khandani, A.K. in IEEE Communications Letters, Vol. 3, No. 10, October 1999 describes a symbol-based turbo coding, where a symbol consists of several bits. An encoder that performs this encoding, thus receiving several bits per symbol in parallel.

Eine Aufgabe der Erfindung ist die Bereitstellung einer schnellen Implementierung eines Codierers für eine turbotrelliscodierte Modulation.A The object of the invention is to provide a fast implementation an encoder for a turbotrellis-coded modulation.

Zusammenfassung der ErfindungSummary of the invention

Gemäß der vorliegenden Erfindung wird eine Codiervorrichtung bereitgestellt, die ein Turbotrelliscode-Modulationssignal erzeugt, mit einem Codiererdatenblock zum Speichern von eingehenden Daten und mindestens zwei rekursiven systematischen Faltungscodierern, wobei die Faltungscodierer zum parallelen Empfangen von Daten von dem Codiererdatenblock angeschlossen sind, wobei jeder parallele rekursive systematische Faltungscodierer einen ersten Satz von Addierern, wobei jeder Addierer zum Empfangen einer Vielzahl von Datenströmen von dem Codiererblock angeschlossen ist, einen zweiten Satz von Addierern, die mit den Ausgängen der jeweiligen Addierer des ersten Satzes von Addierern verbunden sind, und Verzögerungseinheiten zum Zuführen der Ausgangssignale des zweiten Satzes von Addierern zu deren Eingängen in einer rekursiven Anordnung umfaßt.According to the present According to the invention, there is provided a coding apparatus comprising a turbo-rolling code modulation signal generated, with an encoder data block for storing incoming Data and at least two recursive systematic convolutional encoders, the convolutional coders for receiving data from the encoder data block are connected, each parallel recursive systematic convolutional coders a first set of adders, wherein each adder is for receiving a plurality of data streams from the Encoder block is connected, a second set of adders, those with the outputs the respective adder of the first set of adders are, and delay units for feeding the outputs of the second set of adders to their inputs in a recursive arrangement.

Die beschriebene Struktur mit paralleler Implementierung verringert den Implementierungszyklus für sowohl den Codierer als auch den zugehörigen Decodierer. Außerdem kann auch die Speicher-(RAM)Anforderung für einen solchen Turbodecodierer im Fall einer parallelen Implementierung für drei Bits um 1/3 eingespart werden.The reduced structure with parallel implementation the implementation cycle for both the encoder and the associated decoder. In addition, can also the memory (RAM) requirement for such a turbo decoder saved in the case of a parallel implementation for three bits by 1/3 become.

Kurzbeschreibung der ZeichnungenBrief description of the drawings

Die Erfindung wird nun lediglich anhand eines Beispiels mit Bezug auf die zugehörigen Zeichnungen genauer beschrieben, in welchen gilt:The The invention will now be described by way of example only with reference to FIG the associated Drawings described in more detail, in which:

1 ist ein Blockdiagramm eines Codierers für eine Turbotrelliscode-Modulation; 1 is a block diagram of a coder for a turbo-rolling code modulation;

2 ist ein Blockdiagramm einer parallelen Implementierung des Codierers; 2 Fig. 10 is a block diagram of a parallel implementation of the encoder;

3a zeigt einen typischen RSC-Codierer; 3a shows a typical RSC encoder;

3b zeigt einen parallelen RSC-Codierer gemäß den Prinzipien der Erfindung; 3b shows a parallel RSC encoder according to the principles of the invention;

4 ist ein Blockdiagramm eines parallelen Turbodecodierers; 4 Fig. 10 is a block diagram of a parallel turbo decoder;

5 stellt den Betrieb des Decodierers dar; 5 represents the operation of the decoder;

6 stellt die Implementierung der Vorwärtsiteration dar; 6 represents the implementation of forward iteration;

7 zeigt ein Detail von 6; und 7 shows a detail of 6 ; and

8 stellt die Implementierung der Rückwärtsiteration dar. 8th represents the implementation of backward iteration.

AUSFÜHRLICHE BESCHREIBUNG DER ERFINDUNGDETAILED DESCRIPTION OF THE INVENTION

Paralleler CodiererParallel encoder

Die allgemeine Konstellationscodiererstruktur für ein turbotrelliscodiertes Modulationsschema ist in 1 für die Fälle x > 1 und y > 1 gezeigt. Das Eingangsbinärwort u = (uz', uz'-1,..., u1) bestimmt zwei Binärworte v = (vz'-y, ..., v0) und w = (wy-1, ..., w0) (wobei z' = x + y – 1), die verwendet werden, um zwei Konstellationspunkte in einer Codierertabelle zu suchen.The general constellation coder structure for a turbocharged-coded modulation scheme is shown in FIG 1 for the cases x> 1 and y> 1 shown. The input binary word u = (u z ' , u z'-1 , ..., u 1 ) determines two binary words v = (v z'-y , ..., v 0 ) and w = (w y-1 , ..., w 0 ) (where z '= x + y - 1) used to search two constellation points in an encoder table.

Der Codiererdatenblock 10 empfängt einen Teil der Daten von einem Eingangsbitstrom und speichert ihn im Speicher. Die Bits niedrigster Ordnung werden aus dem Codiererdatenblock ausgelesen und zu rekursiven systematischen Faltungscodierern RSC1 und RSC2 weitergeleitet.Of the Encoder data block 10 receives a portion of the data from an input bitstream and stores it In the storage room. The lowest order bits are taken from the encoder data block and recursive systematic convolutional encoders RSC1 and RSC2 forwarded.

Der durch den Block 20 gebildete Turbocodierer ist ein systematischer Codierer mit einer Codierrate von 3/4, die mit einer Rate von 1/2 unterbrochen ist. Der Turbocodierer besteht aus zwei rekursiven systematischen Faltungscodierern RSC1 und RSC2. Der RSC1 übernimmt fortlaufende Daten vom Codiererdatenblock und der RSC2 übernimmt verschachtelte Daten aus dem gleichen Datenblock. In dieser Struktur sind drei Implementierungszyklen erforderlich, um einen einzelnen Konstellationspunkt zu erhalten, was hauptsächlich an der Implementierungsanforderung des Turbocodierers liegt.Of the Turbocoder formed by block 20 is a more systematic one Encoder with a coding rate of 3/4, which at a rate of 1/2 is interrupted. The turbo encoder consists of two recursives systematic convolutional encoders RSC1 and RSC2. The RSC1 takes over continuous data from the encoder data block and the RSC2 takes over nested data from the same data block. In this structure There are three implementation cycles required to complete a single Constellation point, mainly due to the implementation requirement the turbo encoder is located.

Um den Prozeß zu beschleunigen, ist in 2 eine Parallelcodiererstruktur dargestellt. Der Unterschied gegenüber 1 besteht darin, daß sowohl RSC1 als auch RSC2 drei Eingangsdaten gleichzeitig übernehmen und ein Fehlerprüfbit in einem einzigen Implementierungszyklus erzeugen.To accelerate the process is in 2 a parallel encoder structure shown. The difference over 1 is that both RSC1 and RSC2 simultaneously accept three input data and generate one error check bit in a single implementation cycle.

Ein Vergleich zwischen einem normalen RSC-Codierer und einem parallelen RSC-Codierer ist in 3 gezeigt, wobei 3(a) ein normaler RSC-Codierer mit 8 Zuständen ist und 3(b) eine parallele Implementierung zeigt. Der parallele Codierer braucht nur einen Implementierungszyklus für jeweils drei Eingangsbits. Obwohl 3(b) denselben Codierer wie 3(a) zeigt, ist es nicht notwendig, daß der parallele Codierer von einem normalen RSC-Codierer abgeleitet wird.A comparison between a normal RSC encoder and a parallel RSC encoder is in 3 shown, where 3 (a) is a normal 8-state RSC encoder and 3 (b) shows a parallel implementation. The parallel coder needs only one implementation cycle for every three input bits. Even though 3 (b) the same encoder as 3 (a) shows, it is not necessary that the parallel encoder is derived from a normal RSC encoder.

Paralleler TurbodecodiererParallel turbo decoder

Die Decodierprozedur für eine turbotrelliscodierte Modulation besteht aus den folgenden Schritten:

  • 1. Softdecodierung für das niedrigstwertige Bit (LSB);
  • 2. Hartdecodierung für die höchstwertigen Bits (MSB);
  • 3. Decodieren des LSB unter Verwendung eines Turbodecodiereralgorithmus;
  • 4. Bestimmen aller Datenbits.
The decoding procedure for a turbo-radelliscoded modulation consists of the following steps:
  • 1. Soft decoding for least significant bit (LSB);
  • 2. hard decoding for the most significant bits (MSB);
  • 3. decoding the LSB using a turbo decoder algorithm;
  • 4. Determine all data bits.

Um das LSB zu decodieren (dritter Schritt), übernimmt der parallele Turbodecodierer drei Softbiteingangssignale für jede Vorwärts-(α) und Rückwärts-(β)Iteration. Auf diese Weise werden nur 1/3 Zyklen für jede Turbodecodiereriteration verwendet und die Speicheranforderungen zum Speichern von α- und β-Werten werden auch um einen Faktor von drei verringert.Around to decode the LSB (third step) takes over the parallel turbo decoder three softbite input signals for each forward (α) and backward (β) iteration. In this way, only 1/3 cycles for each turbo decoder iteration and the memory requirements for storing α and β values also reduced by a factor of three.

Der parallele Turbodecodierer ist in 4 gezeigt. Er besteht aus zwei Decodierern 1, 2 und einer Verschachtelungsvorrichtung und einer Entschachtelungsvorrichtung.The parallel turbo decoder is in 4 shown. It consists of two decoders 1, 2 and an interleaving device and a deinterleaving device.

5 zeigt ein Detail des Decodierers 1 (der Decodierer 2 weist dieselbe Struktur auf). Die Decodierer 1, 2 bestehen aus Blöcken zum Berechnen von γ-Werten, Blöcken zum Durchführen einer Iteration und einem Softbit-Ausgabeblock. 5 shows a detail of the decoder 1 (the decoder 2 has the same structure). The decoders 1, 2 consist of blocks for calculating γ values, blocks for performing an iteration and a soft bit output block.

Der erste Schritt bei dem Decodiervorgang, wie in 5 gezeigt, besteht darin, drei Softbits P3k(0), P3k(1), P3k+1(0), P3k+1(1), P3k+2(0), P3k+2(1) zu übernehmen, um acht Wahrscheinlichkeitswerte zu bilden (ein normaler Turbodecodierer weist nur zwei Werte auf, da er nur ein Informationsbit enthält): Pk 000, Pk 001, Pk 010, Pk 011, Pk 100, Pk 101, Pk 110 und Pk 111.The first step in the decoding process, as in 5 is three soft bits P 3k (0), P 3k (1), P 3k + 1 (0), P 3k + 1 (1), P 3k + 2 (0), P 3k + 2 (1) to take eight probability values (a normal turbo decoder has only two values, since it contains only one information bit): P k 000 , P k 001 , P k 010 , P k 011 , P k 100 , P k 101 , P k 110 and P k 111 .

Beispielsweise Pk 000 = log[Prob(b3k = 0, b3k+1 = 0, b3k+2 = 0)] = P3k(0) + P3k+1(0) + P3k+2(0) For example P k 000 = log [Prob (b 3k = 0, b 3k + 1 = 0, b 3k + 2 = 0)] = P 3k (0) + P 3k + 1 (0) + P 3k + 2 (0)

Im allgemeinen kann Pk j (j = mn1 = 000, 001, ..., 111) als Pk mn1 = log[Prob(b3k = m, b3k+1 = n, b3k+2 = 1)] = P3k(m) + P3k+1(n) + P3k+2(1)erhalten werden.In general, P k j can (j = mn1 = 000, 001, ..., 111) as P k mn1 = log [Prob (b 3k = m, b 3k + 1 = n, b 3k + 2 = 1)] = P 3k (m) + P 3k + 1 (n) + P 3k + 2 (1) to be obtained.

Mit Pk j und dem entsprechenden Fehlerprüfbit (Pck(0), Pck(1)), kann der Wert γj(Rk, s', s) als γj(Rk, s', s) = log(Pr(dk = j, Sk = s, Rk|Sk-1 = s')) = Pj k + Pck(m)erhalten werden, wobei j = 000, 001, ..., 111 und m = 0 oder 1 in Abhängigkeit von dem Fehlerprüfbit, wenn vom Zustand s' zu s übergegangen wird, mit den Eingangsdaten j. Rk stellt die empfangene Information dar.With P k j and the corresponding error check bit (P ck (0), P ck (1)), the value γ j (R k , s', s) can be written as γ j (R k , s', s) = log (Pr (d k = j, p k = s, R k | S k-1 = s')) = P j k + P ck (M) where j = 000, 001, ..., 111 and m = 0 or 1 in response to the error check bit when transitioning from the state s' to s with the input data j. R k represents the received information.

Mit γj(Rk, s', s) kann die Vorwärtsiteration (a) mit einem LOG-MAP-Algorithmus wie in 6 gezeigt implementiert werden, wobei der Normierungsblock alle γj(Rk, s', s) mit demselben Normierungsfaktor in die Mitte des dynamischen Bereichs setzt, so daß der gesamte dynamische Bereich in einer Festkomma-Implementierung verwendet werden kann.With γ j (R k , s', s), the forward iteration (a) can be performed with a LOG-MAP algorithm as in 6 be implemented, the normalization block puts all γ j (R k , s', s) in the middle of the dynamic range with the same scale factor so that the entire dynamic range can be used in a fixed point implementation.

Dasselbe Prinzip wird auf die Ausgabe αk(s) angewendet, d. h. alle αk(s) in einem anderen Zustand s (für dieselbe Iteration k) werden mit demselben Normierungsfaktor normiert, so daß sie alle in der Mitte des dynamischen Bereichs liegen. Die Bestimmung des Normierungsfaktors ist dieselbe wie jene, die bei der Implementierung des normalen Turbodecodierers verwendet wird. Der Unterschied bei der Vorwärtsiteration besteht darin, daß jeder Zustand s bei der Iteration k(αk(s)) durch acht vorherige Zustände (α'k-1(s'000), α'k-1(s'001), ..., α'k-1(s'111)) bestimmt wird, die jeweils einem Wert einer Eingabe γj(Rk, s', s) entsprechen (in einem herkömmlichen Turbodecodierer wird jeder Zustand bei der Iteration k durch nur zwei vorherige Zustände bestimmt, da das Eingangssignal nur ein Informationsbit ist). Die LOG-ADD-OPERATION in 6 ist in 7 gezeigt, welche aus einer Max-Operation und einer Nachschlagetabelle besteht.The same principle is applied to the output α k (s), ie all α k (s) in another state s (for the same iteration k) are normalized with the same normalization factor, so that they are all in the middle of the dynamic range. The determination of the normalization factor is the same as that used in the implementation of the normal turbo decoder. The difference in forward iteration is that every state s in the iteration k (α k (s)) is preceded by eight previous states (α ' k-1 (s' 000 ), α ' k-1 (s' 001 ), ..., α ' k-1 (s' 111 )) each corresponding to a value of an input γ j (R k , s', s) (in a conventional turbo decoder, each state at the iteration k is replaced by only two previous states are determined since the input signal is only one bit of information). The LOG-ADD-OPERATION in 6 is in 7 shown which consists of a max operation and a lookup table.

Die Rückwärtsiteration weist dieselbe Struktur auf wie die Vorwärtsiteration und ist in 8 gezeigt.The backward iteration has the same structure as the forward iteration and is in 8th shown.

Nach dem Beenden der Vorwärts- und Rückwärtsiteration werden die Softbitausgaben in zwei Schritten wie folgt berechnet:
zuerst Berechnen von acht Pj k-Werten für j = 000, 001, ..., 111 als Pk j = MAX(s,s')j(Rk, s, s')αk-1(s')βk(s)]
After completing forward and backward iteration, the soft bit outputs are calculated in two steps as follows:
first calculating eight P j k values for j = 000, 001, ..., 111 as P k j = MAX (S, s') j (R k , s, s') α k-1 (S ') β k (S)]

Dann ist die Softausgabe die Kombination von Pi k-Werten wie z. B. P3k 0(0) = prob(b3k = 0) = Pk 000 + Pk 010 + Pk 100 + Pk 110 P3k 0(1) = prob(b3k = 1) = Pk 001 + Pk 011 + Pk 101 + Pk 111 P3k+1 0(0) = prob(b3k+1 = 0) = Pk 000 + Pk 001 + Pk 100 + Pk 101 P3k+1 0(1) = prob(b3k+1 = 1) = Pk 010 + Pk 011 + Pk 110 + Pk 111 P3k+2 0(0) = prob(b3k+2 = 0) = Pk 000 + Pk 001 + Pk 010 + Pk 011 P3k+2 0(1) = prob(b3k+2 = 1) = Pk 100 + Pk 101 + Pk 110 + Pk 111 Then the soft output is the combination of P i k values such as. B. P 3k 0 (0) = prob (b 3k = 0) = P k 000 + P k 010 + P k 100 + P k 110 P 3k 0 (1) = prob (b 3k = 1) = P k 001 + P k 011 + P k 101 + P k 111 P 3k + 1 0 (0) = prob (b 3k + 1 = 0) = P k 000 + P k 001 + P k 100 + P k 101 P 3k + 1 0 (1) = prob (b 3k + 1 = 1) = P k 010 + P k 011 + P k 110 + P k 111 P 3k + 2 0 (0) = prob (b 3k + 2 = 0) = P k 000 + P k 001 + P k 010 + P k 011 P 3k + 2 0 (1) = prob (b 3k + 2 = 1) = P k 100 + P k 101 + P k 110 + P k 111

Bei der letzten Iteration werden auch die Softfehlerprüfbits ausgegeben als: P3k+2 c(1) = prob(b3k+2 c = 1) = MAX(s,s')ck1(Rk,s, s')αk-1(s')βk(s)] P3k+2 c(0) = prob(b3k+2 c = 0) = MAX(s,s')ck0(Rk, s, s')αk-1(s')βk(s)]wobei γck0(Rk, s, s') und γck1(Rk, s, s') die Übergangswahrscheinlichkeit vom Zustand s zu s darstellen, wobei das Fehlerprüfbit (zum Zeitpunkt 3k + 2) 0 bzw. 1 ist.During the last iteration, the soft error check bits are also output as: P 3k + 2 c (1) = prob (b 3k + 2 c = 1) = MAX (S, s') c k1 (R k , s, s') α k-1 (S ') β k (S)] P 3k + 2 c (0) = prob (b 3k + 2 c = 0) = MAX (S, s') ck0 (R k , s, s') α k-1 (S ') β k (S)] wherein γ k0 (R k, s, s ') and γ ck1 (R k, s, s'), the transition probability from state s represent to s, wherein the error check is (at time 3k + 2) 0 and 1 respectively.

Die vorstehend beschriebenen Blöcke können in einem Digitalsignalprozessor unter Verwendung von Standard-Digitalverarbeitungsverfahren, die Fachleuten der Digitalsignalverarbeitung bekannt sind, implementiert werden.The blocks described above can in a digital signal processor using standard digital processing methods, the Professionals of digital signal processing are implemented become.

Die beschriebenen Verfahren erhöhen die Implementierungsgeschwindigkeit des Turbocodierers und -decodierers und führen zu signifikanten Speichereinsparungen im parallelen Decodierer.The increase the procedure described the implementation speed of the turbo encoder and decoder and lead Significant memory savings in the parallel decoder.

Sie sind auf einen Decodierer mit einer variablen Codierrate anwendbar.she are applicable to a decoder with a variable coding rate.

Claims (4)

Codierer für eine turbocodierte Trelliscodemodulation mit einem Codiererdatenblock zum Speichern von eingehenden Daten und mindestens zwei parallelen rekursiven systematischen Faltungscodierern, wobei die rekursiven systematischen Faltungscodierer zum parallelen Empfangen von Daten von dem Codiererdatenblock angeschlossen sind, wobei jeder parallele rekursive systematische Faltungscodierer einen ersten Satz von Addierern, wobei jeder Addierer zum Empfangen einer Vielzahl von Datenströmen von dem Codiererdatensblock angeschlossen ist, einen zweiten Satz von Addierern, die mit den Ausgängen der jeweiligen Addierer des ersten Satzes von Addierern verbunden sind, und Verzögerungseinheiten zum Zuführen der Ausgangssignale des zweiten Satzes von Addierern zu deren Eingängen in einer rekursiven Anordnung umfaßt.Encoder for a turbocoded trellis code modulation with an encoder data block for storing incoming data and at least two parallel ones recursive systematic convolutional encoders, the recursive ones systematic convolutional encoder for receiving data in parallel are connected by the encoder data block, each being parallel recursive systematic convolutional encoders a first set of adders, wherein each adder is for receiving a plurality of data streams from connected to the encoder data block, a second set of Adders, with the outputs the respective adder of the first set of adders are, and delay units for feeding the outputs of the second set of adders to their inputs in a recursive arrangement. Codierer nach Anspruch 1, wobei jeder parallele rekursive systematische Faltungscodierer ferner einen weiteren Addierer umfaßt, der zum Empfangen von einigen der Datenströme von dem Codiererdatensblock und von Ausgangssignalen von einigen der Verzögerungseinheiten angeschlossen ist, wobei der Ausgang des weiteren Addierers das Ausgangssignal der rekursiven systematischen Faltungscodierer bereitstellt.An encoder according to claim 1, wherein each parallel recursive systematic convolutional encoder further comprises a further adder, the for receiving some of the data streams from the encoder data block and connected by output signals from some of the delay units is, wherein the output of the further adder, the output signal provides the recursive systematic convolutional encoder. Codierer nach Anspruch 1, wobei das Ausgangssignal ein Fehlerprüfbit darstellt.An encoder according to claim 1, wherein the output signal an error check bit represents. Codierer nach Anspruch 1, wobei die Datenströme die niedrigstwertigen Bits der codierten Daten darstellen.The coder of claim 1, wherein the data streams are the least significant ones Represent bits of the encoded data.
DE2001120155 2000-04-28 2001-04-25 Modulation with parallel turbo-rotary coding Expired - Fee Related DE10120155B4 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB0010330A GB2361852A (en) 2000-04-28 2000-04-28 Turbo coded trellis code modulation
GB00103309 2000-04-28
DE10165029 2001-04-25

Publications (2)

Publication Number Publication Date
DE10120155A1 DE10120155A1 (en) 2001-11-22
DE10120155B4 true DE10120155B4 (en) 2008-08-28

Family

ID=9890652

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2001120155 Expired - Fee Related DE10120155B4 (en) 2000-04-28 2001-04-25 Modulation with parallel turbo-rotary coding

Country Status (4)

Country Link
CN (1) CN1330453A (en)
DE (1) DE10120155B4 (en)
FR (1) FR2808390A1 (en)
GB (1) GB2361852A (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100444524C (en) * 2002-08-01 2008-12-17 扎班纳数字资金有限责任公司 Parallel convolutional encoder
CN103986557B (en) * 2014-05-23 2017-06-13 西安电子科技大学 The parallel block-wise decoding method of LTE Turbo codes in low path delay

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6023783A (en) * 1996-05-15 2000-02-08 California Institute Of Technology Hybrid concatenated codes and iterative decoding
AR010163A1 (en) * 1997-05-12 2000-05-17 Siemens Ag PROCEDURE FOR THE CODIFICATION OF DIGITAL COMMUNICATION INFORMATION CHANNEL
CN1614898B (en) * 1998-10-13 2011-04-27 交互数字技术公司 Turbo code encoder and encoding method

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
BINGEMANN, M., KHANDANI, A. K.: Symbol-Based Turbo Codes. In: IEEE Communications Letters, vol. 3, no. 10, October 1999, S. 285-287 *
CAI, Z., SUBRAMANIAN, K.R., ZHANG, L.: DTM Scheme with Multidimensional Turbo Trellis Code. In: Electronics Letters, vol. 36, no. 4, 17<SUP>th</SUP> February 2000, S. 334-335 *
CAI, Z., SUBRAMANIAN, K.R., ZHANG, L.: DTM Scheme with Multidimensional Turbo Trellis Code. In: Electronics Letters, vol. 36, no. 4, 17th Feb- ruary 2000, S. 334-335

Also Published As

Publication number Publication date
DE10120155A1 (en) 2001-11-22
CN1330453A (en) 2002-01-09
FR2808390A1 (en) 2001-11-02
GB0010330D0 (en) 2000-06-14
GB2361852A (en) 2001-10-31

Similar Documents

Publication Publication Date Title
DE3910739C2 (en)
DE19781914C2 (en) System for implementing run length limited codes
DE69923970T2 (en) Channel decoder and method for channel decoding
DE69838451T2 (en) PROCESS AND SWITCHING FOR ADAPTIVE CHANNEL CODING
DE69532949T2 (en) METHOD AND APPARATUS FOR DECODER OPTIMIZATION
DE69736881T2 (en) PARALLEL CHAINED TAIL BITING FOLDING CODE AND DECODER THEREFOR
DE69936908T2 (en) ITERATIVE DECODING OF PRODUCT CODES
DE69722571T2 (en) System and method for digital transmission with a product code combined with multidimensional modulation
DE69925151T2 (en) EFFICIENT NORMALIZATION OF TRELLISCET METHODIC VALUE
DE112004002008B4 (en) Unified Viterbi / Turbo decoder for mobile telecommunication systems
DE602004012417T2 (en) DECODING DEVICE AND DECODING METHOD
EP0755122A2 (en) Method and device for fixing an adaptive interrupt criterion with iterative decoding of multidimensional coded information
DE69936067T2 (en) Method and apparatus for maximum a posteriori probability decoding
DE102005010006A1 (en) Method for scheduling turbo-decoding of received data involves turbo-decoding of iterative data and has two partial decoding per iteration, this involves several first log-likelihood-ratio-values of apriori-information
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
DE10196688B3 (en) A decoder for trellis-based channel coding
EP1236281A1 (en) Turbo code decoder and turbo code decoding method with iterative channel parameter estimation
DE60104338T2 (en) DEVICE AND METHOD FOR TURBO DECODING WITH SIGNATURE DATA COMPARISON AS ABORT CRITERION
DE10310812B4 (en) Decoding device, trellis processor and method
DE10120155B4 (en) Modulation with parallel turbo-rotary coding
DE60101745T2 (en) VITERBI DECODING WITH PATH METRIC UPDATE PERFORMED IN UNITS OF WHEEL DISKS
WO2002060071A2 (en) Viterbi decoder
DE10048872A1 (en) Sectional deinterleaving
DE10010238A1 (en) Procedure to save path metrics in Viterbi decoder - with read and store of path metrics out of or into same memory area as stores target states under same memory address
DE19934646A1 (en) Method and device for iterative decoding of chained codes

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
8127 New person/name/address of the applicant

Owner name: ZARLINK SEMICONDUCTOR INC., CITY OF OTTAWA, ONTARI

8127 New person/name/address of the applicant

Owner name: 1021 TECHNOLOGIES KK, YOKOHAMA, JP

8172 Supplementary division/partition in:

Ref document number: 10165029

Country of ref document: DE

Kind code of ref document: P

Q171 Divided out to:

Ref document number: 10165029

Country of ref document: DE

Kind code of ref document: P

AH Division in

Ref document number: 10165029

Country of ref document: DE

Kind code of ref document: P

8339 Ceased/non-payment of the annual fee