JPL sequence

JPL sequences or JPL codes consist of two linear feedback shift registers (LFSRs) whose code sequence lengths La and Lb must be prime (relatively prime). In this case the code sequence length of the generated overall sequence Lc is equal to:


 * $$L_c = L_a \cdot L_b = (2^n - 1)(2^m - 1)$$

It is also possible for more than two LFSRs to be interconnected through multiple XORs at the output for as long as all code sequence lengths of the individual LFSR are relatively prime to one another.

JPL sequences were originally developed in the Jet Propulsion Labs, from which the name for these code sequences is derived.

Areas of application include distance measurements utilizing spread spectrum signals for satellites and in space technology. They are also utilized in the more precise military P/Y code used in the Global Positioning System (GPS). However, they are currently replaced by the new M-code.

Due to the relatively long spreading sequences, they can be used to measure relatively long ranges without ambiguities, as required for deep space missions. By having a rough synchronziation between receiver and transmitter, this can be achieved with shorter sequences as well. Their major advantage is, that they produce relatively long sequences with only two LFSRs, which makes it energy efficient and very hard to detect due to huge spreading factor. The same structure can be used to realize a dither generator, used as an additive noise source to remove a numerical bias in digital computations (due to fixed point arithmetics, that have one more negative than positive number, i.e. the mean value is slightly negative).