Week 9: Addition of DPD LMS Algorithm block

This week’s work is a new milestone in this project. It involved addition of DPD LMS Algorithm based learning block, its testbench flowgraph and some additional prototype codes relevant for testing the algorithm.

Below is the LMS (Least Mean Squares) based algorithm used in implementing the blocks:

Apart from taking above reference, big thanks to Chance Tarver for his MATLAB implementation – ILA-DPD available on Github. This implementation proved to be a great resource for faster implementation.

Major Commits to the gr-dpd repository are:

  • Addition of LMS_postdistorter block: This block implements Least Mean Squares based estimation of the coefficients or weight vector for predistortion. It employs two methods for updation of weight vector:
    • Newton Based: It involves calculation of error value for least squares based estimation.
      • This is weight-vector updation formula:
        • w_iMinus1 = w_iMinus1 + (ls_result * learning_rate)
    • EMA: This directly uses the corresponding PA input and output for least squares estimation.
      • This is weight-vector updation formula:
        • w_iMinus1 = ( w_iMinus1 * (1 – learning_rate) ) + (ls_result * learning_rate)
  • Addition of LMS_postdistorter GRC – YAML bindings.
  • Addition of LMS_test_two_tone_setup flowgraph for testing the predistortion effects of LMS algorithm implemented.
  • Addition of the LMS_coeff. estimator prototype code in the Prototype_Codes subdirectory of raw folder for testing purposes.
Pre-distortion effects of LMS postdistorter

Upcoming Week Tasks are:

  • Working on synchronisation in passing of message ‘taps’ to eliminate the strange behaviour.
  • Proper testing of the LMS based algorithm to eliminate bugs.
  • Working on analysing other performance characteristic parameters.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s