Skip to main content

SigKit

Version Tests Passing GitHub Contributors Issues Pull Requests

SigKit is a modular digital signal‐processing toolkit built on top of NumPy. It has additive impairments to simulate OTA impairments. We include a full Machine Learning toolkit with methods for PyTorch designed for training Modulation Classification Models that are capable of generalizing over the air (OTA). It provides:

  • Core abstractions (Signal, Impairment, Modem, …) for working in complex baseband
  • NumPy ipairments, PyTorch Transforms & tools (AWGN, fading, filtering, SNR & BER calculators)
  • PyTorch Transforms so you can drop signal operations straight into Compose
  • PyTorch Lightning Pipeline includes our pretrained model and methods for retraining
  • (WIP) GNURadio Blocks wrapping our tools
  • Synthetic data generators & torch.utils.data.Dataset classes

🚀 Getting Started

Try the example notebook

A quick way to explore SigKit is to run the Jupyter notebook in:

examples/notebooks/basic.ipynb

The notebook is a guide that covers:

  • Generating a signal with a Modem
  • Adding an Impairment like AWGN
  • Calculating Signal Metrics
  • Visualizing the waveform

Be sure to restart your notebook's kernel after installing the package.

Classification

There is also an example notebook for running the pretrained model.

examples/notebooks/classification.ipynb

Pull down LFS objects first with git lfs pull

Installing SigKit

Package Installation

Installing the pypi package
pip install sigkit
Installing from source (recommended for ML tasks)
git clone https://github.com/IsaiahHarvi/SigKit.git
cd SigKit
pip install -e .
Sanity Check for source installs

You can be gauranteeed your installation is sound by running pytest without failure from the root of the repository.

(Optional) DevContainer for VS Code

If you use VS Code and would prefer to isolate your SigKit installation, we’ve provided a DevContainer in the repository. It is designed to be OS agnostic but it is confirmed to support: Ubunutu >22.04, ARM MacOS, Windows

To setup:

  1. Install the Remote – Containers extension in VS Code.
  2. Clone, open the project, and run chmod +x .devcontainer/setup.sh.
  3. Run Reopen in Container from the VSCode console.

Inside the container you’ll have all dependencies installed and SigKit ready to run.


State of Implementations

The below table tracks major planned features. Smaller features like Signal Impairments and Torch Transforms are not tracked here.

Feature Implemented Torch Transform
Architecture - -
Rust bindings No -
GNURadio - -
ClassificationBlock No -
Modulator No -
Modems - -
PSK Yes -
FSK Yes -
QAM WIP -
OFDM WIP -
MSK No -
ASK No -
Machine Learning - -
Training Pipeline Yes -
Pretrained Model Yes (WIP) -
Procedural Dataset Yes -
File Dataset No -
Signal Impairments - -
AWGN Yes ✅
Frequency Shift Yes ✅
Phase Shift Yes ✅
Polyphase Resampling No ❌
Rayleigh Fading No ❌
Random Resampling No ❌
IQ Imbalance No ❌
Time Shift No ❌

🛠️ Development

  • Tests:

    pytest
    
  • Lint & Format:

    ruff check . --fix
    ruff format .
    
  • Update docs:

    # Install the optional dependencies [docs] or:
    pip install sphinx piccolo_theme tomli
    
    ./docs/gen.sh
    

License

This project is released under the MIT License. See LICENSE for details.

Metadata

Release files for sigkit 0.0.3

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

Source distribution (sdist)

Source distribution for sigkit 0.0.3
File Size Uploaded Provenance Actions
sigkit-0.0.3.tar.gz 22.0 kB With provenance Details for sigkit-0.0.3.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for sigkit 0.0.3
File Interpreter ABI Platform Actions
sigkit-0.0.3-py3-none-any.whl Python 3 none any Details for sigkit-0.0.3-py3-none-any.whl

Total release size: 48.2 kB

Release files / sigkit-0.0.3.tar.gz

Download URL sigkit-0.0.3.tar.gz
Size 22.0 kB
Tags Source
SHA-256 checksum
How to use checksums
df100f1685e82c0c28e285d5286afa82144ef3585cea9b3d7c240764bdf3265d
BLAKE2b-256 checksum
How to use checksums
745493ae74571548d4bafb73e90aba262ac5496dec096ca187ed4c15f3294e35
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 2, 2025.

Transparency log

Release files / sigkit-0.0.3-py3-none-any.whl

Download URL sigkit-0.0.3-py3-none-any.whl
Size 26.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
dbc5cddcb2cac18518d8891c7dde05e69f45e78391bc42ca0b3c8c58b335bb08
BLAKE2b-256 checksum
How to use checksums
8da6559318d2372f94e4450bc41d6c791002729379d9b4d39cf05161dd5da691
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 2, 2025.

Transparency log

Security for sigkit 0.0.3

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

Both files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for sigkit-0.0.3.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 2, 2025.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.0.3 This release

2 release files Full provenance

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