Iterative (”Turbo”) Decoding of Threshold Decodable Codes

Report 1 Downloads 39 Views
Iterative (”Turbo”) Decoding of Threshold Decodable Codes Sven Riedel and Yuri V. Svirid∗ Technical University of Munich Department of Communications D-80290 Munich, Germany

Abstract In this paper we extend the idea of iterative decoding of two–dimensional systematic convolutional codes — so–called ”turbo” codes — to threshold decoding. A threshold decoding algorithm is presented which uses soft information from the channel and a priori values as input and delivers soft outputs. The soft output can be split into three terms. The first two terms represent the soft input including the a priori value, while the third is called extrinsic value. The extrinsic value is transmitted as a priori information to the following decoder for the next iteration. Surprisingly good simulation results are shown for the Gaussian channel and the fully interleaved slowly Rayleigh fading channel.

1

Introduction

Recently, a new class of parallel concatenated convolutional codes called ”turbo”–codes was presented [1]. The main idea is to encode the sequence of information bits twice with two encoders. One of the encoders uses the information in the given order. The other encoder operates with an interleaved version of the information bits. However, since the code is systematic, the information sequence needs to be transmitted only once. This code construction is decodable with two decoders in a sequential scheme. The first decoder associated with the first encoder uses both the soft information from the channel for all coded bits and the a priori information about the information bits. For each decoded symbol it delivers a soft output which can be split into a channel value, an a priori value, and the so–called extrinsic value. The latter represents the judgement of other information bits and parity check bits on the current bit. Afterwards the extrinsic information is interleaved and passed on as a priori information to the second decoder. This decoder operates like the first, however, it uses the interleaved sequence of information bits and the associated parity check bits of the second encoder. It also delivers extrinsic values which are used in the next iteration by the first decoder. Note that in contrast to non iterative decoding, the purpose of a decoder is to produce the extrinsic information for the next step. Until now, two decoding methods were used. The authors in [1] based their decoder on the Maximum A Posteriori (MAP) symbol–by–symbol algorithm developed by Bahl et al. [2]. Because of the large complexity of this algorithm the same procedure was performed with a modified Soft Output Viterbi Algorithm (SOVA) [3]. The intention of this paper is a further reduction of the complexity by using the well–known threshold decoding method introduced by Massey [4]. The decision rule for threshold decoding is formulated in the MAP notation, but the decoder uses not the whole possible information included in the constraint length of the code, and is for this reason suboptimal.

2

Preliminaries

In the sequel we shall consider only the binary case. A convolutional encoder with rate Rc = k/(k + 1) (1) (k) (1) (k+1) encodes the information bits nu , . . . , nu and produces the output bits xu , . . . , xu at time u = (1) (k+1) 0, 1, 2, . . .. During the transmission the error sequence eu , . . . , eu corrupts the coded bits. This ∗ Yuri

V. Svirid is also with the Department of RTS, Belarusian State University of Informatics and Radioelectronics, P. Brovka Street 6, 220027 Minsk, Belarus

1

(i)

(i)

(i)

sequence is statistically independent from digit to digit. Thus, we receive the sequence x ˆu = xu ⊕ eu , (i) 1 ≤ i ≤ k + 1, where ⊕ denotes the modulo–2 addition. We assume that an error occured, if eu = 1. (i) Consequently, no error happened, if eu = 0 is true. It is well–known, that soft decisions are superior to hard decisions. In Figure 1 the memoryless

signal ”±1” -⊗ 6

-⊕ y 6

-

white noise (σ 2 =

a

N0 2Es )

Figure 1: Model of the channel with fading amplitude a and additive white Gaussian noise with variance σ2 . (i)

channel with binary antipodal signaling (BPSK) is shown. The bits xu = 0 are mapped into the signal (i) ”+1”, while the signal ”−1” is sent, if xu = 1. For the fading channel the fading amplitude a is Rayleigh distributed and for the Gaussian channel we have a = 1. The additive white Gaussian noise has zero mean and variance σ 2 . The power spectral density of the noise process is constant (N0 /2Es ) over the entire frequency range. It is normalized by the energie per symbol Es . After the transmission of the coded (i) bits xu over the channel while assuming optimal demodulation we can calculate the conditional log– (i) (i) likelihood ratio of a sent symbol in dependence of the conditional probability density function f (yu |xu ) (i) (i) (i) of yu , where yu is the matched filter output associated with the binary value xu : (i) L(x(i) u |yu )

= ln

(i)

(i)

(i)

(i)

P (xu = 0|yu ) P (xu = 1|yu ) (i)

(i)

= ln

f (yu |xu = 0) (i)

(i)

f (yu |xu = 1)

(i)

+ ln

P (xu = 0) (i)

P (xu = 1)

(i) = L(yu(i) |x(i) u ) + L(xu ).

(1)

Es a · yu(i) N0

(2)

The soft output of the channel L(yu(i) |x(i) u )=4

depends on the signal–to–noise ratio Es /N0 and the amplitude a. The log–likelihood ratio of the a priori (i) (i) (i) (i) (i) ˆu = 0 probability of the symbol xu is denoted by L(xu ). If L(xu |yu ) > 0, we make the hard decision x (i) (i) (i) (i) of the transmitted bit xu , otherwise we decide x ˆu = 1. The magnitude |L(xu |yu )| can be considered (i) as a measure of the reliability of this hard decision x ˆu . (i) For threshold decoding it is important to provide information about the error symbol eu . The a (i) posteriori log-likelihood ratio of an error symbol eu is defined as (i) L(e(i) u |yu ) =

ln

=

ln

(i)

(i)

(i)

(i)

P (eu = 0|yu ) P (eu = 1|yu ) (i)

= =

(i)

(i)

(i)

f (yu |eu = 0) (i)

+ ln

P (eu = 0) (i)

f (yu |eu = 1) P (eu = 1) ¯ ¯ ¯ f (y (i) |x(i) = 0) ¯ u u ¯ ¯ ¯ln ¯ + L(e(i) u ) ¯ f (yu(i) |x(i) ¯ u = 1)

4

Es a · |yu(i) | + L(e(i) u ). N0 2

(3)

(i)

(i)

(i)

(i)

(i)

(i)

The term L(yu |eu ) is related to the soft output of the channel by L(yu |eu ) = |L(yu |xu )|. Again, (i) L(eu ) is the a priori term. We want to recall two useful properties of log–likelihood ratios. It is easy to prove [5] that the log-likelihood ratio of the modulo–2 sum of two statistically independent binary random variables v1 and v2 depends on L(v1 ) and L(v2 ) and can be formulated as: L(v1 ⊕ v2 )

= ≈

1 + eL(v1 ) eL(v2 ) eL(v1 ) + eL(v2 ) sign(L(v1 ))sign(L(v2 )) · min(|L(v1 )|, |L(v2 )|). ln

(4)

Note that the reliability |L(v1 ⊕ v2 )| of the sum is approximately determined by the symbol vc , c = 1, 2, with the smallest reliability |L(vc )|. It is convenient to define a special operation ¢ which denotes the addition L(v1 )¢L(v2 ) = L(v1 ⊕v2 ) [5]. Furthermore, the following generalization is possible: C C X X L( vc ) = L(vc ) = ⊕

c=1

¢

c=1



QC ln

L(vc ) c=1 (e QC L(vc ) c=1 (e

C Y

+ 1) + + 1) −

QC

L(vc ) c=1 (e L(vc ) c=1 (e

QC

− 1) − 1)

sign(L(vc )) · min |L(vc )|.

(5)

c=1,...,C

c=1

In [7] it is shown, that the log–likelihood ratio of v conditioned on F different, statistically independent observations vf is given by the sum of the a priori value L(v) and the log–likelihood ratios L(vf ): F X L(v|v1 , . . . , vF ) = L(v) + L(vf ). (6) f =1

Below we will use the described idea of log–likelihood ratios as soft information about binary symbols for iterative threshold decoding.

3

Soft–In/Soft–Out Threshold Decoding

Soft–In threshold decoding is well–known as A Posteriori Probability (APP) decoding [4]. The objective (i) (i) (i) of Massey’s decoder is to maximize the probability P (e0 = ξ|{Aj }) that the error symbol e0 , 1 ≤ i ≤ k, (i)

has a certain value ξ ∈ {0, 1} under the condition that we have a set {Aj }, 1 ≤ j ≤ J, of parity checks (i)

(i)

(i)

orthogonal on e0 . Each parity check Aj can be calculated as modulo–2 sum of e0 , a special selection (α)

(i,α)

(α)

of error symbols es , 1 ≤ α ≤ k, s ∈ Sj , associated with the information bits xs , and the error Sk (k+1) (i,k+1) (i,α) (k+1) (i,α) symbols es0 , s0 ∈ Sj ⊂ α=1 Sj , associated with the parity check bits xs0 . The sets Sj (i,k+1)

and Sj consisting of integers are depending on the generator polynomials Gi (D), 1 ≤ i ≤ k, of the code. At this point it is helpful to clarify the notations. Tables 1 and 2 give two examples of self– orthogonal codes with rate Rc = 2/3 which will be used afterwards. (i) (i) (i) The value ξ which maximizes the probability P (e0 = ξ|{Aj }) is considered as the estimation eˆ0 (i)

(i)

of e0 . In the binary case the decision rule of the decoder can be formulated as follows. Decide eˆ0 = 1, if and only if J J X 1 X (i) (i) (i) w , (7) Aj wj > 2 j=0 j j=1 (i)

(i)

(i)

(i)

where wj , 1 ≤ j ≤ J, is the weight of Aj and w0 is the weight of the symbol e0 . The weights are

3

G1 (D) = 1 + D + D7 (1)

G2 (D) = 1 + D2 + D5

(1)

A1

(1)

A2

(1,1)

A3

(1,1)

=∅ S1 (1,2) S1 = {0} (1,3) S1 = {0}

(1,1)

= {1} S2 (1,2) S2 = {1} (1,3) S2 = {1}

(2)

= {6, 7} S3 (1,2) S3 = {2, 5, 7} (1,3) S3 = {7}

(2)

A1

(2)

A2

(2,1)

A3

(2,1)

S1 = {0} (2,2) S1 =∅ (2,3) S1 = {0}

(2,1)

S2 = {1, 2} (2,2) S2 = {2} (2,3) S2 = {2}

S3 = {4, 5} (2,2) S3 = {3, 5} (2,3) S3 = {5}

Table 1: Example of a self–orthogonal code with Rc = 2/3 and J = 3

G1 (D) = 1 + D3 + D4 + D12 (1)

G2 (D) = 1 + D2 + D7 + D13

(1)

A1

(1)

A2

(1,1)

(1,1)

=∅ S1 (1,2) = {0} S1 (1,3) S1 = {0} (2)

A4

= {1, 4} S3 (1,2) = {2, 4} S3 (1,3) S3 = {4}

= {8, 9, 12} S4 (1,2) = {5, 10, 12} S4 (1,3) S4 = {12}

(1,1)

= {3} S2 (1,2) = {1, 3} S2 (1,3) S2 = {3} (2)

A1 (2,1)

(1,1)

(2)

A2

(2)

A3

(2,1)

S1 = {0} (2,2) =∅ S1 (2,3) = {0} S1

(1)

A3

A4

(2,1)

S2 = {2} (2,2) = {2} S2 (2,3) = {2} S2

(2,1)

S3 = {3, 4, 7} (2,2) = {5, 7} S3 (2,3) = {7} S3

S4 = {1, 9, 10, 13} (2,2) = {6, 11, 13} S4 (2,3) = {13} S4

Table 2: Example of a self–orthogonal code with Rc = 2/3 and J = 4 (i)

(i)

(i)

(i)

directly given by the log–likelihood ratios L(e0 |y0 ) and L(Aj ⊕ e0 |y), namely1 (i)

w0

(i)

wj

(i)

(i)

(i)

(i)

(i)

(i)

P (e0 = 0|y0 )

=

L(e0 |y0 ) = ln

=

L(Aj ⊕ e0 |y) = ln

(i)

P (e0 = 1|y0 )

(i)

,

(i)

(i)

(i)

(i)

P (Aj ⊕ e0 = 0|y) P (Aj ⊕ e0 = 1|y)

.

(8)

(i)

The value w0 is immediately derived from the channel, see equation (3), while the application of equation (i) (5) yields the log–likelihood ratios wj : (i)

wj =

k X X ¢

α=1 1 The

(i)

expression Aj

(i)

⊕ e0

X

(k+1)

L(es0

(i)

(i)

⊕ e0 |y) denotes not the variables Aj

remaining part of the parity check equation associated with for simplification.

(k+1)

|ys0

).

(9)

¢ (i,k+1) s0 ∈Sj

¢ (i,α) s∈Sj

(i)

in L(Aj

(α) L(e(α) s |ys ) ¢

(i) Aj

4

if on both sides

(i)

and e0 , but is an abbreviation for the

(i) e0

is added. The indices of y are dropped

(i)

(i)

(i)

Assuming correct estimations, i.e. eˆ0 = e0 , the error bits eˆ0 are substracted from each syndrom equation they affect. Along with the most recently updated syndrom bit the modified syndroms are used (i) to get new sets of parity checks orthogonal on e1 . Again, the decoding rule in (7) is applied. Each (i) successive error bit eu can be estimated in the same way. The soft output of the decoder can be calculated as the log–likelihood ratio (i) (i) L(e0 |{Aj }, y)

=

ln

(i)

(i)

(i)

(i)

P (e0 = 0|{Aj }, y) P (e0 = 1|{Aj }, y) (i)

=

=

ln

(i)

P ({Aj }|e0 = 0, y) (i)

(i)

P ({Aj }|e0 = 1, y)

J X

(i)

ln

j=1

+ ln

(i)

(i)

(i)

(i)

P (e0 = 0|y0 ) P (e0 = 1|y0 )

(i)

P (Aj |e0 = 0, y) (i) (i) P (Aj |e0

= 1, y)

(i)

+ w0 .

(10)

According to [4] and equation (3) we can write (i)

(i)

L(e0 |{Aj }, y) =

J X

Es (i) (i) (i) (i) (1 − 2Aj )wj + 4 a · |y0 | + L(e0 ) . N | {z } j=1 | 0 {z } a priori | {z } channel extrinsic

(11)

Note that equation (11) is another form of the decoding rule (7). The decision of the decoder should be (i) (i) (i) (i) (i) based on L(e0 |{Aj }, y). If L(e0 |{Aj }, y) is negative, the decoder decides for eˆ0 = 1. The magnitude (i)

(i)

(i)

|L(e0 |{Aj }, y)| can be used as reliability information about the hard decision eˆ0 . Equation (11) can be split into three terms, namely into the so–called extrinsic information which, according to (9), represents (i) the influence of the error bits orthogonal on the current bit e0 , the soft output of the channel, and the a (i) priori value L(e0 ). If a priori information about the error bits is available, it is also used in calculating (i) the weigths wj , see equations (9) and (3). It is interesting to note that equation (11) can be compared with (6). This fact is important if further statistically independent a priori information is available like in a source–controlled channel decoding approach [6] or a diversity system.

4

Iterative Decoding

The major objective of any iterative ’turbo’–decoding scheme is to improve the performance of the decoding procedure by using reliability information delivered by one decoder and passing it to the following decoder as a priori information in addition to the soft output of the channel. If the soft output, see equation (11), was directly used as a priori information by the next decoder, the soft output of the channel would be used twice. Furthermore, the previous a priori information would influence the new a priori value. Therefore, it is very important to use only the extrinsic information as updated a priori values which can easily be calculated from the decoder’s soft output. Another problem concerns the information given to the decoder. It should be uncorrelated as much as possible, i.e., the source of the a priori value has to be different from the channel output associated with the same bit. A sequential decoding scheme which deals with uncorrelated channel values and a priori values at least while the first iteration can be made possible by using an interleaver at the encoder. In the following, we restrict ourselves to the two–dimensional case. An extension to three or even more dimensions is obvious. The encoder consists of two component encoders with interleaving between them. The first encoder operates directly on the information bits to be transmitted and the second encoder generates parity check bits associated with the interleaved sequence of the information bits. Interleaving can be performed by a block interleaver or a pseudo random interleaver. It is known from several publications that the obtainable performance of the code is usually increased by using random interleavers. Such interleavers can be described by the relationship An+1 = (aAn + b) mod L, 5

(12)

where L is the length of the scrambled sequence, An describes the permutation and a and b have to satisfy several conditions to obtain a maximum length sequence [8]. Table 3 shows some possible combinations

Random Interleavers number 1 2 3 4 5

L 9990 9999 1000 999 10000

a 1111 3334 21 112 21

b 17 17 17 17 17

Table 3: Some possible interleavers of a, b and L. The total rate R of the code depends on the rate Rc = k/(k + 1) of the component encoders and the length L of the information bit sequence: R=

L k = . L + m1 + m2 + 2L/k k + 2 + k(m1 + m2 )/L

(13)

The memory of the component encoders is denoted by m1 and m2 . It has to be taken into account due to the nessesary termination of both component codes. If L is sufficently large, the total rate can be approximated by k R≈ . (14) k+2 Figure 2 depicts an example of an encoder with R ≈ 1/2. ³ information q bits.s³.³ .

s s

.

.q

-

.q

-

?

-

check Encoder 1 paritybits

Interleaver ³s s³.³ . .s

-

.

-

check Encoder 2 paritybits

Figure 2: The structue of the encoder with rate R ≈ 1/2 for two–dimensional schemes The decoding is organized as follows. Two decoders — one for component code 1, the other for code 2 — are used in a sequential scheme. The first decoder operates on the channel values associated with code 1 and, if available, the associated a priori information. It generates extrinsic information about the information bits to be decoded. The second decoder works with the interleaved sequence of channel values representing the information bits, the convenient interleaved extrinsic information of decoder 1 which is used as a priori information, and the channel values associated with the parity check bits of component code 2. It delivers extrinsic information which can be used after deinterleaving as a priori information for decoder 1 in the next iteration. Soft decisions as well as hard decisions of decoder 2 have to be deinterleaved in order to get the right order of the estimates of the transmitted information bits. These two decoding steps are called one iteration.

6

The described procedure can be performed again and again. However, the channel values and the generated a priori values become more and more correlated. Therefore, any further iteration yields less or even no coding gain over the previous iteration. Figure 3 illustrates the decoding scheme. hard decision 6 6soft output a priori valuechannel (soft) channel (hard) ½

Iteration 1

new a priori value delayed channel ` `

` `

½ ½ a priorichannel-

66

Interleaver extrinsic - IL a prioriDecoder 1 interleaved channel -

` `

-

Iteration 2 ` `

` `

` `

` ` ` ` Deinterleaver hard -decision

DIL

Decoder 2

output - DIL softnew -a priori DIL value

Figure 3: Generalized structure of the decoder for two–dimensional coding schemes (thin lines: hard values; thick lines: soft values)

5

Complexity of the Codec

We want to examine the hardware complexity of the described coding scheme by taking only the required memory elements into account. Other components of the scheme are less important. A two–dimensional encoder requires an interleaver with memory L. This leads to a more or less large encoding delay. Furthermore, for each self–orthogonal encoder with rate Rc = k/(k + 1) one binary shift register with memory m1 , respectively m2 , is needed. The memory of one register can be approximated by kJ(J − 1)/2. While decoding each iteration requires two soft decision threshold decoders. Each of them consists of one binary shift register like in the associated component encoder for calculating new syndroms and a syndrom register with memory m1 and m2 , respectively. Additionally, memory is needed to store the sum of the channel soft output and the a priori value of each error symbol for a fast calculation of the decision rule. This can be done by using k real valued shift registers of length equal to the memory of the decoded component code. However, the major memory consumption of the decoding scheme is required by the interleavers and the needed storage of the channel soft outputs and the a priori values for further decoding. The computational complexity is determined by equations (9) and (11). For the calculation of the (i) values wj we need J k+1 X X (i,α) card{Sj } − J (15) j=1 α=1

¢ operations, where card{·} denotes the cardinality of a set. Note that the ¢ operation can be approximated by sign and minimum operations what has been done for all simulation results below. The value (i) (i) 1 − 2Aj , Aj treated as a real number, is equal to +1 or −1. Thus, we need only sign or compare operations for the J − 1 additions to calculate the extrinsic information. Two further additions are necessary to compute the soft output of the decoder. Moreover, we have to make a number of compare operations — for instance to obtain the hard decision from the soft output — which will be neglected. For example, if we use two rate Rc = 2/3 component codes with J = 3, 2 · 8 ¢ operations are needed per information bit and iteration for calculating the weight terms, and additionally 2 · 4 additions to add up the soft output.

7

6

Simulation Results

In this section we present some simulation results for different combinations of encoders and interleavers. All coding schemes are two–dimensional. Figure 4 shows the simulation results for an encoder consisting of interleaver 1 and two component 1.0e+00

bit error rate

1.0e-01 uncoded

1.0e-02

20

12 6 4 3

2

1

1.0e-03

1.0e-04

1.0e-05 1

1.5

2

2.5

3 3.5 Eb/N0 [dB]

4

4.5

5

Figure 4: R ≈ 1/2, blocklength L = 9990, two component codes with J = 3, Gaussian channel codes with J = 3 described in Table 1. The total rate of the code is R ≈ 1/2. The curve labeled ’uncoded’ was derived with antipodal signaling (BPSK) over a Gaussian channel. The other plots show the achieved bit error rates (BER) using up to 20 iterations. It can be seen that in case of a bad channel each addional iteration results in a coding gain. However, if the signal–to–noise ratio (SNR) is increased the coding gain is bounded after some iterations. A BER of 10−3 is achieved with 6 iterations at approximately 2.4dB, and a BER of 10−5 at 4.2dB. Concerning a BER of 10−5 the performance can be increased by using two component codes with J = 4, see Figure 5. With 6 iterations a BER of 10−5 is now obtained at Eb /N0 = 3.2dB. However, the 1.0e+00 1.0e-01 uncoded bit error rate

1.0e-02

1

1.0e-03 15

6 4

3

2

1.0e-04 1.0e-05 1.0e-06 2.8

3

3.2 3.4 Eb/N0 [dB]

3.6

3.8

4

Figure 5: R ≈ 1/2, blocklength L = 9990, two component codes with J = 4, Gaussian channel complexity is increased and the performance at lower SNR is significantly decreased in comparison with the previous code. Figure 6 shows the combination of component codes with J = 3 and J = 4. Such an approach combines the properties of the two previously discussed codes. The code with J = 3 is well adepted for low 8

1.0e+00

1.0e-01

bit error rate

uncoded 1.0e-02 1 10

6

2.4

2.6

1.0e-03

4

3

2

2.8 3 3.2 Eb/N0 [dB]

3.4

1.0e-04

1.0e-05 2

2.2

3.6

3.8

4

Figure 6: R ≈ 1/2, blocklength L = 9990, combination of component codes with J = 3 and J = 4, Gaussian channel SNR, whereas the code with J = 4 yields better results at higher SNR. Unfortunately, the disadvantages of both component codes are also present, so that we reach at 2.6dB a BER of 10−3 with 6 iterations and at 3.7dB a BER of 10−5 . However, this performance is somewhat better than the BER of a convolutional code with memory 6 and rate 1/2 and soft decision Viterbi decoding [8]. The influence of the component codes can be described more precisely. A single code with J = 3 intersects the ’uncoded’ curve at a lower SNR than a code with J = 4. Therefore, the performance of two parallel concatenated codes with J = 3 is good at low SNR. On the other hand, the curve of a single J = 4 code is steeper at a higher SNR. In consequence the performance of the two–dimensional scheme at higher SNR is better. For achieving a good bit error rate at low SNR component codes with J ≤ 4 are favourable. The performance of the code is strongly affected by the blocklength L. Simulation results for L = 1000 and two component codes with J = 4 are shown in Figure 7. Six iterations are needed at 1.0e+00

bit error rate

1.0e-01 uncoded 1.0e-02 1 1.0e-03

6

1.0e-04

3

2

1.0e-05 3

3.2

3.4

3.6 3.8 Eb/N0 [dB]

4

4.2

Figure 7: R ≈ 1/2, blocklength L = 1000, two component codes with J = 4, Gaussian channel 4.1dB to reach a BER of 10−5 . That means that the performance will decrease, if we use shorter blocks. The simulation results are slightly better than in Figure 5 if L = 50000. However, the decoding delay is significantly increased, so that there is no reason for doing so. A fully interleaved slowly Rayleigh fading channel was used with interleaver 1 and component codes with J = 3. The results are plotted in Figure 8. The essential behavior of the coding scheme is 9

1.0e+00

1.0e-01

bit error rate

uncoded 1

1.0e-02

20

1.0e-03

8

4

3

2

1.0e-04

1.0e-05 4

4.5

5

5.5

6 6.5 Eb/N0 [dB]

7

7.5

8

8.5

Figure 8: R ≈ 1/2, blocklength L = 9990, two component codes with J = 3, Rayleigh fading channel unchanged, however, the SNR has to be increased significantly. For achieving a total rate of R ≈ 3/5 two component codes with Rc = 3/4 have been used. The generator polynomials of the applied component codes are given in Table 4.

Component codes with Rc = 3/4 J 2 3 4

generator polynomials G1 (D) = 1 + D G2 (D) = 1 + D2 G3 (D) = 1 + D3 G1 (D) = 1 + D3 + D7 G2 (D) = 1 + D2 + D8 G3 (D) = 1 + D + D10 G1 (D) = 1 + D3 + D15 + D19 G2 (D) = 1 + D8 + D17 + D18 G3 (D) = 1 + D6 + D11 + D13

Table 4: Generator polynomials for component codes with Rc = 3/4 Figure 9 shows the simulation results for a code with interleaver 2 and two different component codes (J = 2 and J = 4) under presence of white Gaussian noise. As expected the performance will decrease, if the blocklength becomes shorter. Figure 10 gives an example for L = 999 and component codes with J = 3. We increased the total rate of the two–dimensional code to R ≈ 2/3 by using component codes with rate Rc = 4/5, see Table 5. A BER of 10−3 at 3dB and 10−5 at 4.5dB can be achieved with two J = 2 component codes and L = 10000. The performance can be improved by applying two component codes with J = 3. The BER of 10−5 is now reached with 6 iterations at Eb /N0 = 3.7dB. Both results are for the Gaussian channel. A comparison states that the second code is better than a R = 2/3 convolutional code with memory 6 and Viterbi decoding [8].

10

1.0e+00

1.0e-01

bit error rate

uncoded 1.0e-02

1 15

1.0e-03

8

4

3

2

1.0e-04

1.0e-05 2

2.2

2.4

2.6

2.8 3 3.2 Eb/N0 [dB]

3.4

3.6

3.8

4

Figure 9: R ≈ 3/5, blocklength L = 9999, combination of component codes with J = 2 and J = 4, Gaussian channel

1.0e+00

1.0e-01

bit error rate

uncoded 1.0e-02 1 8

1.0e-03

5

3

2

1.0e-04

1.0e-05 2.6

2.8

3

3.2 3.4 Eb/N0 [dB]

3.6

3.8

4

Figure 10: R ≈ 3/5, blocklength L = 999, two component codes with J = 3, Gaussian channel

Component codes with Rc = 4/5 J 2

3

generator polynomials G1 (D) = 1 + D G2 (D) = 1 + D2 G3 (D) = 1 + D3 G4 (D) = 1 + D4 G1 (D) = 1 + D6 + D8 G2 (D) = 1 + D4 + D9 G3 (D) = 1 + D3 + D10 D4 (D) = 1 + D + D12

Table 5: Generator polynomials for component codes with Rc = 4/5

11

7

Conclusions

Several aspects of iterative decoding of threshold decodable convolutional codes have been investigated. A ’soft–in/soft–out’ threshold decoder has been derived from Massey’s APP decoding algorithm. It accepts channel soft outputs as well as a priori values. The decoder delivers not only a soft output as reliability of the decision but also the crucial extrinsic information which is transferred from one iteration to the next. By using computer simulation the performance of two–dimensional coding schemes based on self– orthogonal component codes and pseudo random interleavers has been analysed. It can be concluded, that surprisingly good results are obtainable with very simple component codes at low signal–to–noise ratios for bit error rates above 10−5 . The performance at high SNR is determined by the small free distance of the codes. However, it can be seen that the minimum free distance of the component codes and the resulting two–dimensional coding scheme seems to be of minor importance as far as the non asymptotic behavior is concerned. The most important result is the improvement of the BER in the range of 10−3 to 10−5 at 2 to 4dB. As pointed out, the complexity of the proposed decoder is very low. Therefore, the presented coding scheme seems optimal for very high speed data transmission systems where at low cost an adequate coding gain is desired. Furthermore, the presented decoding scheme is suitable as an inner code of a concatenated system. We did not investigate the properties of the used interleavers at all, i.e., they were choosen by random. Further improvements are expected by optimizing the interleavers in dependence of the component codes in such a way that the minimum distance of the two–dimensional code increases [9] and the whole code has a ’good’ weight distribution.

References [1] C. Berrou, A. Glavieux and P. Thitimajshima, ”Near Shannon Limit Error-Correcting Coding and Decoding: Turbo-Codes”, Proc. IEEE International Conference on Communication (ICC), pp. 1064– 1070, May 1993 [2] L. R. Bahl, J. Cocke, F. Jelinek and J. Raviv, ”Optimal Decoding of Linear Codes for Minimizing Symbol Error Rate”, IEEE Trans. Inform. Theory, Vol. IT–20, pp. 284–287, March 1974 [3] J. Hagenauer, L. Papke, ”Decoding ”Turbo”–Codes with the Soft Output Viterbi Algorithm (SOVA)”, Proc. IEEE International Symposium on Information Theory, Trondheim, Norway, 1994, p. 164 [4] J.L. Massey, ”Threshold Decoding”, Cambridge, Ma, M.I.T. Press, 1963 [5] J. Hagenauer, ”Soft is better than Hard”, printed in ”Communications and Cryptography — Two Sides of One Tapestry”, edited by R. E. Blahut, D. J. Costello, Jr., U. Maurer and T. Mittelholzer, pp. 155–171, Kluwer Academic Publishers, 1994 [6] J. Hagenauer, ”Source–Controlled Channel Decoding”, accepted by Trans. on Communications [7] W. H. Pierce, ”Adaptive Vote–Takers Improve the Use of Redundancy”, published in ”Redundancy Techniques for Computing Systems”, pp. 229-250, Spartan Books, 1962 [8] G. C. Clark, Jr., and J. B. Cain, ”Error–Correction Coding for Digital Communications”, Plenum Press, 1981 [9] P. Robertson, ”Illuminating the Structure of Code and Decoder for Parallel Concatenated Recursive Systematic (Turbo) Codes”, Proc. IEEE GLOBECOM ’94, pp.1298-1303, San Francisco, USA, November–December 1994

12