Skip to main content

PyModulation

Overview

PyModulation is a Python library that implements a collection of digital modulation and demodulation techniques with a strong focus on Software-Defined Radio (SDR) applications. The library is designed to provide a simple, consistent, and extensible interface for working with different modulation schemes, enabling rapid development, testing, and prototyping of wireless communication systems.

The main objective of PyModulation is to allow the direct use of supported modulation techniques with SDR hardware, while remaining flexible enough to be used in simulations, offline signal processing, and educational contexts. By abstracting common modulation tasks, the library helps users focus on system design and experimentation rather than low-level signal handling.

PyModulation is suitable for a wide range of applications, including SDR-based transmitters and receivers, communication protocol prototyping, academic research, and teaching digital communications concepts. Its modular architecture makes it easy to extend with new modulation schemes and integrate with existing Python-based SDR and signal-processing toolchains.

The following modulations are currently supported:

  • GFSK/GMSK
  • BPSK
  • ASK/OOK
  • QPSK
  • LoRa

Dependencies

Installing

This library can be installed directly from the source files:

  • python setup.py install

Documentation

The documentation page is available here. Instructions to build the documentation page are described below.

Contributing instructions are also available here.

Dependencies

Building the Documentation

The documentation pages can be built with Sphinx by running the following command inside the docs folder:

  • make html

Citing

If you use PyModulation in your academic work or project, you can cite it:

@misc{marcelino2026,
    author       = {Marcelino, Gabriel and Augusto Porto Freitas, Carlos},
    title        = {PyModulation},
    month        = jun,
    year         = 2026,
    howpublished = {Zenodo},
    doi          = {10.5281/zenodo.18202697},
    url          = {https://doi.org/10.5281/zenodo.18202697},
}

License

This project is licensed under LGPLv3 license.

Metadata

Release files for pymodulation 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pymodulation 0.3.0
File Size Uploaded
pymodulation-0.3.0.tar.gz 33.4 kB Details

Release files / pymodulation-0.3.0.tar.gz

Download URL pymodulation-0.3.0.tar.gz
Size 33.4 kB
Tags Source
SHA-256 checksum
How to use checksums
b5634254ef4ad92370f9b8b18e7f77c70369b79f2f5a4fefa332452f20c01820
BLAKE2b-256 checksum
How to use checksums
f429fb489661ece85defa7a59659565b702cd1a030b54abe85d7cd5aeefc86c6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.8

Release history Release notifications | RSS feed

This release

0.3.0 This release

1 release file

0.2.0

1 release file

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page