With n= 63, determine the generator polynomial of a binary nonprimitive BCH 21, 12, 5 code... 4.1 RS codes as polynomial codes Similar to Reed–Muller RM codes, RS codes can be defined as
Trang 1BINARY CYCLIC CODES AND BCH CODES 71
17 Let C be a double-error-correcting (15, 7, 5) BCH code Suppose that the all-zero
code word is transmitted and that there are erasures in the last four consecutivepositions so that
¯r(x) = f + f x + f x2+ f x3, where f denotes an erasure Find the most likely code polynomial that was transmit-
ted
18 Prove the existence of a binary cyclic (63, 58) code (Hint: How many binary cyclic
codes of length 63 are there?)
19 Let C1 be a double-error-correcting BCH (15,7,5) code and C2 be a correcting BCH (15,5,7) code
triple-error-(a) Find generator matrices G1 and G2 of C1 and C2 respectively
(b) Compute the weight distributions W(C1 ) andW(C2 ) (Hint: You may use a
computer program for this task.)
(c) Estimate the performance of codes C1 and C2 (BER curves) with soft-decisiondecoding over an AWGN channel Compare the curves with respect to uncodedBPSK modulation What are the respective coding gains?
20 Let A be an × Vandermonde matrix over a field.
(a) Show that det (A ) = 0, that is, the rank of A is .
(b) Show that any ν × ν submatrix A ν of A has rank ν.
21 Let 2m − 1 = n1n2, where n1 > 1 and n2 >1
(a) Show that the element β = α n1, where α is a primitive element in GF(2 m ), has order n2 That is, n2 is the smallest positive integer such that β n2 = 1
(b) Using β, a binary nonprimitive BCH code can be constructed With n= 63,
determine the generator polynomial of a binary nonprimitive BCH (21, 12, 5)
code
Trang 2Nonbinary BCH codes:
Reed– Solomon codes
In this chapter, one of the most celebrated class of ECC schemes is introduced andtheir encoding and decoding algorithms explained Reed–Solomon (RS) codes have foundnumerous applications in digital storage and communication systems Examples include the
famous RS (255, 223, 33) code for NASA space communications, shortened RS codes over GF(28) for CD-ROM, DVD and Terrestrial Digital HDTV transmission applications, an
extended RS (128, 122, 7) code over GF(27)for cable modems, among many others
4.1 RS codes as polynomial codes
Similar to Reed–Muller (RM) codes, RS codes can be defined as code words with nents equal to the evaluation of a certain polynomial As a matter of fact, this was the waythat RS codes were originally defined by Reed and Solomon in Reed and Solomon (1960)
compo-RM codes, finite-geometry codes (Lin and Costello 2005) and RS codes are all members
of a large class of codes: Polynomial codes (Peterson and Weldon 1972), which are closely related to algebraic-geometry (AG) codes (Pretzel 1998) Let
¯
u(x) = u0 + u1 x + · · · + u k−1x k−1 (4.1)
be an information polynomial, with u i ∈ GF(2 m ), 1 ≤ i < k Clearly, there are 2 mk such
polynomials By evaluating (4.1) over the nonzero elements of GF(2 m ), a code word in an
RS (2 m − 1, k, d) code of length 2 m is obtained,
¯
v=u(1) u(α) u(α2) · · · u(α2m−2)
4.2 From binary BCH to RS codes
RS codes can also be interpreted as nonbinary BCH codes That is, RS codes are BCH codes in which the values of the code coefficient are taken from GF(2 m ) In particular,
The Art of Error Correcting Coding, Second Edition Robert H Morelos-Zaragoza
2006 John Wiley & Sons, Ltd ISBN: 0-470-01558-6
Trang 374 NONBINARY BCH CODES: REED–SOLOMON CODES
for a t d -error correcting RS code, the zeros of the code are 2t d consecutive powers of α Moreover, because over GF(2 m ) minimal polynomials are of the form φ i (x) = (x − α i ),
0≤ i < 2 m − 1, see Equation (3.9), the factors of the generator polynomial are now linear,
where b is an integer, usually b = 0 or b = 1.
It follows from (4.3), and the BCH bound on page 53, that the minimum distance of
a RS (n, k, d) code C over GF(2 m ) is d ≥ n − k + 1 On the other hand, the Singleton bound (Singleton 1964) d ≤ n − k + 1 implies that d = n − k + 1 A code that satisfies this equality is known as a maximum distance separable (MDS) code (Singleton 1964).
Therefore, RS codes are MDS codes This gives RS codes useful properties Among them,shortened RS codes are also MDS codes
Using the isomorphism between GF(2 m )and{0, 1} m , for every m-bit vector ¯ x β there
Con-This binary image code can correct, in addition to up to t d random errors, many random bursts of errors For example, any single burst of up to m(t d − 1) + 1 bits can be corrected This follows from the fact that a burst of errors of length up to m(q − 1) + 1 bits is contained
in at most q symbols of GF(2 m ) Therefore, there are many combinations of random errors
and bursts of errors that an RS code can correct To a great extent, this is the reason why
RS codes are so popular in practical systems
Example 4.2.1 Let m = 3, and GF(23) be generated by a primitive element α with
4.3 Decoding RS codes
The core of the decoding algorithms of RS codes is similar to that of binary BCH codes
The only difference is that the error values, e j, 1≤ ≤ ν, for ν ≤ t d, have to be computed
Trang 4In general, this is done using the Forney algorithm (Forney 1974) The expression below holds for RS codes with an arbitrary set of 2t d consecutive zeros{α b , α b+1, α b +2t d−1},
e j =(α j )2−b(α −j )
where σ(x) represents the formal derivative of σ (x) with respect to x (A similar expression can be found in Reed and Chen (1999), p 276.) The polynomial (x) in (4.4) is an error evaluator polynomial, which is defined as
(x) = σ (x)S(x) mod x 2t d+1. (4.5)Before introducing the first example of RS decoding, an alternative version of the
Berlekamp–Massey algorithm (BMA) is presented, referred to as the Massey algorithm (or
MA) The algorithm was invented by Massey (1969), and is also described in Michelsonand Levesque (1985), Wicker (1995)
Massey algorithm to synthesize a linear feedback shift-register (LFSR)
1 Initialize the algorithm with σ (x) = 1 (the LFSR connection polynomial), ρ(x) = x (the correction term), i = 1 (syndrome sequence counter), = 0 (register length).
2 Get a new syndrome and compute discrepancy:
3 Test discrepancy: d= 0? Yes: Go to 8
4 Modify connection polynomial:
σnew(x) = σ (x) − dρ(x)
5 Test register length: 2 ≥ i? Yes: Go to 7.
6 Change register length and update correction term: Let = i − and ρ(x) = σ (x)/d
7 Update connection polynomial: σ (x) = σnew (x).
8 Update correction term: ρ(x) = xρ(x).
9 Update syndrome sequence counter: i = i + 1.
10 Stopping condition: If i < d go to 2 Else, stop.
Example 4.3.1 Let C be the same RS(7, 3, 5) code as in Example 4.2.1 Suppose that
¯r(x) = αx2+ α5x4
Trang 576 NONBINARY BCH CODES: REED–SOLOMON CODES
is the received polynomial Then S1 = ¯r(1) = α + α5= α6, S2 = ¯r(α) = α3+ α2 = α5, S3 = ¯r(α2) = α5+ α6= α and S4 = ¯r(α3) = 1 + α3= α Equation (3.16) gives:
Three methods of finding σ (x) are shown below.
Direct solution (Peterson–Gorenstein–Zierler (PGZ) algorithm)
Assume two errors Then 2 = α7+ α10= 1 + α3 = α = 0 Therefore, two errors must have occurred and
ρ(x) = σ (x)/d = α5+ α4x, ρ(x) = xρ(x) = α5x + α4x2, σ (x) = σnew (x).
• i = 4: d = S4+2
j=1σ j S4−j = α + α6α + α3α5= 1.
σnew(x) = σ (x) + dρ(x) = 1 + α6x + α3x2+ (1)(α5x + α4x2)
= 1 + αx + α6x2, 2≥ 4
ρ(x) = xρ(x) = α5x2+ α4x3, σ (x) = σnew (x).
• i = 5 > d Stop.
Trang 6To compute the error values, using either the Berlekamp–Massey algorithm (BMA or
MA versions) or the PGZ algorithm, the error evaluator polynomial (4.5) is needed,
Trang 778 NONBINARY BCH CODES: REED–SOLOMON CODES
Therefore, ¯e(x) = αx2+ α5x4and the decoded word is
ˆc(x) = ¯r(x) + ¯e(x) = 0.
The two errors have been corrected.
Note that the constant β is the same for both polynomials found by application of the extended EA The EA finds β · σ (x) and β · (x), for some nonzero constant β ∈ GF(2 m ) Nevertheless, both error locator and error evaluator polynomials have the same roots as
those obtained by the PGZ or BMA algorithms, and thus the error values obtained arethe same
In most of the computer programs to simulate encoding and decoding procedures of RScodes on the ECC web site, the following equivalent method of finding the error values isused (Lin and Costello 2005) Let
z(x) = 1 + (S1 + σ1 )x + (S2 + σ1 S1+ σ2 )x2+ · · · + (s ν + σ1 S ν−1+ · · · + σ ν )x ν (4.6)Then the error value is computed as (Berlekamp 1984)
Trang 8Example 4.3.2 Consider the same RS code and received polynomial in Example 4.3.1 Then
of the error correcting capability, t d , of the RS code.
4.3.1 Remarks on decoding algorithms
Unlike the BMA, all the syndromes in the EA are used in the first computation step
However, in terms of the number of GF(2 m )operations, the BMA is generally more efficientthan the EA On the other hand, all the steps in the EA are identical, which translates into
a more efficient hardware implementation Also, the three decoding methods discussedhere for (binary and nonbinary) BCH codes are examples of incomplete – or boundeddistance – decoding That is, they are able to detect situations in which the number oferrors exceeds the capability of the code
There are other approaches to decoding BCH codes, the most notable being the use of
a discrete Fourier transform over GF(2 m ) This is covered extensively in Blahut (1984),
where the reader is referred to for details Sudan (1997) introduced an algorithm that allowsthe correction of errors beyond the minimum distance of the code It applies to RS codesand more generally to AG codes This algorithm produces a list of code words (it is a list-decoding algorithm) and is based on interpolation and factorization of polynomials over
GF(2 m )and its extensions Sudan algorithm was improved in Guruswami and Sudan (1999)
4.3.2 Errors-and-erasures decoding
For the correction of erasures, the main change to the RS decoding procedures described
above is that an erasure locator polynomial τ (x) needs to be introduced, defined as
where y i = α i , for 1≤ ≤ µ, denotes the position of an erasure.
By definition, the positions of the erasures are known Therefore, only the erasure values
need to be found This can be done, as before, in the Forney algorithm step In computing
Trang 980 NONBINARY BCH CODES: REED–SOLOMON CODESthe syndromes of the received polynomial, it can be shown that any values of the erasurescan be replaced, without any difference in the decoded word.
The decoding procedure is similar to the errors-only RS decoder, with the following
exceptions A modified syndrome polynomial, or modified Forney syndrome, is formed,
T (x) = S(x)τ(x) + 1 mod x 2t d+1. (4.10)
The BMA algorithm can be applied to find σ (x) with the following modifications:
1 The discrepancy is now defined as
1≤ ≤ µ, for the erasure values.
For errors-and-erasures decoding, the EA can also be applied to the modified syndrome
polynomial T (x), using 1 + T (x) instead of S(x) as in errors-only decoding That is, the initial conditions are r0 (x) = x 2t d+1 and r1 (x) = 1 + T (x) The algorithm stops when deg[r j (x)] ≤ (d − 1 + µ)/2 , with ω(x) = r j (x) and σ (x) = b j (x).
Example 4.3.3 Let C be an RS (15, 9, 7) code over GF(24) with zeros {α, α2, , α6}, where α is a primitive element satisfying p(α) = α4+ α3+ 1 = 0 As a reference, a table
of elements of GF(24) as powers of a primitive element α, with α4+ α3+ 1 = 0, is shown below.
Trang 10¯r(x) = α7+ α3x + α13x2+ α14x3+ α7x4+ αx5+ αx6+ α4x7+ α6x8
+ α3x10+ α5x11+ α11x12+ α13x13+ α10x14 Assume that, aided by side information from the receiver, it is determined that the values in positions α0 and α5are unreliable, and thus declared as erasures.
Note that ¯e(x) = α14+ α8x3+ α5x5+ αx12 is the polynomial associated with the errata.1
After reception, besides ¯r(x), the decoder knows that µ = 2 erasures have occurred in positions α0 and α5 Therefore, it computes the erasure locator polynomial
τ (x) = (1 + x)(1 + α5x) = 1 + α10x + α5x2. (4.16)
1 The decoder obviously does not know this, except for the positions of the erasures This polynomial is used
as a reference against which the correctness of the decoding results can be verified.
Trang 1182 NONBINARY BCH CODES: REED–SOLOMON CODES
The syndromes of ¯r(x) are computed as:
BMA for errors-and-erasures correction
• Iteration 0: Initialize σ ( −1) (x) = 1, −1 = 0, d−1 = 1, σ ( 0) (x) = 1, 0 = 0, and
i ≥ 2 Yes : Algorithm ends.
Therefore, σ (x) = 1 + α5x + x2 = (1 + α3x)(1 + α12x) For the last equality, recall that the inverses of the error positions are found, via Chien search, by evaluating σ (x) at all the
Trang 12nonzero elements of GF(24) This gives σ (α12) = 0 and σ (α3) = 0 As a result, the error positions are α−12= α3 and α−3= α12.
From Equation (4.12), the modified errors-and-erasures evaluator is
The values of the errors and erasures are found from (4.14) and (4.15), respectively,
e3= α3(1 + α11+ α5+ α2+ α3) = α3α5= α8,
e12= α12(1 + α2+ α2+ α5+ α12) = α12α4= α,
f0= (1 + α14+ α11+ α11+ 1) = α14,
f5= α5(1 + α9+ α + α11+ α10) = α5, from which it follows that the errata polynomial is
¯e(x) = α14+ α8x3+ α5x5+ αx12 The decoded polynomial ˆ v(x) = ¯r(x) + ¯e(x) is identical to ¯v(x) Two errors and two era- sures have been corrected.
Direct solution of errata values
For small values of the minimum distance of an RS code, the erasure values may be
obtained by solving a set of linear equations Let ¯e(x) be the error polynomial associated with an error pattern resulting from the presence of ν errors and µ erasures,
Example 4.3.4 Direct solution of the errata values for the code in the previous example:
After the BMA and Chien search, the decoder knows that the error polynomial is of the form
¯e(x) = f0 + e3 x3+ f5 x5+ e12 x12.
Trang 1384 NONBINARY BCH CODES: REED–SOLOMON CODES
The errata values can be found by solving the set of linear equations given by (4.20), which can be put in the following matrix form,
4.4 Weight distribution
As mentioned before, RS codes are also MDS codes The weight distribution of MDScodes can be computed exactly with a closed form expression (Lin and Costello 2005;MacWilliams and Sloane 1977):
The number of code words of weight i in an (n, k, d) MDS code over GF(q) is
A i =
n i
P s i (1 − P s ) n −i , (4.23)
where P s denotes the probability of a symbol error at the input of the RS decoder,
P S = 1 − (1 − p) m , and p denotes the probability of a bit error at the input of the RS decoder The probability
of a word error can be upper bounded by (1.33),
P s i (1 − P s ) n −i . (4.24)
2It should be noted that the bound is tight only for bounded distance decoders, such as those based on BMA,
EA or PGZ.
Trang 141 Let C be a Reed–Solomon (7, 3, 5) code with zeros α2, α3, α4, α5, where α is a primitive element of GF(23) satisfying p(α) = α3+ α2+ 1 = 0
(a) Obtain the generator polynomial of C.
(b) Suppose that ¯r(x) = 1 + α3x6 is the received polynomial Without doing anycomputation, what is the closest code polynomial ˆv(x) to ¯r(x)? (Hint: The
minimum distance is 5.)
(c) With the same received polynomial as in part (b), use the direct-solution method
(PGZ decoder) to find the estimated error vector ˆe(x) and the associated mated code word ˆc(x).
esti-2 Let C be a RS (7, 2, 6) code over GF(23).
(a) What are the parameters of the equivalent binary linear code C2 obtained from
C by expressing each element in GF(23)as a binary vector of length 3?
(b) Determine a generator polynomial of C.
(c) Suppose that the received polynomial is
¯r(x) = α4+ α2x + x2+ α5x4,
and is known to contain three erasures in the last three positions Determine themost likely code polynomial
3 Consider a RS (15, 9, 7) code over GF(24) with b= 1
(a) Obtain the generator polynomial of C.
(b) Suppose that the received polynomial is
¯r(x) = α7x3+ α3x6+ α4x12.
Determine the most likely code polynomial ˆv(x)using the BMA
(c) With the same received polynomial as in part (b), and without any computations,what is the closest code polynomial ˆv(x) to ¯r(x)?
4 Let C be an RS (7, 3, 5) code with b= 1 and generator polynomial
¯
g(x) = α3+ αx + x2+ α3x3+ x4 The received vector is ¯r(x) = α3x2+ x4+ x6 The position α3has been erased Findthe most likely code polynomial using the BMA
5 A RS (31, 25) code with b= 1 is used in a system The received polynomial is
¯r(x) = α3x + α6x2+ α6x4+ x5+ α23x6.
Using the BMA, determine the most likely code polynomial