A data dependent scrambler for a communications channel that receives a
user data sequence including X bits that are organized as N M-bit symbols
includes a seed finder that generates a scrambling seed that is dependent
upon the symbols in the user data sequence. A first scrambler receives
the user data sequence from the data buffer and the scrambling seed from
the seed finder and generates the scrambled user data sequence. An H-code
finder generates at least one of an H-code token that is dependent upon
the symbols in the user data sequence and an offset of the H-code token
from the scrambling seed. An H-code encoder receives the scrambled user
data sequence and at least one of the H-code token and the offset. The
H-code encoder increases a Hamming weight of the scrambled user data
sequence using the at least one of the H-code token and the offset.