Designing Low-Correlation GPS Spreading Codes with a Natural Evolution Strategy Machine Learning Algorithm
Tara Yasmin Mina and Grace Xingxin Gao, Stanford University
ABSTRACT With the birth of the next-generation GPS III constellation and the upcoming launch of the Navigation Technology Satellite-3 (NTS-3) testing platform to explore future technologies for GPS, we are indeed entering a new era of satellite navigation. Correspondingly, it is time to revisit the design methods of the GPS spreading code families. In this work, we develop a natural evolution strategy (NES) machine learning algorithm with a Gaussian proposal distribution which constructs high-quality families of spreading code sequences. We demonstrate the ability of our algorithm to achieve better mean-squared auto- and cross-correlation than well-chosen families of equal-length Gold codes and Weil codes, for sequences of up to length-1023 and length-1031 bits and family sizes of up to 31 codes. Furthermore, we compare our algorithm with an analogous genetic algorithm implementation assigned the same code evaluation metric. To the best of the authors’ knowledge, this is the first work to explore using a machine learning approach for designing navigation spreading code sequences.
I. INTRODUCTION On January 13th of 2020, the U.S. Air Force 2nd Space Operations Squadron (2 SOPS) issued a statement that the first GPS III satellite was marked healthy and available for use [1]. This announcement officially marked the birth of the next-generation GPS constellation. In addition to broadcasting the new L1C signal, the modernized constellation is distinguished by its reprogrammable payload, which allows it to evolve with new technologies and changing mission needs. Furthermore, with the upcoming launch of the Navigation Technology Satellite-3 (NTS-3) testing platform in 2022 [2], the United States Air Force (USAF) seeks to explore technologies which will help shape future GPS constellations [3]. NTS-3 will demonstrate the agility of the next-generation satellite-based navigation architecture and the ability to rapidly deploy new technological advancements and capabilities via the reprogrammable nature of the upcoming GPS system. Indeed, this is the third Navigation Technology Satellite (NTS) mission, with the previous two, NTS-1 and NTS-2, developed in the 1970s in order to validate technologies, including the rubidium and cesium atomic clocks [4], that were integrated into the first generation of GPS satellites, which were launched later that decade [5]. Illustrations of the three NTS testing platforms are shown in Fig. 1. arXiv:2101.02850v2 [eess.SP] 23 Apr 2021
Figure 1: Illustrations of the satellite testing platforms used in each of three Navigation Technology Satellite (NTS) initiatives. Illustration credit: Lt. Jacob Lutz, AFRL Space Vehicles Directorate. The NTS-3 program will further test several new technologies, including new signal designs for improved GPS security and interference mitigation [3]. According to a Request for Information announcement [6], the Air Force Research Lab (AFRL) has expressed interest in exploring modifications to all layers of the GPS signal in order to enhance PNT resiliency and performance. As we enter a new era of satellite navigation, we believe it is time to revisit the design methods of the GPS spreading code families. Correspondingly, in this work, we leverage recent advances in machine learning techniques to explore a new platform for learning high-quality spreading codes via a natural evolution strategy (NES) machine learning framework.
1. Advantages of Using Memory Codes for GPS Currently, all broadcast GPS signals use algorithmically generable spreading code sequences. The legacy L1 C/A signal uses Gold codes [7], while the modernized L1C signal, to be broadcast on the GPS III satellites, uses Weil codes [8] [9], along with a 7-bit extension in order to satisfy the desired spreading code length of 10,230 bits. Having algorithmically generable sequences was an important design consideration during the initial development phase of GPS in the 1970s due to memory storage constraints, as well as computation limitations which restricted the ability to search for better sequences. However, memory has become an increasingly inexpensive resource, allowing receivers to store complete families of spreading code sequences – though it should be acknowledged that currently, memory is still one of the main influencers of receiver chip size [10] [11]. Furthermore, over the past several decades, processing power has also significantly increased, which correspondingly has allowed the field of machine learning and related research advancements to flourish [12]. Lower bounds on the maximum periodic non-central auto- and cross-correlation value for spreading code families have been analytically derived in prior work [13], including the Welch bound [14], the Sarwate bound [15], and the Sidelnikov bound [16] [17]. The Welch bound is valid for any sequence with symbols of a fixed norm, including potentially complex spreading codes, while the Sidelnikov bound is a tighter lower bound for sequences with symbols that are roots-of-unity. As a result, for binary spreading codes, which fall into this roots-of-unity classification with symbols in the set {+1, −1}, the Sidelnikov bound provides a tighter lower bound than the Welch bound on the maximum periodic correlation performance. Gold code families are known to be asymptotically optimal with respect to the Sidelnikov bound, as the code length increases [18]. However, this optimality characteristic only applies for the specific sequence length and the complete set of code sequences provided by the Gold code family definition. For the length-1023 bit Gold codes, for example, this optimality characteristic only applies for the complete Gold family size, made up of over 1000 spreading codes in total [7]. Indeed, the lower bounds on the maximum correlation sidepeak increase with the size of the spreading code family [14] [15] [16] [17], suggesting that for the same sequence length, better performance could be found for a smaller code family size. Furthermore, there is debate as to whether the maximum correlation sidepeak is an ideal metric for spread spectrum system applications [19] [20] [21] [22]. Indeed, the multiple access interference (MAI) of a spread spectrum system, i.e. the signal noise caused by inter-signal interference within the shared channel, relates to the average correlation performance rather than the worst-case. Spreading codes which are not algorithmically generable are commonly called memory codes, since these codes must be stored in memory. Memory codes are not limited to specific lengths of code sequences or specific code family sizes. Indeed, designing a nonconforming spreading code length, as was done for the GPS L2C, L5, and L1C signals, would require truncation or extension of the algorithmically generable sequences, which disturb the coveted correlation properties of these codes [23]. As a result, by expanding the design space to the set of all binary sequences, we have a greater range of possible code families and a better opportunity to find a superior set of codes; although, the exponentially larger design space also greatly complicates the code design method.
2. Related Prior Work Several past works have designed memory codes using genetic algorithms (GAs), including for the E1 Open Service (OS) and the E6 Commercial Service (CS) signals of the Galileo satellite constellation [23] [24]. Genetic algorithms [25] are optimization algorithms which mimic the process of biological evolution. In particular, GAs maintain a population of design points, while selecting and recombining high-performing candidate solutions at each iteration. Genetic algorithms were utilized to design spreading codes for Galileo which exhibit the Autocorrelation Sidelobe Zero property, where the auto-correlation is 0 at a relative delay of ±1 chip [23]. GAs were also utilized to design spreading code families for improved indoor positioning applications [26]. Work has also been done to define several cost parameters for selecting high quality GNSS spreading codes [27] [28], including evaluating the mean squared auto- and cross-correlation components above the Welch bound [14]. Additionally, in our prior work, we designed a multi-objective GA platform for designing navigation spreading codes which improved on two objectives simultaneously: the mean absolute auto-correlation and cross-correlation of the code family [29]. Learning-based techniques have also been explored to design Error Correcting Codes (ECCs) [30], which are binary sequences that encode messages to improve the detection of communication transmission errors. In their work, Huang et al. [30] explore policy gradient and advantage actor critic methods to design ECCs by optimizing the code set performance with regards to the block error rate. 3. Objective and Key Contributions In this work, we seek to explore using a machine learning technique for the application of navigation spreading code design. This work is based on our recent ION GNSS+ 2020 conference paper [31], and to the best of our knowledge, this is the first work which explores using a machine learning approach to design navigation spreading codes. In particular, the key contributions of our work are the following: 1. We develop a natural evolution strategy (NES) machine learning algorithm which constructs high-quality families of spreading code sequences. 2. We utilize a Gaussian proposal distribution parameterized by a generative neural network (GNN) in order to model a search distribution over the design space of possible binary spreading code families. 3. We incorporate a baseline to reduce the variance of the NES gradient estimate and to improve the rate of learning. 4. We use a maximization evaluation metric to ensure the algorithm minimizes both the auto-correlation and cross- correlation characteristics of the spreading codes simultaneously. With our algorithm, we demonstrate the ability to achieve low auto- and cross-correlation side peaks within the family of spreading codes. We further compare the correlation performance of the learned spreading codes with those of well-chosen families of equal-length Gold codes and Weil codes as well as with an analogous genetic algorithm implementation assigned the same code evaluation metric as our proposed algorithm.
4. Paper organization The remainder of the paper is organized as follows: Section II. provides relevant technical background for the paper; Section III. describes our NES machine learning algorithm for the design of spreading code families; Section IV. presents our experimental validation setup and results; Section V. concludes this paper; and Section VI. provides additional background on artificial neural networks.
II. BACKGROUND 1. Binary Sequence Representation For mathematical convenience, we represent a binary sequence x¯(0,1) with elements of the set {0, 1} as a sequence x¯ with elements of the set {+1, −1} by using the following conversion ∀i :x ¯(0,1)(i) = 0, x¯(i) = +1 ∀i :x ¯(0,1)(i) = 1, x¯(i) = −1 , (1) where x¯(0,1)(i) and x¯(i) represent the ith element of the two binary sequence representations. In this paper, unless otherwise specified, we represent sequences using the (+1, −1) binary representation. To denote sequences with the (0, 1) binary representation, we utilize an additional superscript of (0, 1), i.e. x¯(0,1).
Figure 2: Illustration of the conversion from the (0, 1) binary sequence representation to the (+1, −1) representation used for mathematical convenience. Consequently, the exclusive-OR operation between elements of the (0, 1) representation becomes a multiplication operation.
The (+1, −1) representation of the binary sequences simplifies the auto-correlation and cross-correlation computations per- formed on one or more binary sequences. In particular, an exclusive-OR operation, i.e. b1 ⊕ b2, between two elements of the (0, 1) binary representation becomes a simple multiplication operation, i.e. b1 ·b2, between two elements of the (+1, −1) binary representation, as illustrated in Fig. 2.
2. Periodic Auto- and Cross-Correlation th Using the (+1, −1) binary sequence representation defined in Eq. (1), let xk represent the k binary sequence in a family of th length-` spreading code sequences. Let xk(i) ∈ {+1, −1} represent the i element of the sequence, where i ∈ Z∩[0, `−1] and Z represents the set of all integer values. Because xk is a periodic sequence, we have that xk(i) = xk(i + `). The normalized, periodic even auto-correlation of sequence k at a relative delay of δ bits is defined as
`−1 1 X R (δ) := x (i)x (i − δ) . (2) k ` k k i=0
Similarly, in Eq. (3) we define the normalized, periodic even cross-correlation between sequences k and m at a relative delay of δ bits as
`−1 1 X R (δ) := x (i)x (i − δ) . (3) k,m ` k m i=0
The even correlation is distinguished from the odd correlation, which defines the correlation in the case that a data flip occurs within the integration period of the correlators [28] [32]. Correspondingly, the odd correlation for sequence k would be computed by flipping the sign of the second multiplicative terms of Eq. (2) and (3), i.e. xk(i − δ) and xm(i − δ) respectively, when i < δ.
3. Algorithmically Generable GPS Spreading Codes Currently, all broadcast GPS signals use algorithmically generable spreading code sequences. The legacy L1 C/A GPS signal, for example, uses length-1023 Gold codes, which can be generated with two 10-bit linear feedback shift registers (LFSRs), as shown in Fig. 3. Gold codes [7] are a class of binary spreading code families which can be generated from two maximum-length sequences, or m-sequences. Maximum-length sequences are pseudorandom sequences of length ` = 2n −1, which are generated using an n-bit LFSR [33].
Figure 3: Diagram of the linear feedback shift register (LFSR) pair with their corresponding characteristic equations (G1 and G2) utilized to generate length-1023 bit Gold codes used in GPS L1 C/A [34]. Only two 10-bit LFSRs are required for the generation of the GPS L1 C/A spreading codes.
Recently developed for the modernized GPS L1C signal, Weil codes are families of spreading codes which were initially proposed by Guohua and Quan [8] and further analyzed and proposed for the L1C signal by Rushanan [9] [35]. A Weil code family exists for any prime number sequence length p and is generated from the corresponding length-p Legendre sequence, constructed from the Legendre symbol [36] [37]. In this work, we construct both Gold codes and Weil codes in order to compare the performance of these spreading code families utilized in GPS with the performance of the spreading codes generated from our proposed NES machine learning algorithm.
4. Natural Evolution Strategy Algorithms Natural Evolution Strategies (NES) [38] [39] [40] [41] are a subset of stochastic optimization methods which model a probability distribution, or a proposal distribution, over the optimization design space. Each sample from this proposal distribution outputs a candidate design point. In the context of designing navigation spreading codes, for example, each sample of the proposal distribution would output a set of binary sequences. NES requires choosing a family of parameterized proposal distributions PΘ, explicitly defined as
PΘ = {pθ(x): x ∈ X , θ ∈ Θ} where Θ is the set of possible vector-valued parameters θ defining each distribution in the family and where X represents the design space over which we are optimizing.
Within the specified family of probability distributions, NES methods directly optimize the proposal distribution pθ with respect to its parameterization θ, in order to guide the search process towards higher performing regions of the design space. NES algorithms are especially useful for non-convex optimization problems with large design spaces, including combinatorial design spaces, which applies to our application of interest with the design of navigation spreading codes. For high-dimensional design spaces, often diagonal covariance matrices are considered for the proposal distribution in order to improve computational efficiency with regards to the number of NES parameters to optimize as well as sample efficiency with regards to the number of required Monte Carlo samples to effectively estimate the search gradient during the optimization step [40] [42]. Further variations of traditional NES methods have also been explored to handle highly multi-modal optimization landscapes by leveraging heavy-tailed distributions, including those with undefined variances, such as the Cauchy distribution [42].
NES methods optimize the proposal distribution within the defined family PΘ, by seeking to minimize the expected objective function J, defined as
J(θ) := Ex∼pθ [f(x)] Z = pθ(x)f(x)dx , (4)
where x represents a particular point in the design space X , pθ(x) represents the probability of selecting x given the parameter θ, and f(x) represents the objective function value of the design point x, which we seek to minimize. Thus, NES methods seek to find the best proposal distribution by solving the optimization problem θ∗ = arg min J(θ) . (5) θ
To optimize the proposal distribution, the gradient of the expected objective function, i.e. ∇θJ(θ), can be estimated via Monte Carlo sampling of the objective function using the current proposal distribution [43] [41] [44]:
∇θJ(θ) = ∇θEx∼pθ [f(x)] Z = f(x)∇θpθ(x)dx Z ∇θpθ(x) = f(x) pθ(x)dx (6) pθ(x) Z = [f(x)∇θ log pθ(x)] pθ(x)dx (7)
= Ex∼pθ [f(x)∇θ log pθ(x)] (8) N 1 X ≈ f(xi)∇ log p (xi) (9) N θ θ i=1 where N represents the number of samples from the proposal distribution and xi represents the ith sample. Eqs. (6) and (7) demonstrate the so-called “log-derivative trick,” which is observed in a variety of machine learning contexts, including rein- forcement learning and variational inference [44]. Figure 4: Illustration depicting how the NES algorithm optimizes the expected objective J(θ). From instance A to instance B, the NES optimizer updates the parameters of the proposal distribution in order to increase the likelihood of design points which lead to lower values of the objective function (indicated by the green sampled points), while decreasing the likelihood of design points which have higher objective function values (indicated by the red sampled points). This update then guides the proposal distribution down the objective function landscape in instance B, toward regions where the objective is lower. The optimizer again repeats this process from instance B to instance C, thereby further guiding the proposal distribution down the objective function landscape. Indeed, the stochasticity of the proposal distribution induces the NES algorithm to explore the design space and the optimization step iteratively steers the search process towards better performing regions of the design space, where the objective function value is lower.
From this gradient estimate, using any first-order optimizer (e.g. stochastic gradient descent, Adam [45]), NES improves its proposal distribution vector-valued parameter θ in order to minimize the expected objective function in Eq. (4)
θ ← θ − δθ
δθ := gopt (∇θJ(θ)) , (10) where gopt is the generic first-order optimizer utilized to iteratively improve the proposal distribution. As illustrated in Fig. 4, this optimization process increases the probability of design points which lead to lower values of the objective function f to be minimized and decreases the probability of those which result in higher values of the objective function. Indeed, the stochasticity of the proposal distribution induces the NES algorithm to explore the high-dimensional design space and further improve its proposal distribution to output better performing design points.
III. PROPOSED NATURAL EVOLUTION STRATEGY ALGORITHM FOR SPREADING CODE DESIGN 1. High-Level Learning Framework For the spreading code design application, the machine learning framework utilized is represented at a high-level in Fig. 5. A code generator maintains a proposal distribution over the spreading code design space. Then, an evaluator assesses the performance of the code generator with respect to the objective function f by sampling from its proposal distribution. The objective function represents an evaluation metric for the spreading code family, based on the auto- and cross-correlation properties of the code set. Finally, as in Eq. (9), the optimizer estimates the gradient of the expected objective function with respect to the parameters of the proposal distribution, as represented by a generative neural network (GNN). The optimizer then updates the network parameters in order to improve the proposal distribution for the code generator.
Figure 5: High-level learning framework utilized for spreading code generation. The code generator outputs a set of sampled candidate code sets which are assessed by the evaluator. From the sampled design points and corresponding objective function values, optimizer improves the proposal distribution by updating its parameters as represented by a generative nerual network. 2. Gaussian Proposal Distribution Representation Using a neural network architecture, we represent a probability distribution over the design space of all possible binary spreading code families. Thus, the parameters of the proposal distribution θ correspond to the hidden layers of the network. As depicted in Fig. 6, for the code generator to output a set of binary codes, it must sample from this proposal distribution provided by the GNN, with the currently learned network parameters θ. For a concise introduction to artificial neural networks, we would suggest the reader to reference Sec. VI.
Figure 6: Illustration of generative neural network (GNN) and proposal distribution representation. The GNN outputs the mean vector of the multivariate Gaussian proposal distribution, from which a sampled output code set for the complete spreading code family is generated. In particular, the sampled output code set is a binary vector of length-K` bits, where K denotes the number of codes in the family and ` denotes the length of each spreading code sequence. With this representation of the proposal distribution, the network parameters correspond to the NES parameters θ, which are optimized during training.
We model the code design proposal distribution as an uncorrelated multivariate Gaussian family as depicted in Fig. 7, where each component corresponds to an index in the complete family of binary spreading codes. Our neural network model represents this proposal distribution by parameterizing the mean vector of the Gaussian distribution via a bounded output activation function, such as the logistic or hyperbolic tangent output activations. The variance σ2 of each component is maintained as a constant value. We can represent this Gaussian proposal distribution in terms of the network parameters θ as
2 (K`) pθ(x) = N µ(θ), σ I , (11) where K denotes the number of codes in the family, ` denotes the length of each sequence in the code family, I(m) represents the identity matrix of size (m × m) where m is a positive integer, and µ(θ) represents the mean of the Gaussian proposal K` distribution, as output by the GNN with parameters θ. Note that the mean of pθ is bounded, i.e. µ(θ) ∈ [µL, µU ] , due to the bounded nature of the output activation function of the network. Due to the uncorrelated model of the multivariate Gaussian proposal distribution, each component represents a univariate Gaussian distribution over each binary value in the spreading code family. As depicted in Fig. 7, to obtain a random output family of spreading codes, the code generator first samples directly from the multi-variate Gaussian proposal distribution defined in Eq. (11), i.e. x ∼ pθ. From this sampled vector x, the output code set is deterministically obtained by discretizing each component according to a threshold ζ defined in Eq. (13), which we choose to be the midpoint of the bounded output range of Figure 7: Illustration of the proposal distribution utilized for spreading code design. We model the code design proposal distribution as an uncorrelated multivariate Gaussian family, where each component corresponds to an index in the family of binary spreading codes. Correspondingly, the total length of the spreading code set is K`, where K denotes the number of codes in the family and ` denotes the length of each binary spreading code sequence. the GNN. Correspondingly, the output binary code family x can be defined in an element-wise manner as in Eq. (14):