On t-error correcting/all unidirectional error detecting codes ...

Report 1 Downloads 45 Views
1493

IEEE TRANSACTIONS ON COMPUTERS, VOL. 38, NO. 11, NOVEMBER 1989

On &Error Correcting/All Unidirectional Error Detecting Codes Abstract-We present families of binary systematic codes that can correct t random errors and detect more than t unidirectional errors. As in recent papers, we start by encoding the k information symbols into a codeword of an [n’,k, 2t + 11 error correcting code. The second step of our construction involves adding more bits to this linear error correcting code in order to obtain the detection capability of all unidirectional errors. Asymmetric error correcting codes turn out to be a powerful tool in our construction. The resulting codes sensibly improve previous results. Asymptotic estimates and decoding algorithms are presented.

Index Terms-Asymmetric errors, decoder, encoder, error correcting codes, information symbols, redundant symbols, systematic code, t-error correcting/all unidirectional error detecting codes, unidirectional errors.

I. INTRODUCTION

E

that the codes are systematic allows simple encoding and decoding procedures that are similar to the ones described by other authors. Our construction uses the best symmetric and asymmetric error correcting codes available. As long as better codes are found, our codes will improve accordingly. Most of the codes obtained with our construction improve previous results for t-error correcting/all unidirectional error detecting (t-EC/AUED) codes. The basic definitions and properties of 1-ECIAUED codes are given in this section. In the next sections, we describe the constructions of the codes, we give encoding and decoding procedures, and we provide tables that compare our codes to previously known results. Assume we have two binary vectors of length n, say x and y. We say that x is covered by y (x E y ) iff the set of coordinates where x is I is contained in the set of coordinates where y is 1. For instance, 1 10 0 is covered by 1 1 1 0 but not by 1 0 1 0 . Assume we transmit a vector x and we receive a vector f. We say that x has suffered unidirectional errors if either x E 3 or f E x (i.e., the errors are either transitions 0 1 or transitions 1 + 0). Let x and y be two vectors of length n. We denote by N(x, y) the number of coordinates where x is 1 and y is 0.

RROR correcting/detecting codes are essential in most devices that store digital information. A lot has been written about error correcting/detecting codes [8]. These codes deal with symmetric errors; i.e., errors of type 0 -+ 1 and 1 -+ 0 occur with the same probability in a codeword. However, in many types of VLSI circuits the error statistics are different and they exhibit a high incidence of unidirectional Example:Letx=00110,y=01011,thenN(x,y)= errors [13, [2], [111. Also, certain faults in digital devices can cause unidirectional errors, i.e., all the errors in a codeword 1 and NCy, x) = 2. are either of type 0 + 1 or 1 + 0. Notice that the Hamming distance d(x, y ) satisfies d(x, y ) Some of the digital units that produce unidirectional errors = N(x, y ) + NCy, x). The following theorem [3], [12] gives as a consequence of internal failure are data transmission necessary and sufficient conditions for a code to be t-ECI systems, magnetic recording mass memories, and LSI/VLSI AUED. circuits such as ROM memories. The number of random faults Theorem Z.Z: A code e is t-ECIAUED iff N(x, y ) L t + caused by these failures is usually limited, while the number of 1 for any x, y E e, x # y . unidirectional errors can be large. For that reason, it is useful 11. CONSTRUCTION OF THE CODES to have codes that are capable of correcting a relatively small number of random errors and detecting any number of In this section, we shall describe a construction of a unidirectional errors. Considerable attention was paid in systematic t-ECIAUED code that for larger dimensions gives recent literature to this problem [1]-[3], [101-[12]. codes with lower redundancy than the known constructions The purpose of this paper is to provide techniques to [1]-[3], [ l l ] , [12]. Asin[11], weusealinear[n‘, k , 2t + 11 construct systematic codes that are able to correct t random code e ’ as a first step to encode the k information symbols. errors and detect all unidirectional errors. The requirement Before we proceed, let us see what can be said about N(c, d ) and N ( d , c) for c E e’ and d E e’. (rxl denotes the smallest integer, greater than or equal to x and w(c) the weight Manuscript received April 1 , 1987; revised October 7, 1987 and February of c.) 6, 1988. M. Blaum is with IBM Research, Almaden Research Center, San Jose, CA Theorem 2.1: Let e’ be an [n’,k,2t + 11 code. Let c E 95120. e’ and d E e’ with w(c) = i 5 j = w(d). Then H. van Tilborg is with the Eindhoven University of Technology, 5600 MB +

Eindhoven, The Netherlands. IEEE Log Number 8930840.

0018-9340/89/1100-1493$01.00 0 1989 IEEE

Authorized licensed use limited to: Hitachi San Jose Research Center. Downloaded on March 17, 2009 at 04:27 from IEEE Xplore. Restrictions apply.

1494

IEEE TRANSACTIONS ON COMPUTERS, VOL. 38, NO. 11, NOVEMBER 1989

+

.

(2.2)

Proof: Without loss of generality c and d can be assumed

is a t-ECIAUED code of length n = n ’ r which is systematic on k positions. Construction 2.4: Let Tu be the 2u x U (0, 1)-matrix defined by 1‘ =

(A)

to look like Y

X 0

c=l 1

* * e

d=l 1 Of course, x

1

2

-

11

.

a

*

1 00

+y +z +U

U

0

1 00

0

-

. - .0

00

*.*

1 00

11

0

0.

Tu+1=

x+y=i, x+z=j

(2.3)

y+z=d(c, d)22t+ 1

(2.4)

y = i -x r j - x =

z.

(2.5)

If follows from (2.4) and (2.5) that N ( d , c) = 22 L y + z 2 2t 1. This proves (2.1). j - i. From (2.4) we can now By (2.3) z = j - x = y j - i = y + z 2 2t + 1. Hence, deduce that 2y

+

+

TU

= n ’ , but also

+

N(c,d)=y2[ 2t+l-j+l 1 = t + 1 - r q

.

Then for every value o f t , Tuis a descending tail matrix T(2u, U;t 1). The proof by induction is straightforward and will be omitted. The first four matrices Tu are

+

0

Theorem 2.1 can be obtained as a corollary of Lemma 1 in < 2t 1 - 21 in that lemma. We now want to construct a t-ECIAUED code e from the [n ‘ , k, 2t 11-code e ’ . In view of 1.1, we need to add a tail t , to each codeword c in e ’ , with the property that for each c E e ’ and d E e ’, C # d, N(t,, td) L t 1 - N(C, d). h t w(c) = i Ij = w(d). According to Theorem 2.1 it would suffice if [ 111 if we choose the maximum value of I satisfying q

/1 1 1 \

+

\o

+

+

N(t,, t d ) 2 t + 1 --ax

I rrill 0, t + 1 - -

rI

0 01

T4=

1 1 1 1 0 0

1 1 1 0 1 0

1::

1 1 0 1 0 1

1 0 1 0 1 0

hJ

Example 2.5: Let k = 4 and t = 1. The shortest 1-error correcting code with dimension 4 is the Hamming code of length n ’ = 7. As descending tail matrix T(8, r; 2) we can take T4. By Theorem 2.3, we have found a 1-EC/AUED code To keep the complexity of the encoding and decoding of length 11 which is systematic on four positions. algorithm low, we shall make the tail tc only dependent on the Tu will be an efficient descending tail matrix only for very weight of c (as in [ll]). So, instead of writing t, we can now small values of n’ (in terms of small r). For larger values of write tiwith i = w(c). n’ we shall need much more advanced constructions. To this Definition 2.2: A descending tail matrix of strength t end we recall the definition of asymmetric error correcting 1 is an m x r (0, 1)-matrix with rows t i , 0 Ii Im - 1, codes [41-[71, 191, 1131, [ W . such that for all 0 I i I j Im - 1, Definition 2.6: A binary word is said to have suffered asymmetric errors iff all errors are transitions 1 -+ 0 (resp. 0 N ( t i ,t,)rmin It.1, . (2.6) + 1). Notice that the difference between asymmetric and unidirectional errors is that in the former case we have “a priori” We shall denote this matrix by T(m, r; + l). In view of the knowledge of what the transitions are going to be. preceding, the following theorem is now obvious. Theorem 2.3: e , be an ,, k, 2t 1l linear The asymmetric minimum distance A of a binary code A is defined as systematic code and let T be a descending tail matrix T(n ’ 1, r; t + 1) with rows t i , 0 Ii In‘. Then A = minA(a, b ) (2.7) a,bEa o+b e={(c,t W @ ):)c E e’)

+

];r

1

+

+

Authorized licensed use limited to: Hitachi San Jose Research Center. Downloaded on March 17, 2009 at 04:27 from IEEE Xplore. Restrictions apply.

1495

BLAUM AND VAN TILBORG: ?-ERROR CORRECTIONIALL UNIDIRECTIONAL CODES

TABLE I BOUNDS ON THE CARDINALITY OF ASYMMETRIC ERROR CORRECTING CODES

n 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

A=2

A=3

A=4

A=5

6 12 18 36 62 108-1 17 174-210 3 16-410 586-786 1096-1500 2048-2828 3856-5430 7296-10374 13798-19898 262 16-38008 49940-73 174 95326-140798 182362-27 1953 349536-523586

2 4 4 7 12 18 30-32 54-63 98-114 186-218 266-398 364-739 647-1279 1218-2380 2050-4242 2564-8069 4251-14374 8450-26679 16388-50200

2 2 2 4 4 6 8 12 18 30-34 44-50 66-90 122-168 234-320 450-616 860- 1144 1628-2134 3072-41 16 4096-7346

2 2 2 2 2 4 4 4 6 8 12 16 26 36-44 46-76 54-134 62-229 88-423 133-745

where

A(a, b)=max { N ( a , b), N ( b , a } . The code Q. can correct any t asymmetric errors in a codeword iff A r t + 1. For further background on asymmetric error correcting codes we refer the reader to the articles listed above, in particular to the excellent survey by Kldve [7]. In [15], one can find the constructions of the asymmetric error correcting codes listed in Table I. Table I also contains upper bounds on their size. Construction 2.7: Let Q. be an asymmetric error correcting code of length r, cardinality I a(,and asymmetric minimum distance A. Let A by an I Q . ( x r matrix whose rows are the codewords of Q. in order of nonascending weight. Then A is a descending tail matrix T(lQ.1,r; A). Proof: Compare the rows a; and ai, i < j, in A. Without loss of generality, they look like

---Y

X

ai=1 1

*..

1 11

... 1

Z

00

.*.

U

0 00

. * .0

For encoding and decoding of t-ECIAUED codes obtained by Construction 2.7 and Theorem 2.3, one needs (in general) to store the 1Q. l x r matrix A . Suppose that Q. is the largest asymmetric error correcting code with asymmetric distance A that one is willing to use in a particular application. Then the direct product Q. x Q. = a2is also an asymmetric error correcting code with the same asymmetric minimum distance A and so is a3,a4,etc. So we can use Q.! with 1 = rloglal (n’ + 1)1to construct a suitable descending tail matrix for an [n’ , k, 2t + 11-code. The length of this tail is given by

Example 2.9: Let Q. be the asymmetric error correcting code mentioned in Example 2.8. So 1Q. l = 36, r = 8, A = 2, t = 1. Then (2.8) reduces to r*=-

8 log2 (n’+ 1)= 1.547 log2 (n’+ 1). log2 36

By the Gilbert Varshamov bound [8] there are t-error correcting codes whose length tends to 00 and whose rate tends Since Q. has asymmetric minimum distance A, we know that to 1. In particular, these codes also correct asymmetric errors. max {y, z } r A. But i 5 j , sox + y = w(aJ L w ( a j ) = x Hence, the rate of maximal size asymmetric error correcting + z. Hence, y 2 z and thus N(ai, a j ) = y = max {y, z } 2 codes with fixed asymmetric minimum distance A tends to 1 A. So (2.6) holds when t + 1 = A. 0 when their length tends to W . So r/10g2 ( Q . 1 in (2.8) will tend to Example 2.8: k = 29, t = 1. According to [14], there 1 for r -, 00. The reader should compare this to [11, formula exists a [35, 29, 3]-code (but not a [34, 29, 31-code). So n’ = (l)], where the tail has an approximate length 35. Construction 2.4 gives a 1-EC/AUED code with r = 18. t+ I n‘+l However, Construction 2.7 and Table I imply the existence of = ( t + 1) log2 (n’+ 1)-log* (2t+ l)!!. a descending tail matrix T(36, 8; 2). This gives r = 8. i= 1 yl,g2 Note that N(ai, ai,^) L A in Construction 2.7, while by (2.6) we only need that N(a;,ai+I ) 1 1 . Hence, it should not [Notation: (2t + l)!! = 1.3 (2t - 1) (2t + l)]. come as a surprise to the reader that Construction 2.7 in Let A be the descending tail matrix corresponding to code Q. conjunction with Theorem 2.3 will not yield our best and A ! be the matrix corresponding to al. The way we order construction of t-ECIAUED codes. the IQ. ( ‘ rows in matrix A’ is as follows: consider row i, 0 5 i aj=1 1

-.. 1

00

. - .0

1 1

*..

1 00

*

*

a

0.

-

Authorized licensed use limited to: Hitachi San Jose Research Center. Downloaded on March 17, 2009 at 04:27 from IEEE Xplore. Restrictions apply.

1496

IEEE TRANSACTIONS ON COMPUTERS, VOL. 38, NO. 1 1 , NOVEMBER 1989

+

).

A=(

\

a1al-J

-

then row i in a‘ is given by (ajo,up, , ajr- (the comma denotes concatenation). In this way, when we combine Theorem 2.3 with matrix A‘, we only need to store matrix A and build circuits that compute i on base I al. The next construction combines Constructions 2.4 and 2.7. Construction 2.10: Let a be an asymmetric error correcting code of length r with minimum asymmetric distance A = t + 1. Let A be the (a1 x r matrix whose rows a;, 1 Ii I la(,are the codewords of a in order of nonascending weight. Let t j , 1 Ij I224, be the rows of Tufor some fixed value of U. Then the (2ulal x (r + U) matrix

\ala1 x Tu/ where U ;

x Tu stands for

is a descending tail matrix T(2uJa1, r + U ; t + 1). Proof: Compare ai, tuwith aj , t, . If i < j then N(ai,aj) L t 1. If i = j a n d u < U , then

+

Tusuch that 2 um L 22 and s u is minimal. Using Table I, we readily see that this choice is given by A(6, 5 ; 2) x T2, whose first 22 rows are a descending tail matrix T(22, 7; 2). Applying Theorem 2.3 to the [21, 16, 31-code and this T(22, 7; 2) descending tail matrix, we obtain a 1-EC/AUED of length 28 which is systematic on 16 positions. Notice that the 1-EC/AUED code with k = 16 in Table VI of [ 111 has n = 29, i.e., the proposed method gives a redundant bit less. The first code in each column of Table I (not shown) is the 1; t repetition code, whose corresponding matrix is A (2, t 1). Note that one never needs to use a tail matrix Tuwith u L 2(t + 1) since A (2, t + 1; t 1) x qu121has4 ru/21 L 2u rows (the number of rows in Tu), but t 1 ru/21 Iu columns. The reader should always keep in mind that A ( m l , sl;t 1) x A (m2, s2; t + 1) gives an A (m1m2, SI + s2; t 1) matrix. The fact that we require s u to be minimal in step 2 on Construction 2.11 makes this construction more efficient than the combination of Construction 2.7 with Theorem 2.3. If we use Construction 2.7 in Example 2.12, we need to find an asymmetric 1-error correcting code a of length s and I a I = m such that m 2 22. Looking at Table I, we see that there is a code with 36 codewords, which gives a matrix A(36, 8, 2). The first 22 rows of this matrix are a descending tail matrix T(22, 8; 2), while in Example 2.12 we had a T(22, 7; 2) matrix. As we see, Construction 2.10 provides a better choice than Constructions 2.4 and 2.7.

+

+

+

+

+ +

+

+

AND COMPARISONS 111. TABLES

The way Tables 11-V are made is as follows: for a given r*, we use Table I to find an A (m,s; t 1) such that A (m,s: t + 1) x T,,-, has maximal size, i.e., such that 2(r* - s)m is maximal. With this choice of s we can apply Construction 2.10 11-codes whenever n’ + 1 I2(r* - s)m. to [n’,k, 2t This explains the upper bound 2(r* - s)m - 1 on n ’ . The lower bound on n‘ is simply one more than the upper bound on n ‘ for redundancy r* - 1. The range of k that corresponds with the range of n ’ can be determined from the table on [n’ , k,2t 11-codes in [14]. So the k-range is obtained from the 1 n-range and not the other way around. For instance, if 2t = 9, the n’-range 28-31 in Table V gives rise to the k-range 11-12, since a [31, 12, 91-code exists and a [31, 13, 91-code is not known. It is quite possible that a [31, 13, 91 and even a [31, 14, 91-code will be found. In that case the k-range will have to be adapted. All these codes can be extended with the same descending tail matrix to form a 4-EC/AUED code. Tables VI and VI1 compare Tables 11-V with the results in [111.

+

+

When using Theorem 2.3 and Construction 2.10 to find tEC/AUED codes, one, of course, wants to minimize the redundancy in the code. Suppose that one wants to construct a t-ECIAUED code that is systematic on k positions. We give a step by step construction procedure. Construction 2.11:

+

1. Construct an [n’,k, 2t 11-code with n’ minimal (to this end, the table in [14] is very useful). 2. Find an asymmetric t-error correcting code a of length s and la1 = myand a tail matrix Tusuch that 2 um 2 n’ 1 and s u is minimal. a can be found using Table I which comes from [15] and A ( m , s, t + 1) denotes the matrix corresponding to A. 3. Construct the t-EC/AUED code using Theorem 2.3 and Construction 2.10.

+

+

We illustrate this step by step construction with an example. Example 2.12: Assume we want to construct a l-EC/ AUED code that is systematic on 16 positions. The first step is finding an [n’,16, 31-code with n’ as small as possible. We can take a [21, 16, 31 (shortened) Hamming code, i.e., n‘ = 21. In the second step, we have to find an asymmetric l-errorcorrecting code a of length s and (a1 = m,and a tail matrix

+

+

IV. DECODING The decoding algorithm of a t-ECIAUED code constructed by Theorem 3.2 is basically as complex as the decoding 11-code (3’ used, plus the algorithm of the [n’, k, 2t complexity of the encoding procedure added to it. be The decoding algorithm works as follows. Let (c, t,,,(c)) the transmitted codeword, where c E e’ and t M c )is the corresponding row from the descending tail matrix. Suppose that (rl,r ~is) the received vector. Then proceed as follows.

+

Authorized licensed use limited to: Hitachi San Jose Research Center. Downloaded on March 17, 2009 at 04:27 from IEEE Xplore. Restrictions apply.

1497

BLAUM AND VAN TILBORG: t-ERROR CORRECTIONIALL UNIDIRECTIONAL CODES

TABLE I1 1-EC/AUED CODES k-range

n'-range

r*

Construction

1

5 (4-5)

3

T3

-

(6-7)

4

T4

2

8 (8-9)

5

TS

3-4

10-11

6

A(2,3;3) x T3 or T,

5-7

12-15

7

A(2,3;3) x T4

8-10

16-19

8

A(2,3;3) x T,

11-14

20-23

9

A(2,3;3) x A(2,3;3) x T3 or A(2,3;3) x T,

15-21

24-31

10

A(2,3;3) x A(2,3;3) x T4

22-35

32-47

11

A(12,9;3) x Tz

36-58

48-71

12

A(18,10;3) x T, or A(12,9;3) x T,

59-105

72-119

13

A(30,11;3) x Tz

106-199

120-215

14

A(54,12;3) x T,

200-373

2 16-391

15 -

A(98,13;3) x T,

TABLE 111 2-EC/AUED CODES k range

n' range

r* (add t o n')

1

3 (2-3)

2

T2

2

5 (4-5)

3

T3

3-4

6-7

4

A(2.2;2) x T2

5-7

8-1 1

5

A(2,2;2) x T3

8-11

12-15

6

A(2,2;2) x A(2,2;2) x Tz

12-18

16-23

7

A(2,2;2) x A(2,2;2) x Tg or A(6,5;2) x Tz

19-41

24-47

8

A(12,6;2) x Tz

42-64

48-71

9

A(12,6;2) x T3 or A(18,7;2) x Tz

65-135

72-143

10

A(36,8;2) x Tz

136-239

144-247

11

A(62,9;2) x T2

240-422

248-431

12

A(108,10;2) x T,

Construction

Authorized licensed use limited to: Hitachi San Jose Research Center. Downloaded on March 17, 2009 at 04:27 from IEEE Xplore. Restrictions apply.

1498

IEEE TRANSACTIONS ON COMPUTERS, VOL. 38, NO. 1 1 , NOVEMBER 1989

T A B L E IV 3-ECIAUED CODES

Construction

k-range

n’-range

r*

1

7 (6-7)

4

-

- (8-9)

5

2

11 (10-11)

6

3

13 (12-13)

7

m

4-5

14-15

8

A(2,4;4) x T4 or T8

6-8

16-19

9

A(2,4;4) x Ts

9-12

20-23

10

A(2,4;4)

13-14

24-27

11

A(2,4;4) x T7

15-16

28-31

12

A(2,4;4) x A(2,4;4) x T4 or A(2,4;4) x Ts

17-23

32-39

13

A(2,4;4) x A(2,4;4) x T,

24-31

40-41

14

A(2,4;4)

32-52

48-71

15

A(18,13;4) x T2

53-98

72-119

16

A(30,14;4) x Tz

99-155

120-179

17

A(30,14;4) x T3

156-236

180-263

18

A(44,15;4) x T3 or A(66,16;4) x T2

237-460

264-487

19

A(122,17;4) x T2

17

Step 1: Apply the decoding algorith of e ’ to r l . If the algorithm fails to find a codeword 2 in e’ at distance I? from rl, then more than t errors have occurred in rl and a fortiori in ( r l ,r2).Declare a unidirectional error and stop. If the algorithm finds a codeword 2 in e’ with d(2, rl) It, then proceed with step 2. Step 2: Compute t^ = t w ( c )If. d((rl,rz), (2, t^>) It , then declare (2, t^> to be the transmitted codeword (note that ( 2 , ?) = (c, twcc,) if st errors have occurred , f)) 2 t during the transmission). If d((rl, r ~ )(e, 1 then declare a unidirectional error.

H=

i

0 0 1 1 0

0 0 1 1 1

0 1 0 0 1

0 1 0 1 0

0 1 0 1 1

0 1 1 0 0

0 1 1 0 1

A(2,4;4)

X

T6

and

It follows from Theorem 2.3 and Construction 2.10 that in the event that less than or equal than t errors have occurred or that more than t unidirectional errors have occurred, the Decoding Algorithm will either correctly decode the errors or correctly declare a unidirectional error. We end this section with an example that shows how the encoding and decoding works. 0 0 1 0 1

X

T6

Example 4. I: Consider the 1-EC/AUED with k = 16 given in Example 2.12. The T(22, 7; 2) tail matrix is given by the first 22 rows of the matrix A(6, 5 ; 2) x T,, where

+

0 0 0 1 1

X

Tz=[i 0 0 The first step is encoding the 16 information symbols into a systematic [21, 16, 31 (shortened) Hamming code. As parity check matrix of this code we may take 0 1 1 1 0

0 1 1 1 1

1 0 0 0 1

1 0 0 1 0

1 0 0 1 1

1 0 1 0 1

1 0 1 1 0

1 0 0 0 0

0 1 0 0 0

0 0 1 0 0

0 0 0 1 0

I

0 0 0 0 1

Authorized licensed use limited to: Hitachi San Jose Research Center. Downloaded on March 17, 2009 at 04:27 from IEEE Xplore. Restrictions apply.

BLAUM AND VAN TILBORG: I-ERROR CORRECTIONIALL UNIDIRECTIONAL CODES

1499

TABLE V 4-EDIAUED CODES k-range 1

1

Construction

g(8-9)

*S

'

- (10-11)

T6

,

- (12-13)

~

-

n'-range

2

14 (14-15)

TS

3

17 (16-17)

T9

4

19 (18-19)

A(2,5;5) x T, or TI0

5-7

20-23

A(2,5;5)

8-10

24-27

A(2,5;5) x T7

11-12

28-31

A(2,5;5) x T,

13-15

32-35

A(2,5;5) x Tg

16-19

36-39

A(2,5;5) x A(2,5;5) x T, or A2(2,5;5) x TI,

20-25

40-47

A(2,5;5)

26-31

48-55

A(2,5;5) x A(2,5;5) x T,

32-47

56-71

A(12,15;5) x T3

48-75

72-103

A(26,17;5) x T,

76-123

104-155

A(26,17;5) x T3

124-183

156-215

A(36,18;5) x T j

184-251

2 16-287

A(36,18;5) x Tq

252-331

288-367

A(46,19;5) x TI

X

X

Tg

A(2,5;5)

X

T6

which gives the generator matrix r

1 1

G=

0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1 1

0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0

0 1 1 1 0 0 0 1 1 1 1 0 0 0 1 1

1 0 1 1 0 1 1 0 0 1 1 0 1 1 0 1

1 1 0 1 1 0 1 0 1 0 1 1 0 1 1 0

L

Authorized licensed use limited to: Hitachi San Jose Research Center. Downloaded on March 17, 2009 at 04:27 from IEEE Xplore. Restrictions apply.

1500

IEEE TRANSACTIONS ON COMPUTERS, VOL. 38, NO. 11, NOVEMBER 1989

k range

n'-range

8-11

12-15

6

6

12-16

17-21

8

I

20-26

25-3 1

8

8

28-32

34-38

10

8

2

52-51

58-63

10

9

1

62-64

69-71

12

9

3

112-120

119-127

12

10

2

r* from [Ill

r* from Table I1

Gain in bits

1

TABLE VI1 COMPARISON OF SOME RESULTS OF [I 11 WITH TABLES II1-V

-

~~

~

k

n'

t -

r* from [ 111

r* from Tables 111, IV,V

Gain in bits

12

21

2

11

9

2

51

63

2

14

12

2

113

127

2

17

14

3

12

23

3

13

10

3

16

31

3

13

12

1

46

63

3

17

15

2

23 1

255

3

25

18

7

39

63

4

20

18

2

99

127

4

25

20

5

30

22

8

4 223 255 - --

Assume we want to encode the information vector

u=1001110100010110.

algorithm of the [21, 16, 31 1-error correcting code to rl. The syndrome is given by

Using the generator matrix G , this vector is encoded as c=100111010001011011100.

Finally, w(c) = 11, so we have to append as tw(c) the 12th row in T(22, 7; 2), which is 1 1 0 0 1 0 0. The encoded codeword is finally

u=1001110100010110 11100 1100100. This example shows that the encoding is very simple; essentially, it is as complex as the encoder of the 1-error correcting code plus a tail that is a function of the weight of the codeword. Now, assume we receive r = (rl, r2)

r=1001010100010110 11100 1100100.

Hr,=

[

which corresponds to the fifth column of H , i.e., the decoder gives

c= 10 0 1 1 10 1 0 0 0 10 1 1 0

1 1 1 0 0.

In step 2 of the decoding algorithm, we must compute t^ = t M c ) which , gives 1 1 0 0 1 0 0. We observe that d((rl,r2),( 2 , t^)) = 1, so we declare (t,?) to be the transmitted codeword. Now, assume we receive r = ( r l , t 2 ) ,

By step 1 of the algorithm, we have to apply the decoding r = 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 1 0 0.

Authorized licensed use limited to: Hitachi San Jose Research Center. Downloaded on March 17, 2009 at 04:27 from IEEE Xplore. Restrictions apply.

BLAUM AND VAN TILBORG: I-ERROR CORRECTIONIALL UNIDIRECTIONAL CODES

Repeating the procedure, in step 1, the syndrome is

Hr,=

[

which corresponds to the 14th column in H . Hence, rl is decoded as c=1000000000010110

10100.

Since w(2) = 6, in step 2 we obtain t^ = 0 0 1 1 1 0 1 [the seventh row in T(22, 7; 2)]. Clearly, d ( ( r l ,r2), (e, f)) = 4 > 1, so, the decoder declares an uncorrectable error. In this example, this might have happened, for instance, if the vector U obtained at the beginning of this example, u=1001110100010110 11100 1100100 has been transmitted and the vector r=1000000000010010 10100 0000100 has been received. Notice that in this case a unidirectional error of type 1 0 has occurred.

1501

[6] T. KIQve, “Upper bounds on codes correcting asymmetric errors,” IEEE Trans. Inform. Theory, vol. IT-27, no. 1, pp. 128-131, Jan. 1981. “Error-correcting codes for the asymmetric channel,” Rep. in [7] -, Informatics, Univ. of Bergen, Bergen, Norway. [8] F. J. MacWilliams and N. J. A. Sloane, The Theory of ErrorCorrecting Codes. Amsterdam, The Netherlands: North-Holland, 1978. [9] R. J. McEliece, “A comment on ‘A class of codes for asymmetric channels and a problem from the additive theory of numbers’,’’ IEEE Trans. Inform. Theory, p. 137, 1973. [lo] N . Nikolos, N. Gaitanis, and G . Philokyprou, “t-error correcting all unidirectional error detecting codes starting from cyclic AN codes,” in Proc. 1984 In/. Conf. Fault-Tolerant Cornput., Kissimmee, FL, pp. 318-323. “Systematic t-error correctingiall unidirectional error detecting [I I] -, codes,” IEEE Trans. Cornput., vol. C-35, no. 5 , pp. 394-402, May 1986. [I21 D. K. Pradhan, “A new class of error-correcting/detecting codes for fault-tolerant computer application,” IEEE Trans. Cornput., vol. C29, pp. 471-481, June 1980. [I31 R. R. Varshamov, “A class of codes for asymmetric channels and a problem from the additive theory of numbers,” IEEE Trans. Inform. Theory, pp. 92-95, 1973. [I41 T . Verhoeff, “An updated table of minimum distance bounds for binary linear codes,” IEEE Trans. Inform. Theory, vol. IT-33, no. 5 , pp. 665-680, Sept. 1987. I151 J . H. Weber, C . de Vroedt, and D. E. Boekee, “Bounds and constructions for binary code of length less than 24 and asymmetric distance less than 6,” IEEE Trans. Inform. Theory, vol. IT-34, no. 5 , pp. 1321-1331, Sept. 1988.

-+

V. CONCLUSIONS

We have presented codes that can correct t errors and detect more than t unidirectional errors. Our construction starts with a t-error correcting code and then strongly uses asymmetric terror correcting codes. We used the best available random error correcting and asymmetric error correcting codes. If these codes are improved, our construction will be improved too. We give asymptotic results, tables with the relevant parameters, comparison tables with previous constructions in literature, and a decoding algorithm. A specific example has been discussed in detail. A lower bound on the redundancy of a systematic t-ECIAUED code is provided in [2]. The codes presented in this paper have higher redundancy than this bound. If the bound is tight, then there must exist t-EC/AUED codes with lower redundancy than the code proposed here. REFERENCES [I] 121

[3]

[4]

[SI

B. Bose, “On systematic SEC/MUED code,” in Proc. FTCS, vol. 11, June 1981, pp. 265-267. B. Bose and D. K. Pradhan, “Optimal unidirectional error detecting/ correcting codes,” IEEE Trans. Cornput., vol. C-31, pp. 564-568, June 1982. B. Bose and T . R. N. Rao, “Theory of unidirectional error correcting/ detecting codes,” IEEE Trans. Cornput., vol. C-31, pp. 521-530, June 1982. S . D. Constantin and T . R. N. Rao, “On the theory on binary asymmetric error correcting codes,” Inform. Contr., vol. 40, pp. 2036, 1979. P. Delsarte and P. Piret, “Bounds and constructions for binary symmetric error correcting codes,” IEEE Trans. Inform. Theory, vol. IT-27. no. 1, pp. 125-128, Jan. 1981.

Mario Blaum (S’84-M’85) was born in Buenos Aires, Argentina, on September 16, 1951. He received the degree of Licenciado from the University of Buenos Aires in 1977, the M.Sc. degree from the Israel Institute of Technology in 1981, and the Ph.D. degree from the California Institute of Technology in 1984, all in mathematics. From January to June 1985, he was a Research Fellow at the Department of Electrical Engineering at Caltech. In August, 1985, he joined the IBM Research Division at the Almaden Research Center, San Jose, were he is presently a Research Staff Member. His research interests include error correcting codes, combinatorics, and neural networks.

I

Henk van Tilborg (M’79-SM’83) was born in Tilburg, The Netherlands, on September 1, 1947. He received the M.Sc. and Ph.D. degrees from the Eindhoven University of Technology, Eindhoven, The Netherlands in 1971 and 1976, respectively. He spent the first four months of 1971 at the Jet Propulsion Laboratories, Pasadena, CA During the next three months of 1971 he visited Bell Laboratories, Murray Hill, NJ During the academic year 1976- 1977 he worked again in the Communications Systems Research Section at the Jet Propulsion Laboratory and gave a course in coding theory at the California Institute of Technology, Pasadena, as a Visiting Assistant Professor During the academc year 1982-1983, he was a Visiting Professor in mathematics at the Catholic University of Leuven, Belgium During the first two terms of the academic year 1984-1985, he was a Visiting Associate Professor in Electrical Engineering at the California Institute of Technology and during the summer of 1986 he worked as a Visiting Scientist at the IBM Almaden Research Center in San Jose, CA Since 1972 he has been with the Department of Mathematics in Eindhoven, University of Technology, The Netherlands. His main interests are coding theory, cryptology, and discrete mathematics

Authorized licensed use limited to: Hitachi San Jose Research Center. Downloaded on March 17, 2009 at 04:27 from IEEE Xplore. Restrictions apply.