Esempio n. 1
0
    def __init__(self, options, args, queue):
        gr.top_block.__init__(self)

        self.options = options
        self.args = args
        rate = int(options.rate)

        if options.filename is None:
            self.u = uhd.single_usrp_source("", uhd.io_type_t.COMPLEX_FLOAT32,
                                            1)
            time_spec = uhd.time_spec(0.0)
            self.u.set_time_now(time_spec)

            #if(options.rx_subdev_spec is None):
            #  options.rx_subdev_spec = ""
            #self.u.set_subdev_spec(options.rx_subdev_spec)
            if not options.antenna is None:
                self.u.set_antenna(options.antenna)

            self.u.set_samp_rate(rate)
            rate = int(self.u.get_samp_rate())  #retrieve actual

            if options.gain is None:  #set to halfway
                g = self.u.get_gain_range()
                options.gain = (g.start() + g.stop()) / 2.0

            if not (self.tune(options.freq)):
                print "Failed to set initial frequency"

            print "Setting gain to %i" % (options.gain, )
            self.u.set_gain(options.gain)
            print "Gain is %i" % (self.u.get_gain(), )

        else:
            self.u = gr.file_source(gr.sizeof_gr_complex, options.filename)

        print "Rate is %i" % (rate, )

        pass_all = 0
        if options.output_all:
            pass_all = 1

        self.demod = gr.complex_to_mag()
        self.avg = gr.moving_average_ff(100, 1.0 / 100, 400)

        #the DBSRX especially tends to be spur-prone; the LPF keeps out the
        #spur multiple that shows up at 2MHz
        self.lpfiltcoeffs = gr.firdes.low_pass(1, rate, 1.8e6, 100e3)
        self.lpfilter = gr.fir_filter_ccf(1, self.lpfiltcoeffs)

        self.preamble = air.modes_preamble(rate, options.threshold)
        #self.framer = air.modes_framer(rate)
        self.slicer = air.modes_slicer(rate, queue)

        self.connect(self.u, self.lpfilter, self.demod)
        self.connect(self.demod, self.avg)
        self.connect(self.demod, (self.preamble, 0))
        self.connect(self.avg, (self.preamble, 1))
        self.connect((self.preamble, 0), (self.slicer, 0))
Esempio n. 2
0
  def __init__(self, options, args, queue):
    gr.top_block.__init__(self)

    self.options = options
    self.args = args
    rate = int(options.rate)

    if options.filename is None:
      self.u = uhd.single_usrp_source("", uhd.io_type_t.COMPLEX_FLOAT32, 1)
      time_spec = uhd.time_spec(0.0)
      self.u.set_time_now(time_spec)

      #if(options.rx_subdev_spec is None):
      #  options.rx_subdev_spec = ""
      #self.u.set_subdev_spec(options.rx_subdev_spec)
      if not options.antenna is None:
        self.u.set_antenna(options.antenna)

      self.u.set_samp_rate(rate)
      rate = int(self.u.get_samp_rate()) #retrieve actual

      if options.gain is None: #set to halfway
        g = self.u.get_gain_range()
        options.gain = (g.start()+g.stop()) / 2.0

      if not(self.tune(options.freq)):
        print "Failed to set initial frequency"

      print "Setting gain to %i" % (options.gain,)
      self.u.set_gain(options.gain)
      print "Gain is %i" % (self.u.get_gain(),)

    else:
      self.u = gr.file_source(gr.sizeof_gr_complex, options.filename)

    print "Rate is %i" % (rate,)

    pass_all = 0
    if options.output_all :
      pass_all = 1

    self.demod = gr.complex_to_mag()
    self.avg = gr.moving_average_ff(100, 1.0/100, 400)
    
    #the DBSRX especially tends to be spur-prone; the LPF keeps out the
    #spur multiple that shows up at 2MHz
    self.lpfiltcoeffs = gr.firdes.low_pass(1, rate, 1.8e6, 100e3)
    self.lpfilter = gr.fir_filter_ccf(1, self.lpfiltcoeffs)
    
    self.preamble = air.modes_preamble(rate, options.threshold)
    #self.framer = air.modes_framer(rate)
    self.slicer = air.modes_slicer(rate, queue)
    
    self.connect(self.u, self.lpfilter, self.demod)
    self.connect(self.demod, self.avg)
    self.connect(self.demod, (self.preamble, 0))
    self.connect(self.avg, (self.preamble, 1))
    self.connect((self.preamble, 0), (self.slicer, 0))
Esempio n. 3
0
  def __init__(self, options, args, queue):
    gr.top_block.__init__(self)

    self.options = options
    self.args = args
    rate = int(options.rate)

    if options.filename is None:
      self.u = rtl_source_c()

      #if(options.rx_subdev_spec is None):
      #  options.rx_subdev_spec = ""
      #self.u.set_subdev_spec(options.rx_subdev_spec)
      if not options.antenna is None:
        self.u.set_antenna(options.antenna)

      self.u.set_sample_rate(rate)

      if not(self.tune(options.freq)):
        print "Failed to set initial frequency"

      print "Setting gain to %i" % (options.gain,)
      self.u.set_gain(options.gain)
      print "Gain is %i" % (options.gain,)

      self.u.set_verbose(0)
    else:
      self.u = gr.file_source(gr.sizeof_gr_complex, options.filename)

    print "Rate is %i" % (rate,)

    pass_all = 0
    if options.output_all :
      pass_all = 1

    self.demod = gr.complex_to_mag()
    self.avg = gr.moving_average_ff(100, 1.0/100, 400)
    
    #the DBSRX especially tends to be spur-prone; the LPF keeps out the
    #spur multiple that shows up at 2MHz
#    self.lpfiltcoeffs = gr.firdes.low_pass(1, rate, 0.9*rate/2, 50e3)
#    self.lpfiltcoeffs = gr.firdes.low_pass(1, rate, 0.9*rate/2, 100e3)
    self.lpfiltcoeffs = gr.firdes.high_pass(1, rate, 1e3, 100e3)
    self.lpfilter = gr.fir_filter_ccf(1, self.lpfiltcoeffs)
    
    self.preamble = air.modes_preamble(rate, options.threshold)
    #self.framer = air.modes_framer(rate)
    self.slicer = air.modes_slicer(rate, queue)
    
    self.connect(self.u, self.lpfilter, self.demod)
    self.connect(self.demod, self.avg)
    self.connect(self.demod, (self.preamble, 0))
    self.connect(self.avg, (self.preamble, 1))
    self.connect((self.preamble, 0), (self.slicer, 0))