I am very new to Gnuradio and USRP, and I have a question about the code transmission delay between USRPs.
I have two USRP E310 with UBX160 daughterboards. I send a sequence of code from one USRP using simple amplitude modulation, and receive it by another USRP. On the receiver side, I use a replica of the code to cross-correlate with the received code to compute the transmission delay. However, I can’t explain this delay I obtained:
- when I set the sample rate to 200MHz/128, the delay is 26.837 us (≈ 42 samples);
- Sample rate to 200 MHz/256, the delay is 0.0537 ms (≈ 42 samples);
- Sample rate to 200 MHz/512, the delay is 0.105 ms (≈ 41 samples).
Also I recorded the date received by the USRP, it clearly shows that, no matter the sample rate is, the USRP source starts to receive the code after the 41st samples, and before are some strange values. You can find them in the attached plot.
My questions are
- why the transmission delay of the code are based on certain number of samples? should it be a certain value (some micro or Pico second)? In my case this delay changes with the sample rate.
- what are those values received by USRP before the received code? they have some similar behaviors.
- Maybe it’s not the correct way to check the transmission delay. Is there any better method for measuring it (e.g. adding time stamps)? I used USRP “rx_time” stream tags, and it always shows (xxx, 5e-9), like when it starts to receive something, maybe only the noise.
(Additionally, both USRPs have their 1 PPS and frequency ref synchronized to the external high quality atomic clock. And I set them to start transmit/receive data at exactly the same time.)
I appreciate a lot for any comments or advice !