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