Decoding of Convolutional Codes.docx

download Decoding of Convolutional Codes.docx

of 3

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.