GPS X1 Sequencer. Applied Research Laboratories, The University of Texas at Austin August 2003
X1Sequence is contains a six-second (four Z-count) sequence of the combined X1A/X1B data for the GPS constellation. The X1 sequence repeats every 1.5s (each X1 epoch) and is identical for all SVs and all 1.5s epochs. In this case, 6 seconds of bitstream is generated and stored because this set of code "thinks" in term of 32-bit words and a 1.5s epoch doesn't contain an integer number of 32-bit words of packed bits) - there's a .25 word (8 bit) remainder. Therefore, a six second seqeunce DOES include an even mulitple of 32 bits, which greatly simplifies handling of the data.
Six seconds of X1 bits is a significant amount of data: X1 Epoch = 4092 X1A bits * 3750 X1A cycles = 15,345,000 bits 6 s = 4 X1 Epoch = 4 * bits = 4 * 15,345,000 = 61,380,000 bits. The number of 32 bit words required equals 61,380,000 bits / 32 bits/word = 1,918,125 words
Definition at line 74 of file X1Sequence.hpp.
#include <X1Sequence.hpp>
Public Member Functions | |
uint32_t & | operator[] (int i) |
const uint32_t & | operator[] (int i) const |
X1Sequence () | |
~X1Sequence () | |
Static Public Member Functions | |
static void | allocateMemory () |
static void | deAllocateMemory () |
Static Private Attributes | |
static bool | isInit = false |
static uint32_t * | X1Bits = 0 |
gnsstk::X1Sequence::X1Sequence | ( | ) |
Initialize the member variables associated with this object. In the case of this class, this is a significant amount of work. The X1A/X1B process described in ICD-GPS-200B is followed in order to fill the X1Bits array.
Definition at line 58 of file X1Sequence.cpp.
|
inline |
Definition at line 84 of file X1Sequence.hpp.
|
static |
The X1 sequence requires a 6-second buffer of 10MBit/sec samples. This comes to approximately 2 million four-byte unsigned integers. These data are the same for all PRN codes To minimize the memory footprint, these data are stored in a dynamically-allocated static array. It is
The X1Sequence::deAllocateMemory() method may be called to release the memory (if desired) but it should only be called after all X1Sequence objects have been "destroyed".
Definition at line 68 of file X1Sequence.cpp.
|
static |
Definition at line 144 of file X1Sequence.cpp.
|
inline |
Definition at line 118 of file X1Sequence.hpp.
|
inline |
Given a word number from 0 to NUM_6SEC_WORDS, return the requested word.
Definition at line 123 of file X1Sequence.hpp.
|
staticprivate |
Definition at line 115 of file X1Sequence.hpp.
|
staticprivate |
Definition at line 114 of file X1Sequence.hpp.