Design of Convolutional Codes for varying Constraint Lengths

Similar documents
Viterbi Algorithm for error detection and correction

FORWARD ERROR CORRECTION CODING TECHNIQUES FOR RELIABLE COMMUNICATION SYSTEMS

VLSI Implementation of Parallel CRC Using Pipelining, Unfolding and Retiming

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

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

Design and Implementation of Hamming Code on FPGA using Verilog

Chip Design for Turbo Encoder Module for In-Vehicle System

Performance Evaluation & Design Methodologies for Automated CRC Checking for 32 bit address Using HDLC Block

Implementation of reduced memory Viterbi Decoder using Verilog HDL

Error Correction and Detection using Cyclic Redundancy Check

Achieving Reliable Digital Data Communication through Mathematical Algebraic Coding Techniques

Design of Convolution Encoder and Reconfigurable Viterbi Decoder

Design and Implementation of VLSI 8 Bit Systolic Array Multiplier

Design of Viterbi Decoder for Noisy Channel on FPGA Ms. M.B.Mulik, Prof. U.L.Bombale, Prof. P.C.Bhaskar

Fault Tolerant Parallel Filters Based on ECC Codes

AN EFFICIENT DESIGN OF VLSI ARCHITECTURE FOR FAULT DETECTION USING ORTHOGONAL LATIN SQUARES (OLS) CODES

Comparative Performance Analysis of Block and Convolution Codes

Design Single and Multiple Errors Correction Block Codes

FUZZY LOGIC BASED CONVOLUTIONAL DECODER FOR USE IN MOBILE TELEPHONE SYSTEMS

Design of a Multiplier Architecture Based on LUT and VHBCSE Algorithm For FIR Filter

Enhanced Detection of Double Adjacent Errors in Hamming Codes through Selective Bit Placement

Error Resilience: A Distinct Approach for Comparative Analysis of Error Correcting Codes

Verilog Module 1 Introduction and Combinational Logic

THERE has been great interest in recent years in coding

DESIGN OF FAULT SECURE ENCODER FOR MEMORY APPLICATIONS IN SOC TECHNOLOGY

HIGH-PERFORMANCE RECONFIGURABLE FIR FILTER USING PIPELINE TECHNIQUE

International Journal of Research Available at

International Journal of Science Engineering and Advance Technology, IJSEAT, Vol 2, Issue 11, November ISSN

A Modified Medium Access Control Algorithm for Systems with Iterative Decoding

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

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

Hardware Implementation of Single Bit Error Correction and Double Bit Error Detection through Selective Bit Placement for Memory

Design of a Pipelined 32 Bit MIPS Processor with Floating Point Unit

A Review on Analysis on Codes using Different Algorithms

Improved Soft-Decision Decoding of RSCC Codes

Design of Flash Controller for Single Level Cell NAND Flash Memory

DESIGN AND IMPLEMENTATION OF VLSI SYSTOLIC ARRAY MULTIPLIER FOR DSP APPLICATIONS

ELEC 691X/498X Broadcast Signal Transmission Winter 2018

ISSN (Print) Research Article. *Corresponding author Akilambigai P

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

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

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

FPGA Implementation of Double Error Correction Orthogonal Latin Squares Codes

On the Design of High Speed Parallel CRC Circuits using DSP Algorithams

FPGA Implementation of Huffman Encoder and Decoder for High Performance Data Transmission

TSG-RAN Working Group 2 (Radio layer 2 and Radio layer 3) TSGR2#2(99)085 Stockholm 8th to 11th March 1999

HDL IMPLEMENTATION OF SRAM BASED ERROR CORRECTION AND DETECTION USING ORTHOGONAL LATIN SQUARE CODES

Kevin Buckley

On the performance of turbo codes with convolutional interleavers

FPGA Implementation of a High Speed Multiplier Employing Carry Lookahead Adders in Reduction Phase

IEEE Broadband Wireless Access Working Group <

/$ IEEE

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

Feasibility of using Vehicle s Power Line as a Communication Bus

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

High Speed ACSU Architecture for Viterbi Decoder Using T-Algorithm

HCTL Open Int. J. of Technology Innovations and Research HCTL Open IJTIR, Volume 4, July 2013 e-issn: ISBN (Print):

{ rizwan.rasheed, aawatif.menouni eurecom.fr,

< Irregular Repeat-Accumulate LDPC Code Proposal Technology Overview

PERFORMANCE ANALYSIS OF HIGH EFFICIENCY LOW DENSITY PARITY-CHECK CODE DECODER FOR LOW POWER APPLICATIONS

Implementation of Galois Field Arithmetic Unit on FPGA

Design and Implementation of 3-D DWT for Video Processing Applications

VHDL CODE FOR SINGLE BIT ERROR DETECTION AND CORRECTION WITH EVEN PARITY CHECK METHOD USING XILINX 9.2i

Implementation of Convolution Encoder and Viterbi Decoder Using Verilog

Implementation and Analysis of an Error Detection and Correction System on FPGA

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

VLSI Implementation of Low Power Area Efficient FIR Digital Filter Structures Shaila Khan 1 Uma Sharma 2

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

A High Performance CRC Checker for Ethernet Application

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

Data Encryption on FPGA using Huffman Coding

Comparison between Various Edge Detection Methods on Satellite Image

Implementation Analysis of adaptive Viterbi Decoder for High Speed Applications

SCALABLE IMPLEMENTATION SCHEME FOR MULTIRATE FIR FILTERS AND ITS APPLICATION IN EFFICIENT DESIGN OF SUBBAND FILTER BANKS

IEEE 802.3ap Codes Comparison for 10G Backplane System

Evaluation of JSCC for Multi-hop Wireless Channels. Huiyu Luo and Yichen Liu EE206A Spring, 2002

Error Detecting and Correcting Code Using Orthogonal Latin Square Using Verilog HDL

FPGA Based Design and Simulation of 32- Point FFT Through Radix-2 DIT Algorith

FIR Filter Architecture for Fixed and Reconfigurable Applications

Fault Tolerant Parallel Filters Based On Bch Codes

Hardware Description of Multi-Directional Fast Sobel Edge Detection Processor by VHDL for Implementing on FPGA

VHDL Implementation of different Turbo Encoder using Log-MAP Decoder

Low-Power Adaptive Viterbi Decoder for TCM Using T-Algorithm

Efficient Convolutional Adaptive Viterbi Encoder and Decoder Using RTL Design

Low Cost Convolutional Code Based Concurrent Error Detection in FSMs

A close look towards Modified Booth s algorithm with BKS Process

International Journal of Advanced Research in Computer Science and Software Engineering

Robustness of Multiplexing Protocols for Audio-Visual Services over Wireless Networks

International Journal of Computer Sciences and Engineering. Research Paper Volume-6, Issue-2 E-ISSN:

Design and Implementation of Low Density Parity Check Codes

FPGA Implementation of MIPS RISC Processor

Weight distribution of turbo codes with convolutional interleavers

A Hybrid ARQ Scheme for Resilient Packet Header Compression

Convolutional Codes. COS 463: Wireless Networks Lecture 9 Kyle Jamieson. [Parts adapted from H. Balakrishnan]

T325 Summary T305 T325 B BLOCK 4 T325. Session 3. Dr. Saatchi, Seyed Mohsen. Prepared by:

IJSRD - International Journal for Scientific Research & Development Vol. 3, Issue 10, 2015 ISSN (online):

Forward Error Correction Codes

SMALL DISTANCE CODES FOR HEADER ERROR DETECTION IN ATM NETWORKS

4D ENCODING IN LEVEL-ONE'S PROPOSAL FOR 1000BASE-T. Jaime E. Kardontchik. Advanced Micro Devices. Sunnyvale, CA August 21, Rev B

INTERNATIONAL JOURNAL OF ELECTRONICS AND COMMUNICATION ENGINEERING & TECHNOLOGY (IJECET)

Transcription:

Design of Convolutional Codes for varying Constraint Lengths S VikramaNarasimhaReddy 1, Charan Kumar K 2, Neelima Koppala 3 1,2 MTech(VLSI) Student, 3 Assistant Professor, ECE Department, SreeVidyanikethan Engineering College (Autonomous), ARangampet, Tirupati Abstract--- Convolutional codes play a vital role in wireless communication with the increase in usage of low-latency applications operating at high data rates As the current technologies demand high data rates, the design of convolutional codes is necessary for varying lengths They can be designed as recursive or nonrecursive codes hence they represent a state machine Non-recursive codes prove a better choice for single input based serially communicated applications This paper concentrates on the design and verification of these codes using XilinxISE 101i Tool Keywords Convolutional Codes, Constraint Length, Data Rate, Latency, State machine I INTRODUCTION Convolutional codes are introduced in 1955 by Elias convolutional codes are one of the powerful and widely used class of codes, These codes are having many applications, that are used in deep-space communications, voiceband modems, wireless standards(such as 80211) and in satellite communications [9] Convolutional codes are plays a role in low-latency applications such as speech transmission and as constituent codes in Turbo codes Convolutional codes are used as inner codes with burst error correcting block codes as outer codes to form concatenated codes [6] Errors in Viterbi-like decoding algorithms for convolutional codes tend to occur in bursts because they result from taking a wrong path in a trellis The burst error correcting capability of the outer code is used to recover from such burst error patterns in the decoding of the inner code Convolutional codes are easy to implement, because we can understand them in many different ways, and there is a way to decode them so as to recover the mathematically most likely message from among the set of all possible transmitted messages Convolutional codes are a bit type block codes [8] They involve the transmission of parity bits that are computed from message bits II CONVOLUTIONAL CODES Convolutional codes protect information by adding redundant bits to any binary data The convolutional encoder computes each n-bit symbol (n >k) of the output sequence from linear operations on the current input k-bit symbol and the contents of the shift register(s) Thus, a rate k/n convolutional encoder processes a k-bit input symbol and computes an n-bit output symbol with every shift register update Convolutional codes are commonly specified by three parameters; (n,k,m) n = number of output bits k = number of input bits m = number of memory registers The quantity k/n is called as code rate it is a measure of the efficiency of the code [1] Commonly k and n parameters range from 1 to 8, m from 2 to 10 and the code rate from 1/8 to 7/8 except for deep space applications where coderates as low as 1/100 or even longer have been employed here The quantity L is called the constraint length of the code and is defined by Constraint Length, L = k (m-1) The constraint length L represents the number of bits in the encoder memory that affect the generation of the n output bits The constraint length L is also ISSN: 2231-5381 http://wwwinternationaljournalssrgorg Page 61

referred to by the capital letter K, which can be confusing with the lower case k, which represents the number of input bits In some books K is defined as equal to product the of k and m Often in commercial specifications, the codes are specified by (r, K), where r = the code rate k/n and K is the constraint length III CONVOLUTIONAL CODES TYPES Convolutional codes are two types that are Recursive and non-recursive Figures 1 and 2 illustrate Recursive and Non Recursive convolutional encoders Convolutional encoders are finite-state machines [4] Hence state diagrams provide considerable insight into the behavior of convolutional codes Fig 3 : recursive state diagram Fig 1: Recursive convolutional encoder Fig 4 : Non recursive state diagram Fig 2: Non Recursive convolutional encoder Figures 3 and 4 provide the state diagrams for the encoders of Figs 1 and 2, respectively In state diagram the states are labeled so that the least significant bit is the one residing in the leftmost memory element of the shift register [3] The branches are labeled with the 1-bit (single-bit) input and the 2-bit output separated by a comma The most significant bit (MSB) of the two-bit output is the bit labeled MSB in Figs 1 and 2 Nonrecursiveencoder requires only a single nonzero input But recursive encoder requires three nonzero inputs Thus the nonrecursive shift register has a finite impulse response, and the recursive shift register has an infinite impulse response This difference is not particularly important for convolutional codes decoded with Viterbi, but it is extremely important to convolutional encoders used as constituents in Turbo codes, which are constructed by concatenating convolutional codes separated by interleavers Only recursive encoders (with infinite impulse responses) are effective constituents in Turbo codes [10] Thus, equivalent encoders can produce dramatically different performance as constituents in Turbo codes, depending on whether or not they meet the requirement for an infinite impulse response ISSN: 2231-5381 http://wwwinternationaljournalssrgorg Page 62

IV (2,1,3) CONVOLUTIONAL ENCODER Fig 5 :(2,1,3) convolutional encoder The (2,1,3) code in Fig 5 has a constraint length of 2 The last two registers below hold two bits The very first register holds the incoming bit This means that 2 bits or 4 different combinations of these bits can be present in these memory registers These 4 different combinations determine what output we will get for v 1 and v 2, the coded sequence The number of combinations of bits in the shaded registers are called the states of the code and are defined by Fig 6 : (2,1,3) state diagram V (2,1,4) CONVOLUTIONAL ENCODER The (2,1,4) code in Fig 7 has a constraint length of 3 The shaded registers below hold these bits The un shaded register holds the incoming bit This means that 3 bits or 8 different combinations of these bits can be present in these memory registers These 8 different combinations determine what output we will get for v 1 and v 2, the coded sequence Number of states = 2 L where L = the constraint length of the code and is equal to k (m - 1) Think of states as sort of an initial condition The output bit depends on this initial condition which changes at each time tick Let s examine the states of the code (2,1,3) shown above This code outputs 2 bits for every 1 input bit It is a rate ½ code Its constraint length is 2 The total number of states is equal to 4 [2] The eight states of this (2,1,3) code are: 00, 01, 01, 11 And the state diagram is shown in Fig 6 Fig 7 : (2,1,4) convolutional encoder The number of combinations of bits in the shaded registers are called the states of the code and are defined by Number of states = 2 L where L = the constraint length of the code and is equal to k (m - 1) ISSN: 2231-5381 http://wwwinternationaljournalssrgorg Page 63

Think of states as sort of an initial condition The output bit depends on this initial condition which changes at each time tick Let s examine the states of the code (2,1,4) shown above This code outputs 2 bits for every 1 input bit It is a rate ½ code Its constraint length is 3 The total number of states is equal to 8 The eight states of this (2,1,4) code are: 000, 001, 010, 011, 100, 101, 110, 111 And the state diagram is as shown in Fig 8 get for y 1 and y 2, the coded sequence The number of combinations of bits in the shaded registers are called the states of the code and are defined by Number of states = 2 L where L = the constraint length of the code and is equal to k (m - 1) Think of states as sort of an initial condition The output bit depends on this initial condition which changes at each time tick Let s examine the states of the code (2,1,7) shown above This code outputs 2 bits for every 1 input bit It is a rate ½ code Its constraint length is 7 The total number of states is equal to 64 The sixty four states of this (2,1,7) code are: 000000,0000 01, 000010, 111111 11 State table is shown in Table 1 TABLE I: (2,1,7) state table Fig 8: (2,1,4) state diagram VI (2,1,7) CONVOLUTIONAL ENCODER Input Present state Next state 0 000000 000000 1 000000 100000 0 000001 000000 1 000000 100000 0 111111 011111 1 111111 111111 output 00 11 11 00 00 11 VII DECODING CONVOLUTIONAL CODES Fig 9 : (2,1,7) convolutional encoder The (2,1,7) code in Fig 9 has a constraint length of 6 The shaded registers below hold two bits The unshaded register holds the incoming bit This means that 6 bits or 64 different combinations of these bits can be present in these memory registers These 64 different combinations determine what output we will There are three major families of decoding algorithms for convolutional codes: sequential, Viterbi, and maximum a posteriori (MAP) Viterbi originally described the decoding algorithm that bears his name in 1967 [6] And also Forney s work introducing the trellis structure and showing that Viterbi decoding is maximum-likelihood in the sense ISSN: 2231-5381 http://wwwinternationaljournalssrgorg Page 64

that it selects the sequence that makes the received sequence most likely In 1974, Bahl et al proposed MAP decoding, which explicitly minimizes bit (rather than sequence) error rate Compared with Viterbi, MAP provides a negligibly smaller bit error rate (and a negligibly larger sequence error rate) These small performance differences require roughly twice the complexity of Viterbi, making MAP unattractive for practical decoding of convolutional codes [5] However, MAP decoding is crucial to the decoding of Turbo codes When convolutional codes are used in the traditional way (not as constituents in Turbo codes), they are almost always decoded using some form of the Viterbi algorithm, and the rest of this section focuses on describing it The goal of the Viterbi algorithm is to find the transmitted sequence (or codeword) that is closest to the received sequence [7] As long as the distortion is not too severe, this will be the correct sequence sequence is 00111101111001 for the given input sequence of 01011100 Fig11: The simulation output of (2,1,4) Convolutional code The simulation results for (2,1,7) convolutional code is shown in Fig12 where the obtained output sequence is 0011100010101111 for the given input sequence of 01011100 VIII RESULTS AND DISCUSSION The designed convolutional codes are developed using Verilog HDL and are simulated and synthesized in XilinxISE101i environment The FPGA device selected is Spartan 3E with XC3S500E family, fg320 package and -5 speed grade The simulations are carried for various inputs and outputs of the convolutional encodersthe simulation results for (2,1,3) convolutional code is shown in Fig10 where the obtained output sequence is 00111000010111 for the given input sequence of 01011100 Fig12: The simulation output of (2,1,7) Convolutional code The obtained synthesis results are represented in Table2 as shown below With same code rate, it compares the codes for area ie, in terms of slices, flip-flops, LUTs (look up tables) and the critical path delay TABLE II: Synthesis Results of the codes Convolutional Codes / (2,1,3) (2,1,4) (2,1,7) Parameters Code rate ½ ½ ½ Constraint 2 3 6 Length NoofLUTs 2 5 14 Noofslices 2 3 10 Sliced F/Fs 4 5 8 Combinational Path delay 2589ns 2676ns 4645ns Fig10: The simulation output of (2,1,3) Convolutional code The simulation results for (2,1,4) convolutional code is shown in Fig11 where the obtained output From above table, it is clear that even though the code rate is kept same, as the constraint length is increasing the combinational path delay and the ISSN: 2231-5381 http://wwwinternationaljournalssrgorg Page 65

number of output bits increase with an optimum increase in area Hence, optimally the code rates can be used based on applications [10] Wang Xinmei, Xiao Guozhen, Error correcting code - Principles and Methods, Xidian University Press, 2001 :378-458 IX CONCLUSION The design of Convolutional codes are basically encoders which are very important for extremely low error probabilities used at high data rates of wireless communication applications For the basic design of the codes can bedeveloped based on code rate and constraint length As the constraint length is increasing the parallel implementationhas to be used for feasibility and high data rates with less delay and optimum area utilization The non-recursive and recursive codes can be designed based on the application of single or multiple inputs considered at a time These codes are suitable for high data rate based wireless communication applications which include deep space communications, voice band modems, satellite communication, etc REFERENCES [1] W W Peterson and E J Weldon, Jr, Error Correcting Codes, 2nd ed Cambridge, MA: The MIT Press, 1972 [2] S Lin and DJ Costello, Error control coding Englewood Cliffs, NJ: Prentice Hall, 1982 [3] A M Michelson and AH Levesque, Error control techniques for digital communicationnew & Sons, 1985 [4] V Pless, Introduction to the theory of Error-Correcting codes, 3 rd ed New York: john Wiley & Sons,1998 [5] A JViterbi, Error bounds for convolutional coding and an asymptotically optimum decoding algorithm, IEEE Tran on Inform Theory, Vol 2, Pp 260-269, Apr 1967 [6] A J Viterbi, Convolutional codes and their performance in communication systems, IEEE Transaction Communication Technology, Vol19, pp 751-772, Oct 1971 [7] A J Viterbi and J K Omura, Principles of Digital Communications and Coding, McGraw-Hill, NY, 1979 [8] B Sklar, Digital Communications: Fundamentals and Applications, 2nd edition, Prentice-Hall, Upper Saddle River, N J, 2001 4 G C Clark Jr and J B Cain, Error-Correction Coding for Digital Communications, Plenum Press, NY, 1981 [9] J H Yuen, Modulation and Coding for Satellite and Space Communications, IEEE Proceedings, Vol 78, No 7, pp 1250-1266, July 1990 ISSN: 2231-5381 http://wwwinternationaljournalssrgorg Page 66