Reed Soloman and convolution codes

Preview:

Citation preview

REED SOLOMON CODE AND CONVOLUTION CODE

REED SOLOMON CODE

CONTENTS Introduction Properties of RS code RS Encoder RS Decoder Software Implementation Advantages Disadvantages Applications

INTRODUCTION

Reed–Solomon codes are an important group of error-correcting codes introduced by Irving S. Reed and Gustave Solomon in 1960.

RS codes operate on the information by dividing the message stream into blocks of data, adding redundancy per block depending only on the current inputs.

It is capable to correct both burst errors (where a series of bits in the codeword are received in error) and erasures.

PROPERTIES OF RS CODE

RS codes are generally represented as RS (n, k), with s-bit symbols.

Block Length: n No. of Original Message symbols: k Number of Parity Digits: n – k

A Reed-Solomon decoder can correct up to t symbols that contain errors in a codeword, where 2t = n-k.

The relationship between the symbol size, m, and the size of the codeword n, is given by n=2s-1

The following diagram shows a typical Reed-Solomon codeword:

k 2t

n

Data Parity

Example:- RS(255,223) with 8-bit symbols.

Each codeword contains 255 code word bytes, of which 223 bytes are data and 32 bytes are parity. For this code:

n = 255, k = 223, s = 8

2t = 32, t = 16

The decoder can correct any 16 symbol errors in the code word: i.e. errors upto 16 bytes anywhere in the codeword can be automatically corrected.

Given a symbol size s, the maximum codeword length (n) for a Reed-Solomon code is n = 2s – 1

For example, the maximum length of a code with 8-bit symbols (s=8) is 255 bytes.

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

Example: The (255,223) code described above can be shortened to (200,168). The encoder takes a block of 168 data bytes, (conceptually) adds 55 zero bytes, creates a (255,223) codeword and transmits only the 168 data bytes and 32 parity bytes.

ENCODER

Message Polynomial-

c(x) = m(x). xn-k

RS generator Polynomial-

g(x) = g0 + g1. x+ g2 x2+ …. + g2t-1. x2t-1 + x2t

DECODER

SOFTWARE IMPLEMENTATION

Until recently, software implementations in real-time required too much computational power for all but the simplest of Reed-Solomon codes (i.e. codes with small values of t).

The following Table gives some example benchmark figures on a 166 MHz Pentium PC:

Code Data rate

RS(255,251) 12 Mb/s

RS(255,239) 2.7 Mb/s

RS(255,223) 1.1 Mb/s

ADVANTAGES

Reed-Solomon codes are most widely used to correcting burst errors.

Coding gain is very high.

The Coding rate is very high for Reed Solomon code so it is suitable for many applications including storage and transmission.

DISADVANTAGES

Unlike BCH codes , RS Codes does not perform considerably well in BPSK modulation schemes.

Bit Error Ratio(BER) for Reed-Solomon Codes is not as good as BCH codes.

APPLICATIONS

Data Storage

Bar Code

Satellite Broadcasting

Spread-Spectrum System

Ultra Wideband(UWB)

CONVOLUTION CODE

ERROR CORRECTION CODE

There are four important error correction codes that find applications in digital transmission. They are :

18

Block Parity

Hamming Code

Interleaved Code

Convolutional Code

INTRODUCTION Convolutional codes are introduced in 1955 by Elias.

Convolution coding is a popular error-correcting coding method used in digital communications. A message is convoluted, and then transmitted into a noisy channel.

This convolution operation encodes some redundant information into the transmitted signal.

19

CONVOLUTIONAL ENCODER

Convolutional encoding of data is accomplished using a shift register and associated combinatorial logic that performs modulo-two addition.

A shift register is merely a chain of flip-flops.

PARAMETERS OF CONVOLUTION ENCODER

Convolutional codes are commonly specified by three parameters: n = number of output bits k = number of input bits K = number of shift registers

Code Rate: The quantity k/n is called as code rate. It is a measure of the efficiency of the code.

Constraint Length: The quantity L(or K) is called the constraint length of the code. It represents the number of bits in the encoder memory that affect the generation of the n output bits.

CONVOLUTIONAL CODE ENCODER

+

+

Shift Register

Linear Algebraic Function Generator

CONVOLUTION CODE ENCODER

+

+

Constraint Length (K) = 3Code Rate = k/nNo of input bits (k)= 1 state = K-1state = 2k=1 K=3 n=2No of linear Algebraic Function Generator(n) = 2

CONVOLUTION CODE ENCODER

+

0 0 0

+

11001

k=1 K=3 n=2

Input

1 0 0 1 1

State 10 01 00 10 11

Output

11 10 11 11 01

1 1 111100110111 1

REPRESENTATION OF CONVOLUTION CODES

State Diagram Tree Diagram Trellis Diagram

STATE DIAGRAM Contents of shift registers make up "state" of code:

Most recent input is most significant bit of state.

Oldest input is least significant bit of state.

(this convention is sometimes reverse)

TREE DIAGRAM

1101

k=1 K=3 n=2

TRELLIS DIAGRAM REPRESENTATION

The trellis diagram is basically a redrawing of the state diagram. It shows all possible state transitions at each time step. Then we connect each state to the next state.

There are only two choices possible at each state. These are determined by the arrival of either a 0 or a 1 bit.

The arrows show the input bit.

The arrows going upwards represent a 0 bit and going downwards represent a 1 bit.

TRELLIS DIAGRAM

DIFFERENCE BETWEEN BLOCK CODE AND CONVOLUTION CODE

The difference between block codes and convolution codes is the encoding principle.

In the block codes, the information bits are followed by the parity bits while in convolution codes the information bits are spread along the sequence.

The block codes can be applied only for the block of data whereas convolution coding can be applied to a continuous data stream as well as to blocks of data.

ADVANTAGES Convolution coding is a popular error-correcting coding method

used in digital communications.

The convolution operation encodes some redundant information into the transmitted signal.

It is simple and has good performance with low implementation cost.

FACTORS AND PROPERTIES The performance of a convolutional code depends on the coding

rate and the constraint length.

Longer constraint length K

More powerful code

More coding gain

Smaller coding rate R=k/n

More powerful code due to extra redundancy

Less bandwidth efficiency

THANK YOUE047 E048 E049 E050 E056 E058CREATED

BY:

Recommended