The table below lists the polynomials used. All are feed-forward non-systematic codes with no catastrophic cycles. Alongside each are the code parameters $[n,k,d_{min}]$ for various message sizes when used as a terminated block code.

(H) indicates the minimum distance equals the Heller bound. (T) indicates a transparent polynomial set, although the block convolutional code is not transparent.

The alias can be used as argument to the `-p` program options instead of
giving the full octal polynomial.

Alias | Code | Polynomials in Octal | 5 chars | 12 chars | 25 chars |
---|---|---|---|---|---|

2K15B | Rate 1/2 K=15 | 046253,077361 | [120,30,17] | [204,72,17] | [360,150,17] |

2K16B | Rate 1/2 K=16 | 0114727,0176121 | [122,30,18] | [206,72,18] | [362,150,18] |

2K17B | Rate 1/2 K=17 (T) | 0213631,0353323 | [124,30,20] | [208,72,20] | [364,150,20] |

2K18A | Rate 1/2 K=18 | 0507517,0654315 | [126,30,20] | [210,72,20] | [366,150,20] |

2K21A | Rate 1/2 K=21 | 05016515,06770547 | [132,30,24] | [216,72,24] | [372,150,24] |

2K23A | Rate 1/2 K=23 (T) | 051202215,066575563 | [138,30,24] | [222,72,24] | [378,150,24] |

3K10A | Rate 1/3 K=10 (H) | 01117,01365,01633 | [165,30,20] | [291,72,20] | [525,150,20] |

3K11A | Rate 1/3 K=11 (H) | 02353,02671,03175 | [168,30,22] | [294,72,22] | [528,150,22] |

3K12A | Rate 1/3 K=12 (H) | 04767,05723,06265 | [171,30,24] | [297,72,24] | [531,150,24] |

3K13A | Rate 1/3 K=13 | 010533,010675,017661 | [174,30,24] | [300,72,24] | [534,150,24] |

3K14A | Rate 1/3 K=14 | 021645,035661,037133 | [177,30,26] | [303,72,26] | [537,150,26] |

4K13A | Rate 1/4 K=13 | 011145,012477,015537,016727 | [232,30,32] | [400,72,32] | [712,150,32] |

4K14A | Rate 1/4 K=14 (H) | 021113,023175,035527,035537 | [236,30,36] | [404,72,36] | [716,150,36] |

4K15B | Rate 1/4 K=15 | 050575,051447,056533,066371 | [240,30,37] | [408,72,37] | [720,150,37] |

4K16A | Rate 1/4 K=16 | 0123175,0135233,0156627,0176151 | [244,30,39] | [412,72,39] | [724,150,39] |

4K17A | Rate 1/4 K=17 | 0235433,0247631,0264335,0311727 | [248,30,41] | [416,72,41] | [728,150,41] |

4K19A | Rate 1/4 K=19 (H) | 01122645,01373343,01531175,01634157 | [256,30,46] | [424,72,46] | [736,150,46] |

4K21A | Rate 1/4 K=21 | 04542365,05342433,06347677,07232671 | [264,30,50] | [432,72,50] | [744,150,50] |

4K23A | Rate 1/4 K=23 | 022346335,024275433,035520777,036271251 | [272,30,54] | [440,72,54] | [752,150,54] |

4K25A | Rate 1/4 K=25 (T) | 0106042635,0125445117,0152646773,0167561761 | [280,30,58] | [448,72,58] | [760,150,58] |

8K17A | Rate 1/8 K=17 | 0222537,0226345,0255077,0267667, 0306347,0315117,0326721,0372751 |
[496,30,84] | [832,72,84] | [1456,150,84] |

8K19A | Rate 1/8 K=19 | 01632737,01226537,01214561,01276775, 01221517,01523533,01154451,01543563 |
[512,30,92] | [848,72,92] | [1472,150,92] |

8K21A | Rate 1/8 K=21 (H) | 04470745,04714453,05175161,05366615, 06375351,06752427,06775363,07310533 |
[528,30,102] | [864,72,102] | [1488,150,102] |

8K23A | Rate 1/8 K=23 (H) | 023372665,024534765,025561775,027325743, 031716223,032210543,035451321,036744713 |
[544,30,110] | [880,72,110] | [1504,150,110] |

8K25A | Rate 1/8 K=25 | 0105341521,0111747353,0114371121,0122355637, 0134552773,0150627331,0164507577,0172554315 |
[560,30,118] | [896,72,118] | [1520,150,118] |

16K21A | Rate 1/16 K=21 (H) | 04232547,04505631,05114365,05234555, 05275577,05333523,05634353,05663763, 05735521,06110751,06273753,06523067, 06723455,07454677,07647511,07710617 |
[1056,30,204] | [1728,72,204] | [2976,150,204] |

16K25A | Rate 1/16 K=25 (H) | 0104722251,0107672671,0122541663,0122545535, 0123470447,0125364663,0131553555,0131615665, 0145114761,0145522105,0146174323,0157705733, 0162370765,0166576517,0167572771,0176274217 |
[1120,30,238] | [1792,72,238] | [3040,150,238] |

Most of the shorter constraint length polynomials are standard well known codes. The longer ones were found by a brute force search. A very large number of polynomial sets were randomly generated (subject to some simple constraints) and tested for $d_{min}$. Those with the largest $d_{min}$ where then compared on the basis of the first few dozen terms of their distance spectrum.

The production rate of good codes was significantly enhanced by taking a large set of reasonably good rate $1/r$ codes and testing combinations of these as rate $1/(2r)$ codes.

Some effort was made to rank codes based only on their cumulative distance spectrum without considering their $d_{min}$, with a view to producing codes optimised for list decoding. However, no significant difference in actual message performance could be established using such codes, compared with those with the highest $d_{min}$.