Finding Cyclic Redundancy Check Polynomials for Multilevel Systems James A
Total Page:16
File Type:pdf, Size:1020Kb
View metadata, citation and similar papers at core.ac.uk brought to you by CORE provided by University of Richmond University of Richmond UR Scholarship Repository Math and Computer Science Faculty Publications Math and Computer Science 10-1998 Finding Cyclic Redundancy Check Polynomials for Multilevel Systems James A. Davis University of Richmond, [email protected] Miranda Mowbray Simon Crouch Follow this and additional works at: http://scholarship.richmond.edu/mathcs-faculty-publications Part of the Mathematics Commons Recommended Citation Davis, James A., Miranda Mowbray, and Simon Crouch. "Finding Cyclic Redundancy Check Polynomials for Multilevel Systems." IEEE Transactions on Communications 46, no. 10 (October 1998): 1250-253. This Article is brought to you for free and open access by the Math and Computer Science at UR Scholarship Repository. It has been accepted for inclusion in Math and Computer Science Faculty Publications by an authorized administrator of UR Scholarship Repository. For more information, please contact [email protected]. 1250 IEEE TRANSACTIONS ON COMMUNICATIONS, VOL. 46, NO. 10, OCTOBER 1998 Finding Cyclic Redundancy Check Polynomials for ,Multilevel Systems James A. Davis, Miranda Mowbray, and Simon Crouch Abstract-This letter describes a technique for finding cyclic for using all nine levels rather than, effectively, just eight, redundancy check polynomials for systems for transmission over in that with nine levels there are more possible choices for symmetric channels which encode information in multiple voltage code words which do not encode data, but are special signals levels, so that the resulting redundancy check gives good error protection and is efficient to implement. The codes which we used for synchronization information or to signal the end of construct have a Hamming distance of 3 or 4. We discuss a way the packet. The greater choice for nondata codewords allows to reduce burst error in parallel transmissions and some tricks run lengths to be kept short and allows for more efficient for efficient implementation of the shift register for these poly clock recovery. The other alternative mentioned, working over nomials. We illustrate our techniques by discussing a particular GF(9), does not have any advantages over Z in terms of example where the number of levels is 9, but they are applicable 9 in general. complexity of algebraic operations, and it seems harder to explain. Thus, we will construct codes over Z9 in this letter. Index Terms-Communication systems, cyclic codes, multilevel We assume that the reader is familiar with CRC's over systems, polynomials. GF(2): see [1] for background. In Section II, we describe how to choose a CRC over GF(3) with Hamming distance 4-i.e., I. INTRODUCTION so that error resulting in a change in up to three symbols in the N AN EFFORT to have high-speed transmission without packet will be detected. In Section III, we show how to use I exceeding emissions regulations, engineers have turned to this to construct CRC' s over Z 9 with Hamming distance 4. In transmissions which encode information in multiple voltage Section IV, we briefly discuss two implementation issues. levels in place of the traditional binary transmission with two voltage levels. In order to ensure reliable transmission, some error detection needs to be included. This letter de~cribes how II. POLYNOMIAL OF GF(3) to choose a cyclic redundancy check polynomial (CRC) in We will ultimately want to have error protection for a nine such a system, and we also discuss how to implement such level system. In order to do that, we first need to construe! a system, describing a technique which increases protection a system which will work for a three-level system. We will against burst errors, and efficient implementation of the shift extend this in Section IV, but we state without proof at thh register. We will assume that the transmission channel is the stage that the nine-level system will have error detectior. multilevel symmetric channel, so that if the voltage level capabilities at least as good as the three-level system used received is in error, each of the possible wrong levels is equally to generate it. We start with a well-known lemma. (The proofr likely to occur. For this channel, the most suitable distance of all the lemmas are in the Appendix.) measure is the Hamming distance. Lemma 1: Suppose that P(x) is a primitive polynomial We will focus our attention on a system with nine levels over GF(3) with degree d > 1, and that n is an integer less because of the particular application out of which this arose, than (3d - 1)/2. Then the code generated by P truncated at but everything that we discuss can be done in a more general length n has a Hamming distance of at least 3. setting. We chose to work with cyclic codes over Z 9 because In order to increase the Hamming distance of the code these codes are relatively easy to work with both theoretically we are using to 4 (which would detect any error altering as well as practically, but there are other choices. We could at most three symbols in the packet), we can modify a have constructed a cyclic code over GF(9), the finite field with standard technique from binary transmissions: when working nine elements, or we could have constructed a cyclic code over with cyclie codes over GF(2), any code whose generator is either Z8 or GF(8) (finite ring or field with eight elements) divisible by ( x+ 1) will detect any error altering an odd number and then had one signal level which is never used. The latter of symbols in the packet. Thus, we can take a cyclic code over suggestion came from a referee and was not considered during GF(2) whose Hamming distance is 3 and construct a new code the original work done on the code. Such a code would be no whose Hamming distance is 4 by multiplying the generator by less efficient than our nine-level coding; but there is a reason (x + 1). This technique does not directly work over GF(3), but the following lemma demonstrates that we can perform a Paper approved by S. B. Wicker, the Editor for Coding Theory and similar trick. Techniques of the IEEE Communications Society. Manuscript received March Lemma 2: Suppose that g(x) is a generator of a truncated 1. 1997; revised February 16, 1998. J. A. Davis was with Hewlett-Packard Laboratories, Bristol, BS34 6QZ cyclic code over GF(3) of length n and Hamming distance at U.K., on sabbatical from the Department of Mathematics and Computer least·3. Then the code of length n generated by (x - l)g(x) Science, University of Richmond, Richmond, VA 23173 USA. has Hamming distance of at least 4 if and only if there are no M. Mowbray and S. Crouch are with Hewlett-Packard Laboratories, Bristol · ""k · 0m-k k · BS34 6QZ U.K. codewords of the form L..i=l xm-i - L..j=l xm- -i, m <; n Publisher Item Identifier S 0090-6778(98)07771-X. in the truncated code generated by g(x). 0090-6778/98$10.00 © 1998 IEEE IEEE TRANSACTIONS ON COMMUNICATIONS, VOL. 46, NO. 10, OCTOBER 1998 1251 We will show later that if b(x) is the generator for a will construct by multiplying together three elements truncated cyclic code over GF(3) = Z3 with Hamming whose orders are 2, 1871, and 34511, respectively. distance h, then the truncated cyclic code over Z9 whose So we need to find an element of order 34 511. If 2 2 1871 generator is b(x) [considered as a polynomial over Z9 rather (x + 1) < ) is not 1 in the field, then it will be than GF(3)] will also have Hamming distance h .. In our an element of order 34 511. (If it is equal to 1, take application, we work with packets which have a maximum another .irreducible polynomial in place of x2 + 1 length of 4500 bytes (the size of Token Ring packets). Each and try again.) To do this, first use Mathematica byte is to be encoded as a triple of nine-level symbols. (This to compute the powers of x with the command coding is not as efficient as sending the bytes directly, but Do[g[x_, i_J := PolynomialPowerMod[x, i, £17 + x{4 allows for special code words which do not encode data, as +£13 + x"9 + x7 + x'5 + x'3+x - 1, 3], i, 1, 5000] then explained in the introduction.) Thus, the detection scheme rewrite (x2 + 1)2<1871 ) as ((x2 + 1)729 )5 ((x2 + 1) 81 ) will be a truncated nine-level cyclic code of length at most ( (x2+1 )9).( (x2+1) 7) =( (x1458 + l)s(x162+ l)(x18+1) 13 500. Since the length of the packets that we will be sending (x2 + 1) 7), exploiting the fact that raising polynomials is at most 13 500, if we find a primitive polynomial over to powers of 3 is easy mod 3; this can be GF(3) of degree at least 10, then by the first Lemma this computed using the Mathematica command will generate a truncated code with Hamming distance 3. PolynomialMod[PolynomialRemainder[ ( (g[x, 1458] Multiplying this primitive polynomial by (x - 1) will give +1)'5) * (g[x, 162] :+- 1) * (g[x, 18] + 1) * ((x'2 + 1)7), a polynomial of degree at least 11, which by the second £17 +x"14 + £13 + x'9 + x7 + x'5 + x'°3 + x - 1], 3] Lemma will generate a truncated code with Hamming distance which yields the result 1 +x2 +x4 +x5 +x11 +x13 -xl4 4 as long as we avoid codewords of the specified form.