Jump to content

Sequential decoding

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Jezhotwells (talk | contribs) at 04:13, 20 December 2009 (adjust template). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Sequential decoding is a limited memory technique for decoding tree codes. There is a range of sequential decoding approaches based on choice of metric and algorithm.

Sequential decoding is mainly used is as an approximate decoding algorithm for long constraint-length convolutional codes. This approach may not be as accurate as the Viterbi algorithm but save substantial amounts of computer memory.

Sequential decoding explores the tree code in such a way to try and minimise the computational cost and memory requirements to store the tree.

Fano metric

Given a partially explored tree (represented by a set of nodes which are limit of exploration), we would like to know the best node from which to explore further. The Fano metric (named after Robert Fano) allows one to calculate from which is the best node to explore further.

For a binary symmetric channel (with error probability ) the Fano metric can be derived via Bayes theorem. We are interested in following the most likely path given an explored state of the tree and a received sequence . We use to represent the maximum length of transmission in branches, to represent the number of bits on a branch of the code (the denominator of the code rate, ). We use to represent the number of bit errors on path (the Hamming distance between the branch labels and the received sequence) and to be the length of in branches. We want to choose the maximum over of:

We express as (by using the binary symmetric channel likelihood for the first bits followed by a uniform prior over the remaining bits). We express in terms of the number of branch choices one has made, , and the number of branches from each node, . Therefore:

We can equivalently maximise the log of this probability, ie

This last expression is the Fano metric. The important point to see is that we have two terms here: one based on the number of wrong bits and one based on the number of right bits. We can therefore update the Fano metric simply by adding for each wrong bit and for each right bit.

Algorithms

The simplest algorithm to describe is the "stack algorithm" in which the best paths found so far are stored. Sequential decoding may introduce an additional error above Viterbi decoding when the correct path has or more more highly scoring paths above it; at this point the best path will drop off the stack and be no longer considered.

The famous Fano algorithm (named after Robert Fano) has a very low memory requirement and hence is suited to hardware implementations. This algorithm explores backwards and forward from a single point on the tree.

References

  • John Wozencraft and B. Reiffen, Sequential decoding, ISBN 0262230062
  • Rolf Johannsesson and Kamil Sh. Zigangirov, Funamentals of convolutional coding (chapter 6), ISBN 0470276835