Phase measurement with LimeSDR mini in GNU Radio

Hi all,

I am trying to measure phases of the five sinusoids in a loopback configuration with LimdSDR mini in GNU Radio environment.
The flowgraph is described below.

I set the FFT size as 2048, and the five carriers are spaced with integer multiples of FFT bin spacing, thus resulting the period of the combined signal as 128 samples.
I monitor the phase of the FFT bin at the carrier frequency to extract the phase of the carrier.
This perfectly gives the phases of five carriers in a simulation.
However, when I utilize the LimeSuite Sink blocks, there are unpredictable RX timing jumps over time, which screws the carrier phases except the DC carrier.
Please see the captured measurement screen below.

The upper scope shows the received waveform, the middle one shows the phase of the 4th carrier (FFT bin near 6.4 us indicates the phase), and the lower one shows the magnitude of the signal FFT.
Does anyone have good idea for solving this problem?
I want the phase to be static during the measurement.


Hey hanc,

Are you using ubuntu and if so did you compile gr-limedsr from source? If so you could edit these lines to see if any dropped packets happened.
Change ‘false’ to ‘true’:

Recompile and reinstall. I’m guessing you are dropping RX packets there and might need to lower the sampling rate.

Also, since you are using hardware throttling( by using a physical board) you need to remove ‘Throttle’ block from your flowgraph.

Remove throttle from both tx and rx or just rx? I have never used a device tx sink is why I ask.

Throttle should not be used when any stream(RX or TX) is connected to hardware. You can read more here.