Reed-Solomon Codes Rong-Jaye Chen.

Slides:



Advertisements
Similar presentations
Mahdi Barhoush Mohammad Hanaysheh
Advertisements

BCH Codes Hsin-Lung Wu NTPU.
Cyclic Code.
Error Control Code.
296.3Page :Algorithms in the Real World Error Correcting Codes II – Cyclic Codes – Reed-Solomon Codes.
L. J. Wang 1 Introduction to Reed-Solomon Coding ( Part I )
15-853:Algorithms in the Real World
Information and Coding Theory
CHANNEL CODING REED SOLOMON CODES.
Information and Coding Theory Finite fields. Juris Viksna, 2015.
Wireless Mobile Communication and Transmission Lab. Chapter 2 Block code ----BCH The Theory and Technology of Error Control Coding.
DIGITAL COMMUNICATION Coding
Chapter 11 Algebraic Coding Theory. Single Error Detection M = (1, 1, …, 1) is the m  1 parity check matrix for single error detection. If c = (0, 1,
Low Density Parity Check Codes LDPC ( Low Density Parity Check ) codes are a class of linear bock code. The term “Low Density” refers to the characteristic.
Ger man Aerospace Center Gothenburg, April, 2007 Coding Schemes for Crisscross Error Patterns Simon Plass, Gerd Richter, and A.J. Han Vinck.
Error Detection and Correction Rizwan Rehman Centre for Computer Studies Dibrugarh University.
Linear codes 1 CHAPTER 2: Linear codes ABSTRACT Most of the important codes are special types of so-called linear codes. Linear codes are of importance.
Syndrome Decoding of Linear Block Code
Linear Codes.
DIGITAL COMMUNICATION Error - Correction A.J. Han Vinck.
Cyclic codes 1 CHAPTER 3: Cyclic and convolution codes Cyclic codes are of interest and importance because They posses rich algebraic structure that can.
Channel Coding and Error Control
Channel Coding Part 1: Block Coding
Great Theoretical Ideas in Computer Science.
SPANISH CRYPTOGRAPHY DAYS (SCD 2011) A Search Algorithm Based on Syndrome Computation to Get Efficient Shortened Cyclic Codes Correcting either Random.
Exercise in the previous class p: the probability that symbols are delivered correctly C: 1 00 → → → → What is the threshold.
Convolutional Codes. p2. OUTLINE  [1] Shift registers and polynomials  [2] Encoding convolutional codes  [3] Decoding convolutional codes  [4] Truncated.
BCH_Code 2004/5/5Yuh-Ming Huang, CSIE, NCNU1 BCH Code a larger class of powerful random error-correcting cyclic codes a remarkable generalization of the.
Cyclic Codes for Error Detection W. W. Peterson and D. T. Brown by Maheshwar R Geereddy.
Basic Number Theory Divisibility Let a,b be integers with a≠0. if there exists an integer k such that b=ka, we say a divides b which is denoted by a|b.
1 SNS COLLEGE OF ENGINEERING Department of Electronics and Communication Engineering Subject: Digital communication Sem: V Cyclic Codes.
15-853Page :Algorithms in the Real World Error Correcting Codes II – Cyclic Codes – Reed-Solomon Codes.
Cyclic Code. Linear Block Code Hamming Code is a Linear Block Code. Linear Block Code means that the codeword is generated by multiplying the message.
Codes Codes are used for the following purposes: - to detect errors - to correct errors after detection Error Control Coding © Erhan A. Ince Types: -Linear.
1 Network Coding and its Applications in Communication Networks Alex Sprintson Computer Engineering Group Department of Electrical and Computer Engineering.
MIMO continued and Error Correction Code. 2 by 2 MIMO Now consider we have two transmitting antennas and two receiving antennas. A simple scheme called.
Reed Solomon Code Doug Young Suh Last updated : Aug 1, 2009.
Great Theoretical Ideas in Computer Science.
Elementary Linear Algebra Anton & Rorres, 9th Edition
§6 Linear Codes § 6.1 Classification of error control system § 6.2 Channel coding conception § 6.3 The generator and parity-check matrices § 6.5 Hamming.
DIGITAL COMMUNICATIONS Linear Block Codes
EE 430 \ Dr. Muqaibel Cyclic Codes1 CYCLIC CODES.
ADVANTAGE of GENERATOR MATRIX:
Chapter 31 INTRODUCTION TO ALGEBRAIC CODING THEORY.
Information and Coding Theory Cyclic codes Juris Viksna, 2015.
Information Theory Linear Block Codes Jalal Al Roumy.
Word : Let F be a field then the expression of the form a 1, a 2, …, a n where a i  F  i is called a word of length n over the field F. We denote the.
The parity bits of linear block codes are linear combination of the message. Therefore, we can represent the encoder by a linear system described by matrices.
Perfect and Related Codes
Some Computation Problems in Coding Theory
Elementary Coding Theory Including Hamming and Reed-Solomom Codes with Maple and MATLAB Richard Klima Appalachian State University Boone, North Carolina.
Computer Construction of Quasi-Twisted Two-Weight Codes Eric Chen Dept. of Comp.Science Kristianstad University Kristianstad Sweden.
Digital Communications I: Modulation and Coding Course Term Catharina Logothetis Lecture 9.
Applied Symbolic Computation1 Applied Symbolic Computation (CS 567) The Fast Fourier Transform (FFT) and Convolution Jeremy R. Johnson TexPoint fonts used.
Error Control Coding. Purpose To detect and correct error(s) that is introduced during transmission of digital signal.
May 9, 2001Applied Symbolic Computation1 Applied Symbolic Computation (CS 680/480) Lecture 6: Multiplication, Interpolation, and the Chinese Remainder.
CHAPTER 8 CHANNEL CODING: PART 3 Sajina Pradhan
Exercise in the previous class (1) Define (one of) (15, 11) Hamming code: construct a parity check matrix, and determine the corresponding generator matrix.
Cyclic Linear Codes. p2. OUTLINE  [1] Polynomials and words  [2] Introduction to cyclic codes  [3] Generating and parity check matrices for cyclic.
Class Report 林格名 : Reed Solomon Encoder. Reed-Solomom Error Correction When a codeword is decoded, there are three possible outcomes –If 2s + r < 2t (s.
RS – Reed Solomon Error correcting code. Error-correcting codes are clever ways of representing data so that one can recover the original information.
Information and Coding Theory
Cyclic Codes 1. Definition Linear:
Subject Name: Information Theory Coding Subject Code: 10EC55
CHAPTER 3: Cyclic and convolution codes
Introduction to Reed-Solomon Coding ( Part II )
Block codes. encodes each message individually into a codeword n is fixed, Input/out belong to alphabet Q of cardinality q. The set of Q-ary n-tuples.
Cyclic Code.
Finite Fields Rong-Jaye Chen.
CHAPTER 3: Cyclic and convolution codes
Presentation transcript:

Reed-Solomon Codes Rong-Jaye Chen

Reed-Solomon Codes [1] Codes over GF(2r) [2] Reed-Solomon codes [3] Decoding Reed-Solomon codes [4] Transform approach to Reed-Solomon codes (Omitted) [5] Berlekamp-Massey algorithm [6] Erasures (Omitted)

Reed-Solomon Codes [1] Codes over GF(2r) 1. GF(2r)[x] Polynomials with coefficients from GF(2r) K[x], K= GF(2)={0,1}, polynomials with binary coefficients 2. Recall BCH code of length n=2r-1 c(x)C iff 1, 2, 3, 4 are all roots of c(x), c(x)K[x] 1, 2, 4 share same minimal polynomial m1(x) and 3 has minimal polynomial m3(x) so the generator polynomial is gK(x)=m1(x)m3(x)

Reed-Solomon Codes 3. Generalization of BCH codes 4. Subfield subcode Choosing c(x)GF(2r)[x] c(x)C iff g(x)=(x+)(x+2)(x+3)(x+4) divides c(x) 4. Subfield subcode CK is a BCH code C over GF(2r) is an example of Reed-Solomon code CK is said to be a subfield subcode of C: CKC All words in CK have all their digits in the subfield K of GF(2r)  CK=C  Kn Both CK and C are cyclic

Reed-Solomon Codes 5. If g(x) generates a linear cyclic code of length 2r-1 over GF(2r), the generator of the binary subfield subcode is the polynomial gK(x) Let 1, 2,…, t be distinct non-zero elements of GF(2r). Then g(x)=(1+x) (2+x)…(t+x) generates a linear cyclic code of length 2r-1 over GF(2r) (Theorem 6.1.1) Example: Let F= GF(24) constructed using 1+x+x4. g(x)=(+x) (2+x)= 3+5x+x2 generates a linear cyclic code over F of length 15. The codeword corresponding to g(x) is of course 351000000000000

Reed-Solomon Codes 6. Cyclic codes over GF(2r) Let C be a linear cyclic code of length n over GF(2r). Every codeword c(x) can be written uniquely as m(x)g(x) for some m(x) in GF(2r)[x] of degree less than n-deg(g(x)). Also, g(x) divides f(x) iff f(x) is a codeword, and g(x) divides 1+xn (Theorem 6.1.3)

Reed-Solomon Codes Let g(x) have degree n-k. If g(x) generates a linear cyclic code C over GF(2r) of length n=2r-1 then is a generating matrix for C. |C|=2rk . There are 2rk polynomials m(x), since each of the k coefficients in m(x) can be any one of the 2r field elements

Reed-Solomon Codes Example: Construct GF(23) using 1+x+x3 with  as the primitive element. Let g(x)=(+x)(2+x)=3+4x+x2. Then g(x) generates a linear cyclic code C over GF(23) of length n=7 then C has 85 codewords. The codeword corresponding to m(x)=1+x+3x41003=m, for example, is m(x)g(x)  mG= 304613

Reed-Solomon Codes [2] Reed-Solomon codes 1. Lemma 6.2.1 Let 1, 2,…,t be non-zero elements of GF(2r). Then

Reed-Solomon Codes Example 6.2.2 we find that: Using lemma 6.2.1 and GF(24) constructed using 1+x+x4, we find that: =(7+2)(10+2)(10+7) = 12 4 6 = 7

Reed-Solomon Codes 2. Theorem 6.2.4 Let g(x)=(m+1+x)(m+2+x)…(m+-1+x) be the generator of a linear cyclic code C over GF(2r) of length n=2r-1, where  is a primitive element in GF(2r) and m is some integer. Then d(C)   <Proof> any -1 rows in the parity check matrix H (see p.131) is linearly independent so d(C)  

Reed-Solomon Codes 3. Definition of RS(2r, ) 4. Theorem 6.2.5 A binary Reed-Solomon code RS(2r, ) is a cyclic code over GF(2r) with generator g(x)=(m+1+x)(m+2+x)… (m+-1+x) for some integer m and some primitive element  of GF(2r) 4. Theorem 6.2.5 If C is an RS(2r, ) then (a) n = 2r-1 (b) k = 2r- (c) d =  (d) |C| = 2rk

Reed-Solomon Codes 5. Binary representation of RS(2r, ) Any RS(2r, ) code C, can be represented as a binary code simply by replacing each digit in each codeword by the binary word Example: Let C be the RS(4,2) with g(x)= +x and where GF(22) is constructed using 1+x+x2. From Theorem 6.2.5, C has n=3, k=2, d=2 and |C|=16, a generating matrix for C is

Reed-Solomon Codes The 16 messages u with their binary representation along with the corresponding codewords c = uG of C and their binary representations

Reed-Solomon Codes 6. Shortened RS(2r, ) code C(s) Example namely: Let C be the RS(4,2) code of previous example. The shortened RS(4,2) code C(1) is formed by taking all codewords that have 0’s in the last s=1 position, namely: 000,10, 20 and 120 then deleting the last s positions. So C(1)={ 00, 1, 2, 12 }

Reed-Solomon Codes Theorem 6.2.12 The distance d(s) of C(s): d(C(s)) d(C) =  d(s)  n(s) – k(s) + 1 = 2r-1-s-(2r--s)+1 =   d(s) =  Theorem 6.2.12 Let C be an RS(2r, ) code and let C(s) be the shortened RS(2r, ) code with parameters n(s),k(s),and d(s), then n(s) = 2r-1-s k(s) = 2r--s d(s) = 

Reed-Solomon Codes Example In example 6.1.5 we constructed an RS(23,3) code C with generator polynomial g(x)= 3+4x+x2. The shortened RS(23,3) code C(2) has generating matrix and has parameters n(2)=5, k(2)=3 and d(2)=3. G(2) is formed by deleting the last s=2 rows columns of the original matrix G

Reed-Solomon Codes [3] Decoding Reed-Solomon codes 1. Error locations and error magnitudes The error locations of a received word are the coordinates i in which the error pattern is non-zero, referred by an error location number I The error magnitude of an error location i is the element of GF(2r) that occurs in coordinate i of the error pattern Example 6.3.1: Using RS(8, 3) constructed in Example 6.1.5, if c= 3400000 is transmitted and w=3450000 is received then the most likely error pattern is c+w=e=0040000. So the error location number is 2 and the corresponding error magnitude is 4

Reed-Solomon Codes 2. Decoding algorithm Notation: g(x)=(m+1+x)(m+2+x)…(m+-1+x) t=(-1)/2 a1, …, ae = the error location numbers b1, …, be = the error magnitudes

Reed-Solomon Codes Let w(x)=w0+w1x+ … + wn-1xn-1 Symdromes: s = wH c(x)=c0+c1x+ … + cn-1xn-1 e(x)=e0+e1x+ … + en-1xn-1

Reed-Solomon Codes Syndrome: sm+1,…,sm+-1 sj=w(j) for m+1  j  m+-1 w(j)=c(j)+e(j)=e(j)= (6.1) Error locator polynomial: A(x), let A={a1,…,ae} A(x)=(a1-x) (a2-x) … (ae-x) (6.2) Define j to be the coefficient of xj in A(x) A(x)= 0+ 1x+ … + e-1xe-1+xe (6.3) (6.4) which may be written as (6.5)

Reed-Solomon Codes Substitute j=m+1,…,m+e in turn to obtain e linear equations (6.6) The exe matrix above be called M, which does have full rank

Reed-Solomon Codes Equations (6.1) can most easily be represented as follows: (6.7) Define the M’ be the extended matrix:

Reed-Solomon Codes Algorithm 6.3.2 1. Calculate sj=w(j) for m+1  j  m+2t 2. Setting e=t, find the rank of the extended matrix M’ 3. Let e be the rank of M’ and solve the linear system (6.6) for 0,…,e-1 4. Find the roots of A(x)=0+ 1x+…+ e-1xe-1+xe These roots are the error location numbers a1,…,ae 5. Solve the linear system (6.7) for b1,…,be There are the error magnitudes corresponding to a1,…,ae

Reed-Solomon Codes Example 6.3.3 Let g(x)=(1+x)(+x)(2+x)(3+x)=6+5x+ 5x2+2x3+x4 be the generator of an RS(23,5) code (m=-1, t=2), where GF(23) is constructed using 1+x+x3. Suppose that the received word is w= 6  5 210 2 Using algorithm 6.3.2: 1. Since m=-1 and =5, we calculate the 4 syndromes s0=w(0)=6++5+2+1+0+2=1 s1=w(1)=6+2+7+5+4+0+8=3 s2=w(2)=6+3+9+8+8+0+14=3 s3=w(3)=6+4+11+11+12+0+20=1

Reed-Solomon Codes Row reducing M’ yields the matrix which has rank 2 2. Setting e=t=2, the extended matrix M’ is Row reducing M’ yields the matrix which has rank 2

Reed-Solomon Codes 3. Since M’ has full rank. e=2 and so we now solve the linear system However, as observed above, we have already row reduced M in Step 2, so we have to solve Then 41+ 2=0 so 1= 5, and 0+ 35 + 3 = 0 so 0= 1

Reed-Solomon Codes A(x) = 0+1x+x2=1+5x+x2. On substituting 4. We now know the error locator polynomial A(x) = 0+1x+x2=1+5x+x2. On substituting field elements into A(x), we find that A()=0 and A(6)=0. Therefore A(x)=1+5x+x2 =(+x)(6+x) So the error location numbers are a1=  and a2= 6

Reed-Solomon Codes 5. Now we solve the following linear system: or Then 5b2=1 so b2=2, and b1+b2=1 so b1=6. Therefore the most likely error pattern is and the most likely codeword is c = w+e = 65 52100

Reed-Solomon Codes Example 6.3.4 Let be the generator of an RS(24,7) code (so m=-1 and t=3), where GF(24) is constructed using (see Table 5.1) Suppose that the received word is

Reed-Solomon Codes 1.

Reed-Solomon Codes 2. So M has rank 2 and therefore the most likely error pattern has weight e=2

Reed-Solomon Codes 3. With e=2, the linear system (6,7) becomes but in Step 2 we row reduced this matrix: Then 12 1+7=0 so 1=10, and 7 0+1+9=0 so 0=6.

Reed-Solomon Codes and a2=4 5. so 4. A(x)=6+ 10x+x2=(2+x)(4+x). Therefore a1= 2 and a2=4 5. so Therefore b2= 12 and b1= 2. So the most likely error pattern is e=0020120…0 and the most likely codeword is c=w+e=142129100…0

Reed-Solomon Codes [4] Transform approach to Reed-Solomon codes (Omitted) [5] Berlekamp-Massey algorithm 1. Notation Reverse error locator polynomial R(x)=1+t-1x+t-2x2+…+0xt Syndrome polynomial s(x)=1+sm+1x+sm+2x2+…+sm+2tx2t we can write R(x)s(x)=q(x)x2t+1+r(x) with deg(r(x))  t

Reed-Solomon Codes 2. Algorithm 6.5.1 Produce a sequence of polynomials Pi(x) and integer Di  If Pi(x)s(x)=qi(x)xi+1+ri(x) with deg(ri(x))  i , then deg(Pi(x))  i -  Di /2 and deg(ri(x))  i - (1+Di)/2 Pi(x) is a combination of Pi-1(x) and some specific previous polynomial Pz(i-1)(x) 2. Algorithm 6.5.1 Calculate sj=w(j) for m+1  j  m+2t Define: q-1(x)=1+sm+1x+sm+2x2+…+sm+2tx2t q0(x)=sm+1+sm+2x+…+sm+2tx2t-1 p-1(x)=x2t+1 p0(x)=x2t Let D-1=-1 and D0=0 and let z0=-1

Reed-Solomon Codes For 1  i  2t, recursively define qi(x), pi(x), Di, and zi as follows (a) If qi-1,0=0, then let qi(x)= qi-1(x)/x pi(x)= pi-1(x)/x Di= 2+Di-1 zi= zi-1 (b) If qi,0  0, then let

Reed-Solomon Codes and let which can be truncated to have degree at most 2t-1-i; and let If e  t errors have occurred during transmission then p2t(x)= R(x) has degree e; the error locator polynomial is: which has e distinct roots

Reed-Solomon Codes Example 6.5.2: Consider example-6.3.4 with the syndrome s0=7, s1=0, s2=9, s3=12, s4=9, s5=7. Working step by step through Algorithm 6.5.1, we obtain the following. We begin by setting q-1(x) = 1+7x+x2+9x3+12x4+9x5+7x6 q0(x) = 7+x+9x2+12x3+9x4+7x5 p-1(x) = x7 p0(x) = x6 D-1 = -1, D0= 0, z0= -1

Reed-Solomon Codes (q0(x)+7q-1(x))/x =3+x+13x2+14x3+14x4+14x5 Let i=1. Since q0,0=70, we use step 3(b): (q0(x)+7q-1(x))/x =3+x+13x2+14x3+14x4+14x5 which is truncated to degree 2t-i-1=4 to give q1(x) =3+x+13x2+14x3+14x4 p1(x) =1+7x D1 = 2+min{D-1, D0}=0 and since D0D-1, zi=i-1=0 Before proceeding, we shall adopt a more concise format by representing the polynomials by their corresponding words. Then the information we have found so far is the following table:

Reed-Solomon Codes i qi - pi Di zi -1 0 7 0 9 12 9 7 - 0 -1 -1 0 7 0 9 12 9 7 - 0 -1 0 7 0 9 12 9 7 - 0 0 -1 1 3 0 13 14 14 - 0 7 1 0 Proceeding from i=2 to i=2t=6 we obtain the following table 2 12 7 6 12 - 0 8 2 1 3 0 10 9 - 0 12 1 3 2 4 0 0 - 0 10 6 4 3 5 0 - 0 10 6 6 3 6 - 0 10 6 8 3 So finally we obtain (x) by reading p2t(x)= p6(x)= backwards: (x) = 6 + 10x+ x2

Reed-Solomon Codes Example 6.5.3: Let C be the RS(24,9) code with generator g(x)=(1+x)(+x)… (7+x) and GF(24) constructed using 1+x+x4. Suppose that w is the received word and the syndromes of w are: s0=12, s1=9, s2=6, s3=3, s4=5, s5=12,s6=6, s7=6 Using algorithm 6.5.1 and the notation describe in Example 6.5.2, we obtain the error locator polynomial as follows: i qi - pi Di zi -1 0 12 9 6 3 5 12 6 6 - 0 -1 0 12 9 6 3 5 12 6 6 - 0 0 -1 1 0 0 0 10 7 5 2 - 0 12 1 0 2 0 0 10 7 5 2 - 0 12 3 0 3 0 10 7 5 2 - 0 12 5 0 4 10 7 5 2 - 0 12 7 0 5 0 8 5 - 0 12 0 0 13 2 4 6 8 5 - 0 12 0 0 13 4 4 7 0 - 0 12 13 10 13 6 4 8 - 0 12 13 10 13 8 4 Therefore the error locator polynomial is: (x) = 13 + 10x+ 13x2+12x3+x4

Reed-Solomon Codes [6] Erasures (Omitted) 3. Error evaluator polynomial Since r2t(x)=p2t(x)q-1(x) mod x2t+1 Either r(x)=r2t(x) or (x)=r2t(x)-p2t(x) called the error evaluator polynomial, used to calculate the error magnitudes bj, given the error locations aj Example 6.5.2 [6] Erasures (Omitted)