07.01.2015 Views

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

10.Error-Evaluator<br />

The syndrome components si<br />

can be represented by<br />

S<br />

i<br />

i<br />

= r(<br />

α ) =<br />

n<br />

<strong>∑</strong> − 1<br />

j=<br />

0<br />

ij<br />

r α<br />

j<br />

After the syndrome components are evaluated, the error pattern<br />

e for j = 0,1,2,<br />

L,<br />

n − 1 can be determined.<br />

j<br />

Suppose that ν errors, 0 ≤ν ≤ t , occur in the unknown<br />

locations<br />

j , j , , j 2<br />

1<br />

L<br />

ν .<br />

Then<br />

j1<br />

j2<br />

e ( x)<br />

= e<br />

j<br />

x + e<br />

j<br />

x + L+<br />

1<br />

2<br />

e<br />

j<br />

ν<br />

x<br />

j<br />

ν<br />

The error locations, the error values and the number of errors<br />

are unknown.<br />

<br />

Define the error values to be<br />

Y<br />

l<br />

= e for l<br />

j<br />

l<br />

= 1,2, L,ν<br />

And the error locators to be<br />

X<br />

l<br />

= α j l<br />

for l = 1,2, L,ν


The 2t<br />

= d −1<br />

syndrome components can then be<br />

X<br />

j<br />

j<br />

j<br />

= Y1<br />

X1<br />

+ Y2<br />

X<br />

2<br />

+ L<br />

+ Y<br />

ν<br />

X<br />

j<br />

ν<br />

The right-hand side of the above equation is called “power-sum<br />

symmetric functions”.<br />

<br />

This set of equations must have at least one solution for the<br />

unknown<br />

X i<br />

' s and Y i<br />

' s<br />

because of the way in which the<br />

syndromes are defined in eq. (6-14).<br />

It can be shown that the solution is unique.<br />

<br />

Methods to determine error values:<br />

(1) Straightforward solution of the equations<br />

j<br />

j<br />

j<br />

S<br />

j<br />

= Y1 X1<br />

+ Y2<br />

X<br />

2<br />

+ L + Yν<br />

Xν<br />

j = 1,2, L,<br />

2t<br />

(2) Use of Forney’s algorithm (will be derived latter)<br />

This method requires the evaluation of Λ (x)<br />

.<br />

First, define the syndrome polynomial<br />

<strong>∑</strong><br />

2<br />

S ( x ) =<br />

t<br />

i=<br />

1<br />

S i x<br />

i


Let the error-evaluator polynomial Ω(x)<br />

be formed in<br />

terms of the known polynomials S(x)<br />

and Λ (x)<br />

called, the key equation:<br />

,whichis<br />

Ω(<br />

x)<br />

= [1 + S(<br />

x)]<br />

Λ(<br />

x)<br />

mod<br />

where Λ(<br />

x)<br />

=<br />

ν<br />

∏<br />

l=<br />

1<br />

(1 − xX ),<br />

l<br />

x<br />

2t+<br />

1<br />

X<br />

l<br />

il<br />

= α<br />

Then<br />

−1<br />

l<br />

∏<br />

Ω(<br />

X ) = Y (1 − X X ) for l = 1,<br />

2,<br />

L,<br />

ν<br />

l<br />

i≠l<br />

i<br />

−1<br />

l<br />

Thus the error values are given explicitly by the formula<br />

Y<br />

l<br />

Ω(<br />

X<br />

−1<br />

l<br />

= −X<br />

l −1<br />

Λ'(<br />

xl<br />

)<br />

)<br />

for<br />

l<br />

= 1,2, L,ν<br />

where Λ' ( x)<br />

denotes the formal first derivative of Λ(x)<br />

with respect to x.<br />

The above equation defines the Forney algorithm<br />

(G. D. Forney, 1965)<br />

(3) Transformed version of the Forney technique<br />

From the relationship<br />

Λ(<br />

x)<br />

=<br />

ν<br />

∏<br />

l=<br />

1<br />

(1 − xX ),<br />

l<br />

X<br />

l<br />

jl<br />

= α<br />

we have<br />

−1<br />

l<br />

∏<br />

Λ(<br />

X ) = (1 − X X )<br />

j≠l<br />

i<br />

−1<br />

l<br />

and the from eq. (6-21) then


Y<br />

l<br />

−1<br />

− Ω(<br />

X<br />

l<br />

)<br />

=<br />

∏ (1 − X<br />

i<br />

X<br />

i≠l<br />

−1<br />

l<br />

)<br />

for<br />

l<br />

= 1,2, L,ν<br />

Combining eq. (6-25) and eq. (6-20) yield the explicit<br />

formula:<br />

Y<br />

l<br />

=<br />

X<br />

where<br />

ν<br />

<strong>∑</strong><br />

i=<br />

1<br />

∏<br />

l<br />

i≠l<br />

l, i<br />

polynomial<br />

Λ(<br />

x)<br />

=<br />

S<br />

ν −i<br />

( X<br />

σ<br />

l<br />

l,<br />

i<br />

− X<br />

i<br />

)<br />

for<br />

l = 1,2, L,<br />

ν<br />

σ is defined as the ( ν − 1 − i)<br />

-th coefficient of the<br />

ν<br />

∏<br />

i 1<br />

i≠=<br />

l<br />

ν −1<br />

<strong>∑</strong><br />

( x − X i<br />

) = σ x<br />

i=<br />

0<br />

l,<br />

i<br />

ν −1−i<br />

Example 6.8 (p. 261)<br />

4<br />

Consider the (15, 9) RS code over GF( 2 )<br />

4<br />

The generator of the field GF( 2 ), primitive polynomial,<br />

p ( + x + x<br />

4<br />

x)<br />

= 1<br />

4<br />

codeword generator<br />

6 10 5 14 4 4 3 6 2 9 6<br />

g(<br />

x)<br />

= x + α x + α x + α x + α x + α x + α<br />

2<br />

3<br />

4<br />

5<br />

6<br />

= ( x + α)(<br />

x + α )( x + α )( x + α )( x + α )( x + α )


Assuming that two error locations are already determined.<br />

X<br />

= α X =<br />

2<br />

2<br />

1<br />

,<br />

1<br />

α<br />

with (example 6.7)<br />

r<br />

8 11 7 8 5 10 4 4 3 3 2 8 12<br />

( x)<br />

= x + α x + α x + α x + α x + α x + α x + α<br />

S<br />

S<br />

S<br />

S<br />

S<br />

S<br />

1<br />

2<br />

3<br />

4<br />

5<br />

6<br />

= r(<br />

α ) = 1<br />

2<br />

= r(<br />

α ) = 1<br />

3 5<br />

= r(<br />

α ) = α<br />

4<br />

= r(<br />

α ) = 1<br />

5<br />

= r(<br />

α ) = 0<br />

6<br />

= r(<br />

α ) = α<br />

10<br />

2<br />

8<br />

Λ( x)<br />

= (1 + α x)(1<br />

+ α x)<br />

= 1 + α<br />

From the 1 st method<br />

10<br />

x<br />

2<br />

Y1α<br />

4<br />

Y α<br />

1<br />

8<br />

+ Y2α<br />

+ Y α<br />

2<br />

=<br />

=<br />

1<br />

1<br />

we then obtain Y = , Y 1<br />

1<br />

1<br />

2<br />

=<br />

Use of Forney’sformula<br />

2t+<br />

1<br />

10<br />

Ω(<br />

x)<br />

= [1 + S(<br />

x)]<br />

Λ(<br />

x)<br />

mod x = 1 + α x<br />

2<br />

8<br />

Λ(<br />

x)<br />

= (1 − xα<br />

)(1 − xα<br />

)<br />

2 8 8 2<br />

Λ'(<br />

x)<br />

= −α<br />

(1 −α<br />

x)<br />

−α<br />

(1 −α<br />

x)<br />

2<br />

Y<br />

1<br />

=<br />

1<br />

Ω(<br />

)<br />

x1<br />

x2<br />

(1 + )<br />

x<br />

1<br />

α<br />

1 +<br />

4<br />

= α<br />

6<br />

1 + α<br />

10<br />

= 1,<br />

Y<br />

2<br />

=<br />

1<br />

Ω(<br />

)<br />

x2<br />

x1<br />

(1 + )<br />

x<br />

2<br />

= 1


11.Error-and –Erasure Decoding of RS Codes<br />

Berlekamp-Forney key equation<br />

The Euclidean algorithm is used to directly solve the<br />

Berlekamp-Forney key equation for the errata-locator<br />

polynomial and errata-evaluator polynomial at the same time<br />

with a common algorithm.<br />

Suppose s errors and ν erasures occur in the received word r ,<br />

and that<br />

2 ν + s ≤ d − 1 = 2t<br />

.<br />

Next, let α<br />

m<br />

be a primitive element in GF( 2 ), the<br />

l<br />

γ = α<br />

is<br />

m<br />

m<br />

also a primitive element in GF( 2 ), where ( l , n)<br />

= 1, n = 2 − 1 .<br />

If γ is a root of the generator polynomial of the code, it is shown<br />

(by Berlekamp) that the generator polynomial g(x)issymmetricif<br />

and only if<br />

g(<br />

x)<br />

=<br />

d−1<br />

<strong>∑</strong><br />

j=<br />

0<br />

g<br />

j<br />

x<br />

j<br />

=<br />

b+<br />

( d−2)<br />

∏<br />

j=<br />

b<br />

j<br />

( x − γ )<br />

where g 1<br />

0<br />

= g d −1<br />

=<br />

and b satisfies the equality<br />

m<br />

2b<br />

+ d − 2 = 2 − 1


The syndrome of the code are given by<br />

S<br />

b−1+<br />

w<br />

( b−1)<br />

+ w<br />

= r(<br />

γ )<br />

n−1<br />

i⋅(<br />

b−1+<br />

w)<br />

= <strong>∑</strong>uiγ<br />

i=<br />

0<br />

ν + s<br />

( b−1)<br />

+ w<br />

= <strong>∑</strong>Y<br />

j<br />

X<br />

j<br />

j=<br />

1<br />

For 1 ≤ w ≤ d − 1 , where ui<br />

for 0 ≤ i ≤ n − 1 are the<br />

coefficients of the errata polynomial u(x),<br />

X<br />

j<br />

is either the j-th<br />

erasure of error location, and<br />

error magnitude.<br />

Y<br />

j<br />

is either the j-th erasure or<br />

It can be shown that [Reed & Solomon, 1960]<br />

S(<br />

x)<br />

=<br />

=<br />

d −1<br />

<strong>∑</strong><br />

w=<br />

1<br />

ν + s<br />

<strong>∑</strong><br />

j=<br />

1<br />

S<br />

( b−1)<br />

+ w<br />

Y<br />

j<br />

X<br />

(1 − X<br />

b<br />

j<br />

j<br />

x<br />

w−1<br />

−<br />

x)<br />

ν + s<br />

<strong>∑</strong><br />

j=<br />

1<br />

Y<br />

j<br />

X<br />

b+<br />

d−1<br />

j<br />

(1 − X<br />

j<br />

x<br />

d −1<br />

x)<br />

<br />

Now define the following four polynomials:<br />

(1) erasure<br />

τ (<br />

) =<br />

s<br />

∏<br />

x<br />

j=<br />

1<br />

(2) error locator<br />

λ(<br />

x ) =<br />

ν<br />

∏<br />

j=<br />

1<br />

(1 − X x j<br />

)<br />

(1 − X x j<br />

)


(3) errata locator<br />

Λ(<br />

x ) = τ ( x ) λ(<br />

x ) =<br />

ν<br />

∏ + s<br />

j=<br />

1<br />

(1 − X x j<br />

)<br />

(4) errata evaluator<br />

A(<br />

x)<br />

=<br />

⎛<br />

ν + s<br />

b<br />

<strong>∑</strong>Y<br />

⎜<br />

j<br />

X<br />

j<br />

j= 1<br />

i≠<br />

j<br />

⎝<br />

∏<br />

(1 − X<br />

i<br />

⎞<br />

x)<br />

⎟<br />

⎠<br />

In terms of the polynomial defined above, eq. (6-30) becomes<br />

S(<br />

x)<br />

=<br />

or<br />

A(<br />

x)<br />

+<br />

Λ(<br />

x)<br />

x<br />

d−1⎛<br />

⎜<br />

⎝ i<br />

Λ(<br />

x)<br />

ν + s<br />

d −1<br />

b+<br />

<strong>∑</strong>Y<br />

j<br />

X<br />

j<br />

j= 1<br />

≠ j<br />

∏<br />

(1 − X<br />

i<br />

⎞<br />

x)<br />

⎟<br />

⎠<br />

S(<br />

x)<br />

Λ(<br />

x)<br />

=<br />

A(<br />

x)<br />

+ x<br />

⎛<br />

ν + s<br />

d−1<br />

b+<br />

d−1<br />

<strong>∑</strong>Y<br />

⎜<br />

j<br />

X<br />

j<br />

j= 1<br />

i≠<br />

j<br />

⎝<br />

∏<br />

(1 − X<br />

i<br />

⎞<br />

x)<br />

⎟<br />

⎠<br />

From eq. (6-36) one obtains finally the congruence relation,<br />

S(<br />

x)<br />

Λ(<br />

x)<br />

=<br />

A(<br />

x)<br />

mod<br />

d−1<br />

x<br />

for key equation<br />

<br />

Equation (6-37) can be solved for S(x) to yield:<br />

A(<br />

x)<br />

S(<br />

x)<br />

≡<br />

λ(<br />

x)<br />

τ ( x)<br />

mod<br />

d−1<br />

x


Now define, what is called, the Forney syndrome polynomial T(x)<br />

as follows:<br />

T(<br />

x)<br />

≡<br />

S(<br />

x)<br />

τ ( x)<br />

mod<br />

d −1<br />

x<br />

<br />

By eq. (6-38) & eq. (6-39), one obtains, what is called, the<br />

Berlekamp-forney key equation for λ (x)<br />

,andA(x) isgivenby<br />

A(<br />

x)<br />

≡ T(<br />

x)<br />

λ(<br />

x)<br />

mod<br />

d −1<br />

x<br />

Where deg{ λ(<br />

x)}<br />

≤ ⎣(<br />

d − 1 − s)<br />

2⎦<br />

since the maximum number if<br />

errors in an RS code that can be corrected is ⎣( d − 1 − s)<br />

2⎦.<br />

Here also, deg{ ( x)}<br />

≤ ⎣(<br />

d + ν − 3) 2⎦<br />

A .<br />

<br />

The Forney syndrome polynomial T(x) can be computed from eq.<br />

(6-39) since both S(x)and τ (x)<br />

are known.


12.Euclid’s Algorithm:<br />

<br />

Euclid’s algorithm is a fast method for finding the greatest<br />

common divisor (GCD) of a collection of elements in an Euclidean<br />

domain.<br />

Theorem (Theorem 6.2, page 273)<br />

For a (n, k) RScode,with ν –error and s–erasure in the received<br />

word. Forney syndrome polynomial T(x) is expressed by<br />

T(<br />

x)<br />

≡<br />

S(<br />

x)<br />

τ ( x)<br />

mod<br />

d −1<br />

x<br />

Consider the two polynomials<br />

d −1<br />

x<br />

and T(x) in eq. (6-39). The<br />

m<br />

Euclidean algorithm for polynomials over GF( 2 ) can be used to<br />

develop two finite sequences R i<br />

(x)<br />

and Λ (x)<br />

from the<br />

following two recursive formulas:<br />

Λ<br />

i<br />

( x)<br />

= ( −Qi−1(<br />

x))<br />

Λ<br />

i−1(<br />

x)<br />

+ Λ<br />

i−2(<br />

x)<br />

and R x)<br />

= R ( x)<br />

− Q ( x)<br />

R ( )<br />

i<br />

(<br />

i−2 i−1<br />

i−1<br />

x<br />

i<br />

For<br />

i = 1,<br />

2, L,<br />

2t<br />

, where the initial conditions are<br />

Λ<br />

Λ<br />

( x)<br />

= τ ( x)<br />

R ( x)<br />

= T(<br />

x)<br />

d−1<br />

x<br />

0<br />

0<br />

− 1(<br />

x)<br />

= 0 R−1<br />

( x)<br />

=<br />

Here ( )<br />

Q x i−1 is obtained as the principal part of<br />

R<br />

R<br />

i−2<br />

i−1<br />

( x)<br />

( x)<br />

.


The recursion in eq. (6-40a) and eq. (6-40b) for R i<br />

(x)<br />

and<br />

Λ<br />

i<br />

(x) terminates when deg{ R i<br />

( x)}<br />

≤ ⎣(<br />

d + ν − 3) 2⎦<br />

for the<br />

first time for some value<br />

i = i'<br />

Let<br />

and<br />

A( x)<br />

= R<br />

'(<br />

x)<br />

/ ∆<br />

Λ ( x)<br />

= Λ ( x)<br />

/ ∆<br />

i<br />

i<br />

Also in eq. (6.41) ∆ = Λ i'<br />

(0)<br />

m<br />

is a field element in GF( 2 )which<br />

is chosen so that Λ = 0<br />

1 .<br />

The pair of polynomials A(x) and Λ(x)<br />

in eq. (6.41) constitute<br />

the unique solution of<br />

A ( x)<br />

≡ T(<br />

x)<br />

Λ(<br />

x)<br />

mod<br />

d −1<br />

x<br />

,whereboth<br />

of the inequlaities, deg{ Λ(<br />

x)}<br />

≤ ⎣(<br />

d + ν − 1) 2⎦<br />

and deg{ A(<br />

x)}<br />

≤ ⎣(<br />

d + ν − 3) 2⎦<br />

are satisfied.<br />

<br />

Errata-value computation<br />

The locations of the errata can be obtained by finding the roots of<br />

Λ(x)<br />

using the Chien search procedure.<br />

By eq. (6. 34), it is shown readily that the errata values are<br />

−1<br />

A(<br />

X<br />

j<br />

)<br />

Y<br />

j<br />

for j = 1, 2, L,ν<br />

+ s<br />

= −<br />

j<br />

j<br />

b−1<br />

1<br />

( X Λ'(<br />

X ))<br />

−1<br />

where Λ'(<br />

X ) is the derivative with respect to x of Λ (x)<br />

,<br />

j<br />

evaluated at<br />

x .<br />

−1<br />

= X<br />

j


The overall decoding process of RS codes for correcting errors<br />

and erasures, which used the Euclidean algorithm, is summarized<br />

in the following steps:<br />

(1) Compute the syndrome S1 , S2,<br />

L,<br />

S2t<br />

with all of the erasure<br />

positions in the received word being replaced by 0s from eq.<br />

(6. 29), (6. 30) and next calculate λ(x)<br />

from eq. (6. 31) and<br />

let<br />

deg{ λ ( x )} = ν .<br />

(2) Compute the Forney syndrome polynomial from T(x) bythe<br />

use of eq. (6. 37)<br />

(3) To determine Λ(x)<br />

and A(x), where 0 ≤ν<br />

≤ d − 1 , apply the<br />

Euclidean algorithm to<br />

d−1<br />

x and T(x) as given by eq. (6. 39)<br />

The initial values are<br />

Λ<br />

Λ<br />

( x)<br />

= τ ( x)<br />

R ( x)<br />

= T(<br />

x)<br />

d −1<br />

x<br />

0<br />

0<br />

− 1(<br />

x)<br />

= 0 R−1<br />

( x)<br />

=<br />

For ν = d − 1 ,set Λ( x)<br />

= τ ( x)<br />

and A ( x)<br />

= T(<br />

x)<br />

(4) Compute the errata value from eq. (6. 42)


Example 6.10 (page 277)<br />

Consider the (15, 9) RS code, α 15 = 1<br />

The minimum distance of the code is d =7<br />

In this code, s erasures and ν<br />

errors under the condition<br />

s + 2ν ≤ d − 1 can be corrected.<br />

Assuming that the received word is<br />

r<br />

= ( α<br />

10<br />

, α<br />

12<br />

8 5<br />

, α , α , α , α<br />

14<br />

, α<br />

13<br />

9 9<br />

, α , α , 1 , α , α<br />

12<br />

6<br />

, α , α<br />

12<br />

8<br />

, α )<br />

Also assume that the erasure vector is<br />

e*<br />

=<br />

(0 , 0 , 0 , 0 , 0 , 0 ,<br />

And the error vector is<br />

2<br />

0, α ,<br />

0 , 0 , 0 ,<br />

0 , 0 , 0 , 0)<br />

e<br />

= (0 , 0 , 0 , 0 , α<br />

11<br />

,<br />

0 , 0 , 0 , 0 , 0 ,<br />

7<br />

0 , α ,<br />

0 , 0 , 0)<br />

The errata vector is<br />

u<br />

=<br />

(0 , 0 ,<br />

0 , 0 , α<br />

11<br />

, 0 ,<br />

2<br />

0, α ,<br />

0 , 0 ,<br />

7<br />

0 , α ,<br />

0 , 0 , 0)<br />

The syndrome<br />

Si<br />

satisfy<br />

S<br />

i<br />

14<br />

ij<br />

= <strong>∑</strong>rjα<br />

j=<br />

0<br />

7 3<br />

= α ( α )<br />

i<br />

2 7<br />

+ α ( α )<br />

i<br />

+ α<br />

11<br />

( α<br />

10<br />

)<br />

i<br />

for<br />

1 ≤ i ≤ 6<br />

This yields<br />

S<br />

S<br />

1<br />

2<br />

= 1<br />

= α<br />

13<br />

S<br />

S<br />

3<br />

4<br />

= α<br />

= α<br />

14<br />

11<br />

S<br />

S<br />

5<br />

6<br />

= α<br />

= 0<br />

Thus<br />

S<br />

13 14 2 11 3 14<br />

( x)<br />

= 1 + α x + α x + α x + αx


The erasure locator polynomial is<br />

7<br />

τ ( x)<br />

= 1 + α x<br />

By eq. (6. 39),<br />

d −1<br />

T(<br />

x)<br />

≡ S(<br />

x)<br />

τ ( x)<br />

mod x ,<br />

one obtains<br />

7<br />

13 14 2<br />

T(<br />

x)<br />

≡ (1 + α x)(1<br />

+ α x + α x<br />

8 5 9 4 3 12<br />

= α x + α x + αx<br />

+ α x<br />

11 3<br />

+ α x + αx<br />

5<br />

+ α x + 1<br />

2<br />

4<br />

)<br />

mod<br />

x<br />

6<br />

Now applying the Euclidean algorithm to<br />

Initial conditions:<br />

d−1<br />

x<br />

and T(x).<br />

R<br />

R<br />

Λ<br />

Λ<br />

−1<br />

0<br />

0<br />

−1<br />

d−1<br />

6<br />

( x)<br />

= x = x<br />

8 5 9<br />

( x)<br />

= T(<br />

x)<br />

= α x + α x<br />

7<br />

( x)<br />

= τ ( x)<br />

= 1 + α x<br />

( x)<br />

= 0<br />

4<br />

+ αx<br />

3<br />

12<br />

+ α x<br />

2<br />

5<br />

+ α x + 1<br />

d = 7 ν = 2<br />

Iterations:<br />

Λ ( x)<br />

= ( −Q<br />

1(<br />

x))<br />

Λ<br />

1(<br />

x)<br />

+ Λ<br />

2(<br />

x)<br />

i<br />

i−<br />

i−<br />

i−<br />

R ( x)<br />

= R<br />

2(<br />

x)<br />

− Q<br />

1(<br />

x)<br />

R<br />

1(<br />

x)<br />

Q<br />

i<br />

i−1<br />

i−<br />

⎡ Ri<br />

( x)<br />

= ⎢<br />

⎣ Ri<br />

−2<br />

−1<br />

( x)<br />

⎤<br />

( x)<br />

⎥<br />

⎦<br />

i−<br />

i−

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!