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

NOTES

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) 0 3 2 3 Endstate 00 01 10 11

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

EXAMPLES

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 ]