"A method of encoding digital information at an average rate of (n+d/2m) user bits per codeword for storage on a magnetic medium, wherein n is a positive integer, and d is a positive integer less than 2m, the method comprising the steps of:receiving a sequence of (2m n+d) user bits; selecting 2m dc-free codewords from among a plurality of non-intersecting subconstellations of dc-free codewords, whe" . . . .