Forum: GNU Radio USRP Receiver config problem

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Ad0d35ab0738dcb7a5f60f51ee3a02ec?d=identicon&s=25 unknown (Guest)
on 2009-03-26 18:25
(Received via mailing list)
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
745d8202ef5a58c1058d0e5395a78f9c?d=identicon&s=25 Eric Blossom (Guest)
on 2009-03-26 20:08
(Received via mailing list)
On Thu, Mar 26, 2009 at 01:24:37PM -0400, satarkar@eden.rutgers.edu
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
Ad0d35ab0738dcb7a5f60f51ee3a02ec?d=identicon&s=25 unknown (Guest)
on 2009-03-31 19:43
(Received via mailing list)
Attachment: e_usrp_output.txt.jpeg (50 KB)
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
Ad0d35ab0738dcb7a5f60f51ee3a02ec?d=identicon&s=25 unknown (Guest)
on 2009-04-05 10:19
(Received via mailing list)
>>
>> 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
This topic is locked and can not be replied to.