Esempio n. 1
0
	def __init__(self, decim=16, N_id_2=0, avg_frames=1, freq_corr=0, N_id_1=134, file_name="/home/user/git/gr-lte/gr-lte/test/traces/lte_02_796m_30720k_frame.cfile"):
		gr.top_block.__init__(self, "Pss Corr Block Gui")

		##################################################
		# Parameters
		##################################################
		self.decim = decim
		self.N_id_2 = N_id_2
		self.avg_frames = avg_frames
		self.freq_corr = freq_corr
		self.N_id_1 = N_id_1
		self.file_name = file_name

		##################################################
		# Variables
		##################################################
		self.vec_half_frame = vec_half_frame = 30720*5/decim
		self.transition_width = transition_width = 100e3
		self.samp_rate = samp_rate = 30720e3/decim
		self.cutoff_freq = cutoff_freq = 550e3

		##################################################
		# Blocks
		##################################################
		self.gr_vector_sink_sss10 = gr.vector_sink_i(1)
		self.gr_vector_sink_sss0 = gr.vector_sink_i(1)
		self.gr_vector_sink_pss = gr.vector_sink_i(1)
		self.gr_throttle_0 = gr.throttle(gr.sizeof_gr_complex*1, samp_rate*decim)
		self.gr_null_sink_0 = gr.null_sink(gr.sizeof_gr_complex*1)
		self.gr_file_source_0 = gr.file_source(gr.sizeof_gr_complex*1, file_name, False)
		self.fir_filter_xxx_0 = filter.fir_filter_ccc(decim, (firdes.low_pass(1, decim*samp_rate, cutoff_freq, transition_width)))
		self.any_0_0_0 = sss_corr(N_id_1,N_id_2,False, decim, avg_frames,freq_corr)
		self.any_0_0 = sss_corr(N_id_1,N_id_2,True, decim, avg_frames,freq_corr)
		self.any_0 = pss_corr(N_id_2, decim, avg_frames*2,freq_corr)

		##################################################
		# Connections
		##################################################
		self.connect((self.any_0_0_0, 0), (self.gr_vector_sink_sss10, 0))
		self.connect((self.fir_filter_xxx_0, 0), (self.any_0_0_0, 0))
		self.connect((self.any_0_0, 0), (self.gr_vector_sink_sss0, 0))
		self.connect((self.fir_filter_xxx_0, 0), (self.any_0_0, 0))
		self.connect((self.any_0, 0), (self.gr_vector_sink_pss, 0))
		self.connect((self.fir_filter_xxx_0, 0), (self.any_0, 0))
		self.connect((self.gr_throttle_0, 0), (self.fir_filter_xxx_0, 0))
		self.connect((self.gr_file_source_0, 0), (self.gr_throttle_0, 0))
		self.connect((self.gr_file_source_0, 0), (self.gr_null_sink_0, 0))
Esempio n. 2
0
	def __init__(self, file_name, decim=16, avg_frames=1, file_decim=1, freq_corr=0, sstart=0, dump=None):
		##################################################
		# Parameters
		##################################################
		self.decim = decim
		self.avg_frames = avg_frames
		self.freq_corr = freq_corr
		self.file_name = file_name
		self.dump = dump
		self.sstart = sstart

		##################################################
		# Variables
		##################################################
		self.N_id_2s = range(0,3)
		self.N_id_1s = range(0,168)
		self.slot_0_10s = range(0,2)
		#self.N_id_2s = [0] #range(0,3)
		#self.N_id_1s = [134] #range(0,168)
		#self.slot_0_10s = [0] #range(0,2)
		self.vec_half_frame = vec_half_frame = 30720*5/decim
		self.samp_rate = samp_rate = 30720e3/decim
		self.cutoff_freq = cutoff_freq = 550e3
		self.transition_width = transition_width = 100e3
		self.fft_size = 2048/self.decim
		self.N_re = 62
		self.snum = (self.avg_frames+1)*307200/file_decim

		##################################################
		# Generate input vector source
		##################################################
		if None != file_name:
			logging.debug("Reading from file: " + file_name)
			file_source = gr.file_source(gr.sizeof_gr_complex*1, file_name, False)
		else:
			N_id_1=134
			N_id_2=0
			logging.debug("Generating DL sync signals for cell ID {}".format(3*N_id_1+N_id_2))
			file_source = lte_dl_ss_source(decim=file_decim,N_id_1=N_id_1,N_id_2=N_id_2,frames=self.avg_frames)
		skiphead_0 = gr.skiphead(gr.sizeof_gr_complex, self.sstart)
		head_0 = gr.head(gr.sizeof_gr_complex, self.snum)
		decim_lowpass = filter.fir_filter_ccc(decim/file_decim, (firdes.low_pass(1, decim/file_decim*samp_rate, cutoff_freq, transition_width)))
		sink = gr.vector_sink_c();
		top = gr.top_block("input reader graph")
		top.connect(file_source, skiphead_0, head_0, decim_lowpass, sink)
		if dump != None:
			top.connect(decim_lowpass, gr.file_sink(gr.sizeof_gr_complex, self.dump + "_input.cfile"))
		top.run()
		self.buffer = sink.data()
		
		logging.debug("No. samples to process: {}".format(len(self.buffer))) 
		if -1 == self.avg_frames:
			self.avg_frames = int(floor(len(self.buffer) / vec_half_frame / 2))
		logging.debug("Config: decim {}, avg_frames {}, freq_corr {}".format(self.decim, self.avg_frames, self.freq_corr)) 
		self.source = gr.vector_source_c(self.buffer)

		# create pss flow graph		
		self.pss_top = gr.top_block("pss corr graph")
		self.pss_corr = pss_corr(0, self.decim, self.avg_frames*2, self.freq_corr, self.dump)
		self.pss_sink = gr.vector_sink_f()
		self.pss_top.connect(self.source, self.pss_corr, self.pss_sink)
		
		# create sss flow graphs
		self.sss_corr = sss_corr2(self.decim, self.fft_size, self.N_re, self.avg_frames, self.dump, self.N_id_1s, self.slot_0_10s)
Esempio n. 3
0
#!/usr/bin/python

from pss_source import *
from sss_source import *
from pss_corr import *


#pss = pss_source_fd(0)
#pss = pss_source_td(0)

gen_sss_td(0, 134, True)

pss = gen_pss_td(2, 128)
#print pss.get_data()
print pss.get_data_conj_rev()

pss_corr(0, 16, 1)
Esempio n. 4
0
#!/usr/bin/python

from pss_source import *
from sss_source import *
from pss_corr import *

#pss = pss_source_fd(0)
#pss = pss_source_td(0)

gen_sss_td(0, 134, True)

pss = gen_pss_td(2, 128)
#print pss.get_data()
print pss.get_data_conj_rev()

pss_corr(0, 16, 1)