Reliability Level List Based Iterative SISO Decoding Algorithm for Block Turbo Codes

An iterative Reliability Level List (RLL) based soft-input soft-output (SISO) decoding algorithm has been proposed for Block Turbo Codes (BTCs). The algorithm ingeniously adapts the RLL based decoding algorithm for the constituent block codes, which is a soft-input hard-output algorithm. The extrinsic information is calculated using the reliability of these hard-output decisions and is passed as soft-input to the iterative turbo decoding process. RLL based decoding of constituent codes estimate the optimal transmitted codeword through a directed minimal search. The proposed RLL based decoder for the constituent code replaces the Chase-2 based constituent decoder in the conventional SISO scheme. Simulation results show that the proposed algorithm has a clear advantage of performance improvement over conventional Chase-2 based SISO decoding scheme with reduced decoding latency at lower noise levels.


Introduction
In communication systems, error control coding techniques are used for reliable and efficient transmission of digital data over noisy channels.P Elias introduced a recursive approach and constructed concatenated codes by combining an inner code with an outer code and achieved exponentially decreasing error performance [1].Tanner proposed a hard in hard out (HIHO) iterative decoding method for concatenated product block codes and these 'high code rate' concatenated codes found widespread applications in deep space communication systems [2].Berrou developed a class of Forward Error Correction (FEC) codes called Turbo codes constructed by either serial or parallel concatenation of convolutional codes as constituent codes [3].These Concatenated Block Codes or Block Turbo Codes (BTCs) proposed by Elias and Convolutional Turbo Codes (CTC) proposed by Berrou revolutionized the field of coding theory since they achieved reliable transmission at a code rate closer to Shannon limit.Since then much research has been done on the decoding algorithms for Turbo codes.Turbo codes are widely used in 3G/4G mobile communication systems, return channel of satellite communication systems and IEEE 802.16 (WiMAX).Decoding algorithms for Turbo codes remains a sought after topic of research in the field of error control coding.
Berrou proposed a soft-input soft-output (SISO) approach for CTC decoding which had a better performance when compared to HIHO decoding algorithm for BTC proposed by Tanner.Ramesh Pyndiah proposed a SISO iterative decoding algorithm for BTC using Chase-2 algorithm [4][5].It was established that SISO decoding approach to BTC could help achieve a performance similar to CTC with an added advantage of the constituent block decoding not requiring memory.[12][13].The various novel decoding algorithms for BTC proposed in the literature target performance improvement or complexity reduction, trading off one for the other [14][15][16].
In conventional decoding of BTC, Chase-2 is used as the constituent decoder.The computational complexity of Chase-2 remains the same even at a higher SNR.To overcome the complexity of Chase-2 based SISO decoder at lower noise levels, in this paper, a RLL based decoding algorithm has been proposed for decoding of BTC.Here the constituent codes are decoded using the RLL based decoding algorithm [17].The proposed algorithm is found to have a better coding gain at lower SNR and has a lower decoding latency at higher SNR when compared to iterative SISO decoding algorithm proposed by Pyndiah, which has been the basis for most of the recent work in the decoding of BTC.The paper is organized as follows: Section 2 discusses about BTC and the traditional SISO iterative decoding.The proposed RLL based decoding algorithm for BTC is explained in detail in Section 3. In Section 4, the simulation results obtained using the proposed algorithm are discussed, followed by conclusion in Section 5.

SISO Decoding of Block Turbo Codes
Block Turbo Codes are a class of FEC codes constructed by serial concatenation of Block codes like BCH and RS codes.Consider two systematic BCH codes C 1 (n 1 , k 1 , d 1 ) and C 2 (n 2 , k 2 , d 2 ) where 'n' is the codeword length, 'k' is the message length and 'd' is the minimum hamming distance.The Block Turbo Code is constructed by encoding the 2-D message block with an encoding scheme C 1 .The encoded block is passed to an interleaver and the interleaved code block is subsequently encoded using C 2-the second encoding scheme.Thus, for a message block of dimension k 1 x k 2 , the turbo code T=C 1  C 2 can be obtained by: a. Encoding k 1 rows using the coding scheme C 2 .b. Encoding k 2 columns using the coding scheme C 1 .
The resultant BTC can be represented as where , , .Consider a 2-D message block of bits {0,1} encoded into a codeword block using encoding scheme 'T', modulated using BPSK and transmitted over an Additive White Gaussian Noise (AWGN) channel with mean zero and variance N o /2.The received soft value matrix from the demodulator is given as in equation (1) below: (1) where R = {r 11 ,r 12 ,…r 1n1 ; r 21 ,r 22 ,...;….r n1n2 }.The turbo decoding of BTC involves two main steps namely decoding of constituent Block Code and iterative turbo decoding process.

Decoding of constituent Block Code
Each row or column in the 2-D received matrix is decoded using the corresponding elementary decoder.The traditional SISO decoding proposed by Pyndiah uses Chase-2 algorithm.The Chase-2 algorithm [5] involves the following steps: a. Identify the ⌊ ⌋ least reliable positions (LRPs) using the received soft decision sequence.b.Generate 2 p error patterns 'e i ' at the LRPs and obtain 2 p distorted sequences 'Z i ' using the hard decision sequence 'y'.
(2) c.Decode each of the 2 p distorted sequences using an algebraic decoder or a hard decision decoder and add the decoded codeword to the candidate set Ω. d.Euclidean distance of each candidate codeword from the original received soft decision sequence is calculated and the codeword with closest Euclidean metric is taken as the decision codeword D.

Iterative SISO Turbo decoding
In the iterative decoding process, the decoding of the received soft decision matrix is done over a fixed number of iterations.Each iteration consists of two half iterations namely row decoding and column decoding.An extrinsic information is calculated based on the decision D from the elementary Chase decoder and is passed from one half iteration to the consecutive half iteration.The iterative process follows the steps as given below: a.The reliability values of the received soft decision sequence is defined in terms of its Log Likelihood Ratio (LLR) as given by equation (3).
b.In each half iteration, each row/column in the received matrix is passed to the elementary constituent decoder and decision D is obtained.Decision D {0,1} is mapped to {-1, +1}.c.The soft-output of the current half iteration is computed as in equation ( 4).
Here 'C' is the competing codeword in the set Ω which has the second least Euclidean distance to R. In certain cases, the complexity of finding the competing codeword increases exponentially with respect to 'p'.In such cases, soft-output is calculated as in equation ( 5) given below. ( where 'β' is a reliability scaling factor.d.The extrinsic information for the next half iteration is obtained as in equation ( 6). ( e.The extrinsic information is then added to the soft-input of the next half iteration as in equation ( 7). ( where 'α' is the weighting factor that controls the effect of extrinsic information at the earlier iterations when BER is high.The process is now repeated for the subsequent iterations until the predefined number of iterations is reached.The output from the final iteration is taken as the optimal estimate of transmitted code block.

The proposed RLL Based Iterative Decoding Algorithm for Block Turbo Codes
The main components of BTC based decoding scheme are an elementary decoder for each of the constituent block code and iterative SISO turbo decoding, where exchange of extrinsic information between iterations take place.There has been much work in the literature on complexity reduction in iterative SISO decoding and extrinsic information calculations, with Chase-2 algorithm as the decoder for constituent codes.The fact that the computational complexity of Chase-2 decoding algorithm remains the same even at a lower noise level has lead researchers to come up with modifications/alternate solutions to Chase-2.One such algorithm is Reliability Level List based SDD Algorithm [14].
RLL based decoding is a scheme of soft decision decoding based on an efficient and meaningful strategy of exploiting the reliability information available from the demodulator.The algorithm is based on the RLL which forms the framework for identifying the codeword through a directed minimal search.Using this framework of RLL, we propose an iterative algorithm for decoding BTC.For each row/column decoding, the RLL gives the most reliable valid codeword which forms the decision D. The reliability of the decision D is then calculated using equation (4), where the competing codeword 'C' is the second most reliable valid codeword in the RLL.This soft-output of the current iteration is passed as soft-input to the next half iteration.The proposed algorithm gives a better performance at lower SNR and lower decoding latency at higher SNR when compared to iterative Chase-2 based SISO decoding algorithm for BTC.The two main steps of the proposed algorithm are RLL generation to find decision D, followed by iterative SISO decoding.

RLL generation for decoding constituent Block Code
Based on the reliability values of the 'n' bit soft decision sequence, a rank 'v' is assigned to all possible codewords of the constituent block code in a structured manner.This is called generation of RLL.Each entry in the RLL generated is given by a set of parameters (v i ,p i ,q i ,m i ) where i=0 to 2 n-1 .v-rank of the entry.p-set of indices which form the least reliable bit positions.q-codeword obtained by flipping the hard decision sequence at positions given by p i .m-absolute sum of reliability values at positions given by p i .
The procedure for RLL generation is as follows: a.By default, first 3 entries of the RLL are hard decision sequence (q 0 , v=1, p 0 ={ }, m=0), codewords obtained by flipping the least reliable position(q 1 , v=2, p 1 ={'1'}, m=r j ; j-1 st LRP) and second least reliable position(q 2 , v=3, p 1 ={'2'}, m=r j ; j-2 nd LRP) respectively in the hard decision sequence.b.A pending list 'P' is formed which contains all possible contestants for the next entry to the list.c.Further the pending list is updated based on the current entry 'v i ' under consideration.
Updation of pending list is done as follows: i.If the least index in 'p i ' is not '1', add '1' to the index set and add it to the pending list.
ii.For all non-zero indices in the set 'p i ', add 1 to the index and check if it is less than the next non-zero element in the index set 'q' and add the index set to the pending list.iii.For the last non-zero index in the set 'p i ', add 1 to it and check if it is less than the codeword length 'n' and add the entry to the pending list.iv.If the index set generated by any of the above rules is already a member in the pending list, remove it from the list.d.The entry 'q i ' with least value of 'm' from the pending list forms the next entry to the RLL.
Once a member from the pending list is chosen to be the next entry, it is checked if it is a valid codeword.e.If the current entry 'q i ' is a valid codeword, then the decoding is terminated and 'q i ' is taken as the decision D. Else the pending list is updated based on the current entry 'p i ' and the process is repeated until a valid codeword from RLL constituent decoder is obtained.

RLL based iterative SISO decoder for BTC
With D as the output of the RLL constituent decoder, the process of RLL search is continued to find the next most probable codeword which is the competing codeword C.This is the second most reliable valid codeword in the RLL.The soft-output is then calculated as a function of the competing codeword C as in equation ( 4) which is then passed as extrinsic information to the next constituent decoder.The soft-input for the next half iteration is then calculated as in equation ( 6) and equation (7).The process is repeated for the fixed number of iterations and decision 'D' of the final iteration gives the optimal estimate.
In Chase decoders, the complexity of finding the competing codeword increases if the competing codeword is not in the candidate codeword set Ω.This is because the scanning radius has to be extended beyond (d min /2), resulting in more candidate codewords in the set Ω, with a corresponding increase in number of HDD.In the proposed algorithm, since HDD is not involved, the complexity associated with the same is avoided.
The proposed RLL based iterative SISO decoding algorithm for BTC is given below: 1.The reliability value R of the matrix is defined in terms of it's LLR value as 2. For each row in R: Do 2.1.Index the bit positions in increasing order of magnitudes from 1 to n. 2. Define pending list with parameters (v i , pi, q i , m i ) where i = 0 to 2 n-1 .2.3.Include the hard decision sequence (q 0 , v=1, p 0 = {}, m=0), codewords obtained by flipping the least reliable position (q 1 , v=2, p 1 ={'1'}, m=r 1 ) and second reliable position(q 2 , v=3, p 1 ={'2'}, m=r 2 ) of the hard decision sequence as the first 3 entries to the pending list.2.4.For each entry (v i ,p i ,q i ,m i ) in RLL: 2.4.1.Do If (q i is a valid codeword) : q i = decoded codeword jump to 3 Else: Remove the current 'p i ' from RLL and Update the pending list If ('1' ∉ p i ) : add '1' to indices set add the new entry to pending list End For each non-zero element 'b j ' in p i : If ((b j +1) < b j+1 && (b j +1) ≤ n): add (b j +1) to indices set add the new entry to pending list End End End 2.4.2.For each newly added candidate in the pending list, calculate 'm i ' by adding the soft values in the indices mentioned in 'p i '. 2.4.3.Choose the candidate with least value of 'm i ' as next entry to the RLL. 3. Map the decoded codeword q i {0,1} to D {-1, +1}. 4. Calculate the soft-output of the decoder using the formula where 'C' is the competing codeword.In practical cases, where the complexity of finding 'C' increases, soft-output is calculated as where β is reliability scaling factor [5].
5. Calculate the extrinsic information as 6.Calculate soft-input to the next half iteration as where α is weighting factor.7. Repeat Steps 2-6 for the column decoding.8. Repeat Steps 2-7 for each iteration until we reach the fixed number of iterations.The Decision 'D' of the final half-iteration gives the optimal estimate of the transmitted BTC.

Results and Discussion
The performance of the proposed algorithm is evaluated in an AWGN channel under BPSK modulation.The results obtained using this algorithm for BTC (15,7,5)  .The weighting and scaling factors are chosen to increase with the iteration number as the decision D obtained from a particular iteration is more reliable than the previous iteration.
In Figure 1, the improvement of the proposed algorithm over iterations is compared against conventional SISO decoding algorithm for a BTC (15,7,5) , the proposed RLL based SISO decoding algorithm is found to have a coding gain of 1 dB over the Chase-2 based conventional SISO decoding algorithm proposed by Pyndiah using Chase-2 algorithm (Ch-Py).With the proposed algorithm, the decoding latency reduces at higher SNR.The decoding latency of RLL-SISO decoding algorithm and Chase-2 based conventional SISO at SNR 1 dB and SNR 5 dB are shown in Table 1.The performance comparison of the proposed algorithm for BTC (31,21,5) 2 has been shown in Figure 2. It can be seen that RLL based SISO decoding algorithm has a coding gain of 0.7 dB over conventional algorithm at the end of iteration 4. The proposed algorithm works well for asymmetric codes as well and it has been applied to an asymmetric BTC (31,21,5)x (31,26,3) and the improvement over iterations has been shown in Figure 3.
In traditional SDD algorithms, the search space is generally bounded to a limit.But the RLL algorithm is not a bounded search algorithm and the search space is the entire 2 n codewords.The algorithm is applicable to BTCs of any dimension and adapts well for mobile applications where the coding scheme changes often.Most of the SDD algorithms in literature do not make use of the high-SNR environment in which transmission takes place and have a fixed computations at all SNRs.RLL based iterative algorithm has a faster decoding convergence for high-SNR applications where it is likely to find the optimal codeword in the first few entries itself thus reducing the complexity drastically.

Conclusion
The proposed algorithm gives a better performance for BTC decoding and has very low complexity at high SNR applications.This algorithm makes maximum use of the channel reliability information and does a structured search over the entire 2 n codeword space thus giving the most reliable codeword as the decoded codeword.The algorithm is generalized for any Turbo code constructed using cyclic block codes as constituent codes.Much of the SISO decoders for BTC revolve around LRP based Chase-2 decoders and thus the proposed RLL algorithm widens the scope for research in alternate SISO decoders for BTC.Further the algorithm can extended to BTC with non-binary cyclic codes as constituent codes [18].

Figure 2 .Figure 3 .
Figure 2. Performance of RLL-SISO algorithm for BTC (31,21,5) 2 at 4 th iteration Dave et.al. proposed a decoding algorithm based on Kaneko's algorithm for BTC [6].Argon et.al. and Al-Dweik et.al. improved the iterative SISO decoding proposed by Pyndiah to reduce the complexity without compromising much on the performance [7-8].Belkasmi et.al. have proposed a Genetic Algorithm (GA) based iterative decoding for BTC where the decoding of constituent block codes has been approached as an optimization problem [9].Yuan et.al. had also attempted a GA based decoding for Block Turbo Codes [10].Askali et.al. have proposed an iterative soft permutation based decoding of product codes [11].Lu et.al. proposed a syndrome based decoding of BTC and the reduction in complexity of the ISSN: 1693-6930  Reliability Level List Based Iterative SISO Decoding.... (V Sudharsan) 2041 same was put forth by Li et.al.