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=4)

This online tool accepts data assumed to come from this (K=4) 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 000 with an error count of 0.

Input Symbols (XY)
Output Bits

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 000 and terminating at each of the eight 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) 04342334
Endstate 000001010011100101110111

Although more than one path ends with d=0, the expected end state 000 is chosen preferentially.


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 - corrected)
  6. 10-00-00-10-00-10-00-10-00-00 (4 errors - ambiguous correction)

2024-03-04 13:57:59 AST
Last Updated: 2008-02-16
Richard Tervo [ tervo@unb.ca ] Back to the course homepage...