Exemplo n.º 1
0
    def test_003_cc(self):
	src_data = [1.0+1.0j, 2.0+2.0j, 3.0+3.0j, 4.0+4.0j, 5.0+5.0j, 6.0+6.0j]
	dst_data = [6.0+6.0j, 15.0+15.0j]
	src = blocks.vector_source_c(src_data)
	itg = blocks.integrate_cc(3)
	dst = blocks.vector_sink_c()
	self.tb.connect(src, itg, dst)
	self.tb.run()
	self.assertComplexTuplesAlmostEqual(dst_data, dst.data(), 6)
Exemplo n.º 2
0
 def test_003_cc(self):
     src_data = [1.0+1.0j, 2.0+2.0j, 3.0+3.0j, 4.0+4.0j, 5.0+5.0j, 6.0+6.0j]
     dst_data = [6.0+6.0j, 15.0+15.0j]
     src = blocks.vector_source_c(src_data)
     itg = blocks.integrate_cc(3)
     dst = blocks.vector_sink_c()
     self.tb.connect(src, itg, dst)
     self.tb.run()
     self.assertComplexTuplesAlmostEqual(dst_data, dst.data(), 6)
Exemplo n.º 3
0
    def test_003_cc_vec(self):
	src_data = [1.0+1.0j, 2.0+2.0j, 3.0+3.0j, 4.0+4.0j, 5.0+5.0j, 6.0+6.0j]
	dst_data = [9.0+9.0j, 12.0+12.0j]
	vlen = 2
	src = blocks.vector_source_c(src_data, False, vlen)
	itg = blocks.integrate_cc(3, vlen)
	dst = blocks.vector_sink_c(vlen)
	self.tb.connect(src, itg, dst)
	self.tb.run()
	self.assertComplexTuplesAlmostEqual(dst_data, dst.data(), 6)
Exemplo n.º 4
0
 def test_003_cc_vec(self):
     src_data = [1.0+1.0j, 2.0+2.0j, 3.0+3.0j, 4.0+4.0j, 5.0+5.0j, 6.0+6.0j]
     dst_data = [9.0+9.0j, 12.0+12.0j]
     vlen = 2
     src = blocks.vector_source_c(src_data, False, vlen)
     itg = blocks.integrate_cc(3, vlen)
     dst = blocks.vector_sink_c(vlen)
     self.tb.connect(src, itg, dst)
     self.tb.run()
     self.assertComplexTuplesAlmostEqual(dst_data, dst.data(), 6)
Exemplo n.º 5
0
    def __init__(self, delay=1, spread_seq=(1, -1)):
        gr.hier_block2.__init__(
            self,
            "Variable Symbol Rate Modulation Demodulator",
            gr.io_signature(1, 1, gr.sizeof_gr_complex * 1),
            gr.io_signature(1, 1, gr.sizeof_gr_complex * 1),
        )

        ##################################################
        # Parameters
        ##################################################
        self.delay = delay
        self.spread_seq = spread_seq

        ##################################################
        # Blocks
        ##################################################
        self.blocks_vector_to_stream_0_0_0 = blocks.vector_to_stream(
            gr.sizeof_gr_complex * 1,
            len(spread_seq) + 1)
        self.blocks_vector_to_stream_0_0 = blocks.vector_to_stream(
            gr.sizeof_gr_complex * 1,
            len(spread_seq) + 1)
        self.blocks_stream_to_vector_0_0 = blocks.stream_to_vector(
            gr.sizeof_gr_complex * 1, 1 + len(spread_seq))
        self.blocks_multiply_const_vxx_0_0_0_0 = blocks.multiply_const_vcc(
            (1 / float(len(spread_seq)), ))
        self.blocks_multiply_const_vxx_0_0_0 = blocks.multiply_const_vcc(
            ([1] + [0] * len(spread_seq)))
        self.blocks_multiply_const_vxx_0_0 = blocks.multiply_const_vcc(
            ((0, ) + spread_seq))
        self.blocks_interleave_0 = blocks.interleave(gr.sizeof_gr_complex * 1,
                                                     1)
        self.blocks_integrate_xx_0_0 = blocks.integrate_cc(
            len(spread_seq) + 1, 1)
        self.blocks_integrate_xx_0 = blocks.integrate_cc(
            len(spread_seq) + 1, 1)
        self.blocks_delay_0 = blocks.delay(gr.sizeof_gr_complex * 1, delay)

        ##################################################
        # Connections
        ##################################################
        self.connect((self.blocks_delay_0, 0),
                     (self.blocks_stream_to_vector_0_0, 0))
        self.connect((self.blocks_integrate_xx_0, 0),
                     (self.blocks_multiply_const_vxx_0_0_0_0, 0))
        self.connect((self.blocks_integrate_xx_0_0, 0),
                     (self.blocks_interleave_0, 0))
        self.connect((self.blocks_interleave_0, 0), (self, 0))
        self.connect((self.blocks_multiply_const_vxx_0_0, 0),
                     (self.blocks_vector_to_stream_0_0, 0))
        self.connect((self.blocks_multiply_const_vxx_0_0_0, 0),
                     (self.blocks_vector_to_stream_0_0_0, 0))
        self.connect((self.blocks_multiply_const_vxx_0_0_0_0, 0),
                     (self.blocks_interleave_0, 1))
        self.connect((self.blocks_stream_to_vector_0_0, 0),
                     (self.blocks_multiply_const_vxx_0_0, 0))
        self.connect((self.blocks_stream_to_vector_0_0, 0),
                     (self.blocks_multiply_const_vxx_0_0_0, 0))
        self.connect((self.blocks_vector_to_stream_0_0, 0),
                     (self.blocks_integrate_xx_0, 0))
        self.connect((self.blocks_vector_to_stream_0_0_0, 0),
                     (self.blocks_integrate_xx_0_0, 0))
        self.connect((self, 0), (self.blocks_delay_0, 0))
    def __init__(self,
                 directory="/mnt/buf0",
                 gaindB=35,
                 samp_rate=30.72e6,
                 src_name='unknown_source',
                 lo_freq=-1):
        gr.top_block.__init__(self, "Polarimetric Interferometry")
        self.directory = directory
        self.src_name = src_name
        self.samp_rate = samp_rate
        self.lo_freq = lo_freq

        self.nfft = nfft = 256
        nthreads = 1
        fc = 512e6
        output_rate = 0.1
        parallel_ffts = 2
        self.decim = decim = int(output_rate * samp_rate / nfft)
        interleave_block = decim
        self.nchans = nchans = 4
        self.npairs = npairs = nchans * (nchans - 1) // 2

        self.uhd_usrp_source_0 = uhd.usrp_source(
            ",".join(("addr0=10.11.1.50, addr1=10.11.1.52", "")),
            uhd.stream_args(
                cpu_format="sc16",
                otw_format="sc16",
                args='',
                channels=list(range(nchans)),
            ),
        )
        for mb in range(2):
            self.uhd_usrp_source_0.set_time_source('external', mb)
            self.uhd_usrp_source_0.set_clock_source('external', mb)
        for chan in range(nchans):
            self.uhd_usrp_source_0.set_center_freq(fc, chan)
            self.uhd_usrp_source_0.set_gain(gaindB, chan)
            self.uhd_usrp_source_0.set_antenna('RX2', chan)
        self.uhd_usrp_source_0.set_samp_rate(samp_rate)
        self.uhd_usrp_source_0.set_time_unknown_pps(uhd.time_spec())
        self.uhd_usrp_source_0.set_time_next_pps(
            uhd.time_spec(int(time.time()) + 1))
        self.uhd_usrp_source_0.set_lo_export_enabled(True, "lo1", 0)
        self.uhd_usrp_source_0.set_rx_lo_dist(True, "LO_OUT_0")
        self.uhd_usrp_source_0.set_rx_lo_dist(True, "LO_OUT_1")
        for chan in range(nchans):
            self.uhd_usrp_source_0.set_lo_source("external", "lo1", chan)
        time.sleep(1)

        self.deinterleaves = [
            blocks.deinterleave(gr.sizeof_short * 2, nfft * interleave_block)
            for _ in range(nchans)
        ]
        self.ishort_to_complexs = [[
            blocks.interleaved_short_to_complex(True, False)
            for _ in range(parallel_ffts)
        ] for _ in range(nchans)]
        self.stream_to_vectors = [[
            blocks.stream_to_vector(gr.sizeof_gr_complex, nfft)
            for _ in range(parallel_ffts)
        ] for _ in range(nchans)]
        self.ffts = [[
            fft.fft_vcc(nfft, True, window.rectangular(nfft), True, nthreads)
            for _ in range(parallel_ffts)
        ] for _ in range(nchans)]

        self.powers = [[
            blocks.complex_to_mag_squared(nfft) for _ in range(parallel_ffts)
        ] for _ in range(nchans)]
        self.power_avgs = [[
            blocks.integrate_ff(decim, nfft) for _ in range(parallel_ffts)
        ] for _ in range(nchans)]
        self.interleave_powers = [
            blocks.interleave(gr.sizeof_float * nfft,
                              interleave_block // decim) for _ in range(nchans)
        ]

        self.crossprods = [[
            blocks.multiply_conjugate_cc(nfft) for _ in range(parallel_ffts)
        ] for _ in range(npairs)]
        self.crossprods_avgs = [[
            blocks.integrate_cc(decim, nfft) for _ in range(parallel_ffts)
        ] for _ in range(npairs)]
        self.interleave_crossprods = [
            blocks.interleave(gr.sizeof_gr_complex * nfft,
                              interleave_block // decim) for _ in range(npairs)
        ]

        for chan in range(nchans):
            self.connect((self.uhd_usrp_source_0, chan),
                         self.deinterleaves[chan])
            for j in range(parallel_ffts):
                self.connect((self.deinterleaves[chan], j),
                             self.ishort_to_complexs[chan][j],
                             self.stream_to_vectors[chan][j],
                             self.ffts[chan][j], self.powers[chan][j],
                             self.power_avgs[chan][j],
                             (self.interleave_powers[chan], j))

        pairs = [(j, k) for j in range(nchans) for k in range(j + 1, nchans)]
        for j, p in enumerate(pairs):
            for k in range(parallel_ffts):
                for t in range(2):
                    self.connect(self.ffts[p[t]][k],
                                 (self.crossprods[j][k], t))
                self.connect(self.crossprods[j][k], self.crossprods_avgs[j][k],
                             (self.interleave_crossprods[j], k))
    def __init__(self):
        grc_wxgui.top_block_gui.__init__(self,
                                         title="Vor Receive Realtime Clean")

        ##################################################
        # Variables
        ##################################################
        self.morse_vol = morse_vol = 10
        self.samp_rate = samp_rate = 32000
        self.rtl_gain = rtl_gain = 42
        self.rtl_freq = rtl_freq = 112500e3
        self.morse_gain = morse_gain = pow(10, morse_vol / 10)
        self.morse_amp_level = morse_amp_level = 0
        self.PI = PI = 3.14159

        ##################################################
        # Blocks
        ##################################################
        self.wxgui_scopesink2_1_0_0 = scopesink2.scope_sink_f(
            self.GetWin(),
            title='Morse',
            sample_rate=samp_rate / (1600),
            v_scale=0,
            v_offset=0,
            t_scale=0,
            ac_couple=False,
            xy_mode=False,
            num_inputs=1,
            trig_mode=wxgui.TRIG_MODE_STRIPCHART,
            y_axis_label='Amp',
        )
        self.Add(self.wxgui_scopesink2_1_0_0.win)
        self.rtlsdr_source_0 = osmosdr.source(args="numchan=" + str(1) + " " +
                                              '')
        self.rtlsdr_source_0.set_sample_rate(samp_rate * 64)
        self.rtlsdr_source_0.set_center_freq(rtl_freq, 0)
        self.rtlsdr_source_0.set_freq_corr(0, 0)
        self.rtlsdr_source_0.set_dc_offset_mode(0, 0)
        self.rtlsdr_source_0.set_iq_balance_mode(0, 0)
        self.rtlsdr_source_0.set_gain_mode(False, 0)
        self.rtlsdr_source_0.set_gain(rtl_gain, 0)
        self.rtlsdr_source_0.set_if_gain(20, 0)
        self.rtlsdr_source_0.set_bb_gain(20, 0)
        self.rtlsdr_source_0.set_antenna('', 0)
        self.rtlsdr_source_0.set_bandwidth(0, 0)

        self.pfb_decimator_ccf_0 = pfb.decimator_ccf(
            64, (firdes.low_pass(1, samp_rate * 64, 16e3, 200e3)), 0, 100,
            True, True)
        self.pfb_decimator_ccf_0.declare_sample_delay(0)

        _morse_vol_sizer = wx.BoxSizer(wx.VERTICAL)
        self._morse_vol_text_box = forms.text_box(
            parent=self.GetWin(),
            sizer=_morse_vol_sizer,
            value=self.morse_vol,
            callback=self.set_morse_vol,
            label='Morse Volume (dB):',
            converter=forms.float_converter(),
            proportion=0,
        )
        self._morse_vol_slider = forms.slider(
            parent=self.GetWin(),
            sizer=_morse_vol_sizer,
            value=self.morse_vol,
            callback=self.set_morse_vol,
            minimum=-25,
            maximum=25,
            num_steps=1000,
            style=wx.SL_HORIZONTAL,
            cast=float,
            proportion=1,
        )
        self.Add(_morse_vol_sizer)

        def _morse_amp_level_probe():
            while True:
                val = self.morse_amp.level()
                try:
                    self.set_morse_amp_level(val)
                except AttributeError:
                    pass
                time.sleep(1.0 / (25))

        _morse_amp_level_thread = threading.Thread(
            target=_morse_amp_level_probe)
        _morse_amp_level_thread.daemon = True
        _morse_amp_level_thread.start()

        self.hilbert_fc_0 = filter.hilbert_fc(64, firdes.WIN_HAMMING, 6.76)
        self.goertzel_fc_0_0 = fft.goertzel_fc(samp_rate, 3200, 30)
        self.goertzel_fc_0 = fft.goertzel_fc(samp_rate, 3200, 30)
        self.freq_xlating_fft_filter_ccc_0 = filter.freq_xlating_fft_filter_ccc(
            1, (firdes.low_pass(1, samp_rate, 480 * 2, 500 * 2)), 9960,
            samp_rate)
        self.freq_xlating_fft_filter_ccc_0.set_nthreads(1)
        self.freq_xlating_fft_filter_ccc_0.declare_sample_delay(0)
        self.blocks_tcp_server_sink_0 = blocks.tcp_server_sink(
            gr.sizeof_gr_complex * 1, '0.0.0.0', 20000, True)
        self.blocks_multiply_const_vxx_0 = blocks.multiply_const_vff(
            (morse_gain, ))
        self.blocks_multiply_conjugate_cc_0 = blocks.multiply_conjugate_cc(1)
        self.blocks_integrate_xx_1 = blocks.integrate_ff(1600, 1)
        self.blocks_integrate_xx_0 = blocks.integrate_cc(8, 1)
        self.blocks_complex_to_mag_squared_0 = blocks.complex_to_mag_squared(1)
        self.blocks_complex_to_mag_0 = blocks.complex_to_mag(1)
        self.band_pass_filter_0 = filter.fir_filter_fcc(
            1,
            firdes.complex_band_pass(1, samp_rate, 1010, 1030, 100,
                                     firdes.WIN_HAMMING, 6.76))
        self.audio_sink_0_0 = audio.sink(samp_rate, '', True)
        self.analog_wfm_rcv_0 = analog.wfm_rcv(
            quad_rate=samp_rate,
            audio_decimation=1,
        )
        self.analog_agc3_xx_0 = analog.agc3_cc(1e-3, 1e-4, 1.0, 1.0, 1)
        self.analog_agc3_xx_0.set_max_gain(65536)

        ##################################################
        # Connections
        ##################################################
        self.connect((self.analog_agc3_xx_0, 0),
                     (self.blocks_complex_to_mag_0, 0))
        self.connect((self.analog_wfm_rcv_0, 0), (self.goertzel_fc_0_0, 0))
        self.connect((self.band_pass_filter_0, 0),
                     (self.blocks_complex_to_mag_squared_0, 0))
        self.connect((self.blocks_complex_to_mag_0, 0),
                     (self.band_pass_filter_0, 0))
        self.connect((self.blocks_complex_to_mag_0, 0),
                     (self.goertzel_fc_0, 0))
        self.connect((self.blocks_complex_to_mag_0, 0), (self.hilbert_fc_0, 0))
        self.connect((self.blocks_complex_to_mag_squared_0, 0),
                     (self.blocks_integrate_xx_1, 0))
        self.connect((self.blocks_complex_to_mag_squared_0, 0),
                     (self.blocks_multiply_const_vxx_0, 0))
        self.connect((self.blocks_integrate_xx_0, 0),
                     (self.blocks_tcp_server_sink_0, 0))
        self.connect((self.blocks_integrate_xx_1, 0),
                     (self.wxgui_scopesink2_1_0_0, 0))
        self.connect((self.blocks_multiply_conjugate_cc_0, 0),
                     (self.blocks_integrate_xx_0, 0))
        self.connect((self.blocks_multiply_const_vxx_0, 0),
                     (self.audio_sink_0_0, 0))
        self.connect((self.freq_xlating_fft_filter_ccc_0, 0),
                     (self.analog_wfm_rcv_0, 0))
        self.connect((self.goertzel_fc_0, 0),
                     (self.blocks_multiply_conjugate_cc_0, 0))
        self.connect((self.goertzel_fc_0_0, 0),
                     (self.blocks_multiply_conjugate_cc_0, 1))
        self.connect((self.hilbert_fc_0, 0),
                     (self.freq_xlating_fft_filter_ccc_0, 0))
        self.connect((self.pfb_decimator_ccf_0, 0), (self.analog_agc3_xx_0, 0))
        self.connect((self.rtlsdr_source_0, 0), (self.pfb_decimator_ccf_0, 0))
Exemplo n.º 8
0
    def __init__(self):
        gr.top_block.__init__(self, "Top Block")
        Qt.QWidget.__init__(self)
        self.setWindowTitle("Top Block")
        qtgui.util.check_set_qss()
        try:
            self.setWindowIcon(Qt.QIcon.fromTheme('gnuradio-grc'))
        except:
            pass
        self.top_scroll_layout = Qt.QVBoxLayout()
        self.setLayout(self.top_scroll_layout)
        self.top_scroll = Qt.QScrollArea()
        self.top_scroll.setFrameStyle(Qt.QFrame.NoFrame)
        self.top_scroll_layout.addWidget(self.top_scroll)
        self.top_scroll.setWidgetResizable(True)
        self.top_widget = Qt.QWidget()
        self.top_scroll.setWidget(self.top_widget)
        self.top_layout = Qt.QVBoxLayout(self.top_widget)
        self.top_grid_layout = Qt.QGridLayout()
        self.top_layout.addLayout(self.top_grid_layout)

        self.settings = Qt.QSettings("GNU Radio", "top_block")

        if StrictVersion(Qt.qVersion()) < StrictVersion("5.0.0"):
            self.restoreGeometry(self.settings.value("geometry").toByteArray())
        else:
            self.restoreGeometry(
                self.settings.value("geometry", type=QtCore.QByteArray))

        ##################################################
        # Variables
        ##################################################
        self.vec_length = vec_length = 400
        self.sinc_sample_locations = sinc_sample_locations = np.arange(
            -np.pi * 4 / 2.0, np.pi * 4 / 2.0, np.pi / vec_length)
        self.timenow = timenow = datetime.now().strftime("%Y-%m-%d_%H.%M.%S")
        self.sinc = sinc = np.sinc(sinc_sample_locations / np.pi)
        self.prefix = prefix = "/home/dspradio/grc_data/"
        self.samp_rate = samp_rate = 10e6
        self.recfile = recfile = prefix + timenow + "rtl_drift.h5"
        self.integration_time = integration_time = .0002
        self.freq = freq = 1420.5e6
        self.display_integration = display_integration = 0.0002
        self.delay1 = delay1 = 0
        self.custom_window = custom_window = sinc * np.hamming(4 * vec_length)

        ##################################################
        # Blocks
        ##################################################
        self._delay1_range = Range(0, 100, 1, 0, 200)
        self._delay1_win = RangeWidget(self._delay1_range, self.set_delay1,
                                       "delay1", "counter_slider", int)
        self.top_layout.addWidget(self._delay1_win)
        self.qtgui_vector_sink_f_0_1 = qtgui.vector_sink_f(
            vec_length,
            0,
            1,
            "x-Axis",
            "y-Axis",
            "one",
            2  # Number of inputs
        )
        self.qtgui_vector_sink_f_0_1.set_update_time(.1)
        self.qtgui_vector_sink_f_0_1.set_y_axis(-140, 10)
        self.qtgui_vector_sink_f_0_1.enable_autoscale(True)
        self.qtgui_vector_sink_f_0_1.enable_grid(False)
        self.qtgui_vector_sink_f_0_1.set_x_axis_units("")
        self.qtgui_vector_sink_f_0_1.set_y_axis_units("")
        self.qtgui_vector_sink_f_0_1.set_ref_level(0)

        labels = ['', '', '', '', '', '', '', '', '', '']
        widths = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
        colors = [
            "blue", "red", "green", "black", "cyan", "magenta", "yellow",
            "dark red", "dark green", "dark blue"
        ]
        alphas = [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0]
        for i in xrange(2):
            if len(labels[i]) == 0:
                self.qtgui_vector_sink_f_0_1.set_line_label(
                    i, "Data {0}".format(i))
            else:
                self.qtgui_vector_sink_f_0_1.set_line_label(i, labels[i])
            self.qtgui_vector_sink_f_0_1.set_line_width(i, widths[i])
            self.qtgui_vector_sink_f_0_1.set_line_color(i, colors[i])
            self.qtgui_vector_sink_f_0_1.set_line_alpha(i, alphas[i])

        self._qtgui_vector_sink_f_0_1_win = sip.wrapinstance(
            self.qtgui_vector_sink_f_0_1.pyqwidget(), Qt.QWidget)
        self.top_layout.addWidget(self._qtgui_vector_sink_f_0_1_win)
        self.qtgui_time_sink_x_0_2 = qtgui.time_sink_f(
            750,  #size
            samp_rate / 10,  #samp_rate
            "",  #name
            1  #number of inputs
        )
        self.qtgui_time_sink_x_0_2.set_update_time(0.10)
        self.qtgui_time_sink_x_0_2.set_y_axis(-1, 1)

        self.qtgui_time_sink_x_0_2.set_y_label('Amplitude', "")

        self.qtgui_time_sink_x_0_2.enable_tags(-1, True)
        self.qtgui_time_sink_x_0_2.set_trigger_mode(qtgui.TRIG_MODE_FREE,
                                                    qtgui.TRIG_SLOPE_POS, 0.0,
                                                    0, 0, "")
        self.qtgui_time_sink_x_0_2.enable_autoscale(True)
        self.qtgui_time_sink_x_0_2.enable_grid(False)
        self.qtgui_time_sink_x_0_2.enable_axis_labels(True)
        self.qtgui_time_sink_x_0_2.enable_control_panel(False)
        self.qtgui_time_sink_x_0_2.enable_stem_plot(False)

        if not True:
            self.qtgui_time_sink_x_0_2.disable_legend()

        labels = ['', '', '', '', '', '', '', '', '', '']
        widths = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
        colors = [
            "red", "red", "green", "black", "cyan", "magenta", "yellow",
            "dark red", "dark green", "blue"
        ]
        styles = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
        markers = [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1]
        alphas = [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0]

        for i in xrange(1):
            if len(labels[i]) == 0:
                self.qtgui_time_sink_x_0_2.set_line_label(
                    i, "Data {0}".format(i))
            else:
                self.qtgui_time_sink_x_0_2.set_line_label(i, labels[i])
            self.qtgui_time_sink_x_0_2.set_line_width(i, widths[i])
            self.qtgui_time_sink_x_0_2.set_line_color(i, colors[i])
            self.qtgui_time_sink_x_0_2.set_line_style(i, styles[i])
            self.qtgui_time_sink_x_0_2.set_line_marker(i, markers[i])
            self.qtgui_time_sink_x_0_2.set_line_alpha(i, alphas[i])

        self._qtgui_time_sink_x_0_2_win = sip.wrapinstance(
            self.qtgui_time_sink_x_0_2.pyqwidget(), Qt.QWidget)
        self.top_layout.addWidget(self._qtgui_time_sink_x_0_2_win)
        self.qtgui_time_sink_x_0_1 = qtgui.time_sink_f(
            750,  #size
            1e6,  #samp_rate
            "",  #name
            1  #number of inputs
        )
        self.qtgui_time_sink_x_0_1.set_update_time(0.010)
        self.qtgui_time_sink_x_0_1.set_y_axis(-1, 1)

        self.qtgui_time_sink_x_0_1.set_y_label('Amplitude', "")

        self.qtgui_time_sink_x_0_1.enable_tags(-1, True)
        self.qtgui_time_sink_x_0_1.set_trigger_mode(qtgui.TRIG_MODE_FREE,
                                                    qtgui.TRIG_SLOPE_POS, 0.0,
                                                    0, 0, "")
        self.qtgui_time_sink_x_0_1.enable_autoscale(True)
        self.qtgui_time_sink_x_0_1.enable_grid(False)
        self.qtgui_time_sink_x_0_1.enable_axis_labels(True)
        self.qtgui_time_sink_x_0_1.enable_control_panel(False)
        self.qtgui_time_sink_x_0_1.enable_stem_plot(False)

        if not True:
            self.qtgui_time_sink_x_0_1.disable_legend()

        labels = ['', '', '', '', '', '', '', '', '', '']
        widths = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
        colors = [
            "green", "red", "green", "black", "cyan", "magenta", "yellow",
            "dark red", "dark green", "blue"
        ]
        styles = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
        markers = [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1]
        alphas = [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0]

        for i in xrange(1):
            if len(labels[i]) == 0:
                self.qtgui_time_sink_x_0_1.set_line_label(
                    i, "Data {0}".format(i))
            else:
                self.qtgui_time_sink_x_0_1.set_line_label(i, labels[i])
            self.qtgui_time_sink_x_0_1.set_line_width(i, widths[i])
            self.qtgui_time_sink_x_0_1.set_line_color(i, colors[i])
            self.qtgui_time_sink_x_0_1.set_line_style(i, styles[i])
            self.qtgui_time_sink_x_0_1.set_line_marker(i, markers[i])
            self.qtgui_time_sink_x_0_1.set_line_alpha(i, alphas[i])

        self._qtgui_time_sink_x_0_1_win = sip.wrapinstance(
            self.qtgui_time_sink_x_0_1.pyqwidget(), Qt.QWidget)
        self.top_layout.addWidget(self._qtgui_time_sink_x_0_1_win)
        self.fft_vxx_0_0 = fft.fft_vcc(400, True,
                                       (window.rectangular(vec_length)), True,
                                       1)
        self.fft_vxx_0 = fft.fft_vcc(400, True,
                                     (window.rectangular(vec_length)), True, 1)
        self.dedispersion_oot_dedisperse_roll_0_0 = dedispersion_oot.dedisperse_roll(
            400, ([600, 601, 602, 603, 604]), 1400.000, 10.000, 750, .15)
        self.dedispersion_oot_dedisperse_roll_0 = dedispersion_oot.dedisperse_roll(
            400, ([600, 601, 602, 603, 604]), 1400.000, 10.000, 750, .15)
        self.dedispersion_oot_Pulse_Detection_0 = dedispersion_oot.Pulse_Detection(
            25, 2.0, 750, ([600, 601, 602, 603, 604]))
        self.blocks_vector_to_stream_1_0_0 = blocks.vector_to_stream(
            gr.sizeof_float * 1, 750)
        self.blocks_vector_to_stream_0_1 = blocks.vector_to_stream(
            gr.sizeof_float * 1, 400)
        self.blocks_vector_to_stream_0 = blocks.vector_to_stream(
            gr.sizeof_float * 1, 400)
        self.blocks_throttle_0 = blocks.throttle(gr.sizeof_float * 1, 1e6 / 2,
                                                 True)
        self.blocks_stream_to_vector_2_0 = blocks.stream_to_vector(
            gr.sizeof_float * 400, 750)
        self.blocks_stream_to_vector_2 = blocks.stream_to_vector(
            gr.sizeof_float * 400, 750)
        self.blocks_stream_to_vector_1_1 = blocks.stream_to_vector(
            gr.sizeof_float * 1, 400)
        self.blocks_stream_to_vector_1 = blocks.stream_to_vector(
            gr.sizeof_float * 1, 400)
        self.blocks_stream_to_vector_0_3 = blocks.stream_to_vector(
            gr.sizeof_gr_complex * 1, vec_length)
        self.blocks_stream_to_vector_0_2_0 = blocks.stream_to_vector(
            gr.sizeof_gr_complex * 1, vec_length)
        self.blocks_stream_to_vector_0_2 = blocks.stream_to_vector(
            gr.sizeof_gr_complex * 1, vec_length)
        self.blocks_stream_to_vector_0_1_0 = blocks.stream_to_vector(
            gr.sizeof_gr_complex * 1, vec_length)
        self.blocks_stream_to_vector_0_1 = blocks.stream_to_vector(
            gr.sizeof_gr_complex * 1, vec_length)
        self.blocks_stream_to_vector_0_0_0 = blocks.stream_to_vector(
            gr.sizeof_gr_complex * 1, vec_length)
        self.blocks_stream_to_vector_0_0 = blocks.stream_to_vector(
            gr.sizeof_gr_complex * 1, vec_length)
        self.blocks_stream_to_vector_0 = blocks.stream_to_vector(
            gr.sizeof_gr_complex * 1, vec_length)
        self.blocks_multiply_const_vxx_0_3 = blocks.multiply_const_vcc(
            (custom_window[0:vec_length]))
        self.blocks_multiply_const_vxx_0_2_0 = blocks.multiply_const_vcc(
            (custom_window[-vec_length:]))
        self.blocks_multiply_const_vxx_0_2 = blocks.multiply_const_vcc(
            (custom_window[-vec_length:]))
        self.blocks_multiply_const_vxx_0_1_0 = blocks.multiply_const_vcc(
            (custom_window[2 * vec_length:3 * vec_length]))
        self.blocks_multiply_const_vxx_0_1 = blocks.multiply_const_vcc(
            (custom_window[2 * vec_length:3 * vec_length]))
        self.blocks_multiply_const_vxx_0_0_0 = blocks.multiply_const_vcc(
            (custom_window[vec_length:2 * vec_length]))
        self.blocks_multiply_const_vxx_0_0 = blocks.multiply_const_vcc(
            (custom_window[vec_length:2 * vec_length]))
        self.blocks_multiply_const_vxx_0 = blocks.multiply_const_vcc(
            (custom_window[0:vec_length]))
        self.blocks_multiply_conjugate_cc_0_0 = blocks.multiply_conjugate_cc(
            vec_length)
        self.blocks_multiply_conjugate_cc_0 = blocks.multiply_conjugate_cc(
            vec_length)
        self.blocks_interleaved_short_to_complex_0_0 = blocks.interleaved_short_to_complex(
            False, False)
        self.blocks_interleaved_short_to_complex_0 = blocks.interleaved_short_to_complex(
            False, False)
        self.blocks_integrate_xx_0_0_0 = blocks.integrate_cc(
            int(display_integration * samp_rate / vec_length), vec_length)
        self.blocks_integrate_xx_0_0 = blocks.integrate_cc(
            int(display_integration * samp_rate / vec_length), vec_length)
        self.blocks_file_source_0_1 = blocks.file_source(
            gr.sizeof_short * 1,
            '/home/andy/FRB_Pipeline_and_Contributions/gr-transient/jupyter/pulse_sim_10mhz_int16_5ms_period_60dm_1400MHz_center_150ms_long_noise.bin',
            True)
        self.blocks_file_source_0_0 = blocks.file_source(
            gr.sizeof_float * 1,
            '/home/andy/FRB_Pipeline_and_Contributions/gr-transient/jupyter/pulse_sim_10mhz_int16_5ms_period_60dm_1400MHz_center_150ms_long_corr.bin',
            True)
        self.blocks_file_source_0 = blocks.file_source(
            gr.sizeof_short * 1,
            '/home/andy/FRB_Pipeline_and_Contributions/gr-transient/jupyter/pulse_sim_10mhz_int16_5ms_period_60dm_1400MHz_center_150ms_long.bin',
            True)
        self.blocks_delay_0_0_1 = blocks.delay(gr.sizeof_gr_complex * 1,
                                               vec_length)
        self.blocks_delay_0_0_0_1 = blocks.delay(gr.sizeof_gr_complex * 1,
                                                 2 * vec_length)
        self.blocks_delay_0_0_0_0_0 = blocks.delay(gr.sizeof_gr_complex * 1,
                                                   3 * vec_length)
        self.blocks_delay_0_0_0_0 = blocks.delay(gr.sizeof_gr_complex * 1,
                                                 3 * vec_length)
        self.blocks_delay_0_0_0 = blocks.delay(gr.sizeof_gr_complex * 1,
                                               2 * vec_length)
        self.blocks_delay_0_0 = blocks.delay(gr.sizeof_gr_complex * 1,
                                             vec_length)
        self.blocks_delay_0 = blocks.delay(gr.sizeof_float * 1, delay1)
        self.blocks_complex_to_real_0_0 = blocks.complex_to_real(vec_length)
        self.blocks_complex_to_real_0 = blocks.complex_to_real(vec_length)
        self.blocks_add_xx_0_0 = blocks.add_vcc(vec_length)
        self.blocks_add_xx_0 = blocks.add_vcc(vec_length)

        ##################################################
        # Connections
        ##################################################
        self.connect((self.blocks_add_xx_0, 0), (self.fft_vxx_0, 0))
        self.connect((self.blocks_add_xx_0_0, 0), (self.fft_vxx_0_0, 0))
        self.connect((self.blocks_complex_to_real_0, 0),
                     (self.blocks_vector_to_stream_0, 0))
        self.connect((self.blocks_complex_to_real_0_0, 0),
                     (self.blocks_vector_to_stream_0_1, 0))
        self.connect((self.blocks_delay_0, 0), (self.qtgui_time_sink_x_0_2, 0))
        self.connect((self.blocks_delay_0_0, 0),
                     (self.blocks_stream_to_vector_0_0, 0))
        self.connect((self.blocks_delay_0_0_0, 0),
                     (self.blocks_stream_to_vector_0_2, 0))
        self.connect((self.blocks_delay_0_0_0_0, 0),
                     (self.blocks_stream_to_vector_0_1, 0))
        self.connect((self.blocks_delay_0_0_0_0_0, 0),
                     (self.blocks_stream_to_vector_0_1_0, 0))
        self.connect((self.blocks_delay_0_0_0_1, 0),
                     (self.blocks_stream_to_vector_0_2_0, 0))
        self.connect((self.blocks_delay_0_0_1, 0),
                     (self.blocks_stream_to_vector_0_0_0, 0))
        self.connect((self.blocks_file_source_0, 0),
                     (self.blocks_interleaved_short_to_complex_0, 0))
        self.connect((self.blocks_file_source_0_0, 0),
                     (self.blocks_delay_0, 0))
        self.connect((self.blocks_file_source_0_1, 0),
                     (self.blocks_interleaved_short_to_complex_0_0, 0))
        self.connect((self.blocks_integrate_xx_0_0, 0),
                     (self.blocks_complex_to_real_0, 0))
        self.connect((self.blocks_integrate_xx_0_0_0, 0),
                     (self.blocks_complex_to_real_0_0, 0))
        self.connect((self.blocks_interleaved_short_to_complex_0, 0),
                     (self.blocks_delay_0_0, 0))
        self.connect((self.blocks_interleaved_short_to_complex_0, 0),
                     (self.blocks_delay_0_0_0, 0))
        self.connect((self.blocks_interleaved_short_to_complex_0, 0),
                     (self.blocks_delay_0_0_0_0, 0))
        self.connect((self.blocks_interleaved_short_to_complex_0, 0),
                     (self.blocks_stream_to_vector_0, 0))
        self.connect((self.blocks_interleaved_short_to_complex_0_0, 0),
                     (self.blocks_delay_0_0_0_0_0, 0))
        self.connect((self.blocks_interleaved_short_to_complex_0_0, 0),
                     (self.blocks_delay_0_0_0_1, 0))
        self.connect((self.blocks_interleaved_short_to_complex_0_0, 0),
                     (self.blocks_delay_0_0_1, 0))
        self.connect((self.blocks_interleaved_short_to_complex_0_0, 0),
                     (self.blocks_stream_to_vector_0_3, 0))
        self.connect((self.blocks_multiply_conjugate_cc_0, 0),
                     (self.blocks_integrate_xx_0_0, 0))
        self.connect((self.blocks_multiply_conjugate_cc_0_0, 0),
                     (self.blocks_integrate_xx_0_0_0, 0))
        self.connect((self.blocks_multiply_const_vxx_0, 0),
                     (self.blocks_add_xx_0, 3))
        self.connect((self.blocks_multiply_const_vxx_0_0, 0),
                     (self.blocks_add_xx_0, 2))
        self.connect((self.blocks_multiply_const_vxx_0_0_0, 0),
                     (self.blocks_add_xx_0_0, 2))
        self.connect((self.blocks_multiply_const_vxx_0_1, 0),
                     (self.blocks_add_xx_0, 1))
        self.connect((self.blocks_multiply_const_vxx_0_1_0, 0),
                     (self.blocks_add_xx_0_0, 1))
        self.connect((self.blocks_multiply_const_vxx_0_2, 0),
                     (self.blocks_add_xx_0, 0))
        self.connect((self.blocks_multiply_const_vxx_0_2_0, 0),
                     (self.blocks_add_xx_0_0, 0))
        self.connect((self.blocks_multiply_const_vxx_0_3, 0),
                     (self.blocks_add_xx_0_0, 3))
        self.connect((self.blocks_stream_to_vector_0, 0),
                     (self.blocks_multiply_const_vxx_0_2, 0))
        self.connect((self.blocks_stream_to_vector_0_0, 0),
                     (self.blocks_multiply_const_vxx_0_1, 0))
        self.connect((self.blocks_stream_to_vector_0_0_0, 0),
                     (self.blocks_multiply_const_vxx_0_1_0, 0))
        self.connect((self.blocks_stream_to_vector_0_1, 0),
                     (self.blocks_multiply_const_vxx_0, 0))
        self.connect((self.blocks_stream_to_vector_0_1_0, 0),
                     (self.blocks_multiply_const_vxx_0_3, 0))
        self.connect((self.blocks_stream_to_vector_0_2, 0),
                     (self.blocks_multiply_const_vxx_0_0, 0))
        self.connect((self.blocks_stream_to_vector_0_2_0, 0),
                     (self.blocks_multiply_const_vxx_0_0_0, 0))
        self.connect((self.blocks_stream_to_vector_0_3, 0),
                     (self.blocks_multiply_const_vxx_0_2_0, 0))
        self.connect((self.blocks_stream_to_vector_1, 0),
                     (self.blocks_stream_to_vector_2, 0))
        self.connect((self.blocks_stream_to_vector_1, 0),
                     (self.qtgui_vector_sink_f_0_1, 0))
        self.connect((self.blocks_stream_to_vector_1_1, 0),
                     (self.blocks_stream_to_vector_2_0, 0))
        self.connect((self.blocks_stream_to_vector_1_1, 0),
                     (self.qtgui_vector_sink_f_0_1, 1))
        self.connect((self.blocks_stream_to_vector_2, 0),
                     (self.dedispersion_oot_dedisperse_roll_0, 0))
        self.connect((self.blocks_stream_to_vector_2_0, 0),
                     (self.dedispersion_oot_dedisperse_roll_0_0, 0))
        self.connect((self.blocks_throttle_0, 0),
                     (self.blocks_stream_to_vector_1, 0))
        self.connect((self.blocks_vector_to_stream_0, 0),
                     (self.blocks_throttle_0, 0))
        self.connect((self.blocks_vector_to_stream_0_1, 0),
                     (self.blocks_stream_to_vector_1_1, 0))
        self.connect((self.blocks_vector_to_stream_1_0_0, 0),
                     (self.qtgui_time_sink_x_0_1, 0))
        self.connect((self.dedispersion_oot_Pulse_Detection_0, 0),
                     (self.blocks_vector_to_stream_1_0_0, 0))
        self.connect((self.dedispersion_oot_dedisperse_roll_0, 0),
                     (self.dedispersion_oot_Pulse_Detection_0, 0))
        self.connect((self.dedispersion_oot_dedisperse_roll_0_0, 0),
                     (self.dedispersion_oot_Pulse_Detection_0, 1))
        self.connect((self.fft_vxx_0, 0),
                     (self.blocks_multiply_conjugate_cc_0, 0))
        self.connect((self.fft_vxx_0, 0),
                     (self.blocks_multiply_conjugate_cc_0, 1))
        self.connect((self.fft_vxx_0_0, 0),
                     (self.blocks_multiply_conjugate_cc_0_0, 0))
        self.connect((self.fft_vxx_0_0, 0),
                     (self.blocks_multiply_conjugate_cc_0_0, 1))