rjw | 6c1fd8f | 2022-11-30 14:33:01 +0800 | [diff] [blame] | 1 |
|
| 2 | ###################################################################################################
|
| 3 | # L T E D E F I N I T I O N S #
|
| 4 | ###################################################################################################
|
| 5 | ###################################################################################################
|
| 6 | # LTE Bandwidth | 1.4 MHz | 3.0 MHz | 5.0 MHz | 10.0 MHz | 15.0 MHz | 20.0 MHz #
|
| 7 | # Num. of RBs | 6 | 15 | 25 | 50 | | 100 #
|
| 8 | # Occupied Subcarriers | 72 | 180 | 300 | 600 | | 1200 #
|
| 9 | # Nfft | 128 | 256 | 512 | 1024 | | 2048 #
|
| 10 | # N_CP1 | 10 | 20 | 40 | 80 | | 160 #
|
| 11 | # N_CP2 | 9 | 18 | 36 | 72 | | 144 #
|
| 12 | # LTE_sample_rate | 1.92 Msps | 3.84 Msps | 7.68 Msps | 15.36 Msps | 23.04 Msps | 30.72 Msps #
|
| 13 | ###################################################################################################
|
| 14 | # Notes: #
|
| 15 | # LTE_sample_rate = 2*[(N_DL_sym-1)(N_fft+N_CP2) + (N_fft+N_CP1)] / (1 millisecond) #
|
| 16 | # #
|
| 17 | ###################################################################################################
|
| 18 |
|
| 19 | ####################################################################
|
| 20 | # ------------------ LTE-SPECIFIC PARAMATERS (B) ------------------#
|
| 21 | ####################################################################
|
| 22 |
|
| 23 |
|
| 24 | class IqParams:
|
| 25 |
|
| 26 | def __init__(self, chose_rate, Ncp_type):
|
| 27 | self.Ncp_type = Ncp_type
|
| 28 | self.is_averagedFrames = 1
|
| 29 | self.is_avgSlidingWindow = 1
|
| 30 | self.is_avgSlidingWindow = 1
|
| 31 | self.num_avg_frames = 10
|
| 32 | self.symAmount = 14
|
| 33 |
|
| 34 | if (chose_rate == 1.4):
|
| 35 |
|
| 36 | self.sample_rate = 1.92*pow(10,6)
|
| 37 | self.numRB = 6;
|
| 38 | self.Nfft = 128
|
| 39 | self.analysis_frame_len = 1920
|
| 40 | self.interp_freqSpectrum_lowLimit = -0.96*pow(10,6)
|
| 41 | self.interp_freqSpectrum_upperLimit = 0.96*pow(10,6)
|
| 42 |
|
| 43 | if (Ncp_type == 1):
|
| 44 | self.NCP1 = 10
|
| 45 | self.NCP2 = 9
|
| 46 | else:
|
| 47 | self.NCP1 = 10
|
| 48 | self.NCP2 = 9
|
| 49 |
|
| 50 | elif (chose_rate == 3):
|
| 51 |
|
| 52 | self.sample_rate = 3.84*pow(10,6)
|
| 53 | self.numRB = 15;
|
| 54 | self.Nfft = 256
|
| 55 | self.analysis_frame_len = 3840
|
| 56 | self.interp_freqSpectrum_lowLimit = -1.92*pow(10,6)
|
| 57 | self.interp_freqSpectrum_upperLimit = 1.92*pow(10,6)
|
| 58 |
|
| 59 | if (Ncp_type == 1):
|
| 60 | self.NCP1 = 20
|
| 61 | self.NCP2 = 18
|
| 62 | else:
|
| 63 | self.NCP1 = 20
|
| 64 | self.NCP2 = 18
|
| 65 |
|
| 66 | elif (chose_rate == 5):
|
| 67 |
|
| 68 | self.sample_rate = 7.68*pow(10,6)
|
| 69 | self.numRB = 25;
|
| 70 | self.Nfft = 512
|
| 71 | self.analysis_frame_len = 7680
|
| 72 | self.interp_freqSpectrum_lowLimit = -3.84*pow(10,6)
|
| 73 | self.interp_freqSpectrum_upperLimit = 3.84*pow(10,6)
|
| 74 |
|
| 75 | if (Ncp_type == 1):
|
| 76 | self.NCP1 = 40
|
| 77 | self.NCP2 = 36
|
| 78 | else:
|
| 79 | self.NCP1 = 40
|
| 80 | self.NCP2 = 36
|
| 81 |
|
| 82 | elif (chose_rate == 10):
|
| 83 |
|
| 84 | self.sample_rate = 15.36*pow(10,6)
|
| 85 | self.numRB = 50;
|
| 86 | self.Nfft = 1024
|
| 87 | self.analysis_frame_len = 15360
|
| 88 | self.interp_freqSpectrum_lowLimit = -7.68*pow(10,6)
|
| 89 | self.interp_freqSpectrum_upperLimit = 7.68*pow(10,6)
|
| 90 |
|
| 91 | if (Ncp_type == 1):
|
| 92 | self.NCP1 = 80
|
| 93 | self.NCP2 = 72
|
| 94 | else:
|
| 95 | self.NCP1 = 80
|
| 96 | self.NCP2 = 72
|
| 97 |
|
| 98 | elif (chose_rate == 15):
|
| 99 |
|
| 100 | #### FIX ME ####
|
| 101 | self.sample_rate = 23.04*pow(10,6)
|
| 102 | self.numRB = 75;
|
| 103 | self.Nfft = 2048
|
| 104 | self.analysis_frame_len = 1920
|
| 105 | self.interp_freqSpectrum_lowLimit = -0.96*pow(10,6)
|
| 106 | self.interp_freqSpectrum_upperLimit = 0.96*pow(10,6)
|
| 107 |
|
| 108 | if (Ncp_type == 1):
|
| 109 | self.NCP1 = 160
|
| 110 | self.NCP2 = 144
|
| 111 | else:
|
| 112 | self.NCP1 = 160
|
| 113 | self.NCP2 = 144
|
| 114 | #### FIX ME ####
|
| 115 |
|
| 116 | elif (chose_rate == 20):
|
| 117 |
|
| 118 | self.sample_rate = 30.72*pow(10,6)
|
| 119 | self.numRB = 100;
|
| 120 | self.Nfft = 2048
|
| 121 | self.analysis_frame_len = 30720
|
| 122 | self.interp_freqSpectrum_lowLimit = -15.36*pow(10,6)
|
| 123 | self.interp_freqSpectrum_upperLimit = 15.36*pow(10,6)
|
| 124 |
|
| 125 | if (Ncp_type == 1):
|
| 126 | self.NCP1 = 160
|
| 127 | self.NCP2 = 144
|
| 128 | else:
|
| 129 | self.NCP1 = 160
|
| 130 | self.NCP2 = 144
|
| 131 |
|
| 132 | else:
|
| 133 | sys.exit('Invalid LTE rate')
|
| 134 | #error('Invalid LTE rate');
|
| 135 |
|
| 136 | self.sample_time = 1/ self.sample_rate;
|
| 137 | self.PSS_FFT_size = self.Nfft |