Patent ID: 8644432
Filing Date: 2014-02-04
Classification: H03M,H04L

Abstract:
1. A method for decoding a convolutionally encoded data stream using a Viterbi decoder, the method comprising: reading first and second sets of soft decision values from a first memory buffer; calculating first and second sets of branch metric values based on the first and second set of soft decision values; reading first and second sets of path metric values from a second memory buffer, wherein the first and second sets of path metric values correspond to first and second sets of states respectively; calculating a third set of path metric values based on at least one of the first set of path metric values and the first set of branch metric values; generating a first set of decision bits based on the third set of path metric values; calculating a fourth set of path metric values based on at least one of the second set of path metric values and the first set of branch metric values, wherein the third and fourth sets of path metric values correspond to third and fourth sets of states respectively, and wherein the third and fourth sets of states are the next expected states of the first and second sets of states respectively; generating a second set of decision bits based on the fourth set of path metric values; calculating a fifth set of path metric values for a fifth set of states based on at least one of the third set of path metric values, the fourth set of path metric values and the second set of branch metric values, wherein the fifth set of states is the next expected state of the third and fourth sets of states; storing the fifth set of path metric values in the second memory buffer; generating a third set of decision bits based on the fifth set of path metric values; storing the first, second, and third sets of decision bits in a trace back register; extracting a first state based on the fifth set of path metric values, wherein the first state is represented by a binary number that includes a plurality of bits; extracting a first predetermined number of most significant bits from the binary number to generate an offset value; extracting the remaining bits, after the extraction of the first predetermined number of most significant bits, from the binary number to generate an index value; reading a plurality of decision bits from the trace back register using the offset value; extracting a first decoded bit from the plurality of decision bits using the index value; extracting a second decoded bit from the trace back register using the first decoded bit; and providing the first and second decoded bits as the most recent decoded data bits.