Skip to content

gnuradio/gr-dpd

Repository files navigation

gr-dpd: Digital Pre-Distortion


Overview:

The gr-dpd module is a GNU Radio implementation of Digital Pre-Distortion, a popular technique used to compensate for distortion caused due to non-linear Power Amplifiers used in wireless communication today.

This has been developed as a GSoC 2020 project under GNU Radio by Alekh Gupta under guidance of mentors: Derek Kozel, Andrej Rode and Zack Costello.

Major DPD Algorithms considered for this module are:

  • Fast RLS based Algorithm
  • LMS (Least Mean Squares) Algorithm
  • Look-Up Table based Algorithm

So, far RLS and LMS based algorithm has been implemented.

The blocks added to the module, so far, are:

Dependencies:

gr-dpd requires:

GNU Radio version = 3.8 (GR 3.8 installation guide)

Armadillo version >= 6.7

CMake version >= 3.8

gcc version >= 7.4.0

Installation:

First, you need to install the dependencies (above).

Then, you need to download this repository

$ git clone https://github.com/gnuradio/gr-dpd.git

After this, gr-dpd should be installed as any other GNU Radio out-of-tree module.

$ cd gr-dpd
$ mkdir build
$ cd build
$ cmake ..
$ make
$ sudo make install
$ sudo ldconfig

If your GNU Radio is installed in other directory (rather than /usr/local), then replace the cmake line cmake .. above with: cmake -DCMAKE_INSTALL_PREFIX=<directory of GNU Radio> ..

Working with the module:

All the progress related details of the development of this module and its proper record and resources related to this module can be found here.

Examples:

Various example flowgraphs have been added so far to demonstrate the functioning of gr-dpd blocks.

Below is the flowgraph demonstrating an RLS based pre-distortion run on a GMP model Power Amplifier:

Test.grc - flowgraph

Bugs reporting:

Kindly report any bugs or issues on Github.

Contributing to the project

If you want to contribute to the module, feel free to add the pull request. Please read the contribution guidelines of GNU Radio here.

Contact

For queries or feedback, drop a mail to discuss-gnuradio.

License

The project is licensed under GPLv3. See LICENSE for terms.