On 7/3/07, pratik hetamsaria <address@hidden> wrote:
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.
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
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..:)
Thanks for your help
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
Here's a new way to find what you're looking for - Yahoo! Answers
Discuss-gnuradio mailing list