86
an incorrect path
is
chosen.
The
extent of this
is
controllable, to a certain extent,
by
choosing the number of connection points
in
the polynomials
g,(T),
that
is,
the
nonzero coefficients. A single wrong input bit will clearly complement the output
bit
Ys
each time it
is
shifted into a stage in the shift register corresponding to such
a connection. Thus, the
g/T)
can be chosen not only to maximise distance but also
to affect the sensitivity of the algorithm used.
The
most commonly used form
of
sequential decoding algorithm
is
due to
Fano
[14].
It
relies on a threshold value that
is
raised in fixed increments
as
the
metric increases. Very roughly the algorithm proceeds as follows:
1.
Calculate the new accummulated metric
by
adding in the new (maximum
value) metric corresponding to the latest received
l'
bits and the newly
chosen node.
2.
If
the new accummulated metric exceeds the current threshold
by
the value
of
the increment or more, increment the threshold and repeat the procedure
for the next
l'
received bits
by
returning to step
1.
If
the metric simply
exceeds the current threshold, also return to step 1 without any incrementa-
tion. Otherwise, go to step
3.
3.
The
metric
is
decreasing, so backtrack one node and try an alternative
branch from it that gives a metric above the threshold; if no such branch
exists, go back a further node and try again, and so on.
If
branches are found
that allow us to advance successfully again to include the most recent
v
received bits, with the accummulated metric still above the threshold,
we
have established a new acceptable path. Return to step 1 and continue.
Otherwise, go to step
4.
4.
Decrement the threshold, return to the original node considered before
backtracking began, and try to advance with this new lower threshold.
Return
to step
2.
During implementation of this algorithm care must be taken not to get stuck in a
loop
by
raising the threshold again, until a new successful path
is
firmly estab-
lished.
The
advantage of sequential decoding
is
that it can be used with codes
having long constraint lengths (to allow large distances) where Viterbi decoding
is
impracticable. Also, if there are not too many errors, it
is
much faster than the
Viterbi method, because an exhaustive search for the correct path, involving
backtracking,
is
rarely undertaken.
5.4.3 Feedback Decoding
Another method for correcting errors in convolutional codes
is
called feedback
decoding.
The approach
is
to accummulate several sets
of
received symbols (or of
quantities derived from them) at the decoder before making a decoding decision