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: