An open API service indexing awesome lists of open source software.

https://github.com/muhd-umer/comyx

Comyx is an optimized and modular Python library for simulating wireless communication systems
https://github.com/muhd-umer/comyx

6g noma numba numpy pytorch ray reinforcement-learning ris scipy simulation star-ris wireless-communication

Last synced: 19 days ago
JSON representation

Comyx is an optimized and modular Python library for simulating wireless communication systems

Awesome Lists containing this project

README

        




[![build](https://github.com/muhd-umer/comyx/workflows/build/badge.svg)](https://github.com/muhd-umer/comyx/actions?query=workflow:"build")
[![GitHub release](https://img.shields.io/github/release/muhd-umer/comyx?include_prereleases=&sort=semver&color=blue)](https://github.com/muhd-umer/comyx/releases/)
[![License](https://img.shields.io/badge/license-MIT-blue?style=flat)](#license)
[![view - Documentation](https://img.shields.io/badge/view-docs-blue?style=flat)](https://comyx.readthedocs.io/)
[![NumPy](https://img.shields.io/badge/NumPy-%23013243.svg?style=flat&logo=numpy&logoColor=white)](https://numpy.org/)
[![SciPy](https://img.shields.io/badge/SciPy-%230C55A5.svg?style=flat&logo=scipy&logoColor=white)](https://scipy.org/)
[![Numba](https://img.shields.io/badge/Numba-009ed9?style=flat&logo=numba&logoColor=white)](https://numba.pydata.org/)
[![PyTorch](https://img.shields.io/badge/PyTorch-%23EE4C2C.svg?flat&logo=PyTorch&logoColor=white)](https://pytorch.org/)

**Comyx** is a Python library for simulating wireless communication systems. It uses **NumPy** and **SciPy** for numerical computation, and **Numba** for just-in-time (JIT) compilation. It provides a number of features for simulating wireless communication systems:

- **B5G Features**: Supports a variety of B5G specific features, such as STAR-RIS, and NOMA.
- **Channel Models**: Provides the AWGN, Rayleigh, and Rician fading models.
- **Signal Modulation**: Supports a variety of modulation schemes, such as BPSK, QPSK, and QAM.
- **Performance Metrics**: Can calculate a variety of performance metrics, such as the sum rate, and outage probability.

## To-Do
- [ ] Update documentation
- [ ] Add network optimization support
- [ ] Add Reinforcement Learning (RL) support

## Installation

You can install the latest version of the package using pip:

```shell
pip install comyx
```

*Note: It is recommended to create a new virtual environment so that updates/downgrades of packages do not break other projects.*

Or you can clone the repository along with research code and perform an editable installation:

```shell
git clone https://github.com/muhd-umer/comyx.git
pip install -e .
```

**Reinforcement Learning (RL) Support**

For RL support, you will need to install the following dependencies:

- Install PyTorch (Stable)

```shell
pip install torch torchvision torchaudio
```

- Install Ray RLlib

```shell
pip install -U ray[default] # core, dashboard, cluster launcher
pip install -U ray[rllib] # tune, rllib
```