Two efficient, maximum likelihood, soft decision decoding algorithms for binary (linear) codes are derived, and compared to known algorithms. The new algorithms do not use a binary tree for considering the possible error patterns corresponding to the received word and for determining the most likely one, but they use a graph that is designed to make a more efficient use of branching and bounding techniques.
The known algorithmsA situation is considered where codewords of a binary (linear) code of length n are transmitted over the Gaussian channel. Upon receiving a vector r, we wish to find a codeword c with minimal Euclidian distance to r. It is easy to show that the following algorithm can be used to determine c :Determine the binary vector b with minimal Euclidian distance to r, and determine the syndrome s of b using the code's parity check matrix H . I f s = 0 then output c = b.
else beginAssign to the i-th column of H the cost pi = 11 -2ri1, for i = 1,. . . , n .Find a set of (linearly independent) columns of H which add up to s, such that the sum of the costs of these columns is minimal.Invert b on the positions corresponding to these columns. Let c be the result. Output c.
endNotice that only sets of columns have to be considered of which all the columns have lower costs than the (sum of the costs of the) syndrom column(s). Two basically different ways of implementing the last step of this algorithm are known. The first one is to search through all sets of linearly independent columns of H that add up to s, and to determine the cheapest ([3]). The second one is to determine whether a certain set of columns is cheaper than the cheapest set yet considered, and, if so, to check if these columns add up to s ([l]).In this second approach, the column sets to be considered are selected using a particularly labeled binary tree: each candidate column set is represented by a bit row in which the ones indicate the positions of the columns in that set, and these bit rows are ordered lexicographically in a tree. In order to decrease the number of column sets to be checked, a rule for brunching and bounding is used, stating that all column sets corresponding to successors in the tree of a certain node are at least as expensive as the column set corresponding to that node. This implies that the successors of a node that is itself more expensive than the cheapest column set adding up to s yet found, do not have to be considered. Furthermore, it is not necessary to consider successors of a node corresponding to a column set adding up to s. However, once a column set is found to be too expensive, not only its successors in the binary tree, but far more combinations can be seen to be too expensive. This motivates the search for new algorithms.
The new algorithmsIn order to make a more efficient use of branching and bounding techniques when looking for the cheapest column set adding up to the syndrome s, we developed an algorithm in which the column sets are considered using another graph (see Figure 1 ) then a binary tree. T...