You are on page 1of 3

Channel coding is a technique used in digital communications to ensure a transmission is

received with minimal or no errors. The various coding methods that can be employed
are achieved by interweaving additional binary digits into the transmission. When
decoded on the receiving end, the transmission can be checked for errors that may have
occurred and, in many cases, repaired. Other times, the recipient simply asks for the
transmission again.
The idea behind channel coding was developed due to the inevitable existence of errors
on any given type of communication channel. Radio waves, electrical signals, and even
light waves over fiber optic channels will have some amount of noise on the medium, as
well as degradation of the signal that occurs over some distance. Being such a common
problem in communications, numerous theories for how to deal with it have developed
under branches of applied mathematics such as information theory and coding theory.
One commonly used method is called automatic repeat request (ARQ), which simply
involves the recipient checking the transmission for errors and asking for retransmission
should any occur. This is sometimes referred to as backward error correction. Channel
coding, on the other hand, is aforward error correction (FEC) technique. The sender
prepares the bits for transmission using a special algorithm known as an error-correcting
code, which is then decoded on the receiving end. Both methods are also often used in a
hybrid manner, allowing for small errors in the transmission to be repaired with a channel
code, with major errors requiring a complete retransmission.
The first channel coding technique was created by a mathematician named Richard
Hamming, who developed what's known as the Hamming code. This was the first forward
error correction code, which entails the inclusion of additional binary digits in the
transmission that are called parity bits. A clever calculation of the parity bits on the
receiving end of the transmission will reveal if any errors have occurred in the
transmission, where they are in the string of bits, and how to repair them in order to
recover the original transmission.
The Hamming code falls into the family of channel coding methods referred to as block
codes, of which many have been developed over the years. Block codes typically involve
the bits being collected into blocks of fixed lengths, which are then referred to as code
words. Each code word is given the appropriate checking bits for decoding by the
recipient. Block code methods tend to increase the size of the transmission due to the
added bits in the code word, which can have an effect on the channel's bandwidth.
Another channel coding method is known as a convolutional code. These methods are
much faster and can encode a bit stream of any length. One commonly used code of this
type is called the Viterbi code, created by the Italian mathematician Andrew Viterbi. The
drawback to this method is that as the length of the convolutional code increases, so
does its complexity when decoding. In many cases, convolutional codes are used in
combination with block codes in what's known as concatenated error correction codes.

Channel coding is referred to the processes done in both transmitter and receiver of
a digital communications system. The mentioned processes require allocating extra bits,

a.k.a. parity bits, and consuming extra bandwidth. Using this amount of communications
resources results in more reliable connection between transmitter and its receiver. There
are two policies to deal with channel coding:
1. Forward error correction (FEC)
2. Automatic repeat request (ARQ)
FEC tries to discover the errors and correct them if it can. However, ARQ just discovers
the error and sends a resend request to the transmitter. FEC-based methods are more
complex in comparison with ARQ ones. Obviously, to use the benefits of two methods the
combination of the above said policies is possible.
Back to channel coding theory. There are two types of channel codes:
1. block codes
2. convolutional codes
Block codes submit k bits in their inputs and forwards n bits in their output. These codes
are frequently known as (n,k) codes. Apparently, whatever coding scheme is, it has
added n-k bits to the coded block. Contrary to block codes which are
memoryless, convolutional codes are coding algorithms with memory. Since their coding
rate (R) is higher than the counterpart in block codes, convolutional codes are more used
in practice[citation needed]. Every convolutional code uses m units of memory, therefore a
convolutional code is represented with (n,k,m).
In digital communications, a channel code is a broadly used term mostly referring to
the forward error correction code and interleaving in communication and storage where
the communication media or storage media is viewed as a channel. The channel code is
used to protect data sent over it for storage or retrieval even in the presence
of noise (errors).

One method of optimizing throughput for a wireless system while maintaining a


certain level of performance is to design the error control system so that it offers
two or more different rate codes. The system uses channel state information to
determine which of the various codes should be used at any given moment. In
order to minimize system complexity, the same encoder and decoder are used for
the different rate codes. This part presents a method of comparing the
performance of the system for different coding rates. Results will show the
optimal code rate for various channel conditions and the gain in throughput by
using adaptive rate codes in wireless systems.
First we will talk about the basic different channel coding techniques and
its performance to know how we can adapt the coding rate according to channel
conditions.

I- The Basics Different Channel Coding Techniques:


The channel coding refers to the class of signal transformations designed to
improve communications performance by enabling the transmitted signals to
better with-stand the effects of various channel impairments, such as noise,
interference and fading.
The channel coding is considered as an important signal processing
operation which provides a reliable transmission of information over channel.
It is used mainly to minimize the effect of NOISE by two basic operations, Error
detection and Error correction.

Coding Principle:
Coding is achieved by adding redundant bits to each message,or make
an operation on the message to get it encoded with some methods. These
redundant bits are used for detecting and/or correcting transmission errors, in
other words for protecting data against channel impairments (e.g., noise, fading,
interference).

Block Codes vs. Convolutional codes :


Historically, the error correcting codes have been classified into block codes
and convolutional codes. The distinguishing feature for this particular
classification is the presence or absence of memory in the encoder.
In linear block codes, which are described by two integers n and k and
generator mat-rix or polynomial.The integer k is the number of input data bits to a
block encoder. The integer n is the total number of bits in the codeword out of the
encoder.Each codeword n-bits is uniquely determined by the input message kbits (Memoryless).
In a convolutional code, the encoding operation may be viewed as the discrete
time convolution of the input sequence with the impulse response of the encoder.
The duration of the impulse response equals the memory of the encoder.

You might also like