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