Skip to content

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

License

Notifications You must be signed in to change notification settings

muhd-umer/comyx

Repository files navigation


build GitHub release License view - Documentation NumPy SciPy Numba PyTorch

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:

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:

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)

    pip install torch torchvision torchaudio
  • Install Ray RLlib

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