Acessibilidade / Reportar erro

Sequences of Primitive and Non-primitive BCH Codes

ABSTRACT

In this work, we introduce a method by which it is established that how a sequence of non-primitive BCH codes can be obtained by a given primitive BCH code. For this, we rush to the out of routine assembling technique of BCH codes and use the structure of monoid rings instead of polynomial rings. Accordingly, it is gotten that there is a sequence {Cbjn}1jm, where b j n is the length of Cbjn, of non-primitive binary BCH codes against a given binary BCH code C n of length n. Matlab based simulated algorithms for encoding and decoding for these type of codes are introduced. Matlab provides in routines for construction of a primitive BCH code, but impose several constraints, like degree s of primitive irreducible polynomial should be less than 16. This work focuses on non-primitive irreducible polynomials having degree bs, which go far more than 16.

Keywords:
Monoid ring; BCH codes; primitive polynomial; non-primitive polynomial

RESUMO

Neste trabalho, apresentamos um método que estabelece como uma sequência de códigos BCH não primitivos pode ser obtida através de um dado código BCH primitivo. Para isso, utilizamos uma técnica de construção diferente da técnica rotineira de códigos BCH e usamos a estrutura de anéis monoidais em vez de anéis de polinômios. Consequentemente, mostramos que existe uma sequência {Cbjn}1jm, onde b j n é o comprimento do código Cbjn, de códigos BCH binários não primitivos em vez de um dado código binário BCH C n de comprimento n. Algoritmos simulados via Mathlab para codificação e decodificação para este tipo de códigos são introduzidos. O algoritmo via o Matlab fornece rotinas para a construção de um código BCH primitivo, mas impõe várias restrições, como por exemplo, o grau s de um polinômio irredutível primitivo deve ser menor que 16. Este trabalho trata-se de polinômios não-primitivos irredutíveis com grau bs, que são maiores do que 16.

Palavras-chave:
Anel monoidal; códigos BCH; polinômio primitivo; polinômio não-primitivo

1 INTRODUCTION

Introducing more general algebraic structures lead to various gains in coding applications and the generality of the algebraic structures helps to find more efficient encoding and decoding algorithms for known codes. This has motivated special attention of many researchers in considering ideals of certain rings 11. A.A. Andrade & P. Jr. Linear codes over finite rings. TEMA - Trends in Applied and Computational Mathematics, 6(2) (2005), 207-217.), (55. A.V. Kelarev. “Ring constructions and applications”. World Scientific Publishing Co. Inc., New York (2002).), (66. A.V. Kelarev & P. Solé. Error-correcting codes as ideals in group rings. Contemporary Mathematics, 273 (2001), 11-18.), (99. V.S. Pless, W.C. Huffman & R.A. Brualdi. “Handbook of coding theory”. Elsevier, New York (1998). and 1010. A. Poli & L. Huguet. “Error-correcting codes: theory and applications”. Prentice-Hall, New York (1992).. The extension of a BCH code embedded in a semigroup ring was considered by Cazaran in 44. J. Cazaran, A.V. Kelarev, S.J. Quinn & D. Vertigan. An algorithm for computing the minimum distances of extensions of BCH codes embedded in semigroup rings. Semigroup Forum, 73(3) (2006), 317-329.. More information regarding ring constructions and its corresponding polynomial codes were given by Kelarev 55. A.V. Kelarev. “Ring constructions and applications”. World Scientific Publishing Co. Inc., New York (2002).. In 11. A.A. Andrade & P. Jr. Linear codes over finite rings. TEMA - Trends in Applied and Computational Mathematics, 6(2) (2005), 207-217., the authors elaborated cyclic, BCH, Alternant, Goppa and Srivastava codes over finite rings, which are constructed through a polynomial ring in one indeterminate. Several classes of cyclic codes constructed using the monoid rings are discussed in 22. A.A. Andrade, T. Shah & A. Khan. A note on linear codes over semigroup rings. TEMA - Trends in Applied and Computational Mathematics, 12(2) (2011), 79-89.), (1414. T. Shah & A.A. de Andrade. Cyclic codes through B[X; a/bℤ0], with a/b ∈ ℚ+ and b = a + 1, and encoding. Discrete Mathematics, Algorithms and Applications, 4(4) (2012), 1250059, 14.), (1313. T. Shah & A.A. de Andrade. Cyclic codes through B[X], B[X; 1/kpZ0] and B[X; 1/pkZ0]: a comparison. Journal of Algebra and its Applications, 11(4) (2012), 1250078, 19.), (1212. T. Shah, Amanullah & A.A. de Andrade. A method for improving the code rate and error correction capability of a cyclic code. Computational and Applied Mathematics, 32(2) (2013), 261-274.), (1111. T. Shah, Amanullah & A.A. de Andrade. A decoding procedure which improves code rate and error corrections. Journal of Advanced Research in Applied Mathematics, 4(4) (2012), 37-50. and 1515. T. Shah, A. Khan & A.A. Andrade. Encoding through generalized polynomial codes. Comp. Appl. Math., 30(2) (2011), 349-366.. These constructions address the error correction and the code rate in a good way. In 1616. T. Shah, M. Khan & A.A. de Andrade. A decoding method of an n length binary BCH code through (n + 1)n length binary cyclic code. Anais da Academia Brasileira de Ciências, 85(3) (2013), 863-872., Shah et al., showed the existence of a binary cyclic code of length (n + 1)n such that a binary BCH code of length n is embedded in it. Though they were not succeeded to show the existence of binary BCH code of length (n + 1)n corresponding to a given binary BCH code of length n. In 1717. T. Shah & A. Shaheen. Cyclic codes as ideals in F2[x;aN0]n, F2[x]an, and F2[x; 1/bN0]abn: a linkage. U.P.B. Sci. Bull., Series A, 78(3) (2016), 205-220., a construction method is given by which cyclic codes are ideals in 𝔽2[x; a0]n, 𝔽2[x]an , 𝔽2[x;ab0]bn and 𝔽2[x;1b0]abn, where ℤ0 is the set of non-negative integers, a;b ∈ ℤ and a; b > 1. These codes are capable of correcting random as well as burst errors. Moreover, a link between all these codes are also been developed. Furthermore, in 33. A.S. Ansari & T. Shah. An association between primitive and non-primitive BCH codes using monoid rings. EURASIP - Journal on Wireless Communications and Networking, 38 (2016)., the work of 1616. T. Shah, M. Khan & A.A. de Andrade. A decoding method of an n length binary BCH code through (n + 1)n length binary cyclic code. Anais da Academia Brasileira de Ciências, 85(3) (2013), 863-872. is improved and an association between primitive and non-primitive binary BCH codes is obtained by using the monoid ring 𝔽2[x;ab0], where a; b > 1. It is noticed that the monoid ring 𝔽2[x;ab0] does not contain the polynomial ring 𝔽2[x] for a > 1. To handle this situation, a BCH code in the monoid ring 𝔽2[x; a0] is constructed and then the existence of a non-primitive BCH code in the monoid ring 𝔽2[x;ab0] is showed. The non-primitive BCH code C bn in the monoid ring 𝔽2[x;ab0] is of length bn and generated by a generalized polynomial g(xab)𝔽2[x;ab0] of degree br. In this line, corresponding to a binary BCH code C n of length n generated by a generalized polynomial g(x a ) ∈ 𝔽2[x; a0] of degree r it is constructed a code C bn such that C n is embedded in C bn .

This work extends the work of 33. A.S. Ansari & T. Shah. An association between primitive and non-primitive BCH codes using monoid rings. EURASIP - Journal on Wireless Communications and Networking, 38 (2016)., where the monoid ring 𝔽2[x;abj0], with b = a + i, 1 ≤ i, jm, where m is a positive integer, is used. Corresponding to the sequence {𝔽2[x;abj0]}j1 of monoid rings, we obtain a sequence of non-primitive binary BCH codes {Cbjnj}j1, based on a primitive BCH code C n of length n. The non-primitive BCH code Cbjnj in the monoid ring 𝔽2[x;abj0] is of length b j n and generated by a generalized polynomial g(xabj)𝔽2[x;abj0] of degree b j r. Similarly, corresponding to a given binary BCH code C n of length n generated by a polynomial g(x a ) ∈ 𝔽2[x; a0] of degree r it is constructed a code Cbjnj such that C n is embedded in Cbjnj, where the length of the binary BCH code Cbjnj is well controlled with better error correction capability. Along with the construction of a sequence {Cbjnj}j1 of non-primitive binary BCH codes our focus is on its simulation as well, where the simulation is carried out using Matlab. It provides built in routines only for primitive BCH codes with degree of primitive polynomial less than 16. Whereas in constructing non-primitive BCH codes, the degree of non-primitive polynomial goes beyond 16, where to overcome this situation Generic Algorithm is developed in Matlab. The whole method of the algorithm is carried out in two major steps: I) Generating nonprimitive polynomial and II) Error correction in received polynomial. In Table 5, some examples are listed. The non-primitive BCH codes with same code rate and error corrections are found to be interleaved codes. By interleaving a t random error correcting (n, k) code to degree β, we obtain a (βn, βk) code which is capable of correcting any combination of t bursts of length β or less [77. S. Lin & J. D. J. Costello. “Error control coding: fundamentals and applications”. Prentice Hall Professional Technical Reference, New York (1994)., Section 9.4], where the non-primitive BCH codes Cbjnj have burst error correction capability along with the random error correction.

2 BCH CODES IN 𝔽2[X;ABJ0]BJN, WHERE 1 ≤ JM.

The set of all finitely nonzero functions f from a commutative monoid (S,*) into the binary field ≤ 2 is denoted by 𝔽2(S). This set 𝔽2(S) is a ring with respect to binary operations addition and multiplication defined as: (f + g)(s) = f(s) + g(s) and (fg)(s) = Σt * u = s f(t)g(u), where the symbol Σt * u = s indicates that the sum is taken over all pairs (t, u) of elements of S such that t * u = s and it is understood that in the situation where s is not expressible in the form t * u for any t, uS, then (fg)(s) = 0. The ring 𝔽2(S) is known as the monoid ring of S over 𝔽2 and it is represented by 𝔽2[x; S] whenever S is an additive monoid. A nonzero element f of 𝔽2[x; S] is uniquely represented in the canonical form i=1nf(si)xsi=i=1nfixsi where f i ≠ 0 and s is j for ij. The monoid ring 𝔽2[x; S] is a polynomial ring in one indeterminate if S = ℤ0.

The indeterminate of generalized polynomials in monoid rings 𝔽2[x; a0] and 𝔽2[x;abj0] are given by x a and xabj for each 1 ≤ jm, where m is a fix positive integer, and they behave like an indeterminate x in 𝔽2[x]. The arbitrary elements in 𝔽2[x; a0] and 𝔽2[x;abj0] are written, respectively, as f(x a ) = 1 + (x a ) + (x a )2 + ... + (x a )n and f(xabj)=1+(xabj)+(xabj)n+...(xabj)n. The monoids a0 and abj0 are totally ordered, so degree and order of elements of 𝔽2[x; a0] and 𝔽2[x;abj0] are defined.

As 𝔽2[x; a0] ⊂ 𝔽2[x], it follows that the construction of BCH code in the factor ring 𝔽2[x; a0]n is similar to the construction of a BCH code in 𝔽2[x]n . Whereas the construction of BCH codes in 𝔽2[x;abj0]/((xabj)bjn1)𝔽2[x;abj0]bjn is based on the values of b. BCH codes of length b j n in 𝔽2[x;abj0]bjn, corresponding to a BCH code C n of length n don’t exist for all values of b, where b = a + i, such that 1 ≤ im, and a, m are positive integers. For that, consider the following map p(xa)=p0+p1xa+...+pn1(xa)n1p0+p1(xabj)bj+...+pn1(xabj)bj(n1)=p(xabj), which convert a primitive polynomial p(x a ) of degree s in 𝔽2[x; a0] to a polynomial p(xabj) of degree b j s in 𝔽2[x;abj0]. This converted polynomial is found to be non-primitive, but is irreducible for some values of b. Therefore, for the construction of a non-primitive BCH code in 𝔽2[x;abj0]bjn, only this specific value of b is selected for which there is an irreducible polynomial p(xabj) in 𝔽2[x;abj0]. Thus, for positive integers c j , d j and b j n such that 2 ≤ d jb j n with bjn is relatively prime to 2, there exists a non-primitive binary BCH code Cbjn of length b j n, where bjn is order of an element α𝔽2bjs.

In Table 1, we present a list of irreducible polynomials of degree b j s in 𝔽2[x;abj0] corresponding to primitive irreducible polynomial of degree s in 𝔽2[x; a0], where for p(xa)𝔽2[x; a0],p(xab)𝔽2[xab0],p(xab2)𝔽2[x;ab0], replace xa,xab and xab2 by x, y and z, respectively.

Table 1:
Irreducible polynomials of degree bjs in 𝔽2[x;abj0] corresponding to primitive irreducible polynomial of degree s in 𝔽2[x;a0].

Proposition 1.[33. A.S. Ansari & T. Shah. An association between primitive and non-primitive BCH codes using monoid rings. EURASIP - Journal on Wireless Communications and Networking, 38 (2016)., Proposition 2] If p(xa ) ∈ 𝔽2[x; a0] is a primitive irreducible polynomial of degree s ∈ {2l, 3l, 4l, 6l}, where l ∈ ℤ0, then the corresponding generalized polynomialp(xab)of degree b j s in𝔽2[x;abj0]is non-primitive irreducible for b ∈ {3, 7, {3, 5}, {3, 7}}, respectively.

Theorem 2.[33. A.S. Ansari & T. Shah. An association between primitive and non-primitive BCH codes using monoid rings. EURASIP - Journal on Wireless Communications and Networking, 38 (2016)., Theorem 3] Let n = 2s - 1 be the length of a primitive BCH code C n , where p(x a ) ∈ 𝔽2[x; a0] is a primitive irreducible polynomial of degree s such thatp(xabj)𝔽2[x;abj0]is a non-primitive irreducible polynomial of degree b j s.

  1. For positive integers cj;dj;bjn such that 2 ≤ d jb j n and b j n are relatively prime to 2, there exist a non-primitive binary BCH codeCbjnof length b j n, where b j n is the order of an elementα𝔽2bjs.

  2. The non-primitive BCH code Cbjn of length bjn is defined as

C b j n = { ν ( x a b j ) 𝔽 2 [ x ; a b j 0 ] b j n : ν ( α i ) = 0 f o r a l l i = c j , c j + 1,..., c j + d j 2.

Equivalently, C b j n is the null space of the matrix

H = [ 1 α c j α 2 c j α ( b n 1 ) c j 1 α c j + 1 α 2 ( c j + 1 ) α ( b n 1 ) ( c j + 1 ) 1 α c j + d j 2 α 2 ( c j + d j 2 ) α ( b n 1 ) ( c j + d j 2 ) ] .

The following example illustrates the construction of a non-primitive BCH code of length 32 n through 𝔽2[x;2320].

Example 2.1.Corresponding to a primitive polynomial p(x2) = 1 + (x2) + (x2)4in 𝔽2[x;2ℤ0] there is a non-primitive irreducible polynomialp(x232)=1+(x29)9+(x29)36in𝔽2[;2320](Table 1). Let α ∈ GF(236) such that α satisfies the relation α36 + α9 + 1 = 0. Using this relation, in theTable 2, we obtain the distinct elements of GF(236).

Table 2:
Distinct elements of GF(236).

ByTable 2, it follows that b2n = 32 × 15 = 135. Now, to calculate the generating polynomialg(x29), first calculate the minimal polynomials. By [88. S.R. Nagpaul & S.K. Jain. “Topics in applied abstract algebra”, The Brooks/Cole Series in Advanced Mathematics. New York (2005)., Theorem 4.4.2], the following roots

α, α2, α4, α8, α16, α32, α64, α128, α121, α107, α79, α23, α46, α92, α49, α98, α61, α122,

α109, α83, α31, α62, α124, α113, α91, α47, α94, α53, α106, α77, α19α38, α76, α17, α34, α68

have same minimal polynomialm1(x29)=p(x29)=1+(x29)9+(x29)36. Itm3(x29)is the minimal polynomial for α3, then α3, α6, α12, α24, α48, α96, α57, α114, α93, α51, α102 and α69 all are roots form3(x29). Therefore, it follows thatm3(x29)=(x29)12+(x29)3+1. Similarly,

m 5 ( x 2 9 ) = ( x 2 9 ) 18 + ( x 2 9 ) 9 + 1, m 7 ( x 2 9 ) = ( x 2 9 ) 36 + ( x 2 9 ) 27 + 1 m 9 ( x 2 9 ) = ( x 2 9 ) 4 + ( x 2 9 ) + 1, m 15 ( x 2 9 ) = ( x 2 9 ) 6 + ( x 2 9 ) 3 + 1 m 21 ( x 2 9 ) = ( x 2 9 ) 12 + ( x 2 9 ) 9 + 1 m 27 ( x 2 9 ) = ( x 2 9 ) 4 + ( x 2 9 ) 3 + ( x 2 9 ) 2 + ( x 2 9 ) + 1 m 45 ( x 2 9 ) = ( x 2 9 ) 2 + ( x 2 9 ) + 1, m 63 ( x 2 9 ) = ( x 2 9 ) 4 + ( x 2 9 ) 3 + 1.

The BCH code with d2 = 3 has generator polynomialg(x29)=1+(x29)9+(x29)36. It corrects up to 1 error and its code rate is99135=0.733. The BCH code with d 2 = 5 has generator polynomial

g ( x 2 9 ) = ( m 1 ( x 2 9 ) ) ( m 3 ( x 2 9 ) ) = ( ( x 2 9 ) 36 + ( x 2 9 ) 9 + 1 ) ( ( x 2 9 ) 12 + ( x 2 9 ) 3 + 1 ) = ( x 2 9 ) 48 + ( x 2 9 ) 39 + ( x 2 9 ) 36 + ( x 2 9 ) 21 + ( x 2 9 ) 9 + ( x 2 9 ) 3 + 1.

It corrects up to 3 errors and its code rate is87135=0.644. Similarly, the BCH codes with d 2 =7, 9, 15, 21, 27, 45, 63 and 135 have generator polynomials

g ( x 2 9 ) = ( m 1 ( x 2 9 ) ) ( m 3 ( x 2 9 ) ) ( m 5 ( x 2 9 ) ) = ( x 2 9 ) 66 + ( x 2 9 ) 54 + ( x 2 9 ) 45 + ( x 2 9 ) 36 + ( x 2 9 ) 30 + ( x 2 9 ) 27 + ( x 2 9 ) 12 + ( x 2 9 ) 3 + 1. g ( x 2 9 ) = ( m 1 ( x 2 9 ) ) ( m 3 ( x 2 9 ) ) ( m 5 ( x 2 9 ) ) ( m 7 ( x 2 9 ) ) = ( x 2 9 ) 102 + ( x 2 9 ) 93 + ( x 2 9 ) 90 + ( x 2 9 ) 57 + ( x 2 9 ) 48 + ( x 2 9 ) 45 + ( x 2 9 ) 12 + ( x 2 9 ) 3 + 1. g ( x 2 9 ) = ( m 1 ( x 2 9 ) ) ( m 3 ( x 2 9 ) ) ( m 5 ( x 2 9 ) ) ( m 7 ( x 2 9 ) ) ( m 9 ( x 2 9 ) ) = ( x 2 9 ) 106 + ( x 2 9 ) 103 + ( x 2 9 ) 102 + ( x 2 9 ) 97 + ( x 2 9 ) 93 + ( x 2 9 ) 91 + ( x 2 9 ) 90 + ( x 2 9 ) 61 + ( x 2 9 ) 58 + ( x 2 9 ) 57 + ( x 2 9 ) 52 + ( x 2 9 ) 48 + ( x 2 9 ) 46 + ( x 2 9 ) 45 + ( x 2 9 ) 16 + ( x 2 9 ) 13 + ( x 2 9 ) 12 + ( x 2 9 ) 7 + ( x 2 9 ) 3 + ( x 2 9 ) + 1. g ( x 2 9 ) = ( m 1 ( x 2 9 ) ) ( m 3 ( x 2 9 ) ) ( m 5 ( x 2 9 ) ) ( m 7 ( x 2 9 ) ) ( m 9 ( x 2 9 ) ) ( m 15 ( x 2 9 ) ) = ( x 2 9 ) 112 + ( x 2 9 ) 108 + ( x 2 9 ) 105 + ( x 2 9 ) 102 + ( x 2 9 ) 100 + ( x 2 9 ) 99 + ( x 2 9 ) 94 + ( x 2 9 ) 91 + ( x 2 9 ) 90 + ( x 2 9 ) 67 + ( x 2 9 ) 63 + ( x 2 9 ) 60 + ( x 2 9 ) 57 + ( x 2 9 ) 55 + ( x 2 9 ) 54 + ( x 2 9 ) 49 + ( x 2 9 ) 46 + ( x 2 9 ) 45 + ( x 2 9 ) 22 + ( x 2 9 ) 18 + ( x 2 9 ) 15 + ( x 2 9 ) 12 + ( x 2 9 ) 10 + ( x 2 9 ) 9 + ( x 2 9 ) 4 + ( x 2 9 ) + 1. g ( x 2 9 ) = ( m 1 ( x 2 9 ) ) ( m 3 ( x 2 9 ) ) ( m 5 ( x 2 9 ) ) ( m 7 ( x 2 9 ) ) ( m 9 ( x 2 9 ) ) ( m 15 ( x 2 9 ) ) ( m 21 ( x 2 9 ) ) = ( x 2 9 ) 124 + ( x 2 9 ) 121 + ( x 2 9 ) 120 + ( x 2 9 ) 109 + ( x 2 9 ) 106 + ( x 2 9 ) 105 + ( x 2 9 ) 94 + ( x 2 9 ) 91 + ( x 2 9 ) 90 + ( x 2 9 ) 79 + ( x 2 9 ) 76 + ( x 2 9 ) 75 + ( x 2 9 ) 64 + ( x 2 9 ) 61 + ( x 2 9 ) 60 + ( x 2 9 ) 49 + ( x 2 9 ) 46 + ( x 2 9 ) 45 + ( x 2 9 ) 34 + ( x 2 9 ) 31 + ( x 2 9 ) 30 + ( x 2 9 ) 19 + ( x 2 9 ) 16 + ( x 2 9 ) 15 + ( x 2 9 ) 4 + ( x 2 9 ) + 1. g ( x 2 9 ) = ( m 1 ( x 2 9 ) ) ( m 3 ( x 2 9 ) ) ( m 5 ( x 2 9 ) ) ( m 7 ( x 2 9 ) ) ( m 9 ( x 2 9 ) ) ( m 15 ( x 2 9 ) ) ( m 21 ( x 2 9 ) ) ( m 27 ( x 2 9 ) ) = ( x 2 9 ) 128 + ( x 2 9 ) 127 + ( x 2 9 ) 126 + ( x 2 9 ) 124 + ( x 2 9 ) 120 + ( x 2 9 ) 113 + ( x 2 9 ) 112 + ( x 2 9 ) 111 + ( x 2 9 ) 109 + ( x 2 9 ) 105 + ( x 2 9 ) 98 + ( x 2 9 ) 97 + ( x 2 9 ) 96 + ( x 2 9 ) 94 + ( x 2 9 ) 90 + ( x 2 9 ) 83 + ( x 2 9 ) 82 + ( x 2 9 ) 81 + ( x 2 9 ) 79 + ( x 2 9 ) 75 + ( x 2 9 ) 68 + ( x 2 9 ) 67 + ( x 2 9 ) 66 + ( x 2 9 ) 64 + ( x 2 9 ) 60 + ( x 2 9 ) 53 + ( x 2 9 ) 52 + ( x 2 9 ) 51 + ( x 2 9 ) 49 + ( x 2 9 ) 45 + ( x 2 9 ) 38 + ( x 2 9 ) 37 + ( x 2 9 ) 36 + ( x 2 9 ) 34 + ( x 2 9 ) 30 + ( x 2 9 ) 23 + ( x 2 9 ) 22 + ( x 2 9 ) 21 + ( x 2 9 ) 19 + ( x 2 9 ) 15 + ( x 2 9 ) 8 + ( x 2 9 ) 7 + ( x 2 9 ) 6 + ( x 2 9 ) 4 + 1. g ( x 2 9 ) = ( m 1 ( x 2 9 ) ) ( m 3 ( x 2 9 ) ) ( m 5 ( x 2 9 ) ) ( m 7 ( x 2 9 ) ) ( m 9 ( x 2 9 ) ) ( m 9 ( x 2 9 ) ) ( m 15 ( x 2 9 ) ) ( m 21 ( x 2 9 ) ) ( m 27 ( x 2 9 ) ) ( m 45 ( x 2 9 ) ) = ( x 2 9 ) 130 + ( x 2 9 ) 128 + ( x 2 9 ) 125 + ( x 2 9 ) 124 + ( x 2 9 ) 122 + ( x 2 9 ) 121 + ( x 2 9 ) 120 + ( x 2 9 ) 115 + ( x 2 9 ) 113 + ( x 2 9 ) 110 + ( x 2 9 ) 109 + ( x 2 9 ) 107 + ( x 2 9 ) 106 + ( x 2 9 ) 105 + ( x 2 9 ) 100 + ( x 2 9 ) 98 + ( x 2 9 ) 95 + ( x 2 9 ) 94 + ( x 2 9 ) 92 + ( x 2 9 ) 91 + ( x 2 9 ) 90 + ( x 2 9 ) 85 + ( x 2 9 ) 83 + ( x 2 9 ) 80 + ( x 2 9 ) 79 + ( x 2 9 ) 77 + ( x 2 9 ) 76 + ( x 2 9 ) 75 + ( x 2 9 ) 70 + ( x 2 9 ) 68 + ( x 2 9 ) 65 + ( x 2 9 ) 64 + ( x 2 9 ) 62 + ( x 2 9 ) 61 + ( x 2 9 ) 60 + ( x 2 9 ) 55 + ( x 2 9 ) 53 + ( x 2 9 ) 50 + ( x 2 9 ) 49 + ( x 2 9 ) 7 + ( x 2 9 ) 46 + ( x 2 9 ) 45 + ( x 2 9 ) 40 + ( x 2 9 ) 38 + ( x 2 9 ) 35 + ( x 2 9 ) 34 + ( x 2 9 ) 32 + ( x 2 9 ) 31 + ( x 2 9 ) 30 + ( x 2 9 ) 25 + ( x 2 9 ) 23 + ( x 2 9 ) 20 + ( x 2 9 ) 19 + ( x 2 9 ) 17 + ( x 2 9 ) 16 + ( x 2 9 ) 5 + ( x 2 9 ) 10 + ( x 2 9 ) 8 + ( x 2 9 ) 5 + ( x 2 9 ) 4 + ( x 2 9 ) 2 + ( x 2 9 ) + 1. g ( x 2 9 ) = ( m 1 ( x 2 9 ) ) ( m 3 ( x 2 9 ) ) ( m 5 ( x 2 9 ) ) ( m 7 ( x 2 9 ) ) ( m 9 ( x 2 9 ) ) ( m 15 ( x 2 9 ) ) ( m 21 ( x 2 9 ) ) ( m 27 ( x 2 9 ) ) ( m 45 ( x 2 9 ) ) ( m 63 ( x 2 9 ) ) = ( x 2 9 ) 134 + ( x 2 9 ) 133 + ... + ( x 2 9 ) 2 + ( x 2 9 ) + 1.

Finally, errors like 3, 4, 7, 10, 13, 22, 31 and 67 are corrected.

From Example 2.1 and [33. A.S. Ansari & T. Shah. An association between primitive and non-primitive BCH codes using monoid rings. EURASIP - Journal on Wireless Communications and Networking, 38 (2016)., Example 1], it follows that the code generated through 𝔽2[x;abj0] corrects more errors and has better code rate than the code generated through 𝔽2[x; a0]. Now, we are in position to develop a link between a primitive (n;n - r) binary BCH code C n and a nonprimitive (b j n;b j n - r j ) binary BCH code Cbjn, where r and r j are, respectively, the degrees of their generating polynomials g(x a ) and g(xabj). From Theorem 2, it follows that the generalized polynomial g(xabj) in 𝔽2[x;abj0] divides (xabj)bjn1 in 𝔽2[x;abj0]. So, there is a non-primitive BCH code Cbjn generated by g(xabj) in 𝔽2[x;abj0]bjn. By the same argument, as b j n divides nj=2bjs1, it follows that (xabj)bjn1 divides (xabj)nj1 in 𝔽2[x;abj0]. Therefore, ((xabj)nj1)((xabj)bjn1). Consequently, from third isomorphism theorem for rings, it follows that

𝔽 2 [ x ; a b j 0 ] / ( ( x a b j ) n j 1 ) ( ( x a b j ) b j n 1 ) / ( ( x a b j ) n j 1 ) 𝔽 2 [ x ; a b j 0 ] ( ( x a b j ) b j n 1 ) 𝔽 2 [ x ; a 0 ] ( ( x a ) n 1 ) .

Thus, there are embeddings CnCbjnCnj of codes, whereas Cn,Cbjn,Cnj are, respectively, primitive BCH, non-primitive BCH and primitive BCH codes. Whereas the embeddings CnCbjn are defined as a(xa)=a0+a1(xa)+...+an1(xa)n1a0+a1(xabj)bj+...+an1(xabj)bj(n1)=a(xabj), where a(x a ) ∈ C n and a(xabj)Cbjn. Also, if g(xabj1) is the generator polynomial of a binary non-primitive BCH code Cbj1nj1 in 𝔽2[x;abj10]bj1n, then g(xabj) is the generator polynomial of a binary non-primitive BCH code Cbjn in the monoid ring 𝔽2[x;abj0]bjn. Thus, a non-primitive BCH code Cbj1n is embedded in a non-primitive BCH code Cbjn under the monomorphism defined as a(xabj1)a(xabj).

With the above discussion it follows the following theorem.

Theorem 3.[33. A.S. Ansari & T. Shah. An association between primitive and non-primitive BCH codes using monoid rings. EURASIP - Journal on Wireless Communications and Networking, 38 (2016)., Theorem 6] Let Cnbe a primitive binary BCH code of length n = 2is - 1 generated by a polynomial g(x a ) of degree r in 𝔽2[x; a0].

  • 1. There exists a binary non-primitive BCH codeCbjnof length bjn generated by a polynomialg(xabj)of degree bjr in𝔽2[x;abj0].

  • 2. The binary primitive BCH code Cnis embedded in a binary non-primitive BCH codeCbjn, for each j ≥ 1.

  • 3. The binary BCH codes of the sequence { C b j n } j 1 have the following embedding

C b n C b 2 n ... C b j n ...

Hence,

𝔽 2 [ x ; a 0 ] 𝔽 2 [ x ; a b 0 ] 𝔽 2 [ x ; a b 2 0 ] 𝔽 2 [ x ; a b j 0 ] 𝔽 2 [ x ; a 0 ] ( ( x a ) n 1 ) _ 𝔽 2 [ x ; a b 0 ] ( ( x a b ) b n 1 ) _ 𝔽 2 [ x ; a b 2 0 ] ( ( x a b 2 ) b 2 n 1 ) _ 𝔽 2 [ x ; a b j 0 ] ( ( x a b j ) b j n 1 ) C n C b n C b 2 n C b j n

and a non-primitive BCH codeCbj1nis embedded in a non-primitive BCH codeCbjnunder the monomorphism defined bya(xabj1)a(xabj).

Remark 4.The polynomialg(xab)can be obtained fromg(xabj)by substitutingxabj=yand replacing y byybj1=xab.

Example 2.2.By [33. A.S. Ansari & T. Shah. An association between primitive and non-primitive BCH codes using monoid rings. EURASIP - Journal on Wireless Communications and Networking, 38 (2016)., Example 2] and Example 2.1, it follows that the BCH codes with designed distance d = 2, 3, … ,9 have generator polynomialsg(x23),g(x29)with the same minimum distance, error correction capability and code rate, where the differences are degree, data bits, code length and check sum of the code C 135 which is three times that of code C 45 and nine times of the code C 15. Similarly, on letting(x29)=y, that isx23=y3, we get

g ( x 2 9 ) = ( x 2 9 ) 106 + ( x 2 9 ) 103 + ( x 2 9 ) 102 + ( x 2 9 ) 97 + ( x 2 9 ) 93 + ( x 2 9 ) 91 + ( x 2 9 ) 90 + ( x 2 9 ) 61 + ( x 2 9 ) 58 + ( x 2 9 ) 57 + ( x 2 9 ) 52 + ( x 2 9 ) 48 + ( x 2 9 ) 46 + ( x 2 9 ) 45 + ( x 2 9 ) 16 + ( x 2 9 ) 13 + ( x 2 9 ) 12 + ( x 2 9 ) 7 + ( x 2 9 ) 3 + ( x 2 9 ) + 1, g ( y ) = ( y ) 106 + ( y ) 103 + ( y ) 102 + ( y ) 97 + ( y ) 93 + ( y ) 91 + ( y ) 90 + ( y ) 61 + ( y ) 58 + ( y ) 57 + ( y ) 52 + ( y ) 48 + ( y ) 46 + ( y ) 45 + ( y ) 16 + ( y ) 13 + ( y ) 12 + ( y ) 7 + ( y ) 3 + y + 1, g ( y 3 ) = ( y 3 ) 106 + ( y 3 ) 103 + ( y 3 ) 102 + ( y 3 ) 97 + ( y 3 ) 93 + ( y 3 ) 91 + ( y 3 ) 90 + ( y 3 ) 61 + ( y 3 ) 58 + ( y 3 ) 57 + ( y 3 ) 52 + ( y 3 ) 48 + ( y 3 ) 46 + ( y 3 ) 45 + ( y 3 ) 16 + ( y 3 ) 13 + ( y 3 ) 12 + ( y 3 ) 7 + ( y 3 ) 3 + ( y 3 ) + 1, g ( x 2 3 ) = ( x 2 3 ) 106 + ( x 2 3 ) 103 + ( x 2 3 ) 102 + ( x 2 3 ) 97 + ( x 2 3 ) 93 + ( x 2 3 ) 91 + ( x 2 3 ) 90 + ( x 2 3 ) 61 + ( x 2 3 ) 58 + ( x 2 3 ) 57 + ( x 2 3 ) 52 + ( x 2 3 ) 48 + ( x 2 3 ) 46 + ( x 2 3 ) 45 + ( x 2 3 ) 16 + ( x 2 3 ) 13 + ( x 2 3 ) 12 + ( x 2 3 ) 7 + ( x 2 3 ) 3 + ( x 2 3 ) + 1 = ( x 2 3 ) 16 + ( x 2 3 ) 13 + ( x 2 3 ) 7 + ( x 2 3 ) 3 + ( x 2 3 ) + 1 𝔽 2 [ x ; 2 3 0 ] 45 .

Similarly, for

g ( x 2 9 ) = ( x 2 9 ) 112 + ( x 2 9 ) 108 + ( x 2 9 ) 105 + ( x 2 9 ) 102 + ( x 2 9 ) 100 + ( x 2 9 ) 99 + ( x 2 9 ) 94 + ( x 2 9 ) 91 + ( x 2 9 ) 90 + ( x 2 9 ) 67 + ( x 2 9 ) 63 + ( x 2 9 ) 60 + ( x 2 9 ) 57 + ( x 2 9 ) 55 + ( x 2 9 ) 54 + ( x 2 9 ) 49 + ( x 2 9 ) 46 + ( x 2 9 ) 45 + ( x 2 9 ) 22 + ( x 2 9 ) 18 + ( x 2 9 ) 15 + ( x 2 9 ) 12 + ( x 2 9 ) 10 + ( x 2 9 ) 9 + ( x 2 9 ) 4 + ( x 2 9 ) + 1,

it follows that

g ( x 2 3 ) = ( x 2 3 ) 22 + ( x 2 3 ) 18 + ( x 2 3 ) 15 + ( x 2 3 ) 12 + ( x 2 3 ) 10 + ( x 2 3 ) 9 + ( x 2 3 ) 4 + ( x 2 3 ) + 1,

which is the generating polynomial of a BCH code (45, 23) having design distance d 2 = 6, 7. In this way. we can obtain a non-primitive binary BCH code C 15 from a non-primitive binary BCH code C 45. On writing the corresponding code vectors of the generating polynomials

g ( x 2 3 ) = ( x 2 3 ) 16 + ( x 2 3 ) 13 + ( x 2 3 ) 12 + ( x 2 3 ) 7 + ( x 2 3 ) 3 + ( x 2 3 ) + 1 g ( x 2 9 ) = ( x 2 9 ) 106 + ( x 2 9 ) 103 + ( x 2 9 ) 102 + ( x 2 9 ) 97 + ( x 2 9 ) 93 + ( x 2 9 ) 91 + ( x 2 9 ) 90 + ( x 2 9 ) 61 + ( x 2 9 ) 58 + ( x 2 9 ) 57 + ( x 2 9 ) 52 + ( x 2 9 ) 48 + ( x 2 9 ) 46 + ( x 2 9 ) 45 + ( x 2 9 ) 16 + ( x 2 9 ) 13 + ( x 2 9 ) 12 + ( x 2 9 ) 7 + ( x 2 9 ) 3 + ( x 2 9 ) + 1,

it follows that

ν 1 = ( 11010001000011001 ) ν 2 = ( 11010001000011001000000000000000000000000000011010001 000011001000000000000000000000000000011010001000011001 )

The binary bits of ν1 are properly overlapped on the bits of ν2, in fact, they are repeated three times after a particular pattern. Hence, the generating matrix G 2 ofg(x29)contains the generating matrix G 1 ofg(x23) such that G2=13G1.

3 ALGORITHM

In this section, we propose an algorithm to calculate a non-primitive BCH code of length b j n using a primitive BCH code of length n, where the encoding and decoding of the code are carried out in Matlab. The process of developing algorithm is divided into two major steps, i.e., encoding and decoding of a non-primitive BCH code of length b j n.

3.1 Encoding of a non-primitive BCH code of length b j n.

In encoding, we first calculate a primitive polynomial of degree s by invoking Matlab’s built in command “bchgenpoly”. After this operation, a non-primitive polynomial of degree bs is calculated. With the help of a root, say α’, the elements of the Galois field GF(2bn ) are calculated such that (α')bjn=1 and after we obtain the minimal polynomials of these elements. Finally, we get a non-primitive polynomial with the help of these minimal polynomials. Thus, these design distances are calculated through which the number of errors that can be corrected in each BCH code are determined. Some methods are developed in order to achieve a specified result. In Table 3, we show a list of these methods and its description.

Table 3:
Encoding modulation description.

The steps of the algorithm are explained as follows:

  • a. Elements of Galois field (alpha array) α’[i]).

This step calculates all the elements of the Galois field GF(2bn ) using a root, say α’, of a non-primitive polynomial of degree bs such that (α’)bn = 1. The element α’ is called of alpha array and denoted by α’[i]. Now, denote the index array by A[index]. For a given input b * n, the non-primitive polynomial of degree bs gives the first element of the array α’[i]. By increasing its power, each element of the array α’0[i] is calculated in outer loop. Then in nested while loop their corresponding values are determined in such a way that if the value of any element in the array exceed bs, we take the remainder rem(index, bs) (step 9 of the algorithm). The loop breaks when the condition for identity is met.

Algorithm 1:

  • b. BCH generator polynomial (g[i]).

The Matlab builds a function and its complete documentation is found under http://www.mathworks.com/help/comm/ref/bchgenpoly.html. In this module, we get the generator polynomial of primitive BCH code of length n.

1 INPUT n and k

2 OUTPUT g[i]

  • c. Cyclotomic cosets (c[i]).

Given α’[i], dimension of code k and positive integer b, cyclotomic cosets c[i] are calculated. Length of c[i] is initialized to at max b * k, in short all elements should not exceed the max length. Loop start from 2 to max length and calculate unique values in given α’[i]. The process stops when we get sum of two elements = 2. Once cyclotomic cosets are calculated, we can calculate the minimal polynomials for BCH codes.

Algorithm 2:

  • d. Non-primitive generating polynomialg’[i].

Given primitive polynomial p[i] and b. First find the highest degree of p[i] i.e., s and initial degree of non-primitive polynomial p’[i] i.e., bs. Initialize each element of p’[i] of length bs to 0. Iterate loop from 2 to bs in order to initialize coefficient array to 1. Finally, iterate each element if coeft array and modify the value if p’[i] at position i to the value of coeft array at i. Finally insert 1 at position 0 of p’[i], i.e., when its first element becomes 0. The output of this module play an integral role for calculating non-primitive BCH generating polynomial. It is denoted by g’ in our algorithm. We are interested in rows of obtained matrix. Using the matrix we obtained, the code for non-primitive generating polynomial of length b. Finally these values are printed out and saved in file for further usage.

Algorithm 3:

  • e. Designed distance (d).

Here design distance is calculated from g’[i]. The length of coset array cl is determined and then iterate index from 2 to cl, calculate next index ni by increment current index. If nicl, then next element of coset is calculated to the value of coset array at position of next index. Otherwise the bn is assigned to next coset. The whole process iterates to lencoset coset and finally stops at the last coset. Design distance d is calculated from the last value of coset array at position 1.

Algorithm 4:

  • f. Error correction capability.

For given designed distance d, the error correction capability of a code t is calculated.

Algorithm 5:

3.2 Error correction in received polynomial (decoding)

In decoding step for a received polynomial, we first calculate the syndrome matrix S[i]. Then the D_matrix is calculated that should be invertible. After this error locator polynomial is determined whose roots give the exact position of errors in the received polynomial. Finally the received polynomial is corrected. To find the error vector and obtain the corrected codeword following scheme is used. Table 4 shows list of the following steps for error correction.

Table 4:
Encoding modulation description.

  • a. Syndrome matrixS(‘[i]).

Given design distance d, bn, message length bk and received polynomial r[i], syndrome matrix S’[i] can be calculated. The length of S’[i] is initialize to the difference of bn and bk, i.e., bn - bk. Furthermore, S’[i] is initialized by element of Galois field at position i i.e. GF[i]. Nested loop are used to calculate S’[i]. Upper loop is limited to the length of bn + d - 2, where S’[i] equalizes to power of α’ and in nested loop S’[i] equalize to power of S’[i] and the iterator. Once the values of S’[i] are filled with the above values of S’[i], it follows that these S’[i] can be calculated as product of r[i] and (S’[i])t .

Algorithm 6:

  • b. D matrix (D[i]).

Given error t and S’[i], D matrix is calculated and then double loops operation on syndrome matrix is carried out and suitable values from syndrome matrix is scanned out. The process is as follows: calculate GF[i] of length t and D-matrix is initialized to that value. D[i] in nested loop for loops. Both loops iterates from 1 to t. D[i] values are S’[i] values at position i of sum of loops iterators to 1.

Algorithm 7:

  • c. Is D invertible.

This module check if D[i] is invertible. If D[i] is invertible, then the algorithm works, otherwise error t is decremented and D matrix is again calculated. These operations are carried out till error t becomes 0. If t becomes 0, then algorithm will exit i.e panic condition occurs as in step 10.

Algorithm 8:

  • d. Error locator polynomial (f[i]).

Given input t, D[i] and S’[i], error locator polynomial f[i] is calculated. First, initialize product matrix pm[i] and f[i] to α’t [i]. Then, iterate the loop from 1 to t, pm[i] is filled with the value of S’[i] at t + i. After the loops ends, the value of (S’[i] * pm[i])-1 get equals to temporary matrix T”[i]. Once the temporary matrix T”[i] is achieved f[i] is taken as the transpose of that temporary matrix (T”[i])t discuss in step 10.

Algorithm 9:

  • e. Error position matrix (e[i]).

Based on f[i] we can determine error position. First, the roots of f[i] is calculated and then we take its inverse. The values we obtain are in matrix form and these manifest error position.

Algorithm 10:

  • f. Error values (eν[i]).

Once error position e[i] is determined we can easily calculate their respective values. The nested for loops are used to determine error values. Both of the loops iterate from 1 to t, in the first loop values from D_matrix can be taken while in the next loop value of product matrix pm[i] can be taken along with S’[i]. Finally, eν[i] get equated to (D_matrix*pm[i])-1 as discusses on line 9.

Algorithm 11:

  • g. Correct received polynomialr[i].

Once we have calculated error positions e[i] and error values eν[i] the received polynomial r[i] can be corrected. Here input parameters are e[i], eν[i], r[i] and bn. First estimated codeword denoted by est_code is calculated using various operations i.e., taking loops to t, bn and power of Galois field. The received polynomial is corrected by subtracting error polynomial and we get the corrected codeword ν[i].

Algorithm 12:

Example 3.1.For the code of length 45 simulation is carried out as follows: in this case b = 3 and n = 15. Using n = 15 and k = 11, Matlab’s build in function genpoly is invoked in order to find primitive polynomial, i.e., p(i) = x 4 + x + 1, as explain inTable 3. With b = 3 and p(i) = x 4 + x + 1, non_primitive_poly function is invoked, as described inTable 3step 4, here non-primitive polynomial named as p’(i) is obtained. Output for p’(i) is x 12 + x 9 + 1. Cyclotomic cosets, i.e., coset_array values are also calculated. First elements of Galois field in step 1 ofTable 1, is invoked to find the power of alpha till α45 = 1. With coset_array in hand, the designed distance d can be calculated, which is the first element of next coset array. Last but not the least error t is calculated against the given designed distance d. Code rate R is also calculated against each k 1 and bn but is not mentioned in previous section. The output are as follows: Cyclotomic cosets for (45, 33) = [1 2 4 8 16 32 19 38 31 17 34 23], t 1 = 1 and R 1 = (0.73333). Cyclotomic cosets for (45, 29) = [3 6 12 24], t 1 = 2 and R 1 = (0.64444). Cyclotomic cosets for (45, 23) = [5 10 20 40 35 25], t 1 =3 and R 1 = (0.51111). Cyclotomic cosets for (45, 11) = [7 14 28 11 22 44 43 41 37 29 13 26], t 1 = 4 and R 1 = (0.24444). Cyclotomic cosets for (45, 5) = [15 30], t 1 = 10 and R 1 = (0.11111). Now comes error correction in received polynomial. In this the code (45, 29) is taken under consideration, with designed distance d 1 = 5 and t 1 = 2. Let the received polynomial be

x 44 + x 16 + x 13 + x 12 + x 11 + x 7 + x 3 + x + 1.

With the given values d1, k1, and received polynomial, syndrome matrix is calculated. The output for syndromes are S1 = α2, S 2 = α4, S 3 = α30, S 4 = α8. Next, we arrange syndrome values in linear equation form that is Ax = B. Where A = [S 1, S 2; S 2, S 3] and B = [S 3, S 4]. Matrix A is named as t_matrix of t × t dimension. Thus, we find the whether the t_matrix is singular or not. If the determinant of t_matrix is nonzero then error locator polynomial is calculated. Next error position is calculated from sigma_matrix which is obtained from the coefficients of error locator polynomial. For the given values, error_positions are 44 and 11. Hence the error polynomial is x 44 + x 11. On subtracting error polynomial from received polynomial the following code polynomial

x 16 + x 13 + x 12 + x 7 + x 3 + x + 1

is obtained. All of the above equations are obtained by using Matlab symbolic toolbox.

With the help of the above discussed algorithm many examples on non-primitive BCH codes of length bn, b 2 n, b 3 n are constructed corresponding to primitive BCH code of length n. The parameters for all binary non-primitive BCH codes of length bn, b 2 n, b3 n, where n ≤ 26 - 1 and b is either 3 or 7 are given in Table 5.

Table 5:
Parameters of binary non-primitive BCH codes.

Table 5 manifests the error and code rate values against some selected codes which we have obtained after simulating our algorithm. These codes are of length bn, b 2 n and b3 n, where n ≤ 26 - 1, and b = 3, 7. k 1;k 2 and k 3 are dimensions of the codes C bn , Cb2n and Cb3n, respectively.

Interleaved Codes

From Table 5, it is observed that corresponding to a primitive (n, k) code there are (bn, bk), (b 2 n, b 2 k 2), (b 3 n, b 3 k) codes with same error correction capability and code rate. These codes are found to be interleaved codes (Interleaving is a periodic and reversible reordering of codes of L transmitted bits) of depth b, b 2 and b 3. Hence along with random error correction capability these codes can correct burst of error of length b, b 2 and b 3, respectively. The term burst of error means that two or more bits in the received word has changed from 1 to 0 or from 0 to 1. The length of the burst is measured from the first corrupted bit to the last corrupted bit. Similarly, for the code (bn, bk) the codes (b 2 n, b 2 k) and (b 3 n, b 3 k) are interleaved codes of depth b 2 and b 3, respectively. The code (49, 28) is interleaved code of depth 7, which is formed by interleaving the following 7 codewords from (7, 4) code that is (0000000), (1101000), (0000000), (0000000), (0000000), (0000000) and (0000000). on writing them column by column it gives

ν 1 = ( 01000000100000000000001000000000000000000000000000 ) C 49 .

In a similar way, codeword of (343, 196) and (2401, 1372) are obtained by writing column by column 7 codeword of C 49 and C 343. Therefore, for decoding a received polynomial in C 343 one can easily reverse the process and correct errors in the codeword of either C 49 or C 7.

ACKNOWLEDMENT

Acknowledgment to FAPESP by financial support 2013/25977-7. The authors would like to thank the anonymous reviewers for their intuitive commentary that signicantly improved the worth of this work.

REFERENCES

  • 1
    A.A. Andrade & P. Jr. Linear codes over finite rings. TEMA - Trends in Applied and Computational Mathematics, 6(2) (2005), 207-217.
  • 2
    A.A. Andrade, T. Shah & A. Khan. A note on linear codes over semigroup rings. TEMA - Trends in Applied and Computational Mathematics, 12(2) (2011), 79-89.
  • 3
    A.S. Ansari & T. Shah. An association between primitive and non-primitive BCH codes using monoid rings. EURASIP - Journal on Wireless Communications and Networking, 38 (2016).
  • 4
    J. Cazaran, A.V. Kelarev, S.J. Quinn & D. Vertigan. An algorithm for computing the minimum distances of extensions of BCH codes embedded in semigroup rings. Semigroup Forum, 73(3) (2006), 317-329.
  • 5
    A.V. Kelarev. “Ring constructions and applications”. World Scientific Publishing Co. Inc., New York (2002).
  • 6
    A.V. Kelarev & P. Solé. Error-correcting codes as ideals in group rings. Contemporary Mathematics, 273 (2001), 11-18.
  • 7
    S. Lin & J. D. J. Costello. “Error control coding: fundamentals and applications”. Prentice Hall Professional Technical Reference, New York (1994).
  • 8
    S.R. Nagpaul & S.K. Jain. “Topics in applied abstract algebra”, The Brooks/Cole Series in Advanced Mathematics. New York (2005).
  • 9
    V.S. Pless, W.C. Huffman & R.A. Brualdi. “Handbook of coding theory”. Elsevier, New York (1998).
  • 10
    A. Poli & L. Huguet. “Error-correcting codes: theory and applications”. Prentice-Hall, New York (1992).
  • 11
    T. Shah, Amanullah & A.A. de Andrade. A decoding procedure which improves code rate and error corrections. Journal of Advanced Research in Applied Mathematics, 4(4) (2012), 37-50.
  • 12
    T. Shah, Amanullah & A.A. de Andrade. A method for improving the code rate and error correction capability of a cyclic code. Computational and Applied Mathematics, 32(2) (2013), 261-274.
  • 13
    T. Shah & A.A. de Andrade. Cyclic codes through B[X], B[X; 1/kpZ0] and B[X; 1/pkZ0]: a comparison. Journal of Algebra and its Applications, 11(4) (2012), 1250078, 19.
  • 14
    T. Shah & A.A. de Andrade. Cyclic codes through B[X; a/bℤ0], with a/b ∈ ℚ+ and b = a + 1, and encoding. Discrete Mathematics, Algorithms and Applications, 4(4) (2012), 1250059, 14.
  • 15
    T. Shah, A. Khan & A.A. Andrade. Encoding through generalized polynomial codes. Comp. Appl. Math., 30(2) (2011), 349-366.
  • 16
    T. Shah, M. Khan & A.A. de Andrade. A decoding method of an n length binary BCH code through (n + 1)n length binary cyclic code. Anais da Academia Brasileira de Ciências, 85(3) (2013), 863-872.
  • 17
    T. Shah & A. Shaheen. Cyclic codes as ideals in F2[x;aN0]n, F2[x]an, and F2[x; 1/bN0]abn: a linkage. U.P.B. Sci. Bull., Series A, 78(3) (2016), 205-220.

Publication Dates

  • Publication in this collection
    May-Aug 2018

History

  • Received
    27 Mar 2017
  • Accepted
    21 Mar 2018
Sociedade Brasileira de Matemática Aplicada e Computacional Rua Maestro João Seppe, nº. 900, 16º. andar - Sala 163 , 13561-120 São Carlos - SP, Tel. / Fax: (55 16) 3412-9752 - São Carlos - SP - Brazil
E-mail: sbmac@sbmac.org.br