Multi-Fold Turbo Codes for the 2-User Binary Adder

0 downloads 0 Views 413KB Size Report
and the BAC noiseless output at time instant k. B. Multi-fold Turbo Decoding for 2-BAC. Decoding of multi-fold turbo codes differs from the decoding used in ...
Multi-Fold Turbo Codes for the 2-User Binary Adder Channel Abbas Khalid, Hassan Ahmed, Paddy Farrell, FREng, FIEEE, FIET, and Bahram Honary School of Computing and Communications, Lancaster University, Lancaster, UK Email: [email protected] Abstract — This paper presents multi-fold turbo codes for a 2user binary adder channel employing distinct codes for each user. Results obtained through computer simulation show an improvement of 1.0 dB for both users at BER 10-5 over turbo convolutional codes for a noisy binary adder channel.

I.

INTRODUCTION

A multiple access communication system allows multiple users, which are geographically separated, to convey information over the same common channel, known typically as a Multiple Access (MA) Channel. A simplistic view of a multiple access system is to consider that two users wish to transmit simultaneously, at the same time, on the same frequency and using the same modulation. Both users transmit over a MA channel where a single decoder is employed to determine what each user had transmitted. Both users are assumed to maintain ideal synchronization throughout. The simplest MA channel is the two-user Binary Adder Channel (2-BAC), as illustrated in Fig. 1.The 2-BAC is memoryless and accepts two binary inputs at each unit of time, one from each user. Both users are assumed to produce equally likely binary digits {0, 1}, which are transmitted across the BAC and simply added together. The output of the BAC, in a noiseless scenario, is the arithmetic sum of the inputs as depicted in Table 1. At the receiving side, the decoder processes the received symbol and decodes it into two digits for the two data sinks. The output symbol 1 cannot be unambiguously decoded even in the noise-less case. In the noisy environment the 2-BAC output is described by a conditional probability distribution [1]. The capacity region of a MA channel is defined as the region of source rates at which communication with arbitrarily small probability of decoding error is possible. For 2-BAC, this region was determined independently by Ahlswede [2], Liao[3], and Slepian and Wolf [4].

Figure 1. Two user MA system over binary adder channel.

ISBN: 978-1-902560-26-7 © 2012 PGNet

Turbo coding has made near Shannon limit performance possible when sub-optimal iterative decoding algorithms are used. The classical turbo code is the parallel concatenation of two recursive, systematic convolutional codes separated by an interleaver [5]. Turbo codes in conjunction with the 2BAC was first studied in [6] where parallel concatenated identical convolutional codes, separated by an interleaver, were used as inner codes in series with an outer block code for both users. The block code used was one of a pair of 2BAC uniquely decodable binary block codes and its job was to eliminate those paths in the 2-BAC trellis [7] that could result in ambiguity at the decoder. One example of a twouser binary uniquely decodable block code pair is shown in Table 2. Later, the performance of two non-identical turbo convolutional codes for two users was studied over the 2BAC, however, in this case the turbo codes were not concatenated with any other channel code. Initial results indicated that the performance of the non-identical turbo codes outperformed the concatenation of the inner turbo code and outer block code over the 2-BAC [8]. Multi-fold turbo coding [9] is a technique used to improve the error performance of conventional turbo codes. In [10], it was suggested that a good long code should have a distance distribution which mimics that of random coding rather than have a large minimum distance. Multi-fold turbo coding increases the randomness of a turbo code and brings its weight spectrum closer to the binomial weight distribution of a random code by dividing the long information sequence in small sub-blocks and making use of multiple pseudo random interleavers . Table 1. Noise-less 2-BAC

User 1 0 0 1 1

User 2 0 1 0 1

Output 0 1 1 2

In this paper, we investigate the performance of Multifold turbo coding for two users over a BAC. The rest of this paper is organized as follows: in section II we explain the general definitions of Multi-fold turbo codes and the encoding circuitry employed. In section III we describe the two-user BAC and in section IV we describe the 2-user trellis and the iterative decoding method employed. In section V we present results before concluding the paper in section VI.

Table 2. Two user uniquely decodable block code pair for block length 2.

User 1 (0 0) (1 1)

User 2

(0 0) (0 1) (1 0)

0 0 0 1 1 0

1 1 1 2 2 1

II. MULTI-FOLD TURBO CODES Multi-fold turbo codes [9] are designed almost similarly to classical turbo constructions. With turbo codes there are two recursive systematic convolutional (RSC) codes in parallel separated by a single interleaver. Multi-fold turbo codes employ M parallel convolutional codes separated by M-1 interleavers. For encoding, an information sequence is divided into sub-blocks of equal size. Distinct sub-blocks are combined to form frames such that each sub-block appears in at least two frames. Each frame is interleaved by a different interleaver and encoded by a separate encoder. Two-fold turbo codes are the least complex members of the multi-fold family, which have three parallel RSC codes separated by two interleavers as depicted in Fig. 3. The information sequence is divided into three equal sub-blocks, denoted a1,a2,a3. Each sub-block is combined with another to form three frames, (a1,a2), (a1,a3), (a2,a3). Two of the frames are permuted by the two different interleavers, π1 and π2, and one frame remains unchanged. Each frame is then subsequently encoded by one of the three parallel RSC encoders i.e. each bit is encoded by two different encoders. The three encoders generate three parity check frames: P1,2, P1,3 and P2,3 corresponding to the three information frames (a1,a2), (a1,a3), (a2,a3). In Fig. 2 the three parity sequences are generated using three rate 1/2 recursive, systematic convolutional encoders. The overall rate of the two-fold turbo code is 1/3 if puncturing is not applied. Since each section of the information sequence is only ever encoded by two of the RSC codes we can determine that for a bit in each sub-block two parity bits are generated as a result of encoding, hence a rate 1/3 code.

III.

2 - USER BINARY ADDER CHANNEL

Consider two sources that are geographically separated that wish to transmit over the same common two-user BAC channel. Let (C1, C2) denote a pair of users that employ nonidentical two-fold turbo codes at their transmitting sides. Suppose user C1 uses the two-fold code depicted in Fig. 2 and has the polynomial generator matrix G1(D) [8] for all three parallel RSC codes, C1(1) , C1(2) , C1(3)   

1 D 1  D

User C2 has the polynomial generator matrix G2(D) [8] that represents the three parallel recursive, systematic (2) (3) convolutional codes C (1) 2 , C2 , C2

  

 D 1  D

Let’s consider the binary input to C1 as the information sequence :

 1    , , … . ,  , … .  

1

The information sequence u for user C1 is split into three equal length sub-blocks denoted a1, a2, a3. Each sub-block is combined to create the frames U1 = (a1, a2), U2 = (a1, a3), U3 = (a2, a3), which are permuted and encoded to produce the output sequence v. Similarly, the binary sequence of information bits corresponding to user C2 is :   1   ,  , … . ,  , … .  

2

The information sequence is split into three equal subblocks also, denoted here as b1,b2,b3. Each sub-block is combined to create the frames D1 = (b1,b2), D2 = (b1,b3), D3 = (b2,b3), which are permuted and encoded to produce the output sequence w. The interleavers for both users (C1,C2) are random interleavers. The interleavers employed by C2 must be identical to that of C1 for their respective convolutional codes, i.e. C 1(2) and C (2) 2 will use the same interleaver π1 and C 1(3) and C (3) 2 will use the interleaver π2. The transmission rate for both users is assumed to be equal. Now we assume both users transmit the codeword sequences v and w simultaneously into the 2-BAC. The two codeword sequences are now the inputs to the 2-BAC. Firstly we assume the 2-BAC is noiseless to begin with and the channel produces a random variable denoted as:   1   ,  , … . ,  , … .  

where      ,  , … ,   Figure 2. A two-fold turbo code encoder

3 4

!

where the variable  , j = 0, 1,…, n-1 at time instant k is defined as: ! ! !  =" +# (5) !

We can observe from this equation that the variable  of the 2-BAC is the arithmetic sum of a pair of users. The noisy output r of the 2-BAC is seen as the arithmetic sum of a pair of users plus the addition of independent noise samples, which we assume to be additive white Gaussian noise with variance σ2 and zero mean value. $  $& %  $% , $' , … , $ , . . , $&  )

%

*%

where rk = ($ , $ , … , $ time instant k is defined as: $

!

 

IV.

!

) and $

*

!

6

, j = 0, 1,…, n-1, at

!

7

decoders which is used as the a priori information for the next decoding iteration. In two-fold decoding, the received code sequence rk can be divided into three subsequences that correspond to the arithmetic sum of the transmitted sequences for (C1,C2) denoted as ((a1,a2),P1,2), (π1(a1,a3),P1,3) and (π2(a2,a3),P2,3), respectively. Each subsequence is decoded by one of the three decoders using a modified MAP algorithm for the 2-user trellis. The extrinsic information from decoder 2 is de-interleaved and passed to decoders 1 and 3. Decoder 3 combines the extrinsic information from decoders 1 and 2 to act as the a priori information for the next iteration. Once the decoding operation has completed a set number of iterations each decoder will output an LLR value; LLR(1), LLR(2) and LLR(3). Each information bit will have two LLR values associated with it. The larger of the two values is chosen as the LLR value for the information bit.

2-BAC DECODING

Decoding of the received sequence r is done using an iterative trellis based decoding algorithm modified to apply to the 2-BAC scenario. A. 2-BAC Trellis The 2-user trellis for the BAC channel is derived from the individual trellises associated with each user, which are combined to produce a single trellis. The single trellis is used to decode the received sequence of the 2-user BAC channel. Fig. 3 shows a section of the 2-user trellis [8] illustrating the connectivity between states at time instant k, Sk and states at time instant k+1, Sk+1. Each branch can be seen to have a label associated with it that describes the input pair (uk, dk) and the BAC noiseless output at time instant k. B. Multi-fold Turbo Decoding for 2-BAC Decoding of multi-fold turbo codes differs from the decoding used in conventional turbo codes. In turbo decoding, the soft extrinsic information generated by one component decoder for an information block, is interleaved or de-interleaved and used as the a priori information for the other component decoder. However, in multifold decoding, each component decoder processes one sub-block, and hence soft information at its input and output obeys the subblock format. The soft information associated with each sub-block is first re-arranged before it can be utilized in iterative decoding [9]. The decoder for multi-fold codes consists of M separate decoders operating in parallel. Various subsequences corresponding to the code subsequences are received and decoded by one of the decoders using a modified MAP algorithm for the 2-user trellis. The decoders work independently of each other and produce a log-likelihood ratio (LLR) value of the received subsequence. After the first decoding iteration, extrinsic information from each decoder is de-interleaved and divided between the other

Figure 3. A section of the 2-user trellis derived from the combined state table of both users in 2-BAC

C. Iterative Decoding of 2-BAC The decoder employed [9], illustrated in Fig. 4, uses iterative decoding to detect the most likely pairs (uk, dk) of binary information symbols. The iterative algorithm employed uses the BCJR technique [11], adapted for use in the 2-BAC, making use of the 2-user trellis [7],[12,13]. The and log-likelihood ratios: Λ   ,  , Λ   ,   Λ-   ,   associated with the pair (uk, dk) of information symbols from users 1 and 2, respectively, are computed by means of the following expressions. 234 5,64 5|8

Λ u/ , d/  = log 1

234 5,64 5|8

9

234 5,64 5|8

Λ u/ , d/  = log 1 Λ- u/ , d/  = log 1

234 5,64 5|8

234 5,64 5|8

8

9

9

9

10

234 5,64 5|8

though both coding schemes have the same code rate. While simulating these results, the multi-fold coding technique has been applied in its two-fold form, where each sub-block appears in exactly two frames. The schemes used in this paper make use of the codes for each user suggested in [8]. The curves “No Turbo” in both Figures are obtained when the turbo decoder recovers the binary signal of each user by processing the received sequence making use of decoder 1 only.

where P   >,   ?|$ , >  0, 1, ?  0, 1 denotes the a posteriori probability of the pair   ,   of information symbols, given the received 2-BAC sequence r.

Figure 5. Bit Error Rate for user 1

For User 1 (Fig. 5) the multi-fold turbo code has a BER of 10-5 at 3.25 dB, whereas turbo convolutional code achieves the same BER at 4.25 dB. So the multi-fold turbo code has a gain of approximately 1.0 dB at 10-5. This gain remains approximately constant as the signal-to-noise ratio (SNR) is increased.

Figure 4. An iterative two-fold turbo decoder

V.

RESULTS

The results shown in Figures 5 and 6 display the Bit error rate performance for users 1 and 2, respectively, for two different coding schemes that employ turbo coding over the 2-user BAC. In both coding schemes an interleaver with block length 512 is used and all results were obtained for 10 decoding iterations. Tests with up to 30 iterations showed no significant increase in performance. Clearly, the results displayed in Figures 5 and 6 indicate that the multi-fold 2-user turbo coding scheme performs better than the conventional 2-user turbo coding scheme, even

Figure 6. Bit Error Rate for user 2.

For User 2 (Fig. 6) the multi-fold turbo code has BER 10-5 at 4.0 dB, whereas the turbo convolutional code reaches the same BER at 5.0 dB, giving the multi-fold turbo code a gain of 1.0 dB.

VI.

CONCLUSION

Multi-fold turbo codes for multiple access channels have been introduced. Results indicate that multi-fold turbo codes perform better than standard turbo convolutional codes over the noisy 2-BAC because of an increase in the degree of randomness. In this paper, the simplest member of the Mfold family, the two-fold code, was discussed. The idea can be extended to any M-fold turbo code. The use of multi-fold turbo coding increases the cost of decoding in terms of the number of computations required. Operations involved in multiplexing, de-multiplexing and comparisons primarily contribute to the computational overhead. This overhead increases with the value of M. The two-fold turbo decoder is the least complex and introduces approximately 0.01% overhead [14]. ACKNOWLEDGEMENTS The authors would like to acknowledge COMSATS Institute of Informtion Technology Pakistan for providing support in research activities. The authors are also thankful to V. C. da Rocha Jr. for valuable technical discussions and suggestions, and for helping with the preparation of this paper.

REFERENCES [1] [2] [3] [4] [5]

[6]

[7]

[8]

[9]

[10] [11]

[12]

[13]

[14]

T. Kasami and Shu Lin, “Coding for a multiple access channel”, IEEE Trans. Info. theory, vol. IT-22, number 2, March 1976, pp. 129 – 137 R. Ahlswede, “Multi-way communications channels”, 2nd Int. Symp. on Information Transmission, USSR, 1971. H.H.J. Liao, “Multiple access channels”, Ph.D. Dissertation, Dep. Elec. Eng., Univ. of Hawaii, Honolulu, 1972. D. Slepian and J. K. Wolf, “A coding theorem for multiple-acces channels”, Bell Syst.Tech. J., vol. 51, pp. 1037-1076. 1973. Berrou, A. Glavieux, and P. Thitimajshima, “Near Shannon limit, error correcting coding and decoding: Turbo codes”, IEEE Intl. conf. Commun. (ICC ‘93), vol. 2/3, May 1993, pp. 1064 - 1071 M.L.M.G Alcoforado, V.C. da Rocha and G. Markarian, “Turbo convolutional codes for the binary adder channel”, VIII Intl. symp. Commun. Theory & Apps, Ambleside, UK, July 2005 R. Peterson and D.J. Costello, Jr, “Binary convolutional codes for a multiple-access channel”, IEEE Trans. Info. Theory, vol. 25, No. 1, January 1979, pp. 101 - 105 M.L.M.G. Alcoforado, V.C. da Rocha, M.J. de Carvalho Lima, “A Turbo convolutional coding scheme for the two-user Gaussian adder channel”, Intl. Telecomm. Symp., Manaus, Brazil, Sep. 2010. Tanriover, B. Honary, Jun Xu and Shu Lin, “Improving Turbo code error performance by multifold coding”, IEEE Commun. Letters, vol. 6, No. 5, May 2002, pp. 193 – 195 G. Battail, “A conceptual framework for understanding turbo-codes,” IEEE J. Select. Areas Commun., vol. 16, pp. 245–254, Feb. 1998. 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. M.L.M.G. Alcoforado, V.C. da Rocha and G. Markarian, “Further results on Turbo convolutional codes for the binary adder channel”, IX Intl. Symp. Commu. Theory & Apps, Ambleside, UK, 2007 V.C. da Rocha and M.L.M.G. Alcoforado, “Trellis code construction for the 2-user binary adder channel”, Proc. 11th Intl. Conf. Telecommunications, Lecture Notes in Computer Science, vol. 3124, pp. 122-127, 2004. C. Tanriover, “Improved Turbo Codes for Data Transmission”, PhD thesis, Lancaster University, UK, April 2002.