CLI app for analyzing a sum signal generated by GPS satellites
These instructions will get you a release of this project up and running on your local machine, so that you can start using it.
- Node.js - JavaScript run-time environment
This package is not available on the npm registry, because it was developed as an educational project and is not suited for general use due to its limitations. So you will need to clone this repository and then use the following commands to set the project up and run it:
# in general you need run these commands
# in the root directory of the repository
# 1. install dependencies
npm i
## variant A
# 2. run via npm script
npm start --silent <args>
## variant B
# 2. make executable available globally
npm link
# 3. run via global executable
# can be called from any directory
analyze-gps-sum-signal <args>
- list of numbers separated by spaces
- exactly
1023
signal sums - each satellite has a chip sequence length of
1023
- satellite signals "wrap around"
- this ensures that the signal sums always contain a satellite's complete signal sequence, even if it doesn't start at index
0
of the signal sums - e.g. if a satellite's signal sequence starts at index
42
of the signal sums, instead of just cutting off the last42
chips (due to the length limitation), those chips are just place at the beginning of the signal sums
- this ensures that the signal sums always contain a satellite's complete signal sequence, even if it doesn't start at index
- each satellite's signal sequence is encoded using a chip sequence generated by a Gold code generator with the following configuration
- mother sequence 1 uses the bits on the indexes
2, 9
(zero-based) when rotating - mother sequence 2 uses the bits on the indexes
1, 2, 5, 7, 8, 9
(zero-based) when rotating - for each satellite a different register sum is used according to the following table:
- mother sequence 1 uses the bits on the indexes
satellite id | register sum (zero based index) |
---|---|
1 | 1β5 |
2 | 2β6 |
3 | 3β7 |
4 | 4β8 |
5 | 0β8 |
6 | 1β9 |
7 | 0β7 |
8 | 1β8 |
9 | 2β9 |
10 | 1β2 |
11 | 2β3 |
12 | 4β5 |
13 | 5β6 |
14 | 6β7 |
15 | 7β8 |
16 | 8β9 |
17 | 0β3 |
18 | 1β4 |
19 | 2β5 |
20 | 3β6 |
21 | 4β7 |
22 | 5β8 |
23 | 0β2 |
24 | 3β5 |
This means the Gold code generator for satellite 1 looks like this:
These instructions will get you a copy of this project up and running on your local machine for development and testing purposes.
- Node.js - JavaScript run-time environment
This project is intended to be used with Visual Studio Code and the following extensions are recommended:
- ESLint - Integrates ESLint JavaScript into VS Code
- meow - CLI app helper
- Robin Hartmann - Project realization - robin-hartmann
- Dirk Hoffmann - Project idea, configurations, examples and Gold code generator graphic - dirkwhoffmann
This project is licensed under the MIT License - see the LICENSE file for details.