VHDL Implementation of different Turbo Encoder using Log-MAP Decoder

Similar documents
Comparison of Decoding Algorithms for Concatenated Turbo Codes

TURBO codes, [1], [2], have attracted much interest due

Low Complexity Architecture for Max* Operator of Log-MAP Turbo Decoder

ISSCC 2003 / SESSION 8 / COMMUNICATIONS SIGNAL PROCESSING / PAPER 8.7

Implementation Aspects of Turbo-Decoders for Future Radio Applications

High Speed Downlink Packet Access efficient turbo decoder architecture: 3GPP Advanced Turbo Decoder

/$ IEEE

THERE has been great interest in recent years in coding

6.962 Graduate Seminar in Communications Turbo-Like Codes: Structure, Design Criteria, and Variations

Super Codes: A Flexible Multi Rate Coding System

Reduced complexity Log-MAP algorithm with Jensen inequality based non-recursive max operator for turbo TCM decoding

PROPOSED DETERMINISTIC INTERLEAVERS FOR CCSDS TURBO CODE STANDARD

Optimal M-BCJR Turbo Decoding: The Z-MAP Algorithm

Implementation of a Turbo Encoder and Turbo Decoder on DSP Processor-TMS320C6713

Hard Decision Based Low SNR Early Termination for LTE Turbo Decoding

AS TURBO codes [1], or parallel concatenated convolutional

A Review on Analysis on Codes using Different Algorithms

Comparison of Various Concatenated Convolutional Code Ensembles under Spatial Coupling

Reduced-State Soft-Input/Soft-Output Algorithms for Complexity Reduction in Iterative and Non-Iterative Data Detection

A Modified Medium Access Control Algorithm for Systems with Iterative Decoding

Non-Binary Turbo Codes Interleavers

Interleavers for Turbo Codes

OPTIMIZED MAP TURBO DECODER

Capacity-approaching Codes for Solid State Storages

Algorithm for a robust Message Authentication

The Lekha 3GPP LTE Turbo Decoder IP Core meets 3GPP LTE specification 3GPP TS V Release 10[1].

Exploring Parallel Processing Levels for Convolutional Turbo Decoding

On the performance of turbo codes with convolutional interleavers

A Novel Area Efficient Folded Modified Convolutional Interleaving Architecture for MAP Decoder

Multimedia Data Transmission over Mobile Internet using Packet-Loss Punctured (PaLoP) Codes

Cooperative Communications

On combining chase-2 and sum-product algorithms for LDPC codes

INTERLEAVERS FOR PUNCTURED TURBO CODES. Institute for Telecommunications Research. University of South Australia. SPRI Building, Warrendi Road

Memory-Reduced Turbo Decoding Architecture Using NII Metric Compression

EXIT Charts. JASS05 Course 4: The Turbo Principle in Communications Prof. Dr.-Ing. Joachim Hagenauer

Turbo codes, MAP algorithms, serial concatenated codes

Discontinued IP. 3GPP2 Turbo Decoder v1.0. Features. Applications. General Description

Lowering the Error Floors of Irregular High-Rate LDPC Codes by Graph Conditioning

Discontinued IP. Verification

THE turbo code is one of the most attractive forward error

Quasi-Cyclic Low-Density Parity-Check (QC-LDPC) Codes for Deep Space and High Data Rate Applications

Programmable Turbo Decoder Supporting Multiple Third-Generation Wireless Standards

TECHNICAL RESEARCH REPORT

Comparative Performance Analysis of Block and Convolution Codes

SECRET SHARING IN FAST FADING CHANNELS BASED ON RELIABILITY-BASED HYBRID ARQ

Computation of posterior marginals on aggregated state models for soft source decoding

Parallel and Serial Concatenated Single Parity Check Product Codes

Weight distribution of turbo codes with convolutional interleavers

BER AND FER PERFORMANCE WITH LARGE BLOCK SIZE OF TURBO CODING IN DIFFERENT INTERLEAVER PARAMETER

ERROR correcting codes are used to increase the bandwidth

Application of Fixed Point Turbo Decoding Algorithm for Throughput Enhancement of SISO Parallel Advanced LTE Turbo Decoders

Simplified Criteria for Early Iterative Decoding Termination

A Method for Determining the Distance Profile of Turbo Codes

Reduced Complexity of Decoding Algorithm for Irregular LDPC Codes Using a Split Row Method

Novel Low-Density Signature Structure for Synchronous DS-CDMA Systems

Research Article Cooperative Signaling with Soft Information Combining

Improved Soft-Decision Decoding of RSCC Codes

Performance study and synthesis of new Error Correcting Codes RS, BCH and LDPC Using the Bit Error Rate (BER) and Field-Programmable Gate Array (FPGA)

EFFICIENT RECURSIVE IMPLEMENTATION OF A QUADRATIC PERMUTATION POLYNOMIAL INTERLEAVER FOR LONG TERM EVOLUTION SYSTEMS

A Study on the Effects of Decoder Quantization of Digital Video Broadcasting Return. Channel over Satellite (DVB-RCS) Turbo Codes

/$ IEEE

/$ IEEE

Channel Decoding in Wireless Communication Systems using Deep Learning

TURBO CODES with performance near the Shannon

Implementation of Turbo Product Codes in the FEC-API. Kiran Karra Virginia Tech

Combined Copyright Protection and Error Detection Scheme for H.264/AVC

LDPC Simulation With CUDA GPU

Performance Analysis of Min-Sum LDPC Decoding Algorithm S. V. Viraktamath 1, Girish Attimarad 2

Hybrid ARQ schemes for future wireless systems based on MC-CDMA

Bit vs. Symbol Interleaving for Parallel Concatenated Trellis Coded Modulation

< Irregular Repeat-Accumulate LDPC Code Proposal Technology Overview

Performance Analysis of Digital Network Coding Based Two Way Amplify and Forward Relay Networks

Design of Convolutional Codes for varying Constraint Lengths

High speed low complexity radix-16 Max-Log-MAP SISO decoder

Design and Implementation of Hamming Code using VHDL & DSCH

Design of Low-Power High-Speed Maximum a Priori Decoder Architectures

An Implementation of a Soft-Input Stack Decoder For Tailbiting Convolutional Codes

Error Floors of LDPC Codes

Improved Joint Network-Channel Coding for the Multiple-Access Relay Channel

IMPLEMENTATION OF A BIT ERROR RATE TESTER OF A WIRELESS COMMUNICATION SYSTEM ON AN FPGA

Error Resilient Image Transmission over Wireless Fading Channels

Layered Decoding With A Early Stopping Criterion For LDPC Codes

Finding Small Stopping Sets in the Tanner Graphs of LDPC Codes

FPGA Implementation of Binary Quasi Cyclic LDPC Code with Rate 2/5

A completely safe early-stopping criterion for max-log Turbo code decoding

Progressive Coding and Iterative Source-Channel Decoding in Wireless Data Gathering Networks

The Lekha 3GPP LTE FEC IP Core meets 3GPP LTE specification 3GPP TS V Release 10[1].

422 IEEE JOURNAL OF SOLID-STATE CIRCUITS, VOL. 45, NO. 2, FEBRUARY 2010

A Route Selection Scheme for Multi-Route Coding in Multihop Cellular Networks

Payload Length and Rate Adaptation for Throughput Optimization in Wireless LANs

LOW-POWER FLOATING-POINT ENCODING FOR SIGNAL PROCESSING APPLICATIONS. Giuseppe Visalli and Francesco Pappalardo

Performance of Hybrid ARQ Techniques for WCDMA High Data Rates

Non-recursive complexity reduction encoding scheme for performance enhancement of polar codes

Performance comparison of Decoding Algorithm for LDPC codes in DVBS2

Analysis of Circular Buffer Rate Matching for LTE Turbo Code

IEEE Proof Web Version

Performance of Truncated Type-II Hybrid ARQ Schemes with Noisy Feedback over Block Fading Channels

Design of Convolution Encoder and Reconfigurable Viterbi Decoder

Performance Analysis of Gray Code based Structured Regular Column-Weight Two LDPC Codes

Optimized Min-Sum Decoding Algorithm for Low Density PC Codes

Transcription:

49 VHDL Implementation of different Turbo Encoder using Log-MAP Decoder Akash Kumar Gupta and Sanjeet Kumar Abstract Turbo code is a great achievement in the field of communication system. It can be created by connecting a turbo encoder and a decoder serially. A Turbo encoder is build with parallel concatenation of two simple convolutional codes. By varying the number of memory element (encoder configuration), code rate (1/2 or 1/3), block size of data and iteration, we can achieve better BER performance. Turbo code also consists of interleaver unit and its BER performance also depends on interleaver size. Turbo Decoder can be implemented using different algorithm, but Log MAP decoding algorithm is less computationaly complex with respect to MAP (maximux a posteriori) algorithm, without compromising its BER performance, nearer to Shannon limit. A register transfer level (RTL) turbo encoder is designed and simulated using VHDL (Very high speed integrated circuit Hardware Description Language). In this paper VHDL model of different turbo encoder are implemented using Log MAP decoder and its performance are compared and verified with corresponding MATLAB simulated results. Index Terms Turbo code, Shannon capacity, Interleaver, Puncturing, Log map algorithm, BER, VHDL, MATLAB. 1 INTRODUCTION N ow a days, turbo-codes [1] have received considerable attention and first came in existence in 1993. The turbo encoder consists of two recursive systematic convolutional (RSC) encoders operating in parallel manner with the input data bits. We can design either a 4-state or 8- state turbo encoder, with different rate. An interleaver is used between two systematic convolution encoder as shown in Figure1. Here, we can achieve the rate 1/3, without puncturing and 1/2, with puncturing method. Other code rates are also obtained by puncturing mechanism. When turbo encoded data is applied to turbo decoder through Base-Band transmission over AWGN channel, Log-Map decoding structure provides performance nearer to Shannon s limit [2] with less complexity [3] with respect SOVA. Due to its powerful error correcting capability, reasonable complexity, and flexibility in terms of different block lengths and code rates, number of memory element etc., turbo code are widely used in different communication system like satellite communication, CDMA, mobile communication etc. For implementing the turbo decoder, the very first consideration is to select a SISO algorithm, which can give efficient performance. Here, we have chosen Log- Map decoding algorithm [4], which provides good performance with less complexity. In this paper, we first discussed about the turbo encoder and its different configuration, which we have implemented using BHDL as well as MATLAB simulation.the variation on its configuration with the implementation issue using VHDL [5]. Input bits Input bits encoder without puncturing (Rate 1/3) Fig. 2: Turbo encoder with puncturing (Rate 1/2) Fig. 1: Turbo Akash Kumar Gupta is with the Department of Electronics and Communication Birla Institute of Technology, Mesra, Ranchi, India. Sanjeet Kumar is with the Department of Electronics and Communication, Birla Institute of technology, Mesra, Ranchi, India. Secondary, we discussed about Log-MAP decoder (SI- SO) algorithm, which reduces the complexity of the system. Later, we will show the comparison and verification of

50 the VHDL implemented model with the MATLAB implemented model of system. 2 IMPLEMENTATION OF TURBO CODE A turbo code actually consists of two systematic convolutional encoders [6], which consist of an interleaver unit with a specified encoding structure. We send n number of input data bits to the encoder. This data goes to the first convolutional encoder whereas an interleaved data is passed through the second convolutional encoder. From Fig. 1, it is clear that systematic bit is same as input data bits and with the help of two RSC encoders, we get the two n bits parity sequences. These three sequences create rate 1/3. The two parity sequences get punctured alternatively and we get the rate 1/2. Turbo encoded output data bits are passed through AWGN (Additive white Gaussian noise) channel. Due to noise some of data bits may get corrupted and error maybe introduced in the system. These data bits are transferred to the decoder unit where the error is removed and original data is recovered. Fig. 3(c) configuration (71, 52, 0) Performance is highly depending upon memory element. By varying the number of memory elements, we can get different configuration. There is some of the following encoder structure that we have implemented using VHDL as shown in Fig. 3(a), 3(b) and 3(c). These configurations are used in the forms of binary polynomial, respectively, the first is (101, 111), second (1111, 1010) and third is (111001, 101010). From the above structures, we get the systematic, par_1 and par_2 (parity) sequences. These are available according to rate 1/3. After puncturing of par_1 and par_2, we get alternatively combined parity sequence, corresponds to rate 1/2. After implementing the turbo encoder in VHDL, we got its output waveform, shown in fig. 4 and output data bits stored in binary form. At the decoder side, these data bit sequences are used for decoding. 2.1 TURBO ENCODER We have implemented different configurations of turbo encoder using VHDL. Fig. 3(a) configuration (5, 7) Fig. 4: output waveform for encoder configuration (15, 12, 0) To get the desired BER performance, we have implemented different configuration of turbo encoder using different interleaver size and analyse its performance. 2.2 INTERLEAVER Fig. 3(b) configuration (15, 12, 0) In turbo code, interleaver unit is a random block that is used to rearrange the input data bits with no repetition. Interleaver unit is used in both encoder and decoder part. At the encoder side it generates a long block of data, whereas in decoder part it correlates the two SISO decoder and helps to correct the error. At the decoder side after passing the encoded data from first dcoder some of the errors may get corrected, then we again interleav, this first decoded data and pass through the second decoder. Here, remaining error may get correct. Like this, we are repeating the process for more number of times.

51 2.3 TURBO DECODER Decoding algorithm can be designed [7] by either an A posteriori probability (APP) method or maximum likelihood method. Turbo decoder consists of two SISO decoders separated by interleaver and de-interleaver, as shown in Fig. 5. Due to noise, encoded output data bit may get corrupted and reach the decoder input as r0 for systematic bit, r1 for parity_1 and r2 for parity_2 respectively. These inputs are fed to first SISO decoder. First SISO decoder takes as input, the received information data bits sequence r0 and received parity sequence r1, which is generated by RSC encoder 1. The output data seq. from the first SISO decoder is interleaved and goes as an input to second SISO decoder. The second SISO decoder takes as input, r0 as received information bit sequence and r2 as received parity sequence. From the second SISO decoder we get the final output data. To improve the performance of turbo code its output is de-interleaved and sent to first SISO decoder as an input. Then we go for the process repetation. This whole process is also known as iterative decoding [8] process. After certain iteration the output of decoder stops further performance improvement. There are different decoding algorithms available, here we used Log-MAP decoding algorithm, which uses iterative decoding process. another encoder configuration shown in Fig. 6. This result Fig. 5: Comparison of result obtained from MATLAB and VHDL Simulation for the configuration (7, 5) with reported result shows that for Rate 1/3 our performance is improves by 0.25 db and shows the performance improvement from rate 1/2 to 1/3. The improvement in rate 1/3 encoder with respect to 1/2 encoder is expected. This result further verifies our VHDL model. Fig. 5: General diagram of turbo Log MAP decoder Finally, we take hard decision, to retrieve original data bits. Now, we calculate the BER (bit error rate) value [8, 10] for different set Eb/No ratio and performance is compared. 3 RESULTS AND DISCUSSION We have developed VHDL model of different turbo encoder with Log-MAP decoder. Fig. 5 is showing our MATLAB and VHDL simulated results for (7, 5) configuration of turbo encoder with Rate 1/3 and 8 iteration. This result is compared with result given by L. Hanzo et al. [11], with same configuration. We finding that our simulated VHDL and MATLAB both result are matching with reported result. To verify VHDL simulation maodel, again we have Fig. 6: Comparison of performance (between data obtained Using VHDL and MATLAB), for Rate 1/2 and Rate 1/3 From Fig. 6, it is clear that for lower SNR (Eb / N0), value performance obtained using VHDL encoded output data is comparatively similar with performance obtained using MATLAB encoded output data. If we go for higher value of SNR then it show the

52 variation between VHDL and MATLAB simulated results. The performance in case of VHDL is marginally better than MATLAB. The above given Fig. 6 corresponds to rate 1/2 and 1/3, iteration 6 and 1000 block size data. Now, we can go for higher number of memory element structute. Some of the following results are given below. These all results are corresponding to VHDL simulation. Block length (iteration 6) Here, we have taken result corresponding to iteration 6, because we can see in Fig. 10, it is clearly mention that if we go for 1 iteration, performance is very poor as compare to further improved iteration. When we go up to 5 or 6 iteration there are huge performance variation exist, but for further 7 or 8 iteration performance improves marginally. Whereas for next iterations, it not shows any improvement. So, for the purpose of reducing time delay, we have chosen iteration 6. From the given Fig. 8, it shows that if we change the block length size then the performance will marginally improve. The graph given in Fig. 8, show comparison for given two configurations according to block length 1000 & 5000 and these all are corresponding to rate 1/3 and iteration 6. Fig. 7: Rate 1/2 vs. Rate 1/3 for different configuration (6 iteration) From the above graph it is clear that if we go from rate 1/2 to rate 1/3, for any configuration of encoder, performance will improve. Here, we checked for two configurations of encoder, first (15, 12, 0) and second (71, 52, 0). For both of the configuration performance is satisfied. Fig. 9: performance comparison due change in Memory element (iteration 6) Fig. 8: performance comparison due to change in Fig. 10: Performance of turbo coding using Log MAP algorithm

53 We have seen performance comparison due to change in number of memory elements in Fig. 9. From the above Fig. 9, it is clear that if choose higher number of memory elements in our encoder structure, performance improves. In this Fig. we have compared three different configuration of encoder using Log-MAP decoder, according to rate 1/3, block length 1000 and corresponding to iteration 6. From the above Fig. 10, we have plotted the curve up to iteration 10 and observed that when we go from iteration 8 to 10, performance improvement not shown and curves overlap each other. This is reason to choose iteration 6, with this iteration time delay is also less. 4 CONCLUSION In this paper, a design of different turbo encoder configuration like (15, 12, 0), (71, 52, 0) etc. are proposed through VHDL. These configurations give better performance and also show the lower computational complexity. Configuration (71, 52, 0) gives much better performance with less computational complexity. We can go for higher constraint length in VHDL for better BER performance. Turbo code is designed using Log-MAP decoder, and the obtained results are compared and verified with MAT- LAB simulated results of turbo code. We also compared the result obtained from VHDL simulation, with MAT- LAB simulated result and the reported result, for configuration (7, 5). 581 585. [11] Jason P. Woodard and Lajos Hazo, Comparative study of Turbo decoding techniques: An Overview, IEEE Trans. On vehicular technology, Vol.49, No.6, November 2000. Mr. Akash Kumar Gupta has received his B.E. in 2008 from R.G.P.V. University, Bhopal, India. Presently he is pursuing M.E. from Birla Institute of Technology, Mesra (Jharkhand)-India, in the field of Electronics and Communication Engineering. Mr. Sanjeet Kumar has received his B.sc (Engg.) from Magadh University, India, in 2001 and ME from BIT, Mesra, Ranchi, India, 2002 both in Electronics and Communication Engineering. Currently he is working as a Senior Lecturer in the Dept. of ECE, BIT, Mesra, Ranchi, India, and His Research interests are in area of Wireless video communication, information and coding theory. REFERENCES [1] C. Berrou, A. Glavieux, and P. Thitimajshima, Near Shannon limit error-correcting coding and decoding: Turbo Codes, in Proc. ICC, 1993, pp. 1064-1070. [2] C. E. Shannon, The mathematical theory of communication, Bell Syst. Tech. J., vol. 27, pp. 379 423, July/Oct. 1948. [3] P. Robertson, P. Hoeher, and E. Villebrun Optimal and suboptimal maximum a posteriori algorithms suitable for turbo decoding," European Trans. Telecomm., vol. 8, no. 2, Mar. Apr. 1997. [4] VHDL Implementation of Turbo Decoder With LOG-MAP-BASED Iterative Decoding, Yanhui Tong, Tet-Hin Yeap, Member, IEEE, and Jean-Yves Chouinard, Senior Member, IEEE. [5] VHDL, Programming by Example, Douglas L. Perry. [6] S. Benedetto and G. Montorsi, Unveiling turbo-codes: Some results on parallel concatenated coding schemes, IEEE Trans. Inform. Theory, vol.42, pp.409-428, 1996. [7] X. J. Zeng and Z. L. Hong, Design and implementation of a turbo decoder for 3GW-CDMA systems, IEEE Trans. Consumer Electron. vol. 48, pp. 284 291, May 2002. [8] J. Hagenauer, E. Offer, and L. Papke, Iterative decoding of binary block and convolutional codes, IEEE Trans. Inform. Theory, vol. 42, no. 2, pp. 429 445, Mar. 1996. [9] L. 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. [10] H. Michel, A. Worm, and N. Wehn, Influence of quantization on the bit error performance of turbo-decoders, in Proc. VTC-2000, pp.