A method for multi-level encoding of an input message into a symbol sequence comprising information bits, the method comprises: - dividing the input message into a plurality of sub-messages; - encoding each of the sub-messages into a codeword, wherein a first set of the sub-messages of the plurality of sub-messages is encoded using a polar decoder as a channel decoder, wherein the channel decoder is configured to: firstly allocate, to each of the first set of sub-messages, a sequence of shaping bits to form a further set of sub-messages, wherein each sequence of shaping bits is chosen based: on the sub-message of the first set to which the sequence of shaping bits is allocated, on the codewords obtained by encoding the sub-message of a second set of sub-messages of the plurality of sub-messages, wherein the sub-messages of the second set are not in the first set of sub-messages, and on a predefined function of the symbol sequence, wherein the predefined function is a probability distribution function of the symbols of the symbol sequence, and secondly encode each of the sub-message of the further set of sub-messages into a codeword, wherein the bits in the codeword have a desired predefined probability distribution; and - mapping the codewords into the corresponding symbols of the symbol sequence, wherein the symbols have multiple bit-levels, and wherein at least one bit-level contains bits from only a particular codeword. - dividing the input message into a plurality of sub-messages; - encoding each of the sub-messages into a codeword, wherein a first set of the sub-messages of the plurality of sub-messages is encoded using a polar decoder as a channel decoder, wherein the channel decoder is configured to: firstly allocate, to each of the first set of sub-messages, a sequence of shaping bits to form a further set of sub-messages, wherein each sequence of shaping bits is chosen based: on the sub-message of the first set to which the sequence of shaping bits is allocated, on the codewords obtained by encoding the sub-message of a second set of sub-messages of the plurality of sub-messages, wherein the sub-messages of the second set are not in the first set of sub-messages, and on a predefined function of the symbol sequence, wherein the predefined function is a probability distribution function of the symbols of the symbol sequence, and secondly encode each of the sub-message of the further set of sub-messages into a codeword, wherein the bits in the codeword have a desired predefined probability distribution; and firstly allocate, to each of the first set of sub-messages, a sequence of shaping bits to form a further set of sub-messages, wherein each sequence of shaping bits is chosen based: on the sub-message of the first set to which the sequence of shaping bits is allocated, on the codewords obtained by encoding the sub-message of a second set of sub-messages of the plurality of sub-messages, wherein the sub-messages of the second set are not in the first set of sub-messages, and on a predefined function of the symbol sequence, wherein the predefined function is a probability distribution function of the symbols of the symbol sequence, on the sub-message of the first set to which the sequence of shaping bits is allocated, on the codewords obtained by encoding the sub-message of a second set of sub-messages of the plurality of sub-messages, wherein the sub-messages of the second set are not in the first set of sub-messages, and on a predefined function of the symbol sequence, wherein the predefined function is a probability distribution function of the symbols of the symbol sequence, and secondly encode each of the sub-message of the further set of sub-messages into a codeword, wherein the bits in the codeword have a desired predefined probability distribution; and - mapping the codewords into the corresponding symbols of the symbol sequence, wherein the symbols have multiple bit-levels, and wherein at least one bit-level contains bits from only a particular codeword.