“…There are different algorithms for different error correction codes. For example LDPC codes [3][4][5], convolutional codes [6], RS codes [7,8], turbo codes [9][10][11], staircase with LDPC component codes [12] and generalised lowdensity parity-check (GLDPC)-staircase codes [13] adapt the code rate at the transmitter, according to the channel quality (which must be returned from the receivers). The general method of adapting the code rate of a 'mother code' is shortening or puncturing; code specific details have to be accounted for, such as cycle length in LDPC codes [5], good convergence properties of the convolutional component codes of turbo codes [10], large free distance d free and a small information error weight c d on all paths with d > d free for convolutional codes [6].…”