commpy

The Viterbi Algorithm - Illustrated!

It is often helpful to visualize the operation of the Viterbi Algorithm used in the decoding of convolutional codes. Here is an attempt to do the same using Python, Matplotlib, NumPy, SciPy and CommPy. Below is a video which shows one such illustration of the Viterbi Algorithm in action using the following parameters. The convolutional code is represented by the encoder matrix, $$ G(D)=[1+D^2,1+D+D^2] $$ Let us assume that the transmitted message is [1, 0, 0, 0] and hence the corresponding codeword is [11, 01, 11, 00].