A method for encoding or decoding data, the method comprising: storing, by a user equipment, UE, a plurality of starting vectors; receiving (1020, 1040, 1060, 1080), from a base station for generation of a base matrix (460, 480) comprised of multiple parts, each part comprising a plurality of columns and rows and at least two of the multiple parts comprising orthogonal rows, a first starting vector of the plurality of starting vectors or a vector index to the first starting vector of the plurality of starting vectors, and in addition one or more of the following signalling parameters: a row-indication vector or an index to a set of row-indication vectors to be used for generating said plurality of rows for at least one of the at least two parts comprising orthogonal rows, wherein the row-indication vector comprises a row-indication for each element of the first starting vector; a cyclic shift to be used for generating said plurality of rows for at least one of said at least two parts comprising orthogonal rows; and/or an interleaving vector or an index to a set of interleaving vectors to be applied for generating said plurality of rows for at least one of said at least two parts comprising orthogonal rows; generating, by the UE, the base matrix using the first starting vector and at least one of said additionally received signalling parameters, wherein the base matrix (460, 480) is comprised of integers, wherein each integer is representative of an identity matrix cyclically shifted in accordance with the integer or representative of an all-zero matrix, wherein said at least two parts (440, 450) comprising orthogonal rows are configured such that their respective column-wise combinations of rows represents the first starting vector, cyclically shifted or interleaved, with zero or more but not all integers not indicative of the all-zero matrix of the first starting vector substituted by integers indicative of the all-zero matrix, wherein said at least two parts comprising orthogonal rows (440, 450) are not identical; applying the base matrix (460, 480) to a quasi-cyclic low density parity check, LDPC, coder; and using the applied base matrix (460, 480) for one of encoding data using the LDPC coder or decoding data using the LDPC coder. storing, by a user equipment, UE, a plurality of starting vectors; receiving (1020, 1040, 1060, 1080), from a base station for generation of a base matrix (460, 480) comprised of multiple parts, each part comprising a plurality of columns and rows and at least two of the multiple parts comprising orthogonal rows, a first starting vector of the plurality of starting vectors or a vector index to the first starting vector of the plurality of starting vectors, and in addition one or more of the following signalling parameters: a row-indication vector or an index to a set of row-indication vectors to be used for generating said plurality of rows for at least one of the at least two parts comprising orthogonal rows, wherein the row-indication vector comprises a row-indication for each element of the first starting vector; a cyclic shift to be used for generating said plurality of rows for at least one of said at least two parts comprising orthogonal rows; and/or an interleaving vector or an index to a set of interleaving vectors to be applied for generating said plurality of rows for at least one of said at least two parts comprising orthogonal rows; a row-indication vector or an index to a set of row-indication vectors to be used for generating said plurality of rows for at least one of the at least two parts comprising orthogonal rows, wherein the row-indication vector comprises a row-indication for each element of the first starting vector; a cyclic shift to be used for generating said plurality of rows for at least one of said at least two parts comprising orthogonal rows; and/or an interleaving vector or an index to a set of interleaving vectors to be applied for generating said plurality of rows for at least one of said at least two parts comprising orthogonal rows; generating, by the UE, the base matrix using the first starting vector and at least one of said additionally received signalling parameters, wherein the base matrix (460, 480) is comprised of integers, wherein each integer is representative of an identity matrix cyclically shifted in accordance with the integer or representative of an all-zero matrix, wherein said at least two parts (440, 450) comprising orthogonal rows are configured such that their respective column-wise combinations of rows represents the first starting vector, cyclically shifted or interleaved, with zero or more but not all integers not indicative of the all-zero matrix of the first starting vector substituted by integers indicative of the all-zero matrix, wherein said at least two parts comprising orthogonal rows (440, 450) are not identical; applying the base matrix (460, 480) to a quasi-cyclic low density parity check, LDPC, coder; and using the applied base matrix (460, 480) for one of encoding data using the LDPC coder or decoding data using the LDPC coder.