A Review of design of Binary Golay Code and Extended Binary Golay Code for error correction

A binary Golay code is a type of linear error-correcting code used in digital communications. The two binary Golay codes formats are the Binary Golay Code (23-bit, G23) and Extended Binary Golay code (24-bit, G 24 ). The Golay code encodes 12-bits of data in such a way that it can correct 3-bits of error and detect 7-bits of error. G24 code is also called the Perfect Binary Golay Code. In standard code notation the codes have parameters [24, 12, 8] and [23, 12, 7], corresponding to the length of the codeword, the dimension of the code, and the minimum hamming distance between two codeword. An efficient implementation in the area of FPGA by using both Golay code (G23) and extended Golay code G(24) can be done by the help of different approaches of the encoding algorithm realizations. High speed with low-latency and less complexity in the design is the major concern at the time of working on FPGA. This paper presents a review on the various works performed by scholars on the design and implementation of Golay Code (G23 and G24).


INTRODUCTION
In wireless communication system signal plays an important role. Different signal travels from the wireless medium are affected by the various environmental conditions and obstacles to result in reflection of signal, scattering, diffraction and refraction. 4However when the signal is travel from different obstacles the signal is corrupted and error may occur in data after passing through different course of transmission. The main problem is to reduce the probability of error present in the digital communication signal in real time. The reason of signal distortion is noise and multipath interference are received at the time of transmission of the signal. We want reliable communication through the unreliable media if we want reliable communication we have to use some mechanism for correcting the error occurs during the transmission through the transmission media. To overcome the problem of interference we use channel coding technologies. These technologies must add some redundant bits to the original data at the time of transmission these bits are called parity bit or redundant bits. By using these technologies we can detect and correct the errors of the signal.
The parity check is a simplest and most popular error detection scheme by appending some additional parity bit 0 or 1 to the data bit. By adding the parity bits to the data will reduce the energy of the symbol of the received signal as a result symbol error rate increases. If the number of error bits is more than it can be corrected to return for the symbol error rate than it increases by the decreasing the energy of the symbols, the bit error rate of the whole received signal still can be reduced. After decoding the requirement is to achieve the same bit error rate by reducing the power efficiency Eb/N0 of the received digital signal. By adding the more number of parity bits to the signal the number of rate of error in the signal is reduced. The decoding mechanism cannot compensate and responsible for the reduction of symbol rate or loss.
International Journal of Trend in Scientific Research and Development (IJTSRD) ISSN: 2456-6470 Page: 1671 So the selection of coding is important. The decoding capability of the channel code is influence by the coding rate that determined by the number of information bits and parity-bits.
In wireless communication channel coding improve the bit error rate of signal in transmission. The most frequent problem in wireless communication is noise and interference from different obstacles. To solve this problem block interleaving is one of the most appropriate methods to break up the burst error in to discontinuous random error to bring the capability of channel coding to correct errors. More complexity encountered at the time of encoding and encoding become complicated, software becomes complex and the design of hardware is very complicated.
There are three steps used to transfer the information in which the transmitter transmit, receiver receives and transmission media is used to transfer the information. In an alternative that at the time of transmitting the information the data is changed to noise so to avoid this condition we use error correcting codes. As shown in Fig. 1, the message is encoded into a codeword, it is sent to the receiver through a channel, there is a possibility to exist the error occurs in the channel, so the receiver tries to obtain the original message by decoding the word.

Fig. 1-Process of Error correction codes
Transmission of message depends on what we have sent and what is received. Extended Golay code describe some important properties for such codes as- First property says that the message m of length k is a sequence of k symbol out of finite field F, so m= (m1::mk) belongs to F k .Then an n-code C over a finite field F is a set of vectors in F n , where n ≤ k. Since we will be dealing with a binary code only, now we assume codes are in binary form.  Second property says probability of error p is the probability that 1 is received when 0 was sent, or 0 is received when 1 was sent.  Third property says that the hamming weight of a vector belongs to a function F n is the number of its non zero elements.
 Fourth property says that the hamming distance of a two vectors belongs to a function F n is the number of place where they differ. The method is that an n-code C is a strict subset of F n in which we want the Hamming distance between any two vectors to be as large as possible.  Fifth property says that the minimum Hamming distance d of a code C is defined as d = min {dist(x, y) I x, y belongs to C} where c is the code. Sixth property says that an (An (n, M, d)-code C is a set of M vectors in F n 2, such that dist(x, y) >d for all x, y all C. Its block length is n and M is its dimension.

II. Golay Code Algorithm
A binary Golay code is represented by (23, 12, 7) shows length of the codeword is 23-bits while message is of 12-bits and the minimum distance between two binary Golay code is 7. This paper shows AE3h as characteristic polynomial which is of 12 bit binary number can be encoded into a 23-bit Golay code by using the long division method to generate check bits (11-bit) information and 12 bit data together make the Golay code of 12-bit data. For extending a Golay code (24, 12, 8) generated by adding a parity bit with the binary Golay code. B matrix is shown in Fig. 2.

Fig. 2-Matrix-B
The steps of algorithm required to achieve the encoding procedure as follows-1) A charateristic polyniminal is preferred for check bits generation. 5) A parity bit is added for the conversion of binary Golay code into the extended binary Golay code (24, 12,8). If the weight of binary Golay code is odd then then parity bit 1 is appended, otherwise 0 is appended.
As shown in the Fig. 3, the characteristic polynomial 101011100011 and 12-bit data is 101000100111. The 11-bits check bits sequence is generated by long division method is 10000110101. The 23-bit encoded Golay codeword (G23) is 101000100111-10000110101. A parity bit is added for the conversion of binary Golay code into the extended binary Golay code. In the G(23) word the weight is 11, i.e., the encoded word has 11 1"s, so a 1 will be appended in it. This will generate extended codeword G(24) as (101000100111-10000110101-1). Generation of parity bits is implemented by XOR operation of the bits of G(23) codeword. In verified G(24) codeword the weight is multiple of 4 and greater than equal to 8. The weight of the G(24) codeword is 12, so it is a valid codeword.  is still not determined then received data is required to be retransmitted. In this paper the first section gives the introduction about the problem of occurrence at the time of transmission of signal and how to resolve it. Second section gives a brief about the Golay Code encoder and decoder algorithm. The third section is literature review that presents the work of scholars. Fourth section is conclusion and the last section is about the reference paper

III. LITERATURE REVIEW
An efficient hardware implementation of the encoding the algorithm in field programmable gate array (FPGA) prototype for both the binary Golay code (g23) and extended binary golay code (g24). The high speed architecture with low latency has been designed and implemented in virtex-4 explained in reference [1]. These hardware modules for encoder and decoder can be a good candidate for various applications in high speed communication links, photo spectroscopy, and ultrasonography.
In reference [2] a lossless binary coding scheme used for the reception of the correct data information and to overcome the problem of power loss which is introduced by ternary coding scheme, 23 binary symbols which yields the power saving one and a half dB for omitting probability of the errors and this code is called Golay code. And another code is also introduced by him called extended Golay code but it is not that much power efficient it yields the power saving up to 3dB. A brief introduction of Golay code scheme explained in reference [3]. It also explains the properties of Golay code. A GF (2m) Galois field encoder & decoder its verification on FPGA Spartan xc3s50-5pq208using the NIST chosen irreducible polynomial. codes involving [6] four component codes, two of which are simple linear block codes and other two are symmetric code and its extended version.
In [7] Golay complementary sequences were introduced by Marcel Golay, the context of infrared spectrometry along with the properties and their application in different fields. The work in [8] present a new algorithms decoding the (23, 12, 7) and the (41, 21, 9) Quadratic Residue (QR) codes by using LUT which directly determine the location of the error without multiplication operation over finite field. An efficient coset based symbol-by-symbol soft-in/softout APP decoding algorithm is presented in [9] for the Golay code. It also examined the iterative decoding of concatenated Golay codes.
[10] observe the efficiency of turbo code (BPTC) and simulated its efficiency, used the Hamming (15,11) and Hamming (13,9) block channel code combinations and block interleaving to construct a BPSK modulation and BPTC coding system in the concept of feedback encoding in turbo code. This study also analyzed and simulated special combination of MSK modulation with Golay. A new technique in [11] of fault-tolerant hashing based on reversing the conventional usage of error correction codes (24, 12,8) to map 24-bit vector into 12-bits message words. To overcome the 24-bit restriction size of the binary attribute vectors would result in a less regular structure of the reference indices.
A method in [12] proposed of constructing a sequence of phase-coded waveforms, for which the uncertainty of the function is free of range side lobes along modest Doppler shifts. The problem with this that the ideal ambiguity along zero Doppler-axis but it is sensitive to non-zero Doppler shifts. The application of pulse coded waveform is in the area or communication using radar. The [13] present an efficient medical Big Data processing model which is based on Golay Code clustering algorithm. It diverse information items in a data stream mode. This approach is used in the field where the requirement to accumulate multidimensional data.
A new technique in [14] on low complexity trellis decoding of linear block codes. The designed trellises have a regular structure and allow low-complexity VLSI and DSP implementations. [15] Present a technical report on Golay and Wavelet error control codes in VLSI. Two coders have been implemented: a (12,6,4) wavelet encoder/decoder and a (24, 12, 8) Golay encoder and decoder. It is expected that the chip would function as a high-speed error encoder and decoder for Radio Frequency applications.
In reference [16] paper proposed an efficient softdecision decoder of the (23, 12, 7) binary Golay code up to the four errors. The method developed in this paper can be generalized to decode for more than four errors occurred. The paper presents the inequivalent binary Golay code sequence pair of length from odd length, involving a Barker sequence explained in [17]. The paper [18] presents the error detection and correction using the hamming code and Golay code.
Hamming code is the linear error correcting code help to detect and correct the single bit errors occurred at the time of transmission of data.

IV. CONCLUSION
This paper presents a review work in the field of FPGA based optimization of hardware architecture and bust error reduction etc. In this paper different types of encoding and decoding methods were reviewed for speed optimization. The aim of these papers is is to fulfill the requirement of high speed application low hardware complexity of the system. So in future new scheme may be proposed for FPGA using both binary Golay code (G23) and extended binary Golay (G24).