3.1.5 Shortened cyclic codes and CRC codes There are many practical applications in which an error correcting code with simple ing and decoding procedures is desired, but existing constr
Trang 144 BINARY CYCLIC CODES AND BCH CODES
D flip-flops XOR
n-k n-k+1 n-1 1
2
1 2
= v , v , , v
Figure 3.2 Circuit for systematic encoding: division by ¯g(x)
3.1.5 Shortened cyclic codes and CRC codes
There are many practical applications in which an error correcting code with simple ing and decoding procedures is desired, but existing constructions do not give the desiredlength, dimension and minimum distance
encod-The following text is from an email sent to the author:
We plan to use a simple FEC/ECC scheme to detect/correct single-bit errors
in a 64-bit data block The objective is to find or choose an ECC scheme tocorrect single-bit errors with up to 8 bits of overhead, giving a maximum of
72 bits (64 data bits plus 8 redundant bits) in total
Naturally, since 72 is not of the form 2m− 1, none of the cyclic codes studied so far can
be applied directly One possible solution is to use a cyclic Hamming (127, 120, 3) code and to shorten it until a dimension k = 64 is reached This yields a shortened Hamming ( 71, 64, 3) code.2
Shortening is accomplished by not using all the information bits of a code Let s denote the number of information bits not used, referred to as the shortening depth Let C denote
a cyclic (n, k, d) code A shortened message is obtained by fixing s (arbitrary) message positions to zero This leaves k − s positions available for the message bits Without loss
of generality, let the highest positions in a message be set to zero Then
Trang 2single-error-correcting/double-error-BINARY CYCLIC CODES AND BCH CODES 45
Example 3.1.6 Let C denote the cyclic Hamming (7, 4, 3) code with generator polynomial
¯
g(x) = 1 + x + x3 A new code is derived from C by sending 2 leading zeros followed by two information bits and the same three redundant bits computed by an encoder in C This process gives a set of code words that forms a shortened linear (5, 2, 3) code.
The fundamental property of a shortened code C s obtained from a cyclic code is that,although the code is generally no longer cyclic, the same encoder and decoder can be used,after the leading zeros are properly taken into account In computer simulations, it is easy
to simply pad the code words with zeros followed by the code word in C s and use thesame encoding and decoding algorithms discussed in the book This method is widely used
in hardware implementations of Reed–Solomon decoders Alternatively, the leading zeros
in a message do not need to be included in the code word Instead, the decoder circuit
is modified to multiply the incoming received polynomial ¯r(x) by x n −k+s modulo ¯g(x),
instead of x n −k modulo ¯g(x) in the conventional decoder More details on the modifiedencoder and decoder structures for a shortened cyclic code can be found in Lin and Costello(2005), Peterson and Weldon (1972), Wicker (1995), among other references
Another possible solution is to try to construct other classes of cyclic codes with thedesired parameters Good families of cyclic codes not covered in the text are Euclideangeometry (EG) and projective geometry (PG) codes (Lin and Costello 2005).3
Yet another possibility is to use a nonbinary cyclic code, such as the Reed–Solomon
code discussed in Chapter 4, and to express it in terms of bits This binary image of aReed–Solomon (RS) code will have the additional feature of being able to correct manybursts of errors Binary images of shortened RS codes have found numerous applications,including memory devices
CRC codes
One of the most popular forms of ECC are the cyclic redundancy check codes, or CRC
codes These cyclic codes are used to detect errors in blocks of data CRC codes are cyclic
codes of length n≤ 2m− 1 Typically, CRC codes have generator polynomials of the form
(1+ x) ¯g(x), where ¯g(x) is the generator polynomial of a cyclic Hamming code Common values of m are 12, 16 and 32 The choice of the generator polynomials is dictated by the undetected error probability, which depends on the weight distribution of the code.
The computation of the undetected error probability of a cyclic code is tantamount todetermining its weight distribution This has remained an elusive task, even after 50 years
of coding theory, with some progress reported in Fujiwara et al (1985), Kazakov (2001)
and references therein Table 3.1 shows a list of the most popular generator polynomials of
Trang 346 BINARY CYCLIC CODES AND BCH CODES
Table 3.1 Generator polynomials of some CRC codes
p(x) divides (x e + 1) (This is called exponent in Peterson and Weldon (1972) and period
in Lin and Costello (2005).) The dimension is k = LCM(e, 2b − 10) − (2b − 1) − c Note that the parity-check bits associated with the polynomial (x 2b−1 + 1) are interleaved and evenly spaced at every 2b − 1 positions Therefore, at most b − 1 successive parity-check bits are affected by bursts of length up to b This fact, together with the polynomial ¯ p(x),
is sufficient to determine the location of the error burst Decoding is accomplished by anerror-trapping decoder (Kasami 1964) that is similar in structure to the Meggit decoderpresented in the next section For more details, see Section 11.3 of Peterson and Weldon(1972) and Section 20.3.1 of Lin and Costello (2005)
Example 3.1.7 Let b = 4 and c = 4 Choose ¯p(x) = x4+ x + 1 with e = 15 The length and dimension of this Fire code are n = LCM(15, 7) = 105 and k = 105 − 7 − 4 = 94, respectively In other words, a Fire (105, 94) code capable of correcting any single burst of four or less errors has generator polynomial
¯
g(x) = (x7+ 1)(x4+ x + 1) = x11+ x8+ x7+ x4+ x + 1.
Let ¯r(x) = ¯v(x) + ¯e(x), where ¯e(x) is the error polynomial associated with an error tor produced after transmission over a BSC channel Then the syndrome polynomial is
vec-defined as
¯s(x) = ¯r(x) mod ¯g(x) = ¯e(x) mod ¯g(x) (3.8)Figure 3.3 shows the general architecture of a decoder for cyclic codes The syndrome
polynomial ¯s(x) is used to determine the error polynomial ¯e(x) Since a cyclic code is first
of all a linear code, this architecture can be thought of as a “standard array approach” tothe decoding of cyclic codes
The decoding problem amounts to finding the (unknown) error polynomial ¯e(x) from the (known) syndrome polynomial ¯s(x) These two polynomials are related by equation (3.8), which is the basis of a syndrome decoder (also referred to as a Meggit decoder (Meggit 1960)) for cyclic codes A related decoder is the error-trapping decoder (Kasami 1964), which checks if the error polynomial ¯e(x) is contained (“trapped”) in the syndrome polynomial ¯s(x) Only a limited number of classes of codes have relatively simple
Trang 4BINARY CYCLIC CODES AND BCH CODES 47
n-stage register
s(x) s(x) = r(x) mod g(x)
e(x)
Figure 3.3 General architecture of a decoder for cyclic codes
decoders, for example, cyclic Hamming and Golay codes As the error-correcting
capa-bility t = [(dmin− 1)/2] increases, however, the complexity of an architecture based only
on the detection of errors with combinatorial logic becomes too large
Suppose that an error in the position corresponding to x n−1 (the first received bit)
occurs In other words,
received position and, if the pattern x n−1mod ¯g(x)is detected, that position is corrected.
Example 3.2.1 In this example, the decoding of a cyclic (7, 4, 3) Hamming code is
illus-trated For this code,
¯
g(x) = x3+ x + 1.
The syndrome decoding circuit is shown in Figure 3.4 The received bits are stored in a shift register and at the same time fed to a divide-by- ¯ g(x) circuit After all the seven bits have been received, the shift register contents are shifted one at a time, and a combinatorial gate checks if the syndrome polynomial x6mod(1 + x + x3) = 1 + x2, or (101) in binary vector notation is present in the shift register when the output of the gate is equal to one, and the error is at the position x6 and is corrected At the same time, the error is fed back
to the divide-by- ¯ g(x) circuit to bring all the contents of the register equal to zeros, upon successful completion of decoding This also allows detection of any anomalies at the end
of the decoding process, by checking that the contents of the shift register are not all equal
to zero.
Attention is now focused on cyclic codes with large error-correcting capabilities, forwhich the decoding problem can be treated as that of solving sets of equations Because of
this, the notion of a field, a set in which one can multiply, add and find inverses, is required.
Cyclic codes have a rich algebraic structure It will be shown later that powerful decodingalgorithms can be implemented efficiently when the roots of the generator polynomial are
invoked and arithmetic over a finite field is used.
Trang 548 BINARY CYCLIC CODES AND BCH CODES
Figure 3.4 Syndrome decoder for a binary cyclic Hamming (7,4) code
Recall that the generator polynomial is the product of binary irreducible polynomials:
¯
j ∈J ⊂{1,2, ,}
φ j (x).
The algebraic structure of cyclic codes enables one to find the factors (roots) of each φ j (x)
in a splitting field (also known as extension field) In the case of interest, that is, when the underlying symbols are bits, the splitting field becomes a Galois field.4 Some authors refer
to Galois fields as finite fields The standard notation that will be used in the text is GF(q), where q= 2m (Although, in general, q can be the power of any prime number.)
Example 3.2.2 In this example, the reader is reminded that the concept of splitting field is
very familiar Consider the field of real numbers Over this field, it is well known that the nomial x2+ 1 is irreducible However, over the complex field, it splits into (x + i)(x − i), where i=√−1 Thus the complex field is the splitting field of the real field!
poly-3.2.1 GF(2m) arithmetic
It can be shown, with basic abstract algebra concepts (Lin and Costello 2005; Peterson and
Weldon 1972), that in the field of binary numbers any polynomial of degree m can be split over GF(2 m ) For the purposes of this book, it is sufficient to learn basic computational aspects offinite fields Serious readers are urged to study a good textbook on abstract algebra.5
Decoding with GF(2 m ) arithmetic allows replacement of complex combinatorial cuits with practical processor architectures that can solve Equation (3.8) as a set of linearequations In the following text, the necessary tools to solve equations involved in decoding
cir-of cyclic codes are introduced
Important properties of GF(2 m )
The field GF(2 m )is isomorphic (with respect to “+”) to the linear space{0, 1} m In other
words, for every element β ∈ GF(2 m ) , there exists a unique m-dimensional binary vector
¯
v β ∈ {0, 1} m
4 After the famous French mathematician Evariste Galois (1811-1832).
5 The author likes Herstein (1975).
Trang 6BINARY CYCLIC CODES AND BCH CODES 49
There is a primitive element α ∈ GF(2 m ) , such that every nonzero element β in GF(2 m ) can be expressed as β = α j, 0≤ j ≤ 2 m − 2 This element α is the root of an irreducible polynomial, called a primitive polynomial, p(x) over {0, 1}, that is, p(α) = 0 A primitive element α of the field GF(2 m ) satisfies the equation α2m−1= 1, and n = 2 m− 1 is the
smallest positive integer such that α n= 1
Example 3.2.3 Let α be a primitive element of GF(23) such that p(α) = α3+ α + 1 = 0 and α7 = 1 The table below shows three different ways to express, or represent, elements
When adding elements in GF(2 m ), the vector representation is the most useful, because
a simple exclusive -or operation is needed However, when elements are to be multiplied,the power representation is the most efficient Using the power representation, a multipli-cation becomes simply an addition modulo 2m− 1 The polynomial representation may beappropriate when making operations modulo a polynomial An example of the need of thispolynomial representation was seen in the discussion of shortened cyclic codes, where the
value of x n−1mod ¯g(x)was required.
In the power representation, because α2m−1= 1 holds, note that α2m = αα2m−1= α,
α2m+1= α2α2m−1= α2, and so on This is to say that the powers of α are to be computed
modulo 2m − 1 Applying the same argument shows that α−1= α−1+2m−1= α2m−2 In
Example 3.2.3 above, α−1= α23−2= α6 In general, the inverse β−1= α k of an element
β = α is found by determining the integer k, 0 ≤ k < 2 m − 1 such that α +k = 1, which
can be expressed as + k = 0 mod (2 m − 1) Therefore, = 2 m − 1 − k Also, in the polynomial representation, the equation p(α)= 0 is used to reduce the expressions In
Example 3.2.3, α3= α3+ 0 = α3+ (α3+ α + 1) = α + 1.
Log and antilog tables
A convenient way to perform both multiplications and additions in GF(2 m )is to use twolook-up tables, with different interpretations of the address This allows one to changebetween polynomial (vector) representation and power representation of an element of
GF(2 m )
The antilog table A(i) is useful when performing additions The table gives the value of
a binary vector, represented as an integer in natural representation, A(i), that corresponds
to the element α i The log table L(i) is used when performing multiplications This table
Trang 750 BINARY CYCLIC CODES AND BCH CODES
gives the value of a power of alpha, α L(i), that corresponds to the binary vector represented
by the integer i The following equality holds:
Address GF(2 m )-to-vector Vector-to-GF(2 m )
i Antilog table, A(i) Log table, L(i)
On the other hand, using the log and antilog tables, the computation of γ proceeds as follows:
γ = A(L(A(3) ⊕ A(5)) ∗ 3 + 1)
= A(L(3 ⊕ 7) ∗ 3 + 1)
= A(L(4) ∗ 3 + 1) = A(2 ∗ 3 + 1) = A(7) = (A(0) = 1).
In the last step, use was made of the fact that α7= 1.
Antilog and log tables are used in performing addition and multiplication over GF(2 m ).Computer programs are available on the ECC web site for simulating encoding and decoding
algorithms of BCH and Reed–Solomon codes, with arithmetic in GF(2 m ) These algorithmsare described in the subsequent sections
More properties of GF(2 m )
The minimal polynomial φ i (x) of an element α i is the smallest degree polynomial that has
α i as a root The following properties regarding minimal polynomials can be shown The
minimal polynomial φ (x) has binary coefficients and is irreducible over GF(2) = {0, 1}.
Trang 8BINARY CYCLIC CODES AND BCH CODES 51
Moreover, φ i (x) has roots α i , α 2i , , α2κ−1i
, where κ divides m These elements are known as the conjugate elements of α i in GF(2 m ) The powers of the conjugate elements
form a cyclotomic coset (see MacWilliams and Sloane (1977), p 104, and (von zur Gathen
and Gerhard 1999), p 391):
C i
= {i, 2i, 4i, , 2 κ−1i }.
Cyclotomic cosets (also called cycle sets in Peterson and Weldon (1972), p 209) havethe property that they partition the set I2m−1 of integers modulo 2m− 1 In other words,
cyclotomic cosets are disjoint, that is, their intersection is the empty set C i ∩ C j = ∅, i = j,
and the union of all cyclotomic cosets
The primitive element α of GF(2 m ) satisfies the equation α2m−1= 1, and all elements can
be expressed as powers of α From this it follows that the polynomial (x2m−1+ 1) factors
over the binary field as
The order n i of an element β = α i of GF(2 m )is the smallest positive integer such that
β n i = 1 The order n i of every element in GF(2 m )divides 2m− 1
Importantly, the degree of a minimal polynomial φ i (x)is equal to the cardinality ber of elements) of the cyclotomic cosetC i,
(num-deg [φ i (x)]= |C i |.
This suggests the following method for finding all factors of (x2m−1+ 1):
1 Generate the cyclotomic cosets modulo 2m− 1
2 For each cyclotomic cosetC s , compute the minimal polynomial φ s (x)as the product
of linear factors (x − α i s ) , where i s ∈ C s,
φ s (x)=
i s ∈C s
This method can be used in computing the generator polynomial of any cyclic code of length
n= 2m− 1 It is used in the computer simulation programs for BCH codes available onthe ECC web site, to compute the generator polynomial given the zeros of the code
Trang 952 BINARY CYCLIC CODES AND BCH CODES
Example 3.2.6 Consider GF(23) with p(x) = x3+ x + 1 The roots of each of the factors
of the polynomial x7+ 1 are shown in the following table The reader is invited to verify that in fact the products of the linear factors in (3.10) give the resulting binary polynomials.
C s Conjugate elements Minimal polynomial, φ s (x)
C1 = {1, 2, 4} α,α2,α4 φ1(x) = x3+ x + 1
C3 = {3, 6, 5} α3,α6,α5 φ3(x) = x3+ x2+ 1
BCH codes are cyclic codes that are constructed by specifying their zeros, that is, the roots
of their generator polynomials:
A BCH code of d min ≥ 2t d + 1 is a cyclic code whose generator polynomial
¯
g(x) has 2t d consecutive roots α b , α b+1, α b +2t d−1.
Therefore, a binary BCH (n, k, dmin)code has a generator polynomial
¯
g(x) = LCM{φ b (x), φ b+1(x), , φ b +2t d−1(x) }, length n = LCM{n b , n b+1, , n b +2t d−1}, and dimension k = n − deg[ ¯g(x)] A binary BCH code has a designed minimum distance equal to 2t d + 1 However, it should be notedthat its true minimum distance may be larger
Example 3.3.1 With GF(23), p(x) = x3+ x + 1, t d = 1 and b = 1, the polynomial
¯
g(x) = LCM{φ1(x), φ2(x) } = x3+ x + 1, generates a binary BCH (7,4,3) code (This is actually a binary cyclic Hamming code!) Note that the Hamming weight of ¯ g(x) is equal to 3, so that – in this case, but not always – the designed distance is equal to the true minimum distance of the code.
Example 3.3.2 Consider GF(24), p(x) = x4+ x + 1, with t d = 2 and b = 1 Then
¯
g(x) = LCM{φ1(x), φ3(x)}
= (x4+ x + 1)(x4+ x3+ x2+ x + 1)
= x8+ x7+ x6+ x4+ 1
generates a double-error-correcting binary BCH (15,7,5) code.
Example 3.3.3 With GF(24), p(x) = x4+ x + 1, t d = 3 and b = 1, the polynomial
¯
g(x) = LCM{φ1(x), φ3(x)φ5(x)}
= (x4+ x + 1)(x4+ x3+ x2+ x + 1) (x2+ x + 1)
= x10+ x8+ x5+ x4+ x2+ x + 1 generates a triple-error-correcting binary BCH (15,5,7) code.
Trang 10BINARY CYCLIC CODES AND BCH CODES 53
3.3.1 BCH bound
A lower bound on the minimum distance of a BCH code, known as the BCH bound, is
derived next This is useful not only to estimate the error-correcting capabilities of cycliccodes in general, but also to point out particular features of BCH codes Note that the
elements α b , α b+1, , α b +2t d−1are roots of the generator polynomial ¯g(x), and that every
code word ¯vin the BCH code is associated with a polynomial ¯v(x), which is a multiple of
This matrix H has the characteristic that every 2t d × 2t d submatrix (formed by an arbitrary
set of 2t d columns of H ) is a Vandermonde matrix (see, e.g., von zur Gathen and Gerhard (1999), p 95) Therefore (see Section 2.1), any 2t d columns of H are linearly independent, from which it follows that the minimum distance of the code is d ≥ 2t d+ 1 (Petersonand Weldon (1972) p 270, MacWilliams and Sloane (1977) p 201, and Lin and Costello(2005) p 149.) Another interpretation of the results above is the following:
BCH bound If the generator polynomial ¯g(x) of a cyclic (n, k, d) code has consecutive roots, say α b , α b+1, , α b +−1 , then d ≥ 2 + 1.
The important class of cyclic polynomial codes includes cyclic RM codes, BCH and
Reed–Solomon codes, and finite-geometry codes (Kasami et al 1968; Lin and Costello
2005; Peterson and Weldon 1972) Polynomial codes are also specified by setting conditions
on their zeros:
Let α be a primitive element of GF(2 ms ) Let s be a positive integer, and b a divisor of
2s − 1 Then α h is a root of the generator polynomial g(x) of a µ-th order polynomial code
if and only if b divides h and
min
0≤<sW2s (h2
) = jb, with 0 < j < m
b − µ,
Trang 1154 BINARY CYCLIC CODES AND BCH CODES
where for an integer i, i=m−1
=0 i 2s , W2s (i) is defined as the2s -ary weight of integer i,
According to this definition, both BCH and Reed–Solomon codes are polynomial codes
with b = m = 1 Reed–Muller codes are subcodes of polynomial codes with s = 1 geometry codes (Lin and Costello (2005), Chapter 8) occur as dual codes of polynomial codes Peterson and Weldon (1972) Below, following Lin and Costello (2005), the specifi-
Finite-cations of the zeros of finite-geometry codes are presented
Euclidean geometry (EG) codes
Let α be a primitive element of GF(2 ms ) Let h be a nonnegative integer less than2ms − 1 Then α h is a root of the generator polynomial g(x) of a (µ, s)-order EG code of length
For s= 1, EG codes become cyclic RM
m,µ codes, and therefore EG codes are regarded
as generalized RM codes
Projective geometry (PG) codes
Let α be a primitive element of GF(2 (m +1)s ) Let h be a nonnegative integer less than
2(m +1)s − 1 Then α h is a root of the generator polynomial g(x) of a (µ, s)-order PG code
of length n = (2 m s − 1)/(2 s − 1) if and only if h is divisible by 2 s − 1 and
0 < max
0≤<sW2s (h
() ) ≤ j (2 s − 1),
where h ()= 2 hmodulo 2ms − 1, and 0 ≤ j ≤ m − u.
The main idea in decoding binary BCH codes is to use the elements β ∈ GF(2 m ) to
number the positions of a code word (or, equivalently, the order of the coefficients
of the associated polynomial) This numbering is illustrated in Figure 3.5 for a vector
values positions
Figure 3.5 Code word position numbering using elements of GF(2 m )
Trang 12BINARY CYCLIC CODES AND BCH CODES 55
Using GF(2 m )arithmetic, the positions of the errors can be found by solving a set of
equations These equations can be obtained from the error polynomial ¯e(x) and the zeros
of the code, α j , for b ≤ j ≤ b + 2t d− 1, as shown in the following
Let ¯r(x) = ¯v(x) + ¯e(x) represent the polynomial associated with a received code word, where the error polynomial is defined as
¯e(x) = e j1x j1 + e j2x j2+ · · · + e j ν x j ν , (3.14)
and ν ≤ t d is the number of errors The sets{e j1, e j2, , e j ν }, and {α j1, α j2, , α j ν} are
known as the error values and error positions, respectively, where e j ∈ {0, 1} for binary
and are equivalent to ¯s = H ¯r, with H given by (3.13).
Let the error-locator polynomial be defined as
Solving the key equation given by (3.16) constitutes the most computationally intensive
operation in decoding BCH codes Common methods to solve the key equation are:
1 Berlekamp–Massey algorithm (BMA)
The BMA was invented by Berlekamp (1984), Massey (1969) This is a ally efficient method to solve the key equation, in terms of the number of operations
computation-in GF(2 m ) The BMA is a popular choice to simulate or implement BCH and RSdecoders in software
2 Euclidean algorithm (EA)
This is a method to solve the key equation in polynomial form, introduced in
Sugiyama et al (1975) and further studied in Mandelbaum (1977) Owing to its
regular structure, the EA is widely used in hardware implementations of BCH and
RS decoders
6It will be seen later that for Reed–Solomon codes e ∈ GF(2 m ).
Trang 1356 BINARY CYCLIC CODES AND BCH CODES
3 Direct solution
Proposed first by Peterson (1974), this method directly finds the coefficients of
σ (x) , by solving (3.16) as a set of linear equations The term PGZ son–Gorenstein–Zierler) decoder is often used in the literature because in Gorenstein
(Peter-and Zierler (1961), Peterson’s method is applied in decoding nonbinary BCH codes(Reed–Solomon codes) Naturally, as the complexity of inverting a matrix growswith the cube of the error-correcting capability, the direct solution method works
only for small values of t d Solutions to (3.16) up to t d ≤ 6 are given in Michelsonand Levesque (1985), Section 5.3
3.5.1 General decoding algorithm for BCH codes
Figure 3.6 shows the block diagram of a decoder for BCH codes (both binary and nary) The decoder consists of digital circuits and processing elements to accomplish thefollowing tasks:
nonbi-• Compute the syndromes,7 by evaluating the received polynomial at the zeros of thecode
S i = ¯r(α i ), i = b, b + 1, , b + 2t d − 1. (3.17)
• Find the coefficients of the error-locator polynomial σ (x).
• Find the inverses of the roots of σ (x), that is, the locations of the errors, α j1, , α j ν
• Find the values of the errors e j1, , e j ν (Not needed for binary codes.)
• Correct the received word with the error locations and values found.
One of the advantages gained in introducing GF(2 m ) arithmetic is that the decodingoperations can be implemented with relatively simple circuitry and processing elements As
an example, Figure 3.7 shows how the computation of a syndrome S j can be implemented
in hardware The multiplier is over GF(2 m ), and can be constructed with relatively simplecombinatorial logic Some details on the hardware design of processing elements over
GF(2 m )can be found, for example, in Peterson and Weldon (1972), and Chapters 5 and 10
of Wicker and Bhargava (1994)
Find positions
Figure 3.6 Architecture of a BCH decoder with GF(2 m )arithmetic
7For binary BCH codes, it holds that S = S2 , which is useful in reducing the number of computations.
... d − 1. (3. 17)• Find the coefficients of the error- locator polynomial σ (x).
• Find the inverses of the roots of σ (x), that is, the locations of the errors, α j1,... )arithmetic, the positions of the errors can be found by solving a set of
equations These equations can be obtained from the error polynomial ¯e(x) and the zeros
of the code,... method is applied in decoding nonbinary BCH codes(Reed–Solomon codes) Naturally, as the complexity of inverting a matrix growswith the cube of the error- correcting capability, the direct solution