  Some nonlinear codes, such as Kerdock and Preparata codes, can be represented
as binary images under the Gray map of linear codes over rings. This paper
introduces MAP decoding of Kerdock and Preparata codes by working with their
quaternary representation (linear codes over Z4 ) with the complexity of
O(N2log2N), where N is the code length in Z4. A sub-optimal bitwise APP decoder
with good error-correcting performance and complexity of O(Nlog2N) that is
constructed using the decoder lifting technique is also introduced. This APP
decoder extends upon the original lifting decoder by working with likelihoods
instead of hard decisions and is not limited to Kerdock and Preparata code
families. Simulations show that our novel decoders significantly outperform
several popular decoders in terms of error rate.
