Re: Simultaneous transmission and reception

David S. [email protected] wrote:

On 7/3/07, pratik hetamsaria [email protected] wrote: Hi
Everyone

I am currently trying to make a USRP transceiver run, which is based on
TDMA approach.
As a warning, the USRP and GNU Radio are going to give you some trouble
when it comes to TDMA (at least for smaller time slots). However, in
the near future the mblocks and inband signalling on the USRP will allow
you to precisely timestamp the data that is coming in from the ADC…so
if you can stand to wait (or help out with the work), it might be in
your best interest.

Elaborating on it, it should be a system which works in receive mode
for sometime, writes the data in a file and in the next slot transmits
the data which has been written in the file.

Reading from the previous archives, I figured out that switching between
the modes can be done by setting the “set_auto_tr(True)”.
The switching works lovely when writing reading and is done into and
from different files. But as soon as the same file is used, problem
starts.

I have been working on tx_voice.py and rx_voice.py. I start the receiver
first so that it writes onto the file. After few seconds, i start the
transmitter and then after every 5 seconds I make the transmit mode go
to sleep for another 5 seconds.
When you say you “make the transmit mode go to sleep”, how do you stop
sending data from the file?

------ I just use the time.sleep function for making the transmit mode
go into the sleep mode. I have assumed that it doesnt transmit during
that time because then the receiver gets active and starts receiving
packets. Reading from archives, i figured out that the USRP transmits
whenever it has some data to transmit and then gets into the receiving
mode. Please correct me if i am wrong.

But, the problem is that it works fine for some time but after that the
transmit mode stops and the receiver keeps on receiving more packets and
then we dont get into the transmit mode.
How fast are you transmitting / receiving (sampling rate)? What kind
of CPU are you using? Writing to a file continuously is a pretty
ominous task for a computer if the sampling rate is say 1MHz. If you
did this for 5 seconds, the computer may be just simply lagging behind.
(Does anyone know how fast it is possible to write to a harddrive?).
Are you getting 0u0u on the screen while its running?

----The bitrate is 50000 and samples per symbol is 5 for transmit and
receiver sides. The interpolation rate is 512 and the corresponding
decimation rate is 256. I am using a Pentium 4 3.0 GHz processor .I am
not getting any underbuffer in my case while i am transmitting. What i
get is that the transmitter simply stops after transmitting a few
packets.

Another thing to keep in mind is that the ADC is continuously sending
data across the USB. When you begin to transmit, the data sent to the
USB is just garbage (noise), so in the end you have to be constantly
throwing data away when you are transmitting. This will all change when
the mblocks are finished. Wahoo!

-----Please explain what do yo mean by “data sent to the USB is just
noise ,so u’ll have to be constantly throwing data away” .

The transmit mode stops even though the number of packets written to
file are more than read. Maybe this could be a problem of buffering or
something because if i keep the transmission in repeat mode then the
transmit mode doesnt stop. However In my case, i dont want the
transmission in repetition mode. I only want to transmit whatever i have
received. I have also ensured that the rates of receiveing and
transmission are the same.
hope this helped some

Even if the TDMA approach doesnt work, then my work can also be done
even if i use FDMA i.e I would just like that the data received be first
demodulated and remodulated and transmitted over a differnt frequency.
The only thing is that i need a function of a relay. But, I am not sure
whether with the rates i am transmitting and receiving
this could be done. Also, i have tried making the USRP as the source
and the sink by using the commands

self.u = usrp.source_c(0,decim)
self. dst = usrp.sink_c (0, options.interp)

and making the connection as
fg.connect(self.u,self.dst)

I have tried viewing the signals on the scope by using self.scope from
usrp_oscope.py . I just tried testing it by viewing signals sent from
usrp_siggen.py at a frequency of 910Mhz and retransmitted at a frequency
of 950MHz. However, the signals look very different if i just run the
usrp_oscope(original version when i just receive the signal and display
it on the oscope) and in the other case(where i retransmit it at a
different frequency). So, could somebody please point out if i am doing
any mistake over here. I have just a feeling that whatever i am doing is
pretty simple to do but maybe i am doing some mistake sumwhere…:slight_smile:

Thanks for your help
Pratik Hetamsaria

David

Could anybody please help me out with the situation.I just want to
retransmit the data received from USRP.

Thanks for all the help in advance
Pratik Hetamsaria


Here’s a new way to find what you’re looking for - Yahoo! Answers


Discuss-gnuradio mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Send free SMS to your Friends on Mobile from your Yahoo! Messenger.
Download Now! Yahoo | Mail, Weather, Search, Politics, News, Finance, Sports & Videos