43
Reed-Solomon Codes

Reed-Solomon Codes

  • Upload
    vega

  • View
    66

  • Download
    1

Embed Size (px)

DESCRIPTION

Reed-Solomon Codes. Reed-Solomon Codes. [1] Codes over GF(2 r ) [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(2 r ) - PowerPoint PPT Presentation

Citation preview

Page 1: Reed-Solomon Codes

Reed-Solomon Codes

Page 2: Reed-Solomon Codes

p2.

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)

Page 3: Reed-Solomon Codes

p3.

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)

Page 4: Reed-Solomon Codes

p4.

Reed-Solomon Codes

3. Generalization of BCH codes

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:

CKC All words in CK have all their digits in the subfield K

of GF(2r) CK=C Kn

Both CK and C are cyclic

Page 5: Reed-Solomon Codes

p5.

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 351000000000000

Page 6: Reed-Solomon Codes

p6.

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)

Page 7: Reed-Solomon Codes

p7.

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

)(

)(

)(

1 xgx

xxg

xg

G

k

Page 8: Reed-Solomon Codes

p8.

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+3x41003=m, for example, is

m(x)g(x) mG= 304613

10000

01000

00100

00010

00001

43

43

43

43

43

G

Page 9: Reed-Solomon Codes

p9.

Reed-Solomon Codes

[2] Reed-Solomon codes

1. Lemma 6.2.1

Let 1, 2,…,t be non-zero elements of GF(2r). Then

tijji

tttt

t

t

1

12

12

222

11

211

)(

1

1

1

det

Page 10: Reed-Solomon Codes

p10.

Reed-Solomon Codes

Example 6.2.2

Using lemma 6.2.1 and GF(24) constructed using 1+x+x4,

we find that:

510

147

42

1

1

1

det

=(7+2)(10+2)(10+7)

= 12 4 6

= 7

Page 11: Reed-Solomon Codes

p11.

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)

Page 12: Reed-Solomon Codes

p12.

Reed-Solomon Codes

3. Definition of RS(2r, )

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

Page 13: Reed-Solomon Codes

p13.

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

10

01

G

Page 14: Reed-Solomon Codes

p14.

Reed-Solomon Codes

The 16 messages u with their binary representation

along with the corresponding codewords c = uG of C

and their binary representations

u

c

1001111111110101011111110

11111101111100100110110

0100110110110111101111010

001011010001100011010010010

1000011011011011000101100

11100110101110100000100

0101011100101100010101000

001101000001000000000000000

2222

22222

222

22

222

22

2

uuGcuucuGcuu

Page 15: Reed-Solomon Codes

p15.

Reed-Solomon Codes

6. Shortened RS(2r, ) code C(s)

Example

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, 20 and 120

then deleting the last s positions. So

C(1)={ 00, 1, 2, 12 }

Page 16: Reed-Solomon Codes

p16.

Reed-Solomon Codes

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-sk(s) = 2r--sd(s) =

Page 17: Reed-Solomon Codes

p17.

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

100

100

100

)2(43

43

43

G

Page 18: Reed-Solomon Codes

p18.

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= 3400000 is transmitted and w=3450000 is received then the most likely error pattern is c+w=e=0040000. So the error location number is 2 and the corresponding error magnitude is 4

Page 19: Reed-Solomon Codes

p19.

Reed-Solomon Codes

2. Decoding algorithm

Notation:

g(x)=(m+1+x)(m+2+x)…(m+-1+x) t=(-1)/2a1, …, ae = the error location numbers

b1, …, be = the error magnitudes

Page 20: Reed-Solomon Codes

p20.

Reed-Solomon Codes

Symdromes: s = wH

Let w(x)=w0+w1x+ … + wn-1xn-1

c(x)=c0+c1x+ … + cn-1xn-1

e(x)=e0+e1x+ … + en-1xn-1

)1)(1()2)(1()1)(1(

121

110

121

111

...

...

mnmnmn

mmm

n

mmm

www

sss

Page 21: Reed-Solomon Codes

p21.

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)

t

i

jiiab

1

t

i

ejii

t

i

jii

t

i

jii ababab

11

1

10

1

)()(0

ejjj sss 110

11110 eejjjej ssss

Page 22: Reed-Solomon Codes

p22.

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

em

em

em

eememem

emmm

emmm

s

s

s

sss

sss

sss

2

2

1

1

1

0

121

132

21

1

111

1

111

111

1

1

1

0

011

eee

e

mee

m

ee

e

e

aa

aa

ab

ab

aa

aaM

Page 23: Reed-Solomon Codes

p23.

Reed-Solomon Codes

Equations (6.1) can most easily be represented as follows:

(6.7)

Define the M’ be the extended matrix:

em

m

m

eem

eemem

me

mm

me

mm

s

s

s

b

b

b

aaa

aaa

aaa

2

1

2

1

21

222

21

112

11

ememem

emmm

emmm

sss

sss

sss

M

21

232

121

'

Page 24: Reed-Solomon Codes

p24.

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

Page 25: Reed-Solomon Codes

p25.

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

Page 26: Reed-Solomon Codes

p26.

Reed-Solomon Codes

2. Setting e=t=2, the extended matrix M’ is

Row reducing M’ yields the matrix

which has rank 2

1

1'

33

33

M

24

33

0

1

Page 27: Reed-Solomon Codes

p27.

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 41+ 2=0 so 1= 5, and 0+ 35 + 3 = 0 so 0= 1

3

2

1

0

s

sM

2

3

1

0

4

3

0

1

Page 28: Reed-Solomon Codes

p28.

Reed-Solomon Codes

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

Page 29: Reed-Solomon Codes

p29.

Reed-Solomon Codes5. 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 = 65 52100

3

2

1

6

111

b

b

1

1

0

11

2

1

5 b

b

Page 30: Reed-Solomon Codes

p30.

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()g( 5432 xxxxxxx 65941232241 xxxxxx

41 xx

659341)( xxxxxw

Page 31: Reed-Solomon Codes

p31.

1.

Reed-Solomon Codes

7303416955

9242913844

12182410733

912197622

614451

79400

1)(

1)(

1)(

1)(

11)(

11)(

dws

ws

ws

ws

ws

ws

Page 32: Reed-Solomon Codes

p32.

2.

So M has rank 2 and therefore the most likely

error pattern has weight e=2

Reed-Solomon Codes

27

6712

1297

79129

9129

1297

0

0

1

1

1

'M

0000

0

16712

1297

Page 33: Reed-Solomon Codes

p33.

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

12

9

1

0

9

7

1

1

7

9

1

0

12

7

0

1

Page 34: Reed-Solomon Codes

p34.

Reed-Solomon Codes

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=0020120…0 and the most likely codeword is

c=w+e=142129100…0

1

11 7

2

1

42

b

b

7

7

2

14

0

11

b

b

Page 35: Reed-Solomon Codes

p35.

Reed-Solomon Codes

[4] Transform approach to Reed-Solomon codes (Omitted)

[5] Berlekamp-Massey algorithm

1. Notation

Reverse error locator polynomialR(x)=1+t-1x+t-2x2+…+0xt

Syndrome polynomials(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

Page 36: Reed-Solomon Codes

p36.

Reed-Solomon Codes

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

Page 37: Reed-Solomon Codes

p37.

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 letxxq

q

qxqxq

i

i

zz

iii /))()(()(

1

1 0,

0,11

Page 38: Reed-Solomon Codes

p38.

Reed-Solomon Codes

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

xxpq

qxpxp

i

i

zz

iii /))()(()(

1

1 0,

0,11

},min{211

izii DDD

otherwisez

DDifiz

i

zii

i

,

)(,1

1

1 1

eetetet xxpxppx

1

1,21,2,2)(

Page 39: Reed-Solomon Codes

p39.

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

Page 40: Reed-Solomon Codes

p40.

Reed-Solomon Codes

Let i=1. Since q0,0=70, 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 D0D-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:

Page 41: Reed-Solomon Codes

p41.

Reed-Solomon Codes

i qi - pi Di zi

-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 i qi - pi Di zi

-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 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

Page 42: Reed-Solomon Codes

p42.

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 46 8 5 - 0 12 0 0 13 4 47 0 - 0 12 13 10 13 6 48 - 0 12 13 10 13 8 4

Therefore the error locator polynomial is: (x) = 13 + 10x+ 13x2+12x3+x4

Page 43: Reed-Solomon Codes

p43.

Reed-Solomon Codes

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)