Performance Evaluation of WiMAX System Using Different Coding Techniques

The product code proposed in this chapter is constructed by using time-invariant convolutional code. Its component codes’ trellis structure does not vary in time as in product codes constructed with Hamming, BCH, and Reed Solomon block codes. Moreover, the number of states in the trellis structure of a block code may grow exponentially with the difference of codeword and data block lengths, whereas the number of states in a convolutional code can be set as desired.


Introduction
In this chapter, we introduce a new class of coding technique that belongs to product code family.This technique is based on convolutional code.The use of convolutional code in the product code setting makes it possible to use the vast knowledge base for convolutional codes as well as their flexibility.
Product codes studied thus far have been constructed using linear block codes, such as Hamming [1], Bose-Chaudhuri-Hocquenghem (BCH) [2] and [3], Reed Solomon codes [4] and single parity check (SPC) [5].These types of the product codes are traditionally constructed by linear block codes that have structure with a time varying property [6].
The product code proposed in this chapter is constructed by using time-invariant convolutional code.Its component codes' trellis structure does not vary in time as in product codes constructed with Hamming, BCH, and Reed Solomon block codes.Moreover, the number of states in the trellis structure of a block code may grow exponentially with the difference of codeword and data block lengths, whereas the number of states in a convolutional code can be set as desired.
The time invariant trellis structure of convolutional codes makes them more convenient for implementation.In addition, numerous practical techniques such as trellis coded modulation and puncturing can be simply utilized with convolutional codes as opposed to linear block codes.
Multi-input multi-output (MIMO) techniques are quite important to enhance the capacity of wireless communication systems.Space-time trellis codes provide both diversity and coding gain in MIMO channels and are widely used [7].Space-time trellis codes usually have timeinvariant trellis structures just like convolutional codes.Thus, a product code based on convolutional codes is more suitable for integration with MIMO channels and poses an alternative to block product codes.
The type of proposed product code described in this chapter is called modified Convolutional Product Codes (CPC), considered as a different type of normal CPC [8].The normal CPC depends on recursive systematic convolutional encoder, whereas the modified version of CPC will basically depend on non-recursive non-systematic convolutional encoder.

Advanced Transmission Techniques in WiMAX 266
WiMAX system is a wireless communication system.It suffers from having a high Bit Error Rate (BER) at low Signal to Noise Ratio (SNR).Using modified version of CPC for WiMAX system reduces the BER at low SNR.Also using the modified version of CPC with WiMAX decreases the number of stages of its physical layer as described later.

CPC encoder
For a regular product code, the information bits are placed into a matrix.The rows and columns are encoded separately using linear block codes.This type of a product encoder is shown in Figure 1.In CPC method, the information bits are placed into two dimensions (2D) matrix.The rows and the columns are encoded separately using recursive systematic convolutional encoders.Each row of the matrix is encoded using a convolutional code with generator polynomial (1, 5/7) octal and code rate (1/2) Figure 2. The same recursive systematic convolutional code with the same polynomial is used to encode each row.Once all rows have been encoded, the matrix is sent, if desired, to an interleaver.The original data matrix dimensions are (n × k), and the encoded data matrix dimensions will be (2n×k) for coding rate (1/2).
The coded rows matrix is then recoded column by column using the same or different recursive systematic convolutional encoder.Hence, the overall code rate is 1/4.

CPC decoder
In the decoding process, the log-MAP soft decoding algorithm, [9] and [10], is used to iteratively decode the convolutional product code.Since columns were encoded last, each column is independently decoded one by one.The extrinsic information obtained from the columns is passed to the row decoder after being de-interleaved.Then, row decoding proceeds; rows are decoded one by one, and interleaved extrinsic information is passed to the column decoder.The CPC decoding procedure is depicted in Figure 5.
The decoding structure employed in this method is the same as that of serially-concatenated codes in Figure 6.6 [11].

Modified CPC encoder
In the modified version of CPC, the same technique is used for coding the message, except using nonrecursive nonsystematic convolutional encoder instead of recursive systematic convolutional encoders for coding both rows and columns.That means the both encoders of rows and columns will have coding rate (1/2), and generator polynomial (5,7) Octa Figure 7.The sequence of bits is fed into 2D matrix and fills it column by column.The size of this matrix depends only on the type of modulation used.For 16 QAM, the size of the matrix will be (nx4) and for 64 QAM the size of the matrix will be (nx6).These sizes simplify the process of mapping, as the symbol size in 16 QAM is 4 bits and in 64 QAM is 6 bits.So each row of those matrices will form one QAM symbol.The 'n' refers to the number of data subcarriers of OFDMA, 128 or 512.
The coding by modified CPC will be done in 2 stages 1.Each column will be independently coded.2. Then each row of the resulting matrix will be coded by the same generator polynomials.
From Figure 7 since the generator polynomials used for coding both rows and columns are (5,7) octal with constraint length 3, not following the standard of WiMAX, each column is padded with two zeros for terminating its encoder.But each row is padded with two or three zeros according to the number of used subcarriers, 128 or 512, receptively to form the suitable size of the overall matrix.That matrix is then divided into smaller matrices with sizes (nx4) or (nx6) as described later.Fig. 7. Convolutional Coding [5,7].
After the coding process, the total number of bits will be more than the original message bits due to the increase in the overall code rate (1/4), and the addition of the zeros in both column and rows that used for the termination process.Therefore the following steps are done, 1. Dividing the overall matrix produced from modified CPC into three matrices.Each one has a size (nx4) or (nx6) according to the type of QAM used as mentioned before.The reason for using three matrices only is to have a number of message bits equals to bits used in the convolutional code method, as a comparison between it and CPC is done.2. Applying symbol mapping for each one independently (16QAM or 64 QAM).3. Inserting the pilot and DC subcarriers for each matrix.4. Performing the IFFT on the three matrixes independently resulting in three OFDMA symbols. 5. Applying (cyclic prefix) CP for each symbol.6. Sending each symbol independently.
The reason for using nonrecursive nonsystematic convolutional encoder instead of recursive systematic convolutional encoders is simplifying the termination of the encoder, as RSC contains a feedback and its termination will be more difficult.Also using the generator polynomials (5,7) leads to a little increase in the complexity of the system because of a few number of zeros will be added to terminate the two encoders. www.intechopen.com

Modified CPC decoder
At the receiver, the three OFDMA symbols are combined to form the original matrix which is decoded by Viterbi decoder.The Viterbi decoder uses the same generator polynomials (5,7) with hard decision for each row and for each column.The rows must be decoded first then the columns are done, because columns are encoded first Figure 6.To match the CPC method, the number of data bits will be reduced.For example in OFDMA (128-16QAM) and (128-64QAM) the number of data bits was 144 and 216 but in CPC method it becomes 136 and 204 bits receptively due to the number of zero bits added to terminate the two encoders.

Modified CPC minimum distance and its asymptotic performance
The Hamming weight of a binary codeword is defined as the number of '1's available in the codeword.The minimum distance of a linear code is the minimum Hamming weight of all the codewords.The minimum distance plays an important role in the code performance.As it gets larger, code performance improves, especially at high signal-to-noise ratio (SNR) values.The free distance of the component convolutional codes used in modified CPC with trellis termination will be called d free .The minimum distance of the modified CPC in the case of no interleavers will be investigated.

No Interleaving
After the first stage of the modified CPC encoding operation (columns encoding), it is obvious that one of these columns should contain at least d free number of '1's.This means that there are d free rows containing at least a single '1' in the columns-encoded matrix.When rows are encoded, there exists at least d free number of rows each containing at least d free '1's.Hence, in total there are at least d 2 min '1's in the coded matrix.In summary, if no interleavers are used, the modified CPC minimum distance is d 2 min .

Advantage and disadvantage of CPC
CPC technique has mainly two main advantages that make it a motivating step for future considerations and improvements for practical systems.
1. Do not need another interleaver after channel coding because of converting into matrix (nx4) or (nx6) does almost the same job as the overall matrix will be filled column by column and will be read row by row after coding processes (block interleaver) since each row is used for making QAM symbol.2. Reducing the BER at low SNR. 3. The product code we propose in CPC is constructed by using time invariant convolutional codes.Its component codes' trellis structure does not vary in time as in product codes constructed with Hamming, extended Hamming, BCH, and Reed Solomon block codes.The time invariant trellis structure of convolutional codes makes them more convenient for implementation 4. The number of states in CPC like a convolutional code can be set as desired. 5. Numerous practical techniques such as trellis coded modulation and puncturing can be simply utilized with convolutional codes as opposed to linear block codes.
6. Space-time trellis codes usually have time-invariant trellis structures just like convolutional codes.Thus, a product code based on convolutional codes is more suitable for integration with MIMO channels.7. Increasing the free distance to be d 2 min .
But on the other hand it causes more delay for obtaining the original message because the code rate becomes 1/4 not 1/2 as in convolutional code.The performance of the system will be reduced and this is the price to be paid for the improvement obtained.

Results
This section contains comparisons between the modified CPC method and convolutional code, turbo code and LDPC code.Several results obtained at different types of the channels, modulation techniques (16QAM -64QAM) and number of OFDM subcarriers (128 -512).
In this work, a matlab tool is used to simulate the physical layer of WiMAX and apply the mentioned coding methods.

AWGN channel
In this section the coded signal is transmitted through AWGN channel only.This can be done using matlab function AWGN.The syntax of this function is: y = awgn (x, snr , 'measured') adds white Gaussian noise to the vector signal x to produce output signal y The scalar snr specifies the signal-to-noise ratio per sample, in dB.If x is complex, awgn adds complex noise.This syntax measures the power of x before adding noise.
We can derive the relationship between Es/N0 and SNR for complex input signals as follows: ( The comparisons between modified CPC and convolutional code are shown in both Figure 8 and Figure 9. From Figure 8, it is shown that SNR will be improved by approximately 2 dB at BER equals 10 -3 for modulation type 16QAM and number of subcarriers equals 128.Also, an improvement can be obtained when the number of subcarriers is increased to 512 as shown in Figure 9.  From Figure 10 and Figure 11, the results of comparisons between modified CPC and LDPC code are shown at different received SNR values.From these figures, we conclude that modified CPC gives good results at different SNR. Figure 10 shows that modified CPC coding technique gives better results than LDPC coding technique at 16 QAM and OFDM subcarriers equals 128.The improvement is more than 3 dB for 10 -3 .Also, there will be an improvement, when the number of subcarriers is increased to 512 as shown in Figure 11.From Figure 12 to Figure 13, the results produced from the comparisons between modified CPC and turbo code are shown at different received SNR values.As shown from these figures, modified CPC method gives good results compared to turbo coding.Figure 12 shows that using modified CPC method can give better results than turbo coding technique at 16QAM and OFDM subcarriers equals 128.This improvement is more than 3 dB for BER= 10 -3 .Also other improvements can be obtained at different number of OFDM subcarriers (512) as shown in Figure 13.From Figure 14, it is shown that SNR will be improved by approximately 1.5 dB at BER equals 10 -2 for modulation type 64QAM and number of subcarriers equals 128.Also, an improvement can be obtained when the number of subcarriers is increased to 512 as shown in Figure 15. Figure 16 and Figure 17 show the results of comparisons between modified CPC and LDPC code are shown at different received SNR values.We conclude that modified CPC gives good results at different SNR. Figure 16 shows that modified CPC coding technique gives better results than LDPC coding technique at 64QAM and OFDM subcarriers equals 128.The improvement is more than 1.5 dB for 10 -2 .Also, there will be an improvement, when the number of subcarriers is increased to 512 as shown in Figure 17.From Figure 18 to Figure 19, the results produced from the comparisons between modified CPC and turbo code are shown at different received SNR values.As shown from these figures, modified CPC method gives good results compared to turbo coding.Figure 18 shows that using modified CPC method can give better results than turbo coding technique at 64QAM and OFDM subcarriers equals 128.This improvement is about than 2 dB for 10 -2 .Also other improvements can be obtained at different number of OFDM subcarriers (512) as shown in Figure 19.

AWGN plus fading channel
In this section, the transmitted signal is assumed to pass through time selectivity fading channel plus AWGN.This is done using matlab function rayleighchan.The syntax of this function is chan = rayleighchan (Ts,Fd) that constructs a frequency-flat ("single path") Rayleigh fading channel object.
Ts is the sample time of the input signal, in seconds.Fd is the maximum Doppler shift, in Hertz.

Sample time =1/(channel bandwidth x28/25)
(2) Where f c is carrier frequency, v is the maximum speed between transmitter and the receiver and C 0 is the speed of light.The Rayleigh multipath fading channel simulators of this toolbox use the band-limited discrete multipath channel model.It is assumed that the delay power profile and the Doppler spectrum of the channel are separable.The multipath fading channel is therefore modeled as a linear finite impulse-response (FIR) filter.Let S i denotes the set of samples at the input to the channel.Then the samples y i at the output of the channel are related to S i through: (4) Where g n is the set of tap weights given by: (5) In the equations above:  T s is the input sample period to the channel. τ k ,where 1≤ k ≤ K, is the set of path delays.K is the total number of paths in the multipath fading channel. a k ,where 1≤ k ≤ K, is the set of complex path gains of the multipath fading channel.These path gains are uncorrelated with each other. N 1 and N 2 are chosen so that | g n |is small when n is less than N 1 or greater than N 2 This simulation is done for different coding techniques that have different coding rates because we follow the standard in our simulation.The following parameters are used in our simulation: 1. Frequency band is 3.5 GHz.From Figure 26, it is shown that SNR will be improved by more than 2 dB at BER equals 10 -2 for modulation type 64QAM and number of subcarriers equals 128.Also, an improvement can be obtained when the number of subcarriers is increased to 512 as shown in Figure 27. Figure 28 and Figure 29 show the results of comparisons between modified CPC and LDPC code through the fading channel are shown at different received SNR values.We conclude that modified CPC gives good results at different SNR. Figure 28 shows that modified CPC coding technique gives better results than LDPC coding technique at 64QAM and OFDM subcarriers equal 128.The improvement is more than 1.5 dB for 10 -2 .Also, there will be an improvement, when the number of subcarriers is increased to 512 as shown in Figure 29.As shown from these figures, modified CPC method gives good results compared to turbo coding.Figure 30 shows that using modified CPC method can give better results than turbo coding technique at 64QAM and OFDM subcarriers equals 128.This improvement is about than 2 dB for 10 -2 .Also other improvements can be obtained at different number of OFDM subcarriers (512) as shown in Figure 31.Due to the lower code rate of CPC (1/4), better results should be obtained comparing to the other coding techniques (Convolution -Turbo -LDPC) which has higher coding rate (1/2 or 1/3).But from the view of complexity, CPC is less complex than turbo or LDPC, so the type of coding can be used as an optional code instead of turbo or LDPC types.Another technique can be used with modified CPC to modify or increase its code rate, this technique called puncture technique.

Punctured CPC
To modify the rate of the coding process, a puncture technique is used.This technique enables to have a code rate equals 1/3.The modification is done by applying the puncture to the columns only, resulting in code rate of 2/3.So the overall code rate will be (2/3) x (1/2) = (1/3).Puncture enables to reduce the redundancy bits but on other hand it leads to increase the BER.From Figure 32 to Figure 42            From Figure 42 and Figure 43 it is shown that the results obtained from LDPC code and turbo code is better than puncture modified CPC, but LDPC and turbo code is more complicated than the proposed method.The receiver, by using one received antenna, chooses the best received signal according to its highest power.

Conclusions
In this chapter, we explained CPC method as a coding technique and our modification for it.Also the implementation of CPC in WiMAX system and the comparisons between its results and the results of other coding techniques such as convolutional, turbo and LDPC are investigated at different SNR for different number of subcarriers and at different types of modulation (16QAM -64QAM).

Fig. 4 .
Fig. 4. Convolutional Product Code Encoder with any type of Interleaver (d denotes data bits and p denotes parity bits).

Fig. 6 .
Fig. 6.Serial Encoding & Decoding Operations signal power, in watts N = Noise power, in watts Bn = Noise bandwidth, in Hertz Fs = Sampling frequency, in Hertz = 1/Tsamp.Tsamp = The period of each row of a frame-based matrix.Tsym = The signal's symbol period.A good rule of thumb for selecting the symbol period value is to set it to be what we model as the symbol period in the model.The value would depend upon what constitutes a symbol and what the oversampling applied to.From Figure 8 to Figure 13 BER versus different received SNR values are shown for the comparison between modified CPC and convolutional code, LDPC code and turbo code respectively.These comparisons are obtained for modulation type 16QAM and number of subcarriers equals 128 and 512 respectively.

From
Figure 20 to Figure 25 BER versus different received SNR values are shown for the comparison between modified CPC and convolutional code, LDPC code and turbo code respectively through the fading channel.These comparisons are obtained for modulation type 16QAM and number of subcarriers equals 128 and 512 respectively.The comparisons between modified CPC and convolutional code are shown in both Figures20 and 21.In Figure20, it is shown that SNR is improved by more than 4 dB at BER equals 10 -2 for the number of subcarriers equals 128.An improvement is obtained if the number of subcarriers is increased to 512 as shown in Figure21.

Fig. 23 .
Fig. 23.BER Comparison between LDPC code, CPC at 16 QAM, N=512.The results of comparisons between modified CPC and turbo code through the fading channel are shown from Figure 24 to Figure 25.These comparisons are done at different

Fig. 25 .
Fig. 25.BER Comparison between Turbo code, CPC at 16 QAM, N=512.The comparison for modulation type 64QAM between modified CPC and convolutional code, LDPC code and turbo code are shown through Figure 26 to Figure 31 through the
the result of using CPC with puncture is shown, through AWGN plus fading channel, comparing with convolutional code, turbo code and LDPC code.From Figure32to Figure34BER versus different received SNR values are shown for the comparison between modified CPC, puncture CPC and convolutional code, LDPC code and turbo code respectively through the fading channel.These comparisons are obtained for modulation type 16QAM and number of subcarriers equals 128.

Fig. 34 .
Fig. 34.BER Comparison between Turbo code, CPC, punctured CPC at 16 QAM, N=128.From Figure32it is shown that the results obtained from LDPC code is approximately the same as puncture modified CPC, but LDPC is more complicated than the proposed method.From Figure35to Figure37BER versus different received SNR values are shown for the comparison between modified CPC, puncture CPC and convolutional code, LDPC code and turbo code respectively through the fading channel.These comparisons are obtained for modulation type 16QAM and number of subcarriers equals 512.

Fig. 37 .
Fig. 37. BER Comparison between Turbo code, CPC, punctured CPC at 16 QAM, N=512 From Figure 36 it is shown that the results obtained from LDPC code is better than puncture modified CPC until SNR = 12 db, but LDPC is more complicated than the proposed method.From Figure 35 to Figure 37 BER versus different received SNR values are shown for the comparison between modified CPC, puncture CPC and convolutional code, LDPC code and turbo code respectively through the fading channel.These comparisons are obtained for modulation type 64QAM and number of subcarriers equals 128.