Giter VIP home page Giter VIP logo

radio-core's Introduction

๐Ÿ“ป Radio Core

Real-world signal processing functions for Python.

Features

  • โš™๏ธ Compatible with the majority of SDRs via SoapySDR.
  • โšก๏ธ Accelerated on Nvidia GPUs with CUDA via CuPy and cuSignal.
  • ๐Ÿš€ Runs smoothly in the Raspberry Pi 4, Nvidia Jetson, and Apple Silicon.

Functions

Analog

  • PLL: Clock-recovery and phase estimation for real-valued signals.
  • WBFM: Demodulation of wideband FM stations with Stereo Support. Supports de-emphasis.
  • MFM: Demodulation of wideband FM stations without Stereo Support. Supports de-emphasis.
  • FM: Demodulation of FM transmissions.
  • Deemphasis: De-emphasize audio.
  • Decimate: Resample signal.
  • Bandpass: Filter signal with bandpass window.

Tools

  • Tuner: Channelize the input data into smaller channels.
  • Ringbuffer: Zero-copy variable length circular buffer implemented in Python.
  • Carrousel: Zero-copy fixed length circular buffer implemented in Python.
  • Chopper: Divide a larger array into smaller fixed side elements.
  • Buffer: Provide an array allocated in the GPU or CPU.

Examples

  • Receive FM: Receive and play single wideband FM radio station.
  • Multi FM: Receive multiple wideband FM radio stations. Broadcast audio via ZeroMQ.

Installation

System Dependencies

Ubuntu/Debian

After installing the base SoapySDR and its modules, install the direct dependencies with apt:

$ apt install libpulse-dev libsamplerate-dev libasound2-dev portaudio19-dev

Python

CPU

$ python -m pip install git+https://github.com/luigifcruz/radio-core.git

GPU (CUDA)

$ python -m pip install "git+https://github.com/luigifcruz/radio-core.git#egg=radiocore[cuda]"

Validated Radios

  • AirSpy HF+ Discovery
  • AirSpy R2
  • LimeSDR Mini/USB
  • PlutoSDR
  • RTL-SDR
  • SDRPlay

Hacking

If you are interested in the core DSP, you are in the right place! Feel free to tinker with the code and make your own application. If you just want to use to listen to some good music, try the CyberRadio Desktop App.

radio-core's People

Contributors

luigifcruz avatar

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.