1368 THE BELL SYSTEM TECHNICAL JOURNAL, NOVEMBER 1957 



for a correction code to be reasonably useful in a system with random 

 noise or errors, the errors must be relatively infrequent, which makes 

 double errors still more infrequent. If means are available for an occa- 

 sional but very infrequent repetition of a message, a single error correc- 

 tion, double error detection code will increase the reliability of a digital 

 system, since a message may be repeated if a double error is recognized. 



This section will show how the ideas of the single error correction, 

 double error detection Hamming Code may be combined with the ideas 

 of semi-systematic single small error correction codes (described in Sec- 

 tion III) to derive simple and efficient codes for correcting single small 

 errors and detecting double small errors. 



In order to derive a simple characteristic code for correcting single 

 small errors, and detecting double small errors, a set of characteristics 

 must be found having the property that the sum or difference of two 

 characteristics or their complements or double the value of one charac- 

 teristic or its complement be distinguishable from the value of any 

 single characteristic or its complement. The sum of two characteristics 

 represents the value of the corrector for a message with two errors of 

 + 1, -fl, the difference represents two errors of -f-l, —1, the sum of 

 their complements represents two errors of —1, —1; double a charac- 

 teristic represents an error of +2, and double a complement represents 

 an error of —2. To have a true single error correction, double error de- 

 tection code for small errors, all these cases must be distinguished from 

 the case of a single error or no error by making certain that the value of 

 the corrector for any of these cases is different than the value of the 

 corrector corresponding to any single error and no error. 



Table VIII gives the characteristics used in the single error correction 

 Hamming Code and the single error correction, double error detection 

 Hamming Code for conveying four digits of information in a message 

 containing seven or eight binary digits respectively. 



An inspection ot Table VIII shows that the sum (performed without 

 carries from column to column) of any two characteristics in the right 

 part of the table is distinguished by having at least one 1 in the first 

 three places and a in the last place. This distinguishes it from any 

 single characteristic since all characteristics have a 1 in their last place. 



Some difficulties arise in trying to adopt such a scheme directly in a 

 non-binary system. For the code to be efficient, an over-all check would 

 have to be performed using a mixed digit; only two check states are 

 required for an over-all parity check, and if b > 3, (5 representing the 

 number base of the channel) at least two information states are pos- 

 sible. But the over-all check digit, which performs a binary check, is not 

 checked by any other digit. This means that although errors might be 



