Next Article in Journal
Some Modified Ridge Estimators for Handling the Multicollinearity Problem
Previous Article in Journal
Endomorphism Type of P(3m + 1,3)
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

A General Construction of Integer Codes Correcting Specific Errors in Binary Communication Channels

Institute of Mathematics and Informatics, Bulgarian Academy of Sciences, Acad. G. Bonchev Str., Bl.8, 1113 Sofia, Bulgaria
*
Author to whom correspondence should be addressed.
Mathematics 2023, 11(11), 2521; https://doi.org/10.3390/math11112521
Submission received: 3 May 2023 / Revised: 26 May 2023 / Accepted: 29 May 2023 / Published: 31 May 2023
(This article belongs to the Section Algebra, Geometry and Topology)

Abstract

:
Integer codes have been successfully applied to various areas of communication and computer technology. They demonstrate good performance in correcting specific kinds of errors. In many cases, the used integer codes are constructed by computer search. This paper presents an algebraic construction of integer codes over the ring of integers modulo A = 2 n + 1 capable of correcting at least up to two bit errors in a single b-byte. Moreover, the codes can correct some configurations of three or more erroneous bits, but not all possible ones. The construction is based on the use of cyclotomic cosets of 2 modulo A.

1. Introduction

In many binary communication channels, the majority of errors, besides uniformly distributed single-bit errors, consist of error configurations of several bits that are closely placed in a subsequence of b consecutive bits. We call such a subsequence b-bits byte (b-byte in short). We avoid the term b-burst, since its classical definition requires the first and the last bits to be 1s, while the error configurations considered in the paper have a more general form.
Integer codes are codes over a ring of integers modulo given a positive integer, and have been studied—though only from theoretical point of view—since the beginning of coding theory. Such codes for correcting asymmetric errors are proposed in [1,2]. The name "integer codes" appears for the first time in [3], where such codes are applied to magnetic recording and frame synchronization. Since that time, integer codes have been successfully used in many applications. Error control systems for flash memory [4,5,6,7] and coded modulation [8,9,10] are two examples for such applications. In [11], integer codes are applied to cryptographic construction. Integer codes over Z A with A = 2 b 1 that correct configurations of error bits in a single b-byte are found via computer search in [12,13,14,15,16]. The specific use of integer codes is presented in [17].
Herein, we propose an algebraic construction of codes over the ring Z A of integers modulo A = 2 b + 1 . The obtained codes can correct at least up to two bit errors in a b-byte. The codes can simultaneously correct some configurations of three or more erroneous bits, but not all possible ones.
The next section contains a summary of existing results and necessary notations and definitions that are required for reading the paper. The proposed construction based on the cyclotomic cosets of 2 modulo A = 2 b + 1 is described in Section 3. Section 4 discusses applications of constructed codes to error control in binary channels.

2. Preliminaries

Let us recall the basic definitions concerning integer codes.
Definition 1. 
Let Z A be the ring of integers modulo A. An integer code of length n with parity-check matrix H Z A m × n , is referred to as a subset of Z A n , defined by
C ( H ) = { c Z A n | c H T = 0 }
where all zero vectors 0 Z A m . (We will write only C if there is no possibility for ambiguity.)
C is said to be [ n , n m ] A integer code. Let us note that in this paper, the notation only means that H has m rows, n columns, and entries from Z A , not that C is a linear code. For the not-prime A, the code C is a submodule, not a linear subspace. However in our case, the difference does not concern correcting properties of considered codes.
The idea behind use of integer codes is that they demonstrate better performance in correcting specific types of errors. The parity-check matrix H can be chosen, thinking about dominant errors.
Definition 2. 
Let k i and l j be positive integers, i = 1 , , s , j = 1 , , m . The code C ( H ) is said to be a single ( ± k 1 , ± k 2 , , ± k s , l 1 , l 2 , , l m ) that is error correctable if it can correct any error vector with only one nonzero entry with value l j or ± k i .
The existence of codes with the above defined property implies a lower bound for the size A of the alphabet:
A ( 2 s + m ) n + 1 .
Indeed, the ( 2 s + m ) n possible single ( ± k 1 , ± k 2 , , ± k s , l 1 , l 2 , , l m ) error vectors e must have pairwise disjoint syndromes eH T .
The sequence of bits in a binary communication channel can be considered as a sequence of blocks of bits with the same length b. (We call such blocks b-bytes, but b is not necessarily equal to 8). The advantage of this consideration is that the blocks can be interpreted as nonnegative integers less than 2 b , that is, as elements of Z A with A 2 b . Hence, the binary input sequence can be transformed into a sequence of elements of Z A , and then it can be encoded using integer codes over Z A with A 2 b .
It seems the natural choice is A = 2 b , , but it is not the right choice in any case. Indeed, the situation is more complex. Note that changing one bit in a b-byte is equivalent to adding or subtracting 2 i , i = 0 , 1 , , b 1 to the integer corresponding to the b-byte. However, 2 i divides 2 b , which generates complications. If A > 2 b , there are elements of A that cannot be transmitted over the channel; thus, they must not appear as coordinates of the codewords. Hence, the encoding procedure has to comply with this requirement.
Let B { 0 , 1 , , 2 b 1 } be the integer corresponding to a given b-byte sent through the communication channel. At the other end of the channel, the received b-byte may differ in several bits from the original. This difference results in adding a nonzero integer E , 2 b < E < 2 b , to B, that is, the integer value of the received b-byte is V = B + E .
Here is the correspondence between single-bit errors and E in a b-byte.
E1 
The ( i + 1 ) -th bit 1 0 : E = 2 i , i = 0 , 1 , , b 1 .
E2 
The ( i + 1 ) -th bit 0 1 : E = 2 i , i = 0 , 1 , , b 1 .
All other error configurations in a single b-byte correspond to combinations of E1 and E2; thus, E is a sum of powers (positive or negative) of 2. For example, in the case of transposition of two adjacent different bits (The existence of such errors has been reported in the literature), E = 2 i 2 i 1 = 2 i 1 or E = 2 i + 2 i 1 = 2 i 1 . Note that the same values correspond to the change of one bit in the b-byte. It may seem amusing, but the decoding procedure of integer codes corrects the b-byte. The explanation is in the difference between the corresponding values of B (in V = B + E ). We also discuss this fact in Section 4.

3. Construction of Integer Code

In this section, we propose a construction of a class of integer codes that is based on cyclotomic cosets.
Recall a cyclotomic coset of q modulo A , ( A , q ) = 1 , with leader s is the set
C s = { s q i ( mod A ) i = 0 , 1 , m 1 } ,
where m is the minimal positive integer, such that s q m s ( mod A ) . The two cyclotomic cosets are either disjoint, C s C t = ; or they coincide, C s = C t .
Hereafter, in this paper, A = 2 b + 1 .
There are two arguments for our choice:
  • A = 2 b + 1 is coprime with 2; thus, we can use cyclotomic cosets of 2 modulo A.
  • A = 2 b + 1 is the smallest integer greater than 2 b . Hence, we have to avoid the use of only 2 b as a coordinate of a codeword.
Here are several simple but useful properties of cyclotomic cosets of 2 modulo 2 b + 1 . Their proofs are straightforward.
P1 
If b has odd divisor d, then 2 b d + 1 divides 2 b + 1 . In partial, if b is odd, 3 | ( 2 b + 1 ) .
P2 
If A = 2 b + 1 = ( 2 k + 1 ) B , then C B has length 2 k . If there is a cyclotomic coset of length 2 k , then 2 k + 1 divides A.
Lemma 1. 
If A = 2 b + 1 , then the cyclotomic cosets C s of 2 modulo A have even length. In partial for s and A coprime, the length | C s | = 2 b and
C s = { s , 2 s , , 2 b 1 s , s , 2 s , , 2 b 1 s } .
Proof. 
2 b 1 ( mod A ) gives 2 2 b 1 ( mod A ) . Hence, the order m of 2 modulo A is a divisor of 2 b . The assumption m b leads to 2 b 1 ( mod A ) , which is a contradiction. Thus, m = 2 k , where k | b , that is, | C 1 | is an even number. Let d = gcd ( s , A ) , s = d s 1 , A = d A 1 . Let l = | C s | , i.e., l be the smallest positive integer such that s ( 2 l 1 ) 0 ( mod A ) . If d = 1 , then A ( 2 l 1 ) ; thus (see above), l = 2 b . Otherwise, we have ( 2 l 1 ) 0 ( mod A 1 ) , where l is the minimal positive integer with this property. Since 2 2 b 1 ( mod A 1 ) we have l | 2 b . Hence, l = 2 k , k | b . The structure of C s follows from 2 b 1 ( mod A ) . □
Let S be the set of the leaders of all cyclotomic cosets with length 2 b .
Theorem 1. 
Any integer code over Z A , A = 2 b + 1 , having parity check matrix H = ( h 1 , h 2 , , h n ) , where h j S , can correct single ± 2 i error, i = 0 , 1 , , b 1 .
Proof. 
Syndromes ± 2 i h j belong to the coset C h j and since cyclotomic cosets are disjoint, all syndromes corresponding to single ± 2 i errors are pairwise different. □
We have to note that if s Z A is the corresponding value to a given bit errors configuration in a b-byte then its cyclic shifts corresponds to s 2 i C s . This simple observation leads us to the following
Theorem 2. 
Let E be a set of cyclotomic cosets containing C 1 . If there exist h 2 , , h n Z A such that E , h 2 E , , h n E are disjoint sets of different cosets, then the code with check matrix H = ( 1 , h 2 , , h n ) can correct error values belonging to E , and of course, bit error configurations corresponding to them.
Proof. 
The proof is straightforward. □

4. Application of the Constructed Codes

In this section, we will apply the considered integer codes to correct up to two erroneous bits in a b-byte. As we have noted in the Introduction, there are binary channels where these types of errors dominate. The experiments with simulations of several channels we have made also confirm this observation. We shall explain the idea behind these simulations by describing in short one such form of optical wireless communication (for an example, we will describe one of our experiments in this direction). We generated a very long random binary sequence and applied simulation procedure of the optical wireless channel given in [18] to determine the error sequence (the difference between the input and output sequences). Then, with a code of length n over Z 2 b + 1 in the mind, we divided the error sequence into blocks of nb-bytes. The next step is to count the number of 1s in each block and how they are distributed among b-bytes: what part of blocks contain only one 1, what part of blocks have two 1s in one b-byte, and so on. Table 1 illustrates the results that we obtained. With the exception of the cases of the very small signal-to-noise ratio (SNR 4 decibels (dB)), the considered error configurations (columns two and three) are the majority. Very soon (SNR 7 dB), the error configuration that consists of one erroneous bit per a codeword (see second column of Table 1) becomes the dominant error type.
Now, let us fix some notations. In this paper, the leftmost bit is the least significant bit and the rightmost bit is the most significant in a b-byte, that is, the latter represents the number 2 b 1 .
Let a 1 a i a i + k a b be an arbitrary b-byte. Below lists the possible error transformation of i-th and ( i + k ) -th bits and the corresponds to them the alteration E of the integer value of the byte.
T1… 0 … 0 …… 1 … 1 … E = 2 i 1 + 2 k 1 = ( 1 + 2 k ) 2 i 1
T2… 1 … 1 …… 0 … 0 … E = 2 i 1 2 k 1 = ( 1 + 2 k ) 2 i 1
T3… 1 … 0 …… 0 … 1 … E = 2 i 1 + 2 k 1 = ( 2 k 1 ) 2 i 1
T4… 0 … 1 …… 1 … 0 … E = 2 i 1 2 k 1 = ( 2 k 1 ) 2 i 1
where k = 1 , , b 1 and i = 1 , , b k .
Obviously, the error values E C 2 k + 1 for T1 and T2, while E C 2 k 1 for T3 and T4. However, since A = 2 b + 1 , we have
2 k + 1 2 k 2 b = 2 k ( 2 b k 1 ) ( mod A )
as well as
2 k 1 2 k + 2 b = 2 k ( 2 b k + 1 ) ( mod A ) .
Hence,
C 2 k + 1 = C 2 b k 1 , k = 1 , , b 1
Therefore, we can conclude that cosets C 2 k ± 1 , but only for k = 1 , , b / 2 , contain error values E for error configurations T1–T4. (Note that for b, even C 2 b / 2 + 1 = C 2 b / 2 1 .)
Hence the set of error values is a proper subset of
E = { C 2 k ± 1 , k = 1 , , b / 2 }
Theorem 3. 
If E consists of t cyclotomic cosets, then
2 b t n 2 b
is a necessary condition for the existence of an integer code that can correct the error configurations of types T1–T4 defined by E . In partial a necessary condition for the code to correct all the considered error configurations T1–T4 is
2 b ( b 2 ) n 2 b
Proof. 
If H = ( h 1 , h 2 , , h n ) is a parity check matrix of an integer code capable to correct all error configurations T1–T4, the sets of cyclotomic cosets { h i E } have to be disjoint, with lengths of 2 b each. Hence, we obtain the following necessary condition (inequality):
2 b n t A 1 = 2 b , n 2 .
Since t is at most b 2 we obtain (2). □
Example 1 
( b = 9 , n = 2 (see Appendix A.2)). The minimal b that satisfies inequality (2) (for the minimal n = 2 ) is b = 8 , but a required code does not exist. Such a code exists for b = 9 and n = 2 . In that case, H = ( 1 23 ) and
E C 1 C 3 C 5 C 7 C 9 C 15 C 17
23 E C 23 C 39 C 53 C 11 C 45 C 21 C 25
Example 2 
( b = 10 , n = 3 (see Appendix A.3)). In this case, a code that corrects all two-bit errors in a single b-byte per a codeword exists: the code with H = ( 1 19 27 )
E C 1 C 3 C 5 C 7 C 9 C 15 C 17 C 31 , C 33 = C 31
19 E C 19 C 57 C 35 C 39 C 171 C 105 C 43 C 109
27 E C 27 C 59 C 55 C 51 C 53 C 155 C 107 C 47
Length n = 3 is the maximal possible value for the existence of such a code.
Example 3 
( b = 8 , n = 4 (see Appendix A.1)). If we restrict ourselves to E = C 1 C 3 C 5 , that is, to the case when we correct only erroneous bits that are either adjacent or there is one correct bit between them, we can construct codes with larger rates.
When b = 8 , i.e. A = 257 , the code with H = ( 1 7 9 19 ) (the rate is 3/4) corrects a single b-byte of the aforesaid configurations with up to 2 erroneous bits. Indeed,
7 E = C 7 C 21 C 23 ; 9 E = C 9 C 27 C 45 ; 19 E = C 19 C 25 C 11 .
Figure 1 presents in graphical form probability of bit error (BER) versus signal/noise ratio per bit in decibels for the aforesaid simulation of noisy wireless optical channel [18]. The blue curve gives BER in the case when no error correcting codes are used. The green and red curves correspond to applying the codes given in Example 1 and Example 2, respectively. The reader can note that the code from Example 2 demonstrates slightly worse performance, but this is the price we pay for the higher code rate.

5. Discussion

In this paper, we propose a general construction of codes over Z 2 b + 1 , which can be used for correcting two erroneous bits (as well as several specific configurations of erroneous bits) in a single b-byte in a codeword of n 2 b-bytes. Like any integer codes, the proposed codes have very simple encoding and decoding without involving arithmetic in finite fields. The proposed construction avoids the exhaustive computer search commonly used for construction similar codes. Determining the cyclotomic cosets of 2 modulo 2 b + 1 can be performed with the simplest mathematical packages (even manually).
Figure 1 (and other our experiments) show that the proposed codes demonstrate good performance. This performance is in some sense unexpected, since the application of integer codes to the considered binary channel is not so proper as their application to coded modulation and flash memory. For example, we performed a comparison between the code given in Example 2 and a BCH code with close length and rate. Our expectation was for the BCH code to demonstrate better performance since the considered errors are not strongly dominant. However, the results were similar. Hence, with their simple encoding and decoding procedures, integer codes are at least commensurable with other codes with similar parameters, but have complicated encoding and decoding.

Author Contributions

All authors contributed equally. All authors have read and agreed to the published version of the manuscript.

Funding

This work has been partially supported by the National Science Fund of Bulgaria under Grant KP-06-N32/2-2019 and by Grant No BG05M2OP001-1.001-0003, financed by the Science and Education for Smart Growth Operational Program (2014–2020) and co-financed by the European Union through the European structural and Investment funds.

Data Availability Statement

Not applicable.

Acknowledgments

The authors acknowledge the access to the e-infrastructure provided by the Grant No. D01-168/28.07.2022 “National Centre for High Performance and Distributed Computing” of the Ministry of Education and Science of Bulgaria. The authors would like to thank to the anonymous reviewers for their valuable remarks on the content of the paper.

Conflicts of Interest

The authors declare no conflict of interest.

Appendix A. List of the Leaders of Cyclotomic Cosets of 2 Modulo A with Maximal Length 2b for Several Values of b

Appendix A.1. The Case b = 8, A = 257, Prime

S = { 1 , 3 , 5 , 7 , 9 , 11 , 13 , 15 , 19 , 21 , 23 , 25 , 27 , 37 , 43 , 45 } .

Appendix A.2. The Case b = 9, A = 513 = 3 × 9 × 19

S = { 1 , 3 , 5 , 7 , 9 , 11 , 13 , 15 , 17 , 19 , 21 , 23 , 25 , 27 , 29 , 35 , 37 , 39 , 41 , 43 , 45 , 51 , 53 , 55 , 75 , 77 , 83 , 85 } | C 57 | = 6 ; | C 171 | = 2 .

Appendix A.3. The Case b = 10, A = 1025 = 25 × 41

S = { 1 , 3 , 5 , 7 , 9 , 11 , 13 , 15 , 17 , 19 , 21 , 23 , 25 , 27 , 29 , 31 , 35 , 37 , 39 , 41 , 43 , 45 , 47 , 49 , 51 , 53 , 55 , 57 , 59 , 69 , 71 , 73 , 75 , 77 , 83 , 85 , 87 , 89 , 91 , 93 , 101 , 103 , 105 , 107 , 109 , 147 , 149 , 155 , 171 , 173 , 179 } | C 205 | = 4 .

References

  1. Varshamov, R.; Tenegolz, G. A code for correcting a single asymmetric error. Autom. Telemat. 1965, 26, 288–292. (In Russian) [Google Scholar]
  2. Varshamov, R. A class of codes for asymmetric channels and a problem from the additive theory of numbers. IEEE Trans. Inf. Theory 1973, 19, 92–95. [Google Scholar] [CrossRef]
  3. Han Vinck, A.J.; Morita, H. Codes over the ring of integers modulo m. IEICE Trans. Fundam. Electron. Commun. Comput. Sci. 1998, 81, 2013–2018. [Google Scholar]
  4. Cassuto, Y.; Schwartz, M.; Bohossian, V.; Burck, J. Codes for asymmetric limited-magnitude errors with application to multi-level flash memories. IEEE Trans. Inf. Theory 2010, 56, 1582–1595. [Google Scholar] [CrossRef]
  5. Klove, T.; Bose, B. Systematic, single limited magnitude error correcting codes for flash memories. IEEE Trans. Inf. Theory 2011, 57, 4477–4487. [Google Scholar] [CrossRef]
  6. Klove, T.; Lou, J.; Naydenova, I.; Yari, S. Some codes correcting asymmetric errors of limited magnitude. IEEE Trans. Inf. Theory 2011, 57, 7459–7472. [Google Scholar] [CrossRef]
  7. Kostadinov, H.; Manev, N. Integer Codes Correcting Asymmetric Errors in Nand Flash Memory. Mathematics 2021, 9, 1269. [Google Scholar] [CrossRef]
  8. Kostadinov, H.; Morita, H.; Iijima, N.; Han Vinck, A.J.; Manev, N. Soft Decoding of Integer Codes and Their Application to Coded Modulation. IEICE Trans. Fundam. Electron. Commun. Comput. Sci. 2010, 93, 1363–1370. [Google Scholar] [CrossRef]
  9. Morita, H. Nearest-Neighbor Error Correcting Codes on a Hexagonal Signal Constellation. In Proceedings of the 2015 IEEE International Symposium on Information Theory (ISIT), Hong Kong, China, 14–19 June 2015; pp. 2480–2484. [Google Scholar]
  10. Kostadinov, H.; Manev, N. New Integer Coded Hexagonal QAM Schemes and Their Performance in AWGN Channel. In Advanced Computing in Industrial Mathematics: 15th Annual Meeting of the Bulgarian Section of SIAM, Sofia, Bulgaria, 15–17 December 2020; Georgiev, I., Kostadinov, H., Lilkova, E., Eds.; Revised Selected Papers; Studies in Computational Intelligence; Springer: Cham, Switzerland, 2023; Volume 1076, pp. 100–110. [Google Scholar]
  11. Mihaljević, M.J.; Radonjić, A.; Wang, L.; Xu, S. Security Enhanced Symmetric Key Encryption Employing an Integer Code for the Erasure Channel. Symmetry 2022, 14, 1709. [Google Scholar] [CrossRef]
  12. Radonjic, A.; Vujicic, V. Integer codes correcting burst errors within a byte. IEEE Trans. Comput. 2013, 62, 411–415. [Google Scholar] [CrossRef]
  13. Radonjic, A.; Vujicic, V. Integer codes correcting single errors and burst asymmetric errors within a byte. Inf. Process. Lett. 2017, 2017 121, 45–50. [Google Scholar] [CrossRef]
  14. Radonjic, A. (Perfect) integer codes correcting single errors. IEEE Commun. Lett. 2018, 22, 17–20. [Google Scholar] [CrossRef]
  15. Radonjic, A.; Vujicic, V. Integer codes correcting sparse byte errors. Cryptogr. Commun. 2019, 11, 1069–1077. [Google Scholar] [CrossRef]
  16. Radonjic, A. Integer Codes Correcting Double Errors and Triple-Adjacent Errors within a Byte. IEEE Trans. Very Large Scale Integr. (VLSI) Syst. 2020, 28, 1901–1908. [Google Scholar] [CrossRef]
  17. Pokhrel, N.K.; Das, P.K. Low-density and high-density asymmetric CT-burst correcting integer codes. Adv. Math. Commun. 2022. [Google Scholar] [CrossRef]
  18. Ghassemlooy, Z.; Popoola, W.; Rajbhandari, S. Optical Wireless Communications, System and Channel Modelling with MATLAB; CRC Press: Boca Raton, FL, USA, 2019; ISBN 13: 978-1-4398-5235-4. [Google Scholar]
Figure 1. BER for codes given in Examples 1 and 2.
Figure 1. BER for codes given in Examples 1 and 2.
Mathematics 11 02521 g001
Table 1. The case n = 3 , b = 10 .
Table 1. The case n = 3 , b = 10 .
SNR
in dB
1 Bit in
a Codeword
2 Bits in
1 Symbol
2 Bits in
2 Symbols
3 or More Bits
in a Codeword
10.002230.000670.004230.02573
20.004310.001670.005550.02057
30.007270.003190.005840.01419
40.010460.004530.004520.00797
50.012370.004610.002470.00341
60.011710.003720.000880.00125
70.008710.001410.000220.00021
80.005030.00042 3 × 10 5 2 × 10 5
90.002210.00008 2 × 10 6 2 × 10 6
100.00077 9 × 10 6 6 × 10 8 1 × 10 7
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content.

Share and Cite

MDPI and ACS Style

Kostadinov, H.; Manev, N. A General Construction of Integer Codes Correcting Specific Errors in Binary Communication Channels. Mathematics 2023, 11, 2521. https://doi.org/10.3390/math11112521

AMA Style

Kostadinov H, Manev N. A General Construction of Integer Codes Correcting Specific Errors in Binary Communication Channels. Mathematics. 2023; 11(11):2521. https://doi.org/10.3390/math11112521

Chicago/Turabian Style

Kostadinov, Hristo, and Nikolai Manev. 2023. "A General Construction of Integer Codes Correcting Specific Errors in Binary Communication Channels" Mathematics 11, no. 11: 2521. https://doi.org/10.3390/math11112521

APA Style

Kostadinov, H., & Manev, N. (2023). A General Construction of Integer Codes Correcting Specific Errors in Binary Communication Channels. Mathematics, 11(11), 2521. https://doi.org/10.3390/math11112521

Note that from the first issue of 2016, this journal uses article numbers instead of page numbers. See further details here.

Article Metrics

Back to TopTop