Simulation and Analysis of Convolution-Coded OFDM under AWGN Noisy Channel

DOI : 10.17577/IJERTV3IS081080

Download Full-Text PDF Cite this Publication

Text Only Version

Simulation and Analysis of Convolution-Coded OFDM under AWGN Noisy Channel

1Saroj Singh,

1 PG Scholar, Department of Electronics & Telecommunication

Shri Shankracharya Technical Campus, Bhilai, Chhattisgarh, India

2Sagar Singh Rathore,

2 Assistant Professor, Department of Electronics & Instrumentation

Shri Shankracharya Technical Campus, Bhilai, Chhattisgarh, India

Abstract- Forward error correction (FEC) algorithm is very useful in communication for detecting and correcting the error introduced during the transmission of message. Convolution coding and Viterbi decoding is one of the FEC technique which is widely used in communication. This paper present a simulation of convolution-coded OFDM for proper understanding of this technique. To understand its advantage, performance comparison has also been made between coded and un-coded message by using BER and Eb/No. MATLAB platform is used for simulation.

Keywords-Convolution code, Viterbi decoder, SNR, BER, AWGN ,BPSK


    The main function of communication is to transmit the data from the source to one or many destination. Data may be in the form of digital signal or analog signal. The main aim of the researcher in this field is to develop some communication system which is capable of transmitting the data through the channel and is able to receive it with least error. With the advancement in wireless and space communication system it has become necessary to reduce the error which is crept up during communication. Mobility, cost efficiency, ease of installation and good productivity are some of the advantages of transmission through wireless medium over wired medium. Apart from these advantages, there are some drawbacks of channel in wireless medium. Reflection , diffraction and scattering[3] are some the phenomenon of wireless channel which hamper the receivers efficiency and produce erroneous signal at the receiver. These phenomenon causes different power and time delay for different signal and forcing the receiver to generate inappropriate signal.

    Due to above mentioned problems, the Bit error rate (BER) is comparative higher in wireless transmission and which some times proved very destructive [5].

    These limitations or problems makes it necessary to apply some error control techniques in wireless communication to reduce the bit error rate.

    Bit error rate is a performance criterion of digital data transmission which is defined as


    Another important performance measurement which is commonly used in transmission is SNR[12] i.e. signal to noise ratio which is defined as


    SNR measure is inversely proportional to BER. It means least BER or higher SNR ensure better quality of communication[1].

    In order to detect and correct the error produced during transmission, generally Forward error correction technique is generally used. Convolution codes and block codes [2] are two different Forward error correction techniques which are commonly used.

    A.J. Viterbi, in 1967 presented a method for decoding convolution codes which has been considered as one of the best decoding scheme till date. The only drawback of this decoding scheme is that it is not able to correct burst error

      1. . series of consecutive erroneous bit[3].

        Another limitation of this method is that the complexity and computational time of this method increases as the number of memory units increases. One of the solution of this problem is to concatenate the Reed-solomon code with convolution code.


    Block diagram of digital communication system using channel encoder/decoder is shown in figure 1.1.

    Here the channel encoder/decoder adds some mapping information into a signal waveform in such a manner that the receiver section with the help of correct demodulator and decoder can be able to recover the information correctly.

    Figure 1.1 Block diagram of channel encoder/decoder

    Channel encoding is generally used to detect and if possible correct the error produced in the signal during transmission. In order to detect and correct the error different algorithm is used. One such technique is ARQ(Automatic Repeat request) in which whenever the error is detected an ARQ is sent to the transmitter for retransmission of the data. This technique is not useful for the signal source which transmit the signal to a number of receivers. Signal retransmission in this case is not possible. Another technique which is more appropriate is forward error correction technique. In this technique, error detection as well as error correction is performed at the receiver side with the help of some coding techniques. Block coding and convolution coding comes under this category. In this method a redundant bits are added to the message which is utilized by the receiver to detect and correct the error crept up during the transmission. another important method is turbo coding[11]. In this method, error is corrected automatically to recover the message from the noisy signal.


    Convolution encoder is used here for channel encoding. Main function of Convolution encoder is to accept a series of message symbol bit (generally single bit) and convert it into a fixed number of code symbol bits.

    Convolution encoder consist of two or more shift registers[7]. Each message symbol bit is entered in to a shift register one by one and it generate the code symbol bit by combining bits of two or more shift register. One shift register is used to hold the present meassage symbol bit while rest of the shift register are used to hold the past symbol bits.

    It compute the code symbol bits with the help of present input symbol bit as well as the past symbol bit. Mod 2 adder used with the encoder decides the number of output code symbol bits.

    Parameters- a Convolution encoder can be fully described by the three parameters i.e. (n, k, m)[2]

    n=Number of output bit (ranges from 1 to 8) k= Number of input bits(ranges from 2 to 10)

    m=Number of Memory Register (ranges from 1 to 8) k/n =Code rate

    Code rate of the encoder determine the bandwidth efficiency of the code.

    The structure of convolution encoder designed for this simulation is shown in figure 1.2.

    The design of this convolution encoder is very simple.

    From the figure it is clear that

        1. It is a (2,1 3) Encoder

        2. It accept the 3 bit sequence

        3. It is designed for two generator polynomial

    i.e. [1 1 1] for output bit 1 and [1 0 1] for output bit 2.

      1. ,M0 , are memory register which keep the past two bits while the memory register M1, hold the present message bit. Output bit V1 and V2 is obtained by connecting the memory register to the adder using specified generator polynomial[2]. Initially all the memory register is set to zero[9] and then each input bit is fed to the encoder one by one. The encoder outputs the 2- bit code symbol bit for each input bit.

        Figure 1.2 Convolution encoder structure


    Once the convolution encoding is performed on the transmitter side then the convolution coded symbol is fed to the modulator for modulation and then it is transmitted. At the receiver side the received signal is first demodulated to get the coded symbol. Noise and other artifacts changes some of the code symbol.The function of Viterbi decoder is to extract the correct inpt symbol by decoding the erroneous code symbol.

    Viterbi decoder apply maximum likelihood decoding algorithm[4] to extract out the right input message bit from the noisy code symbol.

    Trellis diagram play very important role in vitervi decoder[14].

    On the basis of decoding procedure , viterbi decoder can be classified as hard decision viterbi decoder and soft decision viterbi decoder. Hard decision based viterbi decoder uses single bit quantization while multi bit quantization is used in soft decision based viterbi decoder[4].

    The selection of quantization level in sift decision based viterbi coding play key role in its performance[10].

    A Channel Encoder B

    AWGN Noise



    Viterbi Decoder


    Figure 1.3 Viterbi Decoder Procedure

    Since in Viterbi algorithm of decoding the computation time for decoding is fixed therefore it is easier to implement in hardware than the sequential decoding. Viterbi decoding is carried out with the help of trellis diagram. The algorithm for decoding is based on some assumption-

        1. The frequency of the error is not fixed and the error probability is small.

        2. The probability of occurring two error in a row is smaller.

    Figure 1.3 shows the procedure of viterbi decoding algorithm. Encoder block takes the Input bit sequence A and convert it into code symbol bit which is represented by

    1. this code symbol bit is then transmitted through the channel and introduce some error in code symbol bit which is represented by C. Viterbi decoder accept the code symbol bit C and estimate the actual input message represented by D. ML decoder computes the probability p(C|D) and select the estimate which maximize the p(C|D).On the other hand the MAP decoder computes the probability p(D|C) and select the estimate which maximize the p(D|C). if the input message bit is distributed uniformly then both decoder are identical and with the help of bayers law , a correct estimate can be found.


    In viterbi decoding, in order to find the servivor path as we move through the trellis, two distance metric is generally used

      1. Hamming distance

      2. Euclidean Distance

  6. TRELLIS DIAGRAM In convolution encoder and viterbi decoder,

    Trellis diagram is widely used for encoding and decoding.

    Figure 1.4 illustrate how convolution encoding is performed using trellis diagram to get the coded sequence. Here the input sequence is [1 0 1 0 0] and coded output

    sequence is [01 10 00 10 11].

    Figure 1.4 Trellis diagram for Convolution Encoder

    Similarly figure 1.5 represent the viterbi decoding operation using trellis diagram. Here the trellis diagram is used to convert the coded data sequence [01 10 00 10 11] into a original input bit sequence.

    Figure 1.5 Trellis diagram for Viterbi Encoder Process


    In order to see how convolution coding can be used to improve the bit error rate and signal to noise ratio, a simulation is performed on MATLAB ver 2009B. a simulation is designed which takes the input text message convert it into bit sequence and this bit sequence is fed to the convolution encoder block which convert it into code symbol bit. These code symbol bit is then modulated with BPSK modulation. This modulated signal is then fed to the simulated noisy channel which add the noise in modulated signal.

    Figure 1.6 BER Vs Eb/No Graph of un-coded OFDM (black), Hard decision(Red) and soft decision(Blue), data rate=1/2 and m=2

    Afterwards this noise affected modulated signal is first demodulated and then soft and hard decision based viterbi decoding algorithm is applied to extract out the estimated signal. BER and Eb/No is used for performance comparison and graph between BER and Eb/No is drawn for uncoded BPSK, Hard decision based /soft decision based viterbi decoder

    Figure 1.7 BER Vs Eb/No Graph of un-coded BPSK(black), Hard decision(Red) and soft decision(Blue), data rate=1/2 and m=6

    Figure 1.8 BER Vs Eb/No Graph of un-coded BPSK(black), Hard decision(Red) and soft decision(Blue), data rate=1/3 and m=2

    Figure 1.8 BER Vs Eb/No Graph of un-coded BPSK(black), Hard decision(Red) and soft decision(Blue), data rate=1/3 and m=6


Forward correction technique is basically used in communication to detect the error and estimate the correct value by applying some coding technique. It gives very good results if the channel is affected by AWGN noise. In this paper, convolution coding and viterbi coding is implemented in MATLAB platform. A (2,1, 3) convolution encoder/viterbi decoder was designed and implemented. Convolution encoder/ Viterbi decoder has successfully generated the 2 bit code symbol for 3 bit input sequence. In

order to study how various parameters of convolution encoder affects the FEC working, FEC is tested for different data rate and different number of memory register. The effect of hard decision/Soft decision based viterbi decoding has also been studied. Simulation results clearly shows that the performance of coded BPSK is better than Un-coded BPSK.


  1. B.Sklar, Digital Communications Fundamentals and Applications, 2nd edition Prentice Hall, Upper Saddle River, New Jersey, 2001.

  2. A. J. Viterbi, Error Bounds for Convolutional Codes andan symptotically Optimum Decoding Algorithm, IEEE Trans actions on Information Theory, vol.IT-13, pp. 260-269, April, 1967.

  3. J.A.Heller and I. M. Jacobs, Viterbi Decoding for Satellite and Space Communications,IEEE Transactions on Communication Technology, vol. com-19, pp.835-848, October 1971.

  4. J.G.Proakis,Digital Communications, 3rd edition, WCB/McGraw- Hill, Boston, Massachusetts, 1995.

  5. S.Haykin, Communication Systems, 3rd edition, John Wiley & Sons, New York,1994.

  6. L. W. Couch, II,Digital and Analog Communication Systems, 4th edition, Macmillan Publishing Company, New York, 1993.

  7. T. McDermott, Wireless DigitalCommunications: Design and Theory, Tuscon Amateur Packet Radio Corporation, Tuscon, Arizona, 1996.

  8. M.S. Roden, Digital Communication Systems Design, Prentice Hall, Englewood Cliffs, New Jersey, 1988.

  9. S.Lin and D.J. Costello, Error Control Coding, Prentice Hall, Englewood Cliffs,New Jersey, 1982.

  10. A.M. Michelson and A. H. Levesque, ErrorControl Techniques for Digital Communication, John Wiley & Sons, New York, 1985.

  11. edition, John Wiley & Sons, New York, 1998.

  12. K.J. Larsen, Short Convolutional Codes with Maximal Free Distance for Rates1/2, 1/3, and 1/4,IEEE Transactions on Information Theory, vol. IT-19, pp. 371-

    372, May 1973.

  13. G.C.Clark, Jr., and J. B. Cain,Error- Correction Coding for Digital Communications, Plenum Press, New York, 1981.

  14. John.M.Geist, Viterbi Decoder Performance in Gaussian Noise and PeriodicErasure Bursts,IEEE Transactions on Communications, vol. com-28, no. 8, pp.1417-1422, August 1980.

  15. J.K.Omura, On the Viterbi Decoding Algorithm, IEEE Transactions On Information Theory, vol. IT-15, pp. 177- 179,January 1969.

Leave a Reply