Forum: GNU Radio Full duplex relay difficulties?

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.
Francesco B. (Guest)
on 2008-12-19 01:46
(Received via mailing list)
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-difficulti...
Sent from the GnuRadio mailing list archive at Nabble.com.
This topic is locked and can not be replied to.