Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG-RAN
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lizhongxiao
OpenXG-RAN
Commits
af2cb07f
Commit
af2cb07f
authored
Oct 31, 2019
by
Nick Ho
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
L1 for RX, 5 warning in PHY
parent
771043a4
Changes
10
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
2436 additions
and
1781 deletions
+2436
-1781
cmake_targets/CMakeLists.txt
cmake_targets/CMakeLists.txt
+1
-0
openair1/PHY/CODING/lte_interleaver2.h
openair1/PHY/CODING/lte_interleaver2.h
+210
-0
openair1/PHY/LTE_TRANSPORT/dci_NB_IoT.h
openair1/PHY/LTE_TRANSPORT/dci_NB_IoT.h
+0
-292
openair1/PHY/LTE_TRANSPORT/defs_NB_IoT.h
openair1/PHY/LTE_TRANSPORT/defs_NB_IoT.h
+0
-787
openair1/PHY/LTE_TRANSPORT/proto_NB_IoT.h
openair1/PHY/LTE_TRANSPORT/proto_NB_IoT.h
+0
-362
openair1/PHY/LTE_TRANSPORT/uci_NB_IoT.h
openair1/PHY/LTE_TRANSPORT/uci_NB_IoT.h
+0
-324
openair1/PHY/NBIoT_ESTIMATION/defs_NB_IoT.h
openair1/PHY/NBIoT_ESTIMATION/defs_NB_IoT.h
+80
-0
openair1/PHY/NBIoT_TRANSPORT/proto_NB_IoT.h
openair1/PHY/NBIoT_TRANSPORT/proto_NB_IoT.h
+15
-16
openair1/PHY/NBIoT_TRANSPORT/ulsch_demodulation_NB_IoT.c
openair1/PHY/NBIoT_TRANSPORT/ulsch_demodulation_NB_IoT.c
+1991
-0
openair1/PHY/extern_NB_IoT.h
openair1/PHY/extern_NB_IoT.h
+139
-0
No files found.
cmake_targets/CMakeLists.txt
View file @
af2cb07f
...
...
@@ -1157,6 +1157,7 @@ set(PHY_TURBOIF
add_library
(
coding MODULE
${
PHY_TURBOSRC
}
)
set
(
PHY_SRC_COMMON
${
OPENAIR1_DIR
}
/PHY/NBIoT_TRANSPORT/SIB_NB_IoT.c
${
OPENAIR1_DIR
}
/PHY/NBIoT_TRANSPORT/ulsch_demodulation_NB_IoT.c
${
OPENAIR1_DIR
}
/PHY/LTE_TRANSPORT/dci_tools_common.c
${
OPENAIR1_DIR
}
/PHY/LTE_TRANSPORT/lte_mcs.c
# ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/slss.c
...
...
openair1/PHY/CODING/lte_interleaver2.h
0 → 100644
View file @
af2cb07f
/*
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The OpenAirInterface Software Alliance licenses this file to You under
* the OAI Public License, Version 1.0 (the "License"); you may not use this file
* except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.openairinterface.org/?page_id=698
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*-------------------------------------------------------------------------------
* For more information about the OpenAirInterface (OAI) Software Alliance:
* contact@openairinterface.org
*/
unsigned
short
f1f2mat_old
[
2
*
188
]
=
{
3
,
10
,
7
,
12
,
19
,
42
,
7
,
16
,
7
,
18
,
11
,
20
,
5
,
22
,
11
,
24
,
7
,
26
,
41
,
84
,
103
,
90
,
15
,
32
,
9
,
34
,
17
,
108
,
9
,
38
,
21
,
120
,
101
,
84
,
21
,
44
,
57
,
46
,
23
,
48
,
13
,
50
,
27
,
52
,
11
,
36
,
27
,
56
,
85
,
58
,
29
,
60
,
33
,
62
,
15
,
32
,
17
,
198
,
33
,
68
,
103
,
210
,
19
,
36
,
19
,
74
,
37
,
76
,
19
,
78
,
21
,
120
,
21
,
82
,
115
,
84
,
193
,
86
,
21
,
44
,
133
,
90
,
81
,
46
,
45
,
94
,
23
,
48
,
243
,
98
,
151
,
40
,
155
,
102
,
25
,
52
,
51
,
106
,
47
,
72
,
91
,
110
,
29
,
168
,
29
,
114
,
247
,
58
,
29
,
118
,
89
,
180
,
91
,
122
,
157
,
62
,
55
,
84
,
31
,
64
,
17
,
66
,
35
,
68
,
227
,
420
,
65
,
96
,
19
,
74
,
37
,
76
,
41
,
234
,
39
,
80
,
185
,
82
,
43
,
252
,
21
,
86
,
155
,
44
,
79
,
120
,
139
,
92
,
23
,
94
,
217
,
48
,
25
,
98
,
17
,
80
,
127
,
102
,
25
,
52
,
239
,
106
,
17
,
48
,
137
,
110
,
215
,
112
,
29
,
114
,
15
,
58
,
147
,
118
,
29
,
60
,
59
,
122
,
65
,
124
,
55
,
84
,
31
,
64
,
17
,
66
,
171
,
204
,
67
,
140
,
35
,
72
,
19
,
74
,
39
,
76
,
19
,
78
,
199
,
240
,
21
,
82
,
211
,
252
,
21
,
86
,
43
,
88
,
149
,
60
,
45
,
92
,
49
,
846
,
71
,
48
,
13
,
28
,
17
,
80
,
25
,
102
,
183
,
104
,
55
,
954
,
127
,
96
,
27
,
110
,
29
,
112
,
29
,
114
,
57
,
116
,
45
,
354
,
31
,
120
,
59
,
610
,
185
,
124
,
113
,
420
,
31
,
64
,
17
,
66
,
171
,
136
,
209
,
420
,
253
,
216
,
367
,
444
,
265
,
456
,
181
,
468
,
39
,
80
,
27
,
164
,
127
,
504
,
143
,
172
,
43
,
88
,
29
,
300
,
45
,
92
,
157
,
188
,
47
,
96
,
13
,
28
,
111
,
240
,
443
,
204
,
51
,
104
,
51
,
212
,
451
,
192
,
257
,
220
,
57
,
336
,
313
,
228
,
271
,
232
,
179
,
236
,
331
,
120
,
363
,
244
,
375
,
248
,
127
,
168
,
31
,
64
,
33
,
130
,
43
,
264
,
33
,
134
,
477
,
408
,
35
,
138
,
233
,
280
,
357
,
142
,
337
,
480
,
37
,
146
,
71
,
444
,
71
,
120
,
37
,
152
,
39
,
462
,
127
,
234
,
39
,
158
,
39
,
80
,
31
,
96
,
113
,
902
,
41
,
166
,
251
,
336
,
43
,
170
,
21
,
86
,
43
,
174
,
45
,
176
,
45
,
178
,
161
,
120
,
89
,
182
,
323
,
184
,
47
,
186
,
23
,
94
,
47
,
190
,
263
,
480
};
openair1/PHY/LTE_TRANSPORT/dci_NB_IoT.h
deleted
100644 → 0
View file @
771043a4
/*
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The OpenAirInterface Software Alliance licenses this file to You under
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
* except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.openairinterface.org/?page_id=698
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*-------------------------------------------------------------------------------
* For more information about the OpenAirInterface (OAI) Software Alliance:
* contact@openairinterface.org
*/
/*! \file PHY/LTE_TRANSPORT/dci.h
* \brief typedefs for LTE DCI structures from 36-212, V8.6 2009-03. Limited to 5 MHz formats for the moment.Current LTE compliance V8.6 2009-03.
* \author R. Knopp
* \date 2011
* \version 0.1
* \company Eurecom
* \email: knopp@eurecom.fr
* \note
* \warning
*/
#ifndef __DCI_NB_IOT_H__
#define __DCI_NB_IOT_H__
//#ifndef USER_MODE
//#include "PHY/types.h"
//#else
#include <stdint.h>
//#endif
typedef
enum
{
DCIFormatN0
=
0
,
DCIFormatN1
,
DCIFormatN1_RA
,
//is for initial RA procedure (semi-static information) so maybe is not needed
DCIFormatN1_RAR
,
DCIFormatN2
,
DCIFormatN2_Ind
,
DCIFormatN2_Pag
,
}
DCI_format_NB_IoT_t
;
/// DCI Format Type 0 (180 kHz, 23 bits)
struct
DCIFormatN0
{
/// type = 0 => DCI Format N0, type = 1 => DCI Format N1, 1 bits
uint8_t
type
;
/// Subcarrier indication, 6 bits
uint8_t
scind
;
/// Resourse Assignment (RU Assignment), 3 bits
uint8_t
ResAssign
;
/// Modulation and Coding Scheme, 4 bits
uint8_t
mcs
;
/// New Data Indicator, 1 bits
uint8_t
ndi
;
/// Scheduling Delay, 2 bits
uint8_t
Scheddly
;
/// Repetition Number, 3 bits
uint8_t
RepNum
;
/// Redundancy version for HARQ (only use 0 and 2), 1 bits
uint8_t
rv
;
/// DCI subframe repetition Number, 2 bits
uint8_t
DCIRep
;
};
typedef
struct
DCIFormatN0
DCIFormatN0_t
;
/// DCI Format Type N1 for User data
struct
DCIFormatN1
{
/// type = 0 => DCI Format N0, type = 1 => DCI Format N1,1bits
uint8_t
type
;
//NPDCCH order indicator (set to 0), 1 bits
uint8_t
orderIndicator
;
// Scheduling Delay,3 bits
uint8_t
Scheddly
;
// Resourse Assignment (RU Assignment),3 bits
uint8_t
ResAssign
;
// Modulation and Coding Scheme,4 bits
uint8_t
mcs
;
// Repetition Number,4 bits
uint8_t
RepNum
;
// New Data Indicator,1 bits
uint8_t
ndi
;
// HARQ-ACK resource,4 bits
uint8_t
HARQackRes
;
// DCI subframe repetition Number,2 bits
uint8_t
DCIRep
;
};
typedef
struct
DCIFormatN1
DCIFormatN1_t
;
/// DCI Format Type N1 for initial RA
struct
DCIFormatN1_RA
{
/// type = 0 => DCI Format N0, type = 1 => DCI Format N1, 1 bits
uint8_t
type
;
//NPDCCH order indicator (set to 0),1 bits
uint8_t
orderIndicator
;
// Start number of NPRACH repetiiton, 2 bits
uint8_t
Scheddly
;
// Subcarrier indication of NPRACH, 6 bits
uint8_t
scind
;
// All the remainging bits, 13 bits
uint8_t
remaingingBits
;
};
typedef
struct
DCIFormatN1_RA
DCIFormatN1_RA_t
;
/// DCI Format Type N1 for User data
struct
DCIFormatN1_RAR
{
/// type = 0 => DCI Format N0, type = 1 => DCI Format N1,1bits
uint8_t
type
;
//NPDCCH order indicator (set to 0), 1 bits
uint8_t
orderIndicator
;
// Scheduling Delay,3 bits
uint8_t
Scheddly
;
// Resourse Assignment (RU Assignment),3 bits
uint8_t
ResAssign
;
// Modulation and Coding Scheme,4 bits
uint8_t
mcs
;
// Repetition Number,4 bits
uint8_t
RepNum
;
// New Data Indicator,1 bits,reserved in the RAR
uint8_t
ndi
;
// HARQ-ACK resource,4 bits,reserved in the RAR
uint8_t
HARQackRes
;
// DCI subframe repetition Number,2 bits
uint8_t
DCIRep
;
};
typedef
struct
DCIFormatN1_RAR
DCIFormatN1_RAR_t
;
// DCI Format Type N2 for direct indication, 15 bits
struct
DCIFormatN2_Ind
{
//Flag for paging(1)/direct indication(0), set to 0,1 bits
uint8_t
type
;
//Direct indication information, 8 bits
uint8_t
directIndInf
;
// Reserved information bits, 6 bits
uint8_t
resInfoBits
;
};
typedef
struct
DCIFormatN2_Ind
DCIFormatN2_Ind_t
;
// DCI Format Type N2 for Paging, 15 bits
struct
DCIFormatN2_Pag
{
//Flag for paging(1)/direct indication(0), set to 1,1 bits
uint8_t
type
;
// Resourse Assignment (RU Assignment), 3 bits
uint8_t
ResAssign
;
// Modulation and Coding Scheme, 4 bits
uint8_t
mcs
;
// Repetition Number, 4 bits
uint8_t
RepNum
;
// Reserved 3 bits
uint8_t
DCIRep
;
};
typedef
struct
DCIFormatN2_Pag
DCIFormatN2_Pag_t
;
typedef
union
DCI_CONTENT
{
//
DCIFormatN0_t
DCIN0
;
//
DCIFormatN1_t
DCIN1
;
//
DCIFormatN1_RA_t
DCIN1_RA
;
//
DCIFormatN1_RAR_t
DCIN1_RAR
;
//
DCIFormatN2_Ind_t
DCIN2_Ind
;
//
DCIFormatN2_Pag_t
DCIN2_Pag
;
}
DCI_CONTENT
;
/*Structure for packing*/
struct
DCIN0
{
/// DCI subframe repetition Number, 2 bits
uint8_t
DCIRep
:
2
;
/// New Data Indicator, 1 bits
uint8_t
ndi
:
1
;
/// Repetition Number, 3 bits
uint8_t
RepNum
:
3
;
/// Redundancy version for HARQ (only use 0 and 2), 1 bits
uint8_t
rv
:
1
;
/// Modulation and Coding Scheme, 4 bits
uint8_t
mcs
:
4
;
/// Scheduling Delay, 2 bits
uint8_t
Scheddly
:
2
;
/// Resourse Assignment (RU Assignment), 3 bits
uint8_t
ResAssign
:
3
;
/// Subcarrier indication, 6 bits
uint8_t
scind
:
6
;
/// type = 0 => DCI Format N0, type = 1 => DCI Format N1, 1 bits
uint8_t
type
:
1
;
}
__attribute__
((
__packed__
));
typedef
struct
DCIN0
DCIN0_t
;
#define sizeof_DCIN0_t 23
struct
DCIN1_RAR
{
// DCI subframe repetition Number, 2 bits
uint8_t
DCIRep
:
2
;
// HARQ-ACK resource,4 bits
uint8_t
HARQackRes
:
4
;
// New Data Indicator,1 bits
uint8_t
ndi
:
1
;
// Repetition Number, 4 bits
uint8_t
RepNum
:
4
;
// Modulation and Coding Scheme, 4 bits
uint8_t
mcs
:
4
;
// Resourse Assignment (RU Assignment), 3 bits
uint8_t
ResAssign
:
3
;
// Scheduling Delay, 3 bits
uint8_t
Scheddly
:
3
;
//NPDCCH order indicator (set to 0),1 bits
uint8_t
orderIndicator
:
1
;
/// type = 0 => DCI Format N0, type = 1 => DCI Format N1, 1 bits
uint8_t
type
:
1
;
}
__attribute__
((
__packed__
));
typedef
struct
DCIN1_RAR
DCIN1_RAR_t
;
#define sizeof_DCIN1_RAR_t 23
struct
DCIN1
{
// DCI subframe repetition Number, 2 bits
uint8_t
DCIRep
:
2
;
// HARQ-ACK resource,4 bits
uint8_t
HARQackRes
:
4
;
// New Data Indicator,1 bits
uint8_t
ndi
:
1
;
// Repetition Number, 4 bits
uint8_t
RepNum
:
4
;
// Modulation and Coding Scheme, 4 bits
uint8_t
mcs
:
4
;
// Resourse Assignment (RU Assignment), 3 bits
uint8_t
ResAssign
:
3
;
// Scheduling Delay, 3 bits
uint8_t
Scheddly
:
3
;
//NPDCCH order indicator (set to 0),1 bits
uint8_t
orderIndicator
:
1
;
/// type = 0 => DCI Format N0, type = 1 => DCI Format N1, 1 bits
uint8_t
type
:
1
;
}
__attribute__
((
__packed__
));
typedef
struct
DCIN1
DCIN1_t
;
#define sizeof_DCIN1_t 23
// DCI Format Type N2 for direct indication, 15 bits
struct
DCIN2_Ind
{
// Reserved information bits, 6 bits
uint8_t
resInfoBits
:
6
;
//Direct indication information, 8 bits
uint8_t
directIndInf
:
8
;
//Flag for paging(1)/direct indication(0), set to 0,1 bits
uint8_t
type
:
1
;
}
__attribute__
((
__packed__
));;
typedef
struct
DCIN2_Ind
DCIN2_Ind_t
;
#define sizeof_DCIN2_Ind_t 15
// DCI Format Type N2 for Paging, 15 bits
struct
DCIN2_Pag
{
// Reserved 3 bits
uint8_t
DCIRep
:
3
;
// Repetition Number, 4 bits
uint8_t
RepNum
:
4
;
// Modulation and Coding Scheme, 4 bits
uint8_t
mcs
:
4
;
// Resourse Assignment (RU Assignment), 3 bits
uint8_t
ResAssign
:
3
;
//Flag for paging(1)/direct indication(0), set to 1,1 bits
uint8_t
type
:
1
;
}
__attribute__
((
__packed__
));;
typedef
struct
DCIN2_Pag
DCIN2_Pag_t
;
#define sizeof_DCIN2_Pag_t 15
#define MAX_DCI_SIZE_BITS_NB_IoT 23
#endif
openair1/PHY/LTE_TRANSPORT/defs_NB_IoT.h
deleted
100644 → 0
View file @
771043a4
This diff is collapsed.
Click to expand it.
openair1/PHY/LTE_TRANSPORT/proto_NB_IoT.h
deleted
100644 → 0
View file @
771043a4
This diff is collapsed.
Click to expand it.
openair1/PHY/LTE_TRANSPORT/uci_NB_IoT.h
deleted
100644 → 0
View file @
771043a4
/*
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The OpenAirInterface Software Alliance licenses this file to You under
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
* except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.openairinterface.org/?page_id=698
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*-------------------------------------------------------------------------------
* For more information about the OpenAirInterface (OAI) Software Alliance:
* contact@openairinterface.org
*/
#ifndef __UCI_NB_IOT__H__
#define __UCI_NB_IOT__H__
//#include "PHY/types_NB_IoT.h"
typedef
enum
{
ue_selected_NB_IoT
,
wideband_cqi_rank1_2A_NB_IoT
,
//wideband_cqi_rank1_2A,
wideband_cqi_rank2_2A_NB_IoT
,
//wideband_cqi_rank2_2A,
HLC_subband_cqi_nopmi_NB_IoT
,
//HLC_subband_cqi_nopmi,
HLC_subband_cqi_rank1_2A_NB_IoT
,
//HLC_subband_cqi_rank1_2A,
HLC_subband_cqi_rank2_2A_NB_IoT
,
//HLC_subband_cqi_rank2_2A,
HLC_subband_cqi_modes123_NB_IoT
,
//HLC_subband_cqi_modes123
HLC_subband_cqi_mcs_CBA_NB_IoT
,
// MCS and RNTI, for contention-based acces
unknown_cqi_NB_IoT
//
}
UCI_format_NB_IoT_t
;
// **********************************************1.5 MHz***************************************************************************
typedef
struct
__attribute__
((
packed
))
{
uint32_t
padding
:
16
;
uint32_t
pmi
:
12
;
uint32_t
cqi1
:
4
;
}
wideband_cqi_rank1_2A_1_5MHz_NB_IoT
;
#define sizeof_wideband_cqi_rank1_2A_1_5MHz_NB_IoT 16
typedef
struct
__attribute__
((
packed
))
{
uint16_t
padding
:
2
;
uint16_t
pmi
:
6
;
uint16_t
cqi2
:
4
;
uint16_t
cqi1
:
4
;
}
wideband_cqi_rank2_2A_1_5MHz_NB_IoT
;
#define sizeof_wideband_cqi_rank2_2A_1_5MHz_NB_IoT 14
typedef
struct
__attribute__
((
packed
))
{
uint32_t
padding
:
16
;
uint32_t
diffcqi1
:
12
;
uint32_t
cqi1
:
4
;
}
HLC_subband_cqi_nopmi_1_5MHz_NB_IoT
;
#define sizeof_HLC_subband_cqi_nopmi_1_5MHz_NB_IoT 16
typedef
struct
__attribute__
((
packed
))
{
uint32_t
padding
:
14
;
uint32_t
pmi
:
2
;
uint32_t
diffcqi1
:
12
;
uint32_t
cqi1
:
4
;
}
HLC_subband_cqi_rank1_2A_1_5MHz_NB_IoT
;
#define sizeof_HLC_subband_cqi_rank1_2A_1_5MHz_NB_IoT 18
typedef
struct
__attribute__
((
packed
))
{
uint64_t
padding
:
31
;
uint64_t
pmi
:
1
;
uint64_t
diffcqi2
:
12
;
uint64_t
cqi2
:
4
;
uint64_t
diffcqi1
:
12
;
uint64_t
cqi1
:
4
;
}
HLC_subband_cqi_rank2_2A_1_5MHz_NB_IoT
;
#define sizeof_HLC_subband_cqi_rank2_2A_1_5MHz_NB_IoT 33
typedef
struct
__attribute__
((
packed
))
{
uint32_t
padding
:
16
;
uint32_t
diffcqi1
:
12
;
uint32_t
cqi1
:
4
;
}
HLC_subband_cqi_modes123_1_5MHz_NB_IoT
;
#define sizeof_HLC_subband_cqi_modes123_1_5MHz_NB_IoT 16
typedef
struct
__attribute__
((
packed
))
{
uint32_t
padding
:
11
;
uint32_t
crnti
:
16
;
uint32_t
mcs
:
5
;
}
HLC_subband_cqi_mcs_CBA_1_5MHz_NB_IoT
;
#define sizeof_HLC_subband_cqi_mcs_CBA_1_5MHz_NB_IoT 21
// **********************************************5 MHz***************************************************************************
typedef
struct
__attribute__
((
packed
))
{
uint32_t
padding
:
14
;
uint32_t
pmi
:
14
;
uint32_t
cqi1
:
4
;
}
wideband_cqi_rank1_2A_5MHz_NB_IoT
;
#define sizeof_wideband_cqi_rank1_2A_5MHz_NB_IoT 18
typedef
struct
__attribute__
((
packed
))
{
uint16_t
padding
:
1
;
uint16_t
pmi
:
7
;
uint16_t
cqi2
:
4
;
uint16_t
cqi1
:
4
;
}
wideband_cqi_rank2_2A_5MHz_NB_IoT
;
#define sizeof_wideband_cqi_rank2_2A_5MHz_NB_IoT 15
typedef
struct
__attribute__
((
packed
))
{
uint32_t
padding
:
14
;
uint32_t
diffcqi1
:
14
;
uint32_t
cqi1
:
4
;
}
HLC_subband_cqi_nopmi_5MHz_NB_IoT
;
#define sizeof_HLC_subband_cqi_nopmi_5MHz_NB_IoT 18
typedef
struct
__attribute__
((
packed
))
{
uint32_t
padding
:
12
;
uint32_t
pmi
:
2
;
uint32_t
diffcqi1
:
14
;
uint32_t
cqi1
:
4
;
}
HLC_subband_cqi_rank1_2A_5MHz_NB_IoT
;
#define sizeof_HLC_subband_cqi_rank1_2A_5MHz_NB_IoT 20
typedef
struct
__attribute__
((
packed
))
{
uint64_t
padding
:
27
;
uint64_t
pmi
:
1
;
uint64_t
diffcqi2
:
14
;
uint64_t
cqi2
:
4
;
uint64_t
diffcqi1
:
14
;
uint64_t
cqi1
:
4
;
}
HLC_subband_cqi_rank2_2A_5MHz_NB_IoT
;
#define sizeof_HLC_subband_cqi_rank2_2A_5MHz_NB_IoT 37
typedef
struct
__attribute__
((
packed
))
{
uint32_t
padding
:
14
;
uint32_t
diffcqi1
:
14
;
uint32_t
cqi1
:
4
;
}
HLC_subband_cqi_modes123_5MHz_NB_IoT
;
#define sizeof_HLC_subband_cqi_modes123_5MHz_NB_IoT 18
typedef
struct
__attribute__
((
packed
))
{
uint32_t
padding
:
11
;
uint32_t
crnti
:
16
;
uint32_t
mcs
:
5
;
}
HLC_subband_cqi_mcs_CBA_5MHz_NB_IoT
;
#define sizeof_HLC_subband_cqi_mcs_CBA_5MHz_NB_IoT 21
// **********************************************10 MHz***************************************************************************
typedef
struct
__attribute__
((
packed
))
{
uint32_t
padding
:
10
;
uint32_t
pmi
:
18
;
uint32_t
cqi1
:
4
;
}
wideband_cqi_rank1_2A_10MHz_NB_IoT
;
#define sizeof_wideband_cqi_rank1_2A_10MHz_NB_IoT 22
typedef
struct
__attribute__
((
packed
))
{
uint32_t
padding
:
15
;
uint32_t
pmi
:
9
;
uint32_t
cqi2
:
4
;
uint32_t
cqi1
:
4
;
}
wideband_cqi_rank2_2A_10MHz_NB_IoT
;
#define sizeof_wideband_cqi_rank2_2A_10MHz_NB_IoT 17
typedef
struct
__attribute__
((
packed
))
{
uint32_t
padding
:
10
;
uint32_t
diffcqi1
:
18
;
uint32_t
cqi1
:
4
;
}
HLC_subband_cqi_nopmi_10MHz_NB_IoT
;
#define sizeof_HLC_subband_cqi_nopmi_10MHz_NB_IoT 22
typedef
struct
__attribute__
((
packed
))
{
uint32_t
padding
:
8
;
uint32_t
pmi
:
2
;
uint32_t
diffcqi1
:
18
;
uint32_t
cqi1
:
4
;
}
HLC_subband_cqi_rank1_2A_10MHz_NB_IoT
;
#define sizeof_HLC_subband_cqi_rank1_2A_10MHz_NB_IoT 24
typedef
struct
__attribute__
((
packed
))
{
uint64_t
padding
:
19
;
uint64_t
pmi
:
1
;
uint64_t
diffcqi2
:
18
;
uint64_t
cqi2
:
4
;
uint64_t
diffcqi1
:
18
;
uint64_t
cqi1
:
4
;
}
HLC_subband_cqi_rank2_2A_10MHz_NB_IoT
;
#define sizeof_HLC_subband_cqi_rank2_2A_10MHz_NB_IoT 45
typedef
struct
__attribute__
((
packed
))
{
uint32_t
padding
:
10
;
uint32_t
diffcqi1
:
18
;
uint32_t
cqi1
:
4
;
}
HLC_subband_cqi_modes123_10MHz_NB_IoT
;
#define sizeof_HLC_subband_cqi_modes123_10MHz_NB_IoT 22
typedef
struct
__attribute__
((
packed
))
{
uint32_t
padding
:
11
;
uint32_t
crnti
:
16
;
uint32_t
mcs
:
5
;
}
HLC_subband_cqi_mcs_CBA_10MHz_NB_IoT
;
#define sizeof_HLC_subband_cqi_mcs_CBA_10MHz_NB_IoT 21
// **********************************************20 MHz***************************************************************************
typedef
struct
__attribute__
((
packed
))
{
uint32_t
padding
:
2
;
uint32_t
pmi
:
26
;
uint32_t
cqi1
:
4
;
}
wideband_cqi_rank1_2A_20MHz_NB_IoT
;
#define sizeof_wideband_cqi_rank1_2A_20MHz_NB_IoT 20
typedef
struct
__attribute__
((
packed
))
{
uint32_t
padding
:
11
;
uint32_t
pmi
:
13
;
uint32_t
cqi2
:
4
;
uint32_t
cqi1
:
4
;
}
wideband_cqi_rank2_2A_20MHz_NB_IoT
;
#define sizeof_wideband_cqi_rank2_2A_20MHz_NB_IoT 21
typedef
struct
__attribute__
((
packed
))
{
uint32_t
padding
:
2
;
uint32_t
diffcqi1
:
26
;
uint32_t
cqi1
:
4
;
}
HLC_subband_cqi_nopmi_20MHz_NB_IoT
;
#define sizeof_HLC_subband_cqi_nopmi_20MHz_NB_IoT 30
typedef
struct
__attribute__
((
packed
))
{
// uint32_t padding:12;
uint32_t
pmi
:
2
;
uint32_t
diffcqi1
:
26
;
uint32_t
cqi1
:
4
;
}
HLC_subband_cqi_rank1_2A_20MHz_NB_IoT
;
#define sizeof_HLC_subband_cqi_rank1_2A_20MHz_NB_IoT 32
typedef
struct
__attribute__
((
packed
))
{
uint64_t
padding
:
3
;
uint64_t
pmi
:
1
;
uint64_t
diffcqi2
:
26
;
uint64_t
cqi2
:
4
;
uint64_t
diffcqi1
:
26
;
uint64_t
cqi1
:
4
;
}
HLC_subband_cqi_rank2_2A_20MHz_NB_IoT
;
#define sizeof_HLC_subband_cqi_rank2_2A_20MHz_NB_IoT 61
typedef
struct
__attribute__
((
packed
))
{
uint32_t
padding
:
2
;
uint32_t
diffcqi1
:
26
;
uint32_t
cqi1
:
4
;
}
HLC_subband_cqi_modes123_20MHz_NB_IoT
;
#define sizeof_HLC_subband_cqi_modes123_20MHz_NB_IoT 30
typedef
struct
__attribute__
((
packed
))
{
uint32_t
padding
:
11
;
uint32_t
crnti
:
16
;
uint32_t
mcs
:
5
;
}
HLC_subband_cqi_mcs_CBA_20MHz_NB_IoT
;
#define sizeof_HLC_subband_cqi_mcs_CBA_20MHz_NB_IoT 21
#define MAX_CQI_PAYLOAD_NB_IoT (sizeof(HLC_subband_cqi_rank2_2A_20MHz_NB_IoT)*8*20)
#define MAX_CQI_BITS_NB_IoT (sizeof(HLC_subband_cqi_rank2_2A_20MHz_NB_IoT)*8)
#define MAX_CQI_BYTES_NB_IoT (sizeof(HLC_subband_cqi_rank2_2A_20MHz_NB_IoT))
#define MAX_ACK_PAYLOAD_NB_IoT 18
#define MAX_RI_PAYLOAD_NB_IoT 6
#endif
\ No newline at end of file
openair1/PHY/NBIoT_ESTIMATION/defs_NB_IoT.h
0 → 100644
View file @
af2cb07f
/*
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The OpenAirInterface Software Alliance licenses this file to You under
* the OAI Public License, Version 1.0 (the "License"); you may not use this file
* except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.openairinterface.org/?page_id=698
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*-------------------------------------------------------------------------------
* For more information about the OpenAirInterface (OAI) Software Alliance:
* contact@openairinterface.org
*/
#ifndef __LTE_ESTIMATION_DEFS_NB_IOT__H__
#define __LTE_ESTIMATION_DEFS_NB_IOT__H__
#include "PHY/defs_L1_NB_IoT.h"
/*
int lte_est_timing_advance(NB_IoT_DL_FRAME_PARMS *frame_parms,
NB_IoT_eNB_SRS *lte_eNb_srs,
unsigned int *eNb_id,
unsigned char clear,
unsigned char number_of_cards,
short coef);
*/
////////// Vincent: NB-IoT DL synchronization //////////////////////////////////////////////////
int
lte_sync_time_init_NB_IoT
(
NB_IoT_DL_FRAME_PARMS
*
frame_parms
);
void
lte_sync_time_free_NB_IoT
(
void
);
int
lte_sync_time_NB_IoT
(
int
**
rxdata
,
///rx data in time domain
NB_IoT_DL_FRAME_PARMS
*
frame_parms
,
int
*
eNB_id
);
void
lte_sync_timefreq_NB_IoT
(
PHY_VARS_UE_NB_IoT
*
ue
,
int
band
,
unsigned
int
DL_freq
);
////////////////////////////////////////////////////////////////////////////////////////////////
int
NB_IoT_est_timing_advance_pusch
(
PHY_VARS_eNB_NB_IoT
*
phy_vars_eNB
,
module_id_t
UE_id
);
////////// Vincent: NB-IoT specific adapted function for channel estimation ////////////////////
/*
int ul_channel_estimation_NB_IoT(PHY_VARS_eNB *eNB,
eNB_rxtx_proc_t *proc,
uint8_t eNB_id,
uint8_t UE_id,
unsigned char l,
unsigned char Ns,
uint8_t N_sc_RU,
uint8_t pilot_pos1,
uint8_t pilot_pos2,
uint8_t cooperation_flag); */
////////////////////////////////////////////////////////////////////////////////////////////////
int16_t
lte_ul_freq_offset_estimation_NB_IoT
(
NB_IoT_DL_FRAME_PARMS
*
frame_parms
,
int32_t
*
ul_ch_estimates
,
uint16_t
nb_rb
);
void
freq_equalization_NB_IoT
(
LTE_DL_FRAME_PARMS
*
frame_parms
,
int
**
rxdataF_comp
,
int
**
ul_ch_mag
,
int
**
ul_ch_mag_b
,
unsigned
char
symbol
,
unsigned
short
Msc_RS
,
unsigned
char
Qm
);
/** @} */
#endif
openair1/PHY/NBIoT_TRANSPORT/proto_NB_IoT.h
View file @
af2cb07f
...
...
@@ -234,7 +234,6 @@ int generate_eNB_ulsch_params_from_dci_NB_IoT(PHY_VARS_eNB_NB_IoT *eN
/*Use the DL DCI Information to configure PHY and also Pack the DCI*/
int
generate_eNB_dlsch_params_from_dci_NB_IoT
(
PHY_VARS_eNB_NB_IoT
*
eNB
,
int
frame
,
uint8_t
subframe
,
DCI_CONTENT
*
DCI_Content
,
...
...
@@ -242,7 +241,7 @@ int generate_eNB_dlsch_params_from_dci_NB_IoT(PHY_VARS_eNB_NB_IoT *eNB,
DCI_format_NB_IoT_t
dci_format
,
NB_IoT_eNB_NPDCCH_t
*
ndlcch
,
LTE
_DL_FRAME_PARMS
*
frame_parms
,
NB_IoT
_DL_FRAME_PARMS
*
frame_parms
,
uint8_t
aggregation
,
uint8_t
npdcch_start_symbol
,
uint8_t
ncce_index
);
...
...
@@ -446,7 +445,7 @@ uint32_t turbo_decoding_NB_IoT(PHY_VARS_eNB_NB_IoT *eNB,
uint8_t
rx_subframe
);
void
decode_NPUSCH_msg_NB_IoT
(
PHY_VARS_eNB_NB_IoT
*
eNB
,
LTE
_DL_FRAME_PARMS
*
fp
,
NB_IoT
_DL_FRAME_PARMS
*
fp
,
eNB_rxtx_proc_NB_IoT_t
*
proc
,
uint8_t
npusch_format
,
uint16_t
N_SF_per_word
,
...
...
@@ -475,10 +474,10 @@ void ulsch_extract_rbs_single_NB_IoT(int32_t **rxdataF,
uint16_t
N_sc_RU
,
// number of subcarriers in UL
uint8_t
l
,
uint8_t
Ns
,
LTE
_DL_FRAME_PARMS
*
frame_parms
);
NB_IoT
_DL_FRAME_PARMS
*
frame_parms
);
void
ulsch_channel_level_NB_IoT
(
int32_t
**
drs_ch_estimates_ext
,
LTE
_DL_FRAME_PARMS
*
frame_parms
,
NB_IoT
_DL_FRAME_PARMS
*
frame_parms
,
int32_t
*
avg
,
uint16_t
nb_rb
);
...
...
@@ -487,13 +486,13 @@ void ulsch_channel_compensation_NB_IoT(int32_t **rxdataF_ext,
int32_t
**
ul_ch_mag
,
int32_t
**
ul_ch_magb
,
int32_t
**
rxdataF_comp
,
LTE
_DL_FRAME_PARMS
*
frame_parms
,
NB_IoT
_DL_FRAME_PARMS
*
frame_parms
,
uint8_t
symbol
,
uint8_t
Qm
,
uint16_t
nb_rb
,
uint8_t
output_shift
);
void
lte_idft_NB_IoT
(
LTE
_DL_FRAME_PARMS
*
frame_parms
,
uint32_t
*
z
,
uint16_t
Msc_PUSCH
);
void
lte_idft_NB_IoT
(
NB_IoT
_DL_FRAME_PARMS
*
frame_parms
,
uint32_t
*
z
,
uint16_t
Msc_PUSCH
);
void
extract_CQI_NB_IoT
(
void
*
o
,
UCI_format_NB_IoT_t
uci_format
,
NB_IoT_eNB_UE_stats
*
stats
,
uint8_t
N_RB_DL
,
uint16_t
*
crnti
,
uint8_t
*
access_mode
);
...
...
@@ -542,12 +541,12 @@ uint8_t get_UL_slots_per_RU_NB_IoT(uint8_t subcarrier_spacing, uint8_t subcarrie
//////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////
void
generate_grouphop_NB_IoT
(
LTE
_DL_FRAME_PARMS
*
frame_parms
);
void
generate_grouphop_NB_IoT
(
NB_IoT
_DL_FRAME_PARMS
*
frame_parms
);
void
init_ul_hopping_NB_IoT
(
NB_IoT_DL_FRAME_PARMS
*
frame_parms
);
void
rotate_single_carrier_NB_IoT
(
PHY_VARS_eNB_NB_IoT
*
eNB
,
LTE
_DL_FRAME_PARMS
*
frame_parms
,
NB_IoT
_DL_FRAME_PARMS
*
frame_parms
,
int32_t
**
rxdataF_comp
,
uint8_t
eNB_id
,
uint8_t
symbol
,
//symbol within subframe
...
...
@@ -558,14 +557,14 @@ void rotate_single_carrier_NB_IoT(PHY_VARS_eNB_NB_IoT *eNB,
uint8_t
option
);
void
fill_rbs_zeros_NB_IoT
(
PHY_VARS_eNB_NB_IoT
*
eNB
,
LTE
_DL_FRAME_PARMS
*
frame_parms
,
NB_IoT
_DL_FRAME_PARMS
*
frame_parms
,
int32_t
**
rxdataF_comp
,
uint16_t
ul_sc_start
,
uint8_t
UE_id
,
uint8_t
symbol
);
int32_t
ulsch_bpsk_llr_NB_IoT
(
PHY_VARS_eNB_NB_IoT
*
eNB
,
LTE
_DL_FRAME_PARMS
*
frame_parms
,
NB_IoT
_DL_FRAME_PARMS
*
frame_parms
,
int32_t
**
rxdataF_comp
,
int16_t
*
ulsch_llr
,
uint8_t
symbol
,
...
...
@@ -574,7 +573,7 @@ int32_t ulsch_bpsk_llr_NB_IoT(PHY_VARS_eNB_NB_IoT *eNB,
int16_t
**
llrp
);
int32_t
ulsch_qpsk_llr_NB_IoT
(
PHY_VARS_eNB_NB_IoT
*
eNB
,
LTE
_DL_FRAME_PARMS
*
frame_parms
,
NB_IoT
_DL_FRAME_PARMS
*
frame_parms
,
int32_t
**
rxdataF_comp
,
int16_t
*
ulsch_llr
,
uint8_t
symbol
,
...
...
@@ -584,7 +583,7 @@ int32_t ulsch_qpsk_llr_NB_IoT(PHY_VARS_eNB_NB_IoT *eNB,
int16_t
*
llrp
);
void
rotate_bpsk_NB_IoT
(
PHY_VARS_eNB_NB_IoT
*
eNB
,
LTE
_DL_FRAME_PARMS
*
frame_parms
,
NB_IoT
_DL_FRAME_PARMS
*
frame_parms
,
int32_t
**
rxdataF_comp
,
uint16_t
ul_sc_start
,
...
...
@@ -660,7 +659,7 @@ int ul_chest_tmp_NB_IoT(int32_t **rxdataF_ext,
uint16_t
ul_sc_start
,
uint8_t
Qm
,
uint16_t
N_SF_per_word
,
LTE
_DL_FRAME_PARMS
*
frame_parms
);
NB_IoT
_DL_FRAME_PARMS
*
frame_parms
);
/// Channel estimation for NPUSCH format 2
int
ul_chest_tmp_f2_NB_IoT
(
int32_t
**
rxdataF_ext
,
...
...
@@ -672,7 +671,7 @@ int ul_chest_tmp_f2_NB_IoT(int32_t **rxdataF_ext,
uint8_t
subframerx
,
uint8_t
Qm
,
uint16_t
ul_sc_start
,
LTE
_DL_FRAME_PARMS
*
frame_parms
);
NB_IoT
_DL_FRAME_PARMS
*
frame_parms
);
void
rotate_channel_sc_tmp_NB_IoT
(
int16_t
*
estimated_channel
,
uint8_t
l
,
...
...
@@ -687,7 +686,7 @@ int ul_chequal_tmp_NB_IoT(int32_t **rxdataF_ext,
int32_t
**
ul_ch_estimates
,
uint8_t
l
,
//symbol within slot
uint8_t
Ns
,
LTE
_DL_FRAME_PARMS
*
frame_parms
);
NB_IoT
_DL_FRAME_PARMS
*
frame_parms
);
///
////////////////////////////NB-IoT testing ///////////////////////////////
...
...
openair1/PHY/NBIoT_TRANSPORT/ulsch_demodulation_NB_IoT.c
0 → 100644
View file @
af2cb07f
This diff is collapsed.
Click to expand it.
openair1/PHY/extern_NB_IoT.h
0 → 100644
View file @
af2cb07f
/*
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The OpenAirInterface Software Alliance licenses this file to You under
* the OAI Public License, Version 1.0 (the "License"); you may not use this file
* except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.openairinterface.org/?page_id=698
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*-------------------------------------------------------------------------------
* For more information about the OpenAirInterface (OAI) Software Alliance:
* contact@openairinterface.org
*/
#ifndef __PHY_EXTERN_NB_IOT_H__
#define __PHY_EXTERN_NB_IOT_H__
//#include "PHY/defs.h"
#include "PHY/defs_L1_NB_IoT.h"
//#include "openair2/PHY_INTERFACE/defs_NB_IoT.h"
//#include "PHY_INTERFACE/IF_Module_NB_IoT.h"
/*
extern char* namepointer_chMag ;
extern char* namepointer_log2;
extern char fmageren_name2[512];
extern unsigned int RX_DMA_BUFFER[4][NB_ANTENNAS_RX];
extern unsigned int TX_DMA_BUFFER[4][NB_ANTENNAS_TX];
*/
#include "PHY/NBIoT_TRANSPORT/extern_NB_IoT.h"
//#include "SIMULATION/ETH_TRANSPORT/extern.h"
extern
unsigned
int
DAQ_MBOX_NB_IoT
;
extern
int
number_of_cards_NB_IoT
;
//extern PHY_CONFIG *PHY_config;
//extern PHY_VARS *PHY_vars;
#ifndef OCP_FRAMEWORK
extern
PHY_VARS_UE_NB_IoT
***
PHY_vars_UE_NB_IoT_g
;
extern
PHY_VARS_eNB_NB_IoT
***
PHY_vars_eNB_NB_IoT_g
;
extern
PHY_VARS_RN_NB_IoT
**
PHY_vars_RN_NB_IoT_g
;
extern
NB_IoT_DL_FRAME_PARMS
*
nb_iot_frame_parms_g
;
#else
#define MAX_UE 10
#define MAX_eNB_NB_IoT 20
extern
PHY_VARS_UE_NB_IoT
*
PHY_vars_UE_NB_IoT_g
[
MAX_UE
][
MAX_NUM_CCs
];
extern
PHY_VARS_eNB_NB_IoT
*
PHY_vars_eNB_NB_IoT_g
[
MAX_eNB_NB_IoT
][
MAX_NUM_CCs
];
#endif
//extern MAC_xface_NB_IoT *mac_xface_NB_IoT;
extern
short
primary_synch_NB_IoT
[
264
];
/*
extern short primary_synch1[144];
extern short primary_synch2[144];
extern unsigned char primary_synch0_tab[72];
extern unsigned char primary_synch1_tab[72];
extern unsigned char primary_synch2_tab[72]; */
extern
int16_t
*
primary_synch0_time_NB_IoT
;
//!< index: [0..ofdm_symbol_size*2[
// extern int16_t *primary_synch1_time; //!< index: [0..ofdm_symbol_size*2[
// extern int16_t *primary_synch2_time; //!< index: [0..ofdm_symbol_size*2[
extern
int
*
sync_corr_ue0_NB_IoT
;
//!< index [0..10*samples_per_tti[
/*
extern int *sync_corr_ue1; //!< index [0..10*samples_per_tti[
extern int *sync_corr_ue2; //!< index [0..10*samples_per_tti[
extern int flagMag;
//extern short **txdataF_rep_tmp;
extern char mode_string[4][20];
*/
/*
#ifndef OPENAIR2
extern unsigned char NB_eNB_INST;
extern unsigned char NB_UE_INST;
extern unsigned char NB_RN_INST;
#endif
extern unsigned int ULSCH_max_consecutive_errors;
extern int flag_LA;
extern double sinr_bler_map[MCS_COUNT][2][MCS_TABLE_LENGTH_MAX];
extern double sinr_bler_map_up[MCS_COUNT][2][16];
extern int table_length[MCS_COUNT];
extern double sinr_to_cqi[4][16];
extern int cqi_to_mcs[16];
//for MU-MIMO abstraction using MIESM
//this 2D arrarays contains SINR, MI and RBIR in rows 1, 2, and 3 respectively
extern double MI_map_4qam[3][162];
extern double MI_map_16qam[3][197];
extern double MI_map_64qam[3][227];
extern double beta1_dlsch_MI[6][MCS_COUNT];
extern double beta2_dlsch_MI[6][MCS_COUNT];
extern double q_qpsk[8];
extern double q_qam16[8];
extern double q_qam64[8];
extern double p_qpsk[8];
extern double p_qam16[8];
extern double p_qam64[8];
extern double beta1_dlsch[6][MCS_COUNT];
extern double beta2_dlsch[6][MCS_COUNT];
extern char eNB_functions[6][20];
extern char eNB_timing[2][20];
*/
extern
int16_t
unscrambling_lut_NB_IoT
[
65536
*
16
];
/*
extern uint8_t scrambling_lut[65536*16];
extern unsigned short msrsb_6_40[8][4];
extern unsigned short msrsb_41_60[8][4];
extern unsigned short msrsb_61_80[8][4];
extern unsigned short msrsb_81_110[8][4];
extern unsigned short Nb_6_40[8][4];
extern unsigned short Nb_41_60[8][4];
extern unsigned short Nb_61_80[8][4];
extern unsigned short Nb_81_110[8][4];
extern uint16_t hundred_times_log10_NPRB[100];
extern uint8_t alpha_lut[8];
*/
#endif
/*__PHY_EXTERN_H__ */
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment