Disabling Decimation/I&Q Mixing in USRP Firmware

Hello,

I would like to compile a custom firmware to disable the decimator in
the USRP. I have two questions: 1) Is it as simple as commenting the
“`define RX_CIC_ON” line in “common_config_4rx_0tx.vh” and then
compiling the firmware? 2) USB Bandwidth is limited; by disabling the
decimation, where are the extra samples going?

Similarly, is disabling the NCO and I/Q mixing as simple as commenting
the line “`define RX_NCO_ON”?


~Jeffrey L., K1VZX

Okay,

So I think I’ve answered my own question with regards to the disabling
the NCO/Mixer and the CIC decimator stages in the receive chain. It DID
require modifying a patch that I found thanks to Google and editing the
source code so that Quartus would not give an error on compiling.

Without the decimation stage, there should not be any decimation.
Running the custom firmware suggests I was getting an approximate sample
rate of something like 25.334 MHz. I repeated the experiment using 8
bit samples and the number improve to a more respectable 32 MHz. This
seems to suggest that interleaving is still being done; the o-scope
display suggests that half of the data stream from the USRP is still
discarded (very possibly from buffer overflows?). Why am I getting
these results? Does disabling the NCO remove I/Q interleaving and
provide only real values over USB to the host?

If anyone could answer I would greatly appreciate it; I am trying to get
the highest sample rate possible from the USRP into a PC for capturing
some very short (nanosecond scale) pulses.

On 3/4/2011 5:23 AM, Jeffrey L. wrote:


~Jeffrey L., K1VZX

On 04/03/2011 2:46 PM, Jeffrey L. wrote:

sample rate of something like 25.334 MHz. I repeated the experiment
using 8 bit samples and the number improve to a more respectable 32
MHz. This seems to suggest that interleaving is still being done; the
o-scope display suggests that half of the data stream from the USRP is
still discarded (very possibly from buffer overflows?). Why am I
getting these results? Does disabling the NCO remove I/Q interleaving
and provide only real values over USB to the host?

If anyone could answer I would greatly appreciate it; I am trying to
get the highest sample rate possible from the USRP into a PC for
capturing some very short (nanosecond scale) pulses.
9000ft view here.

The USRP1 ADC runs at 64Msps, and the highest data rate you can
reasonably push over USB using the standard USRP “framing” is about
32Mbytes/second,
which for 8-bit samples tops out at 16Msps. If you go to 4-bit
samples, you can reasonably push 32Msps over the USB, and at 2-bit
samples, you could get to
64Msps, but it’ll require some work on the FPGA image.