Skip to main content

[Work-In-Progress] nextgen-wireless-dl-demos

License: MIT

Deep learning demos for 5G/6G wireless systems using TensorFlow and Sionna.

Disclaimer: This is an independent project and is not affiliated with, endorsed by, or sponsored by NVIDIA Corporation. Sionna is an open-source library developed by NVIDIA.

⚠️ Note: This project is under active development and not accepting external contributions at this time.

Author and Maintainer

Srikanth Pagadarai srikanth.pagadarai@gmail.com

Overview

This repository contains neural network-based demos for 5G/6G communication systems:

Demo Description
Digital Pre-Distortion Digital Pre-Distortion for power amplifier linearization
MIMO-OFDM Neural Receiver Neural receiver for MIMO-OFDM systems with learned channel estimation and equalization
Site-Specific PUSCH Autoencoder End-to-end autoencoder for 5G NR PUSCH with trainable constellation and neural detector

See the documentation page here: https://srikanthpagadarai.github.io/nextgen-wireless-dl-demos/

Project Structure

nextgen-wireless-dl-demos/
├── .github/
│   └── workflows/
│       ├── docs.yml                            # Documentation build workflow
│       ├── publish.yml                         # PyPI publish workflow
│       ├── test-publish.yml                    # Test PyPI publish workflow
│       └── test.yml                            # CI test workflow
├── .dockerignore                               # Docker build exclusions
├── .flake8                                     # Flake8 linter configuration
├── .gitignore                                  # Git ignore rules
├── .gitmodules                                 # Git submodule definitions
├── .pre-commit-config.yaml                     # Pre-commit hooks configuration
├── CITATION.cff                                # Citation
├── demos/                                      # All demos source code
│   ├── dpd/                                    # Digital Pre-Distortion demo
│   │   ├── results/                            # Performance results
│   │   ├── src/                                # DPD demo source code
│   │   │   ├── config.py                       # System configuration
│   │   │   ├── tx.py                           # OFDM transmitter
│   │   │   ├── rx.py                           # OFDM receiver
│   │   │   ├── power_amplifier.py              # PA model with memory effects
│   │   │   ├── interpolator.py                 # Sample rate conversion
│   │   │   ├── ls_dpd.py                       # Least-squares DPD
│   │   │   ├── ls_dpd_system.py                # LS-DPD end-to-end system
│   │   │   ├── nn_dpd.py                       # Neural network DPD
│   │   │   ├── nn_dpd_system.py                # NN-DPD end-to-end system
│   │   │   └── system.py                       # Base system class
│   │   ├── tests/                              # Unit tests
│   │   ├── training_ls.py                      # LS-DPD training
│   │   ├── training_nn.py                      # NN-DPD training
│   │   ├── inference.py                        # Model evaluation
│   │   ├── plots_ls.py                         # LS-DPD visualization
│   │   └── plots_nn.py                         # NN-DPD visualization
│   ├── mimo_ofdm_neural_receiver/              # Neural MIMO-OFDM receiver demo
│   │   ├── results/                            # Performance results
│   │   ├── src/                                # Neural MIMO-OFDM receiver demo source code
│   │   │   ├── config.py                       # System configuration
│   │   │   ├── tx.py                           # Transmitter chain
│   │   │   ├── rx.py                           # Baseline receiver
│   │   │   ├── channel.py                      # CDL channel model
│   │   │   ├── csi.py                          # Channel state information
│   │   │   ├── neural_rx.py                    # Neural receiver network
│   │   │   └── system.py                       # End-to-end system
│   │   ├── tests/                              # Unit tests
│   │   ├── training.py                         # Neural receiver training
│   │   ├── inference.py                        # Trained model evaluation
│   │   ├── baseline.py                         # Baseline receiver evaluation
│   │   └── plots.py                            # BER/BLER visualization
│   └── pusch_autoencoder/                      # PUSCH autoencoder demo
│       ├── results/                            # Performance results
│       ├── src/                                # PUSCH autoencoder demo source code
│       │   ├── config.py                       # System configuration
│       │   ├── pusch_trainable_transmitter.py  # Trainable constellation TX
│       │   ├── pusch_trainable_receiver.py     # Neural receiver
│       │   ├── pusch_neural_detector.py        # Conv2D-based detector
│       │   ├── cir_generator.py                # Channel impulse response generator
│       │   ├── cir_manager.py                  # CIR dataset management
│       │   └── system.py                       # End-to-end PUSCH link
│       ├── tests/                              # Unit tests
│       ├── training.py                         # Autoencoder training
│       ├── inference.py                        # Trained model evaluation
│       ├── baseline.py                         # LMMSE baseline evaluation
│       └── plots.py                            # BLER and constellation plots
├── docker/                                     # Docker configuration
│   ├── docker-instructions.md                  # Docker usage guide
│   └── entrypoint.sh                           # Container entrypoint
├── Dockerfile                                  # Docker image definition
├── docs/                                       # Sphinx documentation
│   ├── api/                                    # API reference pages
│   │   ├── dpd.rst                             # API reference page for DPD demo
│   │   ├── index.rst                           # index page
│   │   ├── mimo_ofdm_neural_receiver.rst       # API reference page for Neural MIMO-OFDM receiver demo
│   │   └── pusch_autoencoder.rst               # API reference page for PUSCH autoencoder demo
│   ├── changelog.rst                           # change log
│   ├── conf.py                                 # Sphinx configuration
│   ├── demos/                                  # Documentation pages for demos
│   │   ├── dpd.rst/                            # Documentation page for DPD demo
│   │   ├── mimo_ofdm_neural_receiver.rst/      # Documentation page for Neural MIMO-OFDM receiver demo
│   │   └── pusch_autoencoder.rst/              # Documentation page for PUSCH autoencoder demo
│   ├── index.rst                               # main index page
│   ├── installation.rst                        # installation instructions page
│   ├── make.bat                                # make file to build doc
│   ├── Makefile                                # make file to build doc
│   ├── requirements.txt                        # doc requirements
│   ├── _static/                                # contains custom CSS, JS files
│   └── _templates/                             # empty
├── gcp-management/                             # GCP infrastructure (git submodule)
│   ├── gcloud-reset.sh                         # reset gcloud
│   ├── gcloud-setup.sh                         # setup gcloud
│   └── README.md                               # gcloud account login/setup/reset instructions
├── host_nvidia_runtime_setup.sh                # NVIDIA runtime setup script
├── LICENSE                                     # MIT license
├── poetry.lock                                 # Dependency lock file
├── pyproject.toml                              # Project configuration
└── README.md                                   # This file

Installation

Requires Python 3.10–3.12.

pip install nextgen-wireless-dl-demos

Or install from source:

git clone https://github.com/SrikanthPagadarai/nextgen-wireless-dl-demos.git
cd nextgen-wireless-dl-demos
pip install .

Requirements

  • Python 3.10–3.12
  • TensorFlow 2.x
  • Sionna ≥0.19.0
  • CUDA (optional, for GPU acceleration)

License

MIT

Docker Setup

See docker/docker-instructions.md

Quick Start

DPD Demo

See demos/dpd/README.md

MIMO OFDM Neural Receiver Demo

See demos/mimo_ofdm_neural_receiver/README.md

PUSCH Autoencoder Demo

See demos/pusch_autoencoder/README.md

References

Metadata

Release files for nextgen-wireless-dl-demos 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for nextgen-wireless-dl-demos 0.1.2
File Size Uploaded
nextgen_wireless_dl_demos-0.1.2.tar.gz 36.3 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for nextgen-wireless-dl-demos 0.1.2
File Interpreter ABI Platform
nextgen_wireless_dl_demos-0.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 72.6 MB

Release files / nextgen_wireless_dl_demos-0.1.2.tar.gz

Download URL nextgen_wireless_dl_demos-0.1.2.tar.gz
Size 36.3 MB
Tags Source
SHA-256 checksum
How to use checksums
62b97909ddc20de82e1edfa1f00d6d0c67bfb52498fb6f02100414779d31e18b
BLAKE2b-256 checksum
How to use checksums
99224467d4a18b16f87e9c986f7b29ecb72a984f4674c5ecc91118727b9e19a5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.2.1 CPython/3.12.12 Linux/6.11.0-1018-azure

Release files / nextgen_wireless_dl_demos-0.1.2-py3-none-any.whl

Download URL nextgen_wireless_dl_demos-0.1.2-py3-none-any.whl
Size 36.3 MB
Tags Python 3
SHA-256 checksum
How to use checksums
741e3be399521f0c1837d67742db04d9c960ee0a33699a4c9b4f6d61221cc0e5
BLAKE2b-256 checksum
How to use checksums
f3ec7a4328d44351950ea2787a970e81e9e0f7220b815d155dceab9d527229a4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.2.1 CPython/3.12.12 Linux/6.11.0-1018-azure

Release history Release notifications | RSS feed

This release

0.1.2 This release

2 release files

0.1.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page