コード例 #1
0
    def __init__(self):
        gr.top_block.__init__(self)

        ##################################################
        # Variables
        ##################################################

        #Create Input Vector here
        input_vector = 0  # <-- Change this: *Hint: Use string_to_list.conv_string_to_1_0_list(s)

        ##################################################
        # Blocks
        ##################################################

        self.input_vector_source = blocks.vector_source_b(
            input_vector, True, 1, [])

        self.input_unpacked_to_packed = blocks.unpacked_to_packed_bb(
            1, gr.GR_MSB_FIRST)

        self.mod = digital.dbpsk_mod(samples_per_symbol=2,
                                     excess_bw=0.35,
                                     mod_code="gray",
                                     verbose=False,
                                     log=False)

        self.demod = digital.dbpsk_demod(samples_per_symbol=2,
                                         excess_bw=0.35,
                                         freq_bw=6.28 / 100.0,
                                         phase_bw=6.28 / 100.0,
                                         timing_bw=6.28 / 100.0,
                                         mod_code="gray",
                                         verbose=False,
                                         log=False)

        self.output_unpacked_to_packed = blocks.unpacked_to_packed_bb(
            1, gr.GR_MSB_FIRST)

        self.frame_sync = frame_sync()  # Your custom block!!!

        self.output_file_sink = blocks.file_sink(gr.sizeof_char * 1,
                                                 "output.txt", False)
        self.output_file_sink.set_unbuffered(True)

        ##################################################
        # Connections
        ##################################################
        self.connect(self.input_vector_source, self.input_unpacked_to_packed,
                     self.mod, self.demod, self.output_unpacked_to_packed,
                     self.frame_sync, self.output_file_sink)
コード例 #2
0
ファイル: frame_sync_sim.py プロジェクト: jmccormack200/SDR
    def __init__(self):
        gr.top_block.__init__(self)

        ##################################################
        # Variables
        ##################################################       

        s = "Hello Ether!" 
        #Create Input Vector here
        input_vector = string_to_list.conv_string_to_1_0_list(s)  # <-- Change this: *Hint: Use string_to_list.conv_string_to_1_0_list(s)

        ##################################################
        # Blocks
        ##################################################
        
        self.input_vector_source = blocks.vector_source_b(input_vector, True, 1, [])          

        self.input_unpacked_to_packed = blocks.unpacked_to_packed_bb(1, gr.GR_MSB_FIRST)

        self.mod = digital.dbpsk_mod(
            samples_per_symbol=2,
            excess_bw=0.35,
            mod_code="gray",
            verbose=False,
            log=False)
            
        self.demod = digital.dbpsk_demod(
            samples_per_symbol=2,
            excess_bw=0.35,
            freq_bw=6.28/100.0,
            phase_bw=6.28/100.0,
            timing_bw=6.28/100.0,
            mod_code="gray",
            verbose=False,
            log=False
        )        
        
        self.output_unpacked_to_packed = blocks.unpacked_to_packed_bb(1, gr.GR_MSB_FIRST)

        self.frame_sync = frame_sync() # Your custom block!!!

        self.output_file_sink = blocks.file_sink(gr.sizeof_char*1, "output.txt", False)
        self.output_file_sink.set_unbuffered(True)
        
        ##################################################
        # Connections
        ##################################################
        self.connect(self.input_vector_source, self.input_unpacked_to_packed, self.mod, self.demod, self.output_unpacked_to_packed, self.frame_sync, self.output_file_sink)
コード例 #3
0
ファイル: demoder.py プロジェクト: luwangg/BLISS
    def __init__(self):
        gr.top_block.__init__(self, "Demoder")

        ##################################################
        # Variables
        ##################################################
        self.samp_rate = samp_rate = 32000

        ##################################################
        # Blocks
        ##################################################
        self.gr_throttle_0 = gr.throttle(gr.sizeof_gr_complex * 1, samp_rate)
        self.gr_head_0 = gr.head(gr.sizeof_gr_complex * 1, 1024 * 5)
        self.gr_file_source_0 = gr.file_source(
            gr.sizeof_gr_complex * 1,
            "/home/traviscollins/data/Models/USRP_Receiver/processed_data_C.txt",
            True)
        self.gr_file_sink_0 = gr.file_sink(
            gr.sizeof_char * 1,
            "/home/traviscollins/data/Models/Demoder/demod_data_B.txt")
        self.gr_file_sink_0.set_unbuffered(False)
        self.digital_dxpsk_demod_0 = digital.dbpsk_demod(samples_per_symbol=2,
                                                         excess_bw=0.35,
                                                         freq_bw=6.28 / 100.0,
                                                         phase_bw=6.28 / 100.0,
                                                         timing_bw=6.28 /
                                                         100.0,
                                                         gray_coded=True,
                                                         verbose=False,
                                                         log=False)
        self.blks2_packet_decoder_0 = grc_blks2.packet_demod_b(
            grc_blks2.packet_decoder(
                access_code="",
                threshold=-1,
                callback=lambda ok, payload: self.blks2_packet_decoder_0.
                recv_pkt(ok, payload),
            ), )

        ##################################################
        # Connections
        ##################################################
        self.connect((self.gr_head_0, 0), (self.digital_dxpsk_demod_0, 0))
        self.connect((self.digital_dxpsk_demod_0, 0),
                     (self.blks2_packet_decoder_0, 0))
        self.connect((self.blks2_packet_decoder_0, 0),
                     (self.gr_file_sink_0, 0))
        self.connect((self.gr_file_source_0, 0), (self.gr_throttle_0, 0))
        self.connect((self.gr_throttle_0, 0), (self.gr_head_0, 0))
コード例 #4
0
	def __init__(self):
		gr.top_block.__init__(self, "Audio Receiver")

		##################################################
		# Variables
		##################################################
		self.samp_rate = samp_rate = 125000
		self.audio_rate = audio_rate = 8000

		##################################################
		# Blocks
		##################################################
		self.vocoder_cvsd_decode_bf_0 = vocoder.cvsd_decode_bf(8,0.5)
		self.uhd_usrp_source_0 = uhd.usrp_source(
			device_addr="",
			stream_args=uhd.stream_args(
				cpu_format="fc32",
				channels=range(1),
			),
		)
		self.uhd_usrp_source_0.set_samp_rate(samp_rate)
		self.uhd_usrp_source_0.set_center_freq(915e6, 0)
		self.uhd_usrp_source_0.set_gain(10, 0)
		self.digital_dxpsk_demod_0 = digital.dbpsk_demod(
			samples_per_symbol=2,
			excess_bw=0.35,
			freq_bw=6.28/100.0,
			phase_bw=6.28/100.0,
			timing_bw=6.28/100.0,
			gray_coded=True,
			verbose=False,
			log=False
		)
		self.blks2_packet_decoder_0 = grc_blks2.packet_demod_b(grc_blks2.packet_decoder(
				access_code="",
				threshold=-1,
				callback=lambda ok, payload: self.blks2_packet_decoder_0.recv_pkt(ok, payload),
			),
		)
		self.audio_sink_0 = audio.sink(audio_rate, "plughw:0,0", True)

		##################################################
		# Connections
		##################################################
		self.connect((self.vocoder_cvsd_decode_bf_0, 0), (self.audio_sink_0, 0))
		self.connect((self.blks2_packet_decoder_0, 0), (self.vocoder_cvsd_decode_bf_0, 0))
		self.connect((self.digital_dxpsk_demod_0, 0), (self.blks2_packet_decoder_0, 0))
		self.connect((self.uhd_usrp_source_0, 0), (self.digital_dxpsk_demod_0, 0))
コード例 #5
0
ファイル: demoder.py プロジェクト: travisfcollins/BLISS
	def __init__(self):
		gr.top_block.__init__(self, "Demoder")

		##################################################
		# Variables
		##################################################
		self.samp_rate = samp_rate = 32000

		##################################################
		# Blocks
		##################################################
		self.gr_throttle_0 = gr.throttle(gr.sizeof_gr_complex*1, samp_rate)
		self.gr_head_0 = gr.head(gr.sizeof_gr_complex*1, 1024*5)
		self.gr_file_source_0 = gr.file_source(gr.sizeof_gr_complex*1, "/home/traviscollins/data/Models/USRP_Receiver/processed_data_C.txt", True)
		self.gr_file_sink_0 = gr.file_sink(gr.sizeof_char*1, "/home/traviscollins/data/Models/Demoder/demod_data_B.txt")
		self.gr_file_sink_0.set_unbuffered(False)
		self.digital_dxpsk_demod_0 = digital.dbpsk_demod(
			samples_per_symbol=2,
			excess_bw=0.35,
			freq_bw=6.28/100.0,
			phase_bw=6.28/100.0,
			timing_bw=6.28/100.0,
			gray_coded=True,
			verbose=False,
			log=False
		)
		self.blks2_packet_decoder_0 = grc_blks2.packet_demod_b(grc_blks2.packet_decoder(
				access_code="",
				threshold=-1,
				callback=lambda ok, payload: self.blks2_packet_decoder_0.recv_pkt(ok, payload),
			),
		)

		##################################################
		# Connections
		##################################################
		self.connect((self.gr_head_0, 0), (self.digital_dxpsk_demod_0, 0))
		self.connect((self.digital_dxpsk_demod_0, 0), (self.blks2_packet_decoder_0, 0))
		self.connect((self.blks2_packet_decoder_0, 0), (self.gr_file_sink_0, 0))
		self.connect((self.gr_file_source_0, 0), (self.gr_throttle_0, 0))
		self.connect((self.gr_throttle_0, 0), (self.gr_head_0, 0))
コード例 #6
0
	def __init__(self):
		grc_wxgui.top_block_gui.__init__(self, title="Top Block")

		##################################################
		# Variables
		##################################################
		self.samp_rate = samp_rate = 2000000
		self.dec_rate = dec_rate = 4

		##################################################
		# Blocks
		##################################################
		self.gr_unpacked_to_packed_xx_0 = gr.unpacked_to_packed_bb(1, gr.GR_MSB_FIRST)
		self.gr_throttle_1 = gr.throttle(gr.sizeof_gr_complex*1, samp_rate/dec_rate)
		self.gr_freq_xlating_fir_filter_xxx_0 = gr.freq_xlating_fir_filter_ccc(dec_rate, (firdes.low_pass(1,samp_rate,500000,100000)), -535000, samp_rate)
		self.gr_file_source_0 = gr.file_source(gr.sizeof_gr_complex*1, "/shampoo/sdr/capture/nrf-capture/2410500000-2M-1.cap", False)
		self.gr_file_sink_0_0 = gr.file_sink(gr.sizeof_char*1, "/shampoo/sdr/projects/gr-nordic/dpsk-packed.out")
		self.gr_file_sink_0_0.set_unbuffered(False)
		self.gr_file_sink_0 = gr.file_sink(gr.sizeof_char*1, "/shampoo/sdr/projects/gr-nordic/dpsk-unpacked.out")
		self.gr_file_sink_0.set_unbuffered(False)
		self.digital_dxpsk_demod_0 = digital.dbpsk_demod(
			samples_per_symbol=2,
			excess_bw=0.35,
			freq_bw=6.28/100.0,
			phase_bw=6.28/100.0,
			timing_bw=6.28/100.0,
			gray_coded=True,
			verbose=False,
			log=False
		)

		##################################################
		# Connections
		##################################################
		self.connect((self.gr_file_source_0, 0), (self.gr_freq_xlating_fir_filter_xxx_0, 0))
		self.connect((self.gr_freq_xlating_fir_filter_xxx_0, 0), (self.gr_throttle_1, 0))
		self.connect((self.gr_unpacked_to_packed_xx_0, 0), (self.gr_file_sink_0_0, 0))
		self.connect((self.digital_dxpsk_demod_0, 0), (self.gr_unpacked_to_packed_xx_0, 0))
		self.connect((self.gr_throttle_1, 0), (self.digital_dxpsk_demod_0, 0))
		self.connect((self.digital_dxpsk_demod_0, 0), (self.gr_file_sink_0, 0))
コード例 #7
0
	def __init__(self, samps_per_sym, samp_rate, freq, file_sink, ampl):
		gr.hier_block2.__init__(self, "receive_path",
				gr.io_signature(0, 0, 0), # Input signature
				gr.io_signature(0, 0, 0)) # Output signature

		##################################################
		# Variables
		##################################################
		self.file_sink = file_sink
		self.rx_gain = rx_gain = 5
		self.samps_per_sym = samps_per_sym
		self.samp_rate = samp_rate
		self.freq = freq
		self.ampl = ampl 

		##################################################
		# Blocks
		##################################################
		self.uhd_usrp_source_0 = uhd.usrp_source(
			device_addr="",
			stream_args=uhd.stream_args(
				cpu_format="fc32",
				channels=range(1),
			),
		)
		self.uhd_usrp_source_0.set_samp_rate(samp_rate)
		self.uhd_usrp_source_0.set_center_freq(freq, 0)
		self.uhd_usrp_source_0.set_gain(rx_gain, 0)


		self.rational_resampler_xxx_0 = filter.rational_resampler_ccc(
				interpolation=4,
				decimation=125,
				taps=None,
				fractional_bw=None,
		)

		self.digital_dxpsk_demod_0 = digital.dbpsk_demod(
			samples_per_symbol=samps_per_sym,
			excess_bw=0.35,
			freq_bw=6.28/100.0,
			phase_bw=6.28/100.0,
			timing_bw=6.28/100.0,
			mod_code="gray",
			verbose=False,
			log=False)

		self.digital_mpsk_snr_est_cc_0 = digital.mpsk_snr_est_cc(2, 10000, 0.001)

		self.blocks_multiply_const_vxx_0 = blocks.multiply_const_vcc((ampl, ))

		self.blocks_file_sink_0 = blocks.file_sink(gr.sizeof_char*1, file_sink, True)
		self.blocks_file_sink_0.set_unbuffered(True)

		self.blks2_packet_decoder_0 = grc_blks2.packet_demod_b(grc_blks2.packet_decoder(
				access_code="",
				threshold=-1,# END TRANSMIT_PATH

				callback=lambda ok, payload: self.blks2_packet_decoder_0.recv_pkt(ok, payload),
			),
		)

		##################################################
		# Connections
		##################################################
		self.connect((self.blocks_multiply_const_vxx_0, 0),(self.digital_mpsk_snr_est_cc_0, 0))
		self.connect((self.digital_mpsk_snr_est_cc_0, 0), (self.digital_dxpsk_demod_0, 0))
		self.connect((self.blks2_packet_decoder_0, 0), (self.blocks_file_sink_0, 0))
		self.connect((self.digital_dxpsk_demod_0, 0), (self.blks2_packet_decoder_0, 0))
		self.connect((self.uhd_usrp_source_0, 0), (self.rational_resampler_xxx_0))
		self.connect((self.rational_resampler_xxx_0,0),(self.blocks_multiply_const_vxx_0,0))
コード例 #8
0
    def __init__(self):
        grc_wxgui.top_block_gui.__init__(
            self, title="Direct-sequence spread spectrum")
        _icon_path = "/usr/share/icons/hicolor/32x32/apps/gnuradio-grc.png"
        self.SetIcon(wx.Icon(_icon_path, wx.BITMAP_TYPE_ANY))

        ##################################################
        # Variables
        ##################################################

        self.variable_constellation_0 = variable_constellation_0 = digital.constellation_calcdist(
            ([-1, 1]), ([0, 1]), 2, 1).base()

        self.samp_sym = samp_sym = 32
        self.samp_rate = samp_rate = 500e3
        self.samp_chip = samp_chip = 2
        self.init = init = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
        self.generator = generator = 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1

        ##################################################
        # Blocks
        ##################################################
        self.wxgui_fftsink2_0_0 = fftsink2.fft_sink_c(
            self.GetWin(),
            baseband_freq=0,
            y_per_div=10,
            y_divs=10,
            ref_level=0,
            ref_scale=2.0,
            sample_rate=samp_rate,
            fft_size=1024,
            fft_rate=15,
            average=False,
            avg_alpha=None,
            title='Despread Signal ',
            peak_hold=False,
        )
        self.GridAdd(self.wxgui_fftsink2_0_0.win, 2, 3, 1, 2)
        self.wxgui_fftsink2_0 = fftsink2.fft_sink_c(
            self.GetWin(),
            baseband_freq=0,
            y_per_div=10,
            y_divs=10,
            ref_level=0,
            ref_scale=2.0,
            sample_rate=samp_rate,
            fft_size=1024,
            fft_rate=15,
            average=False,
            avg_alpha=None,
            title='Received DS Signal',
            peak_hold=False,
        )
        self.GridAdd(self.wxgui_fftsink2_0.win, 2, 1, 1, 2)
        self.digital_dxpsk_mod_0 = digital.dbpsk_mod(samples_per_symbol=2,
                                                     excess_bw=0.35,
                                                     mod_code="gray",
                                                     verbose=False,
                                                     log=False)

        self.digital_dxpsk_demod_0 = digital.dbpsk_demod(samples_per_symbol=2,
                                                         excess_bw=0.35,
                                                         freq_bw=6.28 / 100.0,
                                                         phase_bw=6.28 / 100.0,
                                                         timing_bw=6.28 /
                                                         100.0,
                                                         mod_code="gray",
                                                         verbose=False,
                                                         log=False)
        self.channels_channel_model_0 = channels.channel_model(
            noise_voltage=0.3,
            frequency_offset=0.0,
            epsilon=1.0,
            taps=(1.0 + 1.0j, ),
            noise_seed=0,
            block_tags=False)
        self.blocks_unpacked_to_packed_xx_0 = blocks.unpacked_to_packed_bb(
            1, gr.GR_MSB_FIRST)
        self.blocks_throttle_0 = blocks.throttle(gr.sizeof_gr_complex * 1,
                                                 samp_rate, True)
        self.blocks_repeat_0 = blocks.repeat(gr.sizeof_char * 1, samp_sym)
        self.blocks_keep_one_in_n_0 = blocks.keep_one_in_n(
            gr.sizeof_char * 1, 32)
        self.blocks_delay_0 = blocks.delay(gr.sizeof_gr_complex * 1, 1000)
        self.Spread_sync_0 = Spread.sync()
        self.Spread_rx_sync_0 = Spread.rx_sync(12)
        self.Spread_preamble_0 = Spread.preamble_bb(1389, (64 * (1, 1)))
        self.Spread_msg_source_0 = Spread.msg_source(100, 100)
        self.Spread_framer_0 = Spread.framer(0)
        self.Spread_ds_spreader_0 = Spread.ds_spreader(samp_chip, (generator),
                                                       (init))
        self.Spread_ds_despreader_0 = Spread.ds_despreader(
            samp_chip, 1024, 2045, (generator), (init))
        self.Spread_deframer_0 = Spread.deframer(0)

        ##################################################
        # Connections
        ##################################################
        self.msg_connect((self.Spread_framer_0, 'out'),
                         (self.Spread_sync_0, 'in'))
        self.msg_connect((self.Spread_msg_source_0, 'out'),
                         (self.Spread_framer_0, 'in'))
        self.msg_connect((self.Spread_rx_sync_0, 'out'),
                         (self.Spread_deframer_0, 'in'))
        self.connect((self.Spread_ds_despreader_0, 0),
                     (self.digital_dxpsk_demod_0, 0))
        self.connect((self.Spread_ds_despreader_0, 0),
                     (self.wxgui_fftsink2_0_0, 0))
        self.connect((self.Spread_ds_spreader_0, 0),
                     (self.blocks_unpacked_to_packed_xx_0, 0))
        self.connect((self.Spread_preamble_0, 0), (self.blocks_repeat_0, 0))
        self.connect((self.Spread_sync_0, 0), (self.Spread_preamble_0, 0))
        self.connect((self.blocks_delay_0, 0), (self.blocks_throttle_0, 0))
        self.connect((self.blocks_keep_one_in_n_0, 0),
                     (self.Spread_rx_sync_0, 0))
        self.connect((self.blocks_repeat_0, 0), (self.Spread_ds_spreader_0, 0))
        self.connect((self.blocks_throttle_0, 0),
                     (self.Spread_ds_despreader_0, 0))
        self.connect((self.blocks_throttle_0, 0), (self.wxgui_fftsink2_0, 0))
        self.connect((self.blocks_unpacked_to_packed_xx_0, 0),
                     (self.digital_dxpsk_mod_0, 0))
        self.connect((self.channels_channel_model_0, 0),
                     (self.blocks_delay_0, 0))
        self.connect((self.digital_dxpsk_demod_0, 0),
                     (self.blocks_keep_one_in_n_0, 0))
        self.connect((self.digital_dxpsk_mod_0, 0),
                     (self.channels_channel_model_0, 0))
コード例 #9
0
    def __init__(self):
        grc_wxgui.top_block_gui.__init__(
            self, title="Direct-sequence spread spectrum")

        ##################################################
        # Variables
        ##################################################

        self.variable_constellation_0 = variable_constellation_0 = digital.constellation_calcdist(
            ([-1, 1]), ([0, 1]), 2, 1).base()

        self.samp_sym = samp_sym = 32
        self.samp_rate = samp_rate = 500e3
        self.samp_chip = samp_chip = 2
        self.init = init = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
        self.generator = generator = 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1

        ##################################################
        # Blocks
        ##################################################
        self.wxgui_scopesink2_2 = scopesink2.scope_sink_f(
            self.GetWin(),
            title='Received binary',
            sample_rate=samp_rate,
            v_scale=0,
            v_offset=0,
            t_scale=0,
            ac_couple=False,
            xy_mode=False,
            num_inputs=1,
            trig_mode=wxgui.TRIG_MODE_AUTO,
            y_axis_label='Counts',
        )
        self.Add(self.wxgui_scopesink2_2.win)
        self.digital_dxpsk_mod_0 = digital.dbpsk_mod(samples_per_symbol=2,
                                                     excess_bw=0.35,
                                                     mod_code="gray",
                                                     verbose=False,
                                                     log=False)

        self.digital_dxpsk_demod_0 = digital.dbpsk_demod(samples_per_symbol=2,
                                                         excess_bw=0.35,
                                                         freq_bw=6.28 / 100.0,
                                                         phase_bw=6.28 / 100.0,
                                                         timing_bw=6.28 /
                                                         100.0,
                                                         mod_code="gray",
                                                         verbose=False,
                                                         log=False)
        self.channels_channel_model_0 = channels.channel_model(
            noise_voltage=0.3,
            frequency_offset=0.0,
            epsilon=1.0,
            taps=(1.0 + 1.0j, ),
            noise_seed=0,
            block_tags=False)
        self.blocks_vector_source_x_0_0_0 = blocks.vector_source_b(
            (0, 1, 0, 1, 0, 1), True, 1, [])
        self.blocks_unpacked_to_packed_xx_0 = blocks.unpacked_to_packed_bb(
            1, gr.GR_MSB_FIRST)
        self.blocks_throttle_0 = blocks.throttle(gr.sizeof_gr_complex * 1,
                                                 samp_rate, True)
        self.blocks_repeat_0 = blocks.repeat(gr.sizeof_char * 1, samp_sym)
        self.blocks_keep_one_in_n_0 = blocks.keep_one_in_n(
            gr.sizeof_char * 1, 32)
        self.blocks_delay_0 = blocks.delay(gr.sizeof_gr_complex * 1, 1000)
        self.blocks_char_to_float_1 = blocks.char_to_float(1, 1)
        self.Spread_rx_sync_0 = Spread.rx_sync(12)
        self.Spread_ds_spreader_0 = Spread.ds_spreader(samp_chip, (generator),
                                                       (init))
        self.Spread_ds_despreader_0 = Spread.ds_despreader(
            samp_chip, 1024, 2045, (generator), (init))
        self.Spread_deframer_0 = Spread.deframer(0)

        ##################################################
        # Connections
        ##################################################
        self.msg_connect((self.Spread_rx_sync_0, 'out'),
                         (self.Spread_deframer_0, 'in'))
        self.connect((self.Spread_ds_despreader_0, 0),
                     (self.digital_dxpsk_demod_0, 0))
        self.connect((self.Spread_ds_spreader_0, 0),
                     (self.blocks_unpacked_to_packed_xx_0, 0))
        self.connect((self.blocks_char_to_float_1, 0),
                     (self.wxgui_scopesink2_2, 0))
        self.connect((self.blocks_delay_0, 0), (self.blocks_throttle_0, 0))
        self.connect((self.blocks_keep_one_in_n_0, 0),
                     (self.Spread_rx_sync_0, 0))
        self.connect((self.blocks_keep_one_in_n_0, 0),
                     (self.blocks_char_to_float_1, 0))
        self.connect((self.blocks_repeat_0, 0), (self.Spread_ds_spreader_0, 0))
        self.connect((self.blocks_throttle_0, 0),
                     (self.Spread_ds_despreader_0, 0))
        self.connect((self.blocks_unpacked_to_packed_xx_0, 0),
                     (self.digital_dxpsk_mod_0, 0))
        self.connect((self.blocks_vector_source_x_0_0_0, 0),
                     (self.blocks_repeat_0, 0))
        self.connect((self.channels_channel_model_0, 0),
                     (self.blocks_delay_0, 0))
        self.connect((self.digital_dxpsk_demod_0, 0),
                     (self.blocks_keep_one_in_n_0, 0))
        self.connect((self.digital_dxpsk_mod_0, 0),
                     (self.channels_channel_model_0, 0))
コード例 #10
0
ファイル: top_block.py プロジェクト: jeffchrisope/EE420SDR
    def __init__(self, frame_sz_bytes=30):
        gr.top_block.__init__(self, "Top Block")
        Qt.QWidget.__init__(self)
        self.setWindowTitle("Top Block")
        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")
        self.restoreGeometry(self.settings.value("geometry").toByteArray())

        ##################################################
        # Parameters
        ##################################################
        self.frame_sz_bytes = frame_sz_bytes

        ##################################################
        # Variables
        ##################################################
        self.samp_rate = samp_rate = 50e3
        
        
        self.ccsds_encoder_var = ccsds_encoder_var = fec.ccsds_encoder_make(frame_sz_bytes * 8, 0, fec.CC_TAILBITING)
            
        
        
        self.cc_decoder_var = cc_decoder_var = fec.cc_decoder.make(frame_sz_bytes * 8, 7, 2, ([109,79]), 0, -1, fec.CC_TAILBITING, False)
            

        ##################################################
        # Blocks
        ##################################################
        self.fec_extended_encoder_0 = fec.extended_encoder(encoder_obj_list=ccsds_encoder_var, threading='capillary', puncpat='11')
        self.fec_extended_decoder_0 = fec.extended_decoder(decoder_obj_list=cc_decoder_var, threading='capillary', ann=None, puncpat='11', integration_period=10000)
        self.digital_map_bb_0 = digital.map_bb((-1,1))
        self.digital_dxpsk_mod_0 = digital.dbpsk_mod(
        	samples_per_symbol=2,
        	excess_bw=0.35,
        	mod_code="gray",
        	verbose=False,
        	log=False)
        	
        self.digital_dxpsk_demod_0 = digital.dbpsk_demod(
        	samples_per_symbol=2,
        	excess_bw=0.35,
        	freq_bw=6.28/100.0,
        	phase_bw=6.28/100.0,
        	timing_bw=6.28/100.0,
        	mod_code="gray",
        	verbose=False,
        	log=False
        )
        self.channels_channel_model_0 = channels.channel_model(
        	noise_voltage=0.5,
        	frequency_offset=0.0,
        	epsilon=1.0,
        	taps=(1.0 + 1.0j, ),
        	noise_seed=0,
        	block_tags=False
        )
        self.blocks_unpack_k_bits_bb_0 = blocks.unpack_k_bits_bb(16)
        self.blocks_throttle_0 = blocks.throttle(gr.sizeof_char*1, samp_rate,True)
        self.blocks_pack_k_bits_bb_0 = blocks.pack_k_bits_bb(16)
        self.blocks_file_source_0 = blocks.file_source(gr.sizeof_char*1, '/home/jeff/EE420/FinalProj/testdat.txt', True)
        self.blocks_file_sink_0 = blocks.file_sink(gr.sizeof_char*1, '/home/jeff/EE420/Repo/EE420SDR/FinalProj/fecout.txt', False)
        self.blocks_file_sink_0.set_unbuffered(True)
        self.blocks_char_to_float_0 = blocks.char_to_float(1, 1)
        self.blks2_packet_encoder_1 = grc_blks2.packet_mod_b(grc_blks2.packet_encoder(
        		samples_per_symbol=2,
        		bits_per_symbol=1,
        		preamble='',
        		access_code='',
        		pad_for_usrp=True,
        	),
        	payload_length=0,
        )
        self.blks2_packet_decoder_1 = grc_blks2.packet_demod_b(grc_blks2.packet_decoder(
        		access_code='',
        		threshold=-1,
        		callback=lambda ok, payload: self.blks2_packet_decoder_1.recv_pkt(ok, payload),
        	),
        )

        ##################################################
        # Connections
        ##################################################
        self.connect((self.blks2_packet_decoder_1, 0), (self.digital_map_bb_0, 0))    
        self.connect((self.blks2_packet_encoder_1, 0), (self.digital_dxpsk_mod_0, 0))    
        self.connect((self.blocks_char_to_float_0, 0), (self.fec_extended_decoder_0, 0))    
        self.connect((self.blocks_file_source_0, 0), (self.blocks_throttle_0, 0))    
        self.connect((self.blocks_pack_k_bits_bb_0, 0), (self.blocks_file_sink_0, 0))    
        self.connect((self.blocks_throttle_0, 0), (self.blocks_unpack_k_bits_bb_0, 0))    
        self.connect((self.blocks_unpack_k_bits_bb_0, 0), (self.fec_extended_encoder_0, 0))    
        self.connect((self.channels_channel_model_0, 0), (self.digital_dxpsk_demod_0, 0))    
        self.connect((self.digital_dxpsk_demod_0, 0), (self.blks2_packet_decoder_1, 0))    
        self.connect((self.digital_dxpsk_mod_0, 0), (self.channels_channel_model_0, 0))    
        self.connect((self.digital_map_bb_0, 0), (self.blocks_char_to_float_0, 0))    
        self.connect((self.fec_extended_decoder_0, 0), (self.blocks_pack_k_bits_bb_0, 0))    
        self.connect((self.fec_extended_encoder_0, 0), (self.blks2_packet_encoder_1, 0))    
コード例 #11
0
    def __init__(self):
        gr.top_block.__init__(self, "Rtl Rx Dpsk")
        Qt.QWidget.__init__(self)
        self.setWindowTitle("Rtl Rx Dpsk")
        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", "rtl_rx_dpsk")

        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.samp_rate = samp_rate = 2e6
        self.freq = freq = 914.5e6

        ##################################################
        # Blocks
        ##################################################
        self.rtlsdr_source_0 = osmosdr.source(args="numchan=" + str(1) + " " +
                                              'rtl=0')
        self.rtlsdr_source_0.set_sample_rate(samp_rate)
        self.rtlsdr_source_0.set_center_freq(freq, 0)
        self.rtlsdr_source_0.set_freq_corr(0, 0)
        self.rtlsdr_source_0.set_dc_offset_mode(2, 0)
        self.rtlsdr_source_0.set_iq_balance_mode(2, 0)
        self.rtlsdr_source_0.set_gain_mode(True, 0)
        self.rtlsdr_source_0.set_gain(10, 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.qtgui_freq_sink_x_0 = qtgui.freq_sink_c(
            1024,  #size
            firdes.WIN_BLACKMAN_hARRIS,  #wintype
            freq,  #fc
            samp_rate,  #bw
            "",  #name
            1  #number of inputs
        )
        self.qtgui_freq_sink_x_0.set_update_time(0.10)
        self.qtgui_freq_sink_x_0.set_y_axis(-140, 10)
        self.qtgui_freq_sink_x_0.set_y_label('Relative Gain', 'dB')
        self.qtgui_freq_sink_x_0.set_trigger_mode(qtgui.TRIG_MODE_FREE, 0.0, 0,
                                                  "")
        self.qtgui_freq_sink_x_0.enable_autoscale(False)
        self.qtgui_freq_sink_x_0.enable_grid(False)
        self.qtgui_freq_sink_x_0.set_fft_average(1.0)
        self.qtgui_freq_sink_x_0.enable_axis_labels(True)
        self.qtgui_freq_sink_x_0.enable_control_panel(False)

        if not True:
            self.qtgui_freq_sink_x_0.disable_legend()

        if "complex" == "float" or "complex" == "msg_float":
            self.qtgui_freq_sink_x_0.set_plot_pos_half(not True)

        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(1):
            if len(labels[i]) == 0:
                self.qtgui_freq_sink_x_0.set_line_label(
                    i, "Data {0}".format(i))
            else:
                self.qtgui_freq_sink_x_0.set_line_label(i, labels[i])
            self.qtgui_freq_sink_x_0.set_line_width(i, widths[i])
            self.qtgui_freq_sink_x_0.set_line_color(i, colors[i])
            self.qtgui_freq_sink_x_0.set_line_alpha(i, alphas[i])

        self._qtgui_freq_sink_x_0_win = sip.wrapinstance(
            self.qtgui_freq_sink_x_0.pyqwidget(), Qt.QWidget)
        self.top_layout.addWidget(self._qtgui_freq_sink_x_0_win)
        self.digital_dxpsk_demod_0 = digital.dbpsk_demod(samples_per_symbol=4,
                                                         excess_bw=0.35,
                                                         freq_bw=6.28 / 100.0,
                                                         phase_bw=6.28 / 100.0,
                                                         timing_bw=6.28 /
                                                         100.0,
                                                         mod_code="gray",
                                                         verbose=False,
                                                         log=False)
        self.blocks_null_sink_0 = blocks.null_sink(gr.sizeof_char * 1)

        ##################################################
        # Connections
        ##################################################
        self.connect((self.digital_dxpsk_demod_0, 0),
                     (self.blocks_null_sink_0, 0))
        self.connect((self.rtlsdr_source_0, 0),
                     (self.digital_dxpsk_demod_0, 0))
        self.connect((self.rtlsdr_source_0, 0), (self.qtgui_freq_sink_x_0, 0))
コード例 #12
0
ファイル: OCCAM_generated.py プロジェクト: alfayez/radiomoc
	def __init__(self):
		grc_wxgui.top_block_gui.__init__(self, title="Occam Generated")
		_icon_path = "/usr/share/icons/hicolor/32x32/apps/gnuradio-grc.png"
		self.SetIcon(wx.Icon(_icon_path, wx.BITMAP_TYPE_ANY))

		##################################################
		# Variables
		##################################################
		self.stdValG = stdValG = 0.40
		self.seedValG = seedValG = 0L
		self.samplingRate2 = samplingRate2 = 640000
		self.samplingRate = samplingRate = 320000
		self.rfGain2 = rfGain2 = 25.0
		self.rfGain = rfGain = 1.0
		self.recvThresh = recvThresh = 0.3
		self.rcFiltCoeff = rcFiltCoeff = 1.0
		self.meanValG = meanValG = 0.0
		self.gaussGain = gaussGain = 0.3
		self.excessBw = excessBw = 0.35
		self.dataName = dataName = 1.0
		self.dataGain = dataGain = 10.0
		self.carrierFreq = carrierFreq = 462562500.0
		self.bbGain2 = bbGain2 = 1.0
		self.bbGain = bbGain = 1.3

		##################################################
		# Blocks
		##################################################
		self.throttle = gr.throttle(gr.sizeof_float*1, samplingRate)
		self.gaussScale = blocks.multiply_const_vcc((gaussGain, ))
		self.gauss = analog.noise_source_c(analog.GR_GAUSSIAN, 0.3, 0)
		self.dbpskMod = digital.dbpsk_mod(
			samples_per_symbol=samplingRate2/samplingRate,
			excess_bw=0.35,
			gray_coded=True,
			verbose=False,
			log=False)
			
		self.dbpskEnc = grc_blks2.packet_mod_f(grc_blks2.packet_encoder(
				samples_per_symbol=samplingRate2/samplingRate,
				bits_per_symbol=1,
				access_code="",
				pad_for_usrp=True,
			),
			payload_length=0,
		)
		self.dbpskDemod = digital.dbpsk_demod(
			samples_per_symbol=samplingRate2/samplingRate,
			excess_bw=0.35,
			freq_bw=6.28/100.0,
			phase_bw=6.28/100.0,
			timing_bw=6.28/100.0,
			gray_coded=True,
			verbose=False,
			log=False
		)
		self.dbpskDec = grc_blks2.packet_demod_f(grc_blks2.packet_decoder(
				access_code="",
				threshold=-1,
				callback=lambda ok, payload: self.dbpskDec.recv_pkt(ok, payload),
			),
		)
		self.dataSrc = gr.file_source(gr.sizeof_float*1, "music-tx1.0.dat", False)
		self.dataOut = gr.file_sink(gr.sizeof_float*1, "music-rx1.0.dat")
		self.dataOut.set_unbuffered(False)
		self.channelFilter2 = blocks.multiply_const_vcc((1.0, ))
		self.channelFilter = blocks.multiply_const_vcc((1.0, ))
		self.basebandScale2 = blocks.multiply_const_vcc((bbGain2, ))
		self.basebandScale = blocks.multiply_const_vcc((bbGain, ))
		self.add = blocks.add_vcc(1)

		##################################################
		# Connections
		##################################################
		self.connect((self.dataSrc, 0), (self.throttle, 0))
		self.connect((self.throttle, 0), (self.dbpskEnc, 0))
		self.connect((self.dbpskMod, 0), (self.channelFilter, 0))
		self.connect((self.dbpskDemod, 0), (self.dbpskDec, 0))
		self.connect((self.basebandScale, 0), (self.add, 0))
		self.connect((self.gauss, 0), (self.gaussScale, 0))
		self.connect((self.basebandScale2, 0), (self.channelFilter2, 0))
		self.connect((self.add, 0), (self.basebandScale2, 0))
		self.connect((self.dbpskDec, 0), (self.dataOut, 0))
		self.connect((self.dbpskEnc, 0), (self.dbpskMod, 0))
		self.connect((self.gaussScale, 0), (self.add, 1))
		self.connect((self.channelFilter, 0), (self.basebandScale, 0))
		self.connect((self.channelFilter2, 0), (self.dbpskDemod, 0))
コード例 #13
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")
        self.restoreGeometry(self.settings.value("geometry").toByteArray())

        ##################################################
        # Variables
        ##################################################
        self.tx_gain_ch2 = tx_gain_ch2 = 0
        self.tx_gain_ch1 = tx_gain_ch1 = 50
        self.tx_freq_ch2 = tx_freq_ch2 = 2.4e9
        self.tx_freq_ch1 = tx_freq_ch1 = 2.4e9
        self.samp_rate = samp_rate = 32000
        self.rx_gain_ch2 = rx_gain_ch2 = 0
        self.rx_gain_ch1 = rx_gain_ch1 = 50
        self.rx_freq_ch2 = rx_freq_ch2 = 2.4e9
        self.rx_freq_ch1 = rx_freq_ch1 = 2.4e9

        ##################################################
        # Blocks
        ##################################################
        self._tx_gain_ch1_range = Range(0, 50, 1, 50, 200)
        self._tx_gain_ch1_win = RangeWidget(self._tx_gain_ch1_range,
                                            self.set_tx_gain_ch1,
                                            'TX Gain CH1', "counter_slider",
                                            float)
        self.top_layout.addWidget(self._tx_gain_ch1_win)
        self._tx_freq_ch1_range = Range(10e6, 6e9, 100e3, 2.4e9, 200)
        self._tx_freq_ch1_win = RangeWidget(self._tx_freq_ch1_range,
                                            self.set_tx_freq_ch1,
                                            'TX Freq CH1', "counter_slider",
                                            float)
        self.top_layout.addWidget(self._tx_freq_ch1_win)
        self._rx_gain_ch1_range = Range(0, 50, 1, 50, 200)
        self._rx_gain_ch1_win = RangeWidget(self._rx_gain_ch1_range,
                                            self.set_rx_gain_ch1,
                                            'RX Gain CH1', "counter_slider",
                                            float)
        self.top_layout.addWidget(self._rx_gain_ch1_win)
        self._rx_freq_ch1_range = Range(10e6, 6e9, 100e3, 2.4e9, 200)
        self._rx_freq_ch1_win = RangeWidget(self._rx_freq_ch1_range,
                                            self.set_rx_freq_ch1,
                                            'RX Freq CH1', "counter_slider",
                                            float)
        self.top_layout.addWidget(self._rx_freq_ch1_win)
        self.uhd_usrp_source_0 = uhd.usrp_source(
            ",".join(("addr=192.168.30.2", "")),
            uhd.stream_args(
                cpu_format="fc32",
                channels=range(1),
            ),
        )
        self.uhd_usrp_source_0.set_clock_rate(200e6, uhd.ALL_MBOARDS)
        self.uhd_usrp_source_0.set_clock_source('internal', 0)
        self.uhd_usrp_source_0.set_subdev_spec('A:0 ', 0)
        self.uhd_usrp_source_0.set_samp_rate(samp_rate)
        self.uhd_usrp_source_0.set_time_now(uhd.time_spec(time.time()),
                                            uhd.ALL_MBOARDS)
        self.uhd_usrp_source_0.set_center_freq(rx_freq_ch1, 0)
        self.uhd_usrp_source_0.set_gain(rx_gain_ch1, 0)
        self.uhd_usrp_source_0.set_antenna('RX2', 0)
        self.uhd_usrp_sink_0 = uhd.usrp_sink(
            ",".join(("addr=192.168.10.2", "")),
            uhd.stream_args(
                cpu_format="fc32",
                channels=range(1),
            ),
        )
        self.uhd_usrp_sink_0.set_subdev_spec('A:0 ', 0)
        self.uhd_usrp_sink_0.set_samp_rate(samp_rate)
        self.uhd_usrp_sink_0.set_center_freq(tx_freq_ch1, 0)
        self.uhd_usrp_sink_0.set_gain(tx_gain_ch1, 0)
        self.uhd_usrp_sink_0.set_antenna('TX/RX', 0)
        self._tx_gain_ch2_range = Range(0, 30, 1, 0, 200)
        self._tx_gain_ch2_win = RangeWidget(self._tx_gain_ch2_range,
                                            self.set_tx_gain_ch2,
                                            'TX Gain CH2', "counter_slider",
                                            float)
        self.top_layout.addWidget(self._tx_gain_ch2_win)
        self._tx_freq_ch2_range = Range(10e6, 6e9, 100e3, 2.4e9, 200)
        self._tx_freq_ch2_win = RangeWidget(self._tx_freq_ch2_range,
                                            self.set_tx_freq_ch2,
                                            'TX Freq CH2', "counter_slider",
                                            float)
        self.top_layout.addWidget(self._tx_freq_ch2_win)
        self._rx_gain_ch2_range = Range(0, 30, 1, 0, 200)
        self._rx_gain_ch2_win = RangeWidget(self._rx_gain_ch2_range,
                                            self.set_rx_gain_ch2,
                                            'RX Gain CH2', "counter_slider",
                                            float)
        self.top_layout.addWidget(self._rx_gain_ch2_win)
        self._rx_freq_ch2_range = Range(10e6, 6e9, 100e3, 2.4e9, 200)
        self._rx_freq_ch2_win = RangeWidget(self._rx_freq_ch2_range,
                                            self.set_rx_freq_ch2,
                                            'RX Freq CH2', "counter_slider",
                                            float)
        self.top_layout.addWidget(self._rx_freq_ch2_win)
        self.qtgui_time_sink_x_0_0 = qtgui.time_sink_c(
            1024,  #size
            samp_rate,  #samp_rate
            "",  #name
            1  #number of inputs
        )
        self.qtgui_time_sink_x_0_0.set_update_time(0.10)
        self.qtgui_time_sink_x_0_0.set_y_axis(-1, 1)

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

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

        if not True:
            self.qtgui_time_sink_x_0_0.disable_legend()

        labels = ['', '', '', '', '', '', '', '', '', '']
        widths = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
        colors = [
            "blue", "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(2):
            if len(labels[i]) == 0:
                if (i % 2 == 0):
                    self.qtgui_time_sink_x_0_0.set_line_label(
                        i, "Re{{Data {0}}}".format(i / 2))
                else:
                    self.qtgui_time_sink_x_0_0.set_line_label(
                        i, "Im{{Data {0}}}".format(i / 2))
            else:
                self.qtgui_time_sink_x_0_0.set_line_label(i, labels[i])
            self.qtgui_time_sink_x_0_0.set_line_width(i, widths[i])
            self.qtgui_time_sink_x_0_0.set_line_color(i, colors[i])
            self.qtgui_time_sink_x_0_0.set_line_style(i, styles[i])
            self.qtgui_time_sink_x_0_0.set_line_marker(i, markers[i])
            self.qtgui_time_sink_x_0_0.set_line_alpha(i, alphas[i])

        self._qtgui_time_sink_x_0_0_win = sip.wrapinstance(
            self.qtgui_time_sink_x_0_0.pyqwidget(), Qt.QWidget)
        self.top_layout.addWidget(self._qtgui_time_sink_x_0_0_win)
        self.qtgui_time_sink_x_0 = qtgui.time_sink_c(
            1024,  #size
            samp_rate,  #samp_rate
            "",  #name
            1  #number of inputs
        )
        self.qtgui_time_sink_x_0.set_update_time(0.10)
        self.qtgui_time_sink_x_0.set_y_axis(-1, 1)

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

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

        if not True:
            self.qtgui_time_sink_x_0.disable_legend()

        labels = ['', '', '', '', '', '', '', '', '', '']
        widths = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
        colors = [
            "blue", "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(2):
            if len(labels[i]) == 0:
                if (i % 2 == 0):
                    self.qtgui_time_sink_x_0.set_line_label(
                        i, "Re{{Data {0}}}".format(i / 2))
                else:
                    self.qtgui_time_sink_x_0.set_line_label(
                        i, "Im{{Data {0}}}".format(i / 2))
            else:
                self.qtgui_time_sink_x_0.set_line_label(i, labels[i])
            self.qtgui_time_sink_x_0.set_line_width(i, widths[i])
            self.qtgui_time_sink_x_0.set_line_color(i, colors[i])
            self.qtgui_time_sink_x_0.set_line_style(i, styles[i])
            self.qtgui_time_sink_x_0.set_line_marker(i, markers[i])
            self.qtgui_time_sink_x_0.set_line_alpha(i, alphas[i])

        self._qtgui_time_sink_x_0_win = sip.wrapinstance(
            self.qtgui_time_sink_x_0.pyqwidget(), Qt.QWidget)
        self.top_layout.addWidget(self._qtgui_time_sink_x_0_win)
        self.qtgui_number_sink_0_0 = qtgui.number_sink(gr.sizeof_char, 0,
                                                       qtgui.NUM_GRAPH_HORIZ,
                                                       1)
        self.qtgui_number_sink_0_0.set_update_time(0.10)
        self.qtgui_number_sink_0_0.set_title("")

        labels = ['', '', '', '', '', '', '', '', '', '']
        units = ['', '', '', '', '', '', '', '', '', '']
        colors = [("black", "black"), ("black", "black"), ("black", "black"),
                  ("black", "black"), ("black", "black"), ("black", "black"),
                  ("black", "black"), ("black", "black"), ("black", "black"),
                  ("black", "black")]
        factor = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
        for i in xrange(1):
            self.qtgui_number_sink_0_0.set_min(i, -255)
            self.qtgui_number_sink_0_0.set_max(i, 256)
            self.qtgui_number_sink_0_0.set_color(i, colors[i][0], colors[i][1])
            if len(labels[i]) == 0:
                self.qtgui_number_sink_0_0.set_label(i, "Data {0}".format(i))
            else:
                self.qtgui_number_sink_0_0.set_label(i, labels[i])
            self.qtgui_number_sink_0_0.set_unit(i, units[i])
            self.qtgui_number_sink_0_0.set_factor(i, factor[i])

        self.qtgui_number_sink_0_0.enable_autoscale(False)
        self._qtgui_number_sink_0_0_win = sip.wrapinstance(
            self.qtgui_number_sink_0_0.pyqwidget(), Qt.QWidget)
        self.top_layout.addWidget(self._qtgui_number_sink_0_0_win)
        self.qtgui_number_sink_0 = qtgui.number_sink(gr.sizeof_char, 0,
                                                     qtgui.NUM_GRAPH_HORIZ, 1)
        self.qtgui_number_sink_0.set_update_time(0.10)
        self.qtgui_number_sink_0.set_title("")

        labels = ['', '', '', '', '', '', '', '', '', '']
        units = ['', '', '', '', '', '', '', '', '', '']
        colors = [("black", "black"), ("black", "black"), ("black", "black"),
                  ("black", "black"), ("black", "black"), ("black", "black"),
                  ("black", "black"), ("black", "black"), ("black", "black"),
                  ("black", "black")]
        factor = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
        for i in xrange(1):
            self.qtgui_number_sink_0.set_min(i, -5)
            self.qtgui_number_sink_0.set_max(i, 10)
            self.qtgui_number_sink_0.set_color(i, colors[i][0], colors[i][1])
            if len(labels[i]) == 0:
                self.qtgui_number_sink_0.set_label(i, "Data {0}".format(i))
            else:
                self.qtgui_number_sink_0.set_label(i, labels[i])
            self.qtgui_number_sink_0.set_unit(i, units[i])
            self.qtgui_number_sink_0.set_factor(i, factor[i])

        self.qtgui_number_sink_0.enable_autoscale(False)
        self._qtgui_number_sink_0_win = sip.wrapinstance(
            self.qtgui_number_sink_0.pyqwidget(), Qt.QWidget)
        self.top_layout.addWidget(self._qtgui_number_sink_0_win)
        self.qtgui_freq_sink_x_0_0 = qtgui.freq_sink_c(
            1024,  #size
            firdes.WIN_BLACKMAN_hARRIS,  #wintype
            0,  #fc
            samp_rate,  #bw
            "",  #name
            1  #number of inputs
        )
        self.qtgui_freq_sink_x_0_0.set_update_time(0.10)
        self.qtgui_freq_sink_x_0_0.set_y_axis(-140, 10)
        self.qtgui_freq_sink_x_0_0.set_y_label('Relative Gain', 'dB')
        self.qtgui_freq_sink_x_0_0.set_trigger_mode(qtgui.TRIG_MODE_FREE, 0.0,
                                                    0, "")
        self.qtgui_freq_sink_x_0_0.enable_autoscale(False)
        self.qtgui_freq_sink_x_0_0.enable_grid(False)
        self.qtgui_freq_sink_x_0_0.set_fft_average(1.0)
        self.qtgui_freq_sink_x_0_0.enable_axis_labels(True)
        self.qtgui_freq_sink_x_0_0.enable_control_panel(False)

        if not True:
            self.qtgui_freq_sink_x_0_0.disable_legend()

        if "complex" == "float" or "complex" == "msg_float":
            self.qtgui_freq_sink_x_0_0.set_plot_pos_half(not True)

        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(1):
            if len(labels[i]) == 0:
                self.qtgui_freq_sink_x_0_0.set_line_label(
                    i, "Data {0}".format(i))
            else:
                self.qtgui_freq_sink_x_0_0.set_line_label(i, labels[i])
            self.qtgui_freq_sink_x_0_0.set_line_width(i, widths[i])
            self.qtgui_freq_sink_x_0_0.set_line_color(i, colors[i])
            self.qtgui_freq_sink_x_0_0.set_line_alpha(i, alphas[i])

        self._qtgui_freq_sink_x_0_0_win = sip.wrapinstance(
            self.qtgui_freq_sink_x_0_0.pyqwidget(), Qt.QWidget)
        self.top_layout.addWidget(self._qtgui_freq_sink_x_0_0_win)
        self.qtgui_freq_sink_x_0 = qtgui.freq_sink_c(
            1024,  #size
            firdes.WIN_BLACKMAN_hARRIS,  #wintype
            0,  #fc
            samp_rate,  #bw
            "",  #name
            1  #number of inputs
        )
        self.qtgui_freq_sink_x_0.set_update_time(0.10)
        self.qtgui_freq_sink_x_0.set_y_axis(-140, 10)
        self.qtgui_freq_sink_x_0.set_y_label('Relative Gain', 'dB')
        self.qtgui_freq_sink_x_0.set_trigger_mode(qtgui.TRIG_MODE_FREE, 0.0, 0,
                                                  "")
        self.qtgui_freq_sink_x_0.enable_autoscale(False)
        self.qtgui_freq_sink_x_0.enable_grid(False)
        self.qtgui_freq_sink_x_0.set_fft_average(1.0)
        self.qtgui_freq_sink_x_0.enable_axis_labels(True)
        self.qtgui_freq_sink_x_0.enable_control_panel(False)

        if not True:
            self.qtgui_freq_sink_x_0.disable_legend()

        if "complex" == "float" or "complex" == "msg_float":
            self.qtgui_freq_sink_x_0.set_plot_pos_half(not True)

        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(1):
            if len(labels[i]) == 0:
                self.qtgui_freq_sink_x_0.set_line_label(
                    i, "Data {0}".format(i))
            else:
                self.qtgui_freq_sink_x_0.set_line_label(i, labels[i])
            self.qtgui_freq_sink_x_0.set_line_width(i, widths[i])
            self.qtgui_freq_sink_x_0.set_line_color(i, colors[i])
            self.qtgui_freq_sink_x_0.set_line_alpha(i, alphas[i])

        self._qtgui_freq_sink_x_0_win = sip.wrapinstance(
            self.qtgui_freq_sink_x_0.pyqwidget(), Qt.QWidget)
        self.top_layout.addWidget(self._qtgui_freq_sink_x_0_win)
        self.digital_dxpsk_mod_0 = digital.dbpsk_mod(samples_per_symbol=2,
                                                     excess_bw=0.35,
                                                     mod_code="gray",
                                                     verbose=False,
                                                     log=False)

        self.digital_dxpsk_demod_0 = digital.dbpsk_demod(samples_per_symbol=2,
                                                         excess_bw=0.35,
                                                         freq_bw=6.28 / 100.0,
                                                         phase_bw=6.28 / 100.0,
                                                         timing_bw=6.28 /
                                                         100.0,
                                                         mod_code="gray",
                                                         verbose=False,
                                                         log=False)
        self.blocks_vector_source_x_0 = blocks.vector_source_b(
            (1, 0, 0, 0, 0, 1), True, 1, [])
        self.blocks_unpacked_to_packed_xx_0 = blocks.unpacked_to_packed_bb(
            1, gr.GR_MSB_FIRST)
        self.blocks_file_sink_0_0_0 = blocks.file_sink(
            gr.sizeof_gr_complex * 1, '/home/hanqing/Wireless Research/Y_test',
            False)
        self.blocks_file_sink_0_0_0.set_unbuffered(False)
        self.blocks_file_sink_0_0 = blocks.file_sink(
            gr.sizeof_gr_complex * 1, '/home/hanqing/Wireless Research/X_test',
            False)
        self.blocks_file_sink_0_0.set_unbuffered(False)
        self.blocks_file_sink_0 = blocks.file_sink(
            gr.sizeof_char * 1, '/home/hanqing/Wireless Research/dbpsk_out',
            False)
        self.blocks_file_sink_0.set_unbuffered(False)

        ##################################################
        # Connections
        ##################################################
        self.connect((self.blocks_unpacked_to_packed_xx_0, 0),
                     (self.digital_dxpsk_mod_0, 0))
        self.connect((self.blocks_vector_source_x_0, 0),
                     (self.blocks_unpacked_to_packed_xx_0, 0))
        self.connect((self.blocks_vector_source_x_0, 0),
                     (self.qtgui_number_sink_0_0, 0))
        self.connect((self.digital_dxpsk_demod_0, 0),
                     (self.blocks_file_sink_0, 0))
        self.connect((self.digital_dxpsk_demod_0, 0),
                     (self.qtgui_number_sink_0, 0))
        self.connect((self.digital_dxpsk_mod_0, 0),
                     (self.blocks_file_sink_0_0, 0))
        self.connect((self.digital_dxpsk_mod_0, 0),
                     (self.qtgui_freq_sink_x_0, 0))
        self.connect((self.digital_dxpsk_mod_0, 0),
                     (self.qtgui_time_sink_x_0, 0))
        self.connect((self.digital_dxpsk_mod_0, 0), (self.uhd_usrp_sink_0, 0))
        self.connect((self.uhd_usrp_source_0, 0),
                     (self.blocks_file_sink_0_0_0, 0))
        self.connect((self.uhd_usrp_source_0, 0),
                     (self.digital_dxpsk_demod_0, 0))
        self.connect((self.uhd_usrp_source_0, 0),
                     (self.qtgui_freq_sink_x_0_0, 0))
        self.connect((self.uhd_usrp_source_0, 0),
                     (self.qtgui_time_sink_x_0_0, 0))
コード例 #14
0
ファイル: dpsk_loopback.py プロジェクト: croumb6/neural_demod
    def __init__(self):
        gr.top_block.__init__(self, "DPSK Loopback")
        Qt.QWidget.__init__(self)
        self.setWindowTitle("DPSK Loopback")
        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", "dpsk_loopback")
        self.restoreGeometry(self.settings.value("geometry").toByteArray())

        ##################################################
        # Variables
        ##################################################
        self.samp_rate = samp_rate = 10000
        self.freq = freq = 500

        ##################################################
        # Blocks
        ##################################################
        self._freq_range = Range(0, 5000, 1, 500, 200)
        self._freq_win = RangeWidget(self._freq_range, self.set_freq, "freq",
                                     "counter_slider", float)
        self.top_layout.addWidget(self._freq_win)
        self.qtgui_time_sink_x_0 = qtgui.time_sink_f(
            1024,  #size
            samp_rate,  #samp_rate
            'QT GUI Plot',  #name
            1  #number of inputs
        )
        self.qtgui_time_sink_x_0.set_update_time(0.10)
        self.qtgui_time_sink_x_0.set_y_axis(-1.1, 1.1)

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

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

        if not True:
            self.qtgui_time_sink_x_0.disable_legend()

        labels = ['', '', '', '', '', '', '', '', '', '']
        widths = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
        colors = [
            "blue", "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.set_line_label(
                    i, "Data {0}".format(i))
            else:
                self.qtgui_time_sink_x_0.set_line_label(i, labels[i])
            self.qtgui_time_sink_x_0.set_line_width(i, widths[i])
            self.qtgui_time_sink_x_0.set_line_color(i, colors[i])
            self.qtgui_time_sink_x_0.set_line_style(i, styles[i])
            self.qtgui_time_sink_x_0.set_line_marker(i, markers[i])
            self.qtgui_time_sink_x_0.set_line_alpha(i, alphas[i])

        self._qtgui_time_sink_x_0_win = sip.wrapinstance(
            self.qtgui_time_sink_x_0.pyqwidget(), Qt.QWidget)
        self.top_layout.addWidget(self._qtgui_time_sink_x_0_win)
        self.digital_dxpsk_mod_1 = digital.dbpsk_mod(samples_per_symbol=2,
                                                     excess_bw=0.35,
                                                     mod_code="gray",
                                                     verbose=False,
                                                     log=False)

        self.digital_dxpsk_demod_1 = digital.dbpsk_demod(samples_per_symbol=2,
                                                         excess_bw=0.35,
                                                         freq_bw=6.28 / 100.0,
                                                         phase_bw=6.28 / 100.0,
                                                         timing_bw=6.28 /
                                                         100.0,
                                                         mod_code="gray",
                                                         verbose=False,
                                                         log=False)
        self.blocks_throttle_0_0 = blocks.throttle(gr.sizeof_float * 1,
                                                   samp_rate, True)
        self.blks2_packet_encoder_0 = grc_blks2.packet_mod_f(
            grc_blks2.packet_encoder(
                samples_per_symbol=2,
                bits_per_symbol=1,
                preamble='',
                access_code='',
                pad_for_usrp=True,
            ),
            payload_length=0,
        )
        self.blks2_packet_decoder_0 = grc_blks2.packet_demod_f(
            grc_blks2.packet_decoder(
                access_code='',
                threshold=-1,
                callback=lambda ok, payload: self.blks2_packet_decoder_0.
                recv_pkt(ok, payload),
            ), )
        self.analog_sig_source_x_0 = analog.sig_source_f(
            samp_rate, analog.GR_COS_WAVE, freq, 1, 0)

        ##################################################
        # Connections
        ##################################################
        self.connect((self.analog_sig_source_x_0, 0),
                     (self.blocks_throttle_0_0, 0))
        self.connect((self.blks2_packet_decoder_0, 0),
                     (self.qtgui_time_sink_x_0, 0))
        self.connect((self.blks2_packet_encoder_0, 0),
                     (self.digital_dxpsk_mod_1, 0))
        self.connect((self.blocks_throttle_0_0, 0),
                     (self.blks2_packet_encoder_0, 0))
        self.connect((self.digital_dxpsk_demod_1, 0),
                     (self.blks2_packet_decoder_0, 0))
        self.connect((self.digital_dxpsk_mod_1, 0),
                     (self.digital_dxpsk_demod_1, 0))
コード例 #15
0
ファイル: top_block.py プロジェクト: jmccormack200/SDR
    def __init__(self):
        grc_wxgui.top_block_gui.__init__(self, title="Top Block")
        _icon_path = "/usr/share/icons/hicolor/32x32/apps/gnuradio-grc.png"
        self.SetIcon(wx.Icon(_icon_path, wx.BITMAP_TYPE_ANY))

        ##################################################
        # Variables
        ##################################################
        self.samp_rate = samp_rate = 1000000

        ##################################################
        # 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(samp_rate)
        self.uhd_usrp_source_0.set_center_freq(88.1e6, 0)
        self.uhd_usrp_source_0.set_gain(0, 0)
        self.uhd_usrp_source_0.set_antenna("RX2", 0)
        self.uhd_usrp_sink_0 = uhd.usrp_sink(
        	",".join(("", "")),
        	uhd.stream_args(
        		cpu_format="fc32",
        		channels=range(1),
        	),
        )
        self.uhd_usrp_sink_0.set_samp_rate(samp_rate)
        self.uhd_usrp_sink_0.set_center_freq(88.1e6, 0)
        self.uhd_usrp_sink_0.set_gain(0, 0)
        self.uhd_usrp_sink_0.set_antenna("TX/RX", 0)
        self.digital_dxpsk_mod_0 = digital.dbpsk_mod(
        	samples_per_symbol=2,
        	excess_bw=0.35,
        	mod_code="gray",
        	verbose=False,
        	log=False)
        	
        self.digital_dxpsk_demod_0 = digital.dbpsk_demod(
        	samples_per_symbol=2,
        	excess_bw=0.35,
        	freq_bw=6.28/100.0,
        	phase_bw=6.28/100.0,
        	timing_bw=6.28/100.0,
        	mod_code="gray",
        	verbose=False,
        	log=False
        )
        self.blocks_vector_source_x_0 = blocks.vector_source_b([1,1], True, 1, [])
        self.blocks_unpacked_to_packed_xx_0 = blocks.unpacked_to_packed_bb(1, gr.GR_MSB_FIRST)
        self.blocks_file_sink_0 = blocks.file_sink(gr.sizeof_char*1, "dbpsk_out.txt", False)
        self.blocks_file_sink_0.set_unbuffered(True)

        ##################################################
        # Connections
        ##################################################
        self.connect((self.blocks_unpacked_to_packed_xx_0, 0), (self.digital_dxpsk_mod_0, 0))    
        self.connect((self.blocks_vector_source_x_0, 0), (self.blocks_unpacked_to_packed_xx_0, 0))    
        self.connect((self.digital_dxpsk_demod_0, 0), (self.blocks_file_sink_0, 0))    
        self.connect((self.digital_dxpsk_mod_0, 0), (self.uhd_usrp_sink_0, 0))    
        self.connect((self.uhd_usrp_source_0, 0), (self.digital_dxpsk_demod_0, 0))    
コード例 #16
0
ファイル: dsss_sync.py プロジェクト: CIG-SDR/CIG
    def __init__(self):
        grc_wxgui.top_block_gui.__init__(self, title="Direct-sequence spread spectrum")

        ##################################################
        # Variables
        ##################################################
        self.variable_constellation_0 = variable_constellation_0 = digital.constellation_calcdist(([-1, 1]), ([0, 1]), 2, 1).base()
        self.samp_sym = samp_sym = 32
        self.samp_rate = samp_rate = 500e3
        self.samp_chip = samp_chip = 2
        self.init = init = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
        self.generator = generator = 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1

        ##################################################
        # Blocks
        ##################################################
        self.wxgui_fftsink2_0_0 = fftsink2.fft_sink_c(
        	self.GetWin(),
        	baseband_freq=0,
        	y_per_div=10,
        	y_divs=10,
        	ref_level=0,
        	ref_scale=2.0,
        	sample_rate=samp_rate,
        	fft_size=1024,
        	fft_rate=15,
        	average=False,
        	avg_alpha=None,
        	title="Despread Signal ",
        	peak_hold=False,
        )
        self.GridAdd(self.wxgui_fftsink2_0_0.win, 2, 3, 1, 2)
        self.wxgui_fftsink2_0 = fftsink2.fft_sink_c(
        	self.GetWin(),
        	baseband_freq=0,
        	y_per_div=10,
        	y_divs=10,
        	ref_level=0,
        	ref_scale=2.0,
        	sample_rate=samp_rate,
        	fft_size=1024,
        	fft_rate=15,
        	average=False,
        	avg_alpha=None,
        	title="Received DS Signal",
        	peak_hold=False,
        )
        self.GridAdd(self.wxgui_fftsink2_0.win, 2, 1, 1, 2)
        self.digital_dxpsk_mod_0 = digital.dbpsk_mod(
        	samples_per_symbol=2,
        	excess_bw=0.35,
        	mod_code="gray",
        	verbose=False,
        	log=False)
        	
        self.digital_dxpsk_demod_0 = digital.dbpsk_demod(
        	samples_per_symbol=2,
        	excess_bw=0.35,
        	freq_bw=6.28/100.0,
        	phase_bw=6.28/100.0,
        	timing_bw=6.28/100.0,
        	mod_code="gray",
        	verbose=False,
        	log=False
        )
        self.channels_channel_model_0 = channels.channel_model(
        	noise_voltage=0.3,
        	frequency_offset=0.0,
        	epsilon=1.0,
        	taps=(1.0 + 1.0j, ),
        	noise_seed=0,
        	block_tags=False
        )
        self.blocks_unpacked_to_packed_xx_0 = blocks.unpacked_to_packed_bb(1, gr.GR_MSB_FIRST)
        self.blocks_throttle_0 = blocks.throttle(gr.sizeof_gr_complex*1, samp_rate,True)
        self.blocks_repeat_0 = blocks.repeat(gr.sizeof_char*1, samp_sym)
        self.blocks_keep_one_in_n_0 = blocks.keep_one_in_n(gr.sizeof_char*1, 32)
        self.blocks_delay_0 = blocks.delay(gr.sizeof_gr_complex*1, 1000)
        self.Spread_sync_0 = Spread.sync()
        self.Spread_rx_sync_0 = Spread.rx_sync(12)
        self.Spread_preamble_0 = Spread.preamble_bb(1389, (64*(1, 1)))
        self.Spread_msg_source_0 = Spread.msg_source(100, 100)
        self.Spread_framer_0 = Spread.framer(0)
        self.Spread_ds_spreader_0 = Spread.ds_spreader(samp_chip, (generator), (init))
        self.Spread_ds_despreader_0 = Spread.ds_despreader(samp_chip, 
                                     1024, 
                                     2045, 
                                     (generator), 
                                     (init))
        self.Spread_deframer_0 = Spread.deframer(0)

        ##################################################
        # Connections
        ##################################################
        self.connect((self.blocks_throttle_0, 0), (self.Spread_ds_despreader_0, 0))
        self.connect((self.blocks_throttle_0, 0), (self.wxgui_fftsink2_0, 0))
        self.connect((self.blocks_repeat_0, 0), (self.Spread_ds_spreader_0, 0))
        self.connect((self.Spread_ds_despreader_0, 0), (self.wxgui_fftsink2_0_0, 0))
        self.connect((self.Spread_sync_0, 0), (self.Spread_preamble_0, 0))
        self.connect((self.Spread_preamble_0, 0), (self.blocks_repeat_0, 0))
        self.connect((self.channels_channel_model_0, 0), (self.blocks_delay_0, 0))
        self.connect((self.blocks_delay_0, 0), (self.blocks_throttle_0, 0))
        self.connect((self.Spread_ds_despreader_0, 0), (self.digital_dxpsk_demod_0, 0))
        self.connect((self.digital_dxpsk_demod_0, 0), (self.blocks_keep_one_in_n_0, 0))
        self.connect((self.blocks_keep_one_in_n_0, 0), (self.Spread_rx_sync_0, 0))
        self.connect((self.digital_dxpsk_mod_0, 0), (self.channels_channel_model_0, 0))
        self.connect((self.blocks_unpacked_to_packed_xx_0, 0), (self.digital_dxpsk_mod_0, 0))
        self.connect((self.Spread_ds_spreader_0, 0), (self.blocks_unpacked_to_packed_xx_0, 0))

        ##################################################
        # Asynch Message Connections
        ##################################################
        self.msg_connect(self.Spread_framer_0, "out", self.Spread_sync_0, "in")
        self.msg_connect(self.Spread_msg_source_0, "out", self.Spread_framer_0, "in")
        self.msg_connect(self.Spread_rx_sync_0, "out", self.Spread_deframer_0, "in")