Skip to content

About

Modular tracking algorithm for various GNSS Systems

Resources

Stars

10 stars

Watchers

1 watching

Forks

Repository files navigation

DOI codecov [Semantic Release]

Tracking.jl

GNSS satellite tracking, as part of a GNSS receiver: signal downconversion and correlation (SIMD-optimized CPU kernels), and code and carrier estimation that closes the loop (by default FLL-assisted PLL and DLL). Both can be replaced through multiple dispatch.

The per-record loop arithmetic (correlators, discriminators, bit buffer, C/N₀ and Doppler estimators) lives in TrackingLoops.jl, so a hardware correlator's loop can run the same code. Tracking.jl re-exports the functions that read results (estimate_cn0, get_prompt, get_soft_bits, …); load TrackingLoops next to it to configure a correlator, an estimator or a post-correlation filter (using Tracking, TrackingLoops, GNSSSignals).

Features

  • Every concrete signal GNSSSignals.jl defines (GPS L1 C/A, L1C, L2C, L5; Galileo E1, E5a incl. E5a-QP, E5b, E6; BeiDou B1I, B3I, B1C, B2a, B2b); see the signal support matrix
  • Multi-band tracking: one track call processes BandMeasurements from several RF bands (e.g. L1 + L5) in lockstep
  • Multi-signal tracking on one satellite (e.g. L1 C/A + L1C-D + L1C-P) with one shared downconvert
  • Integration over N code blocks once the bit or secondary code is found
  • CN0 estimation
  • Secondary code detection
  • Bit detection
  • Phased array tracking
  • Multi-satellite and multi-system tracking

Installation

julia> ]
pkg> add Tracking

Documentation

For usage examples and detailed documentation, see the stable docs or dev docs.

License

This project is licensed under the MIT License - see the LICENSE file for details.

About

Modular tracking algorithm for various GNSS Systems

Resources

Stars

10 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages