A sequence detector (1400-w) operating generally according to the Viterbi
algorithm contains a branch metric generator (1402-w), comparison
circuitry (1403-w), and symbol generation circuitry (1404, 1405, and
1406) for converting digital values of a detector input signal into a
sequence of predefined symbols chosen from an alphabet of predefined
symbols. The comparison circuitry provides soft output signals for
correcting errors. The soft output signals include best and second-best
state metrics (p.sub.k,w(i) and p2.sub.k,w(i)) and corresponding best and
second-best comparison results (D.sub.k,w(i) and D2.sub.k,w(i)). The
symbol generation circuitry typically utilizes the best comparison
results to generate a preliminary sequence of the predefined symbols,
checks for error in the preliminary sequence, and utilizes the
second-best comparison results in correcting any such error in the
preliminary sequence so as to convert it into a final sequence of the
predefined symbols.