SlideShare a Scribd company logo
1 of 4
Download to read offline
International Journal Of Computational Engineering Research (ijceronline.com) Vol. 2 Issue. 8



      Implementation of Berlekamp Algorithm for Error Detection and
     Correction of Multiple Random Errors Using Reed-Solomon Codes
P. Chiranjeevi1 (M.Tech), D. Ramadevi2, Asst.Prof. K. Jeevan Reddy3, HOD
                    1, 2, 3,
                               Department of ECE, Teegala Krishna Reddy Engineering College/JNTU, India


Abstract:
         In the communication systems, RS codes have a widespread use to provide error protection. For burst errors and
random errors, RS code has become a popular choice to provide data integrity due to its good error correction capability.
This feature has been one of the important factors in adopting RS codes in many practical applications such as wireless
communication system, cable modem, computer memory and ADSL systems. Reed Solomon codes are an important sub
class of non-binary BCH codes. These are cyclic codes and are very effectively used for the detection and correction of
burst errors. Galois field arithmetic is used for encoding and decoding of reed Solomon codes. The design experience will
be formulated to form the complete design methodology of the FEC modules at the register-transfer level (RTL). Then we
incorporate the knowledge into our RS code generator design flow.
Keywords: RS codes, random errors, BCH codes, Galois Field, ADSL

I.       Introduction
            Digital communication system is used to transport information bearing signal from the source to a user
destination via a communication c h a n n e l . The information signal is processed in a digital communication system to
form discrete messages which makes the information m o r e r e l i a b l e for transmission. Channel coding is an
i m p o r t a n t signal processing operation for the efficient transmission of digital information over the channel. It was
introduced by Claude E. Shannon in 1948 by using the channel capacity as an important parameter for error free
transmission. In channel coding the number of symbols in the source encoded message is increased in a controlled
manner in order to facilitate two basic objectives at the receiver one is Error detection and other is Error correction.
Error detection and Error correction to achieve good communication is also employed in devices. It is used to reduce
the level of noise and interferences in electronic medium.

         The aim of the project is to correct multiple random errors and burst errors that are occur during the transmission
of the information by using Reed Solomon codes. The proposed code is designed using verilog coding and the results
demonstrate that the reed Solomon codes are very efficient for the detection and correction of burst errors.

II. Proposed Product Codes
          The Reed Solomon code is an algebraic code belonging to the class of BCH (Bose-Chaudhry-Hocquehen)
multiple burst correcting cyclic codes. The Reed Solomon code operates on bytes of fixed length. Given m parity bytes,
a Reed Solomon code can correct up to m byte errors in known positions (erasures), or detect and correct up to m/2 byte
errors in unknown positions. This is an implementation of a Reed Solomon code with 8 bit bytes, and a configurable
number of parity bytes. The maximum sequence length (code word) that can be generated is 255 bytes, including parity
bytes. In practice, shorter sequences are used.

                                         A typical system is shown in the figure 4.1 below:


             Reed-Solomon                    Communication                Reed-Solomon
Data                                                                                            data
                encoder                      channel or                      decoder
                                             storage device

                                             Fig 1 Typical RS encoder-decoder system

     The Reed-Solomon encoder takes a block of digital data and adds extra "redundant" bits. Errors occur during
transmission or storage for a number of reasons. The Reed-Solomon decoder processes each block and attempts to correct
errors and recover the original data. The number and type of errors that can be corrected depends on the characteristics of
the Reed-Solomon code. A Reed-Solomon code is specified as RS (n, k) with s-bit symbols.
     This means that the encoder takes k data symbols of s bits each and adds parity symbols to make an n symbol
codeword. There are n-k parity symbols of s bits each. A Reed-Solomon decoder can correct up to t symbols that contain
errors in a codeword, where 2t = n-k.

||Issn 2250-3005(online) ||                              ||December||2012||                                   Page 127
International Journal Of Computational Engineering Research (ijceronline.com) Vol. 2 Issue. 8



     The following figure 4.2 shows a typical Reed-Solomon codeword (this is known as a Systematic code because the
data is left unchanged and the parity symbols are appended):




                                               Fig 2 RS codeword format

1.  Reed Solomon Encoder
        Consider a Reed-Solomon code RS (255,247) with 8-bit symbols. Each codeword contains 255 code word bytes,
of which 247 bytes are data and 8 bytes are parity. For this code: n = 255, k = 247, s = 8,              2t=8, t =4. The
decoder can correct any 4 symbol errors in the code word: i.e. errors in up to 4 bytes anywhere in the codeword can be
automatically corrected.

           The k information symbols that form the message to be encoded as one block can be represented by a polynomial
M(x) of order k-1, so that:
                                   M(x) = Mk-1xk-1 + .... + M1x + M0
         Where each of the coefficients Mk-1, ...., M1, M0 is an m-bit message symbol, that is, an element of GF(2m). Mk-
1 is the first symbol of the message.

       To encode the message, the message polynomial is first multiplied by xn-k and the result divided by the generator
polynomial, g(x). Division by g(x) produces a quotient q(x) and a remainder r(x), where r(x) is of degree up to n-k-1.
Thus:




                   The following diagram shows an architecture for a systematic RS(255,247) encoder:




                                               Fig 3 RS (255,247) Encoder

        Reed-Solomon codes may be shortened by making a number of data symbols zero at the encoder, not transmitting
them, and then re-inserting them at the decoder.

     Reed Solomon Decoder
     The Reed Solomon decoder tries to correct errors and/or erasures by calculating the syndromes for each
codeword. Based upon the syndromes the decoder is able to determine the number of errors in the received block. If
there are errors present, the decoder tries to find the locations of the errors using the Berlekamp Massey algorithm by
creating an error locator polynomial.


||Issn 2250-3005(online) ||                        ||December||2012||                                    Page 128
International Journal Of Computational Engineering Research (ijceronline.com) Vol. 2 Issue. 8



         The roots of this polynomial are found using the Chien search algorithm. Using Forney's algorithm, the symbol
error values are found and corrected. For an RS (n, k) code where n - k = 2t, the decoder can correct up to t symbol errors
in the code word. Given that errors may only be corrected in units of single symbols (typically 8 data bits).

    The functional flow chart of the Reed Solomon Decoder is shown in the figure 5.1 below:

    The blocks of the Reed Solomon Decoder are:

        1)       Syndrome calculation block
        2)       Error Location Determination block
        3)       Error value calculation block
        4)       Error correction block
The purpose of the decoder is to process the received code word to compute an estimate of the original message symbols.

The RS decoder block is shown in the figure below:




                                                 Fig 4. RS Decoder block

          There are three main blocks to the decoder first is syndrome generator, then Barlekamp Massey
algorithm and the Chien/Forney block. The output of the Chien/Forney block is an estimate of the error vector. This error
vector is then added to the received codeword to form the final codeword estimate. Note that the error value vector Y
comes out of the Chien/Forney block in reverse order, and it must pass through a LIFO/FIFO block before it is added to
the received codeword R(x).

III. Performance
        The proposed code can correct up to 16 symbol errors by column wise decoding. In the proposed code since two
shortened RS codes are used it can correct up to 16 symbol errors.




                                       Fig 5 Layout of FPGA chip for the proposed RS code



||Issn 2250-3005(online) ||                          ||December||2012||                                   Page 129
International Journal Of Computational Engineering Research (ijceronline.com) Vol. 2 Issue. 8



IV.    Results




                                             Fig 6 Result of RS(255,231) code

V. Conclusion
         In this thesis, error detection and correction techniques have been used which are essential for reliable
communication over a noisy channel. The effect of errors occurring during transmission is reduced by adding redundancy
to the data prior to transmission. The redundancy is used to enable a decoder in the receiver to detect and correct errors.
Cyclic Linear block codes are used efficiently for error detection and correction. The encoder splits the incoming data
stream into blocks and processes each block individually by adding redundancy in accordance with a prescribed algorithm.
Likewise, the decoder processes each block individually and it corrects errors by exploiting the redundancy present in the
received data.

        In this work, architectures were modeled using HDL and the functional simulation was carried out using Xilinx
ISE 12.4 simulator. The compilation, synthesis and place and route, timing are done with RTL and SOC Encounter of
Cadence Tool. Synthesis of the architectures was carried out on SPATAN 3 board with XC3S4000-4PQ208 target devices.


References
 [1]   M. Mehnert, D. F. von Droste, and D. Schiel, “VHDL Implementation of a (255, 191) Reed Solomon Coder for
       DVB-H,” IEEE 10th International Symposium on Consumer Electronics (ISCE), pp. 1-5, 2006.

 [2]   S. B. Wicker and V. K. Bhargava, eds., Reed-Solomon Codes and their Applications. New York: IEEE Press, 1994.

 [3]   S. Lin and D. J. Costello, Error Control coding (2nd edition). Upper Saddle River, NJ: Prentice-Hall, 2004.

 [4]   R. Koetter and A. Vardy, Algebraic Soft-Decision Decoding of Reed-Solomon Codes," IEEE Transactions on
       Information Theory, vol. 49, no. 11, pp. 2809{2825, 2003.

 [5]   V. Guruswami and M. Sudan, Improved Decoding of Reed-Solomon and Algebraic-Geometry Codes," IEEE
       Transactions on Information Theory, vol. 45, no. 6, pp. 1757{1767, 1999.

 [6]   R. J. McEliece, The Guruswami-Sudan Decoding Algorithm for Reed-Solomon Codes," Tech. Rep. 42-153, JPL
       Interplanetary Network Progress Report, 2003.




||Issn 2250-3005(online) ||                         ||December||2012||                                     Page 130

More Related Content

What's hot

PERFORMANCE ESTIMATION OF LDPC CODE SUING SUM PRODUCT ALGORITHM AND BIT FLIPP...
PERFORMANCE ESTIMATION OF LDPC CODE SUING SUM PRODUCT ALGORITHM AND BIT FLIPP...PERFORMANCE ESTIMATION OF LDPC CODE SUING SUM PRODUCT ALGORITHM AND BIT FLIPP...
PERFORMANCE ESTIMATION OF LDPC CODE SUING SUM PRODUCT ALGORITHM AND BIT FLIPP...Journal For Research
 
FPGA Implementation of Efficient Viterbi Decoder for Multi-Carrier Systems
FPGA Implementation of Efficient Viterbi Decoder for  Multi-Carrier SystemsFPGA Implementation of Efficient Viterbi Decoder for  Multi-Carrier Systems
FPGA Implementation of Efficient Viterbi Decoder for Multi-Carrier SystemsIJMER
 
Modified Golomb Code For Integer Representation
Modified Golomb Code For Integer RepresentationModified Golomb Code For Integer Representation
Modified Golomb Code For Integer RepresentationIJSRD
 
FPGA Implementation of LDPC Encoder for Terrestrial Television
FPGA Implementation of LDPC Encoder for Terrestrial TelevisionFPGA Implementation of LDPC Encoder for Terrestrial Television
FPGA Implementation of LDPC Encoder for Terrestrial TelevisionAI Publications
 
IRJET - Wireless Transmission of Data using LDPC Codes based on Raspberry Pi
IRJET - Wireless Transmission of Data using LDPC Codes based on Raspberry PiIRJET - Wireless Transmission of Data using LDPC Codes based on Raspberry Pi
IRJET - Wireless Transmission of Data using LDPC Codes based on Raspberry PiIRJET Journal
 
Simulation of Turbo Convolutional Codes for Deep Space Mission
Simulation of Turbo Convolutional Codes for Deep Space MissionSimulation of Turbo Convolutional Codes for Deep Space Mission
Simulation of Turbo Convolutional Codes for Deep Space MissionIJERA Editor
 
Issues in the design of Code Generator
Issues in the design of Code GeneratorIssues in the design of Code Generator
Issues in the design of Code GeneratorDarshan sai Reddy
 
BCH Decoder Implemented On CMOS/Nano Device Digital Memories for Fault Tolera...
BCH Decoder Implemented On CMOS/Nano Device Digital Memories for Fault Tolera...BCH Decoder Implemented On CMOS/Nano Device Digital Memories for Fault Tolera...
BCH Decoder Implemented On CMOS/Nano Device Digital Memories for Fault Tolera...inventy
 
Fpga implementation of (15,7) bch encoder and decoder
Fpga implementation of (15,7) bch encoder and decoderFpga implementation of (15,7) bch encoder and decoder
Fpga implementation of (15,7) bch encoder and decodereSAT Publishing House
 
A new channel coding technique to approach the channel capacity
A new channel coding technique to approach the channel capacityA new channel coding technique to approach the channel capacity
A new channel coding technique to approach the channel capacityijwmn
 
Performance analysis and implementation for nonbinary quasi cyclic ldpc decod...
Performance analysis and implementation for nonbinary quasi cyclic ldpc decod...Performance analysis and implementation for nonbinary quasi cyclic ldpc decod...
Performance analysis and implementation for nonbinary quasi cyclic ldpc decod...ijwmn
 
00 chapter07 and_08_conversion_subroutines_force_sp13
00 chapter07 and_08_conversion_subroutines_force_sp1300 chapter07 and_08_conversion_subroutines_force_sp13
00 chapter07 and_08_conversion_subroutines_force_sp13John Todora
 

What's hot (20)

Y25124127
Y25124127Y25124127
Y25124127
 
Turbo codes.ppt
Turbo codes.pptTurbo codes.ppt
Turbo codes.ppt
 
PERFORMANCE ESTIMATION OF LDPC CODE SUING SUM PRODUCT ALGORITHM AND BIT FLIPP...
PERFORMANCE ESTIMATION OF LDPC CODE SUING SUM PRODUCT ALGORITHM AND BIT FLIPP...PERFORMANCE ESTIMATION OF LDPC CODE SUING SUM PRODUCT ALGORITHM AND BIT FLIPP...
PERFORMANCE ESTIMATION OF LDPC CODE SUING SUM PRODUCT ALGORITHM AND BIT FLIPP...
 
E42032732
E42032732E42032732
E42032732
 
FPGA Implementation of Efficient Viterbi Decoder for Multi-Carrier Systems
FPGA Implementation of Efficient Viterbi Decoder for  Multi-Carrier SystemsFPGA Implementation of Efficient Viterbi Decoder for  Multi-Carrier Systems
FPGA Implementation of Efficient Viterbi Decoder for Multi-Carrier Systems
 
Modified Golomb Code For Integer Representation
Modified Golomb Code For Integer RepresentationModified Golomb Code For Integer Representation
Modified Golomb Code For Integer Representation
 
Turbo codes
Turbo codesTurbo codes
Turbo codes
 
FPGA Implementation of LDPC Encoder for Terrestrial Television
FPGA Implementation of LDPC Encoder for Terrestrial TelevisionFPGA Implementation of LDPC Encoder for Terrestrial Television
FPGA Implementation of LDPC Encoder for Terrestrial Television
 
IRJET - Wireless Transmission of Data using LDPC Codes based on Raspberry Pi
IRJET - Wireless Transmission of Data using LDPC Codes based on Raspberry PiIRJET - Wireless Transmission of Data using LDPC Codes based on Raspberry Pi
IRJET - Wireless Transmission of Data using LDPC Codes based on Raspberry Pi
 
Simulation of Turbo Convolutional Codes for Deep Space Mission
Simulation of Turbo Convolutional Codes for Deep Space MissionSimulation of Turbo Convolutional Codes for Deep Space Mission
Simulation of Turbo Convolutional Codes for Deep Space Mission
 
Source coding
Source codingSource coding
Source coding
 
Issues in the design of Code Generator
Issues in the design of Code GeneratorIssues in the design of Code Generator
Issues in the design of Code Generator
 
H010414651
H010414651H010414651
H010414651
 
BCH Decoder Implemented On CMOS/Nano Device Digital Memories for Fault Tolera...
BCH Decoder Implemented On CMOS/Nano Device Digital Memories for Fault Tolera...BCH Decoder Implemented On CMOS/Nano Device Digital Memories for Fault Tolera...
BCH Decoder Implemented On CMOS/Nano Device Digital Memories for Fault Tolera...
 
Digital Logic Design
Digital Logic Design  Digital Logic Design
Digital Logic Design
 
Fpga implementation of (15,7) bch encoder and decoder
Fpga implementation of (15,7) bch encoder and decoderFpga implementation of (15,7) bch encoder and decoder
Fpga implementation of (15,7) bch encoder and decoder
 
A new channel coding technique to approach the channel capacity
A new channel coding technique to approach the channel capacityA new channel coding technique to approach the channel capacity
A new channel coding technique to approach the channel capacity
 
Performance analysis and implementation for nonbinary quasi cyclic ldpc decod...
Performance analysis and implementation for nonbinary quasi cyclic ldpc decod...Performance analysis and implementation for nonbinary quasi cyclic ldpc decod...
Performance analysis and implementation for nonbinary quasi cyclic ldpc decod...
 
Digital Logic Design
Digital Logic Design Digital Logic Design
Digital Logic Design
 
00 chapter07 and_08_conversion_subroutines_force_sp13
00 chapter07 and_08_conversion_subroutines_force_sp1300 chapter07 and_08_conversion_subroutines_force_sp13
00 chapter07 and_08_conversion_subroutines_force_sp13
 

Similar to International Journal of Computational Engineering Research(IJCER)

Implementation of reed solomon codes basics
Implementation of reed solomon codes basicsImplementation of reed solomon codes basics
Implementation of reed solomon codes basicsRam Singh Yadav
 
Performance Study of RS (255, 239) and RS (255.233) Used Respectively in DVB-...
Performance Study of RS (255, 239) and RS (255.233) Used Respectively in DVB-...Performance Study of RS (255, 239) and RS (255.233) Used Respectively in DVB-...
Performance Study of RS (255, 239) and RS (255.233) Used Respectively in DVB-...IJERA Editor
 
Survey on Error Control Coding Techniques
Survey on Error Control Coding TechniquesSurvey on Error Control Coding Techniques
Survey on Error Control Coding TechniquesIJTET Journal
 
Reed Soloman and convolution codes
Reed Soloman and convolution codesReed Soloman and convolution codes
Reed Soloman and convolution codesShailesh Tanwar
 
An Efficient Interpolation-Based Chase BCH Decoder
An Efficient Interpolation-Based Chase BCH DecoderAn Efficient Interpolation-Based Chase BCH Decoder
An Efficient Interpolation-Based Chase BCH Decoderijsrd.com
 
Reed_Solomon_Implementation
Reed_Solomon_ImplementationReed_Solomon_Implementation
Reed_Solomon_Implementationramya c b
 
02 ldpc bit flipping_decoding_dark knight
02 ldpc bit flipping_decoding_dark knight02 ldpc bit flipping_decoding_dark knight
02 ldpc bit flipping_decoding_dark knightDevanshi Piprottar
 
International Journal of Engineering Research and Development (IJERD)
International Journal of Engineering Research and Development (IJERD)International Journal of Engineering Research and Development (IJERD)
International Journal of Engineering Research and Development (IJERD)IJERD Editor
 
Presentation for the Project on VLSI and Embedded
Presentation for the Project on VLSI and EmbeddedPresentation for the Project on VLSI and Embedded
Presentation for the Project on VLSI and Embeddedlthanuja01
 
Combining cryptography with channel coding to reduce complicity
Combining cryptography with channel coding to reduce complicityCombining cryptography with channel coding to reduce complicity
Combining cryptography with channel coding to reduce complicityIAEME Publication
 
IRJET- A Survey on Encode-Compare and Decode-Compare Architecture for Tag Mat...
IRJET- A Survey on Encode-Compare and Decode-Compare Architecture for Tag Mat...IRJET- A Survey on Encode-Compare and Decode-Compare Architecture for Tag Mat...
IRJET- A Survey on Encode-Compare and Decode-Compare Architecture for Tag Mat...IRJET Journal
 
Review paper on Reed Solomon (204,188) Decoder for Digital Video Broadcasting...
Review paper on Reed Solomon (204,188) Decoder for Digital Video Broadcasting...Review paper on Reed Solomon (204,188) Decoder for Digital Video Broadcasting...
Review paper on Reed Solomon (204,188) Decoder for Digital Video Broadcasting...IRJET Journal
 
Paper id 312201514
Paper id 312201514Paper id 312201514
Paper id 312201514IJRAT
 
High Performance Error Detection with Different Set Cyclic Codes for Memory A...
High Performance Error Detection with Different Set Cyclic Codes for Memory A...High Performance Error Detection with Different Set Cyclic Codes for Memory A...
High Performance Error Detection with Different Set Cyclic Codes for Memory A...IOSR Journals
 

Similar to International Journal of Computational Engineering Research(IJCER) (20)

Implementation of reed solomon codes basics
Implementation of reed solomon codes basicsImplementation of reed solomon codes basics
Implementation of reed solomon codes basics
 
Performance Study of RS (255, 239) and RS (255.233) Used Respectively in DVB-...
Performance Study of RS (255, 239) and RS (255.233) Used Respectively in DVB-...Performance Study of RS (255, 239) and RS (255.233) Used Respectively in DVB-...
Performance Study of RS (255, 239) and RS (255.233) Used Respectively in DVB-...
 
Survey on Error Control Coding Techniques
Survey on Error Control Coding TechniquesSurvey on Error Control Coding Techniques
Survey on Error Control Coding Techniques
 
Reed Soloman and convolution codes
Reed Soloman and convolution codesReed Soloman and convolution codes
Reed Soloman and convolution codes
 
An Efficient Interpolation-Based Chase BCH Decoder
An Efficient Interpolation-Based Chase BCH DecoderAn Efficient Interpolation-Based Chase BCH Decoder
An Efficient Interpolation-Based Chase BCH Decoder
 
Reed_Solomon_Implementation
Reed_Solomon_ImplementationReed_Solomon_Implementation
Reed_Solomon_Implementation
 
Reed solomon codes
Reed solomon codesReed solomon codes
Reed solomon codes
 
Turbo Code
Turbo Code Turbo Code
Turbo Code
 
02 ldpc bit flipping_decoding_dark knight
02 ldpc bit flipping_decoding_dark knight02 ldpc bit flipping_decoding_dark knight
02 ldpc bit flipping_decoding_dark knight
 
International Journal of Engineering Research and Development (IJERD)
International Journal of Engineering Research and Development (IJERD)International Journal of Engineering Research and Development (IJERD)
International Journal of Engineering Research and Development (IJERD)
 
C04922125
C04922125C04922125
C04922125
 
Presentation for the Project on VLSI and Embedded
Presentation for the Project on VLSI and EmbeddedPresentation for the Project on VLSI and Embedded
Presentation for the Project on VLSI and Embedded
 
Combining cryptography with channel coding to reduce complicity
Combining cryptography with channel coding to reduce complicityCombining cryptography with channel coding to reduce complicity
Combining cryptography with channel coding to reduce complicity
 
Hamming code system
Hamming code systemHamming code system
Hamming code system
 
Channel Coding (Error Control Coding)
Channel Coding (Error Control Coding)Channel Coding (Error Control Coding)
Channel Coding (Error Control Coding)
 
IRJET- A Survey on Encode-Compare and Decode-Compare Architecture for Tag Mat...
IRJET- A Survey on Encode-Compare and Decode-Compare Architecture for Tag Mat...IRJET- A Survey on Encode-Compare and Decode-Compare Architecture for Tag Mat...
IRJET- A Survey on Encode-Compare and Decode-Compare Architecture for Tag Mat...
 
K0216571
K0216571K0216571
K0216571
 
Review paper on Reed Solomon (204,188) Decoder for Digital Video Broadcasting...
Review paper on Reed Solomon (204,188) Decoder for Digital Video Broadcasting...Review paper on Reed Solomon (204,188) Decoder for Digital Video Broadcasting...
Review paper on Reed Solomon (204,188) Decoder for Digital Video Broadcasting...
 
Paper id 312201514
Paper id 312201514Paper id 312201514
Paper id 312201514
 
High Performance Error Detection with Different Set Cyclic Codes for Memory A...
High Performance Error Detection with Different Set Cyclic Codes for Memory A...High Performance Error Detection with Different Set Cyclic Codes for Memory A...
High Performance Error Detection with Different Set Cyclic Codes for Memory A...
 

International Journal of Computational Engineering Research(IJCER)

  • 1. International Journal Of Computational Engineering Research (ijceronline.com) Vol. 2 Issue. 8 Implementation of Berlekamp Algorithm for Error Detection and Correction of Multiple Random Errors Using Reed-Solomon Codes P. Chiranjeevi1 (M.Tech), D. Ramadevi2, Asst.Prof. K. Jeevan Reddy3, HOD 1, 2, 3, Department of ECE, Teegala Krishna Reddy Engineering College/JNTU, India Abstract: In the communication systems, RS codes have a widespread use to provide error protection. For burst errors and random errors, RS code has become a popular choice to provide data integrity due to its good error correction capability. This feature has been one of the important factors in adopting RS codes in many practical applications such as wireless communication system, cable modem, computer memory and ADSL systems. Reed Solomon codes are an important sub class of non-binary BCH codes. These are cyclic codes and are very effectively used for the detection and correction of burst errors. Galois field arithmetic is used for encoding and decoding of reed Solomon codes. The design experience will be formulated to form the complete design methodology of the FEC modules at the register-transfer level (RTL). Then we incorporate the knowledge into our RS code generator design flow. Keywords: RS codes, random errors, BCH codes, Galois Field, ADSL I. Introduction Digital communication system is used to transport information bearing signal from the source to a user destination via a communication c h a n n e l . The information signal is processed in a digital communication system to form discrete messages which makes the information m o r e r e l i a b l e for transmission. Channel coding is an i m p o r t a n t signal processing operation for the efficient transmission of digital information over the channel. It was introduced by Claude E. Shannon in 1948 by using the channel capacity as an important parameter for error free transmission. In channel coding the number of symbols in the source encoded message is increased in a controlled manner in order to facilitate two basic objectives at the receiver one is Error detection and other is Error correction. Error detection and Error correction to achieve good communication is also employed in devices. It is used to reduce the level of noise and interferences in electronic medium. The aim of the project is to correct multiple random errors and burst errors that are occur during the transmission of the information by using Reed Solomon codes. The proposed code is designed using verilog coding and the results demonstrate that the reed Solomon codes are very efficient for the detection and correction of burst errors. II. Proposed Product Codes The Reed Solomon code is an algebraic code belonging to the class of BCH (Bose-Chaudhry-Hocquehen) multiple burst correcting cyclic codes. The Reed Solomon code operates on bytes of fixed length. Given m parity bytes, a Reed Solomon code can correct up to m byte errors in known positions (erasures), or detect and correct up to m/2 byte errors in unknown positions. This is an implementation of a Reed Solomon code with 8 bit bytes, and a configurable number of parity bytes. The maximum sequence length (code word) that can be generated is 255 bytes, including parity bytes. In practice, shorter sequences are used. A typical system is shown in the figure 4.1 below: Reed-Solomon Communication Reed-Solomon Data data encoder channel or decoder storage device Fig 1 Typical RS encoder-decoder system The Reed-Solomon encoder takes a block of digital data and adds extra "redundant" bits. Errors occur during transmission or storage for a number of reasons. The Reed-Solomon decoder processes each block and attempts to correct errors and recover the original data. The number and type of errors that can be corrected depends on the characteristics of the Reed-Solomon code. A Reed-Solomon code is specified as RS (n, k) with s-bit symbols. This means that the encoder takes k data symbols of s bits each and adds parity symbols to make an n symbol codeword. There are n-k parity symbols of s bits each. A Reed-Solomon decoder can correct up to t symbols that contain errors in a codeword, where 2t = n-k. ||Issn 2250-3005(online) || ||December||2012|| Page 127
  • 2. International Journal Of Computational Engineering Research (ijceronline.com) Vol. 2 Issue. 8 The following figure 4.2 shows a typical Reed-Solomon codeword (this is known as a Systematic code because the data is left unchanged and the parity symbols are appended): Fig 2 RS codeword format 1. Reed Solomon Encoder Consider a Reed-Solomon code RS (255,247) with 8-bit symbols. Each codeword contains 255 code word bytes, of which 247 bytes are data and 8 bytes are parity. For this code: n = 255, k = 247, s = 8, 2t=8, t =4. The decoder can correct any 4 symbol errors in the code word: i.e. errors in up to 4 bytes anywhere in the codeword can be automatically corrected. The k information symbols that form the message to be encoded as one block can be represented by a polynomial M(x) of order k-1, so that: M(x) = Mk-1xk-1 + .... + M1x + M0 Where each of the coefficients Mk-1, ...., M1, M0 is an m-bit message symbol, that is, an element of GF(2m). Mk- 1 is the first symbol of the message. To encode the message, the message polynomial is first multiplied by xn-k and the result divided by the generator polynomial, g(x). Division by g(x) produces a quotient q(x) and a remainder r(x), where r(x) is of degree up to n-k-1. Thus: The following diagram shows an architecture for a systematic RS(255,247) encoder: Fig 3 RS (255,247) Encoder Reed-Solomon codes may be shortened by making a number of data symbols zero at the encoder, not transmitting them, and then re-inserting them at the decoder. Reed Solomon Decoder The Reed Solomon decoder tries to correct errors and/or erasures by calculating the syndromes for each codeword. Based upon the syndromes the decoder is able to determine the number of errors in the received block. If there are errors present, the decoder tries to find the locations of the errors using the Berlekamp Massey algorithm by creating an error locator polynomial. ||Issn 2250-3005(online) || ||December||2012|| Page 128
  • 3. International Journal Of Computational Engineering Research (ijceronline.com) Vol. 2 Issue. 8 The roots of this polynomial are found using the Chien search algorithm. Using Forney's algorithm, the symbol error values are found and corrected. For an RS (n, k) code where n - k = 2t, the decoder can correct up to t symbol errors in the code word. Given that errors may only be corrected in units of single symbols (typically 8 data bits). The functional flow chart of the Reed Solomon Decoder is shown in the figure 5.1 below: The blocks of the Reed Solomon Decoder are: 1) Syndrome calculation block 2) Error Location Determination block 3) Error value calculation block 4) Error correction block The purpose of the decoder is to process the received code word to compute an estimate of the original message symbols. The RS decoder block is shown in the figure below: Fig 4. RS Decoder block There are three main blocks to the decoder first is syndrome generator, then Barlekamp Massey algorithm and the Chien/Forney block. The output of the Chien/Forney block is an estimate of the error vector. This error vector is then added to the received codeword to form the final codeword estimate. Note that the error value vector Y comes out of the Chien/Forney block in reverse order, and it must pass through a LIFO/FIFO block before it is added to the received codeword R(x). III. Performance The proposed code can correct up to 16 symbol errors by column wise decoding. In the proposed code since two shortened RS codes are used it can correct up to 16 symbol errors. Fig 5 Layout of FPGA chip for the proposed RS code ||Issn 2250-3005(online) || ||December||2012|| Page 129
  • 4. International Journal Of Computational Engineering Research (ijceronline.com) Vol. 2 Issue. 8 IV. Results Fig 6 Result of RS(255,231) code V. Conclusion In this thesis, error detection and correction techniques have been used which are essential for reliable communication over a noisy channel. The effect of errors occurring during transmission is reduced by adding redundancy to the data prior to transmission. The redundancy is used to enable a decoder in the receiver to detect and correct errors. Cyclic Linear block codes are used efficiently for error detection and correction. The encoder splits the incoming data stream into blocks and processes each block individually by adding redundancy in accordance with a prescribed algorithm. Likewise, the decoder processes each block individually and it corrects errors by exploiting the redundancy present in the received data. In this work, architectures were modeled using HDL and the functional simulation was carried out using Xilinx ISE 12.4 simulator. The compilation, synthesis and place and route, timing are done with RTL and SOC Encounter of Cadence Tool. Synthesis of the architectures was carried out on SPATAN 3 board with XC3S4000-4PQ208 target devices. References [1] M. Mehnert, D. F. von Droste, and D. Schiel, “VHDL Implementation of a (255, 191) Reed Solomon Coder for DVB-H,” IEEE 10th International Symposium on Consumer Electronics (ISCE), pp. 1-5, 2006. [2] S. B. Wicker and V. K. Bhargava, eds., Reed-Solomon Codes and their Applications. New York: IEEE Press, 1994. [3] S. Lin and D. J. Costello, Error Control coding (2nd edition). Upper Saddle River, NJ: Prentice-Hall, 2004. [4] R. Koetter and A. Vardy, Algebraic Soft-Decision Decoding of Reed-Solomon Codes," IEEE Transactions on Information Theory, vol. 49, no. 11, pp. 2809{2825, 2003. [5] V. Guruswami and M. Sudan, Improved Decoding of Reed-Solomon and Algebraic-Geometry Codes," IEEE Transactions on Information Theory, vol. 45, no. 6, pp. 1757{1767, 1999. [6] R. J. McEliece, The Guruswami-Sudan Decoding Algorithm for Reed-Solomon Codes," Tech. Rep. 42-153, JPL Interplanetary Network Progress Report, 2003. ||Issn 2250-3005(online) || ||December||2012|| Page 130