################################################################################################### | |
# 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 |