If a noisy channel is used to transmit more than two distinct signals, information may have to be specially coded to permit occasional errors to be corrected. If pulse amplitude modulation is used, the most probable error is a small one, e.g., 6 is changed to 7 or 5. Codes for correcting single small errors, and for correcting single small errors and detecting double small errors, in a message of arbitrary length, for an arbitrary number of different signals in the channel, are derived in this paper. For more specialized situations, the error is not necessarily restricted to a small value. Codes are derived for correcting any single unrestricted error in a message of arbitrary length for an arbitrary number of different signals Finally, a set of codes based partially upon the Reed-Muller codes is described for correcting a number of errors in a more restricted class of message lengths for an arbitrary number of different signals The described codes are readily implemented. Many techniques are used which have an analog in a binary system. Other techniques are broadly analogous to binary coding techniques or are special adaptations of a binary code.