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 , where b j n is the length of , 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 , onde b j n é o comprimento do código , 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; aℤ0]n, 𝔽2[x]an , and , 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 , where a; b > 1. It is noticed that the monoid ring does not contain the polynomial ring 𝔽2[x] for a > 1. To handle this situation, a BCH code in the monoid ring 𝔽2[x; aℤ0] is constructed and then the existence of a non-primitive BCH code in the monoid ring is showed. The non-primitive BCH code C bn in the monoid ring is of length bn and generated by a generalized polynomial 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; aℤ0] 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 , with b = a + i, 1 ≤ i, j ≤ m, where m is a positive integer, is used. Corresponding to the sequence of monoid rings, we obtain a sequence of non-primitive binary BCH codes , based on a primitive BCH code C n of length n. The non-primitive BCH code in the monoid ring is of length b j n and generated by a generalized polynomial 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; aℤ0] of degree r it is constructed a code such that C n is embedded in , where the length of the binary BCH code is well controlled with better error correction capability. Along with the construction of a sequence 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 have burst error correction capability along with the random error correction.
2 BCH CODES IN , WHERE 1 ≤ J ≤ M.
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, u ∈ S, 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 where f i ≠ 0 and s i ≠ s j for i ≠ j. 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; aℤ0] and are given by x a and for each 1 ≤ j ≤ m, where m is a fix positive integer, and they behave like an indeterminate x in 𝔽2[x]. The arbitrary elements in 𝔽2[x; aℤ0] and are written, respectively, as f(x a ) = 1 + (x a ) + (x a )2 + ... + (x a )n and . The monoids aℤ0 and are totally ordered, so degree and order of elements of 𝔽2[x; aℤ0] and are defined.
As 𝔽2[x; aℤ0] ⊂ 𝔽2[x], it follows that the construction of BCH code in the factor ring 𝔽2[x; aℤ0]n is similar to the construction of a BCH code in 𝔽2[x]n . Whereas the construction of BCH codes in is based on the values of b. BCH codes of length b j n in , 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 ≤ i ≤ m, and a, m are positive integers. For that, consider the following map , which convert a primitive polynomial p(x a ) of degree s in 𝔽2[x; aℤ0] to a polynomial of degree b j s in . 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 , only this specific value of b is selected for which there is an irreducible polynomial in . Thus, for positive integers c j , d j and b j n such that 2 ≤ d j ≤ b j n with bjn is relatively prime to 2, there exists a non-primitive binary BCH code of length b j n, where bjn is order of an element .
In Table 1, we present a list of irreducible polynomials of degree b j s in corresponding to primitive irreducible polynomial of degree s in 𝔽2[x; aℤ0], where for , replace and by x, y and z, respectively.
Irreducible polynomials of degree bjs in corresponding to primitive irreducible polynomial of degree s in 𝔽2[x;aℤ0].
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; aℤ0] is a primitive irreducible polynomial of degree s ∈ {2l, 3l, 4l, 6l}, where l ∈ ℤ0, then the corresponding generalized polynomialof degree b j s inis 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; aℤ0] is a primitive irreducible polynomial of degree s such thatis a non-primitive irreducible polynomial of degree b j s.
-
For positive integers cj;dj;bjn such that 2 ≤ d j ≤ b j n and b j n are relatively prime to 2, there exist a non-primitive binary BCH codeof length b j n, where b j n is the order of an element.
-
The non-primitive BCH code of length bjn is defined as
Equivalently, is the null space of the matrix
The following example illustrates the construction of a non-primitive BCH code of length 32 n through .
Example 2.1.Corresponding to a primitive polynomial p(x2) = 1 + (x2) + (x2)4in 𝔽2[x;2ℤ0] there is a non-primitive irreducible polynomialin(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).
ByTable 2, it follows that b2n = 32 × 15 = 135. Now, to calculate the generating polynomial, 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 polynomial. Itis the minimal polynomial for α3, then α3, α6, α12, α24, α48, α96, α57, α114, α93, α51, α102 and α69 all are roots for. Therefore, it follows that. Similarly,
The BCH code with d2 = 3 has generator polynomial. It corrects up to 1 error and its code rate is. The BCH code with d 2 = 5 has generator polynomial
It corrects up to 3 errors and its code rate is. Similarly, the BCH codes with d 2 =7, 9, 15, 21, 27, 45, 63 and 135 have generator polynomials
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 corrects more errors and has better code rate than the code generated through 𝔽2[x; aℤ0]. 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 , where r and r j are, respectively, the degrees of their generating polynomials g(x a ) and . From Theorem 2, it follows that the generalized polynomial in divides in . So, there is a non-primitive BCH code generated by in . By the same argument, as b j n divides , it follows that divides in . Therefore, . Consequently, from third isomorphism theorem for rings, it follows that
Thus, there are embeddings of codes, whereas are, respectively, primitive BCH, non-primitive BCH and primitive BCH codes. Whereas the embeddings are defined as , where a(x a ) ∈ C n and . Also, if is the generator polynomial of a binary non-primitive BCH code in , then is the generator polynomial of a binary non-primitive BCH code in the monoid ring . Thus, a non-primitive BCH code is embedded in a non-primitive BCH code under the monomorphism defined as .
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; aℤ0].
-
1. There exists a binary non-primitive BCH codeof length bjn generated by a polynomialof degree bjr in.
-
2. The binary primitive BCH code Cnis embedded in a binary non-primitive BCH code, for each j ≥ 1.
-
3. The binary BCH codes of the sequence have the following embedding
Hence,
and a non-primitive BCH codeis embedded in a non-primitive BCH codeunder the monomorphism defined by.
Remark 4.The polynomialcan be obtained fromby substitutingand replacing y by.
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 polynomialswith 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, that is, we get
Similarly, for
it follows that
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
it follows that
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 ofcontains the generating matrix G 1 of such that .
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 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.
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.
-
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.
-
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.
-
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 ni ≤ cl, 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.
-
f. Error correction capability.
For given designed distance d, the error correction capability of a code t is calculated.
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.
-
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 .
-
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.
-
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.
-
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.
-
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.
-
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.
-
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].
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
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
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 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 , and , 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
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
-
1A.A. Andrade & P. Jr. Linear codes over finite rings. TEMA - Trends in Applied and Computational Mathematics, 6(2) (2005), 207-217.
-
2A.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.
-
3A.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).
-
4J. 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.
-
5A.V. Kelarev. “Ring constructions and applications”. World Scientific Publishing Co. Inc., New York (2002).
-
6A.V. Kelarev & P. Solé. Error-correcting codes as ideals in group rings. Contemporary Mathematics, 273 (2001), 11-18.
-
7S. Lin & J. D. J. Costello. “Error control coding: fundamentals and applications”. Prentice Hall Professional Technical Reference, New York (1994).
-
8S.R. Nagpaul & S.K. Jain. “Topics in applied abstract algebra”, The Brooks/Cole Series in Advanced Mathematics. New York (2005).
-
9V.S. Pless, W.C. Huffman & R.A. Brualdi. “Handbook of coding theory”. Elsevier, New York (1998).
-
10A. Poli & L. Huguet. “Error-correcting codes: theory and applications”. Prentice-Hall, New York (1992).
-
11T. 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.
-
12T. 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.
-
13T. 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.
-
14T. 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.
-
15T. Shah, A. Khan & A.A. Andrade. Encoding through generalized polynomial codes. Comp. Appl. Math., 30(2) (2011), 349-366.
-
16T. 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.
-
17T. 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