Exemplo n.º 1
0
    def test_001_t(self):
        M = 2**10
        interpolation = 2
        num_vectors = 2**8
        src_data = list()
        expected_result = list()
        for i in range(M * num_vectors):
            src_data.append(int(random.random() * 10))
            if (i % M) == (M - 1):
                for k in range(interpolation):
                    expected_result.extend(src_data[i + 1 - M:i + 1])

        # print expected_result
        src = blocks.vector_source_c(src_data, vlen=M)
        vcp = ofdm.fbmc_vector_copy_vcvc(M, interpolation)
        dst = blocks.vector_sink_c(vlen=M)

        self.tb.connect(src, vcp, dst)
        self.tb.run()

        result_data = dst.data()
        # print result_data

        self.assertComplexTuplesAlmostEqual(tuple(expected_result),
                                            result_data)
    def __init__(self, M):
        gr.hier_block2.__init__(self,
            "overlap_serial_to_parallel_cvc",
            gr.io_signature(1, 1, gr.sizeof_gr_complex*1),
            gr.io_signature(1, 1, gr.sizeof_gr_complex*M),
        )

        ##################################################
        # Parameters
        ##################################################
        self.M = M

        ##################################################
        # Blocks
        ##################################################
        ##self.fbmc_vector_reshape_vcvc_1 = fbmc_vector_reshape_vcvc(M/2, M)
        ##self.fbmc_vector_reshape_vcvc_0 = fbmc_vector_reshape_vcvc(M, M/2)
        self.fbmc_vector_copy_vcvc_0 = ofdm.fbmc_vector_copy_vcvc(M/2, 2)
        self.blocks_stream_to_vector_0 = blocks.stream_to_vector(gr.sizeof_gr_complex*1, M/2)
        # self.blocks_skiphead_0 = blocks.skiphead(gr.sizeof_gr_complex*M/2, 1)

        ##################################################
        # Connections
        ##################################################
        # self.connect((self.blocks_skiphead_0, 0), (self.fbmc_vector_reshape_vcvc_1, 0))
        self.connect((self, 0), (self.blocks_stream_to_vector_0, 0))
        self.connect((self.blocks_stream_to_vector_0, 0), (self.fbmc_vector_copy_vcvc_0, 0))
        # self.connect((self.fbmc_vector_copy_vcvc_0, 0), (self, 0))
        # self.connect((self.fbmc_vector_copy_vcvc_0, 0), (self.fbmc_vector_reshape_vcvc_0, 0))
        # self.connect((self.fbmc_vector_reshape_vcvc_0, 0), (self.blocks_skiphead_0, 0))
        # self.connect((self.fbmc_vector_reshape_vcvc_0, 0), (self, 0))
        

        # self.fbmc_vector_copy_vcvc_0 = fbmc.vector_copy_vcvc(M, 2)
        self.blocks_vector_to_stream_0 = blocks.vector_to_stream(gr.sizeof_gr_complex*1, M/2)
        self.blocks_stream_to_vector_0_0 = blocks.stream_to_vector(gr.sizeof_gr_complex*M/2, 2)
        # self.blocks_stream_to_vector_0 = blocks.stream_to_vector(gr.sizeof_gr_complex*1, M)
        self.blocks_skiphead_0 = blocks.skiphead(gr.sizeof_gr_complex*M/2, 1)

        # ##################################################
        # # Connections
        # ##################################################
        # self.connect((self.blocks_stream_to_vector_0, 0), (self.fbmc_vector_copy_vcvc_0, 0))
#         self.connect((self.fbmc_vector_copy_vcvc_0, 0), (self.blocks_vector_to_stream_0, 0))
#         # self.connect((self.blocks_vector_to_stream_0, 0), (self.blocks_stream_to_vector_0_0, 0))
#         self.connect((self.blocks_vector_to_stream_0, 0), (self.blocks_skiphead_0, 0))
#         self.connect((self.blocks_skiphead_0, 0), (self.blocks_stream_to_vector_0_0, 0))
#         # self.connect((self, 0), (self.blocks_stream_to_vector_0, 0))
#         self.connect((self.blocks_stream_to_vector_0_0, 0), (self, 0))
        
        self.connect((self.fbmc_vector_copy_vcvc_0, 0),(self.blocks_skiphead_0, 0))
        self.connect((self.blocks_skiphead_0, 0), (self.blocks_stream_to_vector_0_0, 0))
        # self.connect((self, 0), (self.blocks_stream_to_vector_0, 0))
        self.connect((self.blocks_stream_to_vector_0_0, 0), (self, 0))
    def test_001_t (self):
    	M= 2**10
        interpolation = 2
        num_vectors = 2**8
        src_data = list()
        expected_result = list()
        for i in range(M*num_vectors):
        	src_data.append(int(random.random()*10))
        	if (i%M)==(M-1):
        		for k in range(interpolation):
        			expected_result.extend(src_data[i+1-M:i+1])

    	# print expected_result
    	src = blocks.vector_source_c(src_data,vlen=M)
    	vcp = ofdm.fbmc_vector_copy_vcvc(M,interpolation)
    	dst = blocks.vector_sink_c(vlen=M)

    	self.tb.connect(src,vcp,dst)
    	self.tb.run()

    	result_data = dst.data()
    	# print result_data

    	self.assertComplexTuplesAlmostEqual(tuple(expected_result),result_data)
Exemplo n.º 4
0
    def __init__(self, M):
        gr.hier_block2.__init__(
            self,
            "overlap_serial_to_parallel_cvc",
            gr.io_signature(1, 1, gr.sizeof_gr_complex * 1),
            gr.io_signature(1, 1, gr.sizeof_gr_complex * M),
        )

        ##################################################
        # Parameters
        ##################################################
        self.M = M

        ##################################################
        # Blocks
        ##################################################
        ##self.fbmc_vector_reshape_vcvc_1 = fbmc_vector_reshape_vcvc(M/2, M)
        ##self.fbmc_vector_reshape_vcvc_0 = fbmc_vector_reshape_vcvc(M, M/2)
        self.fbmc_vector_copy_vcvc_0 = ofdm.fbmc_vector_copy_vcvc(M / 2, 2)
        self.blocks_stream_to_vector_0 = blocks.stream_to_vector(
            gr.sizeof_gr_complex * 1, M / 2)
        # self.blocks_skiphead_0 = blocks.skiphead(gr.sizeof_gr_complex*M/2, 1)

        ##################################################
        # Connections
        ##################################################
        # self.connect((self.blocks_skiphead_0, 0), (self.fbmc_vector_reshape_vcvc_1, 0))
        self.connect((self, 0), (self.blocks_stream_to_vector_0, 0))
        self.connect((self.blocks_stream_to_vector_0, 0),
                     (self.fbmc_vector_copy_vcvc_0, 0))
        # self.connect((self.fbmc_vector_copy_vcvc_0, 0), (self, 0))
        # self.connect((self.fbmc_vector_copy_vcvc_0, 0), (self.fbmc_vector_reshape_vcvc_0, 0))
        # self.connect((self.fbmc_vector_reshape_vcvc_0, 0), (self.blocks_skiphead_0, 0))
        # self.connect((self.fbmc_vector_reshape_vcvc_0, 0), (self, 0))

        # self.fbmc_vector_copy_vcvc_0 = fbmc.vector_copy_vcvc(M, 2)
        self.blocks_vector_to_stream_0 = blocks.vector_to_stream(
            gr.sizeof_gr_complex * 1, M / 2)
        self.blocks_stream_to_vector_0_0 = blocks.stream_to_vector(
            gr.sizeof_gr_complex * M / 2, 2)
        # self.blocks_stream_to_vector_0 = blocks.stream_to_vector(gr.sizeof_gr_complex*1, M)
        self.blocks_skiphead_0 = blocks.skiphead(gr.sizeof_gr_complex * M / 2,
                                                 1)

        # ##################################################
        # # Connections
        # ##################################################
        # self.connect((self.blocks_stream_to_vector_0, 0), (self.fbmc_vector_copy_vcvc_0, 0))
        #         self.connect((self.fbmc_vector_copy_vcvc_0, 0), (self.blocks_vector_to_stream_0, 0))
        #         # self.connect((self.blocks_vector_to_stream_0, 0), (self.blocks_stream_to_vector_0_0, 0))
        #         self.connect((self.blocks_vector_to_stream_0, 0), (self.blocks_skiphead_0, 0))
        #         self.connect((self.blocks_skiphead_0, 0), (self.blocks_stream_to_vector_0_0, 0))
        #         # self.connect((self, 0), (self.blocks_stream_to_vector_0, 0))
        #         self.connect((self.blocks_stream_to_vector_0_0, 0), (self, 0))

        self.connect((self.fbmc_vector_copy_vcvc_0, 0),
                     (self.blocks_skiphead_0, 0))
        self.connect((self.blocks_skiphead_0, 0),
                     (self.blocks_stream_to_vector_0_0, 0))
        # self.connect((self, 0), (self.blocks_stream_to_vector_0, 0))
        self.connect((self.blocks_stream_to_vector_0_0, 0), (self, 0))