# Variable propagation delays

**URL:** <https://www.ruby-forum.com/t/variable-propagation-delays/239744>\
**Category:** GNU Radio\
**Created:** [March 12, 2014, 8:52pm UTC](https://www.ruby-forum.com/t/variable-propagation-delays/239744 "2014-03-12T20:52:26Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![musicdenotation](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/ea666f/32.png) [@musicdenotation](https://www.ruby-forum.com/u/musicdenotation)\
**Post date:** [March 12, 2014, 8:52pm UTC](https://www.ruby-forum.com/t/variable-propagation-delays/239744/1 "2014-03-12T20:52:26Z")

</div>

Hello,

My application requires very consistent propagation delays from TX to RX  
between measurements (within 1 sample or so). I am seeing some odd  
behavior  
and could use a little help.

My flowgraph is as follows:

Vector source -\> Frequency mod -\> USRP sink  
USRP source -\> Head -\> File sink

(The reason for the vector source is that it has a rewind() method that  
I  
need)

To take consecutive measurements without restarting the script (thus  
restarting the USRP PLL’s), I stop the flowgraph, rewind() the vector  
source, reset() the head, and schedule both usrp\_source and usrp\_sink  
using  
set\_start\_time(), then start the flowgraph again.

When I TX and RX on the same frequency, I get consistent propagation  
delays  
between measurements (within 1 sample). When I TX and RX on different  
frequencies (with an external frequency shifter (hardware) in the loop),  
I  
get propagation delays varying from ~2 to 10 samples between  
measurements.

Could these variations be due to residual samples in some blocks’  
buffers  
when the flowgraph is stopped and restarted? But then why are the delays  
consistent when TX and RX are the same frequency? Could it somehow be  
due  
to USRP clock phase variation when the flowgraph is restarted?

Is there any way to reset all the buffers and streams (so that each time  
the flowgraph is stopped then started, everything is “fresh”) so that  
multiple measurements can be taken without restarting the script (thus  
the  
USRP PLL’s)?
