A method and apparatus for decoding a linear block encoded string of information
bits comprising: converting the string into a plurality of codewords. Performing
hard and soft decisions on each codeword to generate a hard and soft decision vector.
Computing the syndrome and finding the location of the two minimum values by Galois
Field Arithmetic. Designating these values LOW1 and LOW2 and xoring
with a Nc1, thus generating Nc2. Swapping Nc1 with Nc2
and determining the lowest soft decision value, Min1 and a next lowest value,
Min2. The two bit locations creating Min1 are designated as MinA
and MinB. MinA being replaced with Min2 minus the value MinA. MinB being
replaced with Min2 minus the value at MinB. Generating an output codeword
by subtracting Min1 from all other bit locations values and 2's complementing
all soft values with 0 in their location. Creating the new soft value vector. Some
embodiments include a system and method that organizes an encoded codeword. The
encoded codeword has several codeword bits. The method receives the encoded codeword,
assigns multiple codeword bits to at least one memory address in a plurality of
memory addresses, and iteratively decodes the received codeword by utilizing the
plurality of memory addresses in a predetermined order. The predetermined order
is based on a dimension of the received codeword.