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 ] ; and constructing the generator matrix G=[I N−M H u1 T {tilde over (G)} T ], wherein 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′.