You are here: Home » Content » Convolutional Codes

Convolutional Codes

Module by: Tuan Do-Hong

Convolutional codes are one type of code used for channel coding. Another type of code used is block coding.

Convolutional codes

In convolutional codes, each block of kk bits is mapped into a block of nn bits but these nn bits are not only determined by the present kk information bits but also by the previous information bits. This dependence can be captured by a finite state machine.
Example 1 
A rate 12 1 2 convolutional coder k=1 k 1 , n=2 n 2 with memory length 2 and constraint length 3.
Figure 1
Since the length of the shift register is 2, there are 4 different rates. The behavior of the convolutional coder can be captured by a 4 state machine. States: 00, 01, 10, 11,
For example, arrival of information bit 0 transitions from state 10 to state 01.
The encoding and the decoding process can be realized in trellis structure.
Figure 2
If the input sequence is
     1 1 0 0
the output sequence would be
     11 10 10 11
The transmitted codeword is then 11 10 10 11. If there is one error on the channel 11 00 10 11
Figure 3
Starting from state 00 the Hamming distance between the possible paths and the received sequence is measured. At the end, the path with minimum distance to the received sequence is chosen as the correct trellis path. The information sequence will then be determined.
Convolutional coding lends itself to very efficient trellis based encoding and decoding. They are very practical and powerful codes.

Comments, questions, feedback, criticisms?

Send feedback