def build_blocks( self, vlen, cp_len, snr_db, sigpow, startup, N,
                           LOS_power, no_taps, have_LOS ):


    self.fading_channel =  \
      static_fading_channel( LOS_power, no_taps, vlen, have_LOS )

    self.freq_resp = self.fading_channel.freq_resp
    assert( len(self.freq_resp) == vlen )

    ############################################################################
    # select channel estimator to be tested her
   # self.uut = channel_estimator_003( vlen, cp_len )
    self.uut = channel_estimator_001( vlen)
    ############################################################################

    block = self.uut.preamble_td
    #print abs(sigpow)
    #print sum(numpy.abs(block)**2.0)/len(block)
    assert( abs( sigpow - sum(numpy.abs(block)**2.0)/len(block) ) < 1e-4 ) # power


    if cp_len > 0:
      block = concatenate([ block[ len(block) - cp_len : len(block) ], block ])
    self.block = block

    self.compare = gr.add_const_vcc( -1.0 * numpy.array(self.freq_resp) )
    self.mean_squared_error = vector_acc_se2( vlen, startup, N )
    self.dst = gr.vector_sink_f()

    self.awgn_channel = awgn_channel( snr_db, sigpow )
    self.block_src = gr.vector_source_c( self.block, True )
    self.sampler = ofdm.vector_sampler( gr.sizeof_gr_complex, vlen )
    self.perfect_trigger = perfect_block_trigger( len(self.block) )
    self.fft = scaled_fft( vlen )
Exemplo n.º 2
0
 def test_add_const_vcc_five(self):
     src_data = (1.0 + 2.0j, 3.0 + 4.0j, 5.0 + 6.0j, 7.0 + 8.0j,
                 9.0 + 10.0j)
     op = gr.add_const_vcc((11.0 + 12.0j, 13.0 + 14.0j, 15.0 + 16.0j,
                            17.0 + 18.0j, 19.0 + 20.0j))
     exp_data = (12.0 + 14.0j, 16.0 + 18.0j, 20.0 + 22.0j, 24.0 + 26.0j,
                 28.0 + 30.0j)
     self.help_const_cc(src_data, exp_data, op)
Exemplo n.º 3
0
  def __init__(self, vlen):
    gr.hier_block2.__init__(self, "vector_equalizer",
        gr.io_signature(1,1,gr.sizeof_gr_complex*vlen),
        gr.io_signature(1,1,gr.sizeof_gr_complex*vlen))

    self.input=gr.add_const_vcc([0.0]*vlen)
    self.connect(self, self.input)

    c2mag = gr.complex_to_mag(vlen)
    max_v = gr.max_ff(vlen)
    interpolator = gr.interp_fir_filter_fff(vlen,[1.0]*vlen)
    f2c = gr.float_to_complex()
    v2s = gr.vector_to_stream(gr.sizeof_gr_complex, vlen)
    normalizer = gr.divide_cc()
    s2v = gr.stream_to_vector(gr.sizeof_gr_complex, vlen)

    self.connect(self.input, v2s, (normalizer,0))
    self.connect(self.input, c2mag, max_v, interpolator, f2c, (normalizer,1))
    self.connect(normalizer, s2v)
    self.connect(s2v, self)
Exemplo n.º 4
0
    def __init__(self, vlen):
        gr.hier_block2.__init__(
            self, "vector_equalizer",
            gr.io_signature(1, 1, gr.sizeof_gr_complex * vlen),
            gr.io_signature(1, 1, gr.sizeof_gr_complex * vlen))

        self.input = gr.add_const_vcc([0.0] * vlen)
        self.connect(self, self.input)

        c2mag = gr.complex_to_mag(vlen)
        max_v = gr.max_ff(vlen)
        interpolator = gr.interp_fir_filter_fff(vlen, [1.0] * vlen)
        f2c = gr.float_to_complex()
        v2s = gr.vector_to_stream(gr.sizeof_gr_complex, vlen)
        normalizer = gr.divide_cc()
        s2v = gr.stream_to_vector(gr.sizeof_gr_complex, vlen)

        self.connect(self.input, v2s, (normalizer, 0))
        self.connect(self.input, c2mag, max_v, interpolator, f2c,
                     (normalizer, 1))
        self.connect(normalizer, s2v)
        self.connect(s2v, self)
Exemplo n.º 5
0
 def test_add_const_vcc_one(self):
     src_data = (1.0 + 2.0j, )
     op = gr.add_const_vcc((2.0 + 3.0j, ))
     exp_data = (3.0 + 5.0j, )
     self.help_const_cc(src_data, exp_data, op)
    def test_add_const_vcc_five(self):
	src_data = (1.0+2.0j, 3.0+4.0j, 5.0+6.0j, 7.0+8.0j, 9.0+10.0j)
	op = gr.add_const_vcc((11.0+12.0j, 13.0+14.0j, 15.0+16.0j, 17.0+18.0j, 19.0+20.0j))
	exp_data = (12.0+14.0j, 16.0+18.0j, 20.0+22.0j, 24.0+26.0j, 28.0+30.0j)
	self.help_const_cc(src_data, exp_data, op)
    def test_add_const_vcc_one(self):
	src_data = (1.0+2.0j,)
	op = gr.add_const_vcc((2.0+3.0j,))
	exp_data = (3.0+5.0j,)
	self.help_const_cc(src_data, exp_data, op)