blob: 6a11623fc9354a7a78547edc744290fd38861b7f [file] [log] [blame]
###################################################################################################
# L T E D E F I N I T I O N S #
###################################################################################################
###################################################################################################
# LTE Bandwidth | 1.4 MHz | 3.0 MHz | 5.0 MHz | 10.0 MHz | 15.0 MHz | 20.0 MHz #
# Num. of RBs | 6 | 15 | 25 | 50 | | 100 #
# Occupied Subcarriers | 72 | 180 | 300 | 600 | | 1200 #
# Nfft | 128 | 256 | 512 | 1024 | | 2048 #
# N_CP1 | 10 | 20 | 40 | 80 | | 160 #
# N_CP2 | 9 | 18 | 36 | 72 | | 144 #
# LTE_sample_rate | 1.92 Msps | 3.84 Msps | 7.68 Msps | 15.36 Msps | 23.04 Msps | 30.72 Msps #
###################################################################################################
# Notes: #
# LTE_sample_rate = 2*[(N_DL_sym-1)(N_fft+N_CP2) + (N_fft+N_CP1)] / (1 millisecond) #
# #
###################################################################################################
####################################################################
# ------------------ LTE-SPECIFIC PARAMATERS (B) ------------------#
####################################################################
class IqParams:
def __init__(self, chose_rate, Ncp_type):
self.Ncp_type = Ncp_type
self.is_averagedFrames = 1
self.is_avgSlidingWindow = 1
self.is_avgSlidingWindow = 1
self.num_avg_frames = 10
self.symAmount = 14
if (chose_rate == 1.4):
self.sample_rate = 1.92*pow(10,6)
self.numRB = 6;
self.Nfft = 128
self.analysis_frame_len = 1920
self.interp_freqSpectrum_lowLimit = -0.96*pow(10,6)
self.interp_freqSpectrum_upperLimit = 0.96*pow(10,6)
if (Ncp_type == 1):
self.NCP1 = 10
self.NCP2 = 9
else:
self.NCP1 = 10
self.NCP2 = 9
elif (chose_rate == 3):
self.sample_rate = 3.84*pow(10,6)
self.numRB = 15;
self.Nfft = 256
self.analysis_frame_len = 3840
self.interp_freqSpectrum_lowLimit = -1.92*pow(10,6)
self.interp_freqSpectrum_upperLimit = 1.92*pow(10,6)
if (Ncp_type == 1):
self.NCP1 = 20
self.NCP2 = 18
else:
self.NCP1 = 20
self.NCP2 = 18
elif (chose_rate == 5):
self.sample_rate = 7.68*pow(10,6)
self.numRB = 25;
self.Nfft = 512
self.analysis_frame_len = 7680
self.interp_freqSpectrum_lowLimit = -3.84*pow(10,6)
self.interp_freqSpectrum_upperLimit = 3.84*pow(10,6)
if (Ncp_type == 1):
self.NCP1 = 40
self.NCP2 = 36
else:
self.NCP1 = 40
self.NCP2 = 36
elif (chose_rate == 10):
self.sample_rate = 15.36*pow(10,6)
self.numRB = 50;
self.Nfft = 1024
self.analysis_frame_len = 15360
self.interp_freqSpectrum_lowLimit = -7.68*pow(10,6)
self.interp_freqSpectrum_upperLimit = 7.68*pow(10,6)
if (Ncp_type == 1):
self.NCP1 = 80
self.NCP2 = 72
else:
self.NCP1 = 80
self.NCP2 = 72
elif (chose_rate == 15):
#### FIX ME ####
self.sample_rate = 23.04*pow(10,6)
self.numRB = 75;
self.Nfft = 2048
self.analysis_frame_len = 1920
self.interp_freqSpectrum_lowLimit = -0.96*pow(10,6)
self.interp_freqSpectrum_upperLimit = 0.96*pow(10,6)
if (Ncp_type == 1):
self.NCP1 = 160
self.NCP2 = 144
else:
self.NCP1 = 160
self.NCP2 = 144
#### FIX ME ####
elif (chose_rate == 20):
self.sample_rate = 30.72*pow(10,6)
self.numRB = 100;
self.Nfft = 2048
self.analysis_frame_len = 30720
self.interp_freqSpectrum_lowLimit = -15.36*pow(10,6)
self.interp_freqSpectrum_upperLimit = 15.36*pow(10,6)
if (Ncp_type == 1):
self.NCP1 = 160
self.NCP2 = 144
else:
self.NCP1 = 160
self.NCP2 = 144
else:
sys.exit('Invalid LTE rate')
#error('Invalid LTE rate');
self.sample_time = 1/ self.sample_rate;
self.PSS_FFT_size = self.Nfft