+ All Categories
Home > Documents > Fast decoder for triple-error-correcting primitive binary BCH codes with odd m

Fast decoder for triple-error-correcting primitive binary BCH codes with odd m

Date post: 19-Sep-2016
Category:
Upload: p-c
View: 213 times
Download: 0 times
Share this document with a friend
5
e-error-correcti ri E.-H. LU Y.-C.Cheng P.-c. Lu Indexing terms: BCH codes, Error correction codes, Hamming codes, Decoding, Algorithms Abstract: A triple-error-correcting primitive binary BCH code with odd m is shown to be the intersection of three Hamming codes each of length n = 2" - 1. Using this property, a decoding algorithm for the code is developed. Based on the algorithm, a hardware decoder is designed by the use of five ROMs, each 2" x m bits, and several logic gates. In comparison with conventional decoders, the decoder is simpler in complexity and faster in decoding speed. 1 Introduction The Bose-Chaudhuri-Hocquenghem (BCH) codes are known as one class of the best error control codes. The BCH codes can be decoded based on hard-decision and soft-decision. Our interest is in the algorithms based on hard-decision because of their lower complexity and higher decoding speed in comparison with those based on soft-decision. Many hard-decision decoding algo- rithms have been proposed [l-61. One class is known as the algebraic decoding algorithm [l-31. The common decoding procedure of these algorithms for triple-error- correcting primitive binary BCH codes consists of three major steps [l]: (a) Calculate syndrome values from a received vector (b) Determine the error location polynomial o(x) (e) Find the roots of o(x) and then correct errors. There is another hard-decision decoding method [4-61, called the step-by-step decoding algorithm. The common decoding procedure of this method for triple- error-correcting primitive binary BCH codes consists of the following decoding steps: (i) Calculate syndrome values from a received vector (ii) Temporarily change one received bit. If the number of errors is reduced, correct the corresponding received bit and remove the error effect from the syndromes 0 IEE, 1998 ZEE Proceedings online no. 19981898 Paper first received 11th November 1996 and in revised form 25th June 1997 E.-H. Lu is with the Department of Electrical Engineering, Chang Gung University, 259, Wen-Hwa 1 Road, KueiSan, Tao-Yuan, Taiwan, Republic of China Y.-C. Cheng and P . X . Lu are with the Department of Electrical Engi- neering, Chung Cheng Institute of Technology, Ta-Hsi, Tao-Yuan, Tai- wan, Republic of China (iii) Cyclically shift the received vector one position and then repeat the above procedure for decoding the next received bit. In this paper, a triple-error-correcting primitive binary BCH code with odd m is shown to be the inter- section of three Hamming codes. It results in a rule which can estimate the number of errors. Based on the rule, a hard-decision decoding algorithm for the code is developed. Finally, a hardware decoder with low hard- ware complexity and fast decoding speed is presented. 2 Properties of triple-error-correctingprimitive binary BCH codes with odd m At least one (n, k) triple-error-correcting binary BCH code of length n = 2" - 1 is available for any integer m 2 4. The code has the following parameters: blocklength: n = 2" - 1 number of parity-check digits: n - k I 3m minimum distance: dmrn 2 7 Clearly, this code is capable of correcting any combina- tion of three or fewer errors in a block. This code can be defined by the roots of its generator polynomial g(x). Let a be a primitive element of GF(2"), then the generator polynomial g(x) is where Ql(x), Q3(x) and Q5(x) are the minimal polyno- mials of a, a3 and as, respectively. Two associated theorems are proved for any positive odd integer m as follows: Theorem 1: g(Z) @l(Z)@3 (21G.5 (Z) (1) If m is positive and odd, g ~ d ( 2 ~ - 1,3) = 1 (2) Pro08 For any positive odd integer m, it can be repre- sented by m = 2k + 1, where k = 0, 1, 2, .... Then we have (2" - 1) mod 3 = (4k 2 - 1) mod 3 = 1. Since gcd(1, 3) = 1, we have gcd(2" - 1, 3) = 1. Theorem 2: If m is positive and odd, g ~d(2~ - 1,5) = 1 (3) Proof For any positive odd integer m, it can be repre- sented by m = 4k + s, where k = 0, 1, 2, ..., and s = 1 or 3. Then we have (2m - 1) mod 5 = p4'ZS - 1) mod 5 = 2'- 1mod5 1 ifs=l ={ 2 ifs=3 Since gcd(1,5) = gcd(2,5) = 1, we have g ~ d ( 2 ~ - 1, 5) = 1. IEE Proc -Commun , Vol 145, No 2, April 1998 60
Transcript
Page 1: Fast decoder for triple-error-correcting primitive binary BCH codes with odd m

e-error-correcti ri

E.-H. LU Y.-C.Cheng P.-c. Lu

Indexing terms: BCH codes, Error correction codes, Hamming codes, Decoding, Algorithms

Abstract: A triple-error-correcting primitive binary BCH code with odd m is shown to be the intersection of three Hamming codes each of length n = 2" - 1. Using this property, a decoding algorithm for the code is developed. Based on the algorithm, a hardware decoder is designed by the use of five ROMs, each 2" x m bits, and several logic gates. In comparison with conventional decoders, the decoder is simpler in complexity and faster in decoding speed.

1 Introduction

The Bose-Chaudhuri-Hocquenghem (BCH) codes are known as one class of the best error control codes. The BCH codes can be decoded based on hard-decision and soft-decision. Our interest is in the algorithms based on hard-decision because of their lower complexity and higher decoding speed in comparison with those based on soft-decision. Many hard-decision decoding algo- rithms have been proposed [l-61. One class is known as the algebraic decoding algorithm [l-31. The common decoding procedure of these algorithms for triple-error- correcting primitive binary BCH codes consists of three major steps [l]: (a ) Calculate syndrome values from a received vector (b) Determine the error location polynomial o(x) (e) Find the roots of o(x) and then correct errors.

There is another hard-decision decoding method [4-61, called the step-by-step decoding algorithm. The common decoding procedure of this method for triple- error-correcting primitive binary BCH codes consists of the following decoding steps: (i) Calculate syndrome values from a received vector (ii) Temporarily change one received bit. If the number of errors is reduced, correct the corresponding received bit and remove the error effect from the syndromes

0 IEE, 1998 ZEE Proceedings online no. 19981898 Paper first received 11th November 1996 and in revised form 25th June 1997 E.-H. Lu is with the Department of Electrical Engineering, Chang Gung University, 259, Wen-Hwa 1 Road, KueiSan, Tao-Yuan, Taiwan, Republic of China Y.-C. Cheng and P .X . Lu are with the Department of Electrical Engi- neering, Chung Cheng Institute of Technology, Ta-Hsi, Tao-Yuan, Tai- wan, Republic of China

(iii) Cyclically shift the received vector one position and then repeat the above procedure for decoding the next received bit.

In this paper, a triple-error-correcting primitive binary BCH code with odd m is shown to be the inter- section of three Hamming codes. It results in a rule which can estimate the number of errors. Based on the rule, a hard-decision decoding algorithm for the code is developed. Finally, a hardware decoder with low hard- ware complexity and fast decoding speed is presented.

2 Properties of triple-error-correcting primitive binary BCH codes with odd m

At least one (n, k) triple-error-correcting binary BCH code of length n = 2" - 1 is available for any integer m 2 4. The code has the following parameters:

blocklength: n = 2" - 1 number of parity-check digits: n - k I 3m minimum distance: dmrn 2 7

Clearly, this code is capable of correcting any combina- tion of three or fewer errors in a block. This code can be defined by the roots of its generator polynomial g(x). Let a be a primitive element of GF(2"), then the generator polynomial g(x) is

where Ql(x), Q3(x) and Q5(x) are the minimal polyno- mials of a, a3 and as, respectively.

Two associated theorems are proved for any positive odd integer m as follows: Theorem 1:

g(Z) @l(Z)@3 (21G.5 (Z) (1)

If m is positive and odd, g ~ d ( 2 ~ - 1,3) = 1 (2) Pro08 For any positive odd integer m, it can be repre- sented by m = 2k + 1, where k = 0, 1, 2, .... Then we have (2" - 1) mod 3 = (4k 2 - 1) mod 3 = 1. Since gcd(1, 3) = 1, we have gcd(2" - 1, 3) = 1. Theorem 2:

If m is positive and odd, g ~ d ( 2 ~ - 1,5) = 1 (3) Proof For any positive odd integer m, it can be repre- sented by m = 4k + s, where k = 0, 1, 2, ..., and s = 1 or 3. Then we have

(2m - 1) mod 5 = p 4 ' Z S - 1) mod 5 = 2'- 1 m o d 5

1 i f s = l = { 2 i f s = 3 Since gcd(1,5) = gcd(2,5) = 1, we have g ~ d ( 2 ~ - 1, 5) = 1.

IEE Proc -Commun , Vol 145, No 2, April 1998 60

Page 2: Fast decoder for triple-error-correcting primitive binary BCH codes with odd m

From theorems 1 and 2, we have g ~ d ( 2 ~ - 1, 3) = 1 and gcd(T - 1, 5) = 1 for an odd integer m 2 4. Thus, both a3 and as can be easily shown to be primitive elements in GF(2") if a is a primitive element in GF(29 [7]. Futhermore, the minimum polynomials Q,(x) , a3(x) and @,(x) of a, a3 and as, respectively, are primitive polynomials of degree m, which can define Hamming codes with code length of n = 2" - 1. Let C1, C, and C, denote the three distinct Hamming codes generated by the minimum polynomials Ql(x), Q3(x) and @&), respectively, and let C be the triple- error-correcting primitive binary BCH code generated by g(x) = @1(x)@3(x)@5(x). This implies that the code C is the intersection of C1, C, and C,, i.e.

C = C1 n C3 n C5 (4)

3 Decoding algorithm

In our decoding algorithm, the syndromes, denoted as Sl(x), S3(x) and S,(x), for decoding the code C (generated by g(x) = @l(x)@3(x)@s(x)) are the remainder polynomials of the received vector r(x) divided by minimal polynomial of Qi(x), i = 1, 3, 5, respectively. Note that each of Si(x) can also be used as the syndrome polynomial for decoding the Hamming code C,. Since a Hamming code is a perfect single- error-correcting code, its standard array contains one all-zero vector and n (= 2m - 1) one-error vectors as coset leaders. Therefore, the decoding of a Hamming code can be performed straightforwardly by using a lookup table of size (2" - 1) x m bits, which maps n nonzero syndromes into n error-location numbers (i.e. 0, I , 2, ..., n - I). Three notation (or operations) used in this paper are defined as follows: (a) S,{a(x)} for i = 1, 3, 5 denotes the remainder of dividing the polynomial u(x) by Qi(x>. (b) w{a(x ) } denotes the Hamming weight of the binary polynomial a(x). (c) H{ Si(x)} for i = 1, 3, 5 represents the error-location number corresponding to the nonzero syndrome Si(x) for decoding the Hamming codes C,.

Let p , q and k denote the integers obtained from lookup tables for decoding Hamming codes C1, C3 and C,, respectively. If Sl(x) z 0, S3(x) f 0 and Ss(x) # 0 we have

H(SI(4) = p , P E {0 ,1 ,2 , . . . , n - 1) H { S 3 ( 4 ) = q , q E {0 ,1 ,2 , . . . )n -1} H { S 5 ( 2 ) } = k , k E {0 ,1 ,2 , . . . , n - 1) (5)

Pp = (XZ + xj 10 5 i < j 5 n - 1, x i + x3 + xp E C,} (6)

(7) Kk = { X i + X j \ O 5 2 < j 5 n-l ,xZ+xjfxk E CS}

(8)

Given p , q and k , we define the following three sets:

Q q = { x i + x 3 \ 0 5 i < j 5 n - l , x i + X 3 + X q E C ~ )

All vectors x' + xi in each set Pp, Qq and Kk can be found by using the method of long division ([8], pp. 201-203).

Let U = (n - 1) - p , A = q + U mod n, and 8 = k + U mod n. Then, we can define three new sets as follows: Pn-l={xS+xt10 5 s<t<n-l,xS+xt+xn-l E C,}

(9) IEE Proc.-Commun., Vol. 145, No. 2, April 199N

&A = (x"+xtJO 5 s < t < n-l)XS+Xt+XX E C3) (10)

(11) KO 1 {xS+xt(O 5 s < t < n - l , x S + x t + x e E C5)

Based on the cyclic structure of Hamming codes, some important properties about these sets have been shown in [9]. They are: (i) Each vector in P,,, Qq and Kk can be easily obtained, respectively, from Pn-l, QA and KO, by shifting each vec- tors cyclically U positions to the left (ii) each vector in intersections Pp n Qq and Pp n Kk can be obtained, respectively, from intersections P,-, n Q A and Pn-l n KO, by shifting each vector cycli- cally U positions to the left (iii) p - q mod n (i.e. (n- 1) - A mod n) and p - k mod n (i.e. (n - 1) - 8 mod n) can be used to determine whether or not Pp n Qq. and Pp n Kk are empty, respec- tively. In addition, an important property is shown in the following theorem: Theorem 3: If Pp n Qq # @, where @ denotes an empty set, there is only one vector in Pp n Qq. Proojl Assume that there are two distinct vectors in the set Pp n Qq, denoted by el(x) and e2(x). Then we have el(x) + xp E C1, el(x) + xq E C,, e2(x) + xp E CI and e2(x) + xq E C, by eqns. 6 and 7. Owing to the linear property of Hamming codes, it follows that el(x) + e2(x) E C, and el(x) + e2(x) E C,. Then el(x) + e2(x) E C', where C denotes the double-error-correct- ing binary BCH code generated by gl,,(x) = Ql(x)Q3(.x). Since w{el(x)} = w{e2(x)} = 2, w{el(x) + e2(x)} I 4. However, as the minimal weight of C' is five, it is required that e , (x ) + e2(x) @ C' unless el(x) = e2(x). Consequently, there is only one vector in Pp n Qq if Pp n Qq f Q.

For Pp n Qq # 0, let x' + xJ be the only vector in Pp n Qq. Then the vector in Pn-l n Qn denoted by xs + xt can be obtained by shifting x' + xJ cyclically U (= (n - 1) - p ) positions to the right. Moreover, whether Pp n Qq is empty or not is determined by p - qmod n. Based on these observations, we define the following function for later work:

However, since gl,,(x) = a1(x)Q5(x) cannot guarantee to generate a code with minimum weight of five or larger, the minimum weight of nonzero vectors in the intersection of Hamming code CI and C5 may be less than five. Following the proof of theorem 3, we know that there may be two or more vectors in Pp n Kk if Pp n Kk f 0. Therefore, there may be more than one vector in P,-l n Ke, where P,-l n Ke is obtained from Pp n Qq by shifting each vector cyclically U positions to the right. Let both el(x) and e2(x) belong to Pn-l n KO. Then e l (a5) = e2(as) = a5% because el(x) + x0 E C, and e2(x) + xe E C,. Thus, no matter how many vectors there are in P,_l n KO, they have the same value of ei(a5). Based on these observations, we define the fol- lowing function for later work:

(13) F ~ , s ( p - Icmodn) = { 0 i f P , n K k = @ ase otherwise

where 0 = k + U mod n.

61

Page 3: Fast decoder for triple-error-correcting primitive binary BCH codes with odd m

If signal-to-noise ratio is large enough, the Hamming weight of an error vector can be assumed to be four or less. Based on this assumption, several properties of a triple-error-correcting primitive binary BCH code with odd m are shown as follows: Property 1; If w(e(x)} = 1, i.e. e(x) = xi, 0 I i < n - 1, then

H{Sl(Z)) = H { S 3 ( 4 ) = H { S 5 ( 4 ) =

Property 2: If w{e(x)} = 2, 3 or 4, then we have

Proof: Assume H{Sl(x)} = H(S3(x)} = H{Sj(x)} = i, where 0 < i I n ~ 1, then the error vector e(x) satisfies e(x) + xL E C,, e(x) + xi E C3 and e(x) + xi E C,. According to eqn. 4, we have e(.) + xi E C. Since the minimum weight of the code C is seven, w{e(x)> = 1 or w{e(x)} 2 6. This contradicts the condition of w(e(x)} = 2, 3 or 4. Property 3: If w{e(x ) } = 2, then F,,3@ - q mod n) # 0 and F1,?(p - q mod n) = F1,5@ ~ k mod n). Pro05 Let e(x) = xi + x;, where 0 5 i % j % n - 1, and let H{Sl(x)} = p , H{S3(x)) = q and W{S,(x)} = k. Then e(x) must belong to the three sets Pp, Qq and Kk simul- taneously. Thus e(x) E Pp n Qq and e(x) E Pp n Kk. Let s = i + u mod n and t = j + u mod n, where u = (n ~ 1) - p . Then xs + x f is in the two intersections Pn-, n Q1, and P,_, n KO simultaneously. Therefore, F1,3(P ~

q mod n) = a5s + # 0 (because a5 is a primitive ele- ment in GF(2")) and F1,5(p - k mod n) = ase + 0, where 8 = k + U mod n. Since xs + xt + xe E C,, we have ass + u5' = i.e.

F1,3(p - qmodn) = F1,5(p- k m o d n )

Property 4: If one or two of the syndromes Sl(x), S3(x) and S5(x) are zero, then w{e(x)} 2 3. Proof: This is because the minimum weight of any Hamming code is three. Property 5: If w{e(x)} = 3 or 4, and F1,3(p - q mod n) # 0, then

H{SlWI f HCS3(x>} or HCS3(x>> f ")}.

F1,3(PP4modn) # F1,5(P-kmodn)

Proof: If F1,& ~ q mod n) f 0, there are two possibili- ties: (a) For Fs,5(p - k mod n) = 0, Fl,3@ - q mod n) # Fl,5 (p - k mod n). (b) For Fl,5(P - k mod n) f 0, there exists at least one two-weight vector, denoted by xsl + xt1, which satisfies xsl + xrl + xn-l E C1, and xsI + xfl + xe E C,. By the definition of eqn. 13, we have

F1,5(p - kmodn) = a''(= a5'l + a5t1)

However, since F,,,@ - q mod n) # 0, there exists only one two-weight vector, denoted by xs2 + x'2, which sat- isfies xs2 + xt2 + xneS E C,, and xs2 + xf2 + xa E C3. By the definition of eqn. 12, we have FS,,(p ~ q mod n) = ass2 + $2. Assuming Fl 3 @ - q mod n) = F,,,(P ~

k mod n), i.e. a j S 2 + $2 A de, it implies that xs2 + xf2

+ x8 E C,. Let e(x) denote the true error vector, and let e'@) denote the vector obtained by shifting e(x) cycli- cally u(=(n ~ 1) - p ) positions to the right. Then we have e'(x) + xn-l E C,, e'(x) + xa E C3 and e'(x) + x8 E

C, since e(x) + xp E C1, e(x) + x4 E C3 and e(x) + xk E

C,. Besides, since xs2 + xt2 + xn-I E C,, xs2 + xt2 + xh E

C3 and xs2 + xt2 + xB E C,, we have that e'(x) + xs2 + 62

xr2 belongs to C1, C, and C5, simultaneously by the lin- ear property of Hamming codes. Therefore, e'(x) + xs2

+ xt2 E C by eqn. 4. This is a contradiction because the weight of e'(x) + xs2 + xt2 is less than seven and the minimum weight of the code C is seven.

Using Properties 1 - 5 , we propose a rule to estimate the weight of error vector e(x) as follows: (a) If S,(x)=O, S3(x)=0 and S5(x)= 0, then w{e(x)} = 0. (b) If exact one or exact two of Sl(x), S3(x) and Ss(x) are zeros, then w{e(x ) } 2 3. (c) Under the condition of Sl(x) # 0, S3(x) # 0, and S5(x) # 0, if H{S1(x)} = H(S3(x)} = H{S5(x)} , then w{e(x)} = 1. (d) Under the conditions:

(i) Sl(x) # 0, S3(x) # 0, and S5(x) + 0

F1,3(p - q mod n) = 0, then w{e(x)} = 3.

(i) Sl(x) f 0, S3(x) + 0 and Sj(x) f 0

(iii) F1,3@ ~ q mod n) # 0; if F1,& - q mod n) = F, ,@- k mod n), then w{e(x ) } = 2, or ;f F1,3(P - q mod n) f F,,,(p - k mod n), then w{e(x)} = 3 .

Suppose that an n-bit vector r(x) = ro + rlx + ... +

mated from S,(x), S3(x) and S,(x), and let fl be the number of errors estimated from

(ii> H{Sl(x)} f H{S3(x)} or H{S3(x)) f H{S,(x)l, if

(e) Under the conditions:

(io HCSl(41 f HCS,(x>> or H{S3(4 ) f H{S,(x>>;

n-l y - 1 is ' received. Let N be the number of errors esti-

Sl(Z) = Sl(Z) + S1{Zn--l},

S~(.) = &(Z) + S3{Zn--1}

S 5 ( 4 = S5(4 + Ss(zn-1)

and

Then, based on the above rule, we develop a new step- by-step decoding algorithm as follows: Step 0: j = 0. Step 1: Compute Sl(x) = S1 {~(x)}, S3(x) = S3{r(x)} and S,(x) = S5{r(x)}. Step 2: Estimate N. Step 3; L e t j = j + 1. I f j = n + 1, then go to step 8. Step 4: Compute Sl(x) = s,(x) + sl{xn-'}, S,(x) = S3(x) + S3{xn-') and s,(x) = Sj(x) + Sj{xn-l). Step 5: Estimate 8. Step 6: If fl = N - 1, then correct the receiving bit rn-;, and let Sl(x) = sl(x), S3(x) = s3(x), S5(x) = s,(x) and N = fl; otherwise, let S1(x) = Sl(x), S3(x) = S3(x), S5(x) = S5(x) and N = N. Step 7; Compute Sl(x) = Sl{xSl(x)), S3(x) = S3{xS3(x)} and S5(x) = Sj{xSj(x)}, then go to Step 3. Step 8: If Sl(x) = 0, S3(x) = 0 and S5(x) = 0, then out- put code word; otherwise set an error alarm.

4 Hardware implementation

Based on the above step-by-step decoding algorithm, a hardware structure for decoding triple-error-correcting primitive binary BCH codes of odd m is shown in Fig. 1. It consists of four parts: (a) (n + 1)-bit buffer register: The buffer register is used to store the received vector and to correct the received vector bit by bit. The reason that the register is with

IEE Proc.-Commun., Vol. 145, No. 2, April 1998

Page 4: Fast decoder for triple-error-correcting primitive binary BCH codes with odd m

n + 1 stages rather than n stages for some decoders can be understood from the description of syndrome registers.

gate 1

i I C(X) J- n+l-bit buffer register r(x)

I I

P,,

decision circuit

gate 2 (L Fig. 1 binary BCH codes of odd m SR = syndrome register

Hardware structure for decoding triple-error-correcting primitive

. 'm m kTm

q I I

(b) Syndrome registers: Each of the three syndrome registers consisting of m flip-flops and several logic gates is used to compute syndromes. The timing dia- gram for a syndrome register is shown in Fig. 2. Note that the (n + 1)th pulse for syndrome registers in a tim- ing cycle is removed, therefore the syndromes remain unchanged during the (n + 1)th clock. This is the idea behind the use of n + 1 stages in the buffer register.

n n+l 1 2

s:::r siri J-lJlJJ c l o c k f o r m ' * '_n

syndrome

p- q mod n

1 timing cycle 4 registers

Fig. 2 Timing diugram for syndrome registers

p-kmodn

- is a 1-bit bus line is an m-bit bus line

Fig.3 Number of errors estimator

(c) Number of errors estimator: The circuit is shown in Fig. 3. In this circuit, three lookup tables, called ROM 1, ROM 2 and ROM 3, map the nonzero syndromes Sl(x), &(x) and S5(x) (or map sl(x), s3(x) and s5(x) if all Gate 3s are turned on) into three integers p , q, and k, respectively. Note that the circuit for computing

IEE Pro,.-Commun., Vol. 145, No. 2, April 1998

p - q mod n or p - k mod n is shown in Fig. 4, in which FA denotes a full adder. After p - q mod n and p - kmod n are computed, F,,,(p - q mod n) and Fl,& - kmod n) can be obtained from ROM 4 and ROM 5, respectively. Finally, the number of errors, i.e. w{e(x)}, is estimated by the estimating circuit (whose design is based on the rule in section 3), and expressed by the output bits of h3, h2, h l , and ho, as follows: (i) (h3, h2, h l , h,) = (0, 0, 0, 1) denotes w{e(x)) = 0 (ii) (A3, h2, h l , h,) = (0, 0, 1, 0) denotes w{e(x ) ) = 1 (iii) (h3, h2, h l , h,) = (0, 1, 0, 0) denotes w{e(x)} = 2 (iv) (A3, h2, h l , h,) = (1 0, 0, 0) denotes w{e(x)} = 3.

c c p - q mod n

Fig. 4 p = pm-l x 2-1 + ... + p , x 2 + po 4 = qm-l x 2+' + .._ + 41 x 2 + 40 k = k,, x 2+' + ... + k , x 2 + ko

Circuit for computing p - q mod n (or p - k mod n) circuit

Fig. 5 Decision circuit

(d) Decision circuit: The decision circuit is shown in Fig. 5 which is used to check whether the highest bit in the (n + 1)-bit buffer register is error or not. The circuit sets E, = 1 if the highest bit is error, then corrects the error by an exclusive gate. Simultaneously, the output of E, is fed back into the three syndrome registers to remove the error effect.

The operation of this hardware decoder is described as follows: Step I : Initially, the decoder (i) resets the buffer register and syndrome registers (ii) turns on gate 1 (iii) turns off the other gates (iv) turns each switch S to position 1 (v) shifts the received vector r(x) into the buffer register and the syndrome registers from the highest bit. Step 2: At the nth clock, the syndromes Sl(x), S3(x) and S5(x) are formed in the syndrome registers as soon as the entire received vector r(x) is shifted into the syn- drome registers. Then, the number of errors in the received vector r(x) is estimated by the number of errors estimator, and is stored in flip-flops R3, R2, RI and Ro in Fig. 5.

63

Page 5: Fast decoder for triple-error-correcting primitive binary BCH codes with odd m

Step 3:At the (n + 1)th clock, the decoder (i) turns off gate 1 (ii) turns on the other gates (iii) turns each switch S to position 2 (iv) shifts the received vector r(x) to the right once (while the syndromes remain unchanged). Step 4: The number of errors estimator computes S,(x) = Sl(x) + Slfxn-l}, s3 (x ) = S3(x) + S3{xn-I} and s , ( x ) = S5(x) + S5{xn-’), and then estimates the number of errors from sl(x), s , ( x ) and s5(x). The estimated result is then compared with the bits stored in R3, R2, R, and Ro. If the number of errors is decreased by l (N = N - l), the decision circuit sets E, = 1; otherwise sets E, = 0. Step 5: The received bit at the rightmost position of the (n + 1)-bit buffer register is corrected and sent to the output. Simultaneously, the output of E, is fed into the syndrome registers from the left end to remove the error effect and is sent to R3, R,. R I and Ro to shift the content of RI into Then, the syndrome registers are cyclically shifted once. Step 6 . Repeat step 4 and step 5 n times.

5 Conclusions

A new step-by-step decoding algorithm for triple-error- correcting primitive binary BCH codes with odd m is introduced in this paper. The decoding algorithm does not need to calculate the error-location polynomial or determine whether some related matrixes are singular

or not, such that its decoding is simple and fast. Based on this decoding algorithm, a hardware decoder is pre- sented using five ROMs, each 2m x m bits, and several logic gates. Because of its simplicity in structure and decoding procedure, the decoder can be easily imple- mented in hardware.

6 Acknowledgments

It is a pleasure to acknowledge Dr. J. C. Wu for his helpful suggestions.

7

1

2

3

4

5

6

7

8

9

References

PETERSON, W.W., and WELDON, E.J. Jr.: ‘Error correcting codes’ (MIT Press, Cambridge, MA, 1972) BERLEKAMP, E.R.: ‘On decoding binary BCH codes’, ZEEE Trans., 1965, IT-11, pp. 577-580 BURTON, H.O.: ‘Inversionless decoding of binary BCH codes’, ZEEE Trans., 1971. U-17, DD. 464466 MASSEY, J.L.: ‘Step-by-step decoding of the Bose-Chaudhuri- Hocquenghem codes’, IEEE Trans., 1965, IT-11, pp. 580-585 WEI, S.W., and WEI, C.H.: ‘A high-speed real-time binary BCH decoder’, ZEEE Trans. Circuits Syst. Video Technol., 1993, 3, (2),

LU, E.H., and CHANG, T.: ‘New decoder for double-error-cor- recting primitive binary BCH codes’, ZEE Proc. Commun., 1996, 143, ( 3 ) , pp. 129-132 ROSEN, K.H.: ‘Elementary number theory and its applications’ (Addison-Wesley, New York, 1993) LIN, S., and COSTELLO, D.J., Jr.: ‘Error control coding: Fun- damentals and applications’ (Prentice-Hall, Englewood Cliffs, NJ, 1983) LU, E.H., CHENG, Y.C., and WUU, H.P.: ‘A complete decod- ing algorithm for double-error-correcting primitive binary BCH codes of odd m’, Znf Process. Lett., 1994, 51, pp. 117-120

pp. 138-147

64 IEE Proc -Cornmum, Vol. 145, No. 2. April 1998


Recommended