VHDL Implementation of Reed Solomon Improved Encoding Algorithm

Similar documents
An Enhanced (31,11,5) Binary BCH Encoder and Decoder for Data Transmission

Dr. Cathy Liu Dr. Michael Steinberger. A Brief Tour of FEC for Serial Link Systems

Information redundancy

Error Correction Review

Simplification of Procedure for Decoding Reed- Solomon Codes Using Various Algorithms: An Introductory Survey

Outline. EECS Components and Design Techniques for Digital Systems. Lec 18 Error Coding. In the real world. Our beautiful digital world.

Binary Primitive BCH Codes. Decoding of the BCH Codes. Implementation of Galois Field Arithmetic. Implementation of Error Correction

2013/Fall-Winter Term Monday 12:50 Room# or 5F Meeting Room Instructor: Fire Tom Wada, Professor

Error Correction and Trellis Coding

Design and Implementation of Reed-Solomon Decoder using Decomposed Inversion less Berlekamp-Massey Algorithm by

Chapter 6. BCH Codes

EECS Components and Design Techniques for Digital Systems. Lec 26 CRCs, LFSRs (and a little power)

Fault Tolerant Computing CS 530 Information redundancy: Coding theory. Yashwant K. Malaiya Colorado State University

AN IMPROVED LOW LATENCY SYSTOLIC STRUCTURED GALOIS FIELD MULTIPLIER

ECE 4450:427/527 - Computer Networks Spring 2017

Lecture 12. Block Diagram

Error Detection & Correction

Error Correction Methods

The Pennsylvania State University. The Graduate School. Department of Computer Science and Engineering

B. Cyclic Codes. Primitive polynomials are the generator polynomials of cyclic codes.

Error Correction Code (1)

Information Redundancy: Coding

Instruction Set Extensions for Reed-Solomon Encoding and Decoding

Fully-parallel linear error block coding and decoding a Boolean approach

Optical Storage Technology. Error Correction

EECS150 - Digital Design Lecture 23 - FFs revisited, FIFOs, ECCs, LSFRs. Cross-coupled NOR gates

Implementation of Galois Field Arithmetic. Nonbinary BCH Codes and Reed-Solomon Codes

9 THEORY OF CODES. 9.0 Introduction. 9.1 Noise

Design and Implementation of High Speed CRC Generators

EECS150 - Digital Design Lecture 26 Error Correction Codes, Linear Feedback Shift Registers (LFSRs)

Introduction to Wireless & Mobile Systems. Chapter 4. Channel Coding and Error Control Cengage Learning Engineering. All Rights Reserved.

x n k m(x) ) Codewords can be characterized by (and errors detected by): c(x) mod g(x) = 0 c(x)h(x) = 0 mod (x n 1)

Error Control Codes for Memories

Coding Theory: Linear-Error Correcting Codes Anna Dovzhik Math 420: Advanced Linear Algebra Spring 2014

Error Detection, Correction and Erasure Codes for Implementation in a Cluster File-system

Multimedia Systems WS 2010/2011

Chapter 6 Reed-Solomon Codes. 6.1 Finite Field Algebra 6.2 Reed-Solomon Codes 6.3 Syndrome Based Decoding 6.4 Curve-Fitting Based Decoding

Cyclic Codes. Saravanan Vijayakumaran August 26, Department of Electrical Engineering Indian Institute of Technology Bombay

Minimized Logic Gates Number Of Components In The Chien Search Block For Reed-Solomon (RS)

Cyclic codes. Vahid Meghdadi Reference: Error Correction Coding by Todd K. Moon. February 2008

FPGA BASED DESIGN OF PARALLEL CRC GENERATION FOR HIGH SPEED APPLICATION

Decoding Algorithm and Architecture for BCH Codes under the Lee Metric

The BCH Bound. Background. Parity Check Matrix for BCH Code. Minimum Distance of Cyclic Codes

EECS150 - Digital Design Lecture 21 - Design Blocks

SIDDHARTH GROUP OF INSTITUTIONS :: PUTTUR Siddharth Nagar, Narayanavanam Road UNIT I

A Brief Encounter with Linear Codes

PAPER A Low-Complexity Step-by-Step Decoding Algorithm for Binary BCH Codes

Cyclic codes: overview

Objective: To become acquainted with the basic concepts of cyclic codes and some aspects of encoder implementations for them.

5.0 BCH and Reed-Solomon Codes 5.1 Introduction

Optimum Soft Decision Decoding of Linear Block Codes

Reed-Solomon codes. Chapter Linear codes over finite fields

Cyclic Redundancy Check Codes

Chapter 3 Linear Block Codes

ECE8771 Information Theory & Coding for Digital Communications Villanova University ECE Department Prof. Kevin M. Buckley Lecture Set 2 Block Codes

A COMBINED 16-BIT BINARY AND DUAL GALOIS FIELD MULTIPLIER. Jesus Garcia and Michael J. Schulte

Math 512 Syllabus Spring 2017, LIU Post

New Reed Solomon Encoder Design Using Galois Subfield Multiplier

MATH 433 Applied Algebra Lecture 21: Linear codes (continued). Classification of groups.

Coding for loss tolerant systems

Linear Feedback Shift Registers (LFSRs) 4-bit LFSR

ELEC3227/4247 Mid term Quiz2 Solution with explanation

channel of communication noise Each codeword has length 2, and all digits are either 0 or 1. Such codes are called Binary Codes.

Structured Low-Density Parity-Check Codes: Algebraic Constructions

Communication Theory II

GF(2 m ) arithmetic: summary


EE 229B ERROR CONTROL CODING Spring 2005

ERROR CORRECTING CODES

1 Reed Solomon Decoder Final Project. Group 3 Abhinav Agarwal S Branavan Grant Elliott. 14 th May 2007

Decoding of the Five-Error-Correcting Binary Quadratic Residue Codes

The E8 Lattice and Error Correction in Multi-Level Flash Memory

Polynomial Codes over Certain Finite Fields

Some math for embedded algorithms

Algebraic Codes for Error Control

Utilizing Correct Prior Probability Calculation to Improve Performance of Low-Density Parity- Check Codes in the Presence of Burst Noise

Chapter 5. Cyclic Codes

Fault Tolerance & Reliability CDA Chapter 2 Cyclic Polynomial Codes

Outline. EECS150 - Digital Design Lecture 26 Error Correction Codes, Linear Feedback Shift Registers (LFSRs) Simple Error Detection Coding

New Algebraic Decoding of (17,9,5) Quadratic Residue Code by using Inverse Free Berlekamp-Massey Algorithm (IFBM)

Lecture 3: Error Correcting Codes

Lecture Introduction. 2 Linear codes. CS CTT Current Topics in Theoretical CS Oct 4, 2012

Berlekamp-Massey decoding of RS code

Making Error Correcting Codes Work for Flash Memory

New EPoC Burst Markers with Data Field

EECS150 - Digital Design Lecture 26 - Faults and Error Correction. Types of Faults in Digital Designs

Part III. Cyclic codes

Codes on graphs and iterative decoding

Error-Correcting Schemes with Dynamic Thresholds in Nonvolatile Memories

REED-SOLOMON CODE SYMBOL AVOIDANCE

Optimization of the Hamming Code for Error Prone Media

Implementation of Galois Field Arithmetic. Nonbinary BCH Codes and Reed-Solomon Codes

EECS150 - Digital Design Lecture 26 Faults and Error Correction. Recap

Communications II Lecture 9: Error Correction Coding. Professor Kin K. Leung EEE and Computing Departments Imperial College London Copyright reserved

Optimization of the Hamming Code for Error Prone Media

Constructions of Nonbinary Quasi-Cyclic LDPC Codes: A Finite Field Approach

Solutions to problems from Chapter 3

MATH 291T CODING THEORY

6.1.1 What is channel coding and why do we use it?

ECEN 604: Channel Coding for Communications

Transcription:

VHDL Implementation of Reed Solomon Improved Encoding Algorithm P.Ravi Tej 1, Smt.K.Jhansi Rani 2 1 Project Associate, Department of ECE, UCEK, JNTUK, Kakinada A.P. 2 Assistant Professor, Department of ECE, UCEK, JNTUK, Kakinada A.P. 1 mailprt24@gmail.com, 2 jhansikaka@gmail.com Abstract : The effective Reed Solomon encoder design is based on the improved algorithm widely used in wireless communication system. Taking RS encoder in Digital Video Broadcasting system, we introduce the structure of RS encoder. Improved algorithm on Galois Field multiplier and Galois Field addition is proposed that saves the numbers of the XOR gates. Galois Field depends on Irreducible Polynomial. The proposed architecture implements various programmable primitive polynomials. The feasibility and validity of our proposed work has been verified through Xilinx Simulator. Keywords- Reed Solomon, Galois Field, DVB, ECC, SNR I. INTRODUCTION An important function of any modern digital communications system is error control coding (ECC). Such coding is the field of communications that deals with techniques for detecting and correcting errors in a signal. Though used in a variety of systems, ECC is especially useful in wireless communications systems. Such systems typically operate with a low signal-to-noise ratio (SNR) and suffer from distortion because of a multipath channel. Typical communications systems use several codes that are suited to correcting different types of errors. RS codes are the most powerful in the family of linear block codes and are arguably the most widely used type of error control codes [6]. RS code is a type of Forward Error Correction (FEC) code and it is a non-binary, linear and cyclic block error correcting code. The basic idea of FEC codes is to systematically add redundancy at the end of the messages so as to enable the correct retrieval of messages despite errors in the received sequences [3]. RS codes which was discovered by Irving S. Reed and Gustave Solomon in Lincoln laboratory of MIT in 1960, is a kind of multi-bch (Bose-Chaudhuri-Hocquenghem) code with strong error correction capability, which is currently one of the most effective and widely used for error control codes [4]. RS codes have been extensively. Applied in deep space communication systems and storage systems due to their excellent capability of correcting both random and burst errors. RS Codes have been widely used in a variety of error correcting systems found just about anywhere including: Storage devices, Wireless communications, Digital TV, Satellite communications, Broadband Technologies, etc [1]. The symbols in RS coding are elements of a finite field or Galois Field (GF). A GF is a set that consists of finite number of elements. Galois field arithmetic is used for encoding and decoding of RS codes. Galois field multipliers are used for encoding the information block. The encoder attaches parity symbols to the data using a predetermined algorithm before transmission. RS code has strong error correction capability in the same coding efficiency, and its error correction capability performance is close to the theoretical value, especially on the short yards of medium. Not only RS code can correct the random error, but also it deep space communications systems, data storage systems and digital television transmission. Terrestrial broadcast channel is a mixed channel which has both random error and burst error. So the RS code has been the preferred object. Page435

II. REED SOLOMON ENCODING A. Operation The Reed-Solomon encoder reads in k data symbols, computes the n-k parity symbols, and appends the parity symbols to the k data symbols for a total of n symbols. The encoder is essentially a 2t tap shift register where each register is m bits wide. The multiplier coefficients are the coefficients of the RS generator polynomial. RS encoder design should effectively perform the following two operations, namely division and shifting. Both operations can be easily implemented using Linear-Feedback Shift Registers (LFSR) [8]. Reed-Solomon codes are non binary cyclic codes with symbols made up of m-bit sequences, where m is any positive integer having a value greater than 2. R-S (n, k) codes on m-bit symbols exist for all n and k For which 0 < k < n < 2m + 2 Where k is the number of data symbols being encoded, and n is the total number of code symbols in the encoded block. For the most conventional R-S (n, k) code, (n, k) = (2 m - 1, 2 m - 1-2t) Where t is the symbol-error correcting capability of the code, and n - k = 2t is the number of parity symbols. An extended R-S code can be made up with n = 2 m or n = 2 m + 1, but not any further. Reed-Solomon codes achieve the largest possible code minimum distance for any linear code with the same encoder input and output block dmin = n - k + 1 The code is capable of correcting any combination of t or fewer errors, where t can be expressed as t = [d-1]/2 = [n-k]/2 Reed-Solomon Error Probability: The Reed-Solomon (R-S) codes are particularly useful for burst-error correction; that is, they are effective for channels that have memory. Also, they can be used efficiently on channels where the set of input symbols is large. An interesting feature of the R-S code is that as many as two information symbols can be added to an R-S code of length n without reducing its minimum distance. This extended R-Scode has length n + 2 and the same number of parity check symbols as the original code. The R-S decoded symbol-error probability, PE, in terms of the channel symbol-error probability lengths. For non binary codes, the distance between two code words is defined (analogous to Hamming distance) as the number of symbols in which the sequences differ. Why R-S Codes Perform Well Against Burst Noise Consider an (n, k) = (255, 247) R-S code, where each symbol is made up of m = 8 bits (such symbols are typically referred to as bytes). Since n - k = 8, Equation (4) indicates that this code can correct any four symbol errors in a block of 255. Imagine the presence of a noise burst, lasting for 25-bit durations and disturbing one block of data during transmission Data block disturbed by 25-bit noise burst. In this example, notice that a burst of noise that lasts for a duration of 25 contiguous bits must disturb exactly four symbols. The R-S decoder for the (255, 247) code will correct any four-symbol errors without regard to the type of damage suffered by the symbol. In other words, when a decoder corrects a byte, it replaces the incorrect byte with the correct one, whether the error was caused by one bit being corrupted or all eight bits being corrupted. Thus if a symbol is wrong, it might as well be wrong in all of its bit positions. This gives an R-S code a tremendous burst-noise advantage over binary codes, even allowing for the Interleaving of binary codes. In this example, if the 25-bit noise disturbance had occurred in a random fashion rather than as a contiguous burst, it should be clear that many more than four symbols would be affected (as many as 25 symbols might be disturbed). Of course, that would be beyond the capability of the (255, 247) code.

R-S Performance as a Function of Size, Redundancy, and Code Rate For a code to successfully combat the effects of noise, the noise duration has to represent a relatively small percentage of the codeword. To ensure that this happens most of the time, the received noise should be averaged over a long period of time, reducing the effect of a freak streak of bad luck. Hence, error-correcting codes become more efficient (error performance improves) as the code block size increases, making R-S codes an attractive choice whenever long block lengths are desired [5]. This is seen by the family of curves, where the rate of the code is held at a constant 7/8, while its block size increases from n = 32 symbols (with m = 5 bits per symbol) to n = 256 symbols (with m = 8 bits per symbol). Thus, the block size increases from 160 bits to 2048 bits. Finite Fields In order to understand the encoding and decoding principles of non binary codes, such as Reed-Solomon (R- S) codes, it is necessary to venture into the area of finite Fields known as Galois Fields (GF). For any prime number, p, there exists a finite field denoted GF ( p) that contains p elements. It is possible to extend GF ( p) to a field of pm elements, called an extension field of GF( p), and denoted by GF( P m ), where m is a nonzero positive integer. Note that GF ( p m ) contains as a subset the elements of GF( p). Symbols from the extension field GF(2 m ) are used in the Construction of Reed-Solomon (R-S) codes. The binary field GF(2) is a subfield of the extension field GF(2 m ), in much the same way as the real number field is a subfield of the complex number field. Besides the numbers 0 and 1, there are additional unique elements in the extension field that will be represented with a new symbol α. Each nonzero element in GF(2 m ) can be represented by a power of α. An infinite set of elements, F, is formed by starting with the elements {0, 1, α}, and generating additional elements by progressively multiplying the last entry by α, F = {0, 1, α, α2,, α j, } = {0, α0, α1, α2,, α j, } To obtain the finite set of elements of GF(2m) from F, a condition must be imposed on F so that it may contain only 2m elements and is closed under multiplication. The condition that closes the set of field elements under multiplication is characterized by the irreducible polynomial shown below: (2m 1) + 1 = 0 or (2m 1) = 1 = 0 (2m n) = (2m 1) n+1 = n+1 Thus, Equation can be used to form the finite sequence F* from the infinite sequence F as follows: F*={0,1,, 2,.. 2m 2, 2m 1, 2m } ={0, 0, 1, 2... 2m 2 } B. ARCHITECTURE The encoder is implemented by LFSR. The coefficients of g i are derived from generator polynomial. Fig.1 shows basic block diagram of RS Encode. Fig.1. Block diagram of RS Encoder The output codeword c(x) is systematically encoded and defined in as a function of the transmitted message m(x), the generator polynomial g(x) and the number of parity symbols 2t as like c x = m x + 2t parity symbols. The 2t no. of parity symbols can be calculated using generator polynomial and Galois field multiplier. The generator polynomial of degree 2t is given by g x = x + α x + α 2. (x + α 2t ) g x = g 0 + g 1 x + g 2 x 2 + + g 2t 1 x 2t 1 + g 2t

III. WORK DONE & RESULTS (i) RS (15, 11) encoder: Symbol length m = 4 bits Error correcting capability t = 2 Primitive polynomial p x = x 4 + x + 1 = 0 g x = x + α x + α 2 (x + α 3 )(x + α 4 ) g x = α 10 + α 3 x + α 6 x 2 + α 13 x 3 + x 4 Input message symbols: α α 2 α 3 α 4 α 5 α 6 α 7 α 8 α 9 α 10 1 α α 2 α 3 α 4 α 5 α 6 α 7 α 8 α 9 α 10 1 α 9 α 3 α 9 α 13 Encoded polynomial c x = α 13 + α 9 x + α 3 x 2 + α 9 x 3 + 1x 4 + α 10 x 5 + α 9 x 6 + α 8 x 7 + α 7 x 8 + α 6 x 9 + α 5 x 10 + α 4 x 11 α 3 x 12 + α 2 x 13 + α x 14 Simulation result 1: (ii) RS (255, 247) encoder: Symbol length m = 8 bits Error correcting capability t = 4 Primitive polynomial: p x = x 8 + x 4 + x 3 + x 2 + 1 = 0 g x = x + α x + α 2 x + α 3 (x + α 8 ) g x = α 36 + α 203 x + α 3 x 2 + α 220 x 3 + α 253 x 4 + α 211 x 5 + α 240 x 6 + α 176 x 7 + x 8 Input message symbols 1 α 1 α α 241 α 120 α 99 α 82 α 241 α 83 α 61 α 125 Encoded polynomial: c x = α 125 + α 61 x + α 83 x 2 + α 241 x 3 + α 82 x 4 + α 99 x 5 Simulation result 2: + α 120 x 6 + α 241 x 7 + α 1 x 8 + 1 Fig.4. RS (15, 11) Encoder output Fig.5. RS (255, 247) Encoder output.

(iii). RS (255, 239) encoder: Symbol length m = 8 bits Error correcting capability t = 8 Primitive polynomial: p x = x 8 + x 4 + x 3 + x 2 + 1 = 0 g x = x + α x + α 2 x + α 3 (x + α 16 ) g x = α 136 + α 240 x + α 208 x 2 + α 195 x 3 + α 181 x 4 + α 158 x 5 + α 201 x 6 + α 100 x 7 + α 11 x 8 + α 83 x 9 + α 167 x 10 + α 107 x 11 + α 113 x 12 + α 110 x 13 + α 106 x 14 + α 121 x 15 + x 16 Input message symbols 1 α 1 α α 107 α 46 α 225 α 252 α 119 α 30 α 70 α 195 α 64 α 50 α 12 α 36 α 173 α 198 α 47 α 146 Encoded polynomial: g x = α 146 + α 47 x + α 198 x 2 + α 173 x 3 + α 36 x 4 + α 12 x 5 + α 50 x 6 + α 64 x 7 + α 195 x 8 + α 70 x 9 + α 30 x 10 + α 119 x 11 + α 252 x 12 + α 225 x 13 + α 46 x 14 + α 107 x 15 + α 1 x 16 + x 17 Simulation result 3: IV. CONCLUSION This paper briefly describes the RS encoder of DVB systems. And the design method of Finite Galois Field multiplier in RS (15, 11), RS (255,247) and RS (255,239) encoder circuit is analyzed in detail. Finally, an improved scheme is proposed. This method compared with the idea of local optimization in [1] saves more hardware resources. REFERENCE [1] Xiaojun Wu; Xianghui Shen; Zhibin Zeng An improved RS Encoding Algorithm Consumer Electronics Communications and Networks (CECNet), 2012 2 nd International Conference on Digital Object Identifier, Page(s): 1648 1652. [2] Yung-Kuei Lu; Ming-Der Shieh Efficient Architecture for Reed-Solomon Decoder VLSI Design, Automation, and Test (VLSI-DAT), 2012 International Symposium on Digital Object Identifier, Page(s): 1 4. [3] Http://www.ece.nus.edu.sg/stfpage/eleak/pdf/soia04.pdf. [4] Zhigang Ren; Dongping Yao An Improved High-speed RS Encoding Algorithm Microwave, Antenna, Propagation and EMC Technologies for Wireless Communications, 2009 3rd IEEE International Symposium on Digital Object Identifier, Page(s): 521 523. [5] Barbosa, T.C.; Moreno, R.L.; Pereira, T.C.; Ferreira, L.H.C. FPGA Implementation of a Reed-Solomon CODEC for OTN G.709 Standard with Reduced Decoder Area Wireless Communications Networking and Mobile Computing (WiCOM), 2010 6th International Conference on Digital Object Identifier, Page(s): 1 4. [6] Seungpum Kang, Sunwook Lee, Changgun Kim, and Yong Jee ASIC Implementation of Reed-Solomon Error Correction Circuits for Low Area Overhead on Memory System Proceedings of ICEIC2008, June 24-27, 2008. [7] Http://mobiledevdesign.com/hardware_news/radio_error control_coding.aqib. [8] Al Azad, Minhazul. Huq, Iqbalur. Rahman Rokon Efficient Hardware Implementation of Reed Solomon Encoder and Decoder in FPGA using Verilog International Conference on Advancements in Electronics and Power Engineering (ICAEPE'2011) Bangkok Dec. 2011. Fig.6. RS (255, 239) Encoder output