DIGITAL DATA TRANSMISSION WITH DETECTION OF ERRORS, INCLUDING WORD FRAMING ERRORS

Abstract: Errors in data transmission, including bit-shift errors, are detected using a linear cyclic code, particularly a CRC code, wherein data are encoded (58) according to the linear cyclic code by adding parity data to form codewords evenly divisible by a respective generator polynomial. Fixed data are also added (56), as by Galois field arithmetic or bit insertion, either before or after encoding. The same fixed data (64) are used in the course of decoding (66) recovered words to produce a net syndrome indicative of errors, including bit-shift errors. When data are inserted before transmission, data may be extracted or substituted for in the corresponding recovered word prior to decoding.

Description: DIGITAL DATA TRANSMISSION WITH DETECTION OF ERRORS, INCLUDING WORD FRAMING ERRORS BACKGROUND OF THE INVENTION The present invention relates generally to the detection of errors in processing digital data streams. More particularly the errors to be detected are both random data errors and word framing, or bit-slip, errors arising in the transmission of digital data, as in digital tape recording. One of the simplest methods commonly used for such error detection involves codes known as linear cyclic codes of which a particularly effective subset comprises codes known as cyclic redundancy check (CRC) codes. Such CRC codes and their implementation are described in Peter Cavell, "Implementation of Cyclic Redundancy Check Circuits," Electronic Engineering, February 1977, pp. 51-55. These codes are efficient in detecting random errors but, because of their cyclic nature, as they have been used previously they have not been effective in detecting word framing errors. Word framing errors are commonly referred to as bit-slip or bit-shift errors occasioned by loss of synchronism whereby the word boundaries as transmitted are not properly identified upon receipt. CRC codes are based on the algebra of polynomials on GF(2), Galois field of 2 , and are generated with simple shift registers and Exclusive-Or circuit elements as described by Cavell. A Galois field is a finite field upon which are defined operations of addition, subtraction, multiplication and division. Addition and multiplication are associative and commutative, and multiplication is distributive with respect to addition. Every element of the field has a unique negative such that the negative of a given element summed with that given element itself yields the null element 0. The operation of addition carried out on elements of the finite Galois field GF(2) is defined, modulo 2, according to relations which do not admit of a carry. Thus, binary addition tables are: 0+1 = 1+0 = 1 0+0 = 1+1 = 0 Arithmetically, this is carry-less aάάi_.icn, sometimes referred to as half addition and sir.ply implemented by an Exclusive-Or. Addition and subtraction are the same function. The absence of carry limits the sum to the finite field. As described by Cavell, CRC codes are used to encode data by grouping data samples into groups that may be called word groups or words. Each word group may be considered in the form of a data or message polynomial. The data or message polynomial is divided by a generator polynomial and the remainder is added to the data or message polynomial to form a codeword. The codeword is transmitted. The received data are grouped into words of corresponding groups of data samples, including parity data samples; these are putative codewords. Each received word is divided by the same generator polynomial as used in encoding. If the remainder be 0, the received word is a codeword and may be considered to be free of error, at least with a high probability. If the remainder be other than 0, the received word is not a codeword and is, therefore, known to be in error. (It is possible that it is the remainder and not the information data that is in error.) CRC codes are relatively simple to implement compared to other codes such as Reed-Solomon or non-binary linear block codes that can detect word framing errors. By a simple modification of the normal CRC encoding methods, the present invention increases the ability to detect word framing errors. SUMMARY OF THE INVENTION The present invention detects errors in data transmission, including bit-shift errors, using a linear cyclic code, more particularly a CRC code. The present invention provides a method and apparatus for modifying the normally encoded codeword in a particular manner prior to transmission. A putative corresponding word as recovered after transmission is modified correspondingly and decoded according to the code used, whereby any non-zero remainder indicates both the errors normally detected and bit-shift errors. More particularly, the present invention relates to digital data transmission using a linear cyclic code, particularly a cyclic redundancy check code, wherein data are encoded according to the linear cyclic code by adding parity data to the data being encoded to form codewords evenly divisible by a generator polynomial, and errors of transmission are detected by dividing putative corresponding words by the generator polynomial in producing error indicating syndromes. According to the present invention, encoder fixed data are added according to a predetermined encoder pattern to data to be transmitted. According to a preferred embodiment of the invention, the encoder fixed data are bit-slip sensitive. Data corresponding to the encoder fixed data are removed from putative corresponding recovered words in the course of generating the error indicating syndrome so as to produce a net syndrome indicative of errors including bit-shift errors. In a preferred embodiment of the invention encoder fixed data are added to information data prior to the encoding. The combined data are encoded to form a codeword. The encoder fixed data are then subtracted from the codeword to form a corresponding word that is transmitted. A putative corresponding word is recovered after transmission, and decoder fixed data identical to the encoder fixed data are added to the recovered word to reform a putative recovered codeword. Error in the putative recovered codeword is detected by division of the putative recovered codeword by the generator polynomial to produce the net syndrome. In an alternative embodiment of the invention, information data are first encoded to form a codeword 5 according to the linear cyclic code, and thereafter the encoder fixed data are added to the codeword to form a corresponding word that is transmitted. A putative corresponding word is recovered after transmission, and decoder fixed data identical to the encoder fixed data 10 are subtracted from the putative word recovered to form a putative recovered codeword. Error in the putative recovered codeword is detected by the division of the putative recovered codeword by the generator polynomial to produce the net syndrome. 15 In an alternative embodiment of the invention information data are first encoded to form a codeword according to the linear cyclic code, the codeword being formed of information data and parity data. Thereafter the encoder fixed data are added only to the parity data 2.0 to form a corresponding word that is transmitted. A putative corresponding word is recovered after transmission and divided by the generator polynomial to produce a remainder. Decoder fixed data identical to the encoder fixed data are subtracted from the remainder 25 to produce the net syndrome indicative of error. The addition, subtraction and division are preferably performed according to Galois field arithmetic, particularly using the Galois field GF(2). Alternatively, the addition and subtraction (or 30 other deletion) may be effected by inserting the encoder fixed data in the data stream, with the information data and encoder fixed data at mutually exclusive locations in a word and extracting data from corresponding locations. Where the encoder fixed data are inserted at 35 locations exclusive of information data, they need not be deleted prior to transmission. In this form of the invention, corresponding decoder fixed data are substituted at corresponding locations in the recovered putative codeword prior to decoding rather than inserting them in the place of encoder fixed data extracted prior to transmission. Other aspects and advantages of the present invention will become apparent from the following detailed description, particularly when taken with the accompanying drawings. BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 is a block diagram of a digital data transmission system including a CRC encoder and a CRC decoder in which error detection circuits according to the present invention may be used; FIGS. 2A to 2E together are a diagrammatic illustration of the effect of a one bit shift in a codeword; FIGS. 3A to 3F together are a diagrammatic illustration of the use of fixed frame insertion of identification data for identifying bit slip; FIG. 4 is a diagrammatic illustration of an encoder and a decoder for use in the system shown in FIG. 1 wherein fixed data are inserted prior to encoding and the same fixed data are substituted prior to decoding; FIG. 5 is a diagrammatic illustration of an encoder and a decoder for use in the system shown in FIG. 1 wherein fixed data are inserted after encoding and corresponding data are extracted from the ~ transmitted word prior to decoding; FIG. 6 is a diagrammatic illustration of an encoder and a decoder for use in the system shown in FIG. 1 wherein fixed data are inserted prior to encoding, extracted prior to transmission and reinserted prior to decoding; FIGS. 7A to 7C together are a diagrammatic illustration of the use of a bit-slip sensitive pattern of added fixed data; FIG. 8 is a diagrammatic illustration of the use of a bit-slip sensitive fixed data pattern as a prefix to information data; FIG. 9 is a diagrammatic illustration of an encoder and a decoder for decomposed encoding and decoding according to the present invention; and FIG. 10 is a iagrammatic illustration of the arithmetic equivalence of the systems illustrated in FIGS. 8 and 9. DETAILED DESCRIPTION In FIG. 1 is illustrated in block form an example of a data system in which an error detecting system according to the present invention may be used. Such data system includes successively a data input section 12, an encoder 14, a data transmission system 16, a decoder 18, and a data output section 20. In the particular example, the data input section 12 -comprises a data source 22 and a rate changer 24. The data source may, for example, include a source of analog signal and means for sampling the analog signal periodically at a given sampling rate to produce digital data samples corresponding to the sampled signal and placing the data in digital form at the sampling rate. The rate changer 24, by storing the data and reading them out faster than they were put in, reproduces the data at a higher rate with gaps in the data to accommodate parity bits inserted by the encoder 14 and synchronization words for the purpose of timing data recovery. The encoder 14 forms the data into words in accordance with the invention as described in greater detail below. The words are then applied to the data transmission system 16 at the faster rate. The data at this point may be in the common form non-return to zero or NRZ. In the transmission system 16, the words in each stream are converted by a converter 26 to a format more suitable for recording. The converter acts in a conventional manner to place the data in better form for recording, as by inserting synchronization signals and placing the data in a format more suitable for transmission, such as the well-known Miller squared code described in Miller U.S. Reissue Patent No. Re. 31,311. There may also be appropriate precoding as may be useful in certain types of signal transition detection. The converted signals are applied to a record driver circuit 30 which drives the recording heads of a tape recorder 32, which acts to record the signals for later playback. Upon playback, the recorded signals are read in analog form by pickup heads from the tape of the recorder 32 and applied to a preamplifier 34 which receives the signals from the pickup head and amplifies them. These signals are applied to a detection and recovery section 36 which acts to convert the analog signals to digital NRZ form, remove the synchronizing signals and form the signal bits into recovered groups or words corresponding to the transmitted words. To the extent all has gone well in the transmission (recording and reproducing) , the signals at the output of the detection and recovery section 36 are recovered in the form present at the input to the converter 26. These recovered signals are the output of the data transmission system 16 in the same form as applied thereto. The output of the data transmission system 16 is decoded by the decoder 18. The decoder 18 is based upon the principles of the present invention, as will be explained in greater detail below. Such decoder removes the parity bits and checks the data for errors (usually caused by the tape recording and reproducing) in the manner described below. The signals are then applied to the data output section 20. The error signals may be utilized in any conventional manner. The data output section 20 comprises a rate changer 38 and a data utilization circuit 39. The rate changer 38 acts to return the data to the form and rate of the data at the input to the rate changer 24. The data utilization circuit 39, which may include a digital to analog converter, then acts upon the received data in any desired manner. CRC codes are a class of binary codes which are well known for their wide range of flexibility in design and their simple implementation. Their error detection capability can be realized as high as is desired, by simply increasing the number of parity bits. If P bits of parity data are used, in general, the probability of failure to detect errors is 2 -P. For example, the probability is one in one thousand for P=10, and one in one million for P=20. However, because of the cyclic nature of these codes, a CRC decoder would be easily fooled by bit-shift errors. That is,_ in a transmitted stream of CRC words, if a perturbed word timing results in dislocation by a few bits from the correct timing, a conventional CRC decoder would fail to detect this error with a probability much higher than 2 -P As an example, take a CRC code with P bits of parity data. FIGS. 2A to 2E show the effect of an error of one bit shift in a codeword generated according to such code. The resultant CRC codeword loses one bit at one end, the rest of the bits are retained but shifted one bit position, and a bit is added at the other end. In FIG. 2A is illustrated a single codeword 40 of a codeword stream 42 as encoded with a word or frame boundary 44 and having a plurality of bits 46. In the event of a bit shift or bit slip during transmission and reception (which includes recording on tape and playback) , the resulting dislocated boundary or frame error results in a corresponding recovered word 48, as illustrated in FIG. 2B, which is different from the transmitted codeword 40. The recovered word has its word boundary 44' that is dislocated or displaced one bit from where it should be. This recovered word is, thus, in error. This bit shift is further illustrated by FIGS. 2C, 2D and 2E. It is as though a bit 46A at one end of the codeword 40 were shifted to the position of a bit 46B at the other end, as shown in FIG. 2C. Actually, the bit 46A lost is not the same as the bit 46B added, for the latter comes from -a subsequent codeword in the codeword stream 42. The recovered word 48 as shown in FIG. 2E is thus different from the original codeword 40 shown in FIG. 2D. If the one bit 46B attached to the other end satisfies the cyclic-shift relation to the one bit 46A lost, the resultant recovered word 48 is another valid CRC codeword; thus, the error is not detected. The probability that a valid CRC codeword will result from an S bit shift is 2 -2S, — - or 2 if the CRC code is maximum length, p i.e., 2 -1 bits. For S.less than P/2, the CRC code is less capable of detecting bit-shift errors than detecting random errors. . As stated above, in accordance with the present invention codewords normally encoded according to the CRC code are modified in a particular manner. Then upon reception, the recovered words are modified correspondingly and decoded according to the same CRC code. Because of the modification, the resulting remainder or syndrome indicates bit-slip errors as well as the usual transmission errors. In one embodiment of the invention as illustrated by FIGS. 3A to 3F and FIG. 4, a predetermined fixed pattern of fixed data is incorporated in the information data. More particularly, predetermined fixed data are inserted amonq data in the word stream 42 according to a fixed frame 50, as shown in FIG. 3A, and parity data are appended to form a legal codeword. B portions of the frame 50 are for information and parity data, and A portions are for fixed data. The result is thus an encoded codeword 40 that includes parity data dependent upon both information data and fixed data for forming the codeword. An encoder 14 for performing such modification of a codeword is illustrated in FIG. 4. As there shown, information data received from the input section 12 are applied to an encoder insertion section 54 to which fixed data are applied from a fixed data generator 56, which may be internal to the insertion section 54. The fixed data are inserted into each of the word groups of information data in accordance with the predetermined pattern so that the fixed data are inserted in the A portions of each fixed frame 50 defining a word. The information data with the inserted fixed data are then applied to a CRC encoder section 58. A- preselected generator polynomial is applied to the CRC encoder, section 58 by a function generator 60. The function generator 60 may be internal to the CRC encoder section. The encoder section 58 acts as described by Cavell to divide the received. blocks of information and inserted fixed data, taken as a polynomial, by the generator polynomial and appends appropriate parity data according to the resulting remainders in order to form respective codewords 40. These codewords are then applied to the data transmission system 16. When a corresponding putative codeword is recovered, the same pattern of fixed data is substituted in the recovered word 48 according to a decoder fixed frame 52. B portions of the decoder fixed frame 52 correspond to the B portions of the encoder fixed frame 50, and A portions of the decoder fixed frame 52 are identical in content and position to the corresponding A portions of the encoder fixed frame 50. Thus, if there has been no bit slip, the same fixed data will replace the fixed data inserted according to the fixed data generator 56 and the fixed encoder frame 50. If there has been no bit slip, the recovered word 48 will, therefore, correspond to the encoded codeword 40 and will remain a codeword, if no other errors have been introduced. On the other hand, if bit shift occurs, the fixed data will replace data other than the fixed data inserted according to the pattern provided by the fixed data generator 56 and the fixed frame 50. As a consequence, the fixed data being substituted according to the fixed frame 52 that is stationary relative to the word timing boundary 44" are substitutions for information or parity data that have shifted, creating irregularity in the cyclic shifting. This is depicted in FIGS. 3E and 3F and results in the recovered word 48 not being a codeword. This condition is sensed by normal CRC decoding to provide a syndrome indicating an error in the recovered word. A decoder 18 for performing such decoding is illustrated in FIG. 4. As there shown, the recovered—- words 48 are applied to a decoder substitution section 62 to which fixed data identical to the fixed data applied to the encoder insertion section 54 are applied. The fixed data are provided by a fixed data generator 64, which may be internal to the decoder substitution- section 62. The fixed data are substituted for data in the recovered word according to the same fixed pattern that the fixed data were inserted by the encoder insertion section. In absence of bit slip, the data are substituted directly for identical data inserted by the encoder insertion section 54, and the recovered word remains a codeword, unless there has been some other error. However, if there has been bit-slip, the data are substituted elsewhere in the recovered word and corrupt the coding, as shown by FIGS. 3E and 3F. The recovered word may then be identified as in error. This is achieved by applying the recovered word with the substituted fixed data to a CRC decoder section 66. The same generator polynomial as applied by the encoder function generator 60 is applied to the CRC decoder section 66 by a decoder function generator 68. The CRC decoder section 66 then acts as described by Cavell to divide the received words after substitution to recover data and a remainder or syndrome. The syndrome indicates whether or not the recovered data contains an error. If there be no error, the fixed data may be extracted from the recovered data by an extractor 70, leaving the net information data in the form applied to the encoder 14. The extractor 70 includes the same decoder frame 52 as used for the fixed data substitution. If R blocks of fixed data bits, with F bits for each block and.2S or more bits between blocks are added to form a CRC codeword, an S bit-shift results in 2RS or 2RF (whichever is smaller) bit positions in which fixed data and information or parity data interact. The probability of a valid CRC codeword resulting from this S bit-shift is 2-< 2S+2RS > or 2 -< 2S+2RF >. This probability can be easily made smaller than 2 —P, the probability of failure to detect random errors, if R and F are chosen as R greater than (P/2S)-1 or RF greater than (P/2-S) . Thus, bit-shift errors up to S bits are equally detectable as random errors with the probability — ~ ~ > 1-2 . P=16 and S=2, for example, with R greater than 3 or RF greater than 6. Alternative designs for the encoder 14 and decoder 18 are shown in FIG. 5. The encoder 14 and decoder 18 perform substantially the same functions as the encoder 14 and decoder 18 shown in FIG. 4 in a slightly different manner to reach a corresponding result. In this embodiment, the information data received from the input section 12 are applied to a CRC encoder section 72, which may be identical to the CRC encoder section 58. A preselected generator polynomial is applied to the CRC encoder section 72 by a function generator 74. The function generator 74 may be internal to the CRC encoder section 72 and may provide the same generator polynomial as the function generator 60. The encoder section 72 acts as described by Cavell to divide the received blocks of information data by the generator polynomial and append appropriate parity data according to the resulting remainders in order to form respective codewords. These codewords are applied to an encoder insertion section 76, which may be identical to the encoder insertion section 54. Fixed data are applied to the insertion section 76 by a fixed data generator 74 for insertion of the fixed data into the codeword in accordance with the encoder fixed frame 50 to form a word that is then applied to the data transmission system 16. The corresponding decoder 18 is also configured somewhat differently. As shown in FIG. 5, the corresponding recovered words 48 are applied to an extractor 80 which acts like the extractor 70 to extract whatever data are in the A. portion of the word according to the decoder frame 52. If there has been no bit shift, the data extracted will be the fixed data inserted by the insertion section 76, leaving the codeword provided by the CRC encoder section 72 but for other errors, as in transmission and recovery. On the other hand, if there has been a bit shift, the extracted data include information or parity data rather than the inserted fixed data. Except for coincidence, this will make the resulting word not a codeword. In either event, the word after "extraction" is applied to a CRC decoder section 82 to which a generator polynomial is also applied by a generator polynomial function generator 84. The generator polynomial is identical to that of the function generator 74. The CRC decoder section 82 operates as described by Cavell to produce a remainder or syndrome indicating error whenever error in transmission, including bit-slip, has resulted in a recovered word after extraction that is not a codeword. As before, if error be not indicated, the data out will be the original information data received from the input section 12, within the limits of the error detector of the particular code. Further alternative designs for the encoder 14 and decoder 18 are shown in FIG. 6. These designs are actually a slight modification of the designs shown in FIG. 4 and are based upon the fact that the fixed data inserted in the data stream for encoding purposes need not be transmitted. That is, because the fixed data are known, reception can be inferred at the recovery end of the transmission system 16. This permits the fixed data to be extracted before transmission, thereby reducing the overhead in the transmission process, thus permitting the transfer of data at a faster rate. In the design shown in FIG. 6, the encoder 14 is identical to that shown in FIG. 4, except- that after the encoding by the encoder 58, an extractor 86 is 'used to extract the fixed data added by the insertion section 54 to produce a word made up of the original irtforiπation data with parity data for a codeword that included the fixed data. The resulting word is ' closed up and applied to the transmission system 16. Upon receipt, a decoder insertion section 88 inserts the same fixed data at the respective positions in a recovered word that were inserted by the encoder insertion section 54. That is, the same fixed data are supplied by the fixed data generator 64 and inserted according to the decoder frame 52, rather than being substituted as in the operation of the decoder shown in FIG. 4. It is self-evident that if there were no bit-slip, the fixed data would be added at the places from which they were extracted by the extractor 86. If there were no other errors, the recovered word with the insertions would be a codeword detected as such by the CRC decoder 66, just as in the decoder 18 shown in FIG. 4. The parity data would be removed by the extractor 70 in the same manner, and the data out would be applied to the output section 20. On the other hand, in the event of bit-slip, the frame boundary 44' for the decoder frame 52 would not coincide with the same frame boundary 44 for the original word, and the fixed data would be inserted in different positions relative to the transmitted data, corrupting the codeword and resulting in an error flag output from the CRC decoder 66. In the embodiments illustrated in FIGS. 3A to 3F and 4 to 6, it is possible that by chance the data bits substituted (FIG. 4) , extracted (FIG. 5) or inserted (FIG. 6) upon decoding be the same as the bits inserted during encoding, even upon bit shift, unless the predetermined fixed data pattern is itself made sensitive to bit-slip. That is, unless particular patterns of data are inserted, it is possible that by chance the data bits adjacent the inserted fixed data bits be identical to -the fixed data bits so that upon a bit shift, the decoder will substitute, extract, or insert data to the same effect upon bit shift as without bit shift, and hence will fail to identify the bit-slip error. As illustrated by FIGS. 7A to 7C, a bit shift sensitive pattern 90, such as "100", may be inserted. Because a one or two bit shift assures disruption of the cyclic code, the decoder will necessarily sense such bit slip. The minimum length of the bit-shift sensitive patterns for up to an S bit shift is S+l bits. However, the longer patterns may yield the surer detection if random errors in the bit pattern are involved. If this fixed positioned shift sensitive bit pattern is chosen to be capable of sensing up to an S bit shift, the addition of just one fixed block is enough to transform bit-shift errors with certainty into random-like, easily detectable errors. The above described systems and methods require insertion of the fixed frame and/or bit-shift sensitive patterns into the information data. A special case is insertion of fixed data as a prefix at the beginning of a word. If information data have some spare spaces that can be masked within a CRC codeword, the fixed data may actually be inserted. However, if that be not the case, a virtual bit-shift sensitive pattern can be used and always be prefixed. Because the virtual prefixed pattern is known, the parity and syndrome generators of the CRC encoder and decoder may be preset before parity and syndrome calculation. This effects addition according to Galois field arithmetic. Thus, by presetting the parity and syndrome generators with contents that correspond to the prefix pattern at the start of parity and syndrome generation, the resultant parity and syndrome data are the same as if they were calculated for the CRC codeword with a real prefix pattern. In FIG. 8 is shown a system including an encoder 14-and decoder 18 for performing such methods. As shown in FIG. 8, the inserted bit-slip sensitive data pattern 90 is inserted from a fixed data generator 92 as fixed data A as a prefix to the information data D. This is performed by presetting a CRC encoder 94 to add the fixed data by Galois field arithmetic to the incoming information data as in adding polynomials. The CRC encoder 94 generates parity data P corresponding to the sum of A and D to form the codeword 40. Such parity- generation is carried out as described by Cavell using a generator polynomial generated by a function generator 96. There is no need to transmit the fixed data A, which, being known, can be added as a prefix to the recovered word, either actually or virtually. This saves space and, hence, time in the transmission channel, permitting the transmission of net data at a faster rate. In either event, the decoder 18 provides the appropriate syndrome indicating a bit-slip error, as well as random errors. Whether or not the fixed data are transmitted, the recovered word is applied to a CRC decoder 98 which has been preset according to the same fixed data A from a fixed data generator 100. The fixed data A is either added to the recovered word or substituted for data in lieu of what has been recovered as the prefix, depending upon whether or not the prefix A has been transmitted. In either event, the recovered word with the preset fixed data included is decoded by the CRC decoder 98 according to Cavell utilizing the same generator polynomial as supplied by a generator polynomial function generator 102, producing an error signal and the data out. The system illustrated in FIG. 8 may be modified or utilized in a number of ways to achieve the same result. As described above, the fixed data were added as a prefix using Galois field arithmetic "This is equivalent to insertion as described in connection with FIGS. 3A to F and 4 to 7. However, Galois field addition may be used to add the fixed data other than as a prefix. The fixed data may be added to the information data without insertion or prefixing. A consequence of this is that the fixed data may be added without adding to the length of the word. Addition and insertion can be performed to the same end, except in respect to substitution as described in connection with FIGS. 3A to F and 4, for substitution is effected by location and it is not possible to substitute after the fixed data have been combined with the other data at the same bit locations. Corresponding to the system of FIG. 5, the system of FIG. 8 may be used to add the fixed data A to the information data D in common bit positions and encode to generate the combined parity data P. The fixed data may then be subtracted (which is the same as adding in the Galois field arithmetic) before the data are output from the encoder 14. The information data D are transmitted over the transmission system 16 with the combined parity data P. At the decoder, the known fixed data A are again added, reforming the encoded codeword if there has not been bit-slip or other errors. This is tested for by the CRC decoder 98 as described above when the fixed data were added as a prefix. As an alternative similar to the operation of the system of FIG. 5, the information data D may be encoded to generate information parity data P D . The fixed data are then added to provide an encoder output that includes information and fixed data with the information parity data P D rather than the combined parity data P. Upon recovery, the known information data A are subtracted from the putative corresponding word, reforming the encoded codeword if there has not been bit-slip or other errors. This is tested for by the CRC decoder 98, as above, to provide error detection. In another form of the invention, it is unnecessary to include the fixed data in the data stream at all. Rather, the same effect may be achieved by what may be called decomposed encoding and decoding using the system illustrated in FIG. 9 with encoder 14 and decoder 18. In this embodiment, the fixed data are fixed parity data P,, which are added by an adder 104 directly to the information parity data P generated by a CRC encoder section 106 from the information data D to produce the combined parity data P. This parity data P appended to the information data D provides the word DP to be transmitted over the transmission system 16. The generator polynomial for the CRC encoder section 106 is supplied by a generator polynomial function generator 108. The fixed data, in this case P A , is supplied by a fixed data generator 110. This word DP is precisely the same as that transmitted by the system illustrated in FIG. 8. It is not a codeword, as fixed data A are not included. The recovered word D'P' recovered after transmission over the transmission system 16 is decoded by a CRC decoder section 112 by dividing by the generator polynomial supplied by a generator polynomial function encoder 114 to produce a partial syndrome P'-P D '. The known fixed parity data P, as supplied by a fixed data generator 116 are then subtracted by a subtractor 118 to produce the syndrome P'-P '-P^P'-P". The adder 104 and subtractor 118 may be implemented by Exclusive-Or gates because of the rules for adding and subtracting in the Galcis field as described by Cavell. The arithmetic equivalence of the system of FIG. 8 to the system of FIG. 9 is shown by FIG. 10 where left side of the figure illustrates the arithmetic of the system of FIG. 8, and the right side illustrates the arithmetic of the system of FIG. 9. The right column is actually omitted in the implementation except only for the provision of the fixed parity data The various bit-slip error detection systems and methods of the present invention may be used with and as part of the normal error detection and correction systems and methods for correcting errors. The information data are normally encoded in. blocks with synchronizing signals for synchronizing each block. Bit-slip loss of synchronization is thus recovered each block. Upon the detection of bit-slip, the erroneous data may be identified and disregarded, or steps may be taken to bring the recovered word back 'into synchronization. Various other modifications may be made within the scope of the present invention. For example, a number of generator polynomials may be used and various bit-sensitive data patterns.

Claims: WHAT IS CLAIMED IS: 1. A method of digital data transmission using a linear cyclic code wherein data are encoded according to the linear cyclic code by adding parity data to the data being encoded to form codewords evenly divisible by a generator polynomial, and errors of transmission are detected by dividing putative corresponding words by the generator polynomial in producing—error indicating syndromes, said method comprising adding encoder fixed data to data to be transmitted, said adding being effected according to a predetermined encoder data pattern, and removing data corresponding to said encoder fixed data from a putative corresponding word in the course of generating a said error indicating syndrome so as to produce a net syndrome indicative of error including bit-shift error. 2. A method according.- o Claim 1 wherein said encoder fixed data are added to information data prior to said encoding, τ said encoding forms- a codeword, said encoder fixed data are subtracted from said codeword to form a corresponding word for transmission, said corresponding word is transmitted, a putative corresponding word is recovered after transmission, decoder fixed data identical to" said encoder fixed data are added to said recovered word to form a putative recovered codeword, and error in said putative recovered codeword is detected by said division of said putative recovered codeword by said generator polynomial to produce said net syndrome. 3. A method according to Claim 2 wherein said addition, subtraction and division are performed according to Galois field arithmetic, 4. A method according to Claim 3 wherein said Galois field is GF(2). 5. A method according to Claim 1 wherein information data are so encoded to form a codeword according to the linear cyclic code, said encoder fixed data are added to said codeword to form a corresponding word for transmission, said corresponding word is transmitted, a putative corresponding word is recovered after transmission, decoder fixed data identical to said encoder fixed data are subtracted from said putative word recovered to form a putative recovered codeword, and error in said putative recovered codeword is detected by said division of said putative recovered codeword by said generator polynomial to produce said net syndrome. 6. A method according to Claim 5 wherein said addition, subtraction and division are performed according to Galois field arithmetic. 7. A method according to Claim 6 wherein said Galois field is GF(2) . 8. A method according to Claim 1 wherein information data are so encoded to form a codeword according to the linear cyclic code, said codeword being formed of information data and parity data, said encoder fixed data are added only to said parity data to form a corresponding word for transmission, said corresponding word is transmitted, a putative corresponding word is recovered after transmission, said putative word recovered is divided by said generic polynomial to produce a remainder, and decoder fixed data identical to said encoder fixed data are subtracted from said remainder to produce said net syndrome indicative of error. 9. A method according to Claim 8 wherein said addition, subtraction and division are performed according to Galois field arithmetic. 10. A method according to Claim 9 wherein said Galois field is GF(2). ιι. method according to Claim 1 wherein said encoder fixed data are added by inserting said encoder fixed data in a stream of data to be transmitted at at least one predetermined location relative to information data in said stream, said information data and said encoder fixed data being at mutually exclusive locations in a word. 12. A method according to Claim 11 wherein said inserting of encoder fixed data is performed prior to said encoding, and said encoding forms a codeword according to the linear cyclic code, said codeword including said information data and said encoder fixed data. 13. A method according to Claim 12 wherein said codeword is transmitted, a corresponding putative codeword is recovered after transmission, decoder fixed data identical to said encoder fixed data are substituted in said putative recovered codeword in the place of recovered data according to a pattern identical to said encoder data pattern, and error in said putative recovered codeword after said substitution is detected by said .division thereof by said generator polynomial to produce said net syndrome. 14. A method according to Claim 12 wherein said encoder fixed data are extracted from said codeword to form a corresponding word for transmission, said corresponding word is transmitted, a putative corresponding word is recovered after transmission, decoder fixed data identical to said encoder fixed data are inserted in said putative corresponding word according to a pattern identical to said encoder data pattern to form a putative recovered codeword, and error in said putative recovered codeword is detected by said division of said putative recovered codeword by said generator polynomial to produce said net syndrome. 15. A method according to Claim 11 wherein said information data are so encoded to form a codeword according to the linear cyclic code prior to insertion of said encoder fixed data, said encoder fixed data are inserted in said codeword to form a corresponding word for transmission, said corresponding word is transmitted, a putative corresponding word is recovered after transmission, data are extracted from said recovered putative word according to a pattern identical to said encoder data pattern to extract data from every location corresponding to a location where said encoder fixed data were inserted to form a putative recovered codeword, and error in said putative recovered codeword is detected by said division of said putative recovered codeword by said generator polynomial to produce said net syndrome. 16. A method according to any one of Claims 1 to 15 wherein said encoder data pattern provides addition of said encoder fixed data only as a prefix to said information data. 17. A method according to Claim 16 v/herein said encoder fixed data are bit-slip sensitive. 18. A method according to Claim 17 wherein said linear cyclic code is a cyclic redundancy check code. 19. A method according to Claim 16 wherein said linear cyclic code is a cyclic redundancy check code. 20. A method according to any one of Claims 1 to 15 wherein said encoder fixed data are- bit-slip sensitive. 21. A method according to Claim 20 wherein said linear cyclic code is a cyclic redundancy check code. 22. A method according to any one of Claims 1 to 15 wherein said linear cyclic code is a cyclic redundancy check code. 23. A digital data transmission system wherein data are encoded according to a linear cyclic code by adding parity data to the data being encoded to form codewords evenly divisible by a generator polynomial, said system comprising means for adding encoder fixed data to information data according to a predetermined encoder data pattern, encoder means for so encoding said combined encoder fixed data and information data to form a codeword, means for subtracting said encoder fixed data from said codeword to form a corresponding word for transmission, means for transmitting said corresponding word, means for recovering a putative corresponding word after transmission, means for adding decoder fixed data identical to said encoder fixed data to said recovered word according to the same data pattern to form a putative recovered codeword, decoder means for dividing and said putative recovered codeword by said generator polynomial to produce output data and a net syndrome indicative of errors. 24. A system according to Claim 23 wherein said addition, subtraction and division are according to Galois field arithmetic. 25. A system according to Claim 24 wherein said Galois field is GF(2). 26. A digital data transmission system wherein data are encoded according to a linear cyclic code by adding parity data to the data being encoded to form codewords evenly divisible by a generator polynomial, said system comprising encoder means for so encoding information data to form a codeword, means for adding encoder fixed data to said codeword according to a predetermined encoder data pattern to form a corresponding word for transmission, means for transmitting said corresponding word, means for recovering a putative corresponding word after transmission, means for subtracting decoder fixed data identical to said encoder fixed data from said putative word recovered to form a putative recovered codeword, and decoder means for dividing said putative recovered codeword by said generator polynomial to produce output data and a net syndrome indicative of error. 27. A system according to Claim 26 wherein said addition, subtraction and division are according to Galois field arithmetic. 28. A system according to Claim 27 wherein said Galois field is GF(2). 29. A digital data transmission system wherein data are encoded according to a linear cyclic code by adding parity data to the data being encoded to form codewords evenly divisible by a generator polynomial, said system comprising encoder means for so encoding information data to form a codeword of information data and parity data, means for adding encoder fixed data only to said parity data according to a predetermined encoder data pattern to form a corresponding word for transmission, means for transmitting said corresponding word, means for recovering a putative corresponding word after transmission, decoder means for dividing said putative word recovered by said generator polynomial to produce output data and a remainder, and means for subtracting decoder fixed data identical to said encoder fixed data from said remainder to produce a net syndrome indicative of error. 30. A system according to Claim 29 wherein said addition, subtraction and division are according to Galois field arithmetic. 31. A system according to Claim 30 wherein said Galois field is GF(2). 32. A digital data transmission system wherein data are encoded according to a linear cyclic code by adding parity data to the data being encoded to form codewords evenly divisible by a generator polynomial, said system comprising means for inserting. encoder fixed data in a stream of data according to a predetermined encoder data pattern at at least one predetermined location relative to information data in said stream, said information data and said encoder fixed data being at mutually exclusive locations in said stream, means for so encoding said combined information data and encoder fixed data to form a codeword, means for transmitting said codeword, means for recovering a corresponding putative codeword after transmission, means for substituting decoder fixed data identical to said encoder fixed data in said putative recovered codeword in the place of recovered data according to a pattern identical to said encoder data pattern, and decoder means for dividing said putative recovered codeword after said substitution by said generator polynomial to produce output data and a net syndrome indicative of error. 33. A digital data transmission system wherein data are encoded according to a linear cyclic code by adding parity data to the data being encoded to form codewords evenly divisible by a generator polynomial, said system comprising means for inserting encoder fixed data in a stream of data according to'a ~ "predetermined encoder data pattern at at least one predetermined location relative to information data in ~ said stream, said information data and said encoder fixed data being at mutually exclusive locations in said stream, means for so encoding said combined information data and encoder fixed data to form a codeword, means for extracting said encoder • fixed data from said codeword to form a corresponding word for transmission, means for transmitting said corresponding word, means for recovering a putative corresponding word after transmission, ' means for inserting decoder fixed data identical to said encoder fixed data in said putative corresponding word according to a pattern identical to said encoder data pattern to form a putative recovered codeword, and decoder means for dividing said putative recovered codeword by said generator polynomial to produce output data and a net syndrome indicative of error. 34. A digital data transmission system wherein data are encoded according to a linear cyclic code by adding parity data to the data being encoded to form codewords evenly divisible by a generator polynomial, means for so encoding said information data to form a codeword including information data and parity data, means for inserting encoder fixed data in said codeword according to a predetermined encoder data pattern at at least one predetermined location relative to said information data and said parity data to form a corresponding word for transmission, said information data, said parity data and said encoder fixed data being at mutually exclusive locations in said corresponding word, means for transmitting said corresponding word, means for recovering a putative corresponding word after transmission, means for forming a putative recovered codeword by extracting data from every location in said recovered putative word- corresponding to a location where said encoder fixed data were inserted, and decoder means for dividing- said putative recovered codeword by said generator polynomial to produce output data and a net syndrome indicative of error. 35. A system according to any one of Claims 23 to 34 wherein said encoder data pattern provides said encoder fixed data only as a prefix to said information data. 36. A system according to Claim 35 wherein said encoder fixed data are bit-slip sensitive. 37. A system according to Claim 36 wherein • said linear cyclic code is a cyclic redundancy check code. 38. A system according to Claim 35 wherein said linear cyclic code is a cyclic redundancy check code. 39. A system according to any one of Claims 23 to 34 wherein said encoder fixed data are bit-slip sensitive. 40. A system according to Claim 39 wherein said linear cyclic code is a cyclic redundancy check code. 41. A system according to any one of Claims 23 to 34 wherein said linear cyclic code is a cyclic redundancy check code.

Inventors: PASDERA LEONARD A, TAKEMOTO SOHEI, PASDERA, LEONARD, A., TAKEMOTO, SOHEI
Applicants: AMPEX, AMPEX CORPORATION
Application year: 1987
Main classification: G06F11
IPC codes: G06F11, H03M13