Debugging benchmark.py

HI,
I am trying to see communication between two usrp’s using tunnel.py
on
two virtual ports gr0 and gr1, so i am trying to run tunnel.py on 2
usrp’s
in my lab using gmsk. I am unable to receive packets in the receiver. so
i
was trying to debug. But i was unsure of certain things.

  1. There is no interpolator option. so I do not know how is sampling
    occuring, i only see it says usrp running at 64 MHz. can somebody show
    me
    a link or explain the calculations behind obtaining samples per second
    given a user set data rate, modulation,carrier threshold and amplitude
    level.

  2. How do i know how to vary the gain and carrier threshold. Because
    increasing too much gain will put the setup in nonlinear region.

  3. General ideas of debugging scripts rather than just randomly changing
    values of parameters on a trial and error basis to get desired output.

On Sat, Apr 6, 2013 at 12:46 PM, Karan T. [email protected]
wrote:

level.

The modulator and demodulator blocks are actually “hierarchical blocks” in
GR speak. Basically they are written in Python and just connect other
blocks. You can see them in gr-digital/python/{bpsk,qpsk,psk,qam}.py
etc…
the guts of each of those is in generic_mod_demod.py in the same folder.
The short answer is that symbols go through an RRC filter implemented
using
a resampling pfb. That is were interpolation happens.

  1. How do i know how to vary the gain and carrier threshold. Because
    increasing too much gain will put the setup in nonlinear region.

Good observation. A common way to set the gain in GR apps is with a
–rx-gain and --tx-gain option. That’s also an option available in the
GRC
UHD blocks and it may be more obvious there. There is also a method
available to change the gain within in application.

  1. General ideas of debugging scripts rather than just randomly changing
    values of parameters on a trial and error basis to get desired output.

Another good observation.
http://gnuradio.org/redmine/projects/gnuradio/wiki/FAQ#Flying-Blind
might
help. Basically GRC might be able to get you a working flowgraph that
you
understand faster than the (python) examples will.

Regards
Karan T.

You’ve got some great questions, but some brief advice going along with
some answers:

Don’t use benchmark_py to learn GNU Radio. You might start with the GRC
loopbacks in examples/digital/demod then see if you can use those ideas
to
make your own flowgraphs that transmit and receive with UHD
sinks/sources.
The benchmark_{rx,tx} scripts have also been kind of frowned upon, but I
think they are still reasonable examples for seeing how to create a
python
transmitter and receiver as long as you don’t go into them with the
expectation that they will solve whatever problem you’re trying to work
on
(and thus try to make them do weird things). The downside of trying to
learn from them (and tunnel) is the options are passed in a very clever
way. That’s great for adding options, but it makes it difficult to see
what
is being passed to each block and where that comes from. GRC generally
makes that a little easier.