#!/usr/bin/env python2 # -*- coding: utf-8 -*- ################################################## # GNU Radio Python Flow Graph # Title: Flight Recorder Fft # Generated: Fri Sep 8 05:12:38 2017 ################################################## from gnuradio import blocks from gnuradio import eng_notation from gnuradio import fft from gnuradio import gr from gnuradio import uhd from gnuradio.eng_option import eng_option from gnuradio.fft import window from gnuradio.filter import firdes from optparse import OptionParser import time class flight_recorder_fft(gr.top_block): def __init__(self, frequency=890e06, gain=76, output_file='test.txt', sample_rate=56e06): gr.top_block.__init__(self, "Flight Recorder Fft") ################################################## # Parameters ################################################## self.frequency = frequency self.gain = gain self.output_file = output_file self.sample_rate = sample_rate ################################################## # Blocks ################################################## self.uhd_usrp_source_0 = uhd.usrp_source( ",".join(("", "")), uhd.stream_args( cpu_format="fc32", channels=range(1), ), ) self.uhd_usrp_source_0.set_samp_rate(sample_rate) self.uhd_usrp_source_0.set_center_freq(frequency, 0) self.uhd_usrp_source_0.set_gain(gain, 0) self.uhd_usrp_source_0.set_antenna('RX2', 0) self.uhd_usrp_source_0.set_bandwidth(sample_rate, 0) self.fft_vxx_0 = fft.fft_vcc(2048, True, (window.blackmanharris(2048)), True, 1) self.blocks_stream_to_vector_0 = blocks.stream_to_vector(gr.sizeof_gr_complex*1, 2048) self.blocks_integrate_xx_0 = blocks.integrate_cc(28, 2048) self.blocks_file_sink_0 = blocks.file_sink(gr.sizeof_gr_complex*2048, output_file, False) self.blocks_file_sink_0.set_unbuffered(False) ################################################## # Connections ################################################## self.connect((self.blocks_integrate_xx_0, 0), (self.blocks_file_sink_0, 0)) self.connect((self.blocks_stream_to_vector_0, 0), (self.fft_vxx_0, 0)) self.connect((self.fft_vxx_0, 0), (self.blocks_integrate_xx_0, 0)) self.connect((self.uhd_usrp_source_0, 0), (self.blocks_stream_to_vector_0, 0)) def get_frequency(self): return self.frequency def set_frequency(self, frequency): self.frequency = frequency self.uhd_usrp_source_0.set_center_freq(self.frequency, 0) def get_gain(self): return self.gain def set_gain(self, gain): self.gain = gain self.uhd_usrp_source_0.set_gain(self.gain, 0) def get_output_file(self): return self.output_file def set_output_file(self, output_file): self.output_file = output_file self.blocks_file_sink_0.open(self.output_file) def get_sample_rate(self): return self.sample_rate def set_sample_rate(self, sample_rate): self.sample_rate = sample_rate self.uhd_usrp_source_0.set_samp_rate(self.sample_rate) self.uhd_usrp_source_0.set_bandwidth(self.sample_rate, 0) def argument_parser(): parser = OptionParser(usage="%prog: [options]", option_class=eng_option) parser.add_option( "", "--frequency", dest="frequency", type="eng_float", default=eng_notation.num_to_str(890e06), help="Set frequency [default=%default]") parser.add_option( "", "--gain", dest="gain", type="eng_float", default=eng_notation.num_to_str(76), help="Set gain [default=%default]") parser.add_option( "", "--output-file", dest="output_file", type="string", default='test.txt', help="Set output_file [default=%default]") parser.add_option( "", "--sample-rate", dest="sample_rate", type="eng_float", default=eng_notation.num_to_str(56e06), help="Set sample_rate [default=%default]") return parser def main(top_block_cls=flight_recorder_fft, options=None): if options is None: options, _ = argument_parser().parse_args() tb = top_block_cls(frequency=options.frequency, gain=options.gain, output_file=options.output_file, sample_rate=options.sample_rate) tb.start() try: raw_input('Press Enter to quit: ') except EOFError: pass tb.stop() tb.wait() if __name__ == '__main__': main()