TABLE 8

Main Features of PyChips

FeaturePyChips
SolutionRemark
Operating systemWindows x64Due to pre-compiled C/C++ bindings that currently use the Windows API for file reading and threading. Linux support under development.
Programming environmentSARDL, Python, C/C++SDR entirely specified using JSON-based SARDL. Assembles pre-built configurable Python and C/C++ objects at run-time according to user SARDL specifications.
IF sample file input sourceION SDR StandardParses ION metadata hierarchy to select the appropriate decoder kernel written in C++. Sample decoding is split across multiple threads using a data parallel architecture.
Real-time sample inputNot currently supported
Additional sensorsNone
Supported GNSSSupports all civilian satnav signals (GPS, GLONASS, Galileo, BeiDou, QZSS, NavIC, SBAS)Spreading codes defined as memory codes. Code replicas specified as an assembly of sequence objects (static, subcarrier, overlay, mux, etc.; see Gunawardena (2021)).
AcquisitionFFT-based generic acquisition engine with configurable coherent and noncoherent integration settingsAutomatically detects and implements circular vs. non-circular frequency-domain correlation based on code length.
TrackingGeneric tracking module assembled from configurable functional blocks (e.g., carrier wipe-off, code replica, correlator, gearbox, accumulator, etc.) and a generic controller object— all defined in SARDLEmploys split-sum correlation (Gunawardena & van Graas, 2006). Always operates on a 1-ms block of samples and retires the current block before operating on the next block (no sample shifting to align with the SV time of transmission). Direct initialization of tracking objects configured for other signals from the same SV (e.g., GPS L1 C/A to L1C, L2C, and L5).
Measurement outputYesCSV format.
AvailabilityVersions distributed at ION conference tutorialsVersions used at ION tutorials.