[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: USRP source starts to receive after certain samples

From: Huang Wei
Subject: Re: USRP source starts to receive after certain samples
Date: Thu, 17 Jun 2021 17:45:52 +0100

Thank you Nick! 
These explanations are very helpful! Do you know any reference where the FIR filter and buffering in the USRP are documented? I would like to study more about them.
I appreciate your help a lot.


Nick Foster <bistromath@gmail.com> 于2021年6月16日周三 下午7:00写道:
I am guessing you mean X310, since E310 doesn't take daughterboards. You are seeing the effect of FIR filter delay in the USRP's halfband filters. You can confirm this by setting the sample rate to (for instance) 200Msps/511. The use of an odd factor will result in lower filter delay but increased amplitude error toward the edges of the received spectrum.

This effect also occurs on the TX side, but because the timed transmission is queued and buffered at the radio component (which operates at 200Msps) after upconversion, the resulting latency will be much smaller: 200Msps/42, or about 200ns.


On Wed, Jun 16, 2021 at 2:09 AM Huang Wei <weizardry@gmail.com> wrote:

Hi all,

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:

  1. when I set the sample rate to 200MHz/128, the delay is 26.837 us (≈ 42 samples);
  2. Sample rate to 200 MHz/256, the delay is 0.0537 ms (≈ 42 samples);
  3. 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

  1. 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.
  2. what are those values received by USRP before the received code? they have some similar behaviors.
  3. 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 comment or advice !

reply via email to

[Prev in Thread] Current Thread [Next in Thread]