Track
The track function is the main entry point for processing GNSS signals. It takes an incoming signal and a TrackState, performs downconversion and correlation for all tracked satellites, estimates Doppler frequencies, and returns an updated TrackState.
Function Reference
Tracking.track — Function
track(
signal,
track_state,
sampling_frequency;
downconvert_and_correlator,
intermediate_frequency,
preferred_num_code_blocks_to_integrate
)
Main tracking function that processes a signal and updates the tracking state. Performs downconversion, correlation, and Doppler estimation for all satellites in the track state. Returns an updated TrackState with new phase/Doppler estimates and decoded bits.
Optional Parameters
downconvert_and_correlator: The downconversion and correlation implementation to use. Defaults toCPUDownconvertAndCorrelator.intermediate_frequency: The intermediate frequency of the signal. Defaults to0.0Hz.preferred_num_code_blocks_to_integrate: The preferred number of code blocks to integrate. Defaults to1. Will only integrate more than one block once bit synchronization has been achieved.
Downconversion and Correlation
Tracking.CPUDownconvertAndCorrelator — Type
CPU-based implementation of downconversion and correlation. Uses LoopVectorization for SIMD-optimized processing. The MESF type parameter specifies the maximum expected sampling frequency for buffer allocation.
Tracking.AbstractDownconvertAndCorrelator — Type
Abstract downconverter and correlator type. Structs for downconversion and correlation must have this abstract type as a parent.
Correlator Sample Shifts
Tracking.get_correlator_sample_shifts — Function
get_correlator_sample_shifts(
correlator,
sampling_frequency,
code_frequency
)
Calculate the replica phase offset required for the correlator with respect to the prompt correlator, expressed in samples. The shifts are ordered from latest to earliest replica.
get_correlator_sample_shifts(
correlator,
sampling_frequency,
code_frequency
)
Calculate the replica phase offset required for the correlator with respect to the prompt correlator, expressed in samples. The shifts are ordered from latest to earliest replica.
Tracking.get_early_late_sample_spacing — Function
get_early_late_sample_spacing(
correlator,
sampling_frequency,
code_frequency
)
Calculate the total spacing between early and late correlator in samples.