Rapid advances in electronic and optical devices and systems have enabled the implementation of very powerful codes with close to optimum error-control performance. In addition, new types of code and decoding methods have recently been developed and are beginning to be applied. However, error-control coding is complex, novel and unfamilia