Explore modules

Viterbi Convolutional Decoding

Trace minimum-distance decoding through a finite-state convolutional-code trellis.

Free theory article

Trace minimum-distance decoding through a finite-state convolutional-code trellis.

Concept & interpretation

Let's trace the Viterbi algorithm for decoding a rate 1/2, memory 2 convolutional code with generator polynomials (111, 101) in binary. Assume the input message is "101" and we use "Zero tail" termination (appending two zeros). The initial state is always 00.

Experiment

You can interact with the Viterbi Convolutional Decoding module to observe how the trellis updates.

  1. Select Message to "101".
  2. Set Termination to "Zero tail".
  3. Change Flip position to "3" and observe the "Best Hamming metric" becomes 1 because the 3rd bit of the encoded string was flipped.
  4. Set Termination to "Unterminated" and notice how the trellis stages decrease because no zero tail bits are appended. The final state is no longer forced to be 00.
Read the full free theory article