A method of encoding a communication signal by selecting a cyclic code, establishing a generator polynomial, generating a polynomial using the generator polynomial, forming a matrix from the generated polynomial, receiving data to be encoded, appending zeros to the received data, calculating a syndrome of the matrix, calculating check values from the syndrome, appending the check values to the received data, and encoding the received data with appended check values using the generator polynomial.