/sydr

An open-source GNSS Software Defined Radio for algorithm benchmarking.

Primary LanguagePythonApache License 2.0Apache-2.0

Documentation Status

SyDR

SyDR is an open-source Software Defined Radio (SDR) for GNSS processing developed in Python. SyDR's goal is to provide a controlled environment for testing new processing algorithms, for benchmarking purposes.

The software is still at the very early development stages, with limited testing of the software functionalities. Issues and bugs are to be expected with the current version.

Requirements

The software has been developed and tested on Python 3.11 on a Windows Linux Subsytem (WSL) version 2. It is recommand to create a python virtual environement after cloning the directory.

python3 -m venv env

source env/bin/activate

To install the different libraries required, use the pip command line with the requirements.txt.

pip install -r requirements.txt

To create a directory hosting the output results mkdir .results

OS support

The design had been tested in WSL2 as well as x86 Ubuntu 20.04.5 LTS

Mac User

This design may required modification in order to run in MacOS and some Unix system. This is due to ._get_value() method of the semaphore in Python's multiprocessing module on some unix system has not been implemented. You will come across with error such as:

return self._maxsize - self._sem._semlock._get_value()
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
NotImplementedError

Documentation

TBD

Related publications

If you use SyDR in a research paper or Thesis, we would appreciate if you reference the following article to credit the SyDR project:

A. Grenier, E. S. Lohan, A. Ometov, and J. Nurmi, “An Open-Source Software-Defined Receiver for GNSS Algorithms Benchmarking,” in Proc. of 14th International Congress on Ultra Modern Telecommunications and Control Systems and Workshops (ICUMT). IEEE, 2022, pp. 31–38. https://ieeexplore.ieee.org/document/9943489