  Optimizing the correlation properties of spreading codes is critical for
minimizing inter-channel interference in satellite navigation systems. By
improving the codes' correlation sidelobes, we can enhance navigation
performance while minimizing the required spreading code lengths. In the case
of low earth orbit (LEO) satellite navigation, shorter code lengths (on the
order of a hundred) are preferred due to their ability to achieve fast signal
acquisition. Additionally, the relatively high signal-to-noise ratio (SNR) in
LEO systems reduces the need for longer spreading codes to mitigate
inter-channel interference. In this work, we propose a two-stage block
coordinate descent (BCD) method which optimizes the codes' correlation
properties while enforcing the autocorrelation sidelobe zero (ACZ) property. In
each iteration of the BCD method, we solve a mixed-integer convex program
(MICP) over a block of 25 binary variables. Our method is applicable to
spreading code families of arbitrary sizes and lengths, and we demonstrate its
effectiveness for a problem with 66 length-127 codes and a problem with 130
length-257 codes.
