Cross-Error Correcting Integer Codes over Z 2 m Anna-Lena Trautmann Department of Electrical & Computer Systems Eng., Monash University Department of Electrical & Electronic Engineering, University of Melbourne October 29th, 2014 ISITA 2014, Melbourne In collaboration with Emanuele Viterbo.
Introduction Motivation and Introduction Codes over integers are known objects, useful for e.g. coded modulation or magnetic recording. Discretized version of Euclidean metric is Lee metric. 1 / 21
Introduction Motivation and Introduction Codes over integers are known objects, useful for e.g. coded modulation or magnetic recording. Discretized version of Euclidean metric is Lee metric. Our special case: Errors only occur in one coordinate with an upper bound on the absolute error value. Then the decoding region (sphere) of a codeword is a cross. 1 / 21
Introduction Motivation and Introduction Codes over integers are known objects, useful for e.g. coded modulation or magnetic recording. Discretized version of Euclidean metric is Lee metric. Our special case: Errors only occur in one coordinate with an upper bound on the absolute error value. Then the decoding region (sphere) of a codeword is a cross. 7 7 6 6 5 5 4 4 3 3 2 2 1 1 1 2 3 4 5 6 7 1 2 3 4 5 6 7 Lee sphere Cross sphere 1 / 21
Introduction Further motivation: We can get larger code rates for cross spheres than for Lee spheres. Example Over Z 16 C L = {(0, 0), (1, 4), (4, 2), (5, 6)} is an optimal 2-Lee-error correcting code. But we can find a larger cross-error correcting code (with error magnitude 2) C + = {(1, 0), (4, 1), (6, 6), (0, 3), (3, 4)}. 2 / 21
Introduction Related Work Integer codes for errors in s coordinates with bounded error value (Vinck, Morita 98) Single cross error correcting integers codes over Z p (Morita, Kamada, Kostadinov, van Wijngaarden 07) Single peak shift correcting codes (Levenshtein-Vinck 93, Tamm 97) Works on Lee metric codes (e.g. Golomb-Welch 70, Etzion-Vardy-Yaakobi 10, Etzion 11) 3 / 21
Introduction Related Work Integer codes for errors in s coordinates with bounded error value (Vinck, Morita 98) Single cross error correcting integers codes over Z p (Morita, Kamada, Kostadinov, van Wijngaarden 07) Single peak shift correcting codes (Levenshtein-Vinck 93, Tamm 97) Works on Lee metric codes (e.g. Golomb-Welch 70, Etzion-Vardy-Yaakobi 10, Etzion 11) Open question: General results on and constructions of cross error correcting codes over Z 2 m. 3 / 21
Mathematical Framework and Bounds 1 Introduction 2 Mathematical Framework and Bounds 3 Linear Constructions for n = 2, 3 4 Decoding 5 Conclusion
Mathematical Framework and Bounds Definition (Cross Distance) For any v, w Z n q v i w i if v i w i and v j = w j j i d + (v, w) := 0 if v = w. if i, j : i j, v i w i, v j w j 4 / 21
Mathematical Framework and Bounds Definition (Cross Distance) For any v, w Z n q v i w i if v i w i and v j = w j j i d + (v, w) := 0 if v = w. if i, j : i j, v i w i, v j w j Theorem The cross distance sphere with center c and radius t, S + t (c) := {v Zn q d + (v, c) t} is exactly the set of c plus all possible cross errors of magnitude at most t, i.e. S + t (c) = {c + αe i α t}. 4 / 21
Mathematical Framework and Bounds Definition (Cross Distance) For any v, w Z n q v i w i if v i w i and v j = w j j i d + (v, w) := 0 if v = w. if i, j : i j, v i w i, v j w j Theorem The cross distance sphere with center c and radius t, S + t (c) := {v Zn q d + (v, c) t} is exactly the set of c plus all possible cross errors of magnitude at most t, i.e. S + t (c) = {c + αe i α t}. = An integer code C is cross-error correcting with error magnitude t iff d + (C) 2t + 1. 4 / 21
Mathematical Framework and Bounds Lemma A cross sphere in Z n q with radius t and any center c Z n q has volume (c) = 2nt + 1. S + t 5 / 21
Mathematical Framework and Bounds Lemma A cross sphere in Z n q with radius t and any center c Z n q has volume (c) = 2nt + 1. Theorem S + t Sphere Packing Bound for C + Z n 2m for error magnitude t: C + Zn 2 m 2nm S t + = (0) 2nt + 1. 5 / 21
Mathematical Framework and Bounds Lemma A cross sphere in Z n q with radius t and any center c Z n q has volume (c) = 2nt + 1. Theorem S + t Sphere Packing Bound for C + Z n 2m for error magnitude t: C + Zn 2 m 2nm S t + = (0) 2nt + 1. A linear code in Z n 2 m has cardinality 2l, l N. Thus, sphere packing bound for linear codes is the greatest power of 2 below or equal to the above bound. 5 / 21
Mathematical Framework and Bounds 2 m C L C + Clin L C + lin 8 2 4 2 4 16 10 19 8 16 32 40 79 32 64 Table : Sphere packing bounds on the cardinality of the different codes in Z 2 2m for t = 3. 2 m C L C + Clin L C + lin 8 20 39 16 32 16 163 316 128 256 32 1310 2521 1024 2048 Table : Sphere packing bounds on the cardinality of the different codes in Z 3 2m for t = 2. 6 / 21
Linear Constructions for n = 2, 3 1 Introduction 2 Mathematical Framework and Bounds 3 Linear Constructions for n = 2, 3 4 Decoding 5 Conclusion
Linear Constructions for n = 2, 3 Theorem Let k := max{i N 2 i t} and m k + 2. The following is a parity check matrix of a cross code in Z 2 2 m with error magnitude t: ( 2 m k 2 2 H = m k 2 ) 0 2 m k 1. The cardinality of this code is C = 2 2(m k) 3. 7 / 21
Linear Constructions for n = 2, 3 Examples: Error magnitude t = 3, over Z 16 : ( ) 2 2 H = 0 4 defines a code of cardinality 8 with generator matrix ( ) 4 4 G =. 0 8 Error magnitude t = 7, over Z 16 : ( ) 1 1 H = 0 2 defines a code of cardinality 2 with generator matrix G = ( 8 8 ). 8 / 21
Linear Constructions for n = 2, 3 Error magnitude t = 3, over Z 16 : 15 10 5 5 10 15 9 / 21
Linear Constructions for n = 2, 3 Error magnitude t = 3, over Z 64 : 60 50 40 30 20 10 10 20 30 40 50 60 10 / 21
Linear Constructions for n = 2, 3 Theorem Let m 4 and t = 2 or t = 3. The code in Z 2 2 m or parity check matrix G = ( 1 t + 1 16 0 ) generated by H = ( (t + 1) 2 m 4 2 m 4) is a cross code with magnitude t and cardinality 2 2(m t) if m 6. If m = 4 the cardinality is 16 for both t = 2, 3 and if m = 5 the cardinality is 32 for t = 3 and 64 for t = 2. (Typo in paper for m = 5.) 11 / 21
Linear Constructions for n = 2, 3 Error magnitude t = 2, over Z 32 : 30 25 20 15 10 5 5 10 15 20 25 30 35 12 / 21
Linear Constructions for n = 2, 3 Error magnitude t = 3, over Z 32 : 30 25 20 15 10 5 5 10 15 20 25 30 35 13 / 21
Linear Constructions for n = 2, 3 Theorem Let k N be maximal such that 2 k t. A parity check matrix of the form ( 2 m k 2 2 H = m k 2 2 m k 2 ) 0 2 m k 1 (2t + 1) 2 m k 2, defines a cross error correcting code in Z 3 2m of magnitude t. 14 / 21
Linear Constructions for n = 2, 3 Examples: Error magnitude t = 3, over Z 16 : ( ) 2 2 2 H = 0 4 2 defines a code of cardinality 64 with generator matrix ( ) 2 2 4 G =. 1 5 2 Error magnitude t = 7, over Z 16 : ( ) 1 1 1 H = 0 2 1 defines a code of cardinality 16 with generator matrix ( ) 7 3 6 G =. 1 5 10 15 / 21
Decoding 1 Introduction 2 Mathematical Framework and Bounds 3 Linear Constructions for n = 2, 3 4 Decoding 5 Conclusion
Decoding Lemma Assume that the error vector e Z n 2 m has only one non-zero coordinate i (i.e. Hamming weight 1) whose value α is in ±{1,..., t}. Then the syndrome vector s = rh T = (c + e)h T = eh T is the α-multiple of (the transpose of) the i-th column of H. 16 / 21
Decoding Lemma Assume that the error vector e Z n 2 m has only one non-zero coordinate i (i.e. Hamming weight 1) whose value α is in ±{1,..., t}. Then the syndrome vector s = rh T = (c + e)h T = eh T is the α-multiple of (the transpose of) the i-th column of H. = If we can easily identify the multiples of the columns of H, we can easily syndrome decode our codes. 16 / 21
Decoding Decoding algorithm for code with parity check matrix ( 2 m k 2 2 H = m k 2 ) 0 2 m k 1 : Compute the syndromes (s 1 s 2 ) = rh T. IF s 2 = 0 and 2 m k 2 s 1 THEN e := (s 1 /2 m k 2 0). ELSEIF 2s 1 = s 2 and 2 m k 2 s 1 THEN e := (0 s 1 /2 m k 2 ). ELSE return failure. Return c = r e. 17 / 21
Decoding Decoding algorithm for code with parity check matrix ( 2 m k 2 2 H = m k 2 ) 0 2 m k 1 : Compute the syndromes (s 1 s 2 ) = rh T. IF s 2 = 0 and 2 m k 2 s 1 THEN e := (s 1 /2 m k 2 0). ELSEIF 2s 1 = s 2 and 2 m k 2 s 1 THEN e := (0 s 1 /2 m k 2 ). ELSE return failure. Return c = r e. 17 / 21
Decoding Decoding algorithm for code with parity check matrix ( 2 m k 2 2 H = m k 2 ) 0 2 m k 1 : Compute the syndromes (s 1 s 2 ) = rh T. IF s 2 = 0 and 2 m k 2 s 1 THEN e := (s 1 /2 m k 2 0). ELSEIF 2s 1 = s 2 and 2 m k 2 s 1 THEN e := (0 s 1 /2 m k 2 ). ELSE return failure. Return c = r e. 17 / 21
Decoding Decoding algorithm for code with parity check matrix ( 2 m k 2 2 H = m k 2 ) 0 2 m k 1 : Compute the syndromes (s 1 s 2 ) = rh T. IF s 2 = 0 and 2 m k 2 s 1 THEN e := (s 1 /2 m k 2 0). ELSEIF 2s 1 = s 2 and 2 m k 2 s 1 THEN e := (0 s 1 /2 m k 2 ). ELSE return failure. Return c = r e. 17 / 21
Decoding Example: Consider the code over Z 16 with t = 3 and ( ) 2 2 H = 0 4 and a received word r = (12 6). Then (s 1 s 2 ) = rh T = (4 8), i.e. 2s 1 = s 2 which means that the error is of the form e = (0 s 1 /2) = (0 2). Hence, we decode to the codeword c = r e = (12 4). 18 / 21
Conclusion 1 Introduction 2 Mathematical Framework and Bounds 3 Linear Constructions for n = 2, 3 4 Decoding 5 Conclusion
Conclusion Conclusion: We presented constructions for linear cross error correcting codes in Z n 2m for general m and t, for n = 2, 3. These constructions are asymptotically optimal, i.e. achieve the sphere packing bound for m. We presented a decoding algorithm for one of these constructions. Similar algorithms exist for the other constructions. 19 / 21
Conclusion Conclusion: We presented constructions for linear cross error correcting codes in Z n 2m for general m and t, for n = 2, 3. These constructions are asymptotically optimal, i.e. achieve the sphere packing bound for m. We presented a decoding algorithm for one of these constructions. Similar algorithms exist for the other constructions. Open question 1: Are some of these codes optimal? Open question 2: For which parameters can we get better cross codes than optimal Lee codes? Open question 3: Constructions for larger n? 19 / 21
Conclusion Open question 4: Unions of (shifts of) linear codes?! 60 50 40 30 20 10 10 20 30 40 50 60 20 / 21
Conclusion Almost optimal (by factor 2) linear code with t = 2: 60 50 40 30 20 10 10 20 30 40 50 60 21 / 21
Thank you for your attention!