Reed Soloman and convolution codes
-
Upload
shailesh-tanwar -
Category
Engineering
-
view
90 -
download
5
Transcript of Reed Soloman and convolution codes
![Page 1: Reed Soloman and convolution codes](https://reader031.fdocuments.net/reader031/viewer/2022013102/55c5a1fcbb61eb5c468b478e/html5/thumbnails/1.jpg)
REED SOLOMON CODE AND CONVOLUTION CODE
![Page 2: Reed Soloman and convolution codes](https://reader031.fdocuments.net/reader031/viewer/2022013102/55c5a1fcbb61eb5c468b478e/html5/thumbnails/2.jpg)
REED SOLOMON CODE
![Page 3: Reed Soloman and convolution codes](https://reader031.fdocuments.net/reader031/viewer/2022013102/55c5a1fcbb61eb5c468b478e/html5/thumbnails/3.jpg)
CONTENTS Introduction Properties of RS code RS Encoder RS Decoder Software Implementation Advantages Disadvantages Applications
![Page 4: Reed Soloman and convolution codes](https://reader031.fdocuments.net/reader031/viewer/2022013102/55c5a1fcbb61eb5c468b478e/html5/thumbnails/4.jpg)
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.
![Page 5: Reed Soloman and convolution codes](https://reader031.fdocuments.net/reader031/viewer/2022013102/55c5a1fcbb61eb5c468b478e/html5/thumbnails/5.jpg)
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
![Page 6: Reed Soloman and convolution codes](https://reader031.fdocuments.net/reader031/viewer/2022013102/55c5a1fcbb61eb5c468b478e/html5/thumbnails/6.jpg)
The following diagram shows a typical Reed-Solomon codeword:
k 2t
n
Data Parity
![Page 7: Reed Soloman and convolution codes](https://reader031.fdocuments.net/reader031/viewer/2022013102/55c5a1fcbb61eb5c468b478e/html5/thumbnails/7.jpg)
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.
![Page 8: Reed Soloman and convolution codes](https://reader031.fdocuments.net/reader031/viewer/2022013102/55c5a1fcbb61eb5c468b478e/html5/thumbnails/8.jpg)
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.
![Page 9: Reed Soloman and convolution codes](https://reader031.fdocuments.net/reader031/viewer/2022013102/55c5a1fcbb61eb5c468b478e/html5/thumbnails/9.jpg)
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.
![Page 10: Reed Soloman and convolution codes](https://reader031.fdocuments.net/reader031/viewer/2022013102/55c5a1fcbb61eb5c468b478e/html5/thumbnails/10.jpg)
ENCODER
![Page 11: Reed Soloman and convolution codes](https://reader031.fdocuments.net/reader031/viewer/2022013102/55c5a1fcbb61eb5c468b478e/html5/thumbnails/11.jpg)
Message Polynomial-
c(x) = m(x). xn-k
RS generator Polynomial-
g(x) = g0 + g1. x+ g2 x2+ …. + g2t-1. x2t-1 + x2t
![Page 12: Reed Soloman and convolution codes](https://reader031.fdocuments.net/reader031/viewer/2022013102/55c5a1fcbb61eb5c468b478e/html5/thumbnails/12.jpg)
DECODER
![Page 13: Reed Soloman and convolution codes](https://reader031.fdocuments.net/reader031/viewer/2022013102/55c5a1fcbb61eb5c468b478e/html5/thumbnails/13.jpg)
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
![Page 14: Reed Soloman and convolution codes](https://reader031.fdocuments.net/reader031/viewer/2022013102/55c5a1fcbb61eb5c468b478e/html5/thumbnails/14.jpg)
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.
![Page 15: Reed Soloman and convolution codes](https://reader031.fdocuments.net/reader031/viewer/2022013102/55c5a1fcbb61eb5c468b478e/html5/thumbnails/15.jpg)
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.
![Page 16: Reed Soloman and convolution codes](https://reader031.fdocuments.net/reader031/viewer/2022013102/55c5a1fcbb61eb5c468b478e/html5/thumbnails/16.jpg)
APPLICATIONS
Data Storage
Bar Code
Satellite Broadcasting
Spread-Spectrum System
Ultra Wideband(UWB)
![Page 17: Reed Soloman and convolution codes](https://reader031.fdocuments.net/reader031/viewer/2022013102/55c5a1fcbb61eb5c468b478e/html5/thumbnails/17.jpg)
CONVOLUTION CODE
![Page 18: Reed Soloman and convolution codes](https://reader031.fdocuments.net/reader031/viewer/2022013102/55c5a1fcbb61eb5c468b478e/html5/thumbnails/18.jpg)
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
![Page 19: Reed Soloman and convolution codes](https://reader031.fdocuments.net/reader031/viewer/2022013102/55c5a1fcbb61eb5c468b478e/html5/thumbnails/19.jpg)
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
![Page 20: Reed Soloman and convolution codes](https://reader031.fdocuments.net/reader031/viewer/2022013102/55c5a1fcbb61eb5c468b478e/html5/thumbnails/20.jpg)
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.
![Page 21: Reed Soloman and convolution codes](https://reader031.fdocuments.net/reader031/viewer/2022013102/55c5a1fcbb61eb5c468b478e/html5/thumbnails/21.jpg)
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.
![Page 22: Reed Soloman and convolution codes](https://reader031.fdocuments.net/reader031/viewer/2022013102/55c5a1fcbb61eb5c468b478e/html5/thumbnails/22.jpg)
CONVOLUTIONAL CODE ENCODER
+
+
Shift Register
Linear Algebraic Function Generator
![Page 23: Reed Soloman and convolution codes](https://reader031.fdocuments.net/reader031/viewer/2022013102/55c5a1fcbb61eb5c468b478e/html5/thumbnails/23.jpg)
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
![Page 24: Reed Soloman and convolution codes](https://reader031.fdocuments.net/reader031/viewer/2022013102/55c5a1fcbb61eb5c468b478e/html5/thumbnails/24.jpg)
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
![Page 25: Reed Soloman and convolution codes](https://reader031.fdocuments.net/reader031/viewer/2022013102/55c5a1fcbb61eb5c468b478e/html5/thumbnails/25.jpg)
REPRESENTATION OF CONVOLUTION CODES
State Diagram Tree Diagram Trellis Diagram
![Page 26: Reed Soloman and convolution codes](https://reader031.fdocuments.net/reader031/viewer/2022013102/55c5a1fcbb61eb5c468b478e/html5/thumbnails/26.jpg)
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)
![Page 27: Reed Soloman and convolution codes](https://reader031.fdocuments.net/reader031/viewer/2022013102/55c5a1fcbb61eb5c468b478e/html5/thumbnails/27.jpg)
TREE DIAGRAM
1101
k=1 K=3 n=2
![Page 28: Reed Soloman and convolution codes](https://reader031.fdocuments.net/reader031/viewer/2022013102/55c5a1fcbb61eb5c468b478e/html5/thumbnails/28.jpg)
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.
![Page 29: Reed Soloman and convolution codes](https://reader031.fdocuments.net/reader031/viewer/2022013102/55c5a1fcbb61eb5c468b478e/html5/thumbnails/29.jpg)
TRELLIS DIAGRAM
![Page 30: Reed Soloman and convolution codes](https://reader031.fdocuments.net/reader031/viewer/2022013102/55c5a1fcbb61eb5c468b478e/html5/thumbnails/30.jpg)
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.
![Page 31: Reed Soloman and convolution codes](https://reader031.fdocuments.net/reader031/viewer/2022013102/55c5a1fcbb61eb5c468b478e/html5/thumbnails/31.jpg)
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.
![Page 32: Reed Soloman and convolution codes](https://reader031.fdocuments.net/reader031/viewer/2022013102/55c5a1fcbb61eb5c468b478e/html5/thumbnails/32.jpg)
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
![Page 33: Reed Soloman and convolution codes](https://reader031.fdocuments.net/reader031/viewer/2022013102/55c5a1fcbb61eb5c468b478e/html5/thumbnails/33.jpg)
THANK YOUE047 E048 E049 E050 E056 E058CREATED
BY: