UNB ECE4253 Digital Communications
Department of Electrical and Computer Engineering - University of New Brunswick, Fredericton, NB, Canada

Online Viterbi Decoding Tool (R=1/2, K=3)

This online tool accepts data assumed to come from this (K=3) convolutional coder, and applies Viterbi decoding to find the original data stream, despite occasional errors in the received bits.

Viterbi Decoder

In Viterbi decoding, all possible paths through the trellis are examined to find the path that best matches the input symbols. As different paths are tested and poor choices terminated, the cumulative errors are computed for each candidate path. Here, a continuous path was found which exactly matches the input symbols. There were no apparent errors in the input data, and the path ends at state 00 with an error of 0.

Input Symbols (XY)
Output Bits

Options and Settings

Enter dibit symbols separated by dashes.

Symbols (XY):
Endpoint:  |  Inputs  |  Segments  |  Discussion  |  Examples  |  MATLAB


The numbers shown above each state in the final trellis diagram are the cumulative distances (d) associated with the best-fit paths found through the trellis starting at state 00 and terminating at each of the four possible circuit states after each symbol is received. Where two paths would meet at the same state, the path with the larger error is terminated.

Distance (d) 0323
Endstate 00011011

The best path having the smallest error ends at state 00 with error d=0.


Representing various bit error patterns E(x). Any of these errors could be added to an arbitrary message with similar outcomes.

  1. 00-00-00-00-00-00-00-00-00-00 (no errors)
  2. 00-00-00-00-10-00-00-00-00-00 (one bit error - corrected)
  3. 00-00-00-00-11-00-00-00-00-00 (one symbol error - corrected)
  4. 00-00-00-00-10-10-00-00-00-00 (two bit error - corrected)
  5. 00-00-00-00-10-10-10-00-00-00 (three bit error - not corrected)
  6. 10-00-00-10-00-10-00-10-00-00 (4 errors - ambiguous correction)

2024-03-04 15:11:37 AST
Last Updated: 04-10-16
Richard Tervo [ tervo@unb.ca ] Back to the course homepage...