https://github.com/rwnobrega/komm
An open-source library for Python 3 providing tools for analysis and simulation of analog and digital communication systems.
https://github.com/rwnobrega/komm
block-coding communications convolutional-coding error-control information-theory modulation pulse-formatting sequences source-coding
Last synced: 22 days ago
JSON representation
An open-source library for Python 3 providing tools for analysis and simulation of analog and digital communication systems.
- Host: GitHub
- URL: https://github.com/rwnobrega/komm
- Owner: rwnobrega
- License: gpl-3.0
- Created: 2018-05-01T01:34:51.000Z (almost 8 years ago)
- Default Branch: main
- Last Pushed: 2025-12-16T12:08:10.000Z (4 months ago)
- Last Synced: 2025-12-19T07:40:55.543Z (3 months ago)
- Topics: block-coding, communications, convolutional-coding, error-control, information-theory, modulation, pulse-formatting, sequences, source-coding
- Language: Python
- Homepage: https://komm.dev/
- Size: 16.4 MB
- Stars: 93
- Watchers: 5
- Forks: 16
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# Komm
_A Python library for communication systems_.
[](https://pypi.org/project/komm/)
[](https://github.com/psf/black/)
[](https://github.com/rwnobrega/komm/issues)
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 many other communication systems libraries, such as [MATLAB® Communications System Toolbox™](https://www.mathworks.com/help/comm/), [GNU Radio](https://gnuradio.org/), [CommPy](http://veeresht.info/CommPy/), and [SageMath](https://www.sagemath.org/). **Komm** is licensed under the [GNU General Public License v3.0](https://www.gnu.org/licenses/gpl-3.0.en.html).
For library reference, please check the [project's website](https://komm.dev/).
> [!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](https://www.python.org/) (version 3.10 or later) installed. Also, you may want to create and activate a [virtual environment](https://docs.python.org/3/library/venv.html) first:
```bash
python3 -m venv .venv
source .venv/bin/activate
```
### From PyPI
```bash
pip install komm
```
### From GitHub
```bash
pip install git+https://github.com/rwnobrega/komm.git@main
```
## Development
First, clone the repository:
```bash
git clone https://github.com/rwnobrega/komm
cd komm
```
Then, if you haven't already, create and activate a virtual environment [as before](#installation).
Next, install the development dependencies. For example, using `pip`:
```bash
pip install -e .[lint,test,doc,debug,demo]
```
### Testing
The test suite is written using the [pytest](https://docs.pytest.org/) framework. To run the tests, execute:
```bash
pytest
```
### Documentation
The documentation is built using [MkDocs](https://www.mkdocs.org/) with the [Material for MkDocs](https://squidfunk.github.io/mkdocs-material/) theme. To serve the documentation locally, run:
```bash
mkdocs serve
```
### Run demos
There are some demos available in the `demo` directory. They are written using [Streamlit](https://streamlit.io/). To run them, execute:
```bash
streamlit run demo/index.py
```
## Changelog
See the [CHANGELOG.md](CHANGELOG.md).