Open
Description
ADC frequency offset is not being used in the handling of the ADC phase offset in the get_adc_phase_compensation
function.
The proposed ideal solution steps are:
- Apply oversampling to the ADC data by calculating additional intermediate
ADC samples (e.g. oversampling by a factor of 2, that should not be too
expensive computationally); - apply phase modulation in accordance with the frequency and phase settings
of the ADC object; - apply pass-band filtering similar to what is done by the hardware;
- compensate for the imperfect filter response and discard oversampling.
As a first approach, the recommendation is to implement the step 2 alone, adding a factor exp(-i * 2π * freq_offset * t)
, where t
is the timing of the sample relative to the start of the ADC object.
Thanks to @m-a-x-i-m-z for taking the time to tell us about this error and the previously presented proposed solution.