• 沒有找到結果。

A simple step-by-step decoding of binary BCH codes

N/A
N/A
Protected

Academic year: 2022

Share "A simple step-by-step decoding of binary BCH codes"

Copied!
4
0
0

加載中.... (立即查看全文)

全文

(1)

2236

IEICE TRANS. FUNDAMENTALS, VOL.E88–A, NO.8 AUGUST 2005

LETTER

A Simple Step-by-Step Decoding of Binary BCH Codes

Ching-Lung CHR †a) , Szu-Lin SU , Members, and Shao-Wei WU , Nonmember

SUMMARY In this letter, we propose a simplified step-by-step decod- ing algorithm for t-error-correcting binary Bose-Chaudhuri- Hocquenghem (BCH) codes based on logical analysis. Compared to the conventional step- by-step decoding algorithm, the computation complexity of this decoder is much less, since it significantly reduces the matrix calculation and the op- erations of multiplication.

key words: BCH code, step-by-step decoding, matrix computation, com- putational complexity

1. Introduction

Among the most well-known error-correcting codes, the Bose-Chaudhuri-Hocquenghem (BCH) codes are a class of powerful random-error-correcting cyclic codes [1]–[3]. The popular binary BCH decoder architecture can be summa- rized into three steps: a) Calculate the syndromes from the received codeword. b) Compute the error locator polyno- mial. c) Find the error location, and then correct errors.

There is another decoding method, called the step-by- step decoding algorithm [4], can decode a cyclic code in a serial manner with a low hardware complexity. The method can directly determine whether any bit in received word is correct or not without finding the error-location polynomial.

Since the requirement for calculation of the determinant of the syndrome matrix, the conventional step-by-step decod- ing algorithm has not been widely employed for BCH codes with large error-correcting capability. To reduce the num- ber of matrix-calculations, [6] proposed a low-complexity step-by-step decoding algorithm for t-error-correcting bi- nary BCH codes. However, it is not the most simplified decoder.

This letter presents a novel step-by-step decoding al- gorithm for t-error-correcting binary BCH codes. Based on logical analysis, the determination whether a received bit is erroneous in the method as proposed in [6] can be further simplified into a simple equation. The novel decoder signif- icantly reduces the matrix calculations and the operations of multiplication compared with the algorithms in [5], [6].

2. Decoding Algorithm

An (n, k) t-error-correcting binary BCH code of block length Manuscript received November 17, 2004.

Manuscript revised March 9, 2005.

Final manuscript received May 6, 2005.

The authors are with the Department of Electrical Engineer- ing, National Cheng Kung University, Tainan 701, Taiwan, R.O.C.

a) E-mail: [email protected] DOI: 10.1093/ietfec/e88–a.8.2236

n = 2

m

− 1 can be defined in terms of the roots of its gen- erator polynomial. Let α be a primitive element in the Ga- lois field GF(2

m

), where m is an integer with m  3. Then the generator polynomial g(x) of the code is the lowest de- gree polynomial over GF(2), which has α, α 2 , α 3 , · · · , α 2t as its roots. Let Φ 1 (x) , Φ 3 (x) , · · · , Φ 2t−1 (x) be the distinct min- imum polynomials of α, α 3 , · · · , α 2t−1 , respectively. Then, g(x) is given by g(x) = LCM [Φ 1 (x) , Φ 3 (x) , · · · , Φ 2t−1 (x)].

Now let v(x), e(x) and r(x) be a systematic codeword, the error polynomial and the received polynomial, respectively, and so these polynomials related by the expression r(x) = v(x) + e(x). The weight of the error pattern e(x) would be the number of errors in the received codeword r(x). The syndromes can be calculated by S

i

= r(α

i

) = e(α

i

), for i = 1, 2, · · · , 2t.

The principle of the conventional step-by-step decod- ing algorithm is that it involves changing the received bits one at a time by testing to determine whether the number of errors is reduced. For 1  v  t, the v × v syndrome matrix is defined as

L v =

 





S 1 1 0 · · · 0

S 3 S 2 S 1 · · · 0 ... ... ... ... ...

S 2 v−1 S 2 v−2 S 2 v−3 · · · S v

 





. (1)

The relationship between the syndrome matrices and the number of errors in r(x) can be given by theorem 9.11 in [1]. The theorem is rewritten as follows:

Theorem 1: For any binary BCH code and any v such that 1  v  t, the v×v syndrome matrix L v is singular if the num- ber of errors is v-1 or less, and is nonsingular if the number of errors is v or v+1.

Using the theorem, the number of errors in r(x) can be determined from the values of the determinants of the syndrome matrices det(L v ), v = 1, 2, · · · , t. For instance, if det(L 1 )  0, det(L 2 )  0, and det(L v ) = 0, for v = 3, 4, · · · , t, then two errors have occurred. Thus, in order to acquire the number of errors, the step-by-step decoding algorithm is concerned whether the values of det(L v ) , v = 1, 2, · · · , t, equal to zero, and a decision vector l composed of decision bits l v , is defined as [5]

l = (l 1 , l 2 , · · · , l

t

), (2)

where l v = 0 if det(L v ) = 0 and l v = 1 if det(L v )  0.

Copyright c  2005 The Institute of Electronics, Information and Communication Engineers

(2)

LETTER

2237 Table 1 The possible various cases of e

p

for t = 3.

If the received word r(x) is modified by changing tem- porarily a selected bit at position x

p

, 0  p  n − 1, then the modified decision vector l ¯p can also be defined as

l ¯p = (l ¯1 , l ¯2 , · · · , l ¯t ) , (3) where the subscript “ ¯p” in l ¯p indicates that the magnitude of the x

p

position of the error pattern e(x) is temporarily changed. Whether the bit at position x

p

of r(x) is erroneous can be determined from the difference between l and l ¯p .

Using logical analysis, a novel step-by-step decoding algorithm for t-error-correcting binary BCH codes is pro- posed as follows. The logical analysis is based on the fact that only 2t+1 cases are possible when we want to deter- mine the value at the x

p

position of the error pattern e, e = (e 0 , e 1 , · · · , e

n

−1 ), for a t-error-correcting binary BCH code. For example, for a binary (15, 5) BCH code (t = 3), all seven possible cases of e

p

are expressed in Table 1 and described as below:

1. If no error occurs, then the value of e

p

must be correct, i.e., e

p

= 0.

2. If one error occurs, then the value of e

p

can be erro- neous or correct, i.e., e

p

= 1 or e

p

= 0.

3. If two errors occur, then the value of e

p

can be erro- neous or correct, i.e., e

p

= 1 or e

p

= 0.

4. If three errors occur, then the value of e

p

can be erro- neous or correct, i.e., e

p

= 1 or e

p

= 0.

Theorem 2: For a t-error-correcting binary BCH code, if v (1  v  t) errors occur, then the estimated error value at position p (0  p  n − 1) of the error pattern can be given by

ˆe

p

(t) = ¯l v, ¯p , f or 1  v  t (4)

Proof:

Case t = 1: Let v be the number of errors, and e

p

(1) be the value at the x

p

position of the error pattern. There are three possible cases apply in determining the value of e

p

(1), as shown in row 2 of Table 2. v ¯p and l 1, ¯p indicates the weight of the error pattern and the decision bit for changing the re- ceived digit r

p

, respectively. Row 4 is the decision bit l 1, ¯p . If no error occurs (v ¯p = 0), det(L 1 , ¯p = 0), then l 1 , ¯p = 0. If one error occurs ( v ¯p = 1), det(L 1, ¯p  0), then l 1, ¯p = 1. If two errors occur (v ¯p = 2), det(L 1 , ¯p  0), then l 1 , ¯p = 1. It is easy to see that ˆe

p

(1) = ¯l 1, ¯p .

Case t  2: Only 2t+1 possible cases when we determine the value of position x

p

of the error pattern, as shown in row 2 of Table 3. As the case of t = 1, the decision bits, l 2 , ¯p , l 3 , ¯p , · · · , and l

t

, ¯p in Table 3 can be determined by The- orem 1. It is easy to see that all 2t+1 possible estimated

Table 2 The logic analysis in Theorem 2 for t = 1.

Table 3 The logic analysis in Theorem 2 for t ≥ 2.

values of e

p

(t), as shown in row 7, 10 and 12 of Table 3, are equal to ¯l v, ¯p . Hence, in a similar way, we can get

ˆe

p

(t) = ¯l v, ¯p , for 2  v  t

Q.E.D.

The matrix calculations and the operations of multipli- cation needed for the algorithms in [5], [6] and the proposed algorithm are given in Table 4. Since the probability of a large number of errors is small, only a low-scale matrix cal- culation is needed in the decoder. Therefore, the proposed algorithm significantly reduces the matrix calculations and the operations of multiplication.

According to Theorem 2, the novel step-by-step decod- ing procedure can be presented as follows:

1. Determine the number of errors v. Detect consecu- tively det(L

t

), det(L

t

−1 ), · · · , until a nonzero determi- nant is found [1]. Then the number of errors is v.

2. Let p = n - 1.

3. Change the magnitude at position p of r(x) temporar- ily and determine the modified syndromes S

i

, ¯p (i = 1 , 2, · · · , 2t; n − k  p  n − 1).

4. Estimate the error value ˆe

p

(t) = ¯l v, ¯p . 5. Send the output bit ˆr

p

= r

p

+ ˆe

p

(t).

6. Let p = p-1. If p = n-k-1 or all v errors have been found,

then this decoding algorithm is completed. Otherwise,

(3)

2238

IEICE TRANS. FUNDAMENTALS, VOL.E88–A, NO.8 AUGUST 2005

Table 4 The matrix calculations and multiplications of the estimated er- ror value for t = 3.

go to step 3.

3. Decoder Architecture

Based on the above step-by-step decoding algorithm, a hard- ware structure of the decoder is presented. Figure 1 shows the functional block diagram of the decoder. It consists of four parts:

1. n-stage buffer register: The buffer register is used to store the received vector and to correct received vector bit by bit.

2. Syndrome generator: The syndrome generator is used to obtain the original syndromes S

i

(i = 1, 2, 3, · · · , 2t) and the temporarily changed syndromes S

i

, ¯p (i = 1, 2, 3, · · · , 2t; n − k  p  n − 1).

3. Error-number calculator: The error-number calculator is used to calculate the determinants det(L v ), 1  v  t, and then determine the number of errors v.

Fig. 1 Functional block diagram of the binary step by step decoder.

4. Error-corrector: The error-corrector is used to estimate the error value ˆe

p

(t) = ¯l v, ¯p . If the corresponding bit is judged to be an erroneous bit, the decoder sends a correcting bit ˆe

p

(t) = 1 to change its magnitude.

4. Example of Decoding of Binary (15, 5) BCH Code Let α be a primitive element of GF(2 4 ), satisfying α 4 + α + 1 = 0. The generator polynomial of the binary (15, 5) BCH code is defined as the least common multiple of the minimal polynomials of 1, α, α 2 , · · · , and α 6 . Assume c(x) = 0 and e(x) = x 3 + x 14 are the codeword and the error polynomial, respectively. There are two errors in the received polyno- mial r(x). The initial syndromes are

S 1 = 1, S 2 = 1, S 3 = α 8 , S 4 = 1, S 5 = α 5 , S 5 = α 1 . Detect consecutively det(L

t

):

Since

det(L 3 ) = 

 

S 1 1 0

S 3 S 2 S 1 S 5 S 4 S 3

 

 = 0 (5)

and

det(L 2 ) = 

 S 1 1 S 3 S 2

  = α 2  0, (6) so l 3 = 0 and l 2 = 1.

Then, we confirm that two errors (v = 2) occur and the esti- mated error value of e

p

(3) is

ˆe

p

(3) = ¯l 2 , ¯p .

For 10  p  14, the temporarily changed syndrome values can be given by

S

i

, ¯p = S

i

+ α

ip

.

Then,

(4)

LETTER

2239

S 1, ¯ 14 = α 3 , S 1, ¯ 13 = α 6 , S 1, ¯ 12 = α 11 , S 1, ¯ 11 = α 12 , S 1, ¯ 10 = α 5 , S 2 , ¯ 14 = α 6 , S 2 , ¯ 13 = α 12 , S 2 , ¯ 12 = α 7 , S 2 , ¯ 11 = α 9 , S 2 , ¯ 10 = α 10 , S 3, ¯ 14 = α 9 , S 3, ¯ 13 = α 12 , S 3, ¯ 12 = α 14 , S 3, ¯ 11 = α 13 , S 3, ¯ 10 = α 2 .

By calculating the value of det(L 2, ¯p ) = 

 S 1, ¯p 1 S 3 , ¯p S 2 , ¯p

 , (7)

we can determine

l 2, ¯ 14 = 0, l 2, ¯ 13 = 1, l 2, ¯ 12 = 1, l 2, ¯ 11 = 1, l 2, ¯ 10 = 1, and

ˆe 14 = ¯l 2, ¯ 14 = 1, ˆe 13 = ¯l 2, ¯ 13 = 0, ˆe 12 = ¯l 2, ¯ 12 = 0, ˆe 11 = ¯l 2, ¯ 11 = 0, ˆe 10 = ¯l 2, ¯ 10 = 0.

Hence, the estimated error values of the message part are (ˆe 10 , ˆe 11 , ˆe 12 , ˆe 13 , ˆe 14 ) = (0, 0, 0, 0, 1).

5. Conclusions

A modified step-by-step decoding algorithm for t-error- correcting binary BCH codes has been presented. Based on

logical analysis, we obtain a simple rule for estimating the value of the error pattern. The proposed algorithm signifi- cantly reduces the matrix calculations and the operations of multiplication as the algorithms in [5], [6]. Thus, the com- putational complexity of this decoder is much less, since the most complex element of the step-by-step decoder is the

“matrix-computing” element. Furthermore, the simple and regular structure also makes it suitable for hardware imple- mentation.

References

[1] W.W. Peterson and E.J. Weldon, Error-Correcting Codes, MIT Press, Cambridge, MA, 1972.

[2] E.R. Berlekamp, Algebraic Coding Theory, McGraw-Hill, New York, NY, 1968.

[3] S. Lin and D.J. Costello, Error Control Coding: Fundamentals and Applications, Prentice-Hall, Englewood Cli ffs, NJ, 1983.

[4] J.L. Massey, “Step-by-step decoding of the Bose-Chaudhuri- Hocquenghem codes,” IEEE Trans. Inf. Theory, vol.IT-11, no.4, pp.580–585, 1965.

[5] S.W. Wei and C.H. Wei, “A high-speed real-time binary BCH de- coder,” IEEE Trans. Circuits Syst. Video Technol., vol.3, no.2, pp.138–147, 1993.

[6] C.-L. Chr, S.-L. Su, and S.-W. Wu, “A low-complexiy step-by-step

decoding algorithm for binary BCH codes,” IEICE Trans. Fundamen-

tals, vol.E88-A, no.1, pp.359–365, Jan. 2005.

數據

Table 3 The logic analysis in Theorem 2 for t ≥ 2.
Table 4 The matrix calculations and multiplications of the estimated er- er-ror value for t = 3.

參考文獻

相關文件

You need to act now plant it in your heart The simple fact of how we can do our part For future generations. Step up and make

Take a time step on current grid to update cell averages of volume fractions at next time step (b) Interface reconstruction. Find new interface location based on volume

Take a time step on current grid to update cell averages of volume fractions at next time step (b) Interface reconstruction. Find new interface location based on volume

Take a time step on current grid to update cell averages of volume fractions at next time step (b) Interface reconstruction.. Find new interface location based on volume

He proposed a fixed point algorithm and a gradient projection method with constant step size based on the dual formulation of total variation.. These two algorithms soon became

List up all different types of high-sym k (points, lines, planes) 2...

conglomerates and religious bodies have to consult these high-level stipulations when they settle on their own constitutions. Worldly law developed in this way step by step. The

Reinforcement learning is based on reward hypothesis A reward r t is a scalar feedback signal. ◦ Indicates how well agent is doing at