a code vector comprising 2n data elements is generated in response to n input data elements . the first n data elements of the code vector represent a replica of the n input data elements , and the second n data elements of the code vector comprise n parity data elements . the combination of the first n data elements and the second n data elements forms a kerdock code vector . the kerdock code vector is decoded to recover the n input data elements by selecting one of a possible 2 n kerdock code vectors as a best estimate of the kerdock code vector . the selected kerdock vector comprises 2n data elements , and only the first n data elements of the selected kerdock code vector are used as the n input data elements .