A method comprising: receiving at a first device input data at one of a plurality of data rates; activating one or more of a plurality of Forward Error Correction, FEC, encoder units (506 -506 in the first device based on the data rate of the input data to produce corresponding one or more streams of encoded input data, wherein each of the plurality of FEC encoder units is configured to operate at a same data rate; performing on the one or more streams of encoded input data differential encoding operations to produce an encoded output stream; and modulating the encoded output stream for transmission in a communication channel to a second device; wherein performing the differential encoding operations comprises activating one or more of a plurality of differential encoder units that operate at the same data rate based on the data rate of the input data to produce the encoded output stream, and further comprising performing Quadrature Amplitude Modulation, QAM, mapping of the output of the activated one or more differential encoder units; wherein performing the QAM mapping comprises: performing intra-quadrant Quadrature Phase Shift Keying, QPSK mapping to produce first QPSK mapping output; recursively performing inter-quadrant QPSK mapping by shifting and rotating the previous mapping output to produce a second QPSK mapping output; and outputting a differentially encoded stream using predetermined most significant bits of the first QPSK mapping output as differential encoded quadrant information and using predetermined least significant bits of the second QPSK mapping output for defining a rotational symmetric sub-constellation. receiving at a first device input data at one of a plurality of data rates; activating one or more of a plurality of Forward Error Correction, FEC, encoder units (506 -506 in the first device based on the data rate of the input data to produce corresponding one or more streams of encoded input data, wherein each of the plurality of FEC encoder units is configured to operate at a same data rate; performing on the one or more streams of encoded input data differential encoding operations to produce an encoded output stream; and modulating the encoded output stream for transmission in a communication channel to a second device; wherein performing the differential encoding operations comprises activating one or more of a plurality of differential encoder units that operate at the same data rate based on the data rate of the input data to produce the encoded output stream, and further comprising performing Quadrature Amplitude Modulation, QAM, mapping of the output of the activated one or more differential encoder units; wherein performing the QAM mapping comprises: performing intra-quadrant Quadrature Phase Shift Keying, QPSK mapping to produce first QPSK mapping output; recursively performing inter-quadrant QPSK mapping by shifting and rotating the previous mapping output to produce a second QPSK mapping output; and outputting a differentially encoded stream using predetermined most significant bits of the first QPSK mapping output as differential encoded quadrant information and using predetermined least significant bits of the second QPSK mapping output for defining a rotational symmetric sub-constellation. performing intra-quadrant Quadrature Phase Shift Keying, QPSK mapping to produce first QPSK mapping output; recursively performing inter-quadrant QPSK mapping by shifting and rotating the previous mapping output to produce a second QPSK mapping output; and outputting a differentially encoded stream using predetermined most significant bits of the first QPSK mapping output as differential encoded quadrant information and using predetermined least significant bits of the second QPSK mapping output for defining a rotational symmetric sub-constellation.