Code Monkey home page Code Monkey logo

sydr's Introduction

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

sydr's People

Contributors

agrenier-gnss avatar hansemandse avatar jiegh avatar

Stargazers

 avatar Paweł Wodnicki avatar  avatar Chris Davey avatar m1rum0 avatar OSQZSS avatar Martin Valgur avatar  avatar Daniel Sturdivant avatar  avatar  avatar Yiran Luo avatar  avatar  avatar

Watchers

 avatar Niilo Sirola avatar  avatar Minh Hoang avatar  avatar

sydr's Issues

Code cleanup

Code cleanup before public release of the repository.

Create plots

Display the results from the different process phases into plots.

  • Acqusition
  • Tracking
  • Decoding
  • Navigation

Enhance channel

Change channel to be only one class with all DSP functions inside.

[Bug] Accumulation of unprocessed samples in channels

This is a follow-up issue to #27.

Unprocessed samples in channels keep growing and can reach the size of two codes. This need to be fixed to be sure all samples are processed accordingly.
This might be the reason for the large bias present in the positioning.

Error in positioning using new I/Q file

A new I/Q file acquired recently has been used to test the software and very bad positioning (>1000 km) was obtained. Need to review the positioning module.

Implement fine tracking

Add the capacity to have fine tracking in branches. Easiest solution is to have another variable holding the parameters for fine tracking.

Add selection option for ephemeris origin

Add an option in configuration files to select where ephemeris should be taken from:

  • Which navigation message and from which frequency
    OR
  • From assisted data (BRDC, SP3, RTCM, ...)

Navigation metrics

List the metrics required:

  • ENU graphs
  • Coordinates table with ECEF, geodetic, ENU, reference position
  • Statistics (STD, average, min/max, RMSE)

Create logs

Implement log messages to monitor the status of the receiver.

Log messages should have:

  • Different debug level (0,1,2) depending on their importance
  • A timestamp of the computer time
  • A timestamp of the scenario time (w.r.t the file being replayed)
  • The channel ID

Implement SNR / CN0 estimation

Implement SNR and CN0 estimation in tracking loops. Could also add them at acquisition level, following theory for [Borre, 2023].

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.