UHD example on USRP1

Hello All,

I have a USRP1. I’m trying to run the tx_waveforms UHD example.

While using tx_waveforms, we have some parameters we nwwd to provide at
the
command line.

  1. What is the parameter --spb, samples per buffer. And generally, what
    is
    this buffer?
  2. What is the relationship between spb (sample per buffer), duration
    (number of seconds to transmit) and rate (rate of outgoing samples) and
    wave-freq (waveform frequency in Hz)?

Thanks,

Shiva.

Also, I want to know if this is correct: While we are working with signals
on the host PC, we’re using complex float 64 bit data. This means we have 32
bit I data and 32 bit Q data. But when the USRP code (UHD or Gnuradio USRP
code) on the host PC sends this data to the USRP, it converts this float
type to short, i.e 16 bit I and 16 bit Q. So, over the USB interface, only
16 bit signed integers can travel back and forth.

All data over the wire is 32 bits per sample (16I, 16Q). UHD supports
conversions between the over the wire format and complexfloat32 and
complexint16, and in the future complexint8.

There is no conversion for complexfloat64 because, the dynamic range
does not require it, and using doubles to represent signals would
require unnecessary extra CPU load.

If this is the case, can you tell me the name and location of the .cpp file
in the UHD source package, that has code for this output format conversion
from complex to interleaved short I and Q. In the GNURadio framework,
I find this code in /gr-usrp/src/usrp_sink_c.cc.

The conversion code is here:
http://code.ettus.com/redmine/ettus/projects/uhd/repository/revisions/master/show/host/lib/convert

-Josh

  1. What is the parameter --spb, samples per buffer. And generally, what is
    this buffer?

This is the buffer that the application fills with samples, and passes
into the call device->send()

  1. What is the relationship between spb (sample per buffer), duration
    (number of seconds to transmit) and rate (rate of outgoing samples) and
    wave-freq (waveform frequency in Hz)?

Samples per buffer is independent of these other variables. Indirectly,
it controls how often the call to send() occurs. The option is there to
allow users to experiment with various buffer sizes.

-josh

Hi Josh,

Thanks for the reply.

Also, I want to know if this is correct: While we are working with
signals
on the host PC, we’re using complex float 64 bit data. This means we
have 32
bit I data and 32 bit Q data. But when the USRP code (UHD or Gnuradio
USRP
code) on the host PC sends this data to the USRP, it converts this float
type to short, i.e 16 bit I and 16 bit Q. So, over the USB interface,
only
16 bit signed integers can travel back and forth.

If this is the case, can you tell me the name and location of the .cpp
file
in the UHD source package, that has code for this output format
conversion
from complex to interleaved short I and Q. In the GNURadio
framework,
I find this code in /gr-usrp/src/usrp_sink_c.cc.

Thanks,

Shiva