An Implementation of a Forward Error Correction Technique using Convolution Encoding with Viterbi Decoding
Himmat Lal Kumawat1, Sandhya Sharma2

1Himmat Lal Kumawat, Electronics and Communication Department, Suresh Gyan Vihar University, Jaipur, India.
2Sandhya Sharma, Electronics and Communication Department, Suresh Gyan Vihar University, Jaipur, India.
Manuscript received on November 01, 2012. | Revised Manuscript received on November 02, 2012. | Manuscript published on November 05, 2012. | PP: 95-99 | Volume-2 Issue-5, November 2012. | Retrieval Number: E1007102512/2012©BEIESP
Open Access | Ethics and Policies | Cite
© The Authors. Published By: Blue Eyes Intelligence Engineering and Sciences Publication (BEIESP). This is an open access article under the CC BY-NC-ND license (http://creativecommons.org/licenses/by-nc-nd/4.0/)

Abstract: This paper, as the name suggests, shows the working of a forward error correction (FEC) coding technique using convolutional encoding with Viterbi decoding. It can be used by anyone interested in designing or understanding wireless digital communications Technique systems. This paper initially explains the working of a convolutional encoder[1]. The encoded bit stream, is then passed through an additive white Gaussian noise (AWGN) channel, quantized and received at the decoder. Finally, the original data stream is recovered by either a hard decision Viterbi decoder or a soft decision Viterbi decoder. This entire FEC technique is demonstrated, both practically, using Matlab, and theoretically. Also shown are simulation plots, characterizing the performance factors affecting the FEC coding technique. These factors include primarily the noise level as well as the encoder memory size. Convolutional encoding is widely used in modern communication systems. A software tool for simulating the processes of convolutional encoding and decoding is developed and presented in the paper. The convolutional encoders are investigated in respect of the parameter bit error rate. The decoding of convolutional codes is based on Viterbi algorithm[3]. The software tool is developed in MATLAB and Communication Toolbox. In mathematics, computer science, telecommunication, and information theory, error detection and correction has great practical importance in maintaining information (data) integrity across noisy channels and less-than-reliable storage media. A channel code is a broadly used term mostly referring to the forward error correction (FEC) code and bit interleaving in communication and storage where the communication media or storage media is viewed as a channel[6]. The FEC code is used to protect data sent over the channel for storage or retrieval even in the presence of noise (errors) . There exist two main forms of channel codes – convolutional codes and block codes. Convolutional codes are often used to improve the performance of digital radio, mobile phones, satellite links, and Bluetooth implementations. Unlike block encoders, convolutional encoders are not memoryless devices. A convolutional encoder accepts a fixed number of message symbols and produces a fixed number of code symbols, but its computations depend on the current set of input symbols and on some of the previous input symbols[13].
Keywords: Channel Coding, Convolutional Codes, NonSystematic Convolutional Codes, Viterbi Algorithm, MATLAB, AWGN and BPSK.