Skip to main content

The fundamental Python package for wireless signal processing at the physical layer

Project description

WiPhy

WiPhy is an open-source Python package for wireless signal processing at the physical layer, and is mainly developed by Ishikawa Laboratory, Yokohama National University, Japan. This package attempts to facilitate reproducible research in wireless communications. It supports classical wireless technologies, such as MIMO and OFDM, and state-of-the-art technologies, such as index modulation and nonsquare differential coding. This project is derived from IMToolkit, which specializes in index modulation.

Key Features

The major advantages of this package are highlighted as follows:

  • Incredibly fast. It accelerates bit error ratio and average mutual information simulations by using a state-of-the-art Nvidia GPU and the massively parallel algorithms proposed in [1].
  • JIT friendly. It dose not rely on any class and object-oriented programming, which is different from the conventional IMToolkit. It is suitable for both PyPy and Numba. Users are free from the nightmare of complex @jitclass decorations.
  • Highly reliable. It has been maintained based on test-driven development, as with other high-quality packages. The simulation results have been used by IEEE journal papers.

Disadvantages

  • Some methods are not well documented.

Installation Guide

WiPhy is available from the Python official package repository PyPi.

> pip install wiphy

The WiPhy development team welcomes other researchers' contributions and pull requests. In that case, it would be better to install the latest package and activate the editable mode as follows:

> git clone https://github.com/ishikawalab/wiphy/
> pip install -e ./wiphy # this activates the editable mode

If you use Anaconda, you can install WiPhy as follows.

> git clone https://github.com/ishikawalab/wiphy/
> conda develop ./wiphy

The Anaconda version 4.6.0 or above may also allow the following installation commands.

> conda config --set pip_interop_enabled True
> # for typical users
> pip install wiphy
> # for developers
> git clone https://github.com/ishikawalab/wiphy
> pip install -e ./wiphy

The above installation process requires NumPy, Pandas, SciPy, SymPy, Numba, and tqdm, all of which are popular Python packages. Additionally, it is strongly recommended to install CuPy 5.40+. WiPhy is heavily dependent on CuPy to achieve significantly fast Monte Carlo simulations. The key components required by CuPy are listed here. In case CuPy is not installed in your environment, WiPhy uses NumPy only.

Citations

It would be highly appreciated if you cite the following reference when using WiPhy.

Of course, if your project relies on CuPy, the following reference is strongly recommended.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

wiphy-0.9.3-py3-none-any.whl (4.9 kB view details)

Uploaded Python 3

File details

Details for the file wiphy-0.9.3-py3-none-any.whl.

File metadata

  • Download URL: wiphy-0.9.3-py3-none-any.whl
  • Upload date:
  • Size: 4.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.24.0 setuptools/50.3.1.post20201107 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.8.5

File hashes

Hashes for wiphy-0.9.3-py3-none-any.whl
Algorithm Hash digest
SHA256 09f5ab7c462fe37d37f38dbd0cae52ddefba50c10a143cc3b8d8c065adffe895
MD5 87f66cf2293fde74c2cb67665f9b9293
BLAKE2b-256 86d2cbc929dd9b95d0a00d7cfb2825f2a4a6b802fce4816fd55f4d2bb73ef377

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page