Abstract:
Error control coding is branch of information theory which aims at reducing
errors in information from a source to a destination. The concept of error control
coding was first introduced in late 1940s by Shannon and Hamming in their hallmark
papers [1], [2]. Shannon’s theoretical work defines the upper limit on the achievable
data rate of a channel while providing some insights into the general methodology of
error control [1]. Hamming, on the other hand, found the first practical code for error
mitigation in communication channel and data storage [2]. He actually introduced
redundancy into the transmission and did single bit correction in a received bit
sequence. Adding redundancy, however, results in decrease of data rate for same
system bandwidth or increases bandwidth requirement for same data rate. Decrease in
data rate is however compensated by increase in operational range, reduction in error
rates and the transmitted power.
Soon after Hamming’s work, a plethora of work appeared in the research
literature aiming at reducing the error rate for communication or data storage systems.
Hamming codes were although maximum distance separable codes, the codes with
highest minimum distance for given amount of redundancy, but these suffered from
the requirement of certain block lengths. Techniques were then introduced to
overcome that requirement by increasing or decreasing the message block length
while keeping the minimum distance of the code as large as possible.
Elias, in 1955, introduced convolution codes which not only did not suffer
from the strict requirement of message block length but also had very simple
encoding circuitry [3]. In late 1960s Viterbi introduced decoding algorithm for
convolutional codes which changed the focus of research towards convolutional codes
[4]. For a very long time convolution codes dominated the wireless communication
and data storage systems. It was not until early 1990s, when Turbo codes were
introduced, that operating points of codes were near the Shannon limit [5]. Soon after
2
evolution of Turbo codes, techniques to reduce the decoding complexity were
introduced resulting in nearly same performance as that of optimal decoder. This
thesis aims at describing different decoding algorithms for a configurable Turbo code.
These codes are suitable for the systems which can adapt their modulation schemes
and code rates depending on the channel condition. Software defined radio is such a
system which has the capability to change the data rate by varying code rate and
modulation scheme depending on link quality.