Appendix A. Code Generators for BCH Codes
Total Page:16
File Type:pdf, Size:1020Kb
Appendix A. Code Generators for BCH Codes As described in Chapter 2, code generator polynomials can be constructed in a straightforward manner. Here we Jist some of the more useful generators for primitive and nonprimitive codes. Generators for the primitive codes are given in octal notation in Table A-1 (i.e., 23 denotes x4 + x + 1). The basis for constructing this table is the table of irreducible polynomials given in Peterson and Weldon.(t) Sets of code generators are given for lengths 7, 15, 31, 63, 127, and 255. Each block length is of the form 2m - 1. The first code at each block length is a Hamming code, so it has a primitive polynomial, p(x), of degree m as its generator. This polynomial is also used for defining arithmetic operations over GF(2m). The next code generator of the same length is found by multiplying p(x) by m3 (x), the minimal polynomial of 1>: 3. Continuing in the same fashion, at each step, the previous generator is multiplied by a new minimal polynomial. Then the resulting product is checked to find the maximum value oft for which IX, 1>: 2, ••• , ~>: 21 are roots of the generator polyno mial. This value tis the error-correcting capability of the code as predicted by the BCH bound. The parameter k, the number of information symbols per code word, is given by subtracting the degree of the generator polynomial from n. Finally, on the next iteration, this generator polynomial is multiplied by mh(x) [with h = 2(t + 1) + 1] to produce a new generator polynomial. This process produces a sequence of BCH code generators of length n = 2m - 1 with increasingly larger degree and error-correction capability. (In some cases the actual minimum distance will exceed this bound.) The minimal polynomials necessary for constructing this table may be found in Peterson and Weldon. In addition, these tables may be used for constructing codes of length greater than 255. The tables in Peterson and 393 394 Appendix A Weldon are complete through degree 16, which would allow construction of all primitive BCH codes through length 65535 using the same technique used here. Table A-2 provides a list of selected code generators of nonprimitive BCH codes. These particular codes were selected because one cannot shorten a primitive BCH code to the same n and k and achieve the same or larger minimum distance. The arithmetic operations for these codes are defined over GF(2m), where m is the value indicated in the table. In this case the actual error-correcting capability is indicated since it is larger than the BCH bQJ,md in a number of cases. Table A-1. Generator Polynomials of Primitive BCH Codes n k Generator polynomial. g1 (x) (octal) 7 4 I gdxl = p(x) = 13 3 g 1 (x)-(15) = 177 15 II gdxl = p(x) = 23 7 2 g1 (x)· (37) = 721 5 3 g2 (x)· (7) = 2467 7 g3 (x) · (31) = 77777 31 26 g1 (x) = p(x) = 45 21 2 g1 (x) · (75) = 3551 16 3 g2 (x) · (67) = 10765 7 II 5 g3 (x) ·(57) = 54233 25 6 7 g5 (x) · (73) = 31336 5047 15 g1 (x)·(51) = 17777 77777 7 63 57 I g 1 (x) = p(x) = 103 51 2 g1 (x)·(127) = 12471 45 3 g2 (x)·(l47) = 17013 17 39 4 g3 (x)·(lll) = 16662 3567 36 5 g4 (x)·(l5) = 10335 00423 30 6 g5 (x)·(l55) = 15746 41655 47 24 7 g, (x)·(l33) = 17323 26040 4441 18 10 g1 (x)·(l65) = 13630 26512 35172 5 16 II gto(X) ·(7) = 63311 41367 23545 3 10 13 g11 (x) · (163) = 47262 23055 27250 !55 7 15 giJ(X). (13) = 52310 45543 50327 1737 31 g 15 (x)·(l41) = 77777 77777 77777 77777 7 127 120 g 1(x) = p(x) = 211 113 2 g 1 (x)·(217) =41567 106 3 g 2 (x)·(135)= 11554 743 AppeadlxA 395 Table A-1 (continued) n k Generator polynomial, g,(x) (octal) 127 99 4 g3 (x) · (367) = 34470 23271 92 5 g4 (x) · (277) = 62473 00223 27 85 6 g5 (x) · (325) = 13070 44763 22273 78 7 g6 (x) · (203) = 26230 00216 61301 15 71 9 g7 (x) · (357) = 62550 10713 25312 7753 64 10 g9 (x) · (313) = 12065 34025 57077 31000 45 57 II g10 (x) · (345) = 33526 52525 05705 05351 7721 50 13 g1.{x)·(301) = 54446 51252 33140 12421 50142 I 43 14 g13(x) · (323) = 17721 77221 36512 27521 22057 4343 36 15 g14(x)·(253) = 31460 74666 52207 50447 64574 72173 5 29 21 (Jt 5(x)·(361)=40311 44613 67670 60366 7530141176 155 22 23 g2 .(x)·(247) = 12337 60704 04722 52243 54456 26637 64704 3 15 27 g23 (x)·(271) = 22057 04244 56045 54770 52301 37622 17604 353 8 31 g2 ,(x)-(375) = 70472 64052 75103 06514 76224 27156 77331 30217 63 g31 (x) · (221) = 17777 77777 77777 77777 77777 77777 77777 77777 777 255 247 gt<xJ = p(x) = 435 239 2 g1 (x) · (567) = 26754 3 231 3 g2 (x)·(763) = 15672 0665 223 4 gJ (x-)·(551) = 75626 64137 5 215 5 g4 (X)· (675) = 23157 56472 6421 207 6 g 5 (x) · (747) = 16176 56056 76362 27 199 7 g6 (x-)·(453) = 76330 31270 42072 2341 191 8 g7 (x) · (727) = 26634 70176 11533 37145 67 187 9 g8 (x) · (23) = 52755 31354 00013 22236 351 179 10 g9 (x)·(545) = 22624 71071 73404 32416 30045 5 171 II g10 (x) · (613) = 15416 21421 23423 56077 06163 0637 163 12 gll(x)·(543) = 75004 15510 07560 25515 74724 51460 I 155 13 g12(x)·(433) = 37575 13005 40766 50157 22506 46467 7633 147 14 g13 (x)·(477) = 16421 30173 53716 55253 04165 30544 10117 II 139 15 g14(x)·(615) = 46140 17320 60175 56157 07227 30247 45356 7445 131 18 g 15 (x) · (455) = 21571 33314 71510 15126 12502 77442 14202 41654 71 396 Appendix A Table A-1 (continued) n k Generator polynomial, g,(x) (octal) 255 123 19 g 18 (x)·(537) = 12061 40522 42066 00371 72103 26516 14122 62725 06267 115 21 glg(X) · (771) = 60526 66557 21002 47263 63640 46002 76352 55631 34727 37 107 22 g 2 dx)·(703) = 22205 77232 20662 56312 41730 02353 47420 17657 47501 54441 99 23 g22 (x) · (471) = 10656 66725 34731 74222 74141 62015 74332 25241 10764 32303 431 91 25 g 23 (x)·(651) = 67502 65030 32744 41727 23631 72473 25110 75550 76272 07243 44561 87 26 g25 (x) · (37) = 11013 67634 14743 23643 52316 34307 17204 62067 22545 27331 17213 17 79 27 g 26 (x) · (607) = 66700 03563 76575 00020 27034 42073 66174 62101 53267 11766 54134 2355 71 29 g 27 (x) · (661) = 24024 71052 06443 21515 55417 21123 31163 20544 42503 62557 64322 17060 35 63 30 g 29 (x)·(5!5) = 10754 47505 51635 44325 31521 73577 07003 66611 17264 55267 61365 67025 43301 55 31 g 30 (.x)·(717) =73154 25203 50110 0133015275 30603 20543 25414 32675 50105 57044 42603 54736 17 47 42 g3 1 (x) · (735) = 25335 42017 06264 65630 33041 37740 62331 75123 33414 54460 45005 06602 45525 43173 45 43 g42 (x) · (7) = 15202 05605 52341 61131 10134 63764 23701 56367 00244 70762 37303 32021 57025 05154 I 37 45 g 43 (x) · (643) = 51363 30255 06700 74141 77447 24543 75304 20735 70617 43234 32347 64435 47374 03044 003 29 47 g 45 (x) · (765) = 30257 15536 67307 14655 27064 01236 13771 15342 24232 42011 74114 06025 46574 10403 56503 7 21 55 g 47 (x)·(637) = 12562 15257 06033 26560 01773 15360 76121 03227 34140 56530 74542 52115 31216 14466 51347 3725 13 59 g55 (x) · (573) = 46417 32005 05256 45444 26573 71425 00660 04330 67744 54765 61403 17467 72135 70261 34460 50054 7 Appendix A 397 Table A-1 (continued) n k Generator polynomial, g1 (x) (octal) 9 63 g 59 (x) · (31) = 15726 02521 74724 63201 03104 32553 55134 61416 23672 12044 07454 51127 66115 54770 55616 77516 057 255 127 g63 (x) · (561) = 77777 77777 77777 77777 77777 77777 77777 77777 77777 77777 77777 77777 77777 77777 77777 77777 77777 Table A-2. Selected Generator Polynomials of Nonprimitive BCH Codes n k m Generator polynomial (octal) 17 9 1 8 727 21 12 2 6 1663 23 12 3 II 5343 33 22 2 10 5145 33 12 4 10 3777 41 21 4 20 66471 33 47 24 5 23 43073 357 65 53 2 12 10761 65 40 4 12 35430 3067 73 46 4 9 17177 73537 Appendix B. Code Generators for Convolutional Codes This appendix presents a series of tables of good code generators for con volutional codes. Separate tables provide generators specifically optimized for use with Viterbi decoders, table look-up decoders, threshold decoders, and sequential decoders. B.l. Viterbi Decoding Tables B-1 and B-2 list the optimum short-constraint-length convolu tional codes for R = 1/3 and R = 1/2.1 91 ) The code generators are given in octal notation. For each code the free distance, d, is given and the total information weight of all paths with weight d through d + 4. The constraint length is designated by v to facilitate comparisons among the various code rates (remember that the number of states is 2• so that all codes with the same I' have roughly the same decoder complexity even if the rates differ). For the higher-rate codes, lists of the best punctured codes(SSJ will be provided. rather than the optimum codes.