An analytical technique for generating good binary pulse compression codes is developed. The first step in constructing a code of a given length

is to divide all the residues modulo

and less than

into residue classes. A code digit

is assigned to all members,

, of certain of these classes and

to

and all members,

, of the remaining classes. Many of these divisions resulted in difference sets and corresponding binary codes with single-level periodic code correlations. Other divisions resulted in two-level periodic code correlations. In order for a binary pulse compression code to have low autocorrelation sidelobes, its periodic correlation sidelobes must be low. Therefore, codes with low periodic correlations were sought. Good binary codes for lengths just above

digits down to lengths near

digits were found. Several of them are known to be optimum codes. When programmed on an IBM

, this analytical technique produced codes for lengths near

digits as good as, or better than, any previously known binary pulse compression codes in less than

minutes computer time.