296.3Page1 296.3:Algorithms in the Real World Convolutional Coding & Viterbi Decoding.
Decoding of Convolutional Codes.docx
Transcript of Decoding of Convolutional Codes.docx
-
8/10/2019 Decoding of Convolutional Codes.docx
1/3
1.1.1 Decoding of Convolutional Codes
One of the advantages of Convolutional codes in comparison with Block codes is that
they are simpler to decode. The process of decoding Convolutional codes is finding the
path that the encoder has traversed. The path is the way that the encoder starts from state
[0 0] to the end state [0 0] in the Trellis diagram which has been introduced in the last
section. There are many algorithms using to decode Convolutional codes, such as:
sequential decoding, majority-logic decoding, or Viterbi decoding. In this project, I will
focus on Viterbi algorithm, which has become the most widely used convolutional
decoding algorithm, because it reduces the computational complexity with satisfied
performance. Viterbi algorithm was first introduced by Viterbi in 1967, and now it becomes
the most popular one in application.
Now we look again at Figure 2.1.3, note that at a particular time t, the encoder will
have one state S[x x], so now we will denote a node by (S, t).For example, at time t = Si+1,
the encoder will have the state [0 1], so we will call it ([0 1], Si+1). As previously stated, the
decoder will have to find the path that the encoder had done before, so as to decode to
take right data symbols. In this project, I just introduce the idea of the Viterbi algorithm.
Detail information as well as the way to design a Viterbi decoder will be discussed more
clearly in the thesis.
The idea of Viterbi algorithm is to find the local survivor path, which is the path that
has the smallest distance between the received sequence and the code sequence. This
algorithm has the same idea with maximum likelihood decoding algorithm, which is used
to find the closest code sequence to the received sequence. The process is based on Trellis
diagram to tracks the states of the encoder.To achieve maximum likelihood decoding each branch in the Trellis diagram is
assigned a metric measured by the Hamming distance between the received word (with
noise) and ideal word (00, 01, 10, 11). Therefore, the metric can be 0, 1 or 2 (the Hamming
distance between two words is the difference between the bits of those code words, as
described in the first section). At each time t, the decoder will receive a pair of channel
symbols which are already changed by noise. The algorithm will base on Trellis diagram to
find the shortest way (minimum metric) so as to get the word which is closest to the code
word. For example, the input sequence of the encoder is [0 1 1 0 1 0], and the channel
noise is [00 01 00 00 01 00], so we will have the code word [00 11 10 10 00 01] and thereceived word [00 1010 10 0101]. It means there are 2 errors happened during the
process of transmission (at bit 2 and 5). Now let us look at the Trellis diagram to find out
how the decoder works (Figure 2.1.4):
-
8/10/2019 Decoding of Convolutional Codes.docx
2/3
Figure 2.1.4: Viterbi algorithm decoding process
According to Figure 2.1.4, the part in the left hand side describe how a state transit
to another, for example, state [0 0] will stay at [0 0] if input bit is 0, and become state [1 0]
if input is 1. Now I will describe how the right hand side Figure goes. Firstly, let us look at
the symbol above each path vector, which has the form (XX/X). The first 2 symbols will be
the output corresponding to the input, and the last symbol will denote the Hamming
distance between the received word and output. Note that the received words are written
below each transition. As we discussed above, the initial state will always be state [0 0], so
there are 2 paths can happen: [0 0] and [1 0]. The corresponding output will be 00 and 11
respectively, while the received word in the decoder is 00, so the Hamming distance will be
0 and 2 as described in the Figure. According to Viterbi algorithm, the decoder will choose
the path which has smaller Hamming distance to continue the process. However, in the
second path, the Hamming distances are both 1 and 1, so the decoder must do both paths
to find which one is shorter. The process continues, and the red line in the Figure is the
shortest way that the decoder can realize. Therefore, the decoded word will be [00 11 10
10 00 01] which is exactly similar to the transmitted code word.
In my thesis, this process will be discussed again with more details. Naturally,
convolutional codes will be a part of my final thesis, because they represent one important
technique within the general class of channel codes that students should know.
Convolutional codes have found many applications, such as deep-space communications,
speech transmission, or in digital modulation communication systems. They work well with
00
10
01
11
11/2
00/0 00/1
11/1
00/1
11/1
01/2
10/010/0
01/2
11/1
00/1
01/0
10/2
00/1
11/1
00 10 10 10 01 01Received word
-
8/10/2019 Decoding of Convolutional Codes.docx
3/3
the channels which have noise and other external factors which can change the bit
sequence.