0% found this document useful (0 votes)
117 views3 pages

Decoding of Convolutional Codes

Convolutional codes are simpler to decode than block codes. The Viterbi algorithm is commonly used for convolutional code decoding as it finds the maximum likelihood path through the trellis diagram with lower complexity than other algorithms. It works by assigning metrics based on Hamming distance between received and ideal codewords to branches in the trellis. It then finds the path with the lowest total metric as the most likely path the encoder took, allowing decoding of the original data sequence. The example shows how the Viterbi algorithm finds the correct path through the trellis to decode a received sequence with two bit errors back to the original transmitted codeword.

Uploaded by

Tân Chip
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
117 views3 pages

Decoding of Convolutional Codes

Convolutional codes are simpler to decode than block codes. The Viterbi algorithm is commonly used for convolutional code decoding as it finds the maximum likelihood path through the trellis diagram with lower complexity than other algorithms. It works by assigning metrics based on Hamming distance between received and ideal codewords to branches in the trellis. It then finds the path with the lowest total metric as the most likely path the encoder took, allowing decoding of the original data sequence. The example shows how the Viterbi algorithm finds the correct path through the trellis to decode a received sequence with two bit errors back to the original transmitted codeword.

Uploaded by

Tân Chip
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 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 = S
i+1
,
the encoder will have the state [0 1], so we will call it ([0 1], S
i+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 the
received word [00 10 10 10 01 01]. 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):


















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/0
10/0
01/2
11/1
00/1
01/0
10/2
00/1
11/1
00 10 10 10 01 01
Received word
the channels which have noise and other external factors which can change the bit
sequence.

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy