Puncture sequences S.sub.1, S.sub.2, etc. for code rates R.sub.1, R.sub.2,
etc. less than a maximum code rate R.sub.max are defined subsets of a
maximum rate puncture sequence S.sub.max that corresponds to the maximum
code rate R.sub.max. Each puncture sequence S.sub.i for a code rate
R.sub.i is related to the puncture sequence S.sub.i-1, of the previous
code rate R.sub.i-1, and preferably S.sub.1.OR right.S.sub.2.OR right. .
. . .OR right.S.sub.max-1.OR right.S.sub.max. The puncture sequences are
groups of one or more memory elements, each of which is a variable
degree, a variable node location, a check degree, or a check node
location. A method for deriving such a puncture sequence for variable
code rates is also disclosed.