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)
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)
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)
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))
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)
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)
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)