blob: 6a11623fc9354a7a78547edc744290fd38861b7f [file] [log] [blame]
rjw6c1fd8f2022-11-30 14:33:01 +08001
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
24class 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