Techniques and systems for design and use of generalized LDPC codes. A
generalized LDPC code comprises a set of codewords producing valid
results when submitted to a validator comprising a set of variable nodes
and a set of check nodes, with outputs of the variable nodes being
connected to inputs of the check nodes by interleaver edges. Each check
node and variable node is in the form of a code, with the output of a
node being valid if its inputs form a valid codeword. An extrinsic
information transfer function (EXIT) chart is used to form a check node
curve and a variable node curve is matched to the check node curve. The
variable nodes are then constructed so as to provide the information
transfer properties indicated by the variable node curve.