def __init__(self): grc_wxgui.top_block_gui.__init__(self, title="FHSS transmit") _icon_path = "/usr/share/icons/hicolor/32x32/apps/gnuradio-grc.png" self.SetIcon(wx.Icon(_icon_path, wx.BITMAP_TYPE_ANY)) ################################################## # Variables ################################################## self.samp_sym = samp_sym = 64 self.samp_rate = samp_rate = 400e3 self.registers = registers = 3 self.init = init = 1, 1, 1, 1 self.generator = generator = 1, 1, 0, 0, 1 self.code_rate = code_rate = int(samp_sym * 500) ################################################## # Blocks ################################################## 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="FFT Plot", peak_hold=False, ) self.Add(self.wxgui_fftsink2_0.win) self.uhd_usrp_sink_0 = uhd.usrp_sink( ",".join(("dev_addr=192.168.10.2", "")), 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(2.45e9, 0) self.uhd_usrp_sink_0.set_gain(30, 0) self.uhd_usrp_sink_0.set_antenna("TX/RX", 0) self.blocks_vector_source_x_0 = blocks.vector_source_b((0, 1, 0, 1), True, 1, []) self.Spread_synthesizer_0 = Spread.synthesizer(code_rate, 9000, samp_rate, (generator), (init)) self.Spread_cpfsk_mod_0 = Spread.cpfsk_mod(samp_sym) ################################################## # Connections ################################################## self.connect((self.Spread_cpfsk_mod_0, 0), (self.Spread_synthesizer_0, 0)) self.connect((self.Spread_synthesizer_0, 0), (self.uhd_usrp_sink_0, 0)) self.connect((self.Spread_synthesizer_0, 0), (self.wxgui_fftsink2_0, 0)) self.connect((self.blocks_vector_source_x_0, 0), (self.Spread_cpfsk_mod_0, 0))
def main(testing=False, accuracy=0.95, rate=0.5): TOTAL_POPULATION = 10000000 US_CASES = 6008588 People = [Person() for _ in range(TOTAL_POPULATION)] People[0].getSick() weeks = 0 totalInfected = [] totalDead = [] currentlyInfected = [] while Person.currentlyInfected > 0 and Person.totalInfected < TOTAL_POPULATION: People = Spread.forward_one_week(People, testing, accuracy, rate) weeks += 1 print("***** After {} weeks the stats are *****".format(weeks)) print("Total people infected:", Person.totalInfected) print("Currently Infected:", Person.currentlyInfected) print("Total dead:", Person.totalDead) print() totalInfected.append(Person.totalInfected) totalDead.append(Person.totalDead) currentlyInfected.append(Person.currentlyInfected) plt.figure() plt.plot(range(weeks), totalInfected, range(weeks), totalDead, range(weeks), currentlyInfected) plt.legend(["Total Infected", "Total Dead", "Currently Infected"]) plt.yscale("log") plt.xlabel("Weeks") plt.savefig("infection.png")
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 = 32000 ################################################## # Blocks ################################################## 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_samp_rate(samp_rate) self.uhd_usrp_sink_0.set_center_freq(2.415e9, 0) self.uhd_usrp_sink_0.set_gain(15, 0) self.uhd_usrp_sink_0.set_antenna("TX/RX", 0) self.uhd_usrp_sink_0.set_bandwidth(8.7e6, 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.blocks_vector_source_x_0 = blocks.vector_source_b((1, 1, 1, 1), True, 1, []) self.blocks_multiply_const_vxx_0 = blocks.multiply_const_vcc((.500, )) self.blks2_packet_encoder_0 = grc_blks2.packet_mod_b( grc_blks2.packet_encoder( samples_per_symbol=1, bits_per_symbol=1, preamble="", access_code="", pad_for_usrp=True, ), payload_length=0, ) self.Spread_ds_spreader_0 = Spread.ds_spreader(2, (1, 1, 0, 1), (1, 1, 1)) ################################################## # Connections ################################################## self.connect((self.Spread_ds_spreader_0, 0), (self.digital_dxpsk_mod_0, 0)) self.connect((self.blks2_packet_encoder_0, 0), (self.Spread_ds_spreader_0, 0)) self.connect((self.blocks_multiply_const_vxx_0, 0), (self.uhd_usrp_sink_0, 0)) self.connect((self.blocks_vector_source_x_0, 0), (self.blks2_packet_encoder_0, 0)) self.connect((self.digital_dxpsk_mod_0, 0), (self.blocks_multiply_const_vxx_0, 0))
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 = 32e3 ################################################## # Blocks ################################################## self.uhd_usrp_sink_0 = uhd.usrp_sink( ",".join(("addr=192.168.10.3", "")), uhd.stream_args( cpu_format="fc32", channels=range(1), ), ) self.uhd_usrp_sink_0.set_samp_rate(32e3) self.uhd_usrp_sink_0.set_center_freq(2.417e9, 0) self.uhd_usrp_sink_0.set_gain(20, 0) self.uhd_usrp_sink_0.set_antenna("TX/RX", 0) self.uhd_usrp_sink_0.set_bandwidth(3e6, 0) self.digital_gfsk_mod_0 = digital.gfsk_mod( samples_per_symbol=2, sensitivity=1.0, bt=0.35, verbose=False, log=False, ) self.digital_crc32_bb_0 = digital.crc32_bb(False, "packet_len") self.blocks_vector_source_x_0 = blocks.vector_source_b((1,0,1,0), True, 1, []) self.blocks_stream_to_tagged_stream_0 = blocks.stream_to_tagged_stream(gr.sizeof_char, 1, 8, "packet_len") self.blks2_packet_encoder_0 = grc_blks2.packet_mod_b(grc_blks2.packet_encoder( samples_per_symbol=1, bits_per_symbol=1, preamble="", access_code="", pad_for_usrp=True, ), payload_length=0, ) self.Spread_ds_spreader_0 = Spread.ds_spreader(2, (1, 1, 0, 1), (1, 1, 1)) ################################################## # Connections ################################################## self.connect((self.Spread_ds_spreader_0, 0), (self.digital_gfsk_mod_0, 0)) self.connect((self.blks2_packet_encoder_0, 0), (self.blocks_stream_to_tagged_stream_0, 0)) self.connect((self.blocks_stream_to_tagged_stream_0, 0), (self.digital_crc32_bb_0, 0)) self.connect((self.blocks_vector_source_x_0, 0), (self.blks2_packet_encoder_0, 0)) self.connect((self.digital_crc32_bb_0, 0), (self.Spread_ds_spreader_0, 0)) self.connect((self.digital_gfsk_mod_0, 0), (self.uhd_usrp_sink_0, 0))
def runner(): print "=" * 25 print "SPREAD" print "=" * 25 frontier_path = './obtained/' runner_path = './Obtained_PF/' frontier_list = listdir(frontier_path) runner_list = listdir(runner_path) for deleted in runner_list: remove(runner_path + deleted) for f in frontier_list: # print frontier_path + f copy(frontier_path + f, runner_path + f) Spread.spread_calculator_wrapper() # destroy everything in the runner_path: runner_list = listdir(runner_path) for deleted in runner_list: remove(runner_path + deleted)
def runner(): print "="*25 print "SPREAD" print "="*25 frontier_path = './obtained/' runner_path = './Obtained_PF/' frontier_list = listdir(frontier_path) runner_list = listdir(runner_path) for deleted in runner_list: remove(runner_path + deleted) for f in frontier_list: # print frontier_path + f copy(frontier_path + f, runner_path + f) Spread.spread_calculator_wrapper() # destroy everything in the runner_path: runner_list = listdir(runner_path) for deleted in runner_list: remove(runner_path + deleted)
def main(testing, accuracy, rate): TOTAL_POPULATION = 300000000 US_CASES = 6008588 People = [] PatientZero = Person() People.append(PatientZero) weeks = 0 while Person.totalInfected < US_CASES: People = Spread.forward_one_week(People, testing, accuracy, rate) weeks += 1 print("***** After {} weeks the stats are *****".format(weeks)) print("Total people infected:", Person.totalInfected) print("Currently Infected:", Person.currentlyInfected) print("Total dead:", Person.totalDead) assert (Person.currentlyInfected == len(People)) print()
def __init__(self): grc_wxgui.top_block_gui.__init__(self, title="fhss_test") _icon_path = "/usr/share/icons/hicolor/32x32/apps/gnuradio-grc.png" self.SetIcon(wx.Icon(_icon_path, wx.BITMAP_TYPE_ANY)) ################################################## # Variables ################################################## self.samp_sym = samp_sym = 64 self.samp_rate = samp_rate = 400e3 self.init = init = 1, 1, 1, 1 self.generator = generator = 1, 1, 0, 0, 1 self.code_rate = code_rate = int(samp_sym * 500) ################################################## # Blocks ################################################## self.wxgui_waterfallsink2_0 = waterfallsink2.waterfall_sink_c( self.GetWin(), baseband_freq=0, dynamic_range=100, ref_level=0, ref_scale=2.0, sample_rate=samp_rate, fft_size=512, fft_rate=15, average=False, avg_alpha=None, title="Received Spread Spectrum ", ) self.Add(self.wxgui_waterfallsink2_0.win) self.wxgui_numbersink2_0_0_0_0_0 = numbersink2.number_sink_f( self.GetWin(), unit="Units", minval=-100e5, maxval=100e5, factor=1.0, decimal_places=10, ref_level=0, sample_rate=samp_rate, number_rate=60, average=False, avg_alpha=None, label="Error", peak_hold=False, show_gauge=False, ) self.Add(self.wxgui_numbersink2_0_0_0_0_0.win) 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="Despread Signal", peak_hold=False, ) self.GridAdd(self.wxgui_fftsink2_0.win, 0, 2, 2, 4) self.uhd_usrp_source_0 = uhd.usrp_source( ",".join(("", "serial=F54381")), uhd.stream_args( cpu_format="fc32", channels=range(1), ), ) self.uhd_usrp_source_0.set_clock_source("internal", 0) self.uhd_usrp_source_0.set_samp_rate(samp_rate) self.uhd_usrp_source_0.set_center_freq(500e6, 0) self.uhd_usrp_source_0.set_gain(47, 0) self.uhd_usrp_source_0.set_antenna("TX/RX", 0) self.uhd_usrp_sink_0 = uhd.usrp_sink( ",".join(("", "serial=F54358")), uhd.stream_args( cpu_format="fc32", channels=range(1), ), ) self.uhd_usrp_sink_0.set_clock_source("internal", 0) self.uhd_usrp_sink_0.set_samp_rate(samp_rate) self.uhd_usrp_sink_0.set_center_freq(500e6, 0) self.uhd_usrp_sink_0.set_gain(50, 0) self.uhd_usrp_sink_0.set_antenna("TX/RX", 0) self.blocks_vector_source_x_0 = blocks.vector_source_b((1, 1, 1, 1), True, 1, []) self.blocks_multiply_const_vxx_0 = blocks.multiply_const_vcc((.9, )) self.blks2_error_rate_0 = grc_blks2.error_rate( type='BER', win_size=1000, bits_per_symbol=1, ) self.Spread_synthesizer_0 = Spread.synthesizer(code_rate, 0, samp_rate, (generator), (init)) self.Spread_rx_synthesizer_0 = Spread.rx_synthesizer( code_rate, samp_sym, samp_rate, 12000, 50000, 0.16, (generator), (init)) self.Spread_cpfsk_mod_0 = Spread.cpfsk_mod(samp_sym) self.Spread_cpfsk_demod_0 = Spread.cpfsk_demod(samp_sym) ################################################## # Connections ################################################## self.connect((self.blks2_error_rate_0, 0), (self.wxgui_numbersink2_0_0_0_0_0, 0)) self.connect((self.Spread_cpfsk_demod_0, 0), (self.blks2_error_rate_0, 1)) self.connect((self.blocks_vector_source_x_0, 0), (self.Spread_cpfsk_mod_0, 0)) self.connect((self.blocks_vector_source_x_0, 0), (self.blks2_error_rate_0, 0)) self.connect((self.uhd_usrp_source_0, 0), (self.Spread_rx_synthesizer_0, 0)) self.connect((self.Spread_synthesizer_0, 0), (self.uhd_usrp_sink_0, 0)) self.connect((self.uhd_usrp_source_0, 0), (self.wxgui_waterfallsink2_0, 0)) self.connect((self.Spread_rx_synthesizer_0, 0), (self.Spread_cpfsk_demod_0, 0)) self.connect((self.Spread_cpfsk_mod_0, 0), (self.blocks_multiply_const_vxx_0, 0)) self.connect((self.blocks_multiply_const_vxx_0, 0), (self.Spread_synthesizer_0, 0)) self.connect((self.Spread_rx_synthesizer_0, 0), (self.wxgui_fftsink2_0, 0))
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 = 32e3 ################################################## # Blocks ################################################## self.uhd_usrp_sink_0 = uhd.usrp_sink( ",".join(("addr=192.168.10.3", "")), uhd.stream_args( cpu_format="fc32", channels=range(1), ), ) self.uhd_usrp_sink_0.set_samp_rate(32e3) self.uhd_usrp_sink_0.set_center_freq(2.417e9, 0) self.uhd_usrp_sink_0.set_gain(20, 0) self.uhd_usrp_sink_0.set_antenna("TX/RX", 0) self.uhd_usrp_sink_0.set_bandwidth(3e6, 0) self.digital_gfsk_mod_0 = digital.gfsk_mod( samples_per_symbol=2, sensitivity=1.0, bt=0.35, verbose=False, log=False, ) self.digital_crc32_bb_0 = digital.crc32_bb(False, "packet_len") self.blocks_vector_source_x_0 = blocks.vector_source_b((1, 0, 1, 0), True, 1, []) self.blocks_stream_to_tagged_stream_0 = blocks.stream_to_tagged_stream( gr.sizeof_char, 1, 8, "packet_len") self.blks2_packet_encoder_0 = grc_blks2.packet_mod_b( grc_blks2.packet_encoder( samples_per_symbol=1, bits_per_symbol=1, preamble="", access_code="", pad_for_usrp=True, ), payload_length=0, ) self.Spread_ds_spreader_0 = Spread.ds_spreader(2, (1, 1, 0, 1), (1, 1, 1)) ################################################## # Connections ################################################## self.connect((self.Spread_ds_spreader_0, 0), (self.digital_gfsk_mod_0, 0)) self.connect((self.blks2_packet_encoder_0, 0), (self.blocks_stream_to_tagged_stream_0, 0)) self.connect((self.blocks_stream_to_tagged_stream_0, 0), (self.digital_crc32_bb_0, 0)) self.connect((self.blocks_vector_source_x_0, 0), (self.blks2_packet_encoder_0, 0)) self.connect((self.digital_crc32_bb_0, 0), (self.Spread_ds_spreader_0, 0)) self.connect((self.digital_gfsk_mod_0, 0), (self.uhd_usrp_sink_0, 0))
def main(): with open('Parameters.JSON') as file: params = json.load(file) Sim = Spread.Spread(50,1,params) Sim.run()
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")
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.tx_freq = tx_freq = 2.407e9 self.samp_rate = samp_rate = 32e3 ################################################## # Blocks ################################################## self._tx_freq_chooser = forms.drop_down( parent=self.GetWin(), value=self.tx_freq, callback=self.set_tx_freq, label="tx_freq", choices=[2.407e9, 2.41e9, 2.413e9, 2.416e9, 2.419e9, 2.422e9, 2.425e9, 2.427e9, 2.429e9, 2.431e9, 2.433e9, 2.436e9, 2.439e9, 2.441e9, 2.443e9,2.422e9, 2.446e9, 2.449e9, 2.452e9, 2.455e9, 2.458e9, 2.460e9, 2.463e9, 2.466e9, 2.469e9, 2.472e9, 2.475e9, 2.478e9 ], labels=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28], ) self.Add(self._tx_freq_chooser) 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_samp_rate(32e3) self.uhd_usrp_sink_0.set_center_freq(tx_freq, 0) self.uhd_usrp_sink_0.set_gain(20, 0) self.uhd_usrp_sink_0.set_antenna("TX/RX", 0) self.uhd_usrp_sink_0.set_bandwidth(3e6, 0) self.digital_gfsk_mod_0 = digital.gfsk_mod( samples_per_symbol=2, sensitivity=1.0, bt=0.35, verbose=False, log=False, ) self.blocks_vector_source_x_0 = blocks.vector_source_b((1,0,1,0), True, 1, []) self.blks2_packet_encoder_0 = grc_blks2.packet_mod_b(grc_blks2.packet_encoder( samples_per_symbol=1, bits_per_symbol=1, preamble="", access_code="", pad_for_usrp=True, ), payload_length=0, ) self.Spread_ds_spreader_0 = Spread.ds_spreader(2, (1, 1, 0, 1), (1, 1, 1)) ################################################## # Connections ################################################## self.connect((self.Spread_ds_spreader_0, 0), (self.digital_gfsk_mod_0, 0)) self.connect((self.blks2_packet_encoder_0, 0), (self.Spread_ds_spreader_0, 0)) self.connect((self.blocks_vector_source_x_0, 0), (self.blks2_packet_encoder_0, 0)) self.connect((self.digital_gfsk_mod_0, 0), (self.uhd_usrp_sink_0, 0))
def __init__(self): grc_wxgui.top_block_gui.__init__(self, title="Fhss Sync") _icon_path = "/usr/share/icons/hicolor/32x32/apps/gnuradio-grc.png" self.SetIcon(wx.Icon(_icon_path, wx.BITMAP_TYPE_ANY)) ################################################## # Variables ################################################## self.samp_sym = samp_sym = 32 self.tone_freq = tone_freq = 2000 self.samp_rate = samp_rate = 800e3 self.init = init = 1, 1, 1, 1, 1, 1, 1 self.generator = generator = 1, 1, 0, 0, 1, 0, 1, 1 self.code_rate = code_rate = int(samp_sym * 10000) ################################################## # Blocks ################################################## _tone_freq_sizer = wx.BoxSizer(wx.VERTICAL) self._tone_freq_text_box = forms.text_box( parent=self.GetWin(), sizer=_tone_freq_sizer, value=self.tone_freq, callback=self.set_tone_freq, label='Tone Frequency', converter=forms.float_converter(), proportion=0, ) self._tone_freq_slider = forms.slider( parent=self.GetWin(), sizer=_tone_freq_sizer, value=self.tone_freq, callback=self.set_tone_freq, minimum=-1 * samp_rate / 2, maximum=samp_rate / 2, num_steps=100, style=wx.SL_HORIZONTAL, cast=float, proportion=1, ) self.Add(_tone_freq_sizer) self.wxgui_waterfallsink2_0 = waterfallsink2.waterfall_sink_c( self.GetWin(), baseband_freq=0, dynamic_range=100, ref_level=0, ref_scale=2.0, sample_rate=samp_rate, fft_size=512, fft_rate=15, average=False, avg_alpha=None, title='Received Spread Spectrum ', ) self.Add(self.wxgui_waterfallsink2_0.win) 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='Despread Signal', peak_hold=False, ) self.GridAdd(self.wxgui_fftsink2_0.win, 0, 2, 2, 4) self.channels_channel_model_0 = channels.channel_model( noise_voltage=0.1, frequency_offset=1 / samp_rate, epsilon=1 + 0.0000, taps=(1.0 + 1.0j, ), noise_seed=0, block_tags=False) self.blocks_throttle_0 = blocks.throttle(gr.sizeof_gr_complex * 1, samp_rate, True) self.blocks_null_sink_0 = blocks.null_sink(gr.sizeof_char * 1) self.blocks_add_xx_0 = blocks.add_vcc(1) self.analog_sig_source_x_0 = analog.sig_source_c( samp_rate, analog.GR_COS_WAVE, tone_freq, 2, 0) self.analog_random_source_x_0 = blocks.vector_source_b( map(int, numpy.random.randint(0, 2, 1000)), True) self.Spread_synthesizer_0 = Spread.synthesizer(code_rate, 0, samp_rate, (generator), (init)) self.Spread_rx_synthesizer_0 = Spread.rx_synthesizer( code_rate, samp_sym, samp_rate, 12000, 50000, 0.16, (generator), (init)) self.Spread_cpfsk_mod_0 = Spread.cpfsk_mod(samp_sym) self.Spread_cpfsk_demod_0 = Spread.cpfsk_demod(samp_sym) ################################################## # Connections ################################################## self.connect((self.Spread_cpfsk_demod_0, 0), (self.blocks_null_sink_0, 0)) self.connect((self.Spread_cpfsk_mod_0, 0), (self.Spread_synthesizer_0, 0)) self.connect((self.Spread_rx_synthesizer_0, 0), (self.Spread_cpfsk_demod_0, 0)) self.connect((self.Spread_rx_synthesizer_0, 0), (self.wxgui_fftsink2_0, 0)) self.connect((self.Spread_synthesizer_0, 0), (self.blocks_add_xx_0, 1)) self.connect((self.analog_random_source_x_0, 0), (self.Spread_cpfsk_mod_0, 0)) self.connect((self.analog_sig_source_x_0, 0), (self.blocks_add_xx_0, 0)) self.connect((self.blocks_add_xx_0, 0), (self.blocks_throttle_0, 0)) self.connect((self.blocks_throttle_0, 0), (self.channels_channel_model_0, 0)) self.connect((self.channels_channel_model_0, 0), (self.Spread_rx_synthesizer_0, 0)) self.connect((self.channels_channel_model_0, 0), (self.wxgui_waterfallsink2_0, 0))
def __init__(self): gr.top_block.__init__(self, "Analog Phone Tx") Qt.QWidget.__init__(self) self.setWindowTitle("Analog Phone Tx") 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", "Analog_Phone_TX") self.restoreGeometry(self.settings.value("geometry").toByteArray()) ################################################## # Variables ################################################## self.sps = sps = 2 self.excess_bw = excess_bw = 0.10 self.samp_rate = samp_rate = 32000 self.rrc_taps = rrc_taps = firdes.root_raised_cosine(1, sps, 1, excess_bw, 45) self.bpsk = bpsk = digital.constellation_rect(([0.707+0.707j, -0.707+0.707j]), ([0, 1,]), 2, 2, 0, 1, 0).base() self.arity = arity = 4 ################################################## # Blocks ################################################## 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_samp_rate(samp_rate) self.uhd_usrp_sink_0.set_center_freq(2.4175e9, 0) self.uhd_usrp_sink_0.set_gain(28, 0) self.uhd_usrp_sink_0.set_antenna("TX/RX", 0) self.uhd_usrp_sink_0.set_bandwidth(100e3, 0) self.rational_resampler_xxx_1 = filter.rational_resampler_ccc( interpolation=36, decimation=1, taps=None, fractional_bw=None, ) self.digital_crc32_bb_0 = digital.crc32_bb(False, "packet_len") self.digital_constellation_modulator_0 = digital.generic_mod( constellation=bpsk, differential=True, samples_per_symbol=sps, pre_diff_code=True, excess_bw=excess_bw, verbose=False, log=False, ) self.blocks_stream_to_tagged_stream_0 = blocks.stream_to_tagged_stream(gr.sizeof_char, 1, 8, "packet_len") self.blks2_packet_encoder_0 = grc_blks2.packet_mod_b(grc_blks2.packet_encoder( samples_per_symbol=1, bits_per_symbol=8, preamble="", access_code="", pad_for_usrp=True, ), payload_length=0, ) self.analog_random_source_x_0 = blocks.vector_source_b(map(int, numpy.random.randint(0, 256, 10000)), True) self.Spread_ds_spreader_0 = Spread.ds_spreader(2, (1, 1, 0, 1), (1, 1, 1)) ################################################## # Connections ################################################## self.connect((self.Spread_ds_spreader_0, 0), (self.digital_constellation_modulator_0, 0)) self.connect((self.analog_random_source_x_0, 0), (self.blks2_packet_encoder_0, 0)) self.connect((self.blks2_packet_encoder_0, 0), (self.blocks_stream_to_tagged_stream_0, 0)) self.connect((self.blocks_stream_to_tagged_stream_0, 0), (self.digital_crc32_bb_0, 0)) self.connect((self.digital_constellation_modulator_0, 0), (self.rational_resampler_xxx_1, 0)) self.connect((self.digital_crc32_bb_0, 0), (self.Spread_ds_spreader_0, 0)) self.connect((self.rational_resampler_xxx_1, 0), (self.uhd_usrp_sink_0, 0))
def __init__(self): grc_wxgui.top_block_gui.__init__(self, title="fhss_test") _icon_path = "/usr/share/icons/hicolor/32x32/apps/gnuradio-grc.png" self.SetIcon(wx.Icon(_icon_path, wx.BITMAP_TYPE_ANY)) ################################################## # Variables ################################################## self.samp_sym = samp_sym = 64 self.samp_rate = samp_rate = 400e3 self.init = init = 1, 1, 1, 1 self.generator = generator = 1, 1, 0, 0, 1 self.code_rate = code_rate = int(samp_sym * 500) ################################################## # Blocks ################################################## self.wxgui_waterfallsink2_0 = waterfallsink2.waterfall_sink_c( self.GetWin(), baseband_freq=0, dynamic_range=100, ref_level=0, ref_scale=2.0, sample_rate=samp_rate, fft_size=512, fft_rate=15, average=False, avg_alpha=None, title="Received Spread Spectrum ", ) self.Add(self.wxgui_waterfallsink2_0.win) self.wxgui_numbersink2_0_0_0_0_0 = numbersink2.number_sink_f( self.GetWin(), unit="Units", minval=-100e5, maxval=100e5, factor=1.0, decimal_places=10, ref_level=0, sample_rate=samp_rate, number_rate=60, average=False, avg_alpha=None, label="Error", peak_hold=False, show_gauge=False, ) self.Add(self.wxgui_numbersink2_0_0_0_0_0.win) 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="Despread Signal", peak_hold=False, ) self.GridAdd(self.wxgui_fftsink2_0.win, 0, 2, 2, 4) self.uhd_usrp_source_0 = uhd.usrp_source( ",".join(("", "serial=F54381")), uhd.stream_args( cpu_format="fc32", channels=range(1), ), ) self.uhd_usrp_source_0.set_clock_source("internal", 0) self.uhd_usrp_source_0.set_samp_rate(samp_rate) self.uhd_usrp_source_0.set_center_freq(500e6, 0) self.uhd_usrp_source_0.set_gain(47, 0) self.uhd_usrp_source_0.set_antenna("TX/RX", 0) self.uhd_usrp_sink_0 = uhd.usrp_sink( ",".join(("", "serial=F54358")), uhd.stream_args( cpu_format="fc32", channels=range(1), ), ) self.uhd_usrp_sink_0.set_clock_source("internal", 0) self.uhd_usrp_sink_0.set_samp_rate(samp_rate) self.uhd_usrp_sink_0.set_center_freq(500e6, 0) self.uhd_usrp_sink_0.set_gain(50, 0) self.uhd_usrp_sink_0.set_antenna("TX/RX", 0) self.blocks_vector_source_x_0 = blocks.vector_source_b((1,1,1,1), True, 1, []) self.blocks_multiply_const_vxx_0 = blocks.multiply_const_vcc((.9, )) self.blks2_error_rate_0 = grc_blks2.error_rate( type='BER', win_size=1000, bits_per_symbol=1, ) self.Spread_synthesizer_0 = Spread.synthesizer(code_rate, 0, samp_rate, (generator), (init)) self.Spread_rx_synthesizer_0 = Spread.rx_synthesizer(code_rate, samp_sym, samp_rate, 12000, 50000, 0.16, (generator), (init)) self.Spread_cpfsk_mod_0 = Spread.cpfsk_mod(samp_sym) self.Spread_cpfsk_demod_0 = Spread.cpfsk_demod(samp_sym) ################################################## # Connections ################################################## self.connect((self.blks2_error_rate_0, 0), (self.wxgui_numbersink2_0_0_0_0_0, 0)) self.connect((self.Spread_cpfsk_demod_0, 0), (self.blks2_error_rate_0, 1)) self.connect((self.blocks_vector_source_x_0, 0), (self.Spread_cpfsk_mod_0, 0)) self.connect((self.blocks_vector_source_x_0, 0), (self.blks2_error_rate_0, 0)) self.connect((self.uhd_usrp_source_0, 0), (self.Spread_rx_synthesizer_0, 0)) self.connect((self.Spread_synthesizer_0, 0), (self.uhd_usrp_sink_0, 0)) self.connect((self.uhd_usrp_source_0, 0), (self.wxgui_waterfallsink2_0, 0)) self.connect((self.Spread_rx_synthesizer_0, 0), (self.Spread_cpfsk_demod_0, 0)) self.connect((self.Spread_cpfsk_mod_0, 0), (self.blocks_multiply_const_vxx_0, 0)) self.connect((self.blocks_multiply_const_vxx_0, 0), (self.Spread_synthesizer_0, 0)) self.connect((self.Spread_rx_synthesizer_0, 0), (self.wxgui_fftsink2_0, 0))
def __init__(self): grc_wxgui.top_block_gui.__init__(self, title="Frame / sync / deframer chain") ################################################## # Variables ################################################## self.samp_rate = samp_rate = 500e3 ################################################## # Blocks ################################################## 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="FFT Plot", peak_hold=False, ) self.Add(self.wxgui_fftsink2_0.win) self.digital_gmsk_mod_0 = digital.gmsk_mod( samples_per_symbol=32, bt=0.35, verbose=False, log=False, ) self.digital_gmsk_demod_0 = digital.gmsk_demod( samples_per_symbol=32, gain_mu=0.175, mu=0.5, omega_relative_limit=0.01, freq_error=0.0, verbose=False, log=False, ) self.channels_channel_model_0 = channels.channel_model( noise_voltage=0.001, frequency_offset=0.0, epsilon=1.000001, 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_char*1, samp_rate,True) self.blocks_multiply_const_vxx_0 = blocks.multiply_const_vcc((20, )) self.Spread_sync_0 = Spread.sync() self.Spread_rx_sync_0 = Spread.rx_sync(12) self.Spread_msg_source_0 = Spread.msg_source(500, 255) self.Spread_framer_0 = Spread.framer(0) self.Spread_deframer_0 = Spread.deframer(0) ################################################## # Connections ################################################## self.connect((self.Spread_sync_0, 0), (self.blocks_throttle_0, 0)) self.connect((self.blocks_throttle_0, 0), (self.blocks_unpacked_to_packed_xx_0, 0)) self.connect((self.blocks_unpacked_to_packed_xx_0, 0), (self.digital_gmsk_mod_0, 0)) self.connect((self.digital_gmsk_mod_0, 0), (self.channels_channel_model_0, 0)) self.connect((self.digital_gmsk_demod_0, 0), (self.Spread_rx_sync_0, 0)) self.connect((self.channels_channel_model_0, 0), (self.blocks_multiply_const_vxx_0, 0)) self.connect((self.channels_channel_model_0, 0), (self.wxgui_fftsink2_0, 0)) self.connect((self.blocks_multiply_const_vxx_0, 0), (self.digital_gmsk_demod_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")
def __init__(self): grc_wxgui.top_block_gui.__init__(self, title="FHSS transmit") _icon_path = "/usr/share/icons/hicolor/32x32/apps/gnuradio-grc.png" self.SetIcon(wx.Icon(_icon_path, wx.BITMAP_TYPE_ANY)) ################################################## # Variables ################################################## self.samp_sym = samp_sym = 64 self.tx_freq = tx_freq = 2.414e9 self.samp_rate = samp_rate = 400e3 self.registers = registers = 3 self.init = init = 1, 1, 1, 1 self.generator = generator = 1, 1, 0, 0, 1 self.code_rate = code_rate = int(samp_sym * 500) ################################################## # Blocks ################################################## self._tx_freq_chooser = forms.drop_down( parent=self.GetWin(), value=self.tx_freq, callback=self.set_tx_freq, label="tx_freq", choices=[2414000000, 2432000000, 2450000000, 2468000000], labels=[1, 2, 3, 4], ) self.Add(self._tx_freq_chooser) 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_samp_rate(samp_rate) self.uhd_usrp_sink_0.set_center_freq(tx_freq, 0) self.uhd_usrp_sink_0.set_gain(20, 0) self.uhd_usrp_sink_0.set_antenna("TX/RX", 0) self.uhd_usrp_sink_0.set_bandwidth(1.125e6, 0) self.digital_gfsk_mod_0 = digital.gfsk_mod( samples_per_symbol=64, sensitivity=1.0, bt=0.35, verbose=False, log=False, ) self.blocks_vector_source_x_0 = blocks.vector_source_b((0, 1, 0, 1), True, 1, []) self.blks2_packet_encoder_0 = grc_blks2.packet_mod_b( grc_blks2.packet_encoder( samples_per_symbol=1, bits_per_symbol=1, preamble="", access_code="", pad_for_usrp=True, ), payload_length=0, ) self.Spread_synthesizer_0 = Spread.synthesizer(code_rate, 9000, samp_rate, (generator), (init)) ################################################## # Connections ################################################## self.connect((self.Spread_synthesizer_0, 0), (self.uhd_usrp_sink_0, 0)) self.connect((self.blks2_packet_encoder_0, 0), (self.digital_gfsk_mod_0, 0)) self.connect((self.blocks_vector_source_x_0, 0), (self.blks2_packet_encoder_0, 0)) self.connect((self.digital_gfsk_mod_0, 0), (self.Spread_synthesizer_0, 0))
def __init__(self): gr.top_block.__init__(self, "Analog Phone Tx") Qt.QWidget.__init__(self) self.setWindowTitle("Analog Phone Tx") 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", "Analog_Phone_TX") self.restoreGeometry(self.settings.value("geometry").toByteArray()) ################################################## # Variables ################################################## self.sps = sps = 2 self.excess_bw = excess_bw = 0.10 self.samp_rate = samp_rate = 32000 self.rrc_taps = rrc_taps = firdes.root_raised_cosine( 1, sps, 1, excess_bw, 45) self.bpsk = bpsk = digital.constellation_rect( ([0.707 + 0.707j, -0.707 + 0.707j]), ([ 0, 1, ]), 2, 2, 0, 1, 0).base() self.arity = arity = 4 ################################################## # Blocks ################################################## 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_samp_rate(samp_rate) self.uhd_usrp_sink_0.set_center_freq(2.4175e9, 0) self.uhd_usrp_sink_0.set_gain(28, 0) self.uhd_usrp_sink_0.set_antenna("TX/RX", 0) self.uhd_usrp_sink_0.set_bandwidth(100e3, 0) self.rational_resampler_xxx_1 = filter.rational_resampler_ccc( interpolation=36, decimation=1, taps=None, fractional_bw=None, ) self.digital_crc32_bb_0 = digital.crc32_bb(False, "packet_len") self.digital_constellation_modulator_0 = digital.generic_mod( constellation=bpsk, differential=True, samples_per_symbol=sps, pre_diff_code=True, excess_bw=excess_bw, verbose=False, log=False, ) self.blocks_stream_to_tagged_stream_0 = blocks.stream_to_tagged_stream( gr.sizeof_char, 1, 8, "packet_len") self.blks2_packet_encoder_0 = grc_blks2.packet_mod_b( grc_blks2.packet_encoder( samples_per_symbol=1, bits_per_symbol=8, preamble="", access_code="", pad_for_usrp=True, ), payload_length=0, ) self.analog_random_source_x_0 = blocks.vector_source_b( map(int, numpy.random.randint(0, 256, 10000)), True) self.Spread_ds_spreader_0 = Spread.ds_spreader(2, (1, 1, 0, 1), (1, 1, 1)) ################################################## # Connections ################################################## self.connect((self.Spread_ds_spreader_0, 0), (self.digital_constellation_modulator_0, 0)) self.connect((self.analog_random_source_x_0, 0), (self.blks2_packet_encoder_0, 0)) self.connect((self.blks2_packet_encoder_0, 0), (self.blocks_stream_to_tagged_stream_0, 0)) self.connect((self.blocks_stream_to_tagged_stream_0, 0), (self.digital_crc32_bb_0, 0)) self.connect((self.digital_constellation_modulator_0, 0), (self.rational_resampler_xxx_1, 0)) self.connect((self.digital_crc32_bb_0, 0), (self.Spread_ds_spreader_0, 0)) self.connect((self.rational_resampler_xxx_1, 0), (self.uhd_usrp_sink_0, 0))
def __init__(self): gr.top_block.__init__(self, "Fhss Tx") ################################################## # Variables ################################################## self.samp_sym = samp_sym = 12000 self.transistion = transistion = 50 self.tone_freq = tone_freq = 0 self.sideband_rx = sideband_rx = 6000 self.sideband = sideband = 6000 self.samp_rate = samp_rate = 12000 self.interpolation = interpolation = 4 self.init = init = 1, 1, 1, 1 self.generator = generator = 1, 1, 0, 0, 1 self.code_rate = code_rate = int(samp_sym * 1) self.carrier = carrier = 10000 ################################################## # Blocks ################################################## self.rational_resampler_xxx_0_0 = filter.rational_resampler_ccc( interpolation=interpolation, decimation=1, taps=None, fractional_bw=None, ) self.freq_xlating_fir_filter_xxx_0 = filter.freq_xlating_fir_filter_ccc( 1, (firdes.band_pass(0.5, samp_rate * 4, 10000 - sideband, 10000 + sideband, transistion)), -carrier, samp_rate * 4) self.blocks_wavfile_sink_0 = blocks.wavfile_sink( "FHSS_output1.wav", 2, 48000, 16) self.blocks_unpack_k_bits_bb_0 = blocks.unpack_k_bits_bb(8) self.blocks_throttle_0_0 = blocks.throttle(gr.sizeof_gr_complex * 1, samp_rate * 4, True) self.blocks_multiply_const_vxx_0 = blocks.multiply_const_vcc((.9, )) self.blocks_file_source_0 = blocks.file_source(gr.sizeof_char * 1, "TestData2", False) self.blocks_file_sink_1 = blocks.file_sink(gr.sizeof_char * 1, "inputBinary", False) self.blocks_file_sink_1.set_unbuffered(False) self.blocks_complex_to_real_0 = blocks.complex_to_real(1) self.blocks_complex_to_imag_0 = blocks.complex_to_imag(1) self.Spread_synthesizer_0 = Spread.synthesizer(code_rate, 100, samp_rate, (generator), (init)) self.Spread_cpfsk_mod_0 = Spread.cpfsk_mod(samp_sym) ################################################## # Connections ################################################## self.connect((self.Spread_cpfsk_mod_0, 0), (self.blocks_multiply_const_vxx_0, 0)) self.connect((self.Spread_synthesizer_0, 0), (self.rational_resampler_xxx_0_0, 0)) self.connect((self.blocks_complex_to_imag_0, 0), (self.blocks_wavfile_sink_0, 1)) self.connect((self.blocks_complex_to_real_0, 0), (self.blocks_wavfile_sink_0, 0)) self.connect((self.blocks_file_source_0, 0), (self.blocks_unpack_k_bits_bb_0, 0)) self.connect((self.blocks_multiply_const_vxx_0, 0), (self.Spread_synthesizer_0, 0)) self.connect((self.blocks_throttle_0_0, 0), (self.freq_xlating_fir_filter_xxx_0, 0)) self.connect((self.blocks_unpack_k_bits_bb_0, 0), (self.Spread_cpfsk_mod_0, 0)) self.connect((self.blocks_unpack_k_bits_bb_0, 0), (self.blocks_file_sink_1, 0)) self.connect((self.freq_xlating_fir_filter_xxx_0, 0), (self.blocks_complex_to_imag_0, 0)) self.connect((self.freq_xlating_fir_filter_xxx_0, 0), (self.blocks_complex_to_real_0, 0)) self.connect((self.rational_resampler_xxx_0_0, 0), (self.blocks_throttle_0_0, 0))
def __init__(self): gr.top_block.__init__( self, "Frequency Hopping Spread Spectrum (FHSS) Random Sequence") Qt.QWidget.__init__(self) self.setWindowTitle( "Frequency Hopping Spread Spectrum (FHSS) Random Sequence") 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", "usrp_random_fhss_tx") self.restoreGeometry(self.settings.value("geometry").toByteArray()) ################################################## # Variables ################################################## self.samp_rate = samp_rate = 32000 self.interp = interp = 10 self.tx_taps = tx_taps = firdes.low_pass(1.0, samp_rate * interp, 20e3, 10e3, firdes.WIN_BLACKMAN, 6.76) self.seed = seed = 1 self.nCH = nCH = 40 self.gain = gain = 30 self.freq = freq = 2.41e9 self.ch_spacing = ch_spacing = 10000 ################################################## # Blocks ################################################## self.tab = Qt.QTabWidget() self.tab_widget_0 = Qt.QWidget() self.tab_layout_0 = Qt.QBoxLayout(Qt.QBoxLayout.TopToBottom, self.tab_widget_0) self.tab_grid_layout_0 = Qt.QGridLayout() self.tab_layout_0.addLayout(self.tab_grid_layout_0) self.tab.addTab(self.tab_widget_0, "FFT") self.tab_widget_1 = Qt.QWidget() self.tab_layout_1 = Qt.QBoxLayout(Qt.QBoxLayout.TopToBottom, self.tab_widget_1) self.tab_grid_layout_1 = Qt.QGridLayout() self.tab_layout_1.addLayout(self.tab_grid_layout_1) self.tab.addTab(self.tab_widget_1, "Waterfall") self.top_layout.addWidget(self.tab) 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(freq, 0) self.uhd_usrp_sink_0.set_gain(gain, 0) self.uhd_usrp_sink_0.set_antenna("TX/RX", 0) self.fft_filter_xxx_0 = filter.fft_filter_ccc(1, (tx_taps), 1) self.fft_filter_xxx_0.declare_sample_delay(0) self.fft = qtgui.freq_sink_c( 1024, #size firdes.WIN_BLACKMAN_hARRIS, #wintype 0, #fc samp_rate, #bw "", #name 1 #number of inputs ) self.fft.set_update_time(0.10) self.fft.set_y_axis(-140, 10) self.fft.set_trigger_mode(qtgui.TRIG_MODE_FREE, 0.0, 0, "") self.fft.enable_autoscale(False) self.fft.enable_grid(False) self.fft.set_fft_average(1.0) self.fft.enable_control_panel(False) if not True: self.fft.disable_legend() if "complex" == "float" or "complex" == "msg_float": self.fft.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.fft.set_line_label(i, "Data {0}".format(i)) else: self.fft.set_line_label(i, labels[i]) self.fft.set_line_width(i, widths[i]) self.fft.set_line_color(i, colors[i]) self.fft.set_line_alpha(i, alphas[i]) self._fft_win = sip.wrapinstance(self.fft.pyqwidget(), Qt.QWidget) self.tab_layout_0.addWidget(self._fft_win) self.blocks_multiply_xx_0 = blocks.multiply_vcc(1) self.blocks_message_strobe_0 = blocks.message_strobe( pmt.intern("trig"), 100) self.analog_sig_source_x_0_0 = analog.sig_source_c( samp_rate * interp, analog.GR_COS_WAVE, freq, 1, 0) self.analog_sig_source_x_0 = analog.sig_source_f( samp_rate, analog.GR_COS_WAVE, 150, 1, 0) self.analog_nbfm_tx_0 = analog.nbfm_tx( audio_rate=samp_rate, quad_rate=interp * samp_rate, tau=75e-6, max_dev=5e3, ) self.Waterfall = qtgui.waterfall_sink_c( 1024, #size firdes.WIN_BLACKMAN_hARRIS, #wintype 0, #fc samp_rate, #bw "", #name 1 #number of inputs ) self.Waterfall.set_update_time(0.10) self.Waterfall.enable_grid(False) if not True: self.Waterfall.disable_legend() if "complex" == "float" or "complex" == "msg_float": self.Waterfall.set_plot_pos_half(not True) labels = ["", "", "", "", "", "", "", "", "", ""] colors = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 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.Waterfall.set_line_label(i, "Data {0}".format(i)) else: self.Waterfall.set_line_label(i, labels[i]) self.Waterfall.set_color_map(i, colors[i]) self.Waterfall.set_line_alpha(i, alphas[i]) self.Waterfall.set_intensity_range(-140, 10) self._Waterfall_win = sip.wrapinstance(self.Waterfall.pyqwidget(), Qt.QWidget) self.tab_layout_1.addWidget(self._Waterfall_win) self.Spread_fhss_sequence_generator_0_0 = Spread.fhss_sequence_generator( seed, ch_spacing, nCH) ################################################## # Connections ################################################## self.msg_connect((self.Spread_fhss_sequence_generator_0_0, 'seq'), (self.analog_sig_source_x_0_0, 'freq')) self.msg_connect((self.blocks_message_strobe_0, 'strobe'), (self.Spread_fhss_sequence_generator_0_0, 'trig')) self.connect((self.analog_nbfm_tx_0, 0), (self.fft_filter_xxx_0, 0)) self.connect((self.analog_sig_source_x_0, 0), (self.analog_nbfm_tx_0, 0)) self.connect((self.analog_sig_source_x_0_0, 0), (self.blocks_multiply_xx_0, 0)) self.connect((self.blocks_multiply_xx_0, 0), (self.Waterfall, 0)) self.connect((self.blocks_multiply_xx_0, 0), (self.fft, 0)) self.connect((self.blocks_multiply_xx_0, 0), (self.uhd_usrp_sink_0, 0)) self.connect((self.fft_filter_xxx_0, 0), (self.blocks_multiply_xx_0, 1))
def __init__(self): grc_wxgui.top_block_gui.__init__(self, title="Frame / sync / deframer chain") ################################################## # Variables ################################################## self.samp_rate = samp_rate = 500e3 ################################################## # Blocks ################################################## 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="FFT Plot", peak_hold=False, ) self.Add(self.wxgui_fftsink2_0.win) self.digital_gmsk_mod_0 = digital.gmsk_mod( samples_per_symbol=32, bt=0.35, verbose=False, log=False, ) self.digital_gmsk_demod_0 = digital.gmsk_demod( samples_per_symbol=32, gain_mu=0.175, mu=0.5, omega_relative_limit=0.01, freq_error=0.0, verbose=False, log=False, ) self.channels_channel_model_0 = channels.channel_model( noise_voltage=0.001, frequency_offset=0.0, epsilon=1.000001, 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_char * 1, samp_rate, True) self.blocks_multiply_const_vxx_0 = blocks.multiply_const_vcc((20, )) self.Spread_sync_0 = Spread.sync() self.Spread_rx_sync_0 = Spread.rx_sync(12) self.Spread_msg_source_0 = Spread.msg_source(500, 255) self.Spread_framer_0 = Spread.framer(0) self.Spread_deframer_0 = Spread.deframer(0) ################################################## # Connections ################################################## self.connect((self.Spread_sync_0, 0), (self.blocks_throttle_0, 0)) self.connect((self.blocks_throttle_0, 0), (self.blocks_unpacked_to_packed_xx_0, 0)) self.connect((self.blocks_unpacked_to_packed_xx_0, 0), (self.digital_gmsk_mod_0, 0)) self.connect((self.digital_gmsk_mod_0, 0), (self.channels_channel_model_0, 0)) self.connect((self.digital_gmsk_demod_0, 0), (self.Spread_rx_sync_0, 0)) self.connect((self.channels_channel_model_0, 0), (self.blocks_multiply_const_vxx_0, 0)) self.connect((self.channels_channel_model_0, 0), (self.wxgui_fftsink2_0, 0)) self.connect((self.blocks_multiply_const_vxx_0, 0), (self.digital_gmsk_demod_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")
def __init__(self): grc_wxgui.top_block_gui.__init__(self, title="FHSS Packets") ################################################## # Variables ################################################## self.samp_sym = samp_sym = 64 self.samp_rate = samp_rate = 800000 self.init = init = 1, 1, 1, 1 self.generator = generator = 1, 1, 0, 0, 1 self.code_rate = code_rate = int(1389 * samp_sym) ################################################## # 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="Received Spread Spectrum Signal", peak_hold=False, ) self.Add(self.wxgui_fftsink2_0_0.win) 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="Despread Signal", peak_hold=False, ) self.Add(self.wxgui_fftsink2_0.win) self.low_pass_filter_0 = filter.fir_filter_ccf( 1, firdes.low_pass(1, samp_rate, 11000, 1000, firdes.WIN_HAMMING, 6.76)) self.digital_gmsk_mod_0 = digital.gmsk_mod( samples_per_symbol=samp_sym, bt=0.35, verbose=False, log=False, ) self.digital_gmsk_demod_0 = digital.gmsk_demod( samples_per_symbol=samp_sym, gain_mu=0.175, mu=0.5, omega_relative_limit=0.005, freq_error=0.0, verbose=False, log=False, ) self.channels_channel_model_0 = channels.channel_model( noise_voltage=0.01, frequency_offset=1 / samp_rate, epsilon=1 + 0.000001, 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.Spread_synthesizer_0 = Spread.synthesizer(code_rate, 0, samp_rate, (generator), (init)) self.Spread_sync_0 = Spread.sync() self.Spread_rx_synthesizer_0 = Spread.rx_synthesizer( code_rate, samp_sym, samp_rate, 11000, 10000, 0.01, (generator), (init)) self.Spread_rx_sync_0 = Spread.rx_sync(12) self.Spread_msg_source_0 = Spread.msg_source(500, 100) self.Spread_framer_0 = Spread.framer(0) self.Spread_deframer_0 = Spread.deframer(0) ################################################## # Connections ################################################## self.connect((self.Spread_synthesizer_0, 0), (self.channels_channel_model_0, 0)) self.connect((self.channels_channel_model_0, 0), (self.Spread_rx_synthesizer_0, 0)) self.connect((self.digital_gmsk_demod_0, 0), (self.Spread_rx_sync_0, 0)) self.connect((self.digital_gmsk_mod_0, 0), (self.Spread_synthesizer_0, 0)) self.connect((self.blocks_unpacked_to_packed_xx_0, 0), (self.digital_gmsk_mod_0, 0)) self.connect((self.Spread_sync_0, 0), (self.blocks_unpacked_to_packed_xx_0, 0)) self.connect((self.channels_channel_model_0, 0), (self.wxgui_fftsink2_0_0, 0)) self.connect((self.Spread_rx_synthesizer_0, 0), (self.low_pass_filter_0, 0)) self.connect((self.low_pass_filter_0, 0), (self.wxgui_fftsink2_0, 0)) self.connect((self.low_pass_filter_0, 0), (self.digital_gmsk_demod_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")
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))
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.tx_freq = tx_freq = 2.407e9 self.samp_rate = samp_rate = 32e3 ################################################## # Blocks ################################################## self._tx_freq_chooser = forms.drop_down( parent=self.GetWin(), value=self.tx_freq, callback=self.set_tx_freq, label="tx_freq", choices=[ 2.407e9, 2.41e9, 2.413e9, 2.416e9, 2.419e9, 2.422e9, 2.425e9, 2.427e9, 2.429e9, 2.431e9, 2.433e9, 2.436e9, 2.439e9, 2.441e9, 2.443e9, 2.422e9, 2.446e9, 2.449e9, 2.452e9, 2.455e9, 2.458e9, 2.460e9, 2.463e9, 2.466e9, 2.469e9, 2.472e9, 2.475e9, 2.478e9 ], labels=[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28 ], ) self.Add(self._tx_freq_chooser) 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_samp_rate(32e3) self.uhd_usrp_sink_0.set_center_freq(tx_freq, 0) self.uhd_usrp_sink_0.set_gain(20, 0) self.uhd_usrp_sink_0.set_antenna("TX/RX", 0) self.uhd_usrp_sink_0.set_bandwidth(3e6, 0) self.digital_gfsk_mod_0 = digital.gfsk_mod( samples_per_symbol=2, sensitivity=1.0, bt=0.35, verbose=False, log=False, ) self.blocks_vector_source_x_0 = blocks.vector_source_b((1, 0, 1, 0), True, 1, []) self.blks2_packet_encoder_0 = grc_blks2.packet_mod_b( grc_blks2.packet_encoder( samples_per_symbol=1, bits_per_symbol=1, preamble="", access_code="", pad_for_usrp=True, ), payload_length=0, ) self.Spread_ds_spreader_0 = Spread.ds_spreader(2, (1, 1, 0, 1), (1, 1, 1)) ################################################## # Connections ################################################## self.connect((self.Spread_ds_spreader_0, 0), (self.digital_gfsk_mod_0, 0)) self.connect((self.blks2_packet_encoder_0, 0), (self.Spread_ds_spreader_0, 0)) self.connect((self.blocks_vector_source_x_0, 0), (self.blks2_packet_encoder_0, 0)) self.connect((self.digital_gfsk_mod_0, 0), (self.uhd_usrp_sink_0, 0))
def __init__(self): grc_wxgui.top_block_gui.__init__(self, title="FHSS transmit") _icon_path = "/usr/share/icons/hicolor/32x32/apps/gnuradio-grc.png" self.SetIcon(wx.Icon(_icon_path, wx.BITMAP_TYPE_ANY)) ################################################## # Variables ################################################## self.samp_sym = samp_sym = 64 self.tx_freq = tx_freq = 2.414e9 self.samp_rate = samp_rate = 400e3 self.registers = registers = 3 self.init = init = 1, 1, 1, 1 self.generator = generator = 1, 1, 0, 0, 1 self.code_rate = code_rate = int(samp_sym * 500) ################################################## # Blocks ################################################## self._tx_freq_chooser = forms.drop_down( parent=self.GetWin(), value=self.tx_freq, callback=self.set_tx_freq, label="tx_freq", choices=[2414000000, 2432000000, 2450000000, 2468000000], labels=[1,2,3,4], ) self.Add(self._tx_freq_chooser) 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_samp_rate(samp_rate) self.uhd_usrp_sink_0.set_center_freq(tx_freq, 0) self.uhd_usrp_sink_0.set_gain(20, 0) self.uhd_usrp_sink_0.set_antenna("TX/RX", 0) self.uhd_usrp_sink_0.set_bandwidth(1.125e6, 0) self.digital_gfsk_mod_0 = digital.gfsk_mod( samples_per_symbol=64, sensitivity=1.0, bt=0.35, verbose=False, log=False, ) self.blocks_vector_source_x_0 = blocks.vector_source_b((0, 1, 0, 1), True, 1, []) self.blks2_packet_encoder_0 = grc_blks2.packet_mod_b(grc_blks2.packet_encoder( samples_per_symbol=1, bits_per_symbol=1, preamble="", access_code="", pad_for_usrp=True, ), payload_length=0, ) self.Spread_synthesizer_0 = Spread.synthesizer(code_rate, 9000, samp_rate, (generator), (init)) ################################################## # Connections ################################################## self.connect((self.Spread_synthesizer_0, 0), (self.uhd_usrp_sink_0, 0)) self.connect((self.blks2_packet_encoder_0, 0), (self.digital_gfsk_mod_0, 0)) self.connect((self.blocks_vector_source_x_0, 0), (self.blks2_packet_encoder_0, 0)) self.connect((self.digital_gfsk_mod_0, 0), (self.Spread_synthesizer_0, 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))
def __init__(self, options): gr.top_block.__init__(self) # Setup USRP self.u = uhd.usrp_sink(options.args, uhd.stream_args('fc32'), "packet_len") if(options.spec): self.u.set_subdev_spec(options.spec, 0) if(options.antenna): self.u.set_antenna(options.antenna, 0) self.u.set_samp_rate(options.rate) # Gain is set in the hopper block if options.gain is None: g = self.u.get_gain_range() options.gain = float(g.start()+g.stop())/2.0 print "-- Setting gain to {} dB".format(options.gain) r = self.u.set_center_freq(options.freq) if not r: print '[ERROR] Failed to set base frequency.' raise SystemExit, 1 hopper_block = FrequencyHopperSrc( options.num_bursts, options.num_channels, options.freq_delta, options.freq, options.samp_per_burst, 1.0, options.hop_time / 1000., options.post_tuning, options.gain, options.verbose, ) ################################################## # Variables ################################################## self.samp_sym = samp_sym = 64 self.samp_rate = samp_rate = 400e3 self.registers = registers = 3 self.init = init = 1, 1, 1, 1 self.generator = generator = 1, 1, 0, 0, 1 self.code_rate = code_rate = int(samp_sym * 500) ################################################## # Blocks ################################################## self.uhd_usrp_sink_0 = uhd.usrp_sink( ",".join(("addr=192.168.10.2", "")), uhd.stream_args( cpu_format="fc32", channels=range(1), ), ) self.digital_gfsk_mod_0 = digital.gfsk_mod( samples_per_symbol=64, sensitivity=1.0, bt=0.35, verbose=False, log=False, ) self.blocks_vector_source_x_0 = blocks.vector_source_b((0, 1, 0, 1), True, 1, []) self.blks2_packet_encoder_0 = grc_blks2.packet_mod_b(grc_blks2.packet_encoder( samples_per_symbol=1, bits_per_symbol=1, preamble="", access_code="", pad_for_usrp=True, ), payload_length=0, ) self.Spread_synthesizer_0 = Spread.synthesizer(code_rate, 9000, samp_rate, (generator), (init)) self.connect(self.blocks_vector_source_x_0, self.blks2_packet_encoder_0, self.digital_gfsk_mod_0, self.Spread_synthesizer_0, hopper_block, self.u)
def __init__(self): grc_wxgui.top_block_gui.__init__(self, title="FHSS Packets") ################################################## # Variables ################################################## self.samp_sym = samp_sym = 64 self.samp_rate = samp_rate = 800000 self.init = init = 1, 1, 1, 1 self.generator = generator = 1, 1, 0, 0, 1 self.code_rate = code_rate = int(1389 * samp_sym) ################################################## # 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="Received Spread Spectrum Signal", peak_hold=False, ) self.Add(self.wxgui_fftsink2_0_0.win) 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="Despread Signal", peak_hold=False, ) self.Add(self.wxgui_fftsink2_0.win) self.low_pass_filter_0 = filter.fir_filter_ccf(1, firdes.low_pass( 1, samp_rate, 11000, 1000, firdes.WIN_HAMMING, 6.76)) self.digital_gmsk_mod_0 = digital.gmsk_mod( samples_per_symbol=samp_sym, bt=0.35, verbose=False, log=False, ) self.digital_gmsk_demod_0 = digital.gmsk_demod( samples_per_symbol=samp_sym, gain_mu=0.175, mu=0.5, omega_relative_limit=0.005, freq_error=0.0, verbose=False, log=False, ) self.channels_channel_model_0 = channels.channel_model( noise_voltage=0.01, frequency_offset=1 / samp_rate, epsilon=1 + 0.000001, 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.Spread_synthesizer_0 = Spread.synthesizer(code_rate, 0, samp_rate, (generator), (init)) self.Spread_sync_0 = Spread.sync() self.Spread_rx_synthesizer_0 = Spread.rx_synthesizer(code_rate, samp_sym, samp_rate, 11000, 10000, 0.01, (generator), (init)) self.Spread_rx_sync_0 = Spread.rx_sync(12) self.Spread_msg_source_0 = Spread.msg_source(500, 100) self.Spread_framer_0 = Spread.framer(0) self.Spread_deframer_0 = Spread.deframer(0) ################################################## # Connections ################################################## self.connect((self.Spread_synthesizer_0, 0), (self.channels_channel_model_0, 0)) self.connect((self.channels_channel_model_0, 0), (self.Spread_rx_synthesizer_0, 0)) self.connect((self.digital_gmsk_demod_0, 0), (self.Spread_rx_sync_0, 0)) self.connect((self.digital_gmsk_mod_0, 0), (self.Spread_synthesizer_0, 0)) self.connect((self.blocks_unpacked_to_packed_xx_0, 0), (self.digital_gmsk_mod_0, 0)) self.connect((self.Spread_sync_0, 0), (self.blocks_unpacked_to_packed_xx_0, 0)) self.connect((self.channels_channel_model_0, 0), (self.wxgui_fftsink2_0_0, 0)) self.connect((self.Spread_rx_synthesizer_0, 0), (self.low_pass_filter_0, 0)) self.connect((self.low_pass_filter_0, 0), (self.wxgui_fftsink2_0, 0)) self.connect((self.low_pass_filter_0, 0), (self.digital_gmsk_demod_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")
def __init__(self): gr.top_block.__init__(self, "FHSS transmit") Qt.QWidget.__init__(self) self.setWindowTitle("FHSS transmit") 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", "fhss_tx") self.restoreGeometry(self.settings.value("geometry").toByteArray()) ################################################## # Variables ################################################## self.samp_sym = samp_sym = 64 self.samp_rate = samp_rate = 500000 self.registers = registers = 3 self.nCH = nCH = 40 self.init = init = 1, 1, 1, 1 self.generator = generator = 1, 1, 0, 0, 1 self.gain = gain = 30 self.freq = freq = 2.41e9 self.code_rate = code_rate = int(samp_sym * 500) self.ch_spacing = ch_spacing = 10000 ################################################## # Blocks ################################################## self.qtgui_waterfall_sink_x_0 = qtgui.waterfall_sink_c( 1024, #size firdes.WIN_BLACKMAN_hARRIS, #wintype 0, #fc samp_rate, #bw "", #name 1 #number of inputs ) self.qtgui_waterfall_sink_x_0.set_update_time(0.10) self.qtgui_waterfall_sink_x_0.enable_grid(False) if not True: self.qtgui_waterfall_sink_x_0.disable_legend() if "complex" == "float" or "complex" == "msg_float": self.qtgui_waterfall_sink_x_0.set_plot_pos_half(not True) labels = ["", "", "", "", "", "", "", "", "", ""] colors = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 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_waterfall_sink_x_0.set_line_label( i, "Data {0}".format(i)) else: self.qtgui_waterfall_sink_x_0.set_line_label(i, labels[i]) self.qtgui_waterfall_sink_x_0.set_color_map(i, colors[i]) self.qtgui_waterfall_sink_x_0.set_line_alpha(i, alphas[i]) self.qtgui_waterfall_sink_x_0.set_intensity_range(-140, 10) self._qtgui_waterfall_sink_x_0_win = sip.wrapinstance( self.qtgui_waterfall_sink_x_0.pyqwidget(), Qt.QWidget) self.top_layout.addWidget(self._qtgui_waterfall_sink_x_0_win) 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_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_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.analog_sig_source_x_0 = analog.sig_source_f( samp_rate, analog.GR_COS_WAVE, 1000, 1, 0) self.analog_nbfm_tx_0 = analog.nbfm_tx( audio_rate=samp_rate, quad_rate=4 * samp_rate, tau=75e-6, max_dev=5e3, ) self.Spread_synthesizer_0 = Spread.synthesizer(code_rate, 9000, samp_rate, (generator), (init)) ################################################## # Connections ################################################## self.connect((self.Spread_synthesizer_0, 0), (self.qtgui_freq_sink_x_0, 0)) self.connect((self.Spread_synthesizer_0, 0), (self.qtgui_waterfall_sink_x_0, 0)) self.connect((self.analog_nbfm_tx_0, 0), (self.Spread_synthesizer_0, 0)) self.connect((self.analog_sig_source_x_0, 0), (self.analog_nbfm_tx_0, 0))
def __init__(self): gr.top_block.__init__(self, "Fhss Rx") ################################################## # Variables ################################################## self.samp_sym = samp_sym = 12000 * 3 self.transistion = transistion = 50 self.tone_freq = tone_freq = 0 self.sideband_rx = sideband_rx = 6000 self.sideband = sideband = 6000 self.samp_rate = samp_rate = 12000 self.interpolation = interpolation = 4 self.init = init = 1, 1, 1, 1 self.generator = generator = 1, 1, 0, 0, 1 self.code_rate = code_rate = int(samp_sym * 1) self.carrier = carrier = 10000 ################################################## # Blocks ################################################## self.rational_resampler_xxx_1_0 = filter.rational_resampler_ccc( interpolation=1, decimation=interpolation, taps=None, fractional_bw=None, ) self.freq_xlating_fir_filter_xxx_0_0_0 = filter.freq_xlating_fir_filter_ccc( 1, (filter.firdes.low_pass(1, samp_rate * 4, carrier + sideband_rx, 1000)), carrier, samp_rate * 4) script, inputwav, outputBinary = argv self.blocks_wavfile_source_0_1 = blocks.wavfile_source(inputwav, False) self.blocks_throttle_1_0 = blocks.throttle(gr.sizeof_gr_complex * 1, samp_rate, True) self.blocks_throttle_0_0 = blocks.throttle(gr.sizeof_gr_complex * 1, samp_rate, True) self.blocks_float_to_complex_0_0 = blocks.float_to_complex(1) self.blocks_file_sink_0_0 = blocks.file_sink(gr.sizeof_char * 1, outputBinary, False) self.blocks_file_sink_0_0.set_unbuffered(False) self.Spread_rx_synthesizer_0_0 = Spread.rx_synthesizer( code_rate, samp_sym, samp_rate, 12000 / 2, 50000, 0.16, (generator), (init)) self.Spread_cpfsk_demod_0_0 = Spread.cpfsk_demod(samp_sym) ################################################## # Connections ################################################## self.connect((self.Spread_cpfsk_demod_0_0, 0), (self.blocks_file_sink_0_0, 0)) self.connect((self.Spread_rx_synthesizer_0_0, 0), (self.blocks_throttle_0_0, 0)) self.connect((self.blocks_float_to_complex_0_0, 0), (self.freq_xlating_fir_filter_xxx_0_0_0, 0)) self.connect((self.blocks_throttle_0_0, 0), (self.Spread_cpfsk_demod_0_0, 0)) self.connect((self.blocks_throttle_1_0, 0), (self.Spread_rx_synthesizer_0_0, 0)) self.connect((self.blocks_wavfile_source_0_1, 0), (self.blocks_float_to_complex_0_0, 0)) self.connect((self.freq_xlating_fir_filter_xxx_0_0_0, 0), (self.rational_resampler_xxx_1_0, 0)) self.connect((self.rational_resampler_xxx_1_0, 0), (self.blocks_throttle_1_0, 0))
def __init__(self): grc_wxgui.top_block_gui.__init__(self, title="Fhss Sync") ################################################## # Variables ################################################## self.samp_sym = samp_sym = 64 self.tone_freq = tone_freq = 2000 self.samp_rate = samp_rate = 800e3 self.init = init = 1, 1, 1, 1 self.generator = generator = 1, 1, 0, 0, 1 self.code_rate = code_rate = int(samp_sym * 10000) ################################################## # Blocks ################################################## _tone_freq_sizer = wx.BoxSizer(wx.VERTICAL) self._tone_freq_text_box = forms.text_box( parent=self.GetWin(), sizer=_tone_freq_sizer, value=self.tone_freq, callback=self.set_tone_freq, label="Tone Frequency", converter=forms.float_converter(), proportion=0, ) self._tone_freq_slider = forms.slider( parent=self.GetWin(), sizer=_tone_freq_sizer, value=self.tone_freq, callback=self.set_tone_freq, minimum=-1 * samp_rate / 2, maximum=samp_rate / 2, num_steps=100, style=wx.SL_HORIZONTAL, cast=float, proportion=1, ) self.Add(_tone_freq_sizer) self.wxgui_waterfallsink2_0 = waterfallsink2.waterfall_sink_c( self.GetWin(), baseband_freq=0, dynamic_range=100, ref_level=0, ref_scale=2.0, sample_rate=samp_rate, fft_size=512, fft_rate=15, average=False, avg_alpha=None, title="Received Spread Spectrum ", ) self.Add(self.wxgui_waterfallsink2_0.win) self.wxgui_numbersink2_0 = numbersink2.number_sink_f( self.GetWin(), unit="Units", minval=0, maxval=1, factor=1.0, decimal_places=10, ref_level=0, sample_rate=samp_rate, number_rate=15, average=False, avg_alpha=None, label="Error Rate", peak_hold=False, show_gauge=False, ) self.Add(self.wxgui_numbersink2_0.win) 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="Despread Signal", peak_hold=False, ) self.GridAdd(self.wxgui_fftsink2_0.win, 0, 2, 2, 4) self.channels_channel_model_0 = channels.channel_model( noise_voltage=0.1, frequency_offset=1 / samp_rate, epsilon=1 + 0.0000, taps=(1.0 + 1.0j, ), noise_seed=0, block_tags=False ) self.blocks_throttle_0 = blocks.throttle(gr.sizeof_gr_complex*1, samp_rate,True) self.blocks_add_xx_0 = blocks.add_vcc(1) self.blks2_error_rate_0 = grc_blks2.error_rate( type='BER', win_size=1000, bits_per_symbol=2, ) self.analog_sig_source_x_0 = analog.sig_source_c(samp_rate, analog.GR_COS_WAVE, tone_freq, 2, 0) self.analog_random_source_x_0 = blocks.vector_source_b(map(int, numpy.random.randint(0, 2, 1000)), True) self.Spread_synthesizer_0 = Spread.synthesizer(code_rate, 0, samp_rate, (generator), (init)) self.Spread_rx_synthesizer_0 = Spread.rx_synthesizer(code_rate, samp_sym, samp_rate, 12000, 50000, 0.16, (generator), (init)) self.Spread_cpfsk_mod_0 = Spread.cpfsk_mod(samp_sym) self.Spread_cpfsk_demod_0 = Spread.cpfsk_demod(samp_sym) ################################################## # Connections ################################################## self.connect((self.Spread_rx_synthesizer_0, 0), (self.wxgui_fftsink2_0, 0)) self.connect((self.Spread_rx_synthesizer_0, 0), (self.blocks_throttle_0, 0)) self.connect((self.blocks_throttle_0, 0), (self.Spread_cpfsk_demod_0, 0)) self.connect((self.Spread_cpfsk_mod_0, 0), (self.Spread_synthesizer_0, 0)) self.connect((self.analog_random_source_x_0, 0), (self.blks2_error_rate_0, 0)) self.connect((self.analog_random_source_x_0, 0), (self.Spread_cpfsk_mod_0, 0)) self.connect((self.Spread_cpfsk_demod_0, 0), (self.blks2_error_rate_0, 1)) self.connect((self.blks2_error_rate_0, 0), (self.wxgui_numbersink2_0, 0)) self.connect((self.blocks_add_xx_0, 0), (self.channels_channel_model_0, 0)) self.connect((self.Spread_synthesizer_0, 0), (self.blocks_add_xx_0, 1)) self.connect((self.analog_sig_source_x_0, 0), (self.blocks_add_xx_0, 0)) self.connect((self.channels_channel_model_0, 0), (self.wxgui_waterfallsink2_0, 0)) self.connect((self.channels_channel_model_0, 0), (self.Spread_rx_synthesizer_0, 0))