1. A method for constructing a generator matrix using a Computer processor, the method comprising: receiving a parity check matrix H = [ H 1 , 1 H 1 , 2 … H 1 , N H 2 , 1 H 2 , 2 … H 2 , N ⋮ ⋮ ⋱ ⋮ H M , 1 H M , 2 … H M , N ] , wherein each sub-matrix H i,j is a q×q circulant matrix; rearranging the parity check matrix H by column and row permutations to obtain a rearranged parity check matrix H ′ = [ H u ⁢ ⁢ 1 I t 0 t × ( M - t ) H u ⁢ ⁢ 2 H p ⁢ ⁢ 1 H p ⁢ ⁢ 2 ] ; wherein I t is an identity matrix of size t, 0 t×(m−t) is a zero matrix of size t×(M−t), and H u1 ,H u2 , H p1 and H p2 corresponds to sub-matrices in the rearranged parity check matrix H′ identified based on relative positions of the sub-matrices with respect to I t and 0 t× (m−t); and constructing the generator matrix G=[I N−M H u1 T {tilde over (G)} T ], wherein I N−M is an identity matrix of size N-M, H u1 T is a transpose of H u1 and {tilde over (G)} T is a part of the generator matrix in systematic-circulant form constructed based on H′.