Skip to content

OpenDPD

CI Weekly PyPI Python License

OpenDPD is an end-to-end learning framework built in PyTorch for modeling power amplifiers (PA) and digital pre-distortion. Developed by the Lab of Efficient Machine Intelligence @ Delft University of Technology, OpenDPD now ships as both a pip-installable package and a full research codebase.

  • pip install opendpd exposes high-level Python APIs (train_pa, train_dpd, create_dataset, etc.) and an opendpd-cli entry point for quick experiments.
  • The repository provides automation scripts, dataset tooling, quantization utilities, and reproducible baselines for RF researchers.
  • Documentation includes rich examples (Python scripts + Jupyter notebooks) and detailed setup instructions for advanced users.

We invite you to contribute new backbone networks, pre-trained models, or measured PA datasets. This repository contains the complete training pipeline for OpenDPD using baseband signals from digital transmitters.

Where to start

  • Install


    pip install opendpd, or set up the research codebase from source.

    Installation

  • Learn the workflow


    PA modeling, DPD learning, quantization-aware training and validation, step by step.

    End-to-end training

  • Bring your data


    The built-in measured datasets, their format, and how to add a PA of your own.

    Datasets

  • Compare models


    The PA modeling and DPD benchmark with its methodology, evidence and reproduction script.

    Benchmark

  • Script it


    train_pa, train_dpd, run_dpd, plot_dpd and the dataset helpers from Python.

    API reference

  • Cite the work


    The papers behind OpenDPD, the measurement setup and the people who built it.

    About and citation

Quick start

Start with the Google Colab tutorial by clicking the badge below for a zero-install guided walkthrough of OpenDPD’s workflow.

Open in Colab

Demo video

Watch our Demo Video to see a real OpenDPDv2-trained neural DPD model in action achieving close to -60 dBc ACPR on a 200 MHz 256-QAM 5G NR signal with a -41.5 dBm average output power GaN PA.

OpenDPD Introduction Video

Versions

OpenDPDv2 embeds a new temporal residual (TRes)-DeltaGRU NN DPD algorithm and a new TM3.1a 5-channel x 40 MHz (200 MHz) test signal dataset, measured from a 3.5 GHz Ampleon GaN PA at 41.5 dBm average output power, named APA_200MHz, enabling fast prototyping of accurate and power-efficient NN-based DPD algorithms by streamlining learning and optimization through DPD quantization and temporal sparsity exploitation.

Version Related Papers Dataset Supported Backbones Performance
on APA_200MHz
OpenDPDv1 Algorithms
paper
paper
paper
paper
Hardware paper
paper
Collected from a 40nm CMOS DTX @ 2.4 GHz
DPA_100MHz,
DPA_160MHz,
DPA_200MHz
GRU,
LSTM,
GMP,
RVTDCNN,
VDLSTM,
DGRU,
TCN
DGRU with 1041 params:
ACPR of -58.4 dBc,
EVM of -39.1 dB
OpenDPDv2 paper Collected from a GaN Doherty @ 3.5 GHz
APA_200MHz,
APA_200MHz_b
PGJANET,
DVRJANET,
TRes-DeltaGRU
TRes-DeltaGRU with 996 params:
ACPR of -59.4 dBc,
EVM of -42.1 dB
Experiment code paperpaper Controlling,
I/Q data upload/download MATLAB code
Rohde & Schwarz SMW200A,
Keysight N9042B,
Matlab/.m