After some good review and discussions, some experimental changes in the predistorter and RLS_postdistorter are implemented to bring about synchronised processing of ‘taps’.
The main idea is based on introduction of a new output port ‘flag’ in predistorter which will have values ‘0’ or ‘1’ (complex). These ‘flag’ values are received by postdistorter. The value of this ‘flag’ is ‘1’ if predistorter has received new taps message for corresponding input in stream, otherwise its value is ‘0’. Afterwards at postdistorter input port ‘flag’ if value received is ‘0’ then no processing or estimation of taps is done in the block and if value received is ‘1’ then new taps are estimated according to corresponding PA_input and gain_phase calibrated PA_input.
Also gain_phase_calibrate block has been updated to improve calibration by taking care to remove only the gain introduced due to Power Amplifier (PA).
Major commits to the gr-dpd repository are:
- Synchronised passing of ‘taps’ : It ensures that weight vector estimation in the RLS_postdistorter block is performed for correct corresponding values of PA_input and gain_phase_calibrated PA_output using a ‘flag’ port for the purpose (explained above). Although it is slow due to slow and uncertainity of message parsing but it still helps to avoid undesirable gain in PA_DPD output. Only present on alekh_gr branch.
- Updated gain_phase_calibrate block: A new input port namely, ‘PA_DPD’ is introduced to ensure that the gain part removed from PA_DPD output is only the gain due to Power Amplifier (PA). This change has been commited to both alekh_gr and master.
Note: All the work or commit history of alekh_gr has been moved to a new branch synchronisation_test.
Upcoming Week Tasks are:
- Updating the documentation to make gr-dpd module user friendly and easy to understand for newcomers.
- Updating the predistorter block to enable both static and training mode operation.