discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Discuss-gnuradio] Full duplex relay difficulties?


From: Francesco B.
Subject: [Discuss-gnuradio] Full duplex relay difficulties?
Date: Thu, 18 Dec 2008 15:16:48 -0800 (PST)

I have realized how to implement full duplex with an RFX2400... it involves
using a function called select_rx_antenna('RX2') to enable the use of the
second antenna for receiving.

In any case, with that bit of knowledge, I went about working out a short
segment of code that should work as a relay, sending anything received back
over the USRP at a different frequency. I attempted this using modified
versions of the benchmark_* files, which I've confirmed as working on
separate computers (the receiving USRP using RX2, not TX/RX).

It doesn't work, though. I specify the receiving frequency as 2.3GHz, and
the transmitting frequency as 2.8GHz, with the other computer, of course,
transmitting on 2.3GHz and receiving on 2.8GHz. benchmark_rx runs as though
it's waiting when benchmark_tx appears to be transmitting. Is the difference
in frequency of 0.5GHz not enough to compensate for interference? Or perhaps
there's some small mistake in my code that is not making it crash, but is
making it not function properly. The code for the relay is below:

from gnuradio import gr, gru, modulation_utils
from gnuradio import usrp
from gnuradio import eng_notation
from gnuradio.eng_option import eng_option
from optparse import OptionParser


class my_graph(gr.flow_graph):

    def __init__(self):
        gr.flow_graph.__init__(self)

        parser = OptionParser(option_class=eng_option)
        parser.add_option("-d", "--decim", type="int", default=256)
        parser.add_option("-f",  "--freq", type="eng_float",
default=2.8e9)
        parser.add_option("-g", "--gain", type="eng_float", default=45)
        parser.add_option("-a", "--tx-amplitude", type="eng_float",
default=32000)
        parser.add_option("-t", "--tx-freq", type="eng_float",
default=2.3e9)
        parser.add_option("-i", "--interp", type="intx", default=64)
        (options, args) =  parser.parse_args()

        src = usrp.source_c (0, options.decim)
        rx_subdev_spec = (1,0)
        src.set_mux(usrp.determine_rx_mux_value(src, rx_subdev_spec))
        rx_subdev = usrp.selected_subdev(src, rx_subdev_spec)
        rx_subdev.select_rx_antenna('RX2')
        r = src.tune(rx_subdev._which, rx_subdev, options.freq)
        print "Using RX board %s" % (rx_subdev.side_and_name())

        self._tx_amplitude = options.tx_amplitude
        self.amp = gr.multiply_const_cc(0)
        self.amp.set_k(self._tx_amplitude)

        dst = usrp.sink_c(0, options.interp)
        tx_subdev_spec = (1,0)
        dst.set_mux(usrp.determine_tx_mux_value (dst, tx_subdev_spec))
        tx_subdev = usrp.selected_subdev(dst, tx_subdev_spec)
        r = dst.tune(tx_subdev._which, tx_subdev, options.tx_freq )
        print "Using TX board %s" % (tx_subdev.side_and_name())

        self.connect(src, self.amp, dst)

if __name__ == '__main__':
    try:
        my_graph().run()
    except KeyboardInterrupt:
        pass

It is somewhat imperative that I have this functional for tomorrow. So I
will keep plugging at it, but help would be much appreciated.

~ Francesco B.

-- 
View this message in context: 
http://www.nabble.com/Full-duplex-relay-difficulties--tp21082896p21082896.html
Sent from the GnuRadio mailing list archive at Nabble.com.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]