USRP Software Radio

cancel
Showing results for 
Search instead for 
Did you mean: 

configuring IQ / Number of Samples for USRP2920

Solved!
Go to solution

Hello,

 

I've been trying to record HF-Signal using the USRP 2920. I got unexpected behavior for some configurations of IQ rate and Number of Samples.

When setting the IQ to 1M as example and Numbers of Samples to 60984, the recorded file remaind empty even after recording over a long period of time. It looks like for a given IQ there is an appropriate Number of sample applicable.

 

Do someone know the trade off to be made between bo parameters?

 

thanks for any suggestions

 

0 Kudos
Message 1 of 8
(7,406 Views)

Hi Aristocrate,

 

how is your USRP configured? Do you set the number of samples to finite or do you acquire them continuosly?

 

Is there a configuration that worrks for you?

 

Best regards,

Melanie

Best regards,
Melanie Eisfeld
Senior Applications Engineer, National Instruments Germany
Certified LabVIEW Developer
Certified TestStand Architect
0 Kudos
Message 2 of 8
(7,382 Views)

Hi melanie,

actually, I acquire the data continually. The issue isn't about how long you can record rather it consern the number of samples you can fetch at a time. There is a limit samples length - In relation to the IQ rate - the USRP can fectch at a time to represent data correctly in specified format.

Did you come about something new on this?

 

Kind regards

Bolivar Djamen

0 Kudos
Message 3 of 8
(7,317 Views)

Hi Bolivar,

 

There are a few considerations and facts in my knowledge:

  • The number of samples that you specify as input to the fetch VI is the number of samples that will be fetched by your host from the NI-USRP device per fetch call.
  • NI-USRP driver (at the host level) will try to acquire these configured number of samples within the timeout specified by you and if it is not able to fetch these from the device you would get a timeout error.
  • The maximum communication speed/data rate between the device and the host is governed by the communication medium used between the two.(in this case the ethernet connection 1Gbit per sec).
  • Once you call the initiate VI the NI-USRP device starts capturing data.

So when you configure the timeout, number of samples and the IQ rate of operation following pointers might help.

  • Is the amount of data that you want to fetch (number of samples * data width) fetchable within the timeout configured ?
  • Are you fetching out samples quickly enough so that the device buffers do not  overflow due to a high IQ rate ?

That being said. let's say we fix IQ rate at 1M

  • Very small sample sizes will result in a lower actual data rate due to the overhead associated with every fetch call might even cause device buffer overflow.
  • Very large sample sizes might work if above considerations are made.
  • A good sample size for your application might be found by making a small benchmark and calculating the actual time taken by the fetch VI call to execute to get a fixed amount of data at various sample sizes and picking the best sample size for your application. I think multiples of 1024 might work better for sample size.

I am not sure if this solves your problem.

Thanks.

 

0 Kudos
Message 4 of 8
(7,261 Views)

Hi vvkakade,

I've performed the Benchmark as you recommended. I recorded for around one minute (IQ rate = 200k) a signal with differents number of samples in binary format and observed the data size on hard drive . That's what I came across:

8192 samples - 8 KB

4096 samples - 35 545KB

3072 samples - 72 624 KB

2048 samples -110 800KB

1024 samples - 150 625KB

I've set the timeout high enough to avoid timeout error. That's why I still believe there is a trade-off to be made between IQ rate and number of samples. Or as you pointed out, a benchmark have to be performed to determine which configuration suits ones application.

However, I have another as to streaming with USRP 2920. I would like to configure read/write speeds (from and to USRP) programatically according to my USRP setting such as to avoid buffer underflow when transmitting and buffer overflow when receiving from USRP. Since I am using Producer/consumer architecture, I would like to keep the number of elements in queue to its minimale value. Can you give me a clue how to actually perform this?

 

Thanks a lots for your support

 

0 Kudos
Message 5 of 8
(7,238 Views)
Solution
Accepted by Aristocrate

Hi Bolivar,

 

As regards continuous transmission in a loop, I think it might help you to do a small chunk of finite transmission before you actually start the continuous transmission immediately in a loop. The reasoning being this small initial transmission might help priming up the Tx buffer and prevent underflows due to the USRP device waiting for data and not getting it.

As for relation between the right size for a given IQ rate, I do not have an accurate answer at this point.

 

Thanks and all the best.

 

0 Kudos
Message 6 of 8
(7,200 Views)

Hi,

I could solve the problem following your guidance. I've initialize the device and send burst data. Then in the loop I initialized the device at each iteration same as in the example VI Continous Spectrum Monitoring. Altough I dont understand why the first transmission out of the loop perform, it works.

 

However, I still have other issue in transmission path. That is an buffer underflow, When I attempt to perform a continous transmission.

Is there a particular setting for continous transmission as well (not continous Asynchrone)?

 

 

thanks for your support

 

 

0 Kudos
Message 7 of 8
(7,187 Views)

Hi,

 

I have a little bit different question about IQ Rate. I am working on narrowband application that requires 24KHz bandwidth, so I want to  set my IQ rate to 24K but it is coarced to 195.312K IQ rate.I am using USRP 2920 and I don't known whether it is caused by the device capability. How can I assign 24K IQ rate to this devices?

 

Thanks

0 Kudos
Message 8 of 8
(6,203 Views)