Patent ID: 8136023

Claim:
A method for decoding a bit stream encoded by a tail-biting convolutional codes encoder, comprising: initializing a correction depth defining a number of bits; selecting a first starting state from a set of encoding states and initializing a metric value for the first starting state to a value indicating high likelihood and metric values for other ones of the encoding states to a value indicating low likelihood; first reading symbols from an input bit stream that is encoded using tail-biting convolutional codes and having a particular block length, the number of symbols read being equal to the block length; performing a Viterbi algorithm on the first read symbols from the first starting state to determine path metrics and identify the highest likelihood path based on the determined path metrics, wherein an ending state for the highest likelihood path is identified and output associated with the ending state of the highest likelihood path is identified as previous output; setting a second starting state equal to the ending state of the identified highest likelihood path; second reading a number of symbols from a beginning of the previous output, wherein the number is equal to the correction depth; performing the Viterbi algorithm on the second read symbols from the second starting state to generate a correct output; and generating a decoded final output by replacing a number of the symbols in the previous output equal to the correction depth with the correct output.