We know that in linear block codes the codeword for a given a message is generated by multiplying the message with the generator matrix G . The generator matrix consists of a sub-matrix which is the transpose of the submatrix of H matrix which contains the parity bits. and another sub-matrix which is an identity matrix.I am curious to know how is the set of row vectors for the H matrix chosen . For example in the case of a (6,3) linear block code the H matrix contains a sub-matrix whose row vectors are made up of the parity bits . However only 3 possible combinations of 1's and 0's for three bit numbers are allowed to form the row vector of this sub-matrix . How do we decide which three bit numbers are to e chosen to form the row vector ?