A method for bit
interleaving is provided. A method includes mapping a set of bits a≡{ak: k=0, 1, 2, . . . Npost−1} to an array B={Bi,j: i=0, 1, 2, . . . , M−1; j=0, 1, 2, . . . , N−1} such that bit ak maps to Bk mod M, └k / M┘, wherein mod denotes the modulo operator, └┘ denotes the floor operator, and M and N are constants, performing at least one of—a first permutation operation comprising permuting two or more bits within each of one or more first groups of bits, wherein each first group of bits is defined by G(1)p={Bi,p: i=0, 1, 2, . . . , M−1; p∈{0, 1, 2, . . . , N−1}} and—a second permutation operation comprising permuting two or more bits within each of one or more second groups of bits, wherein each second group of bits is defined by G(2)q={Bq,j: j=0, 1, 2, . . . , N−1; q∈ {0, 1, 2, . . . , M−1}} and de-mapping bits from B to obtain an interleaved set of bits b≡{bk: k=0, 1, 2, Npost−1} such that bit B,i,j is de-mapped to bit bNi+j.