Patent GB-1004700-A (GB)
Title: Error detecting and correcting systems
IPC: H03M13/17
Filed: 1962-06-12
Abstract: 1,004,700. Calculating check symbols. INTERNATIONAL BUSINESS MACHINES CORPORATION. June 12, 1962 [June 22, 1961], No. 22502/62. Heading G4A. The Specification is based largely on the theory of error correcting codes outlined in Specification 947,188, but provides alternative means for recognizing from the parity bits computed from the received code group the position and nature of a burst of errors, single, double, double non-adjacent, and triple. The code group transmitter disclosed in the Specification is identical with that described in the prior Specification. A code group comprises, for example, fifteen bits: nine data bits, four locator parity bits and two error type parity bits. Each locator parity bit is that bit required to make the mod 2 sum of bits, in positions of the code group specified by an m-sequence, equal to zero. The four locator bits check positions defined by the same m-sequence but shifted for each locator bit. Each error type parity bit is defined similarly but the m-sequence specifying the locations is different. At the data receiver bits in the positions defined by the locator m-sequence are summed mod 2 to give a locator subword, and an error-type subword is similarly formed. If the subwords contain at least one binary one there is an error in the message and the subwords define both which of the types mentioned above it is, and at which bit position of the code group it starts. It is known that for a single error occurring in position one of the code group, the locator subword is 1001 and the error type subword is 01. There are other characteristic subwords for the other types of errors starting in position one of the code group. If the subwords derived from the received code group are applied to maximal length shift registers generating the m-sequences used in deriving the subwords, the number of shifts necessary to set the shift registers to one of the four characteristic position one error subwords give the position at which the error starts. The characteristic into which the subwords are transformed gives the kind of error. It is then merely necessary to add into the code group without carry a three bit word having ones in the positions at which the errors occurred, the lowest order of the word being added to the position of the first error. Fig. 5 shows the code group receiving station. The fifteen bits are shifted into a register and the locator and error type subwords are computed in circuits 102, 103. If when all the code group is received, the subwords are all zero there is no output from or circuit 130 and an error trigger 132 is not set. The contents of the shift register are then gated for use, the parity bits being suppressed. If the subwords contain a one bit, or circuit 130 is up and the error trigger is set. Gate 108 is switched so that the data group is recirculated in the shift register and the subwords are applied to maximal length shift registers 143, 144. The registers are shifted by the same pulses that shift the code group register. The shift registers 143, 144 produce an output which is the reverse of the m-sequences-they step back through the sequence. After the entry of the code group bit one is on stage 15 of the shift register. Assume that there is a single error at bit 9 of the code group. The locator subword is 1111 and the error type subword is 11. It takes eight shift pulses to transform these subwords into the characteristic subwords of a single error in bit 9 of the code group. The eight pulses have shifted the code group so that bit 9 is now in stage 15 of the shift register. A circuit 154 is triggered as soon as the characteristic single error subwords are recognized to add 001 into the last three positions of the code group shift register. This reverses the state of bit 9 and corrects the error. A recognition circuit is shown in Fig. 7. Circuits 160, 165 identify the characteristic subwords for a single error and, when both are up, and circuit 170 identifies the error and signals that circuit 154 be triggered. A different method is used in Fig. 5. Circuit 146 provides an error correction pattern 001 whenever it senses that register 143 contains 1001. Circuit 147 provides an error correction pattern of 001 whenever it senses that register 144 contains 01. The circuits will only provide identical patterns after eight shift pulses. The identicity is detected by circuit 149 and circuit 154 is triggered to add the error pattern into the code group shift register. The Specification discusses extension to longer code groups which may need a parity bit additional to error type as locator bits and also different recognition circuits. Maximal length shift registers are discussed in a paper referred to in the prior Specification. Specification 947,188 is referred to.