def setUp(self): self.tb = gr.top_block() mod = scipy.io.loadmat('/home/demel/exchange/matlab_sss.mat') mat_u1 = tuple(mod['sss'].flatten()) mat_d = range(len(mat_u1)) for idx, val in enumerate(mat_u1): mat_d[idx] = val intu = tuple(mat_d) fftl = 512 # This is not yet a complete test! It's just for the purpose of testing the decoding and correlating. # Tag handling is not tested. self.src = gr.vector_source_c(intu, False, 72) self.tag = lte_swig.sss_tagging_cc(fftl) # calc sink block, which sets some attributes of other blocks. self.calc = lte_swig.sss_calc_vci(self.tag, fftl) self.tb.connect(self.src, self.calc)
def __init__(self, daemon, fftl): """ docstring """ gr.hier_block2.__init__( self, "hier_sss_sync_cc", gr.io_signature(1, 1, gr.sizeof_gr_complex), # Input signature gr.io_signature(1, 1, gr.sizeof_gr_complex)) # Output signature # input goes into 2 blocks: selector and tagging # 2 parallel streams: main (all data) right into tagging, sss symbol -> fft -> extract -> calc sss # required blocks: # selector # fft # resize (extract) # calc sss # tagging # SSS selector block self.sel = lte_swig.sss_selector_cvc(fftl) # in this block N_rb_dl is fixed. SSS is always mapped to those carriers. N_rb_dl = 6 # fft block and matching extract block # input : vector with size: gr_complex * fftl # output: vector with size: gr_complex * 12 * N_rb_dl self.fft = gr.fft_vcc(fftl, True, window.rectangular(fftl), False, 1) self.ext = lte_swig.extract_occupied_tones_vcvc(N_rb_dl, fftl) self.tag = lte_swig.sss_tagging_cc(fftl) # calc sink block, which sets some attributes of other blocks. self.calc = lte_swig.sss_calc_vci(self.tag, daemon, fftl) # Connect blocks self.connect(self, self.tag, self) self.connect(self, self.sel, self.fft, self.ext, self.calc)
def setUp (self): self.tb = gr.top_block () mod=scipy.io.loadmat('/home/demel/exchange/matlab_sss.mat') mat_u1=tuple(mod['sss'].flatten()) mat_d=range(len(mat_u1)) for idx, val in enumerate(mat_u1): mat_d[idx]=val intu=tuple(mat_d) fftl = 512 # This is not yet a complete test! It's just for the purpose of testing the decoding and correlating. # Tag handling is not tested. self.src = gr.vector_source_c(intu,False,72) self.tag = lte_swig.sss_tagging_cc(fftl) # calc sink block, which sets some attributes of other blocks. self.calc = lte_swig.sss_calc_vci(self.tag, fftl) self.tb.connect(self.src,self.calc)
def __init__(self, daemon, fftl): """ docstring """ gr.hier_block2.__init__(self, "hier_sss_sync_cc", gr.io_signature(1,1, gr.sizeof_gr_complex), # Input signature gr.io_signature(1,1, gr.sizeof_gr_complex)) # Output signature # input goes into 2 blocks: selector and tagging # 2 parallel streams: main (all data) right into tagging, sss symbol -> fft -> extract -> calc sss # required blocks: # selector # fft # resize (extract) # calc sss # tagging # SSS selector block self.sel = lte_swig.sss_selector_cvc(fftl) # in this block N_rb_dl is fixed. SSS is always mapped to those carriers. N_rb_dl = 6 # fft block and matching extract block # input : vector with size: gr_complex * fftl # output: vector with size: gr_complex * 12 * N_rb_dl self.fft = gr.fft_vcc(fftl,True,window.rectangular(fftl),False,1) self.ext = lte_swig.extract_occupied_tones_vcvc(N_rb_dl,fftl) self.tag = lte_swig.sss_tagging_cc(fftl) # calc sink block, which sets some attributes of other blocks. self.calc = lte_swig.sss_calc_vci(self.tag, daemon, fftl) # Connect blocks self.connect(self, self.tag, self) self.connect(self, self.sel, self.fft, self.ext, self.calc )