Xona X5 data

The 10230-chip Xona X5 data code has been added to my Github repository:

https://github.com/pmonta/GNSS-DSP-tools

The signal is somewhat different from a "normal" GNSS data signal in that each code period has the code shifted by an amount equal to the data symbol sent during that period. Shown below is a plot of the correlation-peak positions over an 800-ms interval:

image-xona-x5-data-peaks

Although the technique of shifting the code is described in one of Xona's patents [1], this structure still puzzled me for a while. The first portion of this signal, from the beginning out to 150 ms, has a nearly-repeating structure across four code periods. This bit of bad luck caused me to wonder: is the data code actually of length 4*10230 chips (4 ms)? Why would there be such strong correlation peaks at 1 ms offsets within this longer code? But no, the code is 10230 chips and 1 ms after all, and the apparent 4 ms structure is just the pattern of data at that time (the data being of unknown organization). Later in the recording, at around 600 ms, we see the data channel being used to its full extent, with apparently random code shifts at each millisecond.

The span from minimum to maximum of these peak-shifts is about 1746 samples or about 255.3 chips. So it seems clear that the code is shifted to one of 256 offsets each millisecond, resulting in a data-payload rate of 8000 bits/second. Theoretically, all 10230 shifts could have been used, resulting in a higher data rate, but perhaps 8 bits is enough (and more convenient than 13 or 13.32 bits).

References

[1]US patent US11899120B2, Figure 16E. https://patents.google.com/patent/US11899120B2/en