Abstract
The Global Positioning System (GPS) IIIF satellite series, with launches planned to begin in 2027, will mark the first generation of GPS satellites to feature a fully reprogrammable signal payload. This upcoming signal capability allows for the GPS signal to be modified and uploaded to satellites in orbit, providing new opportunities to re-explore the design of the GPS signal structure. Currently, all GPS signals use algorithmically generable codes (including Gold codes, short-cycled m-sequences, and Weil codes), which are binary sequences that can be generated from a smaller number of bits via an algorithmic procedure. However, there are several advantages to exploring the space of memory codes that cannot be algorithmically generated, but must be defined and stored in memory as complete sequences. These advantages include increased flexibility in the choice of code length and user-defined objective, as well as the ability to tailor the design to a particular code family size for improved overall performance.
In this work, we explore memory code design using a novel, computationally efficient strategy called the cross-entropy method (CEM). This approach models a probabilistic search distribution over the exponentially large and discrete binary code design space, from which it samples candidate code families, and then improves its search distribution representation by finding a maximum likelihood distribution. The CEM can be applied to any user-defined code objective function, without requiring any functional properties (e.g., convexity, differentiability). We demonstrate the ability to design low-correlation codes for family sizes of up to 50 codes and lengths of up to 10223 chips – the first work to explore navigation memory code design for these lengths, to the best of the authors’ knowledge. We further demonstrate the ability to design codes with lower mean-squared auto- and cross-correlations compared with well-chosen families of equal-length Gold and Weil codes.
1 INTRODUCTION
In 2023, the sixth Global Positioning System (GPS) III satellite was launched from Cape Canaveral Space Force Station (Airforce Technology, 2023) and officially reached Operational Acceptance status (Saines, 2023), making it the newest addition to the next-generation navigation constellation. As part of a greater GPS modernization effort, GPS III provides users with new signals, including GPS L1C. Launches of the GPS Block III satellites are expected to continue through 2026 (Inside GNSS, 2023b), with the follow-on GPS IIIF series beginning in 2027 (Clark, 2025) as the first to feature a fully reprogrammable signal payload (Inside GNSS, 2023a), enabling new signals to be uploaded and rebroadcast from orbit. Additionally, in August 2025, the Air Force Research Lab (AFRL) successfully launched the third Navigation Technology Satellite (NTS-3), an experimental satellite to test new technologies for future generations of GPS (AFRL Public Affairs, 2025). NTS-3 will test new navigation signals as well as the fully reprogrammable signal generator to be included on the GPS IIIF satellites (AFRL, 2024; Cozzens, 2022).
With the third-generation GPS constellation underway, we are entering a new, modern era of GPS navigation, with renewed interest and novel opportunities to rethink its signal design. Indeed, NTS-3 is the first experimental GPS satellite in nearly 50 years, since the initial design phase of the GPS constellation in the 1970s. With upcoming efforts to incorporate a reprogrammable signal payload as well as to test and explore new signals for the future generation of GPS, we correspondingly seek to re-examine our approach to designing the GPS spreading codes.
1.1 Algorithmically Generable Spreading Codes Versus Memory Codes
Currently, all civilian GPS signals use algorithmically generable spreading codes, which can be generated from a smaller number of bits using an algorithmic procedure. In particular, the legacy GPS L1 coarse acquisition (C/A) signal uses Gold codes (Gold, 1967), which can be generated from two ten-bit linear feedback shift registers (LFSRs) (MilComm & PNT Directorate, 2022a). The GPS L2C (MilComm & PNT Directorate, 2022a) and L5 (MilComm & PNT Directorate, 2022b) signals use short-cycled maximal-length LFSR sequences (or m-sequences) (MacWilliams & Sloane, 1976), and the GPS L1C signal uses Weil codes, which are generated from Legendre sequences, along with a 7-bit pad (Rushanan, 2006, 2007). Using algorithmically generable codes was indeed an important design consideration during the original development of GPS, owing to limited memory constraints for receiver hardware. However, today’s receivers are capable of storing complete families of spreading code sequences; these code families, which must be directly stored in memory, are referred to as memory codes. Indeed, memory codes have also been developed and are currently used for the Galileo constellation, as part of the E1 and E6 signals (European Union, 2019, 2021).
Memory codes have several key advantages over their algorithmically generable counterparts. In particular, memory codes:
Encompass a greater design space for GPS spreading codes. Memory codes are not restricted by the constraint of being generable via an algorithmic formulation. As a result, by exploring the complete space of memory codes, we have an opportunity to find better-performing codes.
Are not limited to specific code lengths. Algorithmicially generable sequences frequently used for global navigation satellite systems (GNSSs) are limited to specific code lengths, and altering the sequence length either requires a truncation (as with the short-cycled m-sequences for L2C and L5) or an extension (as with the 7-bit pad extension of the Weil sequences for L1C codes). Oftentimes, in satellite navigation applications, there is a need for specific lengths of spreading codes that do not conform to lengths that are possible with algorithmically generable sequences. In particular, maximum-length sequences, which are used in GPS L2C and L5, can only be generated for lengths of 2n – 1 for positive integer n. Meanwhile, Gold codes, which are used in GPS L1 C/A, can only be generated for lengths of 2n – 1, where n is not divisible by 4 (Gold, 1967), and Weil codes, which are used in GPS L1C, can only be generated for prime code lengths (Rushanan, 2006). Indeed, prior works have demonstrated that even single-bit truncation or extension of these codes, applied to achieve desired code lengths for satellite navigation signal design, leads to a degradation of their correlation properties (Wallner et al., 2007).
Can be tailor-designed for a particular code family size. For a particular sequence length, algorithmically generable code families are defined for a specific code family size. For example, length-L Gold codes are defined for a family of K = L + 2 codes; thus, the Gold code family used for GPS L1 C/A actually has 1025 sequences, even though the interface specification only requires 63 codes (MilComm & PNT Directorate, 2022a). However, when guaranteeing correlation performance properties, we observe both in theory and in practice that we can achieve better performance when considering only the required number of codes. Theoretical lower bounds on the peak correlation sidelobe levels (Welch, 1974) and squared correlation levels (Ganapathy et al., 2011) are larger for larger code families, corresponding to worse correlation performance. Additionally, in practice, we also observe through this work and our prior works (Mina & Gao, 2020, 2022) that optimization for a smaller family size leads to better mean-squared correlation performance. Thus, tailoring the code design to only the desired number of spreading codes would likely lead to performance improvements and is a key advantage of exploring memory code design.
Allow for any user-defined objective. Finally, the memory code space allows designers to optimize GNSS spreading codes for different user-defined optimization objectives, such as those defined by Soualle et al. (2005) and Winkel (2011), for which algorithmically generable code families are not optimal. These spreading code objectives include squared correlation sidelobes above a correlation threshold, such as the Welch bound (Welch, 1974), as well as, more simply, the sum of squared correlation sidelobes (Winkel, 2011). Using higher powers of correlations has been suggested to weigh higher correlation values more heavily in the overall cost function (Winkel, 2011).
1.2 Related Prior Works
Prior works in code division multiple access (CDMA) communications and multi-input multi-output radar have examined the design of memory codes using block coordinate descent (BCD) techniques (Alaee-Kerahroodi et al., 2019; Lin & Li, 2020; Yang et al., 2023), which iteratively optimize over subsets of binary values for the code family, while holding the other variables fixed. Different strategies exist for shifting the BCD optimization window over the complete set of design variables (chips in the complete code family), including iteratively sliding the local window across one code at a time before continuing to the next code in the family (Alaee-Kerahroodi et al., 2019) or applying randomized subset selection strategies (Yang et al., 2023). This approach has been shown to be promising over the demonstrated family sizes for these applications, which is typically less than 8; however, for satellite navigation applications, we require on the order of approximately 50 spreading codes or more (European Union, 2019, 2021).
Memory code design has also been explored for the Galileo constellation. In particular, the Galileo E1 signal uses optimized length-4096 memory codes, whereas the E6 signal uses length-5115 codes, with a total of 50 data and pilot code pairs. Genetic algorithms (GAs) were first proposed by Wallner et al. (2007) for designing the Galileo memory codes. Winkel (2011) also demonstrated the design of memory codes for 20 codes of length-1023. In our prior work, we explored using a multi-objective GA (Mina & Gao, 2019) as well as a natural evolution strategy (NES) for designing navigation spreading codes (Mina & Gao, 2020, 2022). With the NES, we were able to generate low-correlation code families of length-1023 and length-1031 for up to 31 codes (Mina & Gao, 2022).
While the original GPS spreading code design for the legacy L1 C/A has a length of 1023 chips, the most recent GPS spreading codes designed are ten times longer, at 10230 chips. In particular, the current GPS L1C codes use length-10223 Weil codes with a 7-bit pad, whereas GPS L5 uses length-10230 short-cycled m-sequences (MilComm & PNT Directorate, 2022c), both of which are algorithmically generable codes, either truncated or extended to satisfy the desired code length of 10230 chips. However, to the best of the authors’ knowledge, no prior work has explored designing GNSS memory codes of lengths above 5115 chips (European Union, 2019). As a result, in this work, we aim to explicitly explore the design of longer memory code families of over 10000 chips, for up to 50 codes for satellite navigation applications. Indeed, the code design problem becomes exponentially more difficult as we increase the spreading code length L, owing to corresponding exponential growth in the design space (i.e., for a family size of K, we have 2KL possible memory codes). Note that a complete L5 code set would require 64 code pairs to support both in-phase and quadrature channels for 32 operational satellites and up to 126 total codes to support the 63 code sets reserved in IS 705 (MilComm & PNT Directorate, 2022b); the 50-code design considered here serves as a proof of concept to demonstrate the scalability and performance of the proposed approach.
For discrete optimization problems, metaheuristics are also frequently used, which define a strategy for guiding a heuristic algorithm for design optimization (Yang, 2011). GAs (Holland, 1992), for example, are a class of population-based metaheuristics frequently used for discrete optimization problems. GAs maintain a population of candidate solutions and iteratively select high-performing solutions, using crossover and mutation operations to update the population. Another class of metaheuristics includes stochastic methods, such as the NES (Wierstra et al., 2008, 2014) and CEM (Botev et al., 2013; Rubinstein, 1999). Both the NES and CEM optimize a probability distribution over the design space, also called a proposal distribution. From this proposal distribution, these algorithms sample and evaluate candidate solutions (e.g., binary code families) and iteratively shift the proposal distribution toward regions of better performance in the greater design space.
In addition to modeling a proposal distribution for optimization, the NES differs from GAs in that it estimates a gradient to guide the discrete optimization direction. Correspondingly, in our prior work, we observed better final performance from our NES implementation in comparison with a competitive GA implementation, which had the same number of optimization iterations, population size, and code objective as our NES algorithm (Mina & Gao, 2022). While the NES demonstrated a promising metahueristic for code design, we observed several challenges when scaling to larger code family spaces, including the required memory of the generative network. This disadvantage could be mitigated by applying a simpler distribution representation, such as by optimizing the distribution parameters directly, rather than utilizing a network representation of the parameters; however, careful modifications of the algorithm’s design would likely be necessary to prevent premature convergence and a corresponding degradation in performance.
Similar to the NES, the CEM optimizes a proposal distribution over the design space. However, unlike the NES, the CEM does not perform a gradient step to improve the proposal distribution; instead, the CEM directly finds a maximum likelihood distribution over the best-performing candidate points to update the proposal distribution at each iteration. To the best of the authors’ knowledge, the CEM has not been explored for designing navigation spreading codes. Furthermore, the CEM provides a surprisingly simple and efficient optimization strategy for binary sequence optimization, given the simple form of the maximum likelihood distribution solution for binary sequences, as discussed in more detail in Section 3. Additionally, we observe through our investigation in this paper that the computationally efficient, low-memory strategy based on the CEM demonstrates similar or improved optimization performance in comparison to our previous implementation of the NES when provided the same objective and population size, while requiring fewer optimization iterations.
1.3 Key Contributions
In this work, we design a new technique for devising navigation spreading codes, which performs optimization using the CEM. To the best of the authors’ knowledge, this work is the first to explore using the CEM for optimizing navigation spreading codes, as well as the first to design long navigation memory code families with lengths of up to 8191 and 10223 chips. Given that the current GPS constellation comprises 31 operational satellites, we examine the correlation performance for families of up to 50 codes. We examine the effect of the objective function on the code family’s correlation performance over a range of metrics, and we further validate the performance of the CEM in comparison to the best-performing families of equal-length Gold and Weil codes, from 10000 randomly sampled families of these codes. This work is based on our GNSS+ 2023 conference paper (Mina & Gao, 2023).
Our CEM-based code design framework:
efficiently designs low-correlation spreading codes for a user-defined objective function, as demonstrated for code lengths of up to 10223 chips and family sizes of up to 50 codes,
designs codes with lower squared auto- and cross-correlations than the best-performing Gold and Weil codes of equal length from 10000 randomly sampled families of these codes, and
demonstrates better squared correlation performance than the code design algorithms considered in our prior work based on the NES and a GA baseline (Mina & Gao, 2022), without the need for the network architecture of Mina and Gao (2022), while converging in fewer iterations.
2 PRELIMINARIES
In this section, we introduce the notation and definitions used throughout this paper.
2.1 Binary Codes
In this paper, we design a set of binary spreading codes, where each code is a binary sequence. The set of such binary sequences is also referred to as a family of codes. In the context of GPS and GNSSs, each satellite in the constellation is assigned one of the unique codes in the family, and this code overlays the satellite’s navigation signal.
In this work, we use ±1 binary notation, with each bit represented as either a +1 or a –1. The purpose of this notation is for ease of representing mathematical expressions for auto- and cross-correlation, as defined in Section 2.3. Let L be the length of each binary code, and let K be the size of the code family, or the number of codes in the set. We represent the complete space of binary code families as χ = {−1, +1}LK. Let the length-KL vector x ∊ χ represent a particular binary code family. We represent the i-th bit, or chip, in the complete code family as x[i] ∊ {−1, +1}. Additionally, we represent the k-th code in the family as x(k), and the i-th chip of this particular code is represented as x(k)[i].
2.2 Probability and Proposal Distributions
As discussed in more detail in Section 3, the CEM is a stochastic optimization method, which represents and optimizes a probability distribution over the design space, also called a proposal distribution. We represent the probability of a particular event E as ℙ{E}. Additionally 𝟙 {·} represents the indicator function that outputs a 1 if the inner argument is true and 0 if false.
We denote the proposal distribution over the design space as pθ(x), where x ∊ χ. The proposal distribution pθ(x) represents the focus of the search region of the optimization algorithm and is parameterized by the vector θ. During the optimization process, each iteration updates the parameter vector of the proposal distribution in order to shift the search region to better-performing codes in the design space χ. At a given iteration t, we denote the parameter vector at that iteration as θ(t) and the corresponding proposal distribution as pθ(t). More details about the proposal distribution representation specific to this work of designing binary spreading codes are provided in Section 3.1.
2.3 Auto- and Cross-Correlation
Given a code family x ∊ χ, we can examine the correlation between any two codes in the family. In particular, if we select code indices k, j ∊ {1, …, K} from the code family x, the periodic correlation between the corresponding respective code sequences x(k) and x(j) is defined as follows:
1
where δ ∊ {0, 1, …, L – 1} represents the relative delay between the two codes being correlated.
When k ≠ j, the correlation in Equation (1) is with respect to two different code sequences in the code family x and is often referred to as a periodic cross-correlation. When k = j, the correlation is between a particular code k and a δ-shifted version of itself, which is often referred to as a periodic auto-correlation. For simplicity, we often represent the auto-correlation with respect to code k, or Rk,k(δ), as simply Rk(δ).
When considering an auto-correlation with a non-zero relative delay (i.e., δ ≠ 0), we refer to these correlation values as auto-correlation sidelobes. Additionally, we refer to all cross-correlations for all delays δ as cross-correlation sidelobes. For CDMA applications, including GPS/GNSS applications, we seek to minimize the magnitude of both the auto- and cross-correlation sidelobes.
3 NAVIGATION SPREADING CODE DESIGN VIA THE CEM
The CEM is a stochastic optimization strategy that maintains a probability distribution representation over the design space, also called a proposal distribution, as described in Section 2.2. The CEM iteratively updates this distribution to explore the design space and find high-performing solutions (Kochenderfer & Wheeler, 2019; Rubinstein, 1999). For our application, this design space corresponds to the space of binary spreading code families χ, with a size of |χ| = 2LK. We first provide a high-level description of how the CEM works and then provide details for how we apply the algorithm to binary spreading code design. Figure 1 depicts a block diagram providing a high-level outline of the processes followed in each iteration of the CEM, while Figure 2 illustrates an iteration of this stochastic optimization algorithm.
Block diagram of the iterative process followed by the CEM in the context of spreading code design optimization
Illustration of the CEM and its iterative optimization process in the context of spreading code design
After the proposal distribution has been initialized, at each iteration t, the CEM samples candidate code families from the current proposal pθ(t) and evaluates each sample according to the objective function f we seek to minimize. Then, the CEM determines the best-performing candidates (or elite set) and updates the proposal distribution pθ(t+1) by re-fitting to this subset of candidate codes. This iterative process continues until the proposal distribution converges to a single candidate code family.
At the start of the CEM, the first step is to initialize the proposal distribution pθ(o). In the context of code family design, this initialization can be represented as a purely random distribution over the code space, with +1 and −1 occurring with equal probability, as discussed in more depth in Section 3.2. Then, at each iteration t, the CEM samples candidate solutions from the current proposal distribution pθ(t) with parameter θ(t), evaluating each candidate based on the user-defined objective function f, which we seek to minimize. In the context of spreading code design, f evaluates the correlation sidelobe levels of the candidates, which the CEM seeks to minimize.
The top-performing candidates (also called the elite set) are then used to re-fit the proposal distribution for the next iteration t + 1, and the proposal distribution is updated as pθ(t) → pθ(t+1). This update allows the algorithm to redirect its search to higher-performing regions of the design space in the subsequent iteration. The CEM repeats this process until convergence, which occurs either when the maximum number of iterations is reached or when the proposal distribution becomes degenerate. In particular, a proposal distribution is considered degenerate when all of its probability mass collapses upon a single candidate code family x, i.e., Ǝx ∊ χ : pθ(x) = 1.
3.1 Proposal Distribution Representation
A natural representation for the proposal distribution pθ is a multivariate Bernoulli distribution, with the parameter vector θ (Botev et al., 2013). In particular, each chip in the code set x[i] is represented as a Bernoulli random variable, with parameter θ[i] ∊ [0,1] representing its probability of being sampled as a 1. Mathematically, the binary bit x[i] ~ Bern (θ[i]), where we have the following:
2
For a particular code family sample xj, the complete proposal distribution can be represented as a vector of independently sampled Bernoulli random variables:
3
Correspondingly, for a binary family of K length-L codes, the code family has a total of KL chips, and we can thus represent the proposal distribution parameter vector as a length-(KL) vector of individual probabilities, i.e., θ ∊ [0,1]KL.
3.2 Initializing and Sampling the Proposal Distribution
When setting up the CEM, we initialize the proposal distribution as follows:
4
where 1d represents a length-d vector of ones. At each iteration t, we sample a population of N code families from the current proposal distribution:
5
where each xj is independently and identically distributed ∀j.
3.3 Evaluating Sampled Candidates
After we initialize the proposal distribution, at each iteration, the CEM evaluates the performance of each sample in the population X(t) according to a user-defined objective f. In this work, we examine different objectives to evaluate the performance of a particular candidate spreading code family. The choice of code objective affects the weight assigned to different correlation levels in the code family, thereby affecting which correlation properties are preferred in the design optimization process.
In this work, we design families of binary spreading code to minimize the following overall objective:
6
where fauto and fcross represent the components of the objective evaluating only auto- and cross-correlation performance, respectively. Given that both the auto- and cross-correlation performances are simultaneously important for satellite navigation, this objective formulation balances between both correlation objectives simultaneously, without compromising one type of correlation performance for the other.
For the individual auto-correlation and cross-correlation performances, similar to code objectives in prior works (Raei et al., 2022; Winkel, 2011), we consider the mean auto- and cross-correlation sidelobes to the power p (MMAC-p):
7
8
where K represents the size of the code family, L represents the length of each sequence, Rk represents the auto-correlation of the k-th code in the family, and Rk,j represents the cross-correlation of codes k and j. The summation of the auto-correlation terms from relative delays starts at δ = 1, rather than δ = 0; this is done to capture the auto-correlation sidelobe levels in the cost function, given that all binary codes will have a normalized auto-correlation of 1 when perfectly self-aligned (corresponding to δ = 0). The external 1/p power allows for the final correlation value to be less than L and allows for a more meaningful comparison to code correlation performance for different power levels p, as shown in the results in Section 4 and Table 1. While the 1/p power helps with the interpretation of the final correlation values, it is worth noting that the objective in Equation (6) represents an order-isomorphic transformation without the application of the 1/p power. Thus, the CEM-based optimization can be carried out without this power transformation while still achieving the same correlation performance for the final, optimized set of codes.
Correlation Performance Metrics for a Family of 3 Length-1023 Codes When the CEM is Applied for Various MMAC-p Objectives
The correlation histograms for these results are also shown in Figure 3. In each column, the lowest objective correlation value is indicated in bold. We observe that the CEM-optimized codes with the MMAC-2 objective have the best (lowest) mean absolute and mean-squared correlation values, whereas the codes optimized with MMAC-8 achieved lower higher-power and maximum correlation levels. All CEM-optimized code families outperformed random codes on all correlation objectives.
Correlation histograms for a spreading code family of 1023 chips and 3 codes, optimized with the MMAC-p objective for different power levels p
A corresponding table of correlation performance metrics for these results is also shown in Table 1. The CEM was run for a population size of N = 200, an elite rate of к = 0.5, and a smoothing parameter of α = 0.5. We observe that the higher-p correlation objective results in a greater penalization of larger correlation values, along with a reduced frequency of very low correlation levels as compared with the squared correlation objective (p = 2).
The different choices of power level p in Equations (7) and (8) reflect the weight given to different sizes of absolute correlations, with larger p values assigning greater weights to larger correlation levels. In the experimental results in Section 4, we explore the effect of different choices of p on the shape of the correlation histogram after optimization with the CEM.
Additional desired metrics could be incorporated within the code design objective function, including odd correlation, relative Doppler frequency correlation metrics, and intersystem interference with other GNSS signals (Wallner et al., 2006). These additional metrics could be incorporated as new arguments within the maximization function of Equation (6) with relative scaling factors if desired, or these objectives could be combined via a weighted summation as reported by Soualle et al. (2005). Our prior work examined code design in the presence of relative Doppler effects (Yang et al., 2024). In the present work, we consider code design using the objective in Equation (6), under zero-Doppler conditions. The reason for this shift is two-fold. First, the primary focus of this work is to examine the performance of the CEM, making a more straightforward choice of code design objective a good starting point. Second, from our own empirical observations and those of other prior works, it has been found that for codes with a Gaussian-like histogram of correlation values (as observed with memory codes, but not Gold codes), the peak correlation values of the histogram tend, on average, to shift toward zero under non-zero Doppler conditions (Winkel, 2011).
3.4 Finding the Elite Set
At this point, we have evaluated each candidate code according to the user-defined objective f, discussed in Section 3.3. Now, among all of the evaluated candidates, we sort the objective values from smallest to largest:
9
where better performance is indicated by a lower objective value.
For an elite ratio κ, we determine the top Nelite = [κN] candidates in the population, or the elite set. More formally, we can define the elite set with respect to a critical performance level of , where the elite set consists of the set of all candidates in the population with equivalent or better performance than this critical level:
10
3.5 Updating the Proposal Distribution via Maximum Likelihood Estimation
Once the elite set has been found, the CEM updates the proposal distribution by evaluating the maximum likelihood distribution over the elite set, which corresponds to solving the following program:
11
The classical algorithm for the CEM directly uses this maximum likelihood solution to update the proposal distribution in the next iteration, i.e., . In this work, we generalize this update step to incorporate smoothing as discussed in Section 3.6.
Solving the maximum likelihood estimate for the proposal distribution parameter in Equation (11) may not always be possible analytically. However, for the rep-resentation of the proposal distribution specified in Section 3.1, as a multivariate Bernoulli distribution with independent variables, the maximum likelihood program in Equation (11) can be found both analytically and in a computationally efficient manner, by simply finding the mean vector among the elite set:
12
Note that the denominator will generally be equivalent to Nelite, unless the critical performance level γ(t) is shared by multiple candidate solutions in the population. For continuous objective values, however, this case is rare unless the algorithm has nearly converged owing to the degeneracy of the proposal distribution. As a result, in this work, we take the top Nelite candidate solutions after sorting the population by objective, for simplicity in implementation, thus maintaining a consistent elite set size of Nelite.
The population size N and elite ratio к are chosen by the algorithm designer. A larger population allows for more exploration of the design space at each iteration, but corresponds to more computations per iteration. The elite ratio к ∊ (0,1) represents a balance between exploration and exploitation for the algorithm. Because a larger elite ratio considers more high-performing candidates when fitting the proposal distribution, this case generally results in greater variance in the updated proposal distribution, thereby inducing greater exploration in the next iteration. Similarly, because a smaller elite ratio fits the updated proposal distribution to a fewer number of candidates, this case induces the CEM to narrow its search more quickly and to rely more heavily on information obtained from previous iterations. Generally, increasing the elite ratio results in increased exploration and thus better final performance on the user-defined objective, although at the cost of a greater number of algorithm iterations.
3.6 Incorporating Smoothing in the Proposal Distribution Update
Smoothing can be incorporated within the CEM (Botev et al., 2013) to improve the final optimization solution and avoid premature convergence. With smoothing, the proposal distribution parameter θ(t) is not directly updated to be the maximum likelihood solution as in Equation (11); rather, a convex weighting is applied between the current distribution parameter and the maximum likelihood solution:
13
where denotes the maximum likelihood estimate as in Equation (11) and α ∊ (0, 1] denotes the smoothing parameter. Generally, a smaller smoothing parameter α reduces the algorithm’s convergence rate owing to smaller updates of the proposal distribution parameter vector at each iteration.
Prior research has examined the impact of various smoothing parameter selections on CEM convergence properties for discrete binary optimization (Costa et al., 2007; Hu & Hu, 2009). In particular, Costa et al. (2007) derived constant and iteration-dependent definitions for the smoothing parameter that ensure that the CEM will find the optimal solution with high probability. However, despite these theoretically guaranteed convergence results, the resulting significantly slower convergence oftentimes renders these smoothing parameter definitions impractical for large-scale combinatorial optimization problems; thus, for the navigation code design problem, we focus on selecting a constant smoothing parameter.
Several multi-objective optimization strategies also exist to search for Pareto-optimal solutions across multiple objectives (Deb, 2011; Deb et al., 2002). However, upon examining these strategies in our prior work (Mina & Gao, 2019), when scaling the problem size for navigation spreading code applications, we experienced challenges in maintaining a broad local Pareto-optimal front. In particular, maintaining an accurate representation of the Pareto-optimal subspace, which encompasses different levels of non-dominated, joint auto- and cross-correlation performance via a spread of candidate solutions, was observed to be increasingly challenging as the problem size expanded to a higher-dimensional space for navigation code design, with at least 1000 chips in length and family sizes of at least 30 codes. Performing large-scale multi-objective optimization is currently an area of active research (Qin et al., 2021; Tian et al., 2020, 2021), and indeed, we believe that a multi-objective navigation code design strategy would be a fruitful avenue for future work.
4 EXPERIMENTAL RESULTS
In this section, we examine the performance of the CEM algorithm with smoothing, as discussed in Section 3.6, for different code lengths and family sizes. We first explore the effect of different correlation power levels p within the code objective on the overall correlation histogram, as discussed in Section 4.1. Next, in Section 4.2, we compare the performance of our algorithm with that of NES and GA results, which were examined in our prior work for code lengths of up to 1031 chips (Mina & Gao, 2022). Finally, for the squared correlation objective (with p = 2), we extend the CEM optimization to code lengths of up to 8191 chips, to compare against long Gold codes, and 10223 chips, to compare against the original Weil code definitions, without the code extensions that disrupt the characteristic correlation properties of the Weil codes. For these longer memory codes, given that there exist 31 operational GPS satellites today, we examine code families for sizes of up to 50 codes.
4.1 Spreading Code Correlation Histogram for Different Objectives
Figure 3 depicts auto- and cross-correlation histograms for CEM-optimized code families, with different powers p of the objective function defined in Section 3.3. In particular, each bin of the histogram corresponds to an absolute correlation value, and the bin height corresponds to the number of occurrences of that correlation value in the set of all possible correlation sidelobes within the code family (for all δ, k, and j in the auto- and cross-correlations in Equations (7) and (8)). We additionally compare the histogram for the CEM-optimized codes with that of a randomly generated code family, with each chip equally likely to be assigned either +1 or −1 in the family. The purpose of this comparison is to demonstrate how the CEM shapes the correlation histogram of the final, optimized code family from the initialized set of codes, via the initial proposal distribution defined in Equation (4). For this run of the CEM, we used a population size, elite rate, and smoothing parameter of N = 200, к = 0.5 (corresponding to Nelite = 100), and α = 0.5, respectively. The same code family size could be run for a larger population size and smaller smoothing parameter, which generally results in better final performance levels.
In Figure 3, we observe that the higher powers of p result in greater penalization of the larger correlation objectives and a corresponding reduction in the maximum correlation level. With different values of p, we did not observe significant changes in the number of iterations required for CEM convergence or in the total computation time. We notice from Figure 3 that, in order to compensate for the reduced number of larger correlations, the optimization for higher powers of p = 4 and p = 8 results in a greater fraction of medium-sized correlation values, in comparison to the optimization with p = 2 and with random codes.
For these same results, Table 1 presents the corresponding correlation metrics. For each power level p, the values in the left auto-correlation columns are evaluated as in Equation (7) whereas the values in the right cross-correlation column are evaluated as in Equation (8). Table 1 further indicates that when the CEM is applied with the MMAC objective for larger values of p, we observe smaller maximum correlation values; meanwhile, when we optimize with the MMAC-2 objective, we observe smaller mean absolute and squared correlation levels. Interestingly, the codes optimized with the MMAC-4 objective had a smaller mean eighth power cross-correlation in comparison with the MMAC-8 objective; however, we also observe that the overall MMAC-8 objective performance (maximum between the mean auto- and cross-correlation values to the eighth power as in Equation (6)) for the MMAC-8-optimized codes is better, with a lower value of 40.48.
Indeed, we observe in both Figure 3 and Table 1 that the choice of power level p reflects a balance between the average correlation performance and the worst-case correlation performance. Table 1 also demonstrates that all of the CEM-optimized code families outperform random codes on all correlation objectives.
4.2 Comparison Against the NES and GA
In our prior work, we performed code optimization using the NES as well as a GA baseline under the MMAC-2 objective. We examined the performance for a range of code families, including those with lengths of up to 1031 bits and family sizes of 3 to 31 codes (Mina & Gao, 2022). For these algorithms, we had a population size of 100 and allowed both algorithms to run for 10000 iterations. The maximization objective specified for the NES and GA in our prior work is equivalent to a squared and normalized version of the objective specified in Equation (6) with p = 2. As a result, given that squaring and normalization operations are order-preserving for positive values, the optimization objective in our prior work is an order-isomorphic transformation of the MMAC-2 objective and is thus equivalent to performing optimization with respect to the MMAC-2 objective. Thus, for simplicity, we present the results in terms of the MMAC objective (with p = 2), used in the remainder of our experimental results.
In Figure 4, we compare the MMAC-2 performance of the CEM with respect to the NES and GA. We further indicate the average squared correlation level for random codes, i.e., . For the CEM, we utilized an elite rate of к = 0.5 and a smoothing parameter of α = 0.5, while the results for the NES and GA optimization results were obtained from our prior work (Mina & Gao, 2022). All three optimization strategies were provided the same population size of 100 code families. The primary computational cost for all three optimization strategies arises from evaluating the auto- and cross-correlations of each candidate. As a result, by using the same population size, each iteration of the GA, NES, and CEM requires approximately the same computation time.
Comparison of the CEM with the NES and a GA baseline, from Mina and Gao (2022) (a) length-1023 (b) length-1031
The NES and GA were allowed to run for 10000 iterations, whereas the CEM converged in fewer than 1000 iterations. For both code lengths, we observe that the NES demonstrates a significant performance improvement in comparison to the GA, with lower mean-squared correlation values. However, for families of 10 codes and larger, we observe that the CEM implementation consistently obtains better performance than the NES, despite having fewer optimization iterations.
While the NES and GA were allowed to run for 10000 iterations, we observed that our CEM converged in significantly fewer iterations, with fewer than 1000 iterations. For both the length-1023 and length-1031 codes, in Figure 4, we observe that the NES demonstrates a significant performance improvement with respect to random codes, especially in comparison to the GA; however, for families of 10 codes and larger, we observe that the CEM consistently obtains a lower MMAC-2 objective than the NES, without the need for the network architecture of Mina and Gao (2022) and with fewer optimization iterations. While we did not stress-test the choice of the hyperparameters к, α, greater performance improvements could likely be achieved by the CEM by reducing the smoothing parameter and potentially increasing the elite rate as well.
4.3 Comparison Against Gold and Weil Codes
With the CEM, we further optimized binary code families on the MMAC-2 objective for code lengths ranging from 1023 chips to longer codes of 8191 and 10223 chips. For each code length, we designed code family sizes of 3 to 50 codes, comparing against well-chosen families of Gold and Weil codes of the same length. With the CEM, we chose a smaller population size of N = 100, an elite rate of к = 0.5, and a smoothing parameter of α = 0.5; however, better performance can be expected with a larger population size and/or a smaller smoothing parameter (e.g., N = 1000 and/or α = 0.1).
Based on the definitions for Gold (Gold, 1967; Misra & Enge, 2012) and Weil (Rushanan, 2006) code families, the complete set of Gold codes corresponds to a total of K = L + 2, whereas the complete set of Weil codes corresponds to a total of K = (L − 1)/2 codes. To provide a concrete example, these sets correspond to a total of 8193 Gold codes for length L = 8191 and a total of 5111 Weil codes for length L = 10223. Thus, to select code families of size K = 3 to 50 codes, we sampled 10000 random families of Gold and Weil codes at these lengths, with each sampled family consisting of K codes. Then, we selected the best-performing code families to compare against in this section. We further compared the performance of the CEM with the original versions of the Gold and Weil codes at their original lengths, without any truncation or extension, which disturbs their desirable correlation properties.
Figures 5 and 6 demonstrate the performance of the CEM codes optimized on the MMAC-2 objective function, while comparing against the best-performing equal-length Gold and Weil codes from 10000 randomly sampled families. In particular, Figure 5 compares the CEM with length-1023 and length-2047 Gold codes as well as length-1031 and length-2053 Weil codes, while Figure 6 compares the CEM with length-8191 Gold and Weil codes as well as length-10223 Weil codes.
Comparison of the CEM (N = 100, к = 0.5, α = 0.5) with the best-performing Gold and Weil codes from 10000 random sampled families for lengths of 1023 to 2053 bits (a) length-1023 (b) length-1031 (c) length-2047 (d) length-2053
We note that the CEM finds better-performing codes on the MMAC-2 objective for all code lengths and family sizes, in comparison to the well-chosen families of Gold and Weil codes. Furthermore, the CEM-optimized codes simultaneously maintain both lower mean-squared auto- and cross-correlation sidelobes than the Gold and Weil codes for all code lengths and family sizes.
Comparison of the CEM (N = 100, к = 0.5, α = 0.5) with the best-performing Gold and Weil codes from 10000 random sampled families for long memory codes of 8191 and 10223 bits (a) length-8191 (b) length-10223
While the Gold and Weil codes maintain nearly consistent auto- and cross-correlation performance, because the CEM is tailored to the particular chosen code family size, the algorithm is able to find better-performing solutions for smaller subsets of code families. We observe that the CEM-optimized codes obtain better squared auto- and cross-correlation performance in comparison to all families of Gold and Weil codes.
Interestingly, in both Figures 5 and 6, we observe that the Weil codes maintain a consistent mean-squared auto-correlation performance for all tested code family sizes. In particular, the length-1031 Weil codes in Figure 5(b) have a distinctively low mean-squared auto-correlation objective; however, in this instance, the corresponding cross-correlation objective is significantly greater, leading to a larger overall MMAC-2 objective. We further notice that the CEM balances the auto- and cross-correlation objectives in order to perform well on the overall maximization objective, by finding codes that have nearly identical mean- squared auto- and cross-correlation performance. This behavior of balancing between the two correlation objectives was similarly observed in our prior work (Mina & Gao, 2022). Overall, in both Figures 5 and 6, we observe that the CEM consistently finds code families that outperform the best-performing Gold and Weil codes on the MMAC-2 objective, for all code lengths and family sizes. Furthermore, for all Gold codes and for all Weil codes of length-2053 or longer, the CEM-optimized codes simultaneously demonstrate lower mean-squared sidelobes for both the auto- and cross-correlation objectives.
The Gold and Weil algorithmic codes are defined for a large number of codes, with a total of 8193 codes for length-8191 Gold codes and a total of 5111 codes for length-10223 Weil codes. However, when tailoring the design to a smaller family size of ~ 50 codes for satellite navigation, we expect to see an improvement in the correlation performance. Indeed, we observe in Figure 6 that the Gold and Weil codes maintain nearly consistent auto- and cross-correlation performance for the different family sizes. However, because the CEM is tailored to the particular chosen code family size, the algorithm is able to find better performing solutions for smaller subsets of code families, and we observe improved squared auto- and cross-correlation performance in comparison to the best Gold and Weil code families.
5 CONCLUSION
In this work, we explored a new strategy for optimizing navigation spreading codes through the CEM. With the CEM, we designed codes with lengths of up to 8191 and 10223 chips and for family sizes of up to 50 codes. We demonstrated the ability of the CEM to design codes with lower mean-squared auto- and cross-correlations compared with the best-performing sets of Gold and Weil codes from 10000 randomly sampled families. We also demonstrated better mean-squared correlation performance over algorithms for the largest sets of the longest code families considered in our prior work (e.g., length-1023 and length-1031 codes), based on the NES, while performing fewer total optimization iterations.
HOW TO CITE THIS ARTICLE:
Mina, T., Yang, A., & Gao, G. (2026). Long GPS memory code design via the cross-entropy method. NAVIGATION, 73. https://doi.org/10.33012/navi.746
ACKNOWLEDGMENTS
This material is based upon work supported by the AFRL under grant number FA9453-20-1-0002. This material is additionally based upon work supported by a National Science Foundation (NSF) graduate research fellowship (grant number DGE-1656518). We would like to thank the AFRL and NSF for sponsoring this research.
This is an open access article under the terms of the Creative Commons Attribution License, which permits use, distribution and reproduction in any medium, provided the original work is properly cited.
REFERENCES
- ↵AFRL Public Affairs. (2024, September). AFRL to highlight tech at 2024 Air, Space and Cyber Conference. Air Force Research Laboratory (AFRL). https://afresearchlab.com/afrl-to-highlight-tech-to-achieve-decisive-advantage-in-an-age-of-growing-threats-at-2024-air-space-and-cyber-conference-2/
- ↵AFRL Public Affairs. (2025, August). AFRL’s NTS-3 vanguard set for launch aboard ULA Vulcan rocket. Air Force Research Laboratory (AFRL). https://www.afrl.af.mil/News/Article-Display/Article/4272257/afrls-nts-3-vanguard-set-for-launch-aboard-ula-vulcan-rocket/
- ↵Airforce Technology. (2023, January). USSF’s GPS III SV06 satellite prepares for launch from Florida. https://www.airforce-technology.com/news/ussfs-gpsiii-sv06-launch/
- ↵Alaee-Kerahroodi, M., Modarres-Hashemi, M., & Naghsh, M. M. (2019). Designing sets of binary sequences for MIMO radar systems. IEEE Transactions on Signal Processing, 67(13), 3347–3360. https://doi.org/10.1109/TSP.2019.2914878
- ↵Botev, Z. I., Kroese, D. P., Rubinstein, R. Y., & L’Ecuyer, P. (2013). The cross-entropy method for optimization. In Handbook of statistics, Elsevier, 35–59, Vol. 31. https://doi.org/10.1016/B978-0-444-53859-8.00003-5
- ↵Clark, S. (2025, April). A military satellite waiting to launch with ULA will now fly with SpaceX. https://arstechnica.com/space/2025/04/a-military-satellite-waiting-to-launch-with-ula-will-now-fly-with-spacex/
- ↵Costa, A., Jones, O. D., & Kroese, D. (2007). Convergence properties of the cross-entropy method for discrete optimization. Operations Research Letters, 35(5), 573–580. https://doi.org/10.1016/j.orl.2006.11.005
- ↵Cozzens, T. (2022, April). More than 100 experiments planned for NTS-3. GPS World. https://www.gpsworld.com/more-than-100-experiments-planned-for-nts-3/
- ↵Deb, K. (2011). Multi-objective optimisation using evolutionary algorithms: An introduction. In Multi-objective evolutionary optimisation for product design and manufacturing, 3–34. Springer. https://doi.org/10.1007/978-0-85729-652-81
- ↵Deb, K., Pratap, A., Agarwal, S., & Meyarivan, T. (2002). A fast and elitist multiobjective genetic algorithm: NSGA-II. IEEE Transactions on Evolutionary Computation, 6(2), 182–197. https://doi.org/10.1109/4235.996017
- ↵European Union. (2019, January). Galileo E6-B/C codes technical note (tech. rep.). European Union. https://www.gsc-europa.eu/sites/default/files/sites/all/files/E6BCSISTechnicalNote.pdf
- ↵European Union. (2021, January). European GNSS (Galileo) Open Service: Signal-in-space interface control document (tech.rep.). European Union. https://galileognss.eu/wp-content/uploads/2021/01/Galileo_0S_SIS_ICD_v2.0.pdf
- ↵Ganapathy, H., Pados, D. A., & Karystinos, G. N. (2011). New bounds and optimal binary signature sets - Part I: Periodic total squared correlation. IEEE Transactions on Communications, 59(4), 1123–1132. https://doi.org/10.1109/TC0MM.2011.020411.090404
- ↵Gold, R. (1967). Optimal binary sequences for spread spectrum multiplexing (corresp.) IEEE Transactions on Information Theory, 13(4), 619–621. https://doi.org/10.1109/TIT.1967.1054048
- ↵Holland, J. (1992). Adaptation in natural and artificial systems: An introductory analysis with applications to biology, control, and artificial intelligence. MIT Press. https://doi.org/10.7551/mitpress/1090.001.0001
- ↵Hu, J., & Hu, P. (2009). On the performance of the cross-entropy method. Proc. of the 2009 Winter Simulation Conference (WSC), 459–468. https://doi.org/10.1109/WSC.2009.5429357
- ↵Inside GNSS. (2023a, June). GPS III: The next big step in GPS modernization. https://insidegnss.com/gps-iii-the-next-big-step-in-gps-modernization/
- ↵Inside GNSS. (2023b, November). Final GPS III missions, first GPS IIIF satellites part of SSC’s latest launch assignments. https://insidegnss.com/final-gps-iii-missions-first-gps-iiif-satellites-part-of-sscs-latest-launch-assignments/
- ↵Lin, R., & Li, J. (2020). On binary sequence set design with applications to automotive radar. IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), 8639–8643. https://doi.org/10.1109/ICASSP40776.2020.9054143
- ↵MacWilliams, F. J., & Sloane, N. J. (1976). Pseudo-random sequences and arrays. Proc. of the IEEE, 64(12), 1715–1729. https://doi.org/10.1109/PROC.1976.10411
- ↵MilComm & PNT Directorate (2022a, August). NAVSTAR GPS space segment/navigation user segment interfaces (IS-GPS-200, Revision N) (tech. rep.). United States Space Force Space Systems Command (SSC). https://www.gps.gov/interface-control-documents-icds-interface-specifications-iss
- ↵MilComm & PNT Directorate (2022b, August). NAVSTAR GPS space segment/user segment interfaces (IS-GPS-705, Revision J) (tech. rep.). United States Space Force Space Systems Command (SSC). https://www.gps.gov/interface-control-documents-icds-interface-specifications-iss
- ↵MilComm & PNT Directorate (2022c, August). NAVSTAR GPS space segment/user segment L1C interfaces (IS-GPS-800, Revision J) (tech. rep.). United States Space Force Space Systems Command (SSC). https://www.gps.gov/interface-control-documents-icds-interface-specifications-iss
- ↵Mina, T. Y., & Gao, G. X. (2019, September). Devising high-performing random spreading code sequences using a multi-objective genetic algorithm. In Proc. of the 32nd International Technical Meeting of the Satellite Division of the Institute of Navigation (ION GNSS+ 2019), Miami, FL, 1076–1089. https://doi.org/10.33012/2019.17044
- ↵Mina, T. Y., & Gao, G. X. (2020, September). Designing low-correlation GPS spreading codes via a policy gradient reinforcement learning algorithm. In Proc. of the 33rd International Technical Meeting of the Satellite Division of the Institute of Navigation (ION GNSS+ 2020), 1968–1983. https://doi.org/10.33012/2020.17650
- ↵Mina, T. Y., & Gao, G. X. (2022). Designing low-correlation GPS spreading codes with a natural evolution strategy machine-learning algorithm. NAVIGATION, 69(1). https://doi.org/10.33012/navi.506
- ↵Mina, T. Y., & Gao, G. X. (2023, September). Designing long GPS memory codes using the cross entropy method. In Proc. of the 36th International Technical Meeting of the Satellite Division of the Institute of Navigation (ION GNSS+ 2023), Denver, CO, 1328–1340. https://doi.org/10.33012/2023.19260
- ↵Misra, P., & Enge, P. (2012). Global Positioning System: Signals, measurements & performance. Ganga-Jamuna Press.
- ↵Qin, S., Sun, C., Jin, Y., Tan, Y., & Fieldsend, J. (2021). Large-scale evolutionary multiobjective optimization assisted by directed sampling. IEEE Transactions on Evolutionary Computation, 25(4), 724–738. https://doi.org/10.1109/TEVC.2021.3063606
- ↵Raei, E., Alaee-Kerahroodi, M., Babu, P., & Bhavani Shankar, M. R. (2022, September). l p-norm minimization of auto and cross correlation sidelobes in MIMO radars. In 2022 23rd International Radar Symposium (IRS), 92–97. https://doi.org/10.23919/IRS54158.2022.9905040
- ↵Rubinstein, R. (1999). The cross-entropy method for combinatorial and continuous optimization. Methodology and Computing in Applied Probability, 1, 127–190. https://doi.org/10.1023/A:1010091220143
- ↵Rushanan, J. J. (2006, July). Weil sequences: A family of binary sequences with good correlation properties. In 2006 IEEE International Symposium on Information Theory, 1648–1652. https://doi.org/10.1109/ISIT.2006.261556
- ↵Rushanan, J. J. (2007). The spreading and overlay codes for the L1C signal. NAVIGATION, 54(1), 43–51. https://doi.org/10.1002/j.2161-4296.2007.tb00394.x
- ↵Saines, M. (2023, February). GPS III SV06 receives operational acceptance. GPS World. https://www.gpsworld.com/gps-iii-sv06-receives-operational-acceptance/
- ↵Soualle, F., Soellner, M., Wallner, S., Avila-Rodriguez, J.-A., Hein, G. W., Barnes, B., Pratt, T., Ries, L., Winkel, J., Lemenager, C., & Erhard, P. (2005, July). Spreading code selection criteria for the future GNSS Galileo. In Proc. of the European Navigation Conference GNSS, 19–22. https://www.researchgate.net/publication/266185051_Spreading_Code_Selection_Criteria_for_the_future_GNSS_Galileo
- ↵Tian, Y., Lu, C., Zhang, X., Tan, K. C., & Jin, Y. (2020). Solving large-scale multiobjective optimization problems with sparse optimal solutions via unsupervised neural networks. IEEE Transactions on Cybernetics, 51(6), 3115–3128. https://doi.org/10.1109/TCYB.2020.2979930
- ↵Tian, Y., Si, L., Zhang, X., Cheng, R., He, C., Tan, K. C., & Jin, Y. (2021). Evolutionary large-scale multi-objective optimization: A survey. ACM Computing Surveys (CSUR), 54(8), 1–34. https://doi.org/10.1145/3470971
- ↵Wallner, S., Avila-Rodriguez, J.-A., Hein, G. W., & Rushanan, J. J. (2007, September). Galileo E1 OS and GPS L1C pseudo random noise codes - Requirements, generation, optimization and comparison. In Proc. of the 20th International Technical Meeting of the Satellite Division of the Institute of Navigation (ION GNSS+ 2007), Fort Worth, TX, 25–28. https://www.ion.org/publications/abstract.cfm?articleID=7359
- ↵Wallner, S., Hein, G. W., & Avila-Rodriguez, J.-A. (2006). Interference computations between several GNSS systems. ESA Navitec, 11–13. https://www.researchgate.net/publication/229047833_Interference_computations_between_several_GNSS_systems
- ↵Welch, L.(1974).Lower bounds on the maximum cross correlation of signals (corresp.). IEEE Transactions on Information Theory, 20(3), 397-399. https://doi.org/10.1109/TIT.1974.1055219
- ↵Wierstra, D., Schaul, T., Glasmachers, T., Sun, Y., Peters, J., & Schmidhuber, J. (2014). Natural evolution strategies. The Journal of Machine Learning Research, 15(1), 949–980. https://www.jmlr.org/papers/volume15/wierstra14a/wierstra14a.pdf
- ↵Wierstra, D., Schaul, T., Peters, J., & Schmidhuber, J. (2008, June). Natural evolution strategies. In 2008 IEEE Congress on Evolutionary Computation (IEEE World Congress on Computational Intelligence), 3381–3387. https://doi.org/10.1109/CEC.2008.4631255
- ↵Winkel, J. O. (2011). Spreading codes for a satellite navigation system (Patent No.: US 8,035,555 B2). United States Patent and Trademark Office. https://patents.google.com/patent/US8035555B2/en
- ↵Yang, A., Mina, T., & Gao, G. (2023, June). Binary sequence set optimization for CDMA applications via mixed-integer quadratic programming. In IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), 1–5. https://doi.org/10.1109/ICASSP49357.2023.10095359
- ↵Yang, A., Mina, T., & Gao, G. (2024, January). Fast spreading code optimization under Doppler effects. In Proceedings of the 2024 International Technical Meeting of the Institute of Navigation, Long Beach, California, 732–743. https://doi.org/10.33012/2024.19513
- ↵Yang, X.-S. (2011). Metaheuristic optimization. Scholarpedia, 6(8), 11472. https://doi.org/10.4249/scholarpedia.11472











