Iterative Threshold Decoding Of High Rates Quasi-Cyclic OSMLD Codes

Majority logic decoding (MLD) codes are very powerful thanks to the simplicity of the decoder. Nevertheless, to find constructive families of these codes has been recognized to be a hard job. Also, the majority of known MLD codes are cyclic which are limited in the range of the rates. In this paper a new adaptation of the Iterative threshold decoding algorithm is considered, for decoding Quasi-Cyclic One Step Majority logic codes (QC-OSMLD) codes of high rates. We present the construction of QC-OSMLD codes based on Singer difference sets of rate 1/2, and codes of high rates based on Steiner triple system which allows to have a large choice of codes with different lengths and rates. The performances of this algorithm for decoding these codes on both Additive White Gaussian Noise (AWGN) channel and Rayleigh fading channel, to check its applicability in wireless environment, is investigated. Keywords—Iterative threshold decoding; Quasi-Cyclic codes; OSMLD codes; Majority logic decoding; Steiner Triple System; BIBD


I. INTRODUCTION
Today LDPC codes [1] are present in most Telecom standards like DVB-S2 and WiMAX [2]. However, the decoding of these codes remain algorithmically complex and in situations such as the DVB-S2 [3] are often concatenated with codes such as Reed Solomon to improve performances. In our point of view, the MLD codes are better competitors for LDPC codes and this for several reasons. In fact, the hardware implementation of these codes is very simple and only requires AND gates. The cyclic OSMLD codes can be decoded iteratively by an extension of the Massey algorithm [4] which is less complex than the believe propagation algorithm but almost with the same performances.
In this article, the studied subject is QC-OSMLD codes which, unlike the cyclic OSMLD codes, offer a wide range of rates equivalent to that used in the standards. The first QC-OSMLD codes were constructed by L. Townsend and E. Weldone [5], but most of these codes are constructed by either computer search or hand through trial-and-error, except the construction based on Singer Difference set, which is a geometry projective method. Later, Chen Zhi and al [6] had given a mathematical formulation for the construction of QC-OSMLD codes with high rates, these codes are based on Steiner Triple system (STS) .
Iterative threshold decoding QC-OSMLD codes of rate 1/2 has proven to perform remarkably well on Additive White Gaussian Noise (AWGN) channel [7]. the purpose of this paper is to investigate the performance of iterative threshold decoding of QC-OSMLD codes of rate n0−1 n0 constructed from Singer Difference Set, and STS on both Rayleigh fading channel and AWGN channel, is investigated .
The organization of the paper is as follows. The first section provides the reader with a concise description of not only the OSMLD codes but also the majority logic decoding algorithm and the Quasi-Cyclic Codes. Afterwards, the second section defines the Singer Difference Set, and it presents the constructed codes based on this algorithm. Section 3 is about the construction of QC-OSMLD codes of rate of the form n0−1 n0 based on STS, starting with a description of Balanced Incomplete Block Design (BIBD), then presenting the STS construction, and eventually, presenting the different constructed codes. Section 4 introduces the encoding method after describing the iterative threshold decoding algorithm and explaining the modification made for the Rayleigh fading channel. Finally, the last part presents the simulations results and analyses the ITD algorithm for decoding the constructed codes on both Rayleigh fading channel and AWGN channel.

A. OSMLD Codes
Consider an (n, k) linear code C with parity-check matrix H. The row space of H is an (n, n-k) code, denoted by C ⊥ , which is the dual code of C or the null space of C. For any vector v in C and any vector w in C ⊥ , the inner product of v and w is zero [8]. Now let consider that a codeword vector in C is transmitted over a binary symmetric channel. Taking into consideration that e(e 1 , e 2 ,..., e n ) and r(r 1 , r 2 ,..., r n ) are the error vector and the received vector, respectively. Then r = v + e. The construction of the below linear sum of the received vector for any vector w in the dual code C ⊥ : Which is called a parity-check sum. Using the fact that <w,v>=0, the following relationship between the parity-check sum A and error digits in e is obtained: Suppose that there exist J vectors in the dual code C ⊥ , which have the following properties: 1) The j th component of each vector w i is a 1.
2) For i =j there is at most one vector whose i th component is a 1.
These J vectors are said to be orthogonal on the j th digit position. They are called orthogonal vectors. Now, let us form J parity-check sums from these J orthogonal vectors, For each i in 1,.., e p + e j the error digit e j is checked by all the check sums above. Because of the second property of the orthogonal vectors, any error digit other than e j is checked by at most one check sum. These J check sums are said to be orthogonal on the error digit e j . If all the error digits in the sum A i are zero for i =j, the value of A i is equal to e j . Based on this fact, the parity-check sums orthogonal on e i can be used to estimate e i , or to decode the received digit r i .

B. Majority logic decoding principle
The error digit e j is decoded as 1 if at least one-half of the check sums orthogonal on e j , are equal to 1; otherwise, e j is decoded as 0 like majority rule [8]. When C is a cyclic code, each e i can be decoded simply by cyclically permuting the received word r into the buffer store.
Example 1: Let us consider the (7,3) code, which is the short code in difference set codes class. This code is specified by the perfect difference set P=0, 2, 3 of order 21. From this perfect set, the following three check sums orthogonal on e 7 could be formed: A 1 = e 4 + e 5 + e 7 A 2 = e 2 + e 6 + e 7 A 3 = e 1 + e 3 + e 7 If a simple error e=(000001) occurs, then A 1 = A 2 = A 3 = 1. If a double error occurs; for example, e 7 =1 and one value of e 1 , ..., e 6 is equal to 1, then two values of A i are 1. So we can say that : -e 7 =1 if only and if at least 2 values of A i are 1 -e 7 =0, otherwise

C. Quasi-cyclic Codes
A code is said to be quasi-cyclic if every cyclic shift of a codeword by p positions results in another codeword [9]. Therefore, a QC codes are a generalization of cyclic codes with p = 1. A QC code (mn 0 , mk 0 ) with a minimum distance d based on difference set can be specified with k 0 disjoints difference sets {D 1 ,D 2 ,...,D k0 } such that D i (d i0 ,d i1 ,d i2 ,...,d i(S−1) ) of order S, chosen from the set {0,1,2,..., mk 0 } [5]. The parity check matrix H in the systematic form of such code is completely defined as follows: The circulant matrix P i is deducted from the difference set D i ; the elements of D i can specify the position in the matrix header P i with one, while d ij represents one in the position j, the others rows are obtained by a cyclic shift of the header. Where I represents the identity matrix.
The majority logic decoding algorithm for QC codes is the same as cyclic codes. However, there is a little bit difference between them. Hence, in cyclic codes each error digit e i can be decoded by cyclically permuting the received word r, but in QC codes in systematic form, shift is done cyclically by one position of each (n-k) bits simultaneously.
Example 2: Let consider the QC code C (6,3,3). This code is of the rate 1/2 and based on the Singer difference set DS{0,1} of order 2.
The parity check matrix H in systematic form is [P I 3 ] The parity-check sum orthogonal on e 3 is obtained from the parity check matrix H : A 1 = e 2 + e 3 + e 5 A 2 = e 1 + e 3 + e 6

A. Signer Difference Set
A difference set [10] of order S and modulo m ≥ S(S -1)+1 is defined as a collection of S integer specified from the set {0,1,...,m-1} such that no two of the S(S -1) ordered differences modulo m are identical. If m=S(S -1)+1, then for any non-zero integer n < m, there is exactly one pair of elements in the difference set such that their difference is congruent to n modulo m. Such a set is called a perfect difference set.
Singer [11] has demonstrated how to construct such sets when S = p u + 1 and p is prime. Points and lines in the projective geometry PG(m -1, q) form a difference set of parameters [q,m]. The construction of Singer difference sets with parameters [q,m] is straightforward if a primitive polynomial of degree m in F q is known. The following is the basis of Singer algorithm: (IJACSA) International Journal of Advanced Computer Science and Applications, Vol. 7, No. 4, 2016 519 | P a g e www.ijacsa.thesai.org 2) Choose the start value λ 0 = 0, λ 1 , λ 2 ,..., λ m−1

B. Construction based on Singer Difference Set
The Singer construction allows to have codes with rate 1 2 . It's possible to construct a single perfect difference set of order S = p u + 1 and modulo m = p 2u + p u + 1 where p is a prime number, and u is a positive integer. As a results, it's always possible to construct codes with minimum distance p u + 2 and length 2(p 2u + p u + 1).
All constructed codes are OSMLD and completely orthogonalizable since the orthogonal parity-check equations number J is always equal to d min -1, where d is the minimum distance of the code.
In [5], Townsend and Weldon has constructed a rate 1 2 codes of small length up to n = 366. With the help of Magma [12], many perfect difference sets have been constructed, which allows to construct a large number of QC-OSMLD codes of large lengths up to n = 2.10 9 .

IV. CONSTRUCTION BASED ON STEINER TRIPLE SYSTEM
Historically, Smith [13] presented in 1968 an application of incomplete block designs to the construction of several families of error-correcting codes which may be decoded using a relatively simple majority logic decoding procedure. However, he didn't give any explicit construction for such designs. Special cases of these codes are equivalent to the Selforthogonal Quasi-cyclic codes based on Perfect Difference Sets discussed by Townsend and Weldon [5] (1967). Chen Zhi and al stated an [6] explicit constructions of many classes of difference families considered as base blocks for Steiner designs. He presented a construction of infinite optimal self-orthogonal quasi-cyclic codes with high rates. This section describes briefly the different construction methods of QC-OSMLD codes based on block design. Also, a part of constructed codes generated automatically by Matlab programmes is represented.

A. Balanced Incomplete Block Design
A Balanced Incomplete Block design (BIBD) [10] is a pair (V, B) where V is a set and B is a collection of b k-subsets of V (blocks) such that each element of V is contained in exactly r blocks, and any 2-subset of V is contained in exactly λ blocks. The numbers v, b, r, k, and λ are said parameters of the BIBD.
Trivial necessary conditions for the existence of a BIBD(v, b, r, k, λ) are : The incidence matrix of a BIBD (V, B) with parameters v, b, r, k, λ is a v × b matrix A = (a ij ), in which a ij = 1 when the i th element of V occurs in the j th block of B, and a ij = 0 otherwise. [14] is applicable for k = 3 and v is a power of a prime of the form v ≡ 1(mod 6). Considering for each v, GF (v = p e ), the Galois field of order v. Let ω be a primitive root. Then the STS difference family with parameters v = 6t + 1, b = 6t 2 + t, r = 3t, k = 3, λ = 1, is described by base blocks typically given by the form :

1) QC-OSMLD codes based on STS
Another construction proposed by Rosa [15][10], for which the knowledge of a primitive root is not required, may be applicable for these designs using Skolem Sequences.
An extended Skolem sequence of order n is a sequence ES = (s 1 , s 2 , ..., s 2n ) of 2n + 1 integers satisfying conditions 1 and 2 of the previous definition and : 3) there is exactly one s i ∈ ES such that s i = 0.
The element s i = 0 is called the hook or zero of the sequence.
3) Construction By A. Rosa: Suppose {1, ..., 3n+1}\{2n+ 1} can be partitioned into m triples {a, b, c} such that a+b = c or a + b + c ≡ 0(mod 6n + 3). (This problem is called the second Heffter difference problem). Then the set of all triples {0, a, a+b}, together with "short block" {0, 2n+1, 4n+2}, is a (6n + 3, 3, 1) cyclic partial difference family; the base blocks for a ST S(6n + 3). Heffter's second difference problem is solved using extended Skolem sequences of order n with a hook in the nth position. From such a sequence, the pairs (b r , a r ) is constructed such that b r − a r = r, for 1 ≤ r ≤ n. Then the set of all triples (r, a r + n, b r + n) is taken, for 1 ≤ r ≤ n.

C. New constructed codes
The following tables represent a small part of many constructed QC-OSMLD codes based on the methods described above. The length n, the dimension k, the minimum distance d, and the rate, and also the base blocks which represent the headers of the circulant matrix of the parity-check matrix H, are represented. Due to the significant number of base blocks in high rate, aren't represented in the tables.

A. Encoding
In the case of QC codes, the encoding can be achieved with simple shift registers while the complexity is linear [9] [16]. Because the quasi-cyclic code is not in systematic form, an additional k-stage register is required by this encoder to store the information symbols of the next block until encoding is completed. This difficulty can be avoided by using an equivalent systematic code. In this case the codes constructed are in systematic form.
QC codes could be encoded by either generator matrix or polynomial multiplication. These codes are defined by the parity check matrix H. The generator matrix G is obtained by the following transformation : The encoding algorithm consists of multiplying the message i by the generator matrix G to get the codeword v.
The Quasi-cyclic codes have a polynomial form. Consider C(n,k) a systematic quasi-cyclic code with rate 1 2 , and let P which defines the code be the circulant matrix. The information vector to be encoded is denoted by i, then Let i(x) and p(x) represent the information vector and the header of the circulant matrix P in polynomial form, respectively. Obviously, the remaining rows of P are: The algebra of polynomials modulo x m -1 is equivalent to the algebra of m x m circulant matrices; besides, the polynomial product i(x)p(x) mod x k -1 is similar to multiplying the vector i by the circulant matrix P. Hence, Example 5: Let consider the same code as in the example 2. Now, to transmit the message i=101. i = 101 then i(x) = 1+x 2 And p = 101 then p(x) = 1+x 2 Then the codeword is: In the case of QC codes with rate of the form n0−1 n0 , the encoding like codes with rate 1/2 can be realised by either generator matrix or polynomial multiplication [9]. These codes are defined by the parity check matrix H of the form : The generator matrix G is obtained by the following transformation : In the case of codes with rate n0−1 n0 , there are many circulant matrix ( P 1 P 2 ... P k0 ), then for encoding the information vector 'i', it must be divided into k 0 subgroup (i 1 i 2 ... i k0 ) then based on the equation (10), the following equation is obtained : To clear this, let us consider the following example.

B. ITD
Threshold decoding is simply the logical extension to soft decisions of majority decoding described above. In Massey's original work [17], he considered two different variations of the decoding algorithm. Considering here the method which uses the Bi equations that are obtained from A i by a simple transformation [18]. Thanks to its speed and simplicity, the Majority Logic (ML) decoding of Quasi-Cyclic codes is significant. Therefore, it is worth investigating which Quasi-Cyclic codes can be decoded using ML decoder. Majority logic decoding is well described in [8,19]. It consists of cyclic shift register, XOR matrix, majority gate and XOR for correcting the codeword bit under decoding.
The ITD algorithm which is based on SISO extension of Massey threshold decoding algorithm [17] was developed mainly for decoding Parallel Concatenated Block Codes [20] and product codes constructed from OSMLD Codes [21], later it was enhanced for decoding not only Generalized Parallel Concatenated OSMLD Codes [22] but also OSMLD block codes [4]. ITD algorithm has an improvement in error correcting related to standard ML decoding.
Considering the transmission of the codeword C(c 1 ,c 2 ,...,c n ) over an Additive White Gaussian Noise channel (AWGN), using BPSK modulation. The soft decision, which is the Log Likelihood Ratio (LLR), on the j th bit of the received word R(r 1 ,r 2 ,...,r n ) can be calculated as follows: The hard decision vector corresponding to the received vector R is denoted by H(h 1 ,h 2 ,...,h n ). Where c j is the j th bit of the transmitted codeword. For a code with J orthogonal parity check equations; the equation (13) can be expressed as: Where B i , for i in {1, ..., J}, are obtained from the orthogonal parity check equations on c j bit, as follows: B 0 = h j and each B i with i in {1,...,J}, is calculated by eliminating the term h j from the i th orthogonal parity check equation. By applying BAYES rule, (14) becomes: Since the parity check equations are orthogonal on the j th position, so the individual probabilities P(B i /c j = 1 or 0) are all independent and (15) can be written as: Assume that the transmitted symbols are equally likely to be +1 or -1, and thus the last term in (16) is null. As a result, the equation (16) becomes: (IJACSA) International Journal of Advanced Computer Science and Applications, Vol. 7, No. 4, 2016 524 | P a g e www.ijacsa.thesai.org According to [18], (17) can be expressed as: Where the value of (1-2B i ) is equal to +1 or -1, and w i is a weighting term proportional to the reliability of the i th parity check equation. then showing that: Where E s is the energy per symbol, and N s is the noise spectral density.
Where n i is the total number of terms in the i th orthogonal parity check equation without c j , ik represents the k th element of the i th parity check equation and with: Thus the soft output can be split into two terms, namely into a normalized version of the soft input r j and an extrinsic information L Ej representing the estimates made by the orthogonal bits on the current bit c j . Hence, (18) becomes Using the following notation: Which is called the reliability value of the channel.
The algorithmic structure of the SISO threshold decoding can be summarized as follows: Iterative decoding process (see Figure 1) can be described as follows: In the first iteration, the decoder only uses the channel output as input and generates extrinsic information for each symbol. In subsequent iterations, a combination of extrinsic information and channel output is used as input.  Figure 1, the soft input and the soft output of the q th decoder is achieved through the following equations: Where R(q) represents lines (or columns) of the received data, and L E (q) is the extrinsic information computed by the previous component decoder. In the proposed procedure, a fixed value 1/J is used for the parameter α(q) and this for all iterations. The value chosen for α(q) reacts as an average of all J estimators which contribute in the computation of L Ej .

C. Modification of Rayleigh fading channel
In the channel model, each received bit rj can be expressed as : In this representation, c j is a BPSK symbol associated to the transmitted bit cj, and nj is an AWGN. The Rayleigh variable aj is generated as: where x j and y j are zero mean statistically independent Gaussian random variables each having a variance σ 2 . Considering the power normalized to one as Which gives a variance of 0.5 for Gaussien variables. The main matter in determining the required modification for ITD algorithm is the availability of channel side information on the Rayleigh fading channel. The threshold decoding algorithm has to be modified slightly by changing equation (23) which defines the reliability value of the channel by With this modification, it's possible to use the same decoder structure which was described in Figure 1.

VI. SIMULATION RESULTS AND ANALYSIS
This section considers simulation results and analysis for some decoding QC-OSMLD codes of rate n0−1 n0 and 1/2 with the Iterative Threshold Decoding algorithm. Some of our simulations are over AWGN channel , whereas others are over Rayleigh Fading channel; however, both of them are with modulation BPSK. Due to computational limitations, a minimal residual error of 200 have been used. In the simulations over Rayleigh fading channel, assuming an accurate fade estimate (IJACSA) International Journal of Advanced Computer Science and Applications, Vol. 7, No. 4, 2016 525 | P a g e www.ijacsa.thesai.org at the receiving and an independent Rayleigh distribution of the fades.
The performance improves with each iteration in all simulation results presented. The following results represent the performance of decoding an QC-OSMLD code with the ITD algorithm and comparison with classic Threshold decoding algorithm.
The Figure 4 shows that the LDPC WiMax code (192,96,10) decoded with BP algorithm outperforms the OSMLD-QC code (182,91,11) decoded with the ITD algorithm. However, the first decoder requires more iterations; on the other hand, the second one is less complex.

B. Rayleigh
The curves in the Figure 5 show the achieved bit error rates for the QC-OSMLD code (366,183,115) over Rayleigh fading channel. The number of iterations used is a 10, such that there is no significantly more to gain by more iterations.  Observing that the performance increases with each iteration, and the improvement is negligible after the 7 th iteration .  Iter (1) Iter (2) Iter (3) Iter (4) Iter (5) Iter (6) Iter (7) Iter (8) Iter (9) Iter (10)   the same rate 2/3. From the graph above, it's clear that as the code length increases, the performances rises, as well, which results in a gain of 1db at 10 −5 . In the second case, two codes with different rates has been compared (76,57,4) of rate 3/4 and (39,26,4) of rate 2/3 holding the same minimum distance which is 4. As a result, even if the code length is large, the code of rate 3/4 is outperformed by the code of rate 2/3 with difference of 3db at 10 −5 .

VII. CONCLUSION
In this paper, the construction of a class of QC-OSMLD codes based on Steiner triple system, and another class based on Singer difference sets has been investigated. The encoding methods has been presented for those codes. Also, the performances of decoding these codes with the ITD algorithm over AWGN channel and also over fading channel has been shown. The decoding algorithm used for AWGN channel is unchanged, and only the channel reliability factor needs to be redefined. The simulations results show that the constructed codes perform well when decoded with ITD algorithm. It is interesting to apply this iterative decoding algorithm on other channels models like Rice or Nakagami. Also as extension of this work we plan to investigate the performance of decoding rate 1 n0 QC-OSMLD codes with an adaptation of our ITD algorithm.