def setUp (self): self.tb = gr.top_block () self.tp = drm.transm_params(1, 3, False, 0, False, 1, 0, 1, 1, 0, False, 24000, "station label", "text message") vlen_msc = self.tp.msc().N_MUX() * self.tp.ofdm().M_TF() vlen_sdc = self.tp.sdc().N() vlen_fac = self.tp.fac().N() * self.tp.ofdm().M_TF() self.cell_mapping = drm.cell_mapping_vcvc(self.tp, (vlen_msc, vlen_sdc, vlen_fac))
def setUp (self): self.tb = gr.top_block () self.tp = drm.transm_params(1, 3, False, 0, False, 1, 0, 1, 1, 0, False, 24000, "station label", "text message") self.src = drm.generate_sdc_vb(self.tp) self.head = gr.head(self.tp.sdc().L(), 1) self.snk = gr.vector_sink_b(self.tp.sdc().L()) self.tb.connect(self.src, self.head, self.snk)
def setUp(self): self.tb = gr.top_block() self.tp = drm.transm_params(1, 3, False, 0, False, 1, 0, 1, 1, 0, False, 24000, "station label", "text message") self.src = drm.generate_sdc_vb(self.tp) self.head = gr.head(self.tp.sdc().L(), 1) self.snk = gr.vector_sink_b(self.tp.sdc().L()) self.tb.connect(self.src, self.head, self.snk)
def setUp (self): self.tb = gr.top_block () self.tp = drm.transm_params(1, 3, False, 0, False, 1, 0, 1, 1, 0, False, 24000, "station label", "this is a long sample text message!") self.audio_enc = drm.audio_encoder_svb(self.tp) self.src = gr.null_source(4) self.head = gr.head(4, 960*10*3) self.snk = gr.vector_sink_b(self.tp.msc().L_MUX()) self.tb.connect(self.src, self.head, self.audio_enc, self.snk)
def setUp(self): self.tb = gr.top_block() self.tp = drm.transm_params( 1, 3, False, 0, False, 1, 0, 1, 1, 0, False, 24000, "station label", "this is a long sample text message!" ) self.audio_enc = drm.audio_encoder_svb(self.tp) self.src = gr.null_source(4) self.head = gr.head(4, 960 * 10 * 3) self.snk = gr.vector_sink_b(self.tp.msc().L_MUX()) self.tb.connect(self.src, self.head, self.audio_enc, self.snk)
def setUp (self): self.tb = gr.top_block () tp = drm.transm_params(1, 3, False, 0, False, 1, 0, 1, 1, 0, False, 24000, "station label", "text message") self.tables = tp.cfg().ptables()
def __init__(self,DRMParameters): gr.top_block.__init__(self, "DRM Transmitter 1") ################################################## # Variables ################################################## self.text_message = text_message = DRMParameters.text_msg self.station_label = station_label = DRMParameters.station_label self.msc_prot_level_2 = msc_prot_level_2 = 1 self.long_interl = long_interl = True self.audio_sample_rate = audio_sample_rate = DRMParameters.audio_samp*1000 self.SO = SO = DRMParameters.so self.RM = RM = DRMParameters.rm self.tp = tp = drm.transm_params(RM, SO, False, 0, DRMParameters.msc_mod, 0, msc_prot_level_2, DRMParameters.sdc_mod, 0, long_interl, audio_sample_rate, station_label, text_message) self.samp_rate = samp_rate = 48e3 self.usrp_addr = DRMParameters.usrp_id self.output_name = DRMParameters.output_name self.center_freq = DRMParameters.center_freq*1e6 self.audio_file = DRMParameters.audio_file ################################################## # Blocks ################################################## if DRMParameters.uhd_found: self.uhd_usrp_sink_0 = uhd.usrp_sink( ",".join((self.usrp_addr, "")), uhd.stream_args( cpu_format="fc32", channels=range(1), ), ) self.uhd_usrp_sink_0.set_samp_rate(samp_rate * 250 / 48) self.uhd_usrp_sink_0.set_center_freq(self.center_freq, 0) self.uhd_usrp_sink_0.set_gain(0, 0) self.uhd_usrp_sink_0.set_antenna("TXA", 0) self.rational_resampler_xxx_0 = filter.rational_resampler_ccc( interpolation=250, decimation=48, taps=None, fractional_bw=None, ) self.fft_vxx_0 = fft.fft_vcc(tp.ofdm().nfft(), False, (), True, 1) self.drm_scrambler_bb_0_1 = drm.scrambler_bb(tp.sdc().L()) self.drm_scrambler_bb_0_0 = drm.scrambler_bb(tp.fac().L()) self.drm_scrambler_bb_0 = drm.scrambler_bb(tp.msc().L_MUX()) self.drm_mlc_fac_bc = drm.make_mlc( channel_type="FAC", tp=tp ) #SDC Configuration self.drm_mlc_sdc_bc= drm.make_mlc( channel_type="SDC", tp=tp ) #MSC Configuration self.drm_mlc_msc_bc = drm.make_mlc( channel_type="MSC", tp=tp ) self.drm_interleaver_cc_0 = drm.interleaver_cc((tp.msc().cell_interl_seq()), long_interl, drm.INTL_DEPTH_DRM) self.drm_generate_sdc_b_0 = drm.generate_sdc_b(tp) self.drm_generate_fac_b_0 = drm.generate_fac_b(tp) self.drm_audio_encoder_sb_0 = drm.audio_encoder_sb(tp) self.digital_ofdm_cyclic_prefixer_1 = digital.ofdm_cyclic_prefixer(tp.ofdm().nfft(), tp.ofdm().nfft()+tp.ofdm().nfft()*tp.ofdm().cp_ratio_enum()/tp.ofdm().cp_ratio_denom(), 0, "") self.cell_mapping_cc_0 = drm.cell_mapping_cc(tp, (tp.msc().N_MUX() * tp.ofdm().M_TF() * 8, tp.sdc().N() * 8, tp.fac().N() * tp.ofdm().M_TF() * 8)) self.blocks_null_sink_0 = blocks.null_sink(gr.sizeof_float*1) if DRMParameters.pulse_audio: self.audio_source_1 = audio.source(audio_sample_rate, "", True) else: self.blocks_wavfile_source_0 = blocks.wavfile_source(self.audio_file, False) if DRMParameters.gen_output: self.blocks_wavfile_sink_0 = blocks.wavfile_sink(self.output_name, 1, 48000, 16) self.blocks_multiply_xx_0 = blocks.multiply_vcc(1) self.blocks_multiply_const_vxx_1 = blocks.multiply_const_vcc((7e-3, )) self.blocks_multiply_const_vxx_0 = blocks.multiply_const_vff((32768, )) self.blocks_complex_to_real_0 = blocks.complex_to_real(1) self.analog_sig_source_x_0 = analog.sig_source_c(samp_rate, analog.GR_COS_WAVE, 7000, 1, 0) ################################################## # Connections ################################################## self.connect((self.analog_sig_source_x_0, 0), (self.blocks_multiply_xx_0, 1)) if DRMParameters.gen_output: self.connect((self.blocks_complex_to_real_0, 0), (self.blocks_wavfile_sink_0, 0)) self.connect((self.blocks_multiply_const_vxx_0, 0), (self.drm_audio_encoder_sb_0, 0)) self.connect((self.blocks_multiply_const_vxx_1, 0), (self.blocks_multiply_xx_0, 0)) self.connect((self.blocks_multiply_xx_0, 0), (self.blocks_complex_to_real_0, 0)) if DRMParameters.pulse_audio: self.connect((self.audio_source_1, 0), (self.blocks_multiply_const_vxx_0, 0)) else: self.connect((self.blocks_wavfile_source_0, 0), (self.blocks_multiply_const_vxx_0, 0)) self.connect((self.cell_mapping_cc_0, 0), (self.fft_vxx_0, 0)) self.connect((self.digital_ofdm_cyclic_prefixer_1, 0), (self.blocks_multiply_const_vxx_1, 0)) self.connect((self.drm_audio_encoder_sb_0, 0), (self.drm_scrambler_bb_0, 0)) self.connect((self.drm_generate_fac_b_0, 0), (self.drm_scrambler_bb_0_0, 0)) self.connect((self.drm_generate_sdc_b_0, 0), (self.drm_scrambler_bb_0_1, 0)) self.connect((self.drm_interleaver_cc_0, 0), (self.cell_mapping_cc_0, 0)) self.connect((self.drm_mlc_msc_bc, 0), (self.drm_interleaver_cc_0, 0)) self.connect((self.drm_mlc_sdc_bc, 0), (self.cell_mapping_cc_0, 1)) self.connect((self.drm_mlc_fac_bc, 0), (self.cell_mapping_cc_0, 2)) self.connect((self.drm_scrambler_bb_0, 0), (self.drm_mlc_msc_bc, 0)) self.connect((self.drm_scrambler_bb_0_0, 0), (self.drm_mlc_fac_bc, 0)) self.connect((self.drm_scrambler_bb_0_1, 0), (self.drm_mlc_sdc_bc, 0)) self.connect((self.fft_vxx_0, 0), (self.digital_ofdm_cyclic_prefixer_1, 0)) if DRMParameters.uhd_found: self.connect((self.rational_resampler_xxx_0, 0), (self.uhd_usrp_sink_0, 0)) self.connect((self.blocks_multiply_const_vxx_1, 0), (self.rational_resampler_xxx_0, 0)) self.connect((self.blocks_complex_to_real_0, 0), (self.blocks_null_sink_0, 0))
def set_RM(self, RM): self.RM = RM self.set_tp(drm.transm_params(self.RM, self.SO, False, 0, False, 1, 0, self.msc_prot_level_2, 1, 0, self.long_interl, self.audio_sample_rate, self.station_label, self.text_message))
def setUp(self): self.tb = gr.top_block() tp = drm.transm_params(1, 3, False, 0, False, 1, 0, 1, 1, 0, False, 24000, "station label", "text message") self.tables = tp.cfg().ptables()
def setUp (self): self.tb = gr.top_block () tp = drm.transm_params(1, 3, False, 0, False, 1, 0, 1, 1, 0, False, 24000, "station label", "text message") self.aac_decoder = drm.audio_decoder_vbs(tp)
def __init__(self,DRMParameters): gr.top_block.__init__(self, "DRM Transmitter 1") ################################################## # Variables ################################################## self.text_message = text_message = DRMParameters.text_msg self.station_label = station_label = DRMParameters.station_label self.msc_prot_level_2 = msc_prot_level_2 = 1 self.long_interl = long_interl = True self.audio_sample_rate = audio_sample_rate = DRMParameters.audio_samp*1000 self.SO = SO = DRMParameters.so self.RM = RM = DRMParameters.rm self.tp = tp = drm.transm_params(RM, SO, False, 0, False, DRMParameters.msc_mod, 0, msc_prot_level_2, DRMParameters.sdc_mod, 0, long_interl, audio_sample_rate, station_label, text_message) self.samp_rate = samp_rate = 48e3 self.usrp_addr = DRMParameters.usrp_id self.output_name = DRMParameters.output_name self.center_freq = DRMParameters.center_freq*1e6 self.audio_file = DRMParameters.audio_file ################################################## # Blocks ################################################## if DRMParameters.uhd_found: self.uhd_usrp_sink_0 = uhd.usrp_sink( ",".join((self.usrp_addr, "")), uhd.stream_args( cpu_format="fc32", channels=range(1), ), ) self.uhd_usrp_sink_0.set_samp_rate(samp_rate * 250 / 48) self.uhd_usrp_sink_0.set_center_freq(self.center_freq, 0) self.uhd_usrp_sink_0.set_gain(0, 0) self.uhd_usrp_sink_0.set_antenna("TXA", 0) self.rational_resampler_xxx_0 = filter.rational_resampler_ccc( interpolation=250, decimation=48, taps=None, fractional_bw=None, ) self.fft_vxx_0 = fft.fft_vcc(tp.ofdm().nfft(), False, (), True, 1) self.drm_scrambler_bb_0_1 = drm.scrambler_bb(tp.sdc().L()) self.drm_scrambler_bb_0_0 = drm.scrambler_bb(tp.fac().L()) self.drm_scrambler_bb_0 = drm.scrambler_bb(tp.msc().L_MUX()) self.drm_mlc_4qam_bc_0_0 = drm_mlc_4qam_bc( bits_per_symbol=tp.fac().mod_order(), denom_mother_code_rate=drm.DENOM_MOTHER_CODE, gen_poly=(91, 121, 101, 91, 121, 101), interl_seq=tp.fac().bit_interl_seq_0_2(), map_tab=tp.cfg().ptables().d_QAM4, n_tailbits=drm.N_TAILBITS / drm.DENOM_MOTHER_CODE, pp=tp.fac().punct_pat_0(), pp_tail=tp.fac().punct_pat_0(), vlen_in=tp.fac().L(), vlen_out=tp.fac().N(), ) #SDC Configuration if DRMParameters.sdc_mod == 0: self.drm_mlc_sdc_bc= drm_mlc_16qam_bc( vlen_in=tp.sdc().L(), vlen_out=tp.sdc().N(), n_tailbits=drm.N_TAILBITS / drm.DENOM_MOTHER_CODE, denom_mother_code_rate=drm.DENOM_MOTHER_CODE, gen_poly=(91, 121, 101, 91, 121, 101), bits_per_symbol=tp.sdc().mod_order(), map_tab=tp.cfg().ptables().d_QAM16, pp_0=tp.sdc().punct_pat_0(), interl_seq_0_2=tp.sdc().bit_interl_seq_0_2(), interl_seq_1_2=tp.sdc().bit_interl_seq_1_2(), pp_1_tail=tp.sdc().punct_pat_tail_1(), pp_1=tp.sdc().punct_pat_1(), pp_0_tail=tp.sdc().punct_pat_tail_0(), M_total=tp.sdc().M_total(), part_len_top=tp.sdc().M_total()[0], part_len_bot=tp.sdc().M_total()[1], ) else: self.drm_mlc_sdc_bc = drm_mlc_4qam_bc( vlen_in=tp.sdc().L(), vlen_out=tp.sdc().N(), n_tailbits=drm.N_TAILBITS / drm.DENOM_MOTHER_CODE, denom_mother_code_rate=drm.DENOM_MOTHER_CODE, map_tab=tp.cfg().ptables().d_QAM4, interl_seq=tp.sdc().bit_interl_seq_0_2(), bits_per_symbol=tp.sdc().mod_order(), pp=tp.sdc().punct_pat_0(), pp_tail=tp.sdc().punct_pat_tail_0(), gen_poly=(91, 121, 101, 91, 121, 101), ) #MSC Configuration if DRMParameters.msc_mod == 2: self.drm_mlc_msc_bc = drm_mlc_64qam_sm_bc( vlen_in=tp.msc().L_MUX(), n_tailbits=drm.N_TAILBITS / drm.DENOM_MOTHER_CODE, denom_mother_code_rate=drm.DENOM_MOTHER_CODE, gen_poly=(91, 121, 101, 91, 121, 101), vlen_out=tp.msc().N_MUX(), bits_per_symbol=tp.msc().mod_order(), map_tab=tp.cfg().ptables().d_QAM64SM, pp_0=tp.msc().punct_pat_0_2(), pp_0_tail=tp.msc().punct_pat_tail_0_2(), pp_1=tp.msc().punct_pat_1_2(), pp_1_tail=tp.msc().punct_pat_tail_1_2(), pp_2=tp.msc().punct_pat_2_2(), pp_2_tail=tp.msc().punct_pat_tail_2_2(), interl_seq_0_2=tp.msc().bit_interl_seq_0_2(), interl_seq_2_2=tp.msc().bit_interl_seq_2_2(), interl_seq_1_2=tp.msc().bit_interl_seq_1_2(), M_total=tp.msc().M_total(), part_len_bot=tp.msc().M_total()[2], part_len_top=tp.msc().M_total()[0], part_len_mid=tp.msc().M_total()[1], ) else: self.drm_mlc_msc_bc = drm_mlc_16qam_bc( vlen_in=tp.msc().L_MUX(), vlen_out=tp.msc().N_MUX(), n_tailbits=drm.N_TAILBITS / drm.DENOM_MOTHER_CODE, denom_mother_code_rate=drm.DENOM_MOTHER_CODE, gen_poly=(91, 121, 101, 91, 121, 101), bits_per_symbol=tp.msc().mod_order(), map_tab=tp.cfg().ptables().d_QAM16, pp_0=tp.msc().punct_pat_0_2(), interl_seq_0_2=tp.msc().bit_interl_seq_0_2(), interl_seq_1_2=tp.msc().bit_interl_seq_1_2(), pp_1_tail=tp.msc().punct_pat_tail_1_2(), pp_1=tp.msc().punct_pat_1_2(), pp_0_tail=tp.msc().punct_pat_tail_0_2(), M_total=tp.msc().M_total(), part_len_top=tp.msc().M_total()[0], part_len_bot=tp.msc().M_total()[1], ) self.drm_interleaver_cc_0 = drm.interleaver_cc((tp.msc().cell_interl_seq()), long_interl, drm.INTL_DEPTH_DRM) self.drm_generate_sdc_b_0 = drm.generate_sdc_b(tp) self.drm_generate_fac_b_0 = drm.generate_fac_b(tp) self.drm_audio_encoder_sb_0 = drm.audio_encoder_sb(tp) self.digital_ofdm_cyclic_prefixer_1 = digital.ofdm_cyclic_prefixer(tp.ofdm().nfft(), tp.ofdm().nfft()+tp.ofdm().nfft()/4, 0, "") self.cell_mapping_cc_0 = drm.cell_mapping_cc(tp, (tp.msc().N_MUX() * tp.ofdm().M_TF() * 8, tp.sdc().N() * 8, tp.fac().N() * tp.ofdm().M_TF() * 8)) self.blocks_null_sink_0 = blocks.null_sink(gr.sizeof_float*1) if DRMParameters.pulse_audio: self.audio_source_1 = audio.source(audio_sample_rate, "", True) else: self.blocks_wavfile_source_0 = blocks.wavfile_source(self.audio_file, False) if DRMParameters.gen_output: self.blocks_wavfile_sink_0 = blocks.wavfile_sink(self.output_name, 1, 48000, 16) self.blocks_multiply_xx_0 = blocks.multiply_vcc(1) self.blocks_multiply_const_vxx_1 = blocks.multiply_const_vcc((7e-3, )) self.blocks_multiply_const_vxx_0 = blocks.multiply_const_vff((32768, )) self.blocks_complex_to_real_0 = blocks.complex_to_real(1) self.analog_sig_source_x_0 = analog.sig_source_c(samp_rate, analog.GR_COS_WAVE, 7000, 1, 0) ################################################## # Connections ################################################## self.connect((self.analog_sig_source_x_0, 0), (self.blocks_multiply_xx_0, 1)) if DRMParameters.gen_output: self.connect((self.blocks_complex_to_real_0, 0), (self.blocks_wavfile_sink_0, 0)) self.connect((self.blocks_multiply_const_vxx_0, 0), (self.drm_audio_encoder_sb_0, 0)) self.connect((self.blocks_multiply_const_vxx_1, 0), (self.blocks_multiply_xx_0, 0)) self.connect((self.blocks_multiply_xx_0, 0), (self.blocks_complex_to_real_0, 0)) if DRMParameters.pulse_audio: self.connect((self.audio_source_1, 0), (self.blocks_multiply_const_vxx_0, 0)) else: self.connect((self.blocks_wavfile_source_0, 0), (self.blocks_multiply_const_vxx_0, 0)) self.connect((self.cell_mapping_cc_0, 0), (self.fft_vxx_0, 0)) self.connect((self.digital_ofdm_cyclic_prefixer_1, 0), (self.blocks_multiply_const_vxx_1, 0)) self.connect((self.drm_audio_encoder_sb_0, 0), (self.drm_scrambler_bb_0, 0)) self.connect((self.drm_generate_fac_b_0, 0), (self.drm_scrambler_bb_0_0, 0)) self.connect((self.drm_generate_sdc_b_0, 0), (self.drm_scrambler_bb_0_1, 0)) self.connect((self.drm_interleaver_cc_0, 0), (self.cell_mapping_cc_0, 0)) self.connect((self.drm_mlc_msc_bc, 0), (self.drm_interleaver_cc_0, 0)) self.connect((self.drm_mlc_sdc_bc, 0), (self.cell_mapping_cc_0, 1)) self.connect((self.drm_mlc_4qam_bc_0_0, 0), (self.cell_mapping_cc_0, 2)) self.connect((self.drm_scrambler_bb_0, 0), (self.drm_mlc_msc_bc, 0)) self.connect((self.drm_scrambler_bb_0_0, 0), (self.drm_mlc_4qam_bc_0_0, 0)) self.connect((self.drm_scrambler_bb_0_1, 0), (self.drm_mlc_sdc_bc, 0)) self.connect((self.fft_vxx_0, 0), (self.digital_ofdm_cyclic_prefixer_1, 0)) if DRMParameters.uhd_found: self.connect((self.rational_resampler_xxx_0, 0), (self.uhd_usrp_sink_0, 0)) self.connect((self.blocks_multiply_const_vxx_1, 0), (self.rational_resampler_xxx_0, 0)) self.connect((self.blocks_complex_to_real_0, 0), (self.blocks_null_sink_0, 0))
def setUp(self): self.tb = gr.top_block() tp = drm.transm_params(1, 3, False, 0, False, 1, 0, 1, 1, 0, False, 24000, "station label", "text message") self.aac_decoder = drm.audio_decoder_vbs(tp)