 Open Access
 Total Downloads : 301
 Authors : Shajina. V, P. Samundiswary
 Paper ID : IJERTV4IS020704
 Volume & Issue : Volume 04, Issue 02 (February 2015)
 Published (First Online): 02032015
 ISSN (Online) : 22780181
 Publisher Name : IJERT
 License: This work is licensed under a Creative Commons Attribution 4.0 International License
Performance Analysis of Turbo Codes for Telemetry Applications
Shajina. V1, P. Samundiswary2 Department of Electronics Engineering Pondicherry University
Puducherry, India
Abstract: Consultative Committee for Space Data System (CCSDS) recommended a common standard for space telemetry channel coding systems. Turbo codes represent a major paradigm shift in the approach to coding systems for deep space communications. For decoding purpose, memory optimized iterative MaxlogMAP algorithm is used which is less complex and having less memory requirements. In this paper, the performance of turbo codes namely Bit Error Rate (BER) is analyzed for different block lengths and code rates. The complete analysis is done for AWGN channel, since AWGN channel is to be assumed for deep space applications. Simulations of turbo encoder and decoder are done using C and MATLAB.
Keywords CCSDS standard; turbo code; MaxLogMAP algorithm; Iterative algorithm.

INTRODUCTION
Todays world thrives on information exchange at very high data rate. Hence the information should be received without any error at the receiver after having transmitted over a noisy environment. This is achieved by adding redundant bits to the information bit streams [1]. In 1948, Shannon introduced the concept of channel capacity, describing the limit to the amount of data that could be transmitted across any given channel [2]. Turbo code is a very powerful error correcting technique with reasonable decoding complexity, which enables reliable communication with BER close to Shannon limit [3]. Turbo codes are first introduced by Berrou, Glavieux, and Thitimajshima in 1993[3]. Turbo codes are in fact a parallel concatenation of two recursive systematic convolutional codes. The intention of the CCSDS telemetry system is not only to ease the transition towards greater automation within individual space agencies, but also to ensure harmony among the agencies, thereby resulting in greater crosssupport opportunities and services [4].
Turbo coding is associated with two systematic encoders, where the first encoder receives the source data in natural order and at the same time the second encoder receives the interleaved one. The output is composed of source data and associated parity bits in natural and interleaved domains. The parity bits are usually punctured in order to raise the code rate to the desired values. The decoding principle is based on an iterative algorithm where two component decoders exchange information which improves the error correction efficiency of the decoder during
the iterations. At the end of the iterative process, after several iterations, both decoders converge to the decoded codeword, which corresponds to the transmitted code words when all transmission errors have been corrected [5].
The Maximum A Posteriori (MAP) decoding also known as Bahl, Cocke, Jelinek and Raviv (BCJR) algorithm

is not a practical algorithm for implementation in real systems. The MAP algorithm is computationally complex and sensitive to SNR mismatch and inaccurate estimation of the noise variance [7]. This algorithm requires nonlinear functions for computation of the probabilities and both multiplication and addition are also required to compute the variables of this algorithm. The logarithmic version of the MAP algorithm [7] and the Soft Output Viterbi Algorithm (SOVA) [8] are the practical decoding algorithms for implementation in real time systems. All different logarithmic versions of the MAP algorithm only require addition and a maxoperation only. SOVA has the least computational complexity and the worst BER performance obtaining among these algorithms, while the Log MAP algorithm [9] has the best BER performance equivalent to the MAP algorithm and the highest computational complexity. Here, in this work, MaxlogMAP algorithm is used for the decoding of turbo codes, since its complexity is less. Also its performance will hold good at low SNRs. The decoding process is complex one and requires many calculations. Further, it requires large memory to store the results. Here an optimized implementation is adapted so that the memory requirement can be reduced.
This paper is organized as follows; the turbo encoder as per CCSDS standard is reviewed in section 2, with the explanation of interleavers. The optimized maxlogMAP decoding is explained in section 3. The analysis of the results is done in section 4; finally, the work is concluded in section 5.


TURBO ENCODER
The Turbo encoder consists of two identical recursive systematic convolutional encoders and an interleaver. The input is a block of K information bits. The CCSDS encoder specifications are listed in table 1 and the block diagram is shown in fig. 1.The information bits are first encoded by a systematic convolutional encoder and then after passing through an interleaver, they are encoded by a second systematic convolutional encoder. The interleaver is used to permute the input bits in such a way that the two encoders use
the same set of input bits but result in different output sequences. The two convolutional encoders in the CCSDS Standard [10] are recursive with constraint length K = 5, and are realized by feedback shift registers.
Table 1: CCSDS Encoder Specifications
(s) = +1) m
In the equations, denotes the largest integer less than or equal to x, k1=8 and k2 will vary according to the block length, and denotes one of the following eight prime integers [10].
p1 = 31; p2 = 37; p3 = 43; p4 = 47; p5 = 53; p6 = 59; p7 = 61; p8
= 67
Code type
Systematic parallel concatenation
turbo code
Number of
component codes
2 (plus an uncoded component to
make the code systematic)
Type of
component codes
Recursive convolutional codes
Number of states of each
convolutional component code
16
Nominal code
rates(r)
r=1/2,1/3,1/4,or 1/6
Interleaver length
(K)
1784,3568,7136,or 8920
Fig.1 Block diagram for turbo encoder
The interleaver for turbo codes specified by CCSDS is a fixed bitbybit permutation of the entire block of data. The algorithm used is given below. The following operations are done for s=1 to s=K (K is the block length) to obtain permutation numbers (s).
m = (s1) mod 2
i =
j = – i
t = (19i+1) mod q = t mod 8 + 1
c = *j+21m) mod

TURBO DECODER
A turbo decoder shown in fig.2 uses an iterative decoding algorithm based on simple decoders individually matched to the two simple constituent codes. Each constituent decoder makes likelihood estimates derived initially without using any received parity symbols not encoded by its corresponding constituent encoder. The (noisy) received uncoded information symbols are available to both decoders for making these estimates. Each decoder sends its likelihood estimates to the other decoder, and uses the corresponding estimates from the other decoder to determine new likelihoods by extracting the extrinsic information contained in the other decoders estimates based on the parity symbols available only to it. MaxLogMAP algorithm[11] is less complex than the LogMAP algorithm but it performs very close to the LogMAP algorithm. It uses some approximations while finding the variables. If the SNR requirement is not high, then this approximation erro is much less than the noise power and this will not be a significant factor in performance degradation. In deep space application low SNR is required and hence the performance will not degrade much.
Fig.2 Block diagram of turbo decoder
MaxlogMAP algorithm is divided into four computational tasks[11];

Branch matrix generation
(1)

Forward matrix generation
Ak (s) ln k (s) max s*[Ak 1(s' ) k (s' , s)];
(Initial conditions) (2)

Backward matrix generation
Bk 1(s' ) ln k 1(s' ) maxs*[Bk (s) k (s' , s)];
(Initial conditions) (3)

Generation of soft or hard bit estimate together with extrinsic information
1
L(uk  y) max R * [Ak 1(s' ) k (s' , s) Bk (s)]
0
max R [Ak 1(s' ) k (s' , s) Bk (s)]
(4)
Optimized decoding algorithm:

Initialize the variables and allocate memory for storing the calculated values.


RESULTS AND DISCUSSION
The encoder is designed as per recommended standards. This encoder is tested in high noise environment with the help of simulation and with suitable number of iterations, so that the decoder is able to decode correctly. Optimized maxlogMAP algorithm is used as decoder method. CCSDS specifying different code rate for turbo encoder like 1/2, 1/3, 1/4, or 1/6, and the block sizes 1784, 3568, 7136, or 8920 bits are considered to carry out the simulation of turbo encoder and decoder. The BER performance of the decoder is done for different number of iterations. Further, BER performance is analyzed for different block lengths and code rates.
Parameters
Memory requirement
Direct implementation
Optimized implementation
Alpha
1784×16
1784×16
Beta
1784×16
16×2
gamma
1784x16x2
16×2
By using optimized implementation of the decoder, memory requirement can be reduced. The table 2 shows the comparison of memory requirement for direct and optimized implementation with a block length of 1784 and code rate of 1/3 considered for a single decoder. It is also observed from the below table that memory requirement can be reduced by using optimized implementation of the decoder.
Table 2: Memory Requirement for Direct and Optimized
implementations

R
ead the received bits, i.e., systematic output, and the parity bits.

Initialize alpha matrices as given in equation (2)

Consider stage 1 and calculate gamma value for each branch using equation, and store the obtained 32 gamma values.

Normalize the gamma values.

Calculate the alpha values for all the 16 states and store it in a memory.

Continue step d to f for all the stages K (K block length).

Initialize the beta matrix as per equation(3)

Initialize a variable, let p=K1

Calculate the gamma value for stage K for all states and normalize, then store it.

Calculate the beta value for stage k using the equation for backward matrix.

Store the beta values for (p+1) and p states.

Calculate the (LogLikelihood Ratio) LLR value of state k by using calculated gamma, beta and stored alpha value.

Decrement the value of p.

Repeat the steps j to m till p becomes 0
It is inferred through the simulation result shown in Fig. 3 that as the block size increases, the performance of a turbo code improves substantially. Further, largest block size with K=8920 has the lowest BER value compared to that of the other two bock sizes.
Fig. 3. BER performance for different block lengths
Fig. 4. BER performance of turbo codes for different
code rates
It is observed from the figure 4 that, for code rate of r = 1/6, a coding gain of approximately 1.2dB is achieved at BER value of 105 when compared to r=1/2. From the result, it is verified that, lower BER is achieved for lower code rates. The simulation result shown in figure 5 is plotted for a rate of 1/3 turbo codes for a block length of 1784 under AWGN channel conditions for different number of iterations.
Fig. 5. BER performance for different no. of iterations


CONCLUSION
Turbo encoder and decoder are also designed and simulated as recommended by CCSDS standard. Optimized maxlogMAP algorithm is used as decoder which is less complex, and requires less memory. Further, BER performance of turbo encoder and decoder is analyzed for different block lengths and code rates. As the block length increases or the code rate decreases, the BER performance of turbo codes is improved. So the energy efficient transmission is possible through above cases. The performance of the decoder for variable number of iterations is also done and BER performance improves with increase in number of iterations. The superior performance offered by turbo codes ensures that they have a good future in information systems.
REFERENCES

M. Tuechler and J. Hagenauer. Channel coding lecture script, Munich University of Technology, pp. 111162, 2003.

C. E. Shannon, A mathematical theory of communication, Bell System Technology, pp.379423 (pt. I); 623656 (pt. II), 1948.

C. Berrou, A. Glavieux, and P. Thitimajshima, Near Shannon Limit ErrorCorrecting Coding and Decoding: TurboCodes, Proceedings of International Conference on Communications, Geneva, pp. 10641070, May 1993.

Consultative Committee for Space Data Systems, TM synchronization and channel coding summary of concept and rationale, CCSDS 130.1G2, Green Book, chapter2, 4, 7, Nov.2012.

D. Divsalar and F. Pollara, On the design of turbo codes, JPL TDA Progress Report 42123, Nov. 15, 1995.

L. Bahi, J. Cocke, F. Jelinek, and J. Raviv, Optimum decoding of linear codes for minimizing symbol error rate, IEEE Transactions on Information Theory, vol. IT20, pp. 284287, Mar. 1974.

P. Robertson, P. Hoeher, and E. Villebrun, "Optimal and Sub Optimal Maximum A Posteriori Algorithms Suitable for Turbo Decoding, European Transactions on Telecommunications, vol. 8, no. 2, pp. 1 19126, MarchApril 1997.

Mohammad Salim R.P. Yadav S.Ravi kanth, Performance Analysis of LogMAP, SOVA and Modified SOVA Algorithm for Turbo Decoder, International Journal of Computer Applications, volume 9, no.11, pp.2932, November 2010.

Hamid R. Sadjadpour, Maximum A Posteriori Decoding Algorithms for Turbo Codes, Proceedings of Society of Photo Optical Instrumentation Engineers vol. 4045, pp.7383, 2000.

Consultative Committee for Space Data Systems Telemetry Channel Coding Blue Book, 101.0B6., chapter1, 2, 4, 2002.

Silvio A.Abrantes, From BCJR to turbo decoding :MAP algorithms made easier, lecture script, pp.130,April 2004.