Exemplo n.º 1
0
    def __init__(self, fg, parent, baseband_freq=0,
                 y_per_div=10, ref_level=100, sample_rate=1, fft_size=512,
                 fft_rate=20, average=False, avg_alpha=None, title='',
                 size=default_fftsink_size):

        fft_sink_base.__init__(self, input_is_real=True, baseband_freq=baseband_freq,
                               y_per_div=y_per_div, ref_level=ref_level,
                               sample_rate=sample_rate, fft_size=fft_size,
                               fft_rate=fft_rate,
                               average=average, avg_alpha=avg_alpha, title=title)
                               
        s2p = gr.serial_to_parallel(gr.sizeof_float, fft_size)
        one_in_n = gr.keep_one_in_n(gr.sizeof_float * fft_size,
                                     int(sample_rate/fft_size/fft_rate))

        mywindow = window.blackmanharris(fft_size)
        fft = gr.fft_vfc(self.fft_size, True, mywindow)
        #fft = gr.fft_vfc(fft_size, True, True)
        c2mag = gr.complex_to_mag(fft_size)
        self.avg = gr.single_pole_iir_filter_ff(1.0, fft_size)
        log = gr.nlog10_ff(20, fft_size)
        sink = gr.file_descriptor_sink(gr.sizeof_float * fft_size, self.w_fd)

        fg.connect (s2p, one_in_n, fft, c2mag, self.avg, log, sink)
        gr.hier_block.__init__(self, fg, s2p, sink)

        self.fg = fg
        self.gl_fft_window(self)
Exemplo n.º 2
0
    def __init__(self):
        gr.top_block.__init__(self)

        parser = OptionParser(option_class=eng_option)
        parser.add_option("-f", "--freq", type="eng_float", default=1e6,
                          help="set waveform frequency to FREQ [default=%default]")
        parser.add_option ("-a", "--amplitude", type="eng_float", default=16e3,
                           help="set waveform amplitude to AMPLITUDE [default=%default]", metavar="AMPL")

        parser.add_option("-i", "--interp", type="int", default=32,
                          help="assume fgpa interpolation rate is INTERP [default=%default]")

        (options, args) = parser.parse_args ()
        if len(args) != 0:
            parser.print_help()
            raise SystemExit, 1

        
        src0 = gr.sig_source_c(master_clock/options.interp,
                               gr.GR_SIN_WAVE,
                               options.freq,
                               options.amplitude)

        
        c2s = gr.complex_to_interleaved_short()

        stdout_sink = gr.file_descriptor_sink(gr.sizeof_short, 1)

        self.connect(src0, c2s, stdout_sink)
Exemplo n.º 3
0
    def __init__(self):
        gr.top_block.__init__(self)

        parser = OptionParser(option_class=eng_option)
        parser.add_option(
            "-f",
            "--freq1",
            type="eng_float",
            default=1e6,
            help="set waveform frequency to FREQ [default=%default]")
        parser.add_option(
            "-g",
            "--freq2",
            type="eng_float",
            default=1e6,
            help="set waveform frequency to FREQ [default=%default]")
        parser.add_option(
            "-a",
            "--amplitude1",
            type="eng_float",
            default=16e3,
            help="set waveform amplitude to AMPLITUDE [default=%default]",
            metavar="AMPL")
        parser.add_option(
            "-b",
            "--amplitude2",
            type="eng_float",
            default=16e3,
            help="set waveform amplitude to AMPLITUDE [default=%default]",
            metavar="AMPL")

        parser.add_option(
            "-i",
            "--interp",
            type="int",
            default=32,
            help="assume fgpa interpolation rate is INTERP [default=%default]")

        (options, args) = parser.parse_args()
        if len(args) != 0:
            parser.print_help()
            raise SystemExit, 1

        src0 = gr.sig_source_c(master_clock / options.interp, gr.GR_SIN_WAVE,
                               options.freq1, options.amplitude1)
        src1 = gr.sig_source_c(master_clock / options.interp, gr.GR_SIN_WAVE,
                               options.freq2, options.amplitude2)

        adder = gr.add_cc()

        c2s = gr.complex_to_interleaved_short()

        stdout_sink = gr.file_descriptor_sink(gr.sizeof_short, 1)

        self.connect(src0, (adder, 0))
        self.connect(src1, (adder, 1))
        self.connect(adder, c2s, stdout_sink)
Exemplo n.º 4
0
	def __init__(self, itemsize, addr, port, server=False):
		#init hier block
		gr.hier_block2.__init__(
			self, 'tcp_sink',
			gr.io_signature(1, 1, itemsize),
			gr.io_signature(0, 0, 0),
		)
		fd = _get_sock_fd(addr, port, server)
		self.connect(self, gr.file_descriptor_sink(itemsize, fd))
Exemplo n.º 5
0
    def __init__(self, options):
        gr.top_block.__init__(self)

        if options.freq is not None:
            u = usrp2.source(options)
        elif options.infile is not None:
            u = gr.file_source(gr.sizeof_gr_complex, options.infile)
        else:
            import sys
            sys.stderr.write("--freq or --infile must be specified\n")
            raise SystemExit

        self.scope = None

        if options.outfile is not None:
            rx = gr.file_sink(gr.sizeof_gr_complex, options.outfile)
        else:
            rx = qam_rxtx.RX(options)
            framebytes = rx.framebytes
            if options.rxdata is not None:
                if options.rxdata == '-':
                    self.connect(
                        rx,
                        gr.file_descriptor_sink(gr.sizeof_char * framebytes,
                                                1))
                else:
                    self.connect(
                        rx,
                        gr.file_sink(gr.sizeof_char * framebytes,
                                     options.rxdata))

            if options.berdata is not None:
                # select one of the ber modes
                ber = qam_rxtx.BER(framebytes, 100, mode=options.bermode)
                data = qam_rxtx.make_data(framebytes)
                self.connect(rx, (ber, 0))
                self.connect(data, (ber, 1))
                if options.berdata == '-':
                    # print it out
                    msgq = gr.msg_queue(16)
                    self.connect(ber,
                                 gr.message_sink(gr.sizeof_float, msgq, True))
                    self.watcher = ofdm_rxtx.queue_watcher(msgq)
                elif options.berdata == '.':
                    import scope
                    # scope it out
                    self.scope = scope.scope(self, ber, 'Frame BER')
                else:
                    self.connect(
                        ber, gr.file_sink(gr.sizeof_float, options.berdata))
            else:
                pass
                #self.connect(rx, gr.null_sink(symbol_size)) # XXX do we still need this?

        self.connect(u, rx)
Exemplo n.º 6
0
Arquivo: qam_rx.py Projeto: UpYou/ofdm
  def __init__(self, options):
    gr.top_block.__init__(self)

    if options.freq is not None:
      u = usrp2.source(options)
    elif options.infile is not None:
      u = gr.file_source(gr.sizeof_gr_complex, options.infile)
    else:
      import sys
      sys.stderr.write("--freq or --infile must be specified\n")
      raise SystemExit

    self.scope = None

    if options.outfile is not None:
      rx = gr.file_sink(gr.sizeof_gr_complex, options.outfile)
    else:
      rx = qam_rxtx.RX(options)
      framebytes = rx.framebytes
      if options.rxdata is not None:
        if options.rxdata == '-':
          self.connect(rx, gr.file_descriptor_sink(gr.sizeof_char * framebytes, 1))
        else:
          self.connect(rx, gr.file_sink(gr.sizeof_char * framebytes, options.rxdata))

      if options.berdata is not None:
        # select one of the ber modes
        ber = qam_rxtx.BER(framebytes, 100, mode=options.bermode)
        data = qam_rxtx.make_data(framebytes)
        self.connect(rx, (ber,0))
        self.connect(data, (ber,1))
        if options.berdata == '-':
          # print it out
          msgq = gr.msg_queue(16)
          self.connect(ber, gr.message_sink(gr.sizeof_float, msgq, True))
          self.watcher = ofdm_rxtx.queue_watcher(msgq)
        elif options.berdata == '.':
          import scope
          # scope it out
          self.scope = scope.scope(self, ber, 'Frame BER')
        else:
          self.connect(ber, gr.file_sink(gr.sizeof_float, options.berdata))
      else:
        pass
        #self.connect(rx, gr.null_sink(symbol_size)) # XXX do we still need this?

    self.connect(u, rx)
Exemplo n.º 7
0
	def __init__(self, options):
		gr.flow_graph.__init__(self)

		# bandwidth = 12.5e3
		# symbol_rate = 4800

		# output_sample_rate = options.samples_per_symbol * symbol_rate
		# lcm = gru.lcm(options.sample_rate, output_sample_rate)
		# intrp = int(lcm // options.sample_rate)
		# decim = int(lcm // output_sample_rate)

		if options.input_file == '-':
			src = gr.file_descriptor_source(gr.sizeof_gr_complex, 0)
		else:
			src = gr.file_source(gr.sizeof_gr_complex, options.input_file)

		# ddc_coeffs = \
		#	gr.firdes.low_pass (1.0,
		#		options.sample_rate,
		#		bandwidth/2,
		#		bandwidth/2,
		#		gr.firdes.WIN_HANN)
		# ddc =  gr.freq_xlating_fir_filter_ccf (1,ddc_coeffs,-options.frequency,options.sample_rate)
		# resampler = blks.rational_resampler_ccc(self, intrp, decim)
		qdemod = gr.quadrature_demod_cf(1.0)

		if options.output_file == '-':
			sink = gr.file_descriptor_sink(gr.sizeof_float, 1)
		else:
			sink = gr.file_sink(gr.sizeof_float, options.output_file)

		# if options.invert:
			# inverter = gr.multiply_const_ff(-1.0)
			# self.connect(src,qdemod,inverter,sink)
		# else:

		self.connect(src,qdemod,sink)