USRP Receiver config problem

Hi,

I am trying to run ALOHA MAC on gnu radio. The modulation scheme used is
GMSK. The Tx and Rx chains are as follows:

Tx Chain:

src -> framer -> crc enoder -> fec encoder -> preamble -> nrz ->
interpolator -> Gauus filter -> FM modulator -> gain -> usrp_tx

Rx Chain

usrp_rx -> filter -> demod -> integrator filter -> correlator -> fec
decoder -> crc decoder -> extract frame

For some reason, I am unable to receive the frame when I run my python
scripts. I tested USRP boards by passing a simple sine-wave and it is
received correctly. I checked the output of usrp_tx on oscilloscope and
it
does display the frame going through. To test, whether there was any
problem in the signalblocks I replaced usrp_tx by a filesink and dumped
the output of Tx chain in a file. I replaced the usrp_rx by this file
and
the frame was correctly received. I think this means that there is
problem
of configuration with usrp_tx and usrp_rx. Following are the
configuration
scripts:

usrp_tx:

cordic_freq =29.32e6
sw_interp = 8
usrp_interp = int (128e6 / sw_interp / data_rate) #160
fs = 128e6 / usrp_interp #128e6/160 = 800e3

u = usrp.sink_c (0, usrp_interp)
u.set_tx_freq (0, cordic_freq)

usrp_rx:

r_cordic_freq = 29.32e6 # IF frequency
r_data_rate = 40e3
r_samples_per_symbol = 8

r_usrp_decim = int (64e6 / r_samples_per_symbol / r_data_rate) # 80

r_fs = r_data_rate * r_samples_per_symbol # 800 e3

initialize USRP

r_u = usrp.source_c (0, r_usrp_decim)
r_u.set_rx_freq (0, -r_cordic_freq)

Can someone help me with this?

thanks and regards,

-Sumit

On Thu, Mar 26, 2009 at 01:24:37PM -0400, [email protected]
wrote:

Rx Chain
the frame was correctly received. I think this means that there is problem
of configuration with usrp_tx and usrp_rx. Following are the configuration
scripts:

How are you doing symbol timing recovery on the receiver?

Generating logging data using gr.file_sink’s at varous points in the
graph is
often helpful in seeing what’s going on.

Eric

Hi,

Thanks for the reply, Eric!

I plotted the output of usrp_rx and it did show frame coming out. I am
attaching the output with this email (the tx keeps sending the frame if
it
doesn’t receive the ack hence more than one bursts in the image). Also,
when I use replace the usrp_rx with the tx_output file it gives
segmentation fault sometimes and runs correctly at other times. For the
segmentation fault I tried using debug as per the instructions in the
wiki
page, but when I attach the process, and press enter, the script doesn’t
run until I quit the gdb in the otehr window. Can you help me with this?

Also I am using the linux 2.6.18. Is this the problem with version? I
found some posts online saying that.

-Sumit

problem in the signalblocks I replaced usrp_tx by a filesink and dumped

Generating logging data using gr.file_sink’s at varous points in the graph
is
often helpful in seeing what’s going on.

Eric

The correlator block uses a 64-bit preamble for synchronization(The
block
is same as the gr_simple_correlator.cc). I made it print out the
detected
SYNC word whenever it reports successful detection and the printed word
is
correct. So I guess the synchronization is happening correctly.

I tried generating the logging data at various points as you suggested.
The output of usrp_rx, when plotted, clearly displayed the bursts of
incoming frames. The output of the filter block has the amplitude same
as
the output of the gain block in Tx (this was expected according to the
documentation I got with this code). I tried using “grep” with the
output
of the convolution encoder in Tx and input of convolution decoder in Rx,
but it did produce any match.

I am really at a loss about how to proceed now. Any help would be
welcome.

thanks,
Sumit