[Top][All Lists]

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

RE: [Discuss-gnuradio] What is the simplest way to get data to/from the

From: Bahn William L Civ USAFA/DFCS
Subject: RE: [Discuss-gnuradio] What is the simplest way to get data to/from the USRP
Date: Fri, 12 Jan 2007 14:23:50 -0700

I'm just getting back to this after a few months (gotta love funding

Brief recap on what I am trying to do: I am trying to perform some very
non-conventional signal processing. To show that our basic approach is
viable it is sufficient for us to perform the following tasks:

1) Generate a waveform that we want to transmit. This waveform has data
encoded into it. Ideally, the data is just a list of numbers that we
want to send to a DAC. We can prepare this well ahead of time.

2) Broadcast the waveform generated in the previous step.

3) Receive the waveform that was broadcast and record it as a
time-sampled sequence of numbers that represent the outputs of an ADC.

4) Analyze the data and see if the information we embedded in the
waveform is recoverable. This can be done completely off-line via

The only part that we need GNUradio and/or the USRP for is #2 and #3.

Task #3:

Previously, Eric recommended the following:

> If you want to capture data from the front end and put it into a file,
> the easiest way is to use

This looks very promising for taking care of Task #3. Playing around
with it has generated a few questions:

1) What are the legal values of the decimation factor? I see a comment
in the code that the minimum factor is 4 and that the default is 16. By
experimentation I also observe that integer powers of two up to and
including 256 are legal. What is the maximum decimation allowed? Other
factors, such as 192, are permitted, but arbitrary values are not. Are
there a certain number of most significant bits in the value that can be

2) What does the FREQ parameter do? It clearly doesn't set the sampling
frequency - that appears to be a fixed 64 MSps divided by the decimation

3) I see that the -R option allows be to chose which subdevice on the
USRP, but how do I choose (or know which one if I can't choose) which
input on, say, the Basic-RX board is being used? 

BTW: I think the duplicated nomenclature is confusing. On the BasicRX
daughterboard the two inputs are labeled RX-A and RX-B, so I thought
that the -R option was referring to this selection and was wondering how
you tell it which daughterboard to pull the signal from. It wasn't until
I looked at an unpopulated USRP (since, with the four daughter boards
mounted on the USRP, the RX-A and RX-B labels are hidden) and noticed
that the daughterboard slots themselves use the same labels that I
realized what the -R option is really referring to.

4) I see in the file that the data is stored (by default) as two single
precision floating point numbers that represent a complex number.
Clearly, then, this is not simply the output of the ADC. What is it? How
do I (assuming I can) recover what the time-sequence of values coming
out of the ADC were?

5) What are the input tolerances of the BasicRX daughterboard? I have a
function generator that I want to use to send a signal into it, but want
to be sure that I don't exceed the input range of the board? Also, what
is the input impedance? Is it intended to be driven from a 50 ohm

6) Perhaps the most important question: Where do I find the answers to
the above questions? These all seem like really basic questions about
the details of the interface, but I haven't found anyplace that provides
this information.

As far as Task #2:

1) Is there any similar program in GNUradio that does the reverse of
usrp_rx_cfile? Namely, takes a file of appropriately formatted
time-sequence samples and broadcasts that waveform?

One issue I know that I need to deal with is what it means to
"broadcast" the waveform that was generated in Task #1. Ideally, at
least from a conceptual standpoint, the waveform data would represent
the actual output at the antenna so that (assuming 1-bit on-off
encoding) the sequence 0010001010 would result in three very sharp
chirps of energy being broadcast. Given the need for the USRP to perform
up-conversion, I know that this level of control is not possible (not to
mention the prohibitive bit rates that would be required). We can live
with that, but we want to get as close to that as we can. 



reply via email to

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