The Impact of Hamming Code and Cyclic Code on MPSK and MQAM Systems over AWGN Channel: Performance Analysis

Designing efﬁcient and reliable data transmission systems is an attractive area of research as it has become an essential requirement for the cutting-edge technologies. Error Control Coding (ECC) is a method used to control errors in a message to achieve reliable delivery through unreliable or noisy channel. Employing ECC in a communication system enable the sender to encode the message with redundant bits to form a codeword and transmits it over a noisy channel to the receiver, and then the receiver detects and corrects the errors which may occur during transmission without requesting for retransmission. In this sense this communication system becomes reliable and energy-efﬁcient. To this end, this paper addresses two techniques of ECC: Hamming code and cyclic code . Besides, this work investigates the impact of these codes on M-ary Phase Shift Keying (MPSK) and M-ary Quadrature Amplitude Modulation (MQAM) systems over an Additive White Gaussian Noise (AWGN) Channel in terms of coding gain . The simulation results show signiﬁcant coding gain for these codes. Another ﬁnding is that cyclic codes show better performance than Hamming codes for lower modulation order, while both of them show similar performance for higher modulation order. These ﬁndings can provide essential guidance when designing reliable and energy-efﬁcient system.


Introduction
Recently, we have witnessed a great demand on the applications of the internet of things (IoT) where providing reliable and fast communication systems become essential requirement for such applications. The wireless devices exchange data among them by mapping these sequences of data into signals for transmission over a communication channel where this process is called digital modulation. The amplitude and phase are forming many digital modulation techniques which it rehashes the information bits into the amplitude or phase of the transmitted signal, which is more susceptible to variations from fading and interference [1].
Along with the transmission operation the channel exposed with many errors at data bits output through the noise, interference, etc. Channel coding became great novel deals with error control techniques to provide maximum data transmission capacity for the channel. That meaning, the receiver can correct the errors and recover the originally transmitted information which would effectively leverage communication system performance [2].
Linear block code is an ECC for which any linear combination of codewords is also a codeword. If the message is k bits long and the codeword is n bits long, where n > k), then there exist k linearly independent codewords can form the generator matrix. To encode any k bit message, simply multiply the message vector u by the generator matrix to generate n bit long codeword vector v. Linear block code is easy to implement in hardware and because they are quickly identified, they can be 10 The Impact of Hamming Code and Cyclic Code on MPSK and MQAM Systems over AWGN Channel: Performance Analysis decoded over a constant time. They have high code rates (code rate is the ratio R = k/n). They have a low coding overhead, but limited error correction. They are useful for discrete no-memory channels or AWGN channels when the BER of the channel is relatively low, transmission bandwidth availability is limited, and data is easily retransmitted [3], [4]. Convolutional codes are often more complex and difficult to implement than linear block codes, and have a lower code rate, but they have powerful error correction functions. The Convolutional code may be more suitable for discrete Markov or faded channels. They are very popular in satellite and deep space communications because the bandwidth is basically unlimited, but the bit error rate is much higher, and retransmission is not feasible. Convolutional codes are more difficult to decode because they are coded with finite state computers, which have branch paths and can code every bit in the data sequence. The Viterbi algorithm is a well-known fast decoding process of convolutional codes. The Viterbi algorithm is the most likelihood decoder, that is, the maximum probability that the output word transmitted by decoding is always the correct word transmitted from the source [5].
Several studies have addressed the impact of ECC on the transmission signal in wireless communications systems. Authors in [6], [7], and [8] identified the analysis of the various linear block codes involved in channel encoding, and the best block code was implemented using different modulation techniques and data was transmitted across various channels. The best code for Bit Error Rate (BER) and Signal-to-Noise Ratio (SNR) with different numbers of fading channels using Binary Phase Shift Keying (BPSK) and Quadrature Phase Shift Keying (QPSK) modulation was investigated. It found that there should always be a trade-off between higher data rates and bit error rates, complexity, and the ability of code to correct for specific modulation techniques to enable reliable communication across a variety of channels.
In [9] authors compared the bit error rate (BER) of the BPSK in the AWGN between block code and the convolutional code. Where a comparison between the BER performance for an AWGN channel by designing hamming code, cyclic code, BCH code, RS code, and convolutional code have been studied. The Liner block code BCH and RS code provides better performance, while the convolutional code performs better than the block code. Besides, other contributions ( [10], [11], and [12]) addressed the use of the ECC to analyse the performance of the BPSK and QPSK. Different types of error correction codes were investigated by adding the White Gaussian Noise (AWGN) channel. Performance is based on bit rate errors (BER) and signals energy to noise power density ratio (E b /N 0 ), where found that the BCH codes typically perform better than Hamming and Cyclic codes for BPSK and QPSK.
The contribution in this work can be summarised as follows: • In this work, two techniques of ECC are addressed to analyse the performance of the MPSK and MQAM systems over AWGN Channel: Hamming code and cyclic code.
• Hamming (7, 4), Hamming (15,11), cyclic (7, 4), and cyclic (15,11) codes are investigated in MPSK and MQAM systems. The rest of the paper is organized as follows. In section 2, the digital communication model with ECC is briefly presented. In section 3, digital modulation techniques: PSK and QAM are described. In section 4 coding technique is presented with Hamming code and cyclic code. In section 5 the simulation results are discussed. Finally, section 6 concludes the paper.

Communication System Model
The communication system has three stages which are transmission stage, communication channel, and receiving stages, as shown in Fig. 1.
The information source generates a sequence of bits to form a binary message. At the transmission part, a massage is modulated and encoded by modulator and encoders, respectively, before it is transmitted through AWGN. After traveling through AWGN, data are demodulated and decoded at the receiving part [13].
The performance of a communication system depends on several factors, determining the bit error rate of the technique is one of them [10].
Choosing a particular digital modulation technique depends on several factors, high data rate, high spectral efficiency, high power efficiency, robustness to channel impairments, and low power implementation. It is based on finding the technique that achieves the best trade-off between these requirements [1].
The objective of this paper is to investigate the performance of the MPSK and MQAM systems with coding techniques over AWGN channel, then compare them in terms of coding gain.

Phase-Shift Keying (PSK)
Phase-Shift Keying (PSK) is a form of digital modulation where represents digital data just through discrete variations in the phase of a carrier signal. PSK is widely used in a variety of radio communication systems. In PSK modulation, the M signal waveforms are expressed as [2] Fig. 2. BPSK system is characterized by a one-dimensional signal space (i.e., N = 1), and has two message points (i.e., M = 2). However, BPSK only able to modulate at 1 bit/symbol and thus it can not use for high data rate applications. As a result, M-ary PSK (Fig. 3) has become suitable modulation for applications that require high data rates [19].
The bit error rate (BER) of MPSK over AWGN is given by , where E b is the signal energy per bit.

Quadrature Amplitude Modulation (QAM)
A Quadrature Amplitude Modulation (QAM) is a method of amplitude modulation that permitted for two different signals sent simultaneously on the same carrier frequency f c , interestingly doubling the bandwidth which can be transmitted [13].
As a result, the QAM signal consists of two components Inphase (I) and Quadrature (Q) where the corresponding signal waveforms are expressed as [2] S m (t) = A mi g(t) cos(2πf c t) , where A mi and A mq are the information signal amplitudes of the orthogonal carriers and g(t) are signal pulses.  MQAM modulation is more useful and efficient comparing to other modulation schemes, and it is almost suitable for all advanced modems. MQAM modulation is widely used since it has greater distributed distances between adjacent points in the I-Q plane (Fig. 3) [18]. Therefore, this feature can increase the immunity to noise and also reduce the errors [20].
The bit error rate (BER) for MQAM over AWGN is given by [2] , where E bavg is the average signal energy per bit.

Coding Technique
High-speed, high-performance applications require enhanced SNR. If the channel has a fixed value of SNR, some types of encoding techniques are used to improve the quality of the transmitted signal. Therefore, the channel codes make the signal less susceptible to noise and fading [3]. The primary purpose of channel encoding is to add additional bits to the data bit block so that the receiver can detect and correct the errors. [15].

Linear Block Codes
In coding theory [3], linear block code is defined as a block code in which the linear combination (i.e. XOR) of any two codewords is also a codeword. A cyclic code is a linear block code in which the rotation of any codeword results in another codeword. Linear block codes are considered as an efficient encoding and decoding techniques. Linear (n, k) codes of length n have 2 k codewords. As shown in Fig. 4, the codeword of length n decomposed into (n − k) bits called parity check bits, and k bits called information bits.
Generator matrix G is used when encoding the information data to form the codeword.

12
The Impact of Hamming Code and Cyclic Code on MPSK and MQAM Systems over AWGN Channel: Performance Analysis G(k × n) is defined as the combination of an identity matrix I of size k × k and a parity-matrix P of size k × n [15], [21] The encoder has to store the k rows of G to form a linear combination of these k rows based on the input message u = (u 0 , u 1 , .., u k−1 ) [15] v = u.G For any linear code we can find an matrix H, which is called the parity check matrix and its rows are linearly independent [15], [21]. In systematic form, the columns of H are arranged in the following form: Where, I is the identity matrix and P is the parity check matrix. At the receiving part the H used to restore the original message based on received vector r by calculating the syndrome s as follows Therefore, if r.H T = 0, then r is the codeword or the transmitted vector, otherwise r is not the transmitted vector.

Hamming code
Hamming codes is a class of linear block codes which have minimum distance of 3, so they are capable of correcting single error. They can be decoded easily since they are perfect codes [3].  The diagram describes which data bits are protected by each parity bit [21].
On the other side, if it is normalized per payload bit, then the higher code rate (k/n) can consume more energy per bit for the same total energy consumption. Therefore, the (15,11) codes perform better than (7,4) codes.

Cyclic code
Cyclic code is another linear block code that has a cyclic attribute of code words. For a linear code C, if every codeword i.e., C = C 1 , C 2 , ......C n from C has a cyclic right shift of components, it becomes a code word. Therefore, the shift of the cyclic code is not changed, because this shift to the right is equal to the shift of the (n − 1) cyclic to the left.
The Non-systematic code polynomial v(x) can be constructed depending on the generating polynomial g(x), Where u(x) is the message polynomial. The parity check matrix of codeword C can be obtained from polynomial h(x), h(x) = (X n + 1)/g(x) Where X n + 1 is the nonzero code polynomial of minimum degree in (n, k) cyclic code C. The cyclic code is used for error correction. They can correct double errors and burst errors [14].
Simply, Encoding and computation can be performed easily using shift registers with feedback connections (or linear sequential circuits). As a result, relatively long block code can be implemented with reasonable complexity.

Channel Coding Gain (CG)
In coding theory [3], coding gain is considered as a fundamental measurement to study and compare two communication systems which transmit same message. The coding gain is defined as the reduction of E b /N 0 (dB) required to obtain the same bit error rate (BER) (i.e. P e ). As depicted in Fig. 6, CG it is the difference between E b /N 0 for the uncoded system and E b /N 0 for the coded system, at same (BER). CG in dB is given by Channel coding enables the transmitter to send codded signal at low transmit power (smaller E b /N 0 ) to achieve the same (BER) as the uncoded signal which has greater transmit power (larger E b /N 0 ) [14].

Simulation and Results
In order to analyse the performance of the linear block codes on MPSK and MQAM systems through AWGN channel, two types of codes are investigated namely: Hamming and cyclic codes.
The value of (E b /N 0 ) in the AWGN channel is varied from 0 -20 (dB), to observe the performance of BER as (E b /N 0 ) varies. If there is an unequal pair between the input data from the transmitter and the data received by the receiver, the bit error rate is presented. It calculated by dividing the total number of unequal pairs of data elements by the total number of input data elements from a source. In the following subsections the simulation results of the performance evaluation is presented for four candidate systems: BPSK, 4-QAM, 16-PSK, and 16-QAM without and with coding. Figure 7 presents the performance of BPSK system without and with ECC using Hamming and cyclic codes at different coding rates. These codes have significant impact for BPSK system. It can be noticed that at BER = 10 −4 the coding gain for Hamming (7,4) is 0.8 dB, cyclic (7,4) is 1 dB, Hamming (15,11) is 1.8 dB, and cyclic (15,11) is 2 dB. Therefore, the cyclic (15,11) code outperforms the other codes approximately after 7 dB SNR. Figure 8 presents the performance of 4-QAM system without and with ECC using Hamming and cyclic codes at different coding rates. These codes have significant impact for 4-QAM system. It can be noticed that at BER = 10 −4 the coding gain for Hamming (7,4) is 0.2 dB, cyclic (7,4) is 0.6 dB, Hamming (15,11) is 1.4 dB, and cyclic (15,11) is 1.6 dB. Therefore, the cyclic (15,11) code outperforms the other codes approximately after 7 dB SNR. Figure 9 presents the performance of 16-PSK system without and with ECC using Hamming and cyclic codes at differ-  ent code rates. These codes have significant impact for 16-PSK system. It can be noticed that at BER = 10 −4 the coding gain for both Hamming and cyclic (7,4) are same which is 0.6 dB, and also, Hamming and cyclic (15,11) are same which is 1.2 dB. Therefore, Hamming and cyclic codes with higher code rates outperforms the other codes with smaller coding rates approximately after 7.8 dB SNR. Figure 10 presents the performance of 16-QAM system without and with ECC using Hamming and cyclic codes at different code rates. These codes have significant impact for 16-QAM system. It can be noticed that at BER = 10 −4 the coding gain for both Hamming and cyclic (7,4) are same which is 0.6 dB, and also, Hamming and cyclic (15,11) are same which is 1.2 dB. These results are similar to the 16-PSK results as both systems have same constellation size. However, Hamming and cyclic codes with higher code rates outperforms the other codes with smaller code rates approximately after 7 dB SNR.

16-QAM system
As a summary of the all results, Hamming and cyclic (15,11) codes that have larger code rate (i.e. R = 11/15) are more ef- ficient than Hamming and cyclic (7,4) codes that have smaller code rate (i.e. R = 4/7). These ECC can provide (n − k) redundancy bits (parity check bits). Therefore, they have the capability to correct one error. However, Hamming and cyclic (7,4) has 3-parity bits to protect 4-data bits, while Hamming and cyclic (15,11) has 4-parity bits to protect 11-data bits. Besides, the Hamming and cyclic (15,11) codes are more power efficient than Hamming and cyclic (7,4) codes.

Conclusion
The performance of MPSK and MQAM communication systems through the AWGN channel is analysed through investigating two types of linear ECC codes: Hamming and cyclic codes. The simulation results showed significant coding gain for these codes. The cyclic codes outperform Hamming codes for lower modulation order (i.e. small constellation size), while both of them show similar results for higher modulation order (i.e. large constellation size). On the other side, the coding gain for the lower modulation order was highly considerable comparing to the the higher modulation order since the order of constellation is more susceptible to the noise. As a result, the findings presented in this work provide a valuable guidance for designing such systems since it is reliable and power efficient systems.