Esempio n. 1
0
    def test_001_t (self):
        print "Viterbi decoder test"
        test_range = 1030
        
        data = []
        my_input = []
        for sfn in range(test_range):
            mib = lte_test.pack_mib(50,0,1.0, sfn%1024 )
            mib_crc = lte_test.crc_checksum(mib, 2)
            my_input.extend(mib_crc)
            c_encoded = lte_test.convolutional_encoder(mib_crc)
            nrz_encoded = lte_test.nrz_encoding(c_encoded)
            data.extend(nrz_encoded)

        self.src.set_data(data)
        self.tb.run ()
        
        count = 0
        res = self.snk.data()
        for i in range(test_range):
            try:
                self.assertEqual(tuple(my_input[i*40:(i+1)*40]), res[i*40:(i+1)*40])
#                print "SUCCESS " + str(i)
                count = count+1
            except:
                pass
#                print "FAILED  " + str(i)
     
        rate = float(count)/float(test_range)  
        print (rate)
        if not rate == 1.0:
            self.assertEqual( [1] , [0] ) #throws always n error
        print "Viterbi decoder test END"
Esempio n. 2
0
    def test_001_t (self):
        print "Viterbi decoder test"
        test_range = 1030
        
        data = []
        my_input = []
        for sfn in range(test_range):
            mib = lte_test.pack_mib(50,0,1.0, sfn%1024 )
            mib_crc = lte_test.crc_checksum(mib, 2)
            my_input.extend(mib_crc)
            c_encoded = lte_test.convolutional_encoder(mib_crc)
            nrz_encoded = lte_test.nrz_encoding(c_encoded)
            data.extend(nrz_encoded)

        self.src.set_data(data)
        self.tb.run ()
        
        count = 0
        res = self.snk.data()
        for i in range(test_range):
            try:
                self.assertEqual(tuple(my_input[i*40:(i+1)*40]), res[i*40:(i+1)*40])
                print "SUCCESS " + str(i)
                count = count+1
            except:
                print "FAILED  " + str(i)
     
        print (float(count)/float(test_range))        
        print "Viterbi decoder test END"
Esempio n. 3
0
    def test_001_t (self):
            
        N_ant = [1,2,3,4]
        N_rb_dl = 50
        phich_dur = 0
        phich_res = 1.0
        sfn = 511
        mib = lte_test.pack_mib(N_rb_dl, phich_dur, phich_res, sfn)
        input_data = []
        for i in N_ant:
            mib_crc = lte_test.crc_checksum(mib, i)
            input_data.extend(mib_crc)
        
        self.src.set_data(input_data)

        # set up fg
        self.tb.run ()
        # check data
        res0 = self.snk.data()
        res0 = tuple([int(i) for i in res0]) # just to ensure data types
        res1 = self.snk2.data()
        for i in range(4):
            try:
                self.assertEqual(tuple(mib),res0[i*24:(i+1)*24])
                self.assertEqual(N_ant[i], res1[i])
            except:
                print res0[i*24:(i+1)*24]
                print "result = " + str(res1[i]) + "\tinput = " + str(N_ant[i])

            

        print "qa_crc_calculator_vbvb END"
Esempio n. 4
0
    def setUp (self):
        self.tb = gr.top_block ()
        
        mib = lte_test.pack_mib(50,0,1.0, 511)
        mib_crc = lte_test.crc_checksum(mib, 2)
        c_encoded = lte_test.convolutional_encoder(mib_crc)
        data = lte_test.nrz_encoding(c_encoded)

        self.src = blocks.vector_source_f(data,False, 120)
        self.vit = bch_viterbi_vfvb()
        self.snk = blocks.vector_sink_b(40)
        
        # connecting blocks
        self.tb.connect(self.src,self.vit, self.snk)
Esempio n. 5
0
    def setUp (self):
        self.tb = gr.top_block ()
        
        mib = lte_test.pack_mib(50,0,1.0, 511)
        mib_crc = lte_test.crc_checksum(mib, 2)
        c_encoded = lte_test.convolutional_encoder(mib_crc)
        data = lte_test.nrz_encoding(c_encoded)

        self.src = gr.vector_source_f(data,False, 120)
        self.vit = lte.viterbi_vfvb()
        self.snk = gr.vector_sink_b(40)
        
        # connecting blocks
        self.tb.connect(self.src,self.vit, self.snk)
Esempio n. 6
0
    def setUp (self):
        self.tb = gr.top_block ()
        
        mib = lte_test.pack_mib(50,0,1.0, 511)
        mib_crc = lte_test.crc_checksum(mib, 2)
        c_encoded = lte_test.convolutional_encoder(mib_crc)
        data = lte_test.nrz_encoding(c_encoded)

        self.src = blocks.vector_source_f(data,False, 120)
        self.vit = bch_viterbi_vfvb()
        self.snk = blocks.vector_sink_b(40)
        
        self.dbgs = blocks.file_sink(120 * gr.sizeof_float, "/home/johannes/tests/viterbi.dat")
        self.tb.connect(self.src, self.dbgs)
        
        # connecting blocks
        self.tb.connect(self.src,self.vit, self.snk)
 def test_002_t(self):
     self.tb2 = gr.top_block()
     N_rb_dl = 50
     phich_dur = 0
     phich_res = 1.0
     N_ant = 2
     data = []
     test_len = 100
     my_res = []
     for i in range(test_len):
         mib = lte_test.pack_mib(N_rb_dl, phich_dur, phich_res, i)
         crc = lte_test.crc_checksum(mib, N_ant)
         conv = lte_test.convolutional_encoder_sorted(crc)
         convit = lte_test.convolutional_encoder(crc)
         my_res.extend(lte_test.nrz_encoding(convit) )
         rated = lte_test.rate_match(conv)
         nrz = lte_test.nrz_encoding(rated)
         data.extend(nrz)
     
     srcf = blocks.vector_source_f(data, False, 120)
     snkf = blocks.file_sink(gr.sizeof_float*120, "/home/johannes/tests/rated.dat")
     self.tb2.connect(srcf, snkf)
     
     src1 = blocks.vector_source_f(data, False, 120)
             
     vts0 = blocks.vector_to_stream(40*gr.sizeof_float, 3)
     sts0 = blocks.stream_to_streams(40*gr.sizeof_float, 3)        
     self.tb2.connect(src1, vts0, sts0)
     
     
     inter = blocks.interleave(gr.sizeof_float)
     for i in range(3):
         deint = lte.subblock_deinterleaver_vfvf(40, 1)
         vts1 = blocks.vector_to_stream(1*gr.sizeof_float, 40)
         self.tb2.connect( (sts0, i), deint, vts1, (inter, i))
     stv = blocks.stream_to_vector(1*gr.sizeof_float, 120)
     snk = blocks.vector_sink_f(120)        
     self.tb2.connect(inter, stv, snk)
     
     self.tb2.run()
     res = snk.data()
     print res[110:130]
     
     self.assertFloatTuplesAlmostEqual(tuple(my_res), res)
Esempio n. 8
0
    def test_002_t(self):
        self.tb2 = gr.top_block()
        N_rb_dl = 50
        phich_dur = 0
        phich_res = 1.0
        N_ant = 2
        data = []
        test_len = 100
        my_res = []
        for i in range(test_len):
            mib = lte_test.pack_mib(N_rb_dl, phich_dur, phich_res, i)
            crc = lte_test.crc_checksum(mib, N_ant)
            conv = lte_test.convolutional_encoder_sorted(crc)
            convit = lte_test.convolutional_encoder(crc)
            my_res.extend(lte_test.nrz_encoding(convit))
            rated = lte_test.rate_match(conv)
            nrz = lte_test.nrz_encoding(rated)
            data.extend(nrz)

        srcf = blocks.vector_source_f(data, False, 120)
        snkf = blocks.file_sink(gr.sizeof_float * 120,
                                "/home/johannes/tests/rated.dat")
        self.tb2.connect(srcf, snkf)

        src1 = blocks.vector_source_f(data, False, 120)

        vts0 = blocks.vector_to_stream(40 * gr.sizeof_float, 3)
        sts0 = blocks.stream_to_streams(40 * gr.sizeof_float, 3)
        self.tb2.connect(src1, vts0, sts0)

        inter = blocks.interleave(gr.sizeof_float)
        for i in range(3):
            deint = lte.subblock_deinterleaver_vfvf(40, 1)
            vts1 = blocks.vector_to_stream(1 * gr.sizeof_float, 40)
            self.tb2.connect((sts0, i), deint, vts1, (inter, i))
        stv = blocks.stream_to_vector(1 * gr.sizeof_float, 120)
        snk = blocks.vector_sink_f(120)
        self.tb2.connect(inter, stv, snk)

        self.tb2.run()
        res = snk.data()
        print res[110:130]

        self.assertFloatTuplesAlmostEqual(tuple(my_res), res)
Esempio n. 9
0
 def test_001_t (self):
     print "lte_rate_unmatch TEST"
     mib = lte_test.pack_mib(50,0,1.0, 511)
     mib_crc = lte_test.crc_checksum(mib, 2)
     c_enc_sorted = lte_test.convolutional_encoder_sorted(mib_crc)
     
     
     in_data = c_enc_sorted
     input_data = lte_test.rate_match(in_data)
     my_data = []
     for i in range(40):
         my_data.append(in_data[i+0])
         my_data.append(in_data[i+40])
         my_data.append(in_data[i+80])    
     in_data = my_data
     exp_res = tuple([float(in_data[i]) for i in range(len(in_data))])
     
     self.src.set_data(input_data)
     self.tb.run ()
     res=self.snk.data()
     
     self.assertEqual(res, exp_res)
Esempio n. 10
0
    def test_001_t(self):
        # set up fg
        N_rb_dl = 50
        phich_dur = 0
        phich_res = 1.0
        sfn = 511
        data = []
        test_len = 20
        myinput = []
        for i in range(test_len):
            mib = lte_test.pack_mib(N_rb_dl, phich_dur, phich_res, i * 4)
            myinput.extend(mib)
            data.extend(lte_test.crc_checksum(mib, self.N_ant))

        self.src.set_data(data)
        self.tb.run()
        res = self.snk0.data()
        print "data bits"
        self.assertTupleEqual(tuple(res), tuple(myinput))
        check = self.snk1.data()
        crcres = [int(check[i]) for i in range(len(check))]
        print check
        self.assertTupleEqual(tuple(crcres), tuple([1] * test_len))
        print crcres
Esempio n. 11
0
 def test_001_t (self):
     # set up fg
     N_rb_dl = 50
     phich_dur = 0
     phich_res = 1.0
     sfn = 511
     data = []
     test_len = 20
     myinput = []
     for i in range(test_len):
         mib = lte_test.pack_mib(N_rb_dl, phich_dur, phich_res, i*4)
         myinput.extend(mib)            
         data.extend(lte_test.crc_checksum(mib, self.N_ant) )
         
     self.src.set_data(data)        
     self.tb.run ()
     res = self.snk0.data()
     print "data bits"
     self.assertTupleEqual(tuple(res), tuple(myinput))        
     check = self.snk1.data()
     crcres = [int(check[i]) for i in range(len(check))]
     print check
     self.assertTupleEqual(tuple(crcres), tuple([1]*test_len))
     print crcres