/komm

An open-source library for Python 3 providing tools for analysis and simulation of analog and digital communication systems.

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

Komm

A Python library for communication systems.

PyPI page Code style: black Contributions welcome

Welcome to Komm!

Komm is an open-source library for Python 3 providing tools for analysis and simulation of analog and digital communication systems. This project is inspired by—but is not meant to be compatible with—the MATLAB® Communications System Toolbox™. Other sources of inspiration include GNU Radio, CommPy, and SageMath. Komm is licensed under the GNU General Public License v3.0.

For library reference, please check the project's website.

Warning

Please be advised that this project is currently under development. As such, there may be changes to the project's codebase, including the API.

Installation

Before you start, make sure you have Python (version 3.10 or later) installed.

From PyPI

pip install komm

From GitHub

pip install git+https://github.com/rwnobrega/komm.git@main

Development

First, clone the repository:

git clone https://github.com/rwnobrega/komm
cd komm

This project uses PDM for dependency management. After installing PDM, install the dependencies and activate the virtual environment:

pdm install
pdm venv activate

Testing

The test suite is written using the pytest framework. To run the tests, execute:

pytest

Documentation

The documentation is built using MkDocs with the Material for MkDocs theme. To serve the documentation locally, run:

mkdocs serve

Run demos

There are some demos available in the demo directory. They are written using Streamlit. To run them, execute:

streamlit run demo/index.py