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
常顺宇
OpenXG-RAN
Commits
cbd801b6
Commit
cbd801b6
authored
May 19, 2020
by
laurent
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
some cleanup and checks
parent
9112ee01
Changes
19
Hide whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
145 additions
and
134 deletions
+145
-134
cmake_targets/CMakeLists.txt
cmake_targets/CMakeLists.txt
+4
-4
cmake_targets/build_oai
cmake_targets/build_oai
+4
-0
cmake_targets/tools/build_helper
cmake_targets/tools/build_helper
+9
-5
executables/ocp-gnb.c
executables/ocp-gnb.c
+20
-13
openair1/PHY/LTE_TRANSPORT/transport_extern.h
openair1/PHY/LTE_TRANSPORT/transport_extern.h
+1
-1
openair1/PHY/NR_TRANSPORT/nr_transport_common_proto.h
openair1/PHY/NR_TRANSPORT/nr_transport_common_proto.h
+1
-0
openair1/PHY/NR_TRANSPORT/pucch_rx.c
openair1/PHY/NR_TRANSPORT/pucch_rx.c
+1
-1
openair1/PHY/NR_UE_TRANSPORT/pucch_nr.c
openair1/PHY/NR_UE_TRANSPORT/pucch_nr.c
+1
-0
openair1/PHY/phy_extern.h
openair1/PHY/phy_extern.h
+16
-17
openair1/PHY/phy_extern_nr_ue.h
openair1/PHY/phy_extern_nr_ue.h
+13
-17
openair1/PHY/phy_extern_ue.h
openair1/PHY/phy_extern_ue.h
+15
-18
openair1/PHY/phy_vars.h
openair1/PHY/phy_vars.h
+21
-21
openair1/PHY/phy_vars_nr_ue.h
openair1/PHY/phy_vars_nr_ue.h
+17
-17
openair1/PHY/phy_vars_ue.h
openair1/PHY/phy_vars_ue.h
+17
-17
openair2/LAYER2/MAC/mac_extern.h
openair2/LAYER2/MAC/mac_extern.h
+1
-1
openair2/LAYER2/MAC/pre_processor.c
openair2/LAYER2/MAC/pre_processor.c
+1
-0
openair2/LAYER2/NR_MAC_COMMON/nr_mac_extern.h
openair2/LAYER2/NR_MAC_COMMON/nr_mac_extern.h
+1
-1
openair3/NAS/TOOLS/conf_network.c
openair3/NAS/TOOLS/conf_network.c
+1
-1
targets/RT/USER/lte-softmodem.c
targets/RT/USER/lte-softmodem.c
+1
-0
No files found.
cmake_targets/CMakeLists.txt
View file @
cbd801b6
...
@@ -2439,9 +2439,9 @@ endif (${T_TRACER})
...
@@ -2439,9 +2439,9 @@ endif (${T_TRACER})
#This rule and the following deal with it.
#This rule and the following deal with it.
add_custom_command
(
add_custom_command
(
OUTPUT
${
OPENAIR_DIR
}
/common/utils/T/T_IDs.h
OUTPUT
${
OPENAIR_DIR
}
/common/utils/T/T_IDs.h
COMMAND
$
(
MAKE
)
clean
COMMAND
make
clean
COMMAND
$
(
MAKE
)
COMMAND
make
COMMAND
$
(
MAKE
)
check_vcd
COMMAND
make
check_vcd
WORKING_DIRECTORY
${
OPENAIR_DIR
}
/common/utils/T
WORKING_DIRECTORY
${
OPENAIR_DIR
}
/common/utils/T
DEPENDS
${
OPENAIR_DIR
}
/common/utils/T/T_messages.txt
DEPENDS
${
OPENAIR_DIR
}
/common/utils/T/T_messages.txt
${
OPENAIR_DIR
}
/common/utils/LOG/vcd_signal_dumper.c
${
OPENAIR_DIR
}
/common/utils/LOG/vcd_signal_dumper.c
...
@@ -3073,7 +3073,7 @@ function(make_driver name dir)
...
@@ -3073,7 +3073,7 @@ function(make_driver name dir)
endforeach
()
endforeach
()
CONFIGURE_FILE
(
${
OPENAIR_CMAKE
}
/tools/Kbuild.cmake
${
OPENAIR_BIN_DIR
}
/
${
name
}
/Kbuild
)
CONFIGURE_FILE
(
${
OPENAIR_CMAKE
}
/tools/Kbuild.cmake
${
OPENAIR_BIN_DIR
}
/
${
name
}
/Kbuild
)
add_custom_command
(
OUTPUT
${
name
}
.ko
add_custom_command
(
OUTPUT
${
name
}
.ko
COMMAND
$
(
MAKE
)
-C
${
module_build_path
}
M=
${
OPENAIR_BIN_DIR
}
/
${
name
}
COMMAND
make
-C
${
module_build_path
}
M=
${
OPENAIR_BIN_DIR
}
/
${
name
}
WORKING_DIRECTORY
${
OPENAIR_BIN_DIR
}
/
${
name
}
WORKING_DIRECTORY
${
OPENAIR_BIN_DIR
}
/
${
name
}
COMMENT
"building
${
module
}
.ko"
COMMENT
"building
${
module
}
.ko"
VERBATIM
VERBATIM
...
...
cmake_targets/build_oai
View file @
cbd801b6
...
@@ -408,6 +408,10 @@ function main() {
...
@@ -408,6 +408,10 @@ function main() {
SKIP_SHARED_LIB_FLAG
=
"True"
SKIP_SHARED_LIB_FLAG
=
"True"
echo_info
"Skipping build of shared libraries, rfsimulator, basicsimulator and transport protocol libraries"
echo_info
"Skipping build of shared libraries, rfsimulator, basicsimulator and transport protocol libraries"
shift
;;
shift
;;
--ninja
)
CMAKE_CMD
=
"
$CMAKE_CMD
-GNinja"
MAKE_CMD
=
ninja
shift
;;
-h
|
--help
)
-h
|
--help
)
print_help
print_help
exit
1
;;
exit
1
;;
...
...
cmake_targets/tools/build_helper
View file @
cbd801b6
...
@@ -183,10 +183,14 @@ compilations() {
...
@@ -183,10 +183,14 @@ compilations() {
else
else
COV_SCAN_PREFIX=""
COV_SCAN_PREFIX=""
fi
fi
if [ "$VERBOSE_COMPILE" == "1" ]; then
if [ "$MAKE_CMD" != "" ]; then
$COV_SCAN_PREFIX make -j`nproc` $2 VERBOSE=$VERBOSE_COMPILE
$MAKE_CMD $2
else
else
$COV_SCAN_PREFIX make -j`nproc` $2
if [ "$VERBOSE_COMPILE" == "1" ]; then
$COV_SCAN_PREFIX make -j`nproc` $2 VERBOSE=$VERBOSE_COMPILE
else
$COV_SCAN_PREFIX make -j`nproc` $2
fi
fi
fi
} > $dlog/$2.$REL.txt 2>&1
} > $dlog/$2.$REL.txt 2>&1
...
@@ -778,7 +782,7 @@ install_asn1c_from_source(){
...
@@ -778,7 +782,7 @@ install_asn1c_from_source(){
install_nas_tools() {
install_nas_tools() {
if [ ! -f .ue.nvram0 ]; then
if [ ! -f .ue.nvram0 ]; then
echo_success "generate .ue_emm.nvram .ue.nvram"
echo_success "generate .ue_emm.nvram .ue.nvram
./nvram --gen -c $1 -o $2
"
./nvram --gen -c $1 -o $2
./nvram --gen -c $1 -o $2
else
else
[ ./nvram -nt .ue.nvram0 -o ./nvram -nt .ue_emm.nvram0 ] && ./nvram --gen -c $1 -o $2
[ ./nvram -nt .ue.nvram0 -o ./nvram -nt .ue_emm.nvram0 ] && ./nvram --gen -c $1 -o $2
...
...
executables/ocp-gnb.c
View file @
cbd801b6
...
@@ -486,34 +486,39 @@ void RCconfig_RU(void) {
...
@@ -486,34 +486,39 @@ void RCconfig_RU(void) {
return
;
return
;
}
}
int
rx_rf
(
RU_t
*
ru
,
int
lastReadSz
)
{
int
rx_rf
(
RU_proc_t
*
proc
,
NR_DL_FRAME_PARMS
*
fp
,
int
nb_rx
,
int32_t
**
rxdata
,
int
lastReadSz
,
RU_proc_t
*
proc
=
&
ru
->
proc
;
openair0_device
*
rfdevice
,
openair0_timestamp
ts_offset
)
{
NR_DL_FRAME_PARMS
*
fp
=
ru
->
nr_frame_parms
;
void
*
rxp
[
nb_rx
];
void
*
rxp
[
ru
->
nb_rx
];
int
nextSlot
=
(
proc
->
tti_rx
+
1
)
%
fp
->
slots_per_frame
;
int
nextSlot
=
(
proc
->
tti_rx
+
1
)
%
fp
->
slots_per_frame
;
uint32_t
samples_per_slot
=
fp
->
get_samples_per_slot
(
nextSlot
,
fp
);
uint32_t
samples_per_slot
=
fp
->
get_samples_per_slot
(
nextSlot
,
fp
);
for
(
int
i
=
0
;
i
<
ru
->
nb_rx
;
i
++
)
int
rxBufOffet
=
fp
->
get_samples_slot_timestamp
(
nextSlot
,
fp
,
0
);
rxp
[
i
]
=
(
void
*
)
&
ru
->
common
.
rxdata
[
i
][
fp
->
get_samples_slot_timestamp
(
nextSlot
,
fp
,
0
)];
int
controlrxBufOffet
=
(
proc
->
timestamp_rx
+
lastReadSz
)
%
fp
->
samples_per_frame
;
AssertFatal
(
rxBufOffet
==
controlrxBufOffet
&&
rxBufOffet
+
samples_per_slot
<=
fp
->
samples_per_frame
,
"inconsistent IQ samples read"
);
for
(
int
i
=
0
;
i
<
nb_rx
;
i
++
)
rxp
[
i
]
=
(
void
*
)
&
rxdata
[
i
][
rxBufOffet
];
openair0_timestamp
old_ts
=
proc
->
timestamp_rx
;
openair0_timestamp
old_ts
=
proc
->
timestamp_rx
;
LOG_D
(
PHY
,
"Reading %d samples for slot %d (%p)
\n
"
,
samples_per_slot
,
nextSlot
,
rxp
[
0
]);
LOG_D
(
PHY
,
"Reading %d samples for slot %d (%p)
\n
"
,
samples_per_slot
,
nextSlot
,
rxp
[
0
]);
unsigned
int
rxs
=
r
u
->
rfdevice
.
trx_read_func
(
&
ru
->
rfdevice
,
unsigned
int
rxs
=
r
fdevice
->
trx_read_func
(
rfdevice
,
&
proc
->
timestamp_rx
,
&
proc
->
timestamp_rx
,
rxp
,
rxp
,
samples_per_slot
,
samples_per_slot
,
ru
->
nb_rx
);
nb_rx
);
if
(
rxs
!=
samples_per_slot
)
if
(
rxs
!=
samples_per_slot
)
LOG_E
(
PHY
,
"rx_rf: Asked for %d samples, got %d from USRP
\n
"
,
samples_per_slot
,
rxs
);
LOG_E
(
PHY
,
"rx_rf: Asked for %d samples, got %d from USRP
\n
"
,
samples_per_slot
,
rxs
);
// In case we need offset, between RU or any other need
// In case we need offset, between RU or any other need
// The sync system can put a offset to use betwwen RF boards
// The sync system can put a offset to use betwwen RF boards
proc
->
timestamp_rx
+=
ru
->
ts_offset
;
proc
->
timestamp_rx
+=
ts_offset
;
if
(
lastReadSz
&&
proc
->
timestamp_rx
-
old_ts
!=
lastReadSz
)
if
(
lastReadSz
&&
proc
->
timestamp_rx
-
old_ts
!=
lastReadSz
)
LOG_D
(
PHY
,
"rx_rf: rfdevice timing drift of %"
PRId64
" samples (ts_off %"
PRId64
")
\n
"
,
LOG_D
(
PHY
,
"rx_rf: rfdevice timing drift of %"
PRId64
" samples (ts_off %"
PRId64
")
\n
"
,
proc
->
timestamp_rx
-
old_ts
-
samples_per_slot
,
ru
->
ts_offset
);
proc
->
timestamp_rx
-
old_ts
-
samples_per_slot
,
ts_offset
);
return
rxs
;
return
rxs
;
}
}
...
@@ -738,10 +743,12 @@ static void *ru_thread( void *param ) {
...
@@ -738,10 +743,12 @@ static void *ru_thread( void *param ) {
// This is a forever while loop, it loops over subframes which are scheduled by incoming samples from HW devices
// This is a forever while loop, it loops over subframes which are scheduled by incoming samples from HW devices
int
lastReadSz
=
0
;
int
lastReadSz
=
0
;
sf_ahead
=
(
uint16_t
)
ceil
((
float
)
6
/
(
0x01
<<
fp
->
numerology_index
));
sf_ahead
=
(
uint16_t
)
ceil
((
float
)
6
/
(
0x01
<<
fp
->
numerology_index
));
proc
->
tti_rx
=-
1
;
// we increment before each read
openair0_timestamp
ts_offset
=
0
;
//for multi RU
while
(
!
oai_exit
)
{
while
(
!
oai_exit
)
{
// synchronization on input FH interface, acquire signals/data and block
// synchronization on input FH interface, acquire signals/data and block
lastReadSz
=
rx_rf
(
ru
,
lastReadSz
);
lastReadSz
=
rx_rf
(
proc
,
fp
,
ru
->
nb_rx
,
ru
->
common
.
rxdata
,
lastReadSz
,
&
ru
->
rfdevice
,
ts_offset
);
// do RX front-end processing (frequency-shift, dft) if needed
// do RX front-end processing (frequency-shift, dft) if needed
proc
->
frame_rx
=
(
proc
->
timestamp_rx
/
(
fp
->
samples_per_subframe
*
10
))
&
1023
;
proc
->
frame_rx
=
(
proc
->
timestamp_rx
/
(
fp
->
samples_per_subframe
*
10
))
&
1023
;
uint32_t
idx_sf
=
proc
->
timestamp_rx
/
fp
->
samples_per_subframe
;
uint32_t
idx_sf
=
proc
->
timestamp_rx
/
fp
->
samples_per_subframe
;
...
@@ -824,7 +831,7 @@ void launch_NR_RU(char *rf_config_file) {
...
@@ -824,7 +831,7 @@ void launch_NR_RU(char *rf_config_file) {
}
}
}
}
void
init_eNB_afterRU
()
{
void
init_eNB_afterRU
(
void
)
{
AssertFatal
(
false
,
""
);
AssertFatal
(
false
,
""
);
}
}
...
...
openair1/PHY/LTE_TRANSPORT/transport_extern.h
View file @
cbd801b6
...
@@ -22,7 +22,7 @@
...
@@ -22,7 +22,7 @@
extern
unsigned
int
dlsch_tbs25
[
27
][
25
],
TBStable
[
27
][
110
],
TBStable1C
[
32
];
extern
unsigned
int
dlsch_tbs25
[
27
][
25
],
TBStable
[
27
][
110
],
TBStable1C
[
32
];
extern
unsigned
short
lte_cqi_eff1024
[
16
];
extern
unsigned
short
lte_cqi_eff1024
[
16
];
extern
char
lte_cqi_snr_dB
[
15
];
extern
char
lte_cqi_snr_dB
[
15
];
extern
short
conjugate
[
8
],
conjugate2
[
8
];
extern
const
short
conjugate
[
8
],
conjugate2
[
8
];
extern
short
minus_one
[
8
];
extern
short
minus_one
[
8
];
extern
short
minus_one
[
8
];
extern
short
minus_one
[
8
];
extern
short
*
ul_ref_sigs
[
30
][
2
][
34
];
extern
short
*
ul_ref_sigs
[
30
][
2
][
34
];
...
...
openair1/PHY/NR_TRANSPORT/nr_transport_common_proto.h
View file @
cbd801b6
...
@@ -61,4 +61,5 @@ uint32_t nr_get_G(uint16_t nb_rb, uint16_t nb_symb_sch, uint8_t nb_re_dmrs, uint
...
@@ -61,4 +61,5 @@ uint32_t nr_get_G(uint16_t nb_rb, uint16_t nb_symb_sch, uint8_t nb_re_dmrs, uint
uint32_t
nr_get_E
(
uint32_t
G
,
uint8_t
C
,
uint8_t
Qm
,
uint8_t
Nl
,
uint8_t
r
);
uint32_t
nr_get_E
(
uint32_t
G
,
uint8_t
C
,
uint8_t
Qm
,
uint8_t
Nl
,
uint8_t
r
);
void
init_pucch2_luts
(
void
);
#endif
#endif
openair1/PHY/NR_TRANSPORT/pucch_rx.c
View file @
cbd801b6
...
@@ -263,7 +263,7 @@ void nr_decode_pucch0(PHY_VARS_gNB *gNB,
...
@@ -263,7 +263,7 @@ void nr_decode_pucch0(PHY_VARS_gNB *gNB,
}
}
#else
#else
int16_t
*
x_re
=
table_5_2_2_2_2_Re
[
u
],
*
x_im
=
table_5_2_2_2_2_Im
[
u
];
const
int16_t
*
x_re
=
table_5_2_2_2_2_Re
[
u
],
*
x_im
=
table_5_2_2_2_2_Im
[
u
];
int16_t
xr
[
24
]
__attribute__
((
aligned
(
32
)));
int16_t
xr
[
24
]
__attribute__
((
aligned
(
32
)));
int16_t
xrt
[
24
]
__attribute__
((
aligned
(
32
)));
int16_t
xrt
[
24
]
__attribute__
((
aligned
(
32
)));
int32_t
xrtmag
=
0
;
int32_t
xrtmag
=
0
;
...
...
openair1/PHY/NR_UE_TRANSPORT/pucch_nr.c
View file @
cbd801b6
...
@@ -38,6 +38,7 @@
...
@@ -38,6 +38,7 @@
#include "PHY/NR_UE_TRANSPORT/pucch_nr.h"
#include "PHY/NR_UE_TRANSPORT/pucch_nr.h"
#include "PHY/NR_UE_TRANSPORT/nr_transport_proto_ue.h"
#include "PHY/NR_UE_TRANSPORT/nr_transport_proto_ue.h"
#include "PHY/NR_TRANSPORT/nr_transport_common_proto.h"
#include "PHY/NR_TRANSPORT/nr_transport_common_proto.h"
#include <openair1/PHY/CODING/nrSmallBlock/nr_small_block_defs.h>
#include "common/utils/LOG/log.h"
#include "common/utils/LOG/log.h"
#include "common/utils/LOG/vcd_signal_dumper.h"
#include "common/utils/LOG/vcd_signal_dumper.h"
...
...
openair1/PHY/phy_extern.h
View file @
cbd801b6
...
@@ -38,7 +38,7 @@ extern unsigned int TX_DMA_BUFFER[4][NB_ANTENNAS_TX];
...
@@ -38,7 +38,7 @@ extern unsigned int TX_DMA_BUFFER[4][NB_ANTENNAS_TX];
extern
unsigned
int
DAQ_MBOX
;
extern
unsigned
int
DAQ_MBOX
;
extern
int
number_of_cards
;
extern
int
number_of_cards
;
extern
short
conjugate
[
8
],
conjugate2
[
8
];
extern
const
short
conjugate
[
8
],
conjugate2
[
8
];
extern
RAN_CONTEXT_t
RC
;
extern
RAN_CONTEXT_t
RC
;
...
@@ -73,8 +73,8 @@ extern int flag_LA;
...
@@ -73,8 +73,8 @@ extern int flag_LA;
extern
double
sinr_bler_map
[
MCS_COUNT
][
2
][
MCS_TABLE_LENGTH_MAX
];
extern
double
sinr_bler_map
[
MCS_COUNT
][
2
][
MCS_TABLE_LENGTH_MAX
];
extern
double
sinr_bler_map_up
[
MCS_COUNT
][
2
][
16
];
extern
double
sinr_bler_map_up
[
MCS_COUNT
][
2
][
16
];
extern
int
table_length
[
MCS_COUNT
];
extern
int
table_length
[
MCS_COUNT
];
extern
double
sinr_to_cqi
[
4
][
16
];
extern
const
double
sinr_to_cqi
[
4
][
16
];
extern
int
cqi_to_mcs
[
16
];
extern
const
int
cqi_to_mcs
[
16
];
//for MU-MIMO abstraction using MIESM
//for MU-MIMO abstraction using MIESM
//this 2D arrarays contains SINR, MI and RBIR in rows 1, 2, and 3 respectively
//this 2D arrarays contains SINR, MI and RBIR in rows 1, 2, and 3 respectively
...
@@ -82,23 +82,22 @@ extern double MI_map_4qam[3][162];
...
@@ -82,23 +82,22 @@ extern double MI_map_4qam[3][162];
extern
double
MI_map_16qam
[
3
][
197
];
extern
double
MI_map_16qam
[
3
][
197
];
extern
double
MI_map_64qam
[
3
][
227
];
extern
double
MI_map_64qam
[
3
][
227
];
extern
double
beta1_dlsch_MI
[
6
][
MCS_COUNT
];
extern
const
double
beta1_dlsch_MI
[
6
][
MCS_COUNT
];
extern
double
beta2_dlsch_MI
[
6
][
MCS_COUNT
];
extern
const
double
beta2_dlsch_MI
[
6
][
MCS_COUNT
];
extern
double
q_qpsk
[
8
];
extern
const
double
q_qpsk
[
8
];
extern
double
q_qam16
[
8
];
extern
const
double
q_qam16
[
8
];
extern
double
q_qam64
[
8
];
extern
const
double
q_qam64
[
8
];
extern
const
double
p_qpsk
[
8
];
extern
const
double
p_qam16
[
8
];
extern
const
double
p_qam64
[
8
];
extern
double
p_qpsk
[
8
];
extern
const
double
beta1_dlsch
[
6
][
MCS_COUNT
];
extern
double
p_qam16
[
8
];
extern
const
double
beta2_dlsch
[
6
][
MCS_COUNT
];
extern
double
p_qam64
[
8
];
extern
double
beta1_dlsch
[
6
][
MCS_COUNT
];
extern
const
char
NB_functions
[
7
][
20
];
extern
double
beta2_dlsch
[
6
][
MCS_COUNT
];
extern
const
char
NB_timing
[
2
][
20
];
extern
const
char
ru_if_types
[
MAX_RU_IF_TYPES
][
20
];
extern
char
NB_functions
[
7
][
20
];
extern
char
NB_timing
[
2
][
20
];
extern
char
ru_if_types
[
MAX_RU_IF_TYPES
][
20
];
extern
int16_t
unscrambling_lut
[
65536
*
16
];
extern
int16_t
unscrambling_lut
[
65536
*
16
];
extern
uint8_t
scrambling_lut
[
65536
*
16
];
extern
uint8_t
scrambling_lut
[
65536
*
16
];
...
...
openair1/PHY/phy_extern_nr_ue.h
View file @
cbd801b6
...
@@ -34,7 +34,7 @@ extern unsigned int TX_DMA_BUFFER[4][NB_ANTENNAS_TX];
...
@@ -34,7 +34,7 @@ extern unsigned int TX_DMA_BUFFER[4][NB_ANTENNAS_TX];
//#include "PHY/LTE_TRANSPORT/transport_extern.h"
//#include "PHY/LTE_TRANSPORT/transport_extern.h"
extern
short
conjugate
[
8
],
conjugate2
[
8
];
extern
const
short
conjugate
[
8
],
conjugate2
[
8
];
extern
int
number_of_cards
;
extern
int
number_of_cards
;
...
@@ -70,8 +70,8 @@ extern int flag_LA;
...
@@ -70,8 +70,8 @@ extern int flag_LA;
extern
double
sinr_bler_map
[
MCS_COUNT
][
2
][
MCS_TABLE_LENGTH_MAX
];
extern
double
sinr_bler_map
[
MCS_COUNT
][
2
][
MCS_TABLE_LENGTH_MAX
];
extern
double
sinr_bler_map_up
[
MCS_COUNT
][
2
][
16
];
extern
double
sinr_bler_map_up
[
MCS_COUNT
][
2
][
16
];
extern
int
table_length
[
MCS_COUNT
];
extern
int
table_length
[
MCS_COUNT
];
extern
double
sinr_to_cqi
[
4
][
16
];
extern
const
double
sinr_to_cqi
[
4
][
16
];
extern
int
cqi_to_mcs
[
16
];
extern
const
int
cqi_to_mcs
[
16
];
//for MU-MIMO abstraction using MIESM
//for MU-MIMO abstraction using MIESM
//this 2D arrarays contains SINR, MI and RBIR in rows 1, 2, and 3 respectively
//this 2D arrarays contains SINR, MI and RBIR in rows 1, 2, and 3 respectively
...
@@ -79,23 +79,19 @@ extern double MI_map_4qam[3][162];
...
@@ -79,23 +79,19 @@ extern double MI_map_4qam[3][162];
extern
double
MI_map_16qam
[
3
][
197
];
extern
double
MI_map_16qam
[
3
][
197
];
extern
double
MI_map_64qam
[
3
][
227
];
extern
double
MI_map_64qam
[
3
][
227
];
extern
double
beta1_dlsch_MI
[
6
][
MCS_COUNT
];
extern
const
double
beta1_dlsch_MI
[
6
][
MCS_COUNT
];
extern
double
beta2_dlsch_MI
[
6
][
MCS_COUNT
];
extern
const
double
beta2_dlsch_MI
[
6
][
MCS_COUNT
];
extern
double
q_qpsk
[
8
];
extern
const
double
q_qpsk
[
8
];
extern
double
q_qam16
[
8
];
extern
const
double
q_qam16
[
8
];
extern
double
q_qam64
[
8
];
extern
const
double
q_qam64
[
8
];
extern
double
p_qpsk
[
8
];
extern
const
double
beta1_dlsch
[
6
][
MCS_COUNT
];
extern
double
p_qam16
[
8
];
extern
const
double
beta2_dlsch
[
6
][
MCS_COUNT
];
extern
double
p_qam64
[
8
];
extern
double
beta1_dlsch
[
6
][
MCS_COUNT
];
extern
const
char
NB_functions
[
7
][
20
];
extern
double
beta2_dlsch
[
6
][
MCS_COUNT
];
extern
const
char
NB_timing
[
2
][
20
];
extern
const
char
ru_if_types
[
MAX_RU_IF_TYPES
][
20
];
extern
char
NB_functions
[
7
][
20
];
extern
char
NB_timing
[
2
][
20
];
extern
char
ru_if_types
[
MAX_RU_IF_TYPES
][
20
];
extern
int16_t
unscrambling_lut
[
65536
*
16
];
extern
int16_t
unscrambling_lut
[
65536
*
16
];
extern
uint8_t
scrambling_lut
[
65536
*
16
];
extern
uint8_t
scrambling_lut
[
65536
*
16
];
...
...
openair1/PHY/phy_extern_ue.h
View file @
cbd801b6
...
@@ -36,9 +36,6 @@ extern unsigned int TX_DMA_BUFFER[4][NB_ANTENNAS_TX];
...
@@ -36,9 +36,6 @@ extern unsigned int TX_DMA_BUFFER[4][NB_ANTENNAS_TX];
extern
int
number_of_cards
;
extern
int
number_of_cards
;
extern
short
conjugate
[
8
],
conjugate2
[
8
];
extern
PHY_VARS_UE
***
PHY_vars_UE_g
;
extern
PHY_VARS_UE
***
PHY_vars_UE_g
;
extern
short
primary_synch0
[
144
];
extern
short
primary_synch0
[
144
];
...
@@ -70,8 +67,8 @@ extern int flag_LA;
...
@@ -70,8 +67,8 @@ extern int flag_LA;
extern
double
sinr_bler_map
[
MCS_COUNT
][
2
][
MCS_TABLE_LENGTH_MAX
];
extern
double
sinr_bler_map
[
MCS_COUNT
][
2
][
MCS_TABLE_LENGTH_MAX
];
extern
double
sinr_bler_map_up
[
MCS_COUNT
][
2
][
16
];
extern
double
sinr_bler_map_up
[
MCS_COUNT
][
2
][
16
];
extern
int
table_length
[
MCS_COUNT
];
extern
int
table_length
[
MCS_COUNT
];
extern
double
sinr_to_cqi
[
4
][
16
];
extern
const
double
sinr_to_cqi
[
4
][
16
];
extern
int
cqi_to_mcs
[
16
];
extern
const
int
cqi_to_mcs
[
16
];
//for MU-MIMO abstraction using MIESM
//for MU-MIMO abstraction using MIESM
//this 2D arrarays contains SINR, MI and RBIR in rows 1, 2, and 3 respectively
//this 2D arrarays contains SINR, MI and RBIR in rows 1, 2, and 3 respectively
...
@@ -79,23 +76,23 @@ extern double MI_map_4qam[3][162];
...
@@ -79,23 +76,23 @@ extern double MI_map_4qam[3][162];
extern
double
MI_map_16qam
[
3
][
197
];
extern
double
MI_map_16qam
[
3
][
197
];
extern
double
MI_map_64qam
[
3
][
227
];
extern
double
MI_map_64qam
[
3
][
227
];
extern
double
beta1_dlsch_MI
[
6
][
MCS_COUNT
];
extern
const
double
beta1_dlsch_MI
[
6
][
MCS_COUNT
];
extern
double
beta2_dlsch_MI
[
6
][
MCS_COUNT
];
extern
const
double
beta2_dlsch_MI
[
6
][
MCS_COUNT
];
extern
double
q_qpsk
[
8
];
extern
const
double
q_qpsk
[
8
];
extern
double
q_qam16
[
8
];
extern
const
double
q_qam16
[
8
];
extern
double
q_qam64
[
8
];
extern
const
double
q_qam64
[
8
];
extern
double
p_qpsk
[
8
];
extern
const
double
p_qpsk
[
8
];
extern
double
p_qam16
[
8
];
extern
const
double
p_qam16
[
8
];
extern
double
p_qam64
[
8
];
extern
const
double
p_qam64
[
8
];
extern
double
beta1_dlsch
[
6
][
MCS_COUNT
];
extern
const
double
beta1_dlsch
[
6
][
MCS_COUNT
];
extern
double
beta2_dlsch
[
6
][
MCS_COUNT
];
extern
const
double
beta2_dlsch
[
6
][
MCS_COUNT
];
extern
char
NB_functions
[
7
][
20
];
extern
c
onst
c
har
NB_functions
[
7
][
20
];
extern
char
NB_timing
[
2
][
20
];
extern
c
onst
c
har
NB_timing
[
2
][
20
];
extern
char
ru_if_types
[
MAX_RU_IF_TYPES
][
20
];
extern
c
onst
c
har
ru_if_types
[
MAX_RU_IF_TYPES
][
20
];
extern
int16_t
unscrambling_lut
[
65536
*
16
];
extern
int16_t
unscrambling_lut
[
65536
*
16
];
extern
uint8_t
scrambling_lut
[
65536
*
16
];
extern
uint8_t
scrambling_lut
[
65536
*
16
];
...
...
openair1/PHY/phy_vars.h
View file @
cbd801b6
...
@@ -50,8 +50,8 @@ unsigned short rev[2048],rev_times4[8192],rev_half[1024];
...
@@ -50,8 +50,8 @@ unsigned short rev[2048],rev_times4[8192],rev_half[1024];
unsigned
short
rev256
[
256
],
rev512
[
512
],
rev1024
[
1024
],
rev4096
[
4096
],
rev2048
[
2048
],
rev8192
[
8192
];
unsigned
short
rev256
[
256
],
rev512
[
512
],
rev1024
[
1024
],
rev4096
[
4096
],
rev2048
[
2048
],
rev8192
[
8192
];
short
conjugate
[
8
]
__attribute__
((
aligned
(
16
)))
=
{
-
1
,
1
,
-
1
,
1
,
-
1
,
1
,
-
1
,
1
};
const
short
conjugate
[
8
]
__attribute__
((
aligned
(
16
)))
=
{
-
1
,
1
,
-
1
,
1
,
-
1
,
1
,
-
1
,
1
};
short
conjugate2
[
8
]
__attribute__
((
aligned
(
16
)))
=
{
1
,
-
1
,
1
,
-
1
,
1
,
-
1
,
1
,
-
1
};
const
short
conjugate2
[
8
]
__attribute__
((
aligned
(
16
)))
=
{
1
,
-
1
,
1
,
-
1
,
1
,
-
1
,
1
,
-
1
};
#include "SIMULATION/ETH_TRANSPORT/vars.h"
#include "SIMULATION/ETH_TRANSPORT/vars.h"
...
@@ -59,10 +59,10 @@ short conjugate2[8]__attribute__((aligned(16))) = {1,-1,1,-1,1,-1,1,-1};
...
@@ -59,10 +59,10 @@ short conjugate2[8]__attribute__((aligned(16))) = {1,-1,1,-1,1,-1,1,-1};
unsigned
char
NB_RU
=
0
;
unsigned
char
NB_RU
=
0
;
#ifndef OPENAIR2
#ifndef OPENAIR2
unsigned
char
NB_eNB_INST
=
0
;
//
unsigned char NB_eNB_INST=0;
uint16_t
NB_UE_INST
=
0
;
//
uint16_t NB_UE_INST=0;
unsigned
char
NB_RN_INST
=
0
;
//
unsigned char NB_RN_INST=0;
unsigned
char
NB_INST
=
0
;
//
unsigned char NB_INST=0;
#endif
#endif
int
number_of_cards
;
int
number_of_cards
;
...
@@ -84,29 +84,29 @@ double MI_map_16qam[3][197];
...
@@ -84,29 +84,29 @@ double MI_map_16qam[3][197];
double
MI_map_64qam
[
3
][
227
];
double
MI_map_64qam
[
3
][
227
];
// here the first index is for transmission mode 1, 2, 5 and 6 whereas the second index is for the 16 sinr vaues corresponding to 16 CQIs
// here the first index is for transmission mode 1, 2, 5 and 6 whereas the second index is for the 16 sinr vaues corresponding to 16 CQIs
double
sinr_to_cqi
[
4
][
16
]
=
{
{
-
2
.
5051
,
-
2
.
5051
,
-
1
.
7451
,
-
0
.
3655
,
1
.
0812
,
2
.
4012
,
3
.
6849
,
6
.
6754
,
8
.
3885
,
8
.
7970
,
12
.
0437
,
14
.
4709
,
15
.
7281
,
17
.
2424
,
17
.
2424
,
17
.
2424
},
const
double
sinr_to_cqi
[
4
][
16
]
=
{
{
-
2
.
5051
,
-
2
.
5051
,
-
1
.
7451
,
-
0
.
3655
,
1
.
0812
,
2
.
4012
,
3
.
6849
,
6
.
6754
,
8
.
3885
,
8
.
7970
,
12
.
0437
,
14
.
4709
,
15
.
7281
,
17
.
2424
,
17
.
2424
,
17
.
2424
},
{
-
2
.
2360
,
-
2
.
2360
,
-
1
.
3919
,
-
0
.
021
8
,
1
.
5319
,
2
.
9574
,
4
.
3234
,
6
.
3387
,
8
.
9879
,
9
.
5096
,
12
.
6609
,
14
.
0116
,
16
.
4984
,
18
.
1572
,
18
.
1572
,
18
.
1572
},
{
-
2
.
2360
,
-
2
.
2360
,
-
1
.
3919
,
-
0
.
021
8
,
1
.
5319
,
2
.
9574
,
4
.
3234
,
6
.
3387
,
8
.
9879
,
9
.
5096
,
12
.
6609
,
14
.
0116
,
16
.
4984
,
18
.
1572
,
18
.
1572
,
18
.
1572
},
{
-
1
,
-
1
.
0000
,
-
0
.
4198
,
-
0
.
0140
,
1
.
0362
,
2
.
3520
,
3
.
5793
,
6
.
1136
,
8
.
4836
,
9
.
0858
,
12
.
4723
,
13
.
9128
,
16
.
2054
,
17
.
7392
,
17
.
7392
,
17
.
7392
},
{
-
1
,
-
1
.
0000
,
-
0
.
4198
,
-
0
.
0140
,
1
.
0362
,
2
.
3520
,
3
.
5793
,
6
.
1136
,
8
.
4836
,
9
.
0858
,
12
.
4723
,
13
.
9128
,
16
.
2054
,
17
.
7392
,
17
.
7392
,
17
.
7392
},
{
-
4
.
1057
,
-
4
.
1057
,
-
3
.
3768
,
-
2
.
2916
,
-
1
.
1392
,
0
.
1236
,
1
.
2849
,
3
.
1933
,
5
.
9298
,
6
.
4052
,
9
.
6245
,
10
.
9414
,
13
.
5166
,
14
.
9545
,
14
.
9545
,
14
.
9545
}
{
-
4
.
1057
,
-
4
.
1057
,
-
3
.
3768
,
-
2
.
2916
,
-
1
.
1392
,
0
.
1236
,
1
.
2849
,
3
.
1933
,
5
.
9298
,
6
.
4052
,
9
.
6245
,
10
.
9414
,
13
.
5166
,
14
.
9545
,
14
.
9545
,
14
.
9545
}
};
};
//int cqi_to_mcs[16]={0, 0, 1, 3, 5, 7, 9, 13, 15, 16, 20, 23, 25, 27, 27, 27};
//int cqi_to_mcs[16]={0, 0, 1, 3, 5, 7, 9, 13, 15, 16, 20, 23, 25, 27, 27, 27};
int
cqi_to_mcs
[
16
]
=
{
0
,
0
,
1
,
2
,
4
,
6
,
8
,
11
,
13
,
16
,
18
,
20
,
23
,
25
,
27
,
28
};
const
int
cqi_to_mcs
[
16
]
=
{
0
,
0
,
1
,
2
,
4
,
6
,
8
,
11
,
13
,
16
,
18
,
20
,
23
,
25
,
27
,
28
};
//for SNR to MI conversion 7 th order Polynomial coeff
//for SNR to MI conversion 7 th order Polynomial coeff
double
q_qam16
[
8
]
=
{
3.21151853033897e-10
,
5.55435952230651e-09
,
-
2.30760065362117e-07
,
-
6.25587743817859e-06
,
4.62251036452795e-06
,
0
.
00224150
813158937
,
0
.
03
93723140344367
,
0
.
245486379182639
};
const
double
q_qam16
[
8
]
=
{
3.21151853033897e-10
,
5.55435952230651e-09
,
-
2.30760065362117e-07
,
-
6.25587743817859e-06
,
4.62251036452795e-06
,
0
.
00224150
813158937
,
0
.
03
93723140344367
,
0
.
245486379182639
};
double
q_qpsk
[
8
]
=
{
1.94491167814437e-09
,
8.40494123817774e-08
,
4.75527131198034e-07
,
-
2.48946285301621e-05
,
-
0
.
00034761401615
8364
,
0
.
0020
9252225437100
,
0
.
0742
986115462510
,
0
.
488297879889425
};
const
double
q_qpsk
[
8
]
=
{
1.94491167814437e-09
,
8.40494123817774e-08
,
4.75527131198034e-07
,
-
2.48946285301621e-05
,
-
0
.
00034761401615
8364
,
0
.
0020
9252225437100
,
0
.
0742
986115462510
,
0
.
488297879889425
};
double
q_qam64
[
8
]
=
{
2.25934026232206e-11
,
-
1.45992206328306e-10
,
-
3.70861183071900e-08
,
-
1.22206071019319e-06
,
6.49115500399637e-06
,
0
.
0012
9828997837433
,
0
.
025
9669554914859
,
0
.
166602901214898
};
const
double
q_qam64
[
8
]
=
{
2.25934026232206e-11
,
-
1.45992206328306e-10
,
-
3.70861183071900e-08
,
-
1.22206071019319e-06
,
6.49115500399637e-06
,
0
.
0012
9828997837433
,
0
.
025
9669554914859
,
0
.
166602901214898
};
//for MI to SNR conversion 7 th order Polynomial coeff
//for MI to SNR conversion 7 th order Polynomial coeff
double
p_qpsk
[
8
]
=
{
5982
.
42405670359
,
-
21568
.
1135917693
,
31293
.
9987036905
,
-
23394
.
6795043871
,
9608
.
34750585489
,
-
2158
.
15802349899
,
267
.
731968719036
,
-
20
.
6145324295965
};
const
double
p_qpsk
[
8
]
=
{
5982
.
42405670359
,
-
21568
.
1135917693
,
31293
.
9987036905
,
-
23394
.
6795043871
,
9608
.
34750585489
,
-
2158
.
15802349899
,
267
.
731968719036
,
-
20
.
6145324295965
};
double
p_qam16
[
8
]
=
{
7862
.
12690694170
,
-
28510
.
3207048338
,
41542
.
2150287122
,
-
31088
.
3036957379
,
12690
.
1982361016
,
-
2785
.
66604739984
,
326
.
595462489375
,
-
18
.
9911849872089
};
const
double
p_qam16
[
8
]
=
{
7862
.
12690694170
,
-
28510
.
3207048338
,
41542
.
2150287122
,
-
31088
.
3036957379
,
12690
.
1982361016
,
-
2785
.
66604739984
,
326
.
595462489375
,
-
18
.
9911849872089
};
double
p_qam64
[
8
]
=
{
8832
.
57933013696
,
-
32119
.
1802555952
,
46914
.
2578990397
,
-
35163
.
8150557183
,
14343
.
7419388853
,
-
3126
.
61025510092
,
360
.
954930562237
,
-
18
.
035
8548533343
};
const
double
p_qam64
[
8
]
=
{
8832
.
57933013696
,
-
32119
.
1802555952
,
46914
.
2578990397
,
-
35163
.
8150557183
,
14343
.
7419388853
,
-
3126
.
61025510092
,
360
.
954930562237
,
-
18
.
035
8548533343
};
// ideal CE MIESM
// ideal CE MIESM
double
beta1_dlsch_MI
[
6
][
MCS_COUNT
]
=
{
{
1
.
1188
,
0
.
3720
,
0
.
3755
,
0
.
9453
,
0
.
5799
,
0
.
5256
,
0
.
5485
,
0
.
5340
,
0
.
5165
,
0
.
5300
,
0
.
6594
,
0
.
5962
,
0
.
4884
,
0
.
4927
,
0
.
3687
,
0
.
4614
,
0
.
4081
,
0
.
2639
,
0
.
2935
,
0
.
2520
,
0
.
3709
,
0
.
2906
,
0
.
2612
,
0
.
2390
},
{
0
.
7138
,
0
.
5533
,
0
.
5533
,
0
.
4828
,
0
.
4998
,
0
.
4843
,
0
.
4942
,
0
.
5323
,
0
.
5142
,
0
.
4756
,
0
.
5792
,
0
.
4167
,
0
.
4445
,
0
.
3942
,
0
.
3789
,
0
.
2756
,
0
.
4456
,
0
.
1650
,
0
.
2254
,
0
.
2353
,
0
.
2097
,
0
.
2517
,
0
.
3242
,
1
},
{
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
},
{
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
},{
1
.
808065416202085
,
1
.
754544945430673
,
1
.
902272019362616
,
1
.
790054645392961
,
1
.
563204092967629
,
1
.
585258289348813
,
1
.
579349443720310
,
1
.
570650121437345
,
1
.
545055626608596
,
1
.
362229442426877
,
1
.
85
,
1
.
79
,
1
.
65
,
1
.
54
,
1
.
46
,
1
.
39
,
1
.
33
,
1
,
1
,
1
,
1
,
1
,
1
,
1
},{
0
.
7146
,
0
.
4789
,
0
.
5392
,
0
.
5556
,
0
.
4975
,
0
.
4847
,
0
.
4691
,
0
.
5261
,
0
.
5278
,
0
.
4962
,
0
.
4468
,
0
.
4113
,
0
.
4622
,
0
.
4609
,
0
.
3946
,
0
.
3991
,
0
.
3532
,
0
.
2439
,
0
.
1898
,
0
.
2929
,
0
.
2712
,
0
.
3367
,
0
.
3591
,
0
.
2571
}};
const
double
beta1_dlsch_MI
[
6
][
MCS_COUNT
]
=
{
{
1
.
1188
,
0
.
3720
,
0
.
3755
,
0
.
9453
,
0
.
5799
,
0
.
5256
,
0
.
5485
,
0
.
5340
,
0
.
5165
,
0
.
5300
,
0
.
6594
,
0
.
5962
,
0
.
4884
,
0
.
4927
,
0
.
3687
,
0
.
4614
,
0
.
4081
,
0
.
2639
,
0
.
2935
,
0
.
2520
,
0
.
3709
,
0
.
2906
,
0
.
2612
,
0
.
2390
},
{
0
.
7138
,
0
.
5533
,
0
.
5533
,
0
.
4828
,
0
.
4998
,
0
.
4843
,
0
.
4942
,
0
.
5323
,
0
.
5142
,
0
.
4756
,
0
.
5792
,
0
.
4167
,
0
.
4445
,
0
.
3942
,
0
.
3789
,
0
.
2756
,
0
.
4456
,
0
.
1650
,
0
.
2254
,
0
.
2353
,
0
.
2097
,
0
.
2517
,
0
.
3242
,
1
},
{
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
},
{
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
},{
1
.
808065416202085
,
1
.
754544945430673
,
1
.
902272019362616
,
1
.
790054645392961
,
1
.
563204092967629
,
1
.
585258289348813
,
1
.
579349443720310
,
1
.
570650121437345
,
1
.
545055626608596
,
1
.
362229442426877
,
1
.
85
,
1
.
79
,
1
.
65
,
1
.
54
,
1
.
46
,
1
.
39
,
1
.
33
,
1
,
1
,
1
,
1
,
1
,
1
,
1
},{
0
.
7146
,
0
.
4789
,
0
.
5392
,
0
.
5556
,
0
.
4975
,
0
.
4847
,
0
.
4691
,
0
.
5261
,
0
.
5278
,
0
.
4962
,
0
.
4468
,
0
.
4113
,
0
.
4622
,
0
.
4609
,
0
.
3946
,
0
.
3991
,
0
.
3532
,
0
.
2439
,
0
.
1898
,
0
.
2929
,
0
.
2712
,
0
.
3367
,
0
.
3591
,
0
.
2571
}};
double
beta2_dlsch_MI
[
6
][
MCS_COUNT
]
=
{
{
1
.
1293
,
0
.
3707
,
0
.
3722
,
0
.
9310
,
0
.
5808
,
0
.
5265
,
0
.
5404
,
0
.
5279
,
0
.
5210
,
0
.
5226
,
0
.
6438
,
0
.
5827
,
0
.
4804
,
0
.
4830
,
0
.
3638
,
0
.
4506
,
0
.
4107
,
0
.
2547
,
0
.
2797
,
0
.
2413
,
0
.
3351
,
0
.
2750
,
0
.
2568
,
0
.
2273
},
{
0
.
7028
,
0
.
5503
,
0
.
5503
,
0
.
4815
,
0
.
5006
,
0
.
4764
,
0
.
4810
,
0
.
5124
,
0
.
4964
,
0
.
4485
,
0
.
5497
,
0
.
3971
,
0
.
4239
,
0
.
3701
,
0
.
3494
,
0
.
2630
,
0
.
4053
,
0
.
1505
,
0
.
2001
,
0
.
2024
,
0
.
1788
,
0
.
2124
,
0
.
2668
,
1
},
{
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
},
{
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
},{
1
.
07
9518113138858
,
1
.
105622953570353
,
1
.
03133744
9900606
,
1
.
07334203266
8810
,
1
.
242636589110353
,
1
.
255054927783647
,
1
.
291463834317768
,
1
.
317048698347491
,
1
.
354485054187984
,
0
.
338534029291017
,
1
.
85
,
1
.
79
,
1
.
65
,
1
.
54
,
1
.
46
,
1
.
39
,
1
.
33
,
1
,
1
,
1
,
1
,
1
,
1
,
1
},{
0
.
6980
,
0
.
4694
,
0
.
5379
,
0
.
5483
,
0
.
4982
,
0
.
4737
,
0
.
4611
,
0
.
5051
,
0
.
5020
,
0
.
4672
,
0
.
4357
,
0
.
3957
,
0
.
4389
,
0
.
4344
,
0
.
3645
,
0
.
3661
,
0
.
3301
,
0
.
2179
,
0
.
1730
,
0
.
2536
,
0
.
2389
,
0
.
2884
,
0
.
2936
,
0
.
2226
}};
const
double
beta2_dlsch_MI
[
6
][
MCS_COUNT
]
=
{
{
1
.
1293
,
0
.
3707
,
0
.
3722
,
0
.
9310
,
0
.
5808
,
0
.
5265
,
0
.
5404
,
0
.
5279
,
0
.
5210
,
0
.
5226
,
0
.
6438
,
0
.
5827
,
0
.
4804
,
0
.
4830
,
0
.
3638
,
0
.
4506
,
0
.
4107
,
0
.
2547
,
0
.
2797
,
0
.
2413
,
0
.
3351
,
0
.
2750
,
0
.
2568
,
0
.
2273
},
{
0
.
7028
,
0
.
5503
,
0
.
5503
,
0
.
4815
,
0
.
5006
,
0
.
4764
,
0
.
4810
,
0
.
5124
,
0
.
4964
,
0
.
4485
,
0
.
5497
,
0
.
3971
,
0
.
4239
,
0
.
3701
,
0
.
3494
,
0
.
2630
,
0
.
4053
,
0
.
1505
,
0
.
2001
,
0
.
2024
,
0
.
1788
,
0
.
2124
,
0
.
2668
,
1
},
{
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
},
{
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
},{
1
.
07
9518113138858
,
1
.
105622953570353
,
1
.
03133744
9900606
,
1
.
07334203266
8810
,
1
.
242636589110353
,
1
.
255054927783647
,
1
.
291463834317768
,
1
.
317048698347491
,
1
.
354485054187984
,
0
.
338534029291017
,
1
.
85
,
1
.
79
,
1
.
65
,
1
.
54
,
1
.
46
,
1
.
39
,
1
.
33
,
1
,
1
,
1
,
1
,
1
,
1
,
1
},{
0
.
6980
,
0
.
4694
,
0
.
5379
,
0
.
5483
,
0
.
4982
,
0
.
4737
,
0
.
4611
,
0
.
5051
,
0
.
5020
,
0
.
4672
,
0
.
4357
,
0
.
3957
,
0
.
4389
,
0
.
4344
,
0
.
3645
,
0
.
3661
,
0
.
3301
,
0
.
2179
,
0
.
1730
,
0
.
2536
,
0
.
2389
,
0
.
2884
,
0
.
2936
,
0
.
2226
}};
//real CE MIESM
//real CE MIESM
/*
/*
...
@@ -116,8 +116,8 @@ double beta2_dlsch_MI[6][MCS_COUNT] = { {1.36875, 0.59304, 0.53870, 0.98239, 0.8
...
@@ -116,8 +116,8 @@ double beta2_dlsch_MI[6][MCS_COUNT] = { {1.36875, 0.59304, 0.53870, 0.98239, 0.8
//ideal channel estimation values
//ideal channel estimation values
//double beta1_dlsch[6][MCS_COUNT] = { {2.3814, 0.4956, 0.5273, 1.1708, 0.8014, 0.7889, 0.8111, 0.8139, 0.8124, 0.8479, 1.9280, 1.9664, 2.3857, 2.5147, 2.4511, 3.0158, 2.8643, 5.3013, 5.8594, 6.5372, 7.8073, 7.8030, 7.5295, 7.1320}, {0.5146, 0.5549, 0.7405, 0.6913, 0.7349, 0.7000, 0.7539, 0.7955, 0.8074, 0.7760, 1.8150, 1.6561, 1.9280, 2.3563, 2.6699, 2.3086, 3.1601, 4.5316, 5.2870, 6.0983, 6.5635, 7.7024, 9.9592, 6.6173}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1,1,1,1,1,1}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1,1,1,1,1}, {1.79358, 1.17908, 2.02600, 1.72040, 1.58618, 1.59039, 1.68111, 1.67062, 1.64911, 1.33274, 4.87800, 3.58797, 3.72338, 5.35700, 2.81752, 1.93472, 2.23259, 1,1,1,1,1,1,1}, {0.4445, 0.5918, 0.7118, 0.7115, 0.7284, 0.7202, 0.7117, 0.8111, 0.8239, 0.7907, 1.8456, 1.8144, 2.3830, 2.6634, 2.6129, 2.8127, 2.7372, 4.9424, 4.8763, 6.8413, 7.1493, 9.4180, 10.1230, 8.9613}};
//double beta1_dlsch[6][MCS_COUNT] = { {2.3814, 0.4956, 0.5273, 1.1708, 0.8014, 0.7889, 0.8111, 0.8139, 0.8124, 0.8479, 1.9280, 1.9664, 2.3857, 2.5147, 2.4511, 3.0158, 2.8643, 5.3013, 5.8594, 6.5372, 7.8073, 7.8030, 7.5295, 7.1320}, {0.5146, 0.5549, 0.7405, 0.6913, 0.7349, 0.7000, 0.7539, 0.7955, 0.8074, 0.7760, 1.8150, 1.6561, 1.9280, 2.3563, 2.6699, 2.3086, 3.1601, 4.5316, 5.2870, 6.0983, 6.5635, 7.7024, 9.9592, 6.6173}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1,1,1,1,1,1}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1,1,1,1,1}, {1.79358, 1.17908, 2.02600, 1.72040, 1.58618, 1.59039, 1.68111, 1.67062, 1.64911, 1.33274, 4.87800, 3.58797, 3.72338, 5.35700, 2.81752, 1.93472, 2.23259, 1,1,1,1,1,1,1}, {0.4445, 0.5918, 0.7118, 0.7115, 0.7284, 0.7202, 0.7117, 0.8111, 0.8239, 0.7907, 1.8456, 1.8144, 2.3830, 2.6634, 2.6129, 2.8127, 2.7372, 4.9424, 4.8763, 6.8413, 7.1493, 9.4180, 10.1230, 8.9613}};
//double beta2_dlsch[6][MCS_COUNT] = { {2.3639, 0.4952, 0.5207, 1.1572, 0.8026, 0.7864, 0.7996, 0.8034, 0.8200, 0.8367, 1.8701, 1.9212, 2.2947, 2.4472, 2.4091, 2.9479, 2.8973, 5.0591, 5.5134, 6.1483, 7.2166, 7.5177, 7.5704, 7.2248}, {0.5113, 0.5600, 0.7359, 0.6860, 0.7344, 0.6902, 0.7315, 0.7660, 0.7817, 0.7315, 1.7268, 1.5912, 1.8519, 2.2115, 2.4580, 2.1879, 2.9015, 4.1543, 4.6986, 5.3193, 5.6319, 6.5640, 8.2421, 5.6393}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1,1,1,1,1,1}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1,1,1,1,1}, {0.79479, 0.52872, 0.90005, 0.77170, 0.73220, 0.72060, 0.75433, 0.75451, 0.75989, 0.67655, 1.68525, 1.31100, 1.46573, 1.99843, 1.57293, 1.62852, 2.10636, 1,1,1,1,1,1,1}, {0.4398, 0.5823, 0.7094, 0.7043, 0.7282, 0.7041, 0.6979, 0.7762, 0.7871, 0.7469, 1.7752, 1.7443, 2.2266, 2.4767, 2.4146, 2.6040, 2.5708, 4.4488, 4.4944, 5.9630, 6.3740, 8.1097, 8.4210, 7.8027}};
//double beta2_dlsch[6][MCS_COUNT] = { {2.3639, 0.4952, 0.5207, 1.1572, 0.8026, 0.7864, 0.7996, 0.8034, 0.8200, 0.8367, 1.8701, 1.9212, 2.2947, 2.4472, 2.4091, 2.9479, 2.8973, 5.0591, 5.5134, 6.1483, 7.2166, 7.5177, 7.5704, 7.2248}, {0.5113, 0.5600, 0.7359, 0.6860, 0.7344, 0.6902, 0.7315, 0.7660, 0.7817, 0.7315, 1.7268, 1.5912, 1.8519, 2.2115, 2.4580, 2.1879, 2.9015, 4.1543, 4.6986, 5.3193, 5.6319, 6.5640, 8.2421, 5.6393}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1,1,1,1,1,1}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1,1,1,1,1}, {0.79479, 0.52872, 0.90005, 0.77170, 0.73220, 0.72060, 0.75433, 0.75451, 0.75989, 0.67655, 1.68525, 1.31100, 1.46573, 1.99843, 1.57293, 1.62852, 2.10636, 1,1,1,1,1,1,1}, {0.4398, 0.5823, 0.7094, 0.7043, 0.7282, 0.7041, 0.6979, 0.7762, 0.7871, 0.7469, 1.7752, 1.7443, 2.2266, 2.4767, 2.4146, 2.6040, 2.5708, 4.4488, 4.4944, 5.9630, 6.3740, 8.1097, 8.4210, 7.8027}};
double
beta1_dlsch
[
6
][
MCS_COUNT
]
=
{
{
1
.
199175
,
1
.
085656
,
0
.
983872
,
0
.
843789
,
0
.
816093
,
0
.
853078
,
0
.
899236
,
0
.
919665
,
0
.
888673
,
0
.
924181
,
0
.
814176
,
0
.
794108
,
0
.
770653
,
0
.
826266
,
0
.
982043
,
0
.
979621
,
0
.
985176
,
0
.
901741
,
0
.
870311
,
0
.
911303
,
0
.
898923
,
1
.
00335
9
,
0
.
988535
,
1
.
03063
9
,
1
.
151038
,
1
.
116939
,
1
.
214118
,
1
.
219148
},
{
0
.
5146
,
0
.
5549
,
0
.
7405
,
0
.
6913
,
0
.
7349
,
0
.
7000
,
0
.
7539
,
0
.
7955
,
0
.
8074
,
0
.
7760
,
1
.
8150
,
1
.
6561
,
1
.
9280
,
2
.
3563
,
2
.
6699
,
2
.
3086
,
3
.
1601
,
4
.
5316
,
5
.
2870
,
6
.
0983
,
6
.
5635
,
7
.
7024
,
9
.
9592
,
6
.
6173
},
{
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
},
{
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
},
{
1
.
79358
,
1
.
17908
,
2
.
02600
,
1
.
72040
,
1
.
58618
,
1
.
59039
,
1
.
68111
,
1
.
67062
,
1
.
64911
,
1
.
33274
,
4
.
87800
,
3
.
58797
,
3
.
72338
,
5
.
35700
,
2
.
81752
,
1
.
93472
,
2
.
23259
,
1
,
1
,
1
,
1
,
1
,
1
,
1
},
{
0
.
4445
,
0
.
5918
,
0
.
7118
,
0
.
7115
,
0
.
7284
,
0
.
7202
,
0
.
7117
,
0
.
8111
,
0
.
8239
,
0
.
7907
,
1
.
8456
,
1
.
8144
,
2
.
3830
,
2
.
6634
,
2
.
6129
,
2
.
8127
,
2
.
7372
,
4
.
9424
,
4
.
8763
,
6
.
8413
,
7
.
1493
,
9
.
4180
,
10
.
1230
,
8
.
9613
}};
const
double
beta1_dlsch
[
6
][
MCS_COUNT
]
=
{
{
1
.
199175
,
1
.
085656
,
0
.
983872
,
0
.
843789
,
0
.
816093
,
0
.
853078
,
0
.
899236
,
0
.
919665
,
0
.
888673
,
0
.
924181
,
0
.
814176
,
0
.
794108
,
0
.
770653
,
0
.
826266
,
0
.
982043
,
0
.
979621
,
0
.
985176
,
0
.
901741
,
0
.
870311
,
0
.
911303
,
0
.
898923
,
1
.
00335
9
,
0
.
988535
,
1
.
03063
9
,
1
.
151038
,
1
.
116939
,
1
.
214118
,
1
.
219148
},
{
0
.
5146
,
0
.
5549
,
0
.
7405
,
0
.
6913
,
0
.
7349
,
0
.
7000
,
0
.
7539
,
0
.
7955
,
0
.
8074
,
0
.
7760
,
1
.
8150
,
1
.
6561
,
1
.
9280
,
2
.
3563
,
2
.
6699
,
2
.
3086
,
3
.
1601
,
4
.
5316
,
5
.
2870
,
6
.
0983
,
6
.
5635
,
7
.
7024
,
9
.
9592
,
6
.
6173
},
{
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
},
{
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
},
{
1
.
79358
,
1
.
17908
,
2
.
02600
,
1
.
72040
,
1
.
58618
,
1
.
59039
,
1
.
68111
,
1
.
67062
,
1
.
64911
,
1
.
33274
,
4
.
87800
,
3
.
58797
,
3
.
72338
,
5
.
35700
,
2
.
81752
,
1
.
93472
,
2
.
23259
,
1
,
1
,
1
,
1
,
1
,
1
,
1
},
{
0
.
4445
,
0
.
5918
,
0
.
7118
,
0
.
7115
,
0
.
7284
,
0
.
7202
,
0
.
7117
,
0
.
8111
,
0
.
8239
,
0
.
7907
,
1
.
8456
,
1
.
8144
,
2
.
3830
,
2
.
6634
,
2
.
6129
,
2
.
8127
,
2
.
7372
,
4
.
9424
,
4
.
8763
,
6
.
8413
,
7
.
1493
,
9
.
4180
,
10
.
1230
,
8
.
9613
}};
double
beta2_dlsch
[
6
][
MCS_COUNT
]
=
{
{
0
.
534622
,
0
.
596561
,
0
.
500838
,
0
.
471721
,
0
.
548218
,
0
.
547974
,
0
.
924245
,
0
.
836484
,
0
.
776917
,
0
.
879691
,
0
.
875722
,
0
.
666933
,
0
.
666393
,
0
.
755377
,
1
.
074
985
,
1
.
080290
,
1
.
010
914
,
0
.
790892
,
0
.
793435
,
0
.
860249
,
0
.
901508
,
0
.
967060
,
0
.
951372
,
1
.
0114
93
,
1
.
106151
,
1
.
117076
,
1
.
209397
,
1
.
227790
},
{
0
.
5113
,
0
.
5600
,
0
.
7359
,
0
.
6860
,
0
.
7344
,
0
.
6902
,
0
.
7315
,
0
.
7660
,
0
.
7817
,
0
.
7315
,
1
.
7268
,
1
.
5912
,
1
.
8519
,
2
.
2115
,
2
.
4580
,
2
.
1879
,
2
.
9015
,
4
.
1543
,
4
.
6986
,
5
.
3193
,
5
.
6319
,
6
.
5640
,
8
.
2421
,
5
.
6393
},
{
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
},
{
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
},
{
0
.
79479
,
0
.
52872
,
0
.
90005
,
0
.
77170
,
0
.
73220
,
0
.
72060
,
0
.
75433
,
0
.
75451
,
0
.
75989
,
0
.
67655
,
1
.
68525
,
1
.
31100
,
1
.
46573
,
1
.
99843
,
1
.
57293
,
1
.
62852
,
2
.
10636
,
1
,
1
,
1
,
1
,
1
,
1
,
1
},
{
0
.
4398
,
0
.
5823
,
0
.
7094
,
0
.
7043
,
0
.
7282
,
0
.
7041
,
0
.
6979
,
0
.
7762
,
0
.
7871
,
0
.
7469
,
1
.
7752
,
1
.
7443
,
2
.
2266
,
2
.
4767
,
2
.
4146
,
2
.
6040
,
2
.
5708
,
4
.
4488
,
4
.
4944
,
5
.
9630
,
6
.
3740
,
8
.
1097
,
8
.
4210
,
7
.
8027
}};
const
double
beta2_dlsch
[
6
][
MCS_COUNT
]
=
{
{
0
.
534622
,
0
.
596561
,
0
.
500838
,
0
.
471721
,
0
.
548218
,
0
.
547974
,
0
.
924245
,
0
.
836484
,
0
.
776917
,
0
.
879691
,
0
.
875722
,
0
.
666933
,
0
.
666393
,
0
.
755377
,
1
.
074
985
,
1
.
080290
,
1
.
010
914
,
0
.
790892
,
0
.
793435
,
0
.
860249
,
0
.
901508
,
0
.
967060
,
0
.
951372
,
1
.
0114
93
,
1
.
106151
,
1
.
117076
,
1
.
209397
,
1
.
227790
},
{
0
.
5113
,
0
.
5600
,
0
.
7359
,
0
.
6860
,
0
.
7344
,
0
.
6902
,
0
.
7315
,
0
.
7660
,
0
.
7817
,
0
.
7315
,
1
.
7268
,
1
.
5912
,
1
.
8519
,
2
.
2115
,
2
.
4580
,
2
.
1879
,
2
.
9015
,
4
.
1543
,
4
.
6986
,
5
.
3193
,
5
.
6319
,
6
.
5640
,
8
.
2421
,
5
.
6393
},
{
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
},
{
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
},
{
0
.
79479
,
0
.
52872
,
0
.
90005
,
0
.
77170
,
0
.
73220
,
0
.
72060
,
0
.
75433
,
0
.
75451
,
0
.
75989
,
0
.
67655
,
1
.
68525
,
1
.
31100
,
1
.
46573
,
1
.
99843
,
1
.
57293
,
1
.
62852
,
2
.
10636
,
1
,
1
,
1
,
1
,
1
,
1
,
1
},
{
0
.
4398
,
0
.
5823
,
0
.
7094
,
0
.
7043
,
0
.
7282
,
0
.
7041
,
0
.
6979
,
0
.
7762
,
0
.
7871
,
0
.
7469
,
1
.
7752
,
1
.
7443
,
2
.
2266
,
2
.
4767
,
2
.
4146
,
2
.
6040
,
2
.
5708
,
4
.
4488
,
4
.
4944
,
5
.
9630
,
6
.
3740
,
8
.
1097
,
8
.
4210
,
7
.
8027
}};
//real channel estimation valus
//real channel estimation valus
/*
/*
...
@@ -129,9 +129,9 @@ double beta2_dlsch[6][MCS_COUNT] = { {2.52163, 0.83231, 0.77472, 1.36536, 1.1682
...
@@ -129,9 +129,9 @@ double beta2_dlsch[6][MCS_COUNT] = { {2.52163, 0.83231, 0.77472, 1.36536, 1.1682
#ifdef OCP_FRAMEWORK
#ifdef OCP_FRAMEWORK
#include <enums.h>
#include <enums.h>
#else
#else
char
NB_functions
[
7
][
20
]
=
{
"eNodeB_3GPP"
,
"eNodeB_3GPP_BBU"
,
"NGFI_RAU_IF4p5"
,
"NGFI_RRU_IF5"
,
"NGFI_RRU_IF4p5"
,
"gNodeB_3GPP"
,};
c
onst
c
har
NB_functions
[
7
][
20
]
=
{
"eNodeB_3GPP"
,
"eNodeB_3GPP_BBU"
,
"NGFI_RAU_IF4p5"
,
"NGFI_RRU_IF5"
,
"NGFI_RRU_IF4p5"
,
"gNodeB_3GPP"
,};
char
NB_timing
[
2
][
20
]
=
{
"synch_to_ext_device"
,
"synch_to_other"
};
c
onst
c
har
NB_timing
[
2
][
20
]
=
{
"synch_to_ext_device"
,
"synch_to_other"
};
char
ru_if_types
[
MAX_RU_IF_TYPES
][
20
]
=
{
"local RF"
,
"IF5 RRU"
,
"IF5 Mobipass"
,
"IF4p5 RRU"
,
"IF1pp RRU"
};
c
onst
c
har
ru_if_types
[
MAX_RU_IF_TYPES
][
20
]
=
{
"local RF"
,
"IF5 RRU"
,
"IF5 Mobipass"
,
"IF4p5 RRU"
,
"IF1pp RRU"
};
#endif
#endif
/// lookup table for unscrambling in RX
/// lookup table for unscrambling in RX
...
...
openair1/PHY/phy_vars_nr_ue.h
View file @
cbd801b6
...
@@ -49,8 +49,8 @@ unsigned short rev[2048],rev_times4[8192],rev_half[1024];
...
@@ -49,8 +49,8 @@ unsigned short rev[2048],rev_times4[8192],rev_half[1024];
unsigned
short
rev256
[
256
],
rev512
[
512
],
rev1024
[
1024
],
rev4096
[
4096
],
rev2048
[
2048
],
rev8192
[
8192
];
unsigned
short
rev256
[
256
],
rev512
[
512
],
rev1024
[
1024
],
rev4096
[
4096
],
rev2048
[
2048
],
rev8192
[
8192
];
short
conjugate
[
8
]
__attribute__
((
aligned
(
16
)))
=
{
-
1
,
1
,
-
1
,
1
,
-
1
,
1
,
-
1
,
1
};
const
short
conjugate
[
8
]
__attribute__
((
aligned
(
16
)))
=
{
-
1
,
1
,
-
1
,
1
,
-
1
,
1
,
-
1
,
1
};
short
conjugate2
[
8
]
__attribute__
((
aligned
(
16
)))
=
{
1
,
-
1
,
1
,
-
1
,
1
,
-
1
,
1
,
-
1
};
const
short
conjugate2
[
8
]
__attribute__
((
aligned
(
16
)))
=
{
1
,
-
1
,
1
,
-
1
,
1
,
-
1
,
1
,
-
1
};
#include "SIMULATION/ETH_TRANSPORT/vars.h"
#include "SIMULATION/ETH_TRANSPORT/vars.h"
...
@@ -84,29 +84,29 @@ double MI_map_16qam[3][197];
...
@@ -84,29 +84,29 @@ double MI_map_16qam[3][197];
double
MI_map_64qam
[
3
][
227
];
double
MI_map_64qam
[
3
][
227
];
// here the first index is for transmission mode 1, 2, 5 and 6 whereas the second index is for the 16 sinr vaues corresponding to 16 CQIs
// here the first index is for transmission mode 1, 2, 5 and 6 whereas the second index is for the 16 sinr vaues corresponding to 16 CQIs
double
sinr_to_cqi
[
4
][
16
]
=
{
{
-
2
.
5051
,
-
2
.
5051
,
-
1
.
7451
,
-
0
.
3655
,
1
.
0812
,
2
.
4012
,
3
.
6849
,
6
.
6754
,
8
.
3885
,
8
.
7970
,
12
.
0437
,
14
.
4709
,
15
.
7281
,
17
.
2424
,
17
.
2424
,
17
.
2424
},
const
double
sinr_to_cqi
[
4
][
16
]
=
{
{
-
2
.
5051
,
-
2
.
5051
,
-
1
.
7451
,
-
0
.
3655
,
1
.
0812
,
2
.
4012
,
3
.
6849
,
6
.
6754
,
8
.
3885
,
8
.
7970
,
12
.
0437
,
14
.
4709
,
15
.
7281
,
17
.
2424
,
17
.
2424
,
17
.
2424
},
{
-
2
.
2360
,
-
2
.
2360
,
-
1
.
3919
,
-
0
.
021
8
,
1
.
5319
,
2
.
9574
,
4
.
3234
,
6
.
3387
,
8
.
9879
,
9
.
5096
,
12
.
6609
,
14
.
0116
,
16
.
4984
,
18
.
1572
,
18
.
1572
,
18
.
1572
},
{
-
2
.
2360
,
-
2
.
2360
,
-
1
.
3919
,
-
0
.
021
8
,
1
.
5319
,
2
.
9574
,
4
.
3234
,
6
.
3387
,
8
.
9879
,
9
.
5096
,
12
.
6609
,
14
.
0116
,
16
.
4984
,
18
.
1572
,
18
.
1572
,
18
.
1572
},
{
-
1
,
-
1
.
0000
,
-
0
.
4198
,
-
0
.
0140
,
1
.
0362
,
2
.
3520
,
3
.
5793
,
6
.
1136
,
8
.
4836
,
9
.
0858
,
12
.
4723
,
13
.
9128
,
16
.
2054
,
17
.
7392
,
17
.
7392
,
17
.
7392
},
{
-
1
,
-
1
.
0000
,
-
0
.
4198
,
-
0
.
0140
,
1
.
0362
,
2
.
3520
,
3
.
5793
,
6
.
1136
,
8
.
4836
,
9
.
0858
,
12
.
4723
,
13
.
9128
,
16
.
2054
,
17
.
7392
,
17
.
7392
,
17
.
7392
},
{
-
4
.
1057
,
-
4
.
1057
,
-
3
.
3768
,
-
2
.
2916
,
-
1
.
1392
,
0
.
1236
,
1
.
2849
,
3
.
1933
,
5
.
9298
,
6
.
4052
,
9
.
6245
,
10
.
9414
,
13
.
5166
,
14
.
9545
,
14
.
9545
,
14
.
9545
}
{
-
4
.
1057
,
-
4
.
1057
,
-
3
.
3768
,
-
2
.
2916
,
-
1
.
1392
,
0
.
1236
,
1
.
2849
,
3
.
1933
,
5
.
9298
,
6
.
4052
,
9
.
6245
,
10
.
9414
,
13
.
5166
,
14
.
9545
,
14
.
9545
,
14
.
9545
}
};
};
//int cqi_to_mcs[16]={0, 0, 1, 3, 5, 7, 9, 13, 15, 16, 20, 23, 25, 27, 27, 27};
//int cqi_to_mcs[16]={0, 0, 1, 3, 5, 7, 9, 13, 15, 16, 20, 23, 25, 27, 27, 27};
int
cqi_to_mcs
[
16
]
=
{
0
,
0
,
1
,
2
,
4
,
6
,
8
,
11
,
13
,
16
,
18
,
20
,
23
,
25
,
27
,
28
};
const
int
cqi_to_mcs
[
16
]
=
{
0
,
0
,
1
,
2
,
4
,
6
,
8
,
11
,
13
,
16
,
18
,
20
,
23
,
25
,
27
,
28
};
//for SNR to MI conversion 7 th order Polynomial coeff
//for SNR to MI conversion 7 th order Polynomial coeff
double
q_qam16
[
8
]
=
{
3.21151853033897e-10
,
5.55435952230651e-09
,
-
2.30760065362117e-07
,
-
6.25587743817859e-06
,
4.62251036452795e-06
,
0
.
00224150
813158937
,
0
.
03
93723140344367
,
0
.
245486379182639
};
const
double
q_qam16
[
8
]
=
{
3.21151853033897e-10
,
5.55435952230651e-09
,
-
2.30760065362117e-07
,
-
6.25587743817859e-06
,
4.62251036452795e-06
,
0
.
00224150
813158937
,
0
.
03
93723140344367
,
0
.
245486379182639
};
double
q_qpsk
[
8
]
=
{
1.94491167814437e-09
,
8.40494123817774e-08
,
4.75527131198034e-07
,
-
2.48946285301621e-05
,
-
0
.
00034761401615
8364
,
0
.
0020
9252225437100
,
0
.
0742
986115462510
,
0
.
488297879889425
};
const
double
q_qpsk
[
8
]
=
{
1.94491167814437e-09
,
8.40494123817774e-08
,
4.75527131198034e-07
,
-
2.48946285301621e-05
,
-
0
.
00034761401615
8364
,
0
.
0020
9252225437100
,
0
.
0742
986115462510
,
0
.
488297879889425
};
double
q_qam64
[
8
]
=
{
2.25934026232206e-11
,
-
1.45992206328306e-10
,
-
3.70861183071900e-08
,
-
1.22206071019319e-06
,
6.49115500399637e-06
,
0
.
0012
9828997837433
,
0
.
025
9669554914859
,
0
.
166602901214898
};
const
double
q_qam64
[
8
]
=
{
2.25934026232206e-11
,
-
1.45992206328306e-10
,
-
3.70861183071900e-08
,
-
1.22206071019319e-06
,
6.49115500399637e-06
,
0
.
0012
9828997837433
,
0
.
025
9669554914859
,
0
.
166602901214898
};
//for MI to SNR conversion 7 th order Polynomial coeff
//for MI to SNR conversion 7 th order Polynomial coeff
double
p_qpsk
[
8
]
=
{
5982
.
42405670359
,
-
21568
.
1135917693
,
31293
.
9987036905
,
-
23394
.
6795043871
,
9608
.
34750585489
,
-
2158
.
15802349899
,
267
.
731968719036
,
-
20
.
6145324295965
};
const
double
p_qpsk
[
8
]
=
{
5982
.
42405670359
,
-
21568
.
1135917693
,
31293
.
9987036905
,
-
23394
.
6795043871
,
9608
.
34750585489
,
-
2158
.
15802349899
,
267
.
731968719036
,
-
20
.
6145324295965
};
double
p_qam16
[
8
]
=
{
7862
.
12690694170
,
-
28510
.
3207048338
,
41542
.
2150287122
,
-
31088
.
3036957379
,
12690
.
1982361016
,
-
2785
.
66604739984
,
326
.
595462489375
,
-
18
.
9911849872089
};
const
double
p_qam16
[
8
]
=
{
7862
.
12690694170
,
-
28510
.
3207048338
,
41542
.
2150287122
,
-
31088
.
3036957379
,
12690
.
1982361016
,
-
2785
.
66604739984
,
326
.
595462489375
,
-
18
.
9911849872089
};
double
p_qam64
[
8
]
=
{
8832
.
57933013696
,
-
32119
.
1802555952
,
46914
.
2578990397
,
-
35163
.
8150557183
,
14343
.
7419388853
,
-
3126
.
61025510092
,
360
.
954930562237
,
-
18
.
035
8548533343
};
const
double
p_qam64
[
8
]
=
{
8832
.
57933013696
,
-
32119
.
1802555952
,
46914
.
2578990397
,
-
35163
.
8150557183
,
14343
.
7419388853
,
-
3126
.
61025510092
,
360
.
954930562237
,
-
18
.
035
8548533343
};
// ideal CE MIESM
// ideal CE MIESM
double
beta1_dlsch_MI
[
6
][
MCS_COUNT
]
=
{
{
1
.
1188
,
0
.
3720
,
0
.
3755
,
0
.
9453
,
0
.
5799
,
0
.
5256
,
0
.
5485
,
0
.
5340
,
0
.
5165
,
0
.
5300
,
0
.
6594
,
0
.
5962
,
0
.
4884
,
0
.
4927
,
0
.
3687
,
0
.
4614
,
0
.
4081
,
0
.
2639
,
0
.
2935
,
0
.
2520
,
0
.
3709
,
0
.
2906
,
0
.
2612
,
0
.
2390
},
{
0
.
7138
,
0
.
5533
,
0
.
5533
,
0
.
4828
,
0
.
4998
,
0
.
4843
,
0
.
4942
,
0
.
5323
,
0
.
5142
,
0
.
4756
,
0
.
5792
,
0
.
4167
,
0
.
4445
,
0
.
3942
,
0
.
3789
,
0
.
2756
,
0
.
4456
,
0
.
1650
,
0
.
2254
,
0
.
2353
,
0
.
2097
,
0
.
2517
,
0
.
3242
,
1
},
{
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
},
{
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
},{
1
.
808065416202085
,
1
.
754544945430673
,
1
.
902272019362616
,
1
.
790054645392961
,
1
.
563204092967629
,
1
.
585258289348813
,
1
.
579349443720310
,
1
.
570650121437345
,
1
.
545055626608596
,
1
.
362229442426877
,
1
.
85
,
1
.
79
,
1
.
65
,
1
.
54
,
1
.
46
,
1
.
39
,
1
.
33
,
1
,
1
,
1
,
1
,
1
,
1
,
1
},{
0
.
7146
,
0
.
4789
,
0
.
5392
,
0
.
5556
,
0
.
4975
,
0
.
4847
,
0
.
4691
,
0
.
5261
,
0
.
5278
,
0
.
4962
,
0
.
4468
,
0
.
4113
,
0
.
4622
,
0
.
4609
,
0
.
3946
,
0
.
3991
,
0
.
3532
,
0
.
2439
,
0
.
1898
,
0
.
2929
,
0
.
2712
,
0
.
3367
,
0
.
3591
,
0
.
2571
}};
const
double
beta1_dlsch_MI
[
6
][
MCS_COUNT
]
=
{
{
1
.
1188
,
0
.
3720
,
0
.
3755
,
0
.
9453
,
0
.
5799
,
0
.
5256
,
0
.
5485
,
0
.
5340
,
0
.
5165
,
0
.
5300
,
0
.
6594
,
0
.
5962
,
0
.
4884
,
0
.
4927
,
0
.
3687
,
0
.
4614
,
0
.
4081
,
0
.
2639
,
0
.
2935
,
0
.
2520
,
0
.
3709
,
0
.
2906
,
0
.
2612
,
0
.
2390
},
{
0
.
7138
,
0
.
5533
,
0
.
5533
,
0
.
4828
,
0
.
4998
,
0
.
4843
,
0
.
4942
,
0
.
5323
,
0
.
5142
,
0
.
4756
,
0
.
5792
,
0
.
4167
,
0
.
4445
,
0
.
3942
,
0
.
3789
,
0
.
2756
,
0
.
4456
,
0
.
1650
,
0
.
2254
,
0
.
2353
,
0
.
2097
,
0
.
2517
,
0
.
3242
,
1
},
{
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
},
{
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
},{
1
.
808065416202085
,
1
.
754544945430673
,
1
.
902272019362616
,
1
.
790054645392961
,
1
.
563204092967629
,
1
.
585258289348813
,
1
.
579349443720310
,
1
.
570650121437345
,
1
.
545055626608596
,
1
.
362229442426877
,
1
.
85
,
1
.
79
,
1
.
65
,
1
.
54
,
1
.
46
,
1
.
39
,
1
.
33
,
1
,
1
,
1
,
1
,
1
,
1
,
1
},{
0
.
7146
,
0
.
4789
,
0
.
5392
,
0
.
5556
,
0
.
4975
,
0
.
4847
,
0
.
4691
,
0
.
5261
,
0
.
5278
,
0
.
4962
,
0
.
4468
,
0
.
4113
,
0
.
4622
,
0
.
4609
,
0
.
3946
,
0
.
3991
,
0
.
3532
,
0
.
2439
,
0
.
1898
,
0
.
2929
,
0
.
2712
,
0
.
3367
,
0
.
3591
,
0
.
2571
}};
double
beta2_dlsch_MI
[
6
][
MCS_COUNT
]
=
{
{
1
.
1293
,
0
.
3707
,
0
.
3722
,
0
.
9310
,
0
.
5808
,
0
.
5265
,
0
.
5404
,
0
.
5279
,
0
.
5210
,
0
.
5226
,
0
.
6438
,
0
.
5827
,
0
.
4804
,
0
.
4830
,
0
.
3638
,
0
.
4506
,
0
.
4107
,
0
.
2547
,
0
.
2797
,
0
.
2413
,
0
.
3351
,
0
.
2750
,
0
.
2568
,
0
.
2273
},
{
0
.
7028
,
0
.
5503
,
0
.
5503
,
0
.
4815
,
0
.
5006
,
0
.
4764
,
0
.
4810
,
0
.
5124
,
0
.
4964
,
0
.
4485
,
0
.
5497
,
0
.
3971
,
0
.
4239
,
0
.
3701
,
0
.
3494
,
0
.
2630
,
0
.
4053
,
0
.
1505
,
0
.
2001
,
0
.
2024
,
0
.
1788
,
0
.
2124
,
0
.
2668
,
1
},
{
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
},
{
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
},{
1
.
07
9518113138858
,
1
.
105622953570353
,
1
.
03133744
9900606
,
1
.
07334203266
8810
,
1
.
242636589110353
,
1
.
255054927783647
,
1
.
291463834317768
,
1
.
317048698347491
,
1
.
354485054187984
,
0
.
338534029291017
,
1
.
85
,
1
.
79
,
1
.
65
,
1
.
54
,
1
.
46
,
1
.
39
,
1
.
33
,
1
,
1
,
1
,
1
,
1
,
1
,
1
},{
0
.
6980
,
0
.
4694
,
0
.
5379
,
0
.
5483
,
0
.
4982
,
0
.
4737
,
0
.
4611
,
0
.
5051
,
0
.
5020
,
0
.
4672
,
0
.
4357
,
0
.
3957
,
0
.
4389
,
0
.
4344
,
0
.
3645
,
0
.
3661
,
0
.
3301
,
0
.
2179
,
0
.
1730
,
0
.
2536
,
0
.
2389
,
0
.
2884
,
0
.
2936
,
0
.
2226
}};
const
double
beta2_dlsch_MI
[
6
][
MCS_COUNT
]
=
{
{
1
.
1293
,
0
.
3707
,
0
.
3722
,
0
.
9310
,
0
.
5808
,
0
.
5265
,
0
.
5404
,
0
.
5279
,
0
.
5210
,
0
.
5226
,
0
.
6438
,
0
.
5827
,
0
.
4804
,
0
.
4830
,
0
.
3638
,
0
.
4506
,
0
.
4107
,
0
.
2547
,
0
.
2797
,
0
.
2413
,
0
.
3351
,
0
.
2750
,
0
.
2568
,
0
.
2273
},
{
0
.
7028
,
0
.
5503
,
0
.
5503
,
0
.
4815
,
0
.
5006
,
0
.
4764
,
0
.
4810
,
0
.
5124
,
0
.
4964
,
0
.
4485
,
0
.
5497
,
0
.
3971
,
0
.
4239
,
0
.
3701
,
0
.
3494
,
0
.
2630
,
0
.
4053
,
0
.
1505
,
0
.
2001
,
0
.
2024
,
0
.
1788
,
0
.
2124
,
0
.
2668
,
1
},
{
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
},
{
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
},{
1
.
07
9518113138858
,
1
.
105622953570353
,
1
.
03133744
9900606
,
1
.
07334203266
8810
,
1
.
242636589110353
,
1
.
255054927783647
,
1
.
291463834317768
,
1
.
317048698347491
,
1
.
354485054187984
,
0
.
338534029291017
,
1
.
85
,
1
.
79
,
1
.
65
,
1
.
54
,
1
.
46
,
1
.
39
,
1
.
33
,
1
,
1
,
1
,
1
,
1
,
1
,
1
},{
0
.
6980
,
0
.
4694
,
0
.
5379
,
0
.
5483
,
0
.
4982
,
0
.
4737
,
0
.
4611
,
0
.
5051
,
0
.
5020
,
0
.
4672
,
0
.
4357
,
0
.
3957
,
0
.
4389
,
0
.
4344
,
0
.
3645
,
0
.
3661
,
0
.
3301
,
0
.
2179
,
0
.
1730
,
0
.
2536
,
0
.
2389
,
0
.
2884
,
0
.
2936
,
0
.
2226
}};
//real CE MIESM
//real CE MIESM
/*
/*
...
@@ -116,8 +116,8 @@ double beta2_dlsch_MI[6][MCS_COUNT] = { {1.36875, 0.59304, 0.53870, 0.98239, 0.8
...
@@ -116,8 +116,8 @@ double beta2_dlsch_MI[6][MCS_COUNT] = { {1.36875, 0.59304, 0.53870, 0.98239, 0.8
//ideal channel estimation values
//ideal channel estimation values
//double beta1_dlsch[6][MCS_COUNT] = { {2.3814, 0.4956, 0.5273, 1.1708, 0.8014, 0.7889, 0.8111, 0.8139, 0.8124, 0.8479, 1.9280, 1.9664, 2.3857, 2.5147, 2.4511, 3.0158, 2.8643, 5.3013, 5.8594, 6.5372, 7.8073, 7.8030, 7.5295, 7.1320}, {0.5146, 0.5549, 0.7405, 0.6913, 0.7349, 0.7000, 0.7539, 0.7955, 0.8074, 0.7760, 1.8150, 1.6561, 1.9280, 2.3563, 2.6699, 2.3086, 3.1601, 4.5316, 5.2870, 6.0983, 6.5635, 7.7024, 9.9592, 6.6173}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1,1,1,1,1,1}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1,1,1,1,1}, {1.79358, 1.17908, 2.02600, 1.72040, 1.58618, 1.59039, 1.68111, 1.67062, 1.64911, 1.33274, 4.87800, 3.58797, 3.72338, 5.35700, 2.81752, 1.93472, 2.23259, 1,1,1,1,1,1,1}, {0.4445, 0.5918, 0.7118, 0.7115, 0.7284, 0.7202, 0.7117, 0.8111, 0.8239, 0.7907, 1.8456, 1.8144, 2.3830, 2.6634, 2.6129, 2.8127, 2.7372, 4.9424, 4.8763, 6.8413, 7.1493, 9.4180, 10.1230, 8.9613}};
//double beta1_dlsch[6][MCS_COUNT] = { {2.3814, 0.4956, 0.5273, 1.1708, 0.8014, 0.7889, 0.8111, 0.8139, 0.8124, 0.8479, 1.9280, 1.9664, 2.3857, 2.5147, 2.4511, 3.0158, 2.8643, 5.3013, 5.8594, 6.5372, 7.8073, 7.8030, 7.5295, 7.1320}, {0.5146, 0.5549, 0.7405, 0.6913, 0.7349, 0.7000, 0.7539, 0.7955, 0.8074, 0.7760, 1.8150, 1.6561, 1.9280, 2.3563, 2.6699, 2.3086, 3.1601, 4.5316, 5.2870, 6.0983, 6.5635, 7.7024, 9.9592, 6.6173}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1,1,1,1,1,1}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1,1,1,1,1}, {1.79358, 1.17908, 2.02600, 1.72040, 1.58618, 1.59039, 1.68111, 1.67062, 1.64911, 1.33274, 4.87800, 3.58797, 3.72338, 5.35700, 2.81752, 1.93472, 2.23259, 1,1,1,1,1,1,1}, {0.4445, 0.5918, 0.7118, 0.7115, 0.7284, 0.7202, 0.7117, 0.8111, 0.8239, 0.7907, 1.8456, 1.8144, 2.3830, 2.6634, 2.6129, 2.8127, 2.7372, 4.9424, 4.8763, 6.8413, 7.1493, 9.4180, 10.1230, 8.9613}};
//double beta2_dlsch[6][MCS_COUNT] = { {2.3639, 0.4952, 0.5207, 1.1572, 0.8026, 0.7864, 0.7996, 0.8034, 0.8200, 0.8367, 1.8701, 1.9212, 2.2947, 2.4472, 2.4091, 2.9479, 2.8973, 5.0591, 5.5134, 6.1483, 7.2166, 7.5177, 7.5704, 7.2248}, {0.5113, 0.5600, 0.7359, 0.6860, 0.7344, 0.6902, 0.7315, 0.7660, 0.7817, 0.7315, 1.7268, 1.5912, 1.8519, 2.2115, 2.4580, 2.1879, 2.9015, 4.1543, 4.6986, 5.3193, 5.6319, 6.5640, 8.2421, 5.6393}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1,1,1,1,1,1}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1,1,1,1,1}, {0.79479, 0.52872, 0.90005, 0.77170, 0.73220, 0.72060, 0.75433, 0.75451, 0.75989, 0.67655, 1.68525, 1.31100, 1.46573, 1.99843, 1.57293, 1.62852, 2.10636, 1,1,1,1,1,1,1}, {0.4398, 0.5823, 0.7094, 0.7043, 0.7282, 0.7041, 0.6979, 0.7762, 0.7871, 0.7469, 1.7752, 1.7443, 2.2266, 2.4767, 2.4146, 2.6040, 2.5708, 4.4488, 4.4944, 5.9630, 6.3740, 8.1097, 8.4210, 7.8027}};
//double beta2_dlsch[6][MCS_COUNT] = { {2.3639, 0.4952, 0.5207, 1.1572, 0.8026, 0.7864, 0.7996, 0.8034, 0.8200, 0.8367, 1.8701, 1.9212, 2.2947, 2.4472, 2.4091, 2.9479, 2.8973, 5.0591, 5.5134, 6.1483, 7.2166, 7.5177, 7.5704, 7.2248}, {0.5113, 0.5600, 0.7359, 0.6860, 0.7344, 0.6902, 0.7315, 0.7660, 0.7817, 0.7315, 1.7268, 1.5912, 1.8519, 2.2115, 2.4580, 2.1879, 2.9015, 4.1543, 4.6986, 5.3193, 5.6319, 6.5640, 8.2421, 5.6393}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1,1,1,1,1,1}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1,1,1,1,1}, {0.79479, 0.52872, 0.90005, 0.77170, 0.73220, 0.72060, 0.75433, 0.75451, 0.75989, 0.67655, 1.68525, 1.31100, 1.46573, 1.99843, 1.57293, 1.62852, 2.10636, 1,1,1,1,1,1,1}, {0.4398, 0.5823, 0.7094, 0.7043, 0.7282, 0.7041, 0.6979, 0.7762, 0.7871, 0.7469, 1.7752, 1.7443, 2.2266, 2.4767, 2.4146, 2.6040, 2.5708, 4.4488, 4.4944, 5.9630, 6.3740, 8.1097, 8.4210, 7.8027}};
double
beta1_dlsch
[
6
][
MCS_COUNT
]
=
{
{
1
.
199175
,
1
.
085656
,
0
.
983872
,
0
.
843789
,
0
.
816093
,
0
.
853078
,
0
.
899236
,
0
.
919665
,
0
.
888673
,
0
.
924181
,
0
.
814176
,
0
.
794108
,
0
.
770653
,
0
.
826266
,
0
.
982043
,
0
.
979621
,
0
.
985176
,
0
.
901741
,
0
.
870311
,
0
.
911303
,
0
.
898923
,
1
.
00335
9
,
0
.
988535
,
1
.
03063
9
,
1
.
151038
,
1
.
116939
,
1
.
214118
,
1
.
219148
},
{
0
.
5146
,
0
.
5549
,
0
.
7405
,
0
.
6913
,
0
.
7349
,
0
.
7000
,
0
.
7539
,
0
.
7955
,
0
.
8074
,
0
.
7760
,
1
.
8150
,
1
.
6561
,
1
.
9280
,
2
.
3563
,
2
.
6699
,
2
.
3086
,
3
.
1601
,
4
.
5316
,
5
.
2870
,
6
.
0983
,
6
.
5635
,
7
.
7024
,
9
.
9592
,
6
.
6173
},
{
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
},
{
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
},
{
1
.
79358
,
1
.
17908
,
2
.
02600
,
1
.
72040
,
1
.
58618
,
1
.
59039
,
1
.
68111
,
1
.
67062
,
1
.
64911
,
1
.
33274
,
4
.
87800
,
3
.
58797
,
3
.
72338
,
5
.
35700
,
2
.
81752
,
1
.
93472
,
2
.
23259
,
1
,
1
,
1
,
1
,
1
,
1
,
1
},
{
0
.
4445
,
0
.
5918
,
0
.
7118
,
0
.
7115
,
0
.
7284
,
0
.
7202
,
0
.
7117
,
0
.
8111
,
0
.
8239
,
0
.
7907
,
1
.
8456
,
1
.
8144
,
2
.
3830
,
2
.
6634
,
2
.
6129
,
2
.
8127
,
2
.
7372
,
4
.
9424
,
4
.
8763
,
6
.
8413
,
7
.
1493
,
9
.
4180
,
10
.
1230
,
8
.
9613
}};
const
double
beta1_dlsch
[
6
][
MCS_COUNT
]
=
{
{
1
.
199175
,
1
.
085656
,
0
.
983872
,
0
.
843789
,
0
.
816093
,
0
.
853078
,
0
.
899236
,
0
.
919665
,
0
.
888673
,
0
.
924181
,
0
.
814176
,
0
.
794108
,
0
.
770653
,
0
.
826266
,
0
.
982043
,
0
.
979621
,
0
.
985176
,
0
.
901741
,
0
.
870311
,
0
.
911303
,
0
.
898923
,
1
.
00335
9
,
0
.
988535
,
1
.
03063
9
,
1
.
151038
,
1
.
116939
,
1
.
214118
,
1
.
219148
},
{
0
.
5146
,
0
.
5549
,
0
.
7405
,
0
.
6913
,
0
.
7349
,
0
.
7000
,
0
.
7539
,
0
.
7955
,
0
.
8074
,
0
.
7760
,
1
.
8150
,
1
.
6561
,
1
.
9280
,
2
.
3563
,
2
.
6699
,
2
.
3086
,
3
.
1601
,
4
.
5316
,
5
.
2870
,
6
.
0983
,
6
.
5635
,
7
.
7024
,
9
.
9592
,
6
.
6173
},
{
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
},
{
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
},
{
1
.
79358
,
1
.
17908
,
2
.
02600
,
1
.
72040
,
1
.
58618
,
1
.
59039
,
1
.
68111
,
1
.
67062
,
1
.
64911
,
1
.
33274
,
4
.
87800
,
3
.
58797
,
3
.
72338
,
5
.
35700
,
2
.
81752
,
1
.
93472
,
2
.
23259
,
1
,
1
,
1
,
1
,
1
,
1
,
1
},
{
0
.
4445
,
0
.
5918
,
0
.
7118
,
0
.
7115
,
0
.
7284
,
0
.
7202
,
0
.
7117
,
0
.
8111
,
0
.
8239
,
0
.
7907
,
1
.
8456
,
1
.
8144
,
2
.
3830
,
2
.
6634
,
2
.
6129
,
2
.
8127
,
2
.
7372
,
4
.
9424
,
4
.
8763
,
6
.
8413
,
7
.
1493
,
9
.
4180
,
10
.
1230
,
8
.
9613
}};
double
beta2_dlsch
[
6
][
MCS_COUNT
]
=
{
{
0
.
534622
,
0
.
596561
,
0
.
500838
,
0
.
471721
,
0
.
548218
,
0
.
547974
,
0
.
924245
,
0
.
836484
,
0
.
776917
,
0
.
879691
,
0
.
875722
,
0
.
666933
,
0
.
666393
,
0
.
755377
,
1
.
074
985
,
1
.
080290
,
1
.
010
914
,
0
.
790892
,
0
.
793435
,
0
.
860249
,
0
.
901508
,
0
.
967060
,
0
.
951372
,
1
.
0114
93
,
1
.
106151
,
1
.
117076
,
1
.
209397
,
1
.
227790
},
{
0
.
5113
,
0
.
5600
,
0
.
7359
,
0
.
6860
,
0
.
7344
,
0
.
6902
,
0
.
7315
,
0
.
7660
,
0
.
7817
,
0
.
7315
,
1
.
7268
,
1
.
5912
,
1
.
8519
,
2
.
2115
,
2
.
4580
,
2
.
1879
,
2
.
9015
,
4
.
1543
,
4
.
6986
,
5
.
3193
,
5
.
6319
,
6
.
5640
,
8
.
2421
,
5
.
6393
},
{
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
},
{
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
},
{
0
.
79479
,
0
.
52872
,
0
.
90005
,
0
.
77170
,
0
.
73220
,
0
.
72060
,
0
.
75433
,
0
.
75451
,
0
.
75989
,
0
.
67655
,
1
.
68525
,
1
.
31100
,
1
.
46573
,
1
.
99843
,
1
.
57293
,
1
.
62852
,
2
.
10636
,
1
,
1
,
1
,
1
,
1
,
1
,
1
},
{
0
.
4398
,
0
.
5823
,
0
.
7094
,
0
.
7043
,
0
.
7282
,
0
.
7041
,
0
.
6979
,
0
.
7762
,
0
.
7871
,
0
.
7469
,
1
.
7752
,
1
.
7443
,
2
.
2266
,
2
.
4767
,
2
.
4146
,
2
.
6040
,
2
.
5708
,
4
.
4488
,
4
.
4944
,
5
.
9630
,
6
.
3740
,
8
.
1097
,
8
.
4210
,
7
.
8027
}};
const
double
beta2_dlsch
[
6
][
MCS_COUNT
]
=
{
{
0
.
534622
,
0
.
596561
,
0
.
500838
,
0
.
471721
,
0
.
548218
,
0
.
547974
,
0
.
924245
,
0
.
836484
,
0
.
776917
,
0
.
879691
,
0
.
875722
,
0
.
666933
,
0
.
666393
,
0
.
755377
,
1
.
074
985
,
1
.
080290
,
1
.
010
914
,
0
.
790892
,
0
.
793435
,
0
.
860249
,
0
.
901508
,
0
.
967060
,
0
.
951372
,
1
.
0114
93
,
1
.
106151
,
1
.
117076
,
1
.
209397
,
1
.
227790
},
{
0
.
5113
,
0
.
5600
,
0
.
7359
,
0
.
6860
,
0
.
7344
,
0
.
6902
,
0
.
7315
,
0
.
7660
,
0
.
7817
,
0
.
7315
,
1
.
7268
,
1
.
5912
,
1
.
8519
,
2
.
2115
,
2
.
4580
,
2
.
1879
,
2
.
9015
,
4
.
1543
,
4
.
6986
,
5
.
3193
,
5
.
6319
,
6
.
5640
,
8
.
2421
,
5
.
6393
},
{
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
},
{
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
},
{
0
.
79479
,
0
.
52872
,
0
.
90005
,
0
.
77170
,
0
.
73220
,
0
.
72060
,
0
.
75433
,
0
.
75451
,
0
.
75989
,
0
.
67655
,
1
.
68525
,
1
.
31100
,
1
.
46573
,
1
.
99843
,
1
.
57293
,
1
.
62852
,
2
.
10636
,
1
,
1
,
1
,
1
,
1
,
1
,
1
},
{
0
.
4398
,
0
.
5823
,
0
.
7094
,
0
.
7043
,
0
.
7282
,
0
.
7041
,
0
.
6979
,
0
.
7762
,
0
.
7871
,
0
.
7469
,
1
.
7752
,
1
.
7443
,
2
.
2266
,
2
.
4767
,
2
.
4146
,
2
.
6040
,
2
.
5708
,
4
.
4488
,
4
.
4944
,
5
.
9630
,
6
.
3740
,
8
.
1097
,
8
.
4210
,
7
.
8027
}};
//real channel estimation valus
//real channel estimation valus
/*
/*
...
@@ -129,9 +129,9 @@ double beta2_dlsch[6][MCS_COUNT] = { {2.52163, 0.83231, 0.77472, 1.36536, 1.1682
...
@@ -129,9 +129,9 @@ double beta2_dlsch[6][MCS_COUNT] = { {2.52163, 0.83231, 0.77472, 1.36536, 1.1682
#ifdef OCP_FRAMEWORK
#ifdef OCP_FRAMEWORK
#include <enums.h>
#include <enums.h>
#else
#else
char
NB_functions
[
7
][
20
]
=
{
"eNodeB_3GPP"
,
"eNodeB_3GPP_BBU"
,
"NGFI_RAU_IF4p5"
,
"NGFI_RRU_IF5"
,
"NGFI_RRU_IF4p5"
,
"gNodeB_3GPP"
,};
c
onst
c
har
NB_functions
[
7
][
20
]
=
{
"eNodeB_3GPP"
,
"eNodeB_3GPP_BBU"
,
"NGFI_RAU_IF4p5"
,
"NGFI_RRU_IF5"
,
"NGFI_RRU_IF4p5"
,
"gNodeB_3GPP"
,};
char
NB_timing
[
2
][
20
]
=
{
"synch_to_ext_device"
,
"synch_to_other"
};
c
onst
c
har
NB_timing
[
2
][
20
]
=
{
"synch_to_ext_device"
,
"synch_to_other"
};
char
ru_if_types
[
MAX_RU_IF_TYPES
][
20
]
=
{
"local RF"
,
"IF5 RRU"
,
"IF5 Mobipass"
,
"IF4p5 RRU"
,
"IF1pp RRU"
};
c
onst
c
har
ru_if_types
[
MAX_RU_IF_TYPES
][
20
]
=
{
"local RF"
,
"IF5 RRU"
,
"IF5 Mobipass"
,
"IF4p5 RRU"
,
"IF1pp RRU"
};
#endif
#endif
/// lookup table for unscrambling in RX
/// lookup table for unscrambling in RX
...
...
openair1/PHY/phy_vars_ue.h
View file @
cbd801b6
...
@@ -43,8 +43,8 @@ unsigned short rev[2048],rev_times4[8192],rev_half[1024];
...
@@ -43,8 +43,8 @@ unsigned short rev[2048],rev_times4[8192],rev_half[1024];
unsigned
short
rev256
[
256
],
rev512
[
512
],
rev1024
[
1024
],
rev4096
[
4096
],
rev2048
[
2048
],
rev8192
[
8192
];
unsigned
short
rev256
[
256
],
rev512
[
512
],
rev1024
[
1024
],
rev4096
[
4096
],
rev2048
[
2048
],
rev8192
[
8192
];
short
conjugate
[
8
]
__attribute__
((
aligned
(
16
)))
=
{
-
1
,
1
,
-
1
,
1
,
-
1
,
1
,
-
1
,
1
};
const
short
conjugate
[
8
]
__attribute__
((
aligned
(
16
)))
=
{
-
1
,
1
,
-
1
,
1
,
-
1
,
1
,
-
1
,
1
};
short
conjugate2
[
8
]
__attribute__
((
aligned
(
16
)))
=
{
1
,
-
1
,
1
,
-
1
,
1
,
-
1
,
1
,
-
1
};
const
short
conjugate2
[
8
]
__attribute__
((
aligned
(
16
)))
=
{
1
,
-
1
,
1
,
-
1
,
1
,
-
1
,
1
,
-
1
};
#include "SIMULATION/ETH_TRANSPORT/vars.h"
#include "SIMULATION/ETH_TRANSPORT/vars.h"
...
@@ -77,29 +77,29 @@ double MI_map_16qam[3][197];
...
@@ -77,29 +77,29 @@ double MI_map_16qam[3][197];
double
MI_map_64qam
[
3
][
227
];
double
MI_map_64qam
[
3
][
227
];
// here the first index is for transmission mode 1, 2, 5 and 6 whereas the second index is for the 16 sinr vaues corresponding to 16 CQIs
// here the first index is for transmission mode 1, 2, 5 and 6 whereas the second index is for the 16 sinr vaues corresponding to 16 CQIs
double
sinr_to_cqi
[
4
][
16
]
=
{
{
-
2
.
5051
,
-
2
.
5051
,
-
1
.
7451
,
-
0
.
3655
,
1
.
0812
,
2
.
4012
,
3
.
6849
,
6
.
6754
,
8
.
3885
,
8
.
7970
,
12
.
0437
,
14
.
4709
,
15
.
7281
,
17
.
2424
,
17
.
2424
,
17
.
2424
},
const
double
sinr_to_cqi
[
4
][
16
]
=
{
{
-
2
.
5051
,
-
2
.
5051
,
-
1
.
7451
,
-
0
.
3655
,
1
.
0812
,
2
.
4012
,
3
.
6849
,
6
.
6754
,
8
.
3885
,
8
.
7970
,
12
.
0437
,
14
.
4709
,
15
.
7281
,
17
.
2424
,
17
.
2424
,
17
.
2424
},
{
-
2
.
2360
,
-
2
.
2360
,
-
1
.
3919
,
-
0
.
021
8
,
1
.
5319
,
2
.
9574
,
4
.
3234
,
6
.
3387
,
8
.
9879
,
9
.
5096
,
12
.
6609
,
14
.
0116
,
16
.
4984
,
18
.
1572
,
18
.
1572
,
18
.
1572
},
{
-
2
.
2360
,
-
2
.
2360
,
-
1
.
3919
,
-
0
.
021
8
,
1
.
5319
,
2
.
9574
,
4
.
3234
,
6
.
3387
,
8
.
9879
,
9
.
5096
,
12
.
6609
,
14
.
0116
,
16
.
4984
,
18
.
1572
,
18
.
1572
,
18
.
1572
},
{
-
1
,
-
1
.
0000
,
-
0
.
4198
,
-
0
.
0140
,
1
.
0362
,
2
.
3520
,
3
.
5793
,
6
.
1136
,
8
.
4836
,
9
.
0858
,
12
.
4723
,
13
.
9128
,
16
.
2054
,
17
.
7392
,
17
.
7392
,
17
.
7392
},
{
-
1
,
-
1
.
0000
,
-
0
.
4198
,
-
0
.
0140
,
1
.
0362
,
2
.
3520
,
3
.
5793
,
6
.
1136
,
8
.
4836
,
9
.
0858
,
12
.
4723
,
13
.
9128
,
16
.
2054
,
17
.
7392
,
17
.
7392
,
17
.
7392
},
{
-
4
.
1057
,
-
4
.
1057
,
-
3
.
3768
,
-
2
.
2916
,
-
1
.
1392
,
0
.
1236
,
1
.
2849
,
3
.
1933
,
5
.
9298
,
6
.
4052
,
9
.
6245
,
10
.
9414
,
13
.
5166
,
14
.
9545
,
14
.
9545
,
14
.
9545
}
{
-
4
.
1057
,
-
4
.
1057
,
-
3
.
3768
,
-
2
.
2916
,
-
1
.
1392
,
0
.
1236
,
1
.
2849
,
3
.
1933
,
5
.
9298
,
6
.
4052
,
9
.
6245
,
10
.
9414
,
13
.
5166
,
14
.
9545
,
14
.
9545
,
14
.
9545
}
};
};
//int cqi_to_mcs[16]={0, 0, 1, 3, 5, 7, 9, 13, 15, 16, 20, 23, 25, 27, 27, 27};
//int cqi_to_mcs[16]={0, 0, 1, 3, 5, 7, 9, 13, 15, 16, 20, 23, 25, 27, 27, 27};
int
cqi_to_mcs
[
16
]
=
{
0
,
0
,
1
,
2
,
4
,
6
,
8
,
11
,
13
,
16
,
18
,
20
,
23
,
25
,
27
,
28
};
const
int
cqi_to_mcs
[
16
]
=
{
0
,
0
,
1
,
2
,
4
,
6
,
8
,
11
,
13
,
16
,
18
,
20
,
23
,
25
,
27
,
28
};
//for SNR to MI conversion 7 th order Polynomial coeff
//for SNR to MI conversion 7 th order Polynomial coeff
double
q_qam16
[
8
]
=
{
3.21151853033897e-10
,
5.55435952230651e-09
,
-
2.30760065362117e-07
,
-
6.25587743817859e-06
,
4.62251036452795e-06
,
0
.
00224150
813158937
,
0
.
03
93723140344367
,
0
.
245486379182639
};
const
double
q_qam16
[
8
]
=
{
3.21151853033897e-10
,
5.55435952230651e-09
,
-
2.30760065362117e-07
,
-
6.25587743817859e-06
,
4.62251036452795e-06
,
0
.
00224150
813158937
,
0
.
03
93723140344367
,
0
.
245486379182639
};
double
q_qpsk
[
8
]
=
{
1.94491167814437e-09
,
8.40494123817774e-08
,
4.75527131198034e-07
,
-
2.48946285301621e-05
,
-
0
.
00034761401615
8364
,
0
.
0020
9252225437100
,
0
.
0742
986115462510
,
0
.
488297879889425
};
const
double
q_qpsk
[
8
]
=
{
1.94491167814437e-09
,
8.40494123817774e-08
,
4.75527131198034e-07
,
-
2.48946285301621e-05
,
-
0
.
00034761401615
8364
,
0
.
0020
9252225437100
,
0
.
0742
986115462510
,
0
.
488297879889425
};
double
q_qam64
[
8
]
=
{
2.25934026232206e-11
,
-
1.45992206328306e-10
,
-
3.70861183071900e-08
,
-
1.22206071019319e-06
,
6.49115500399637e-06
,
0
.
0012
9828997837433
,
0
.
025
9669554914859
,
0
.
166602901214898
};
const
double
q_qam64
[
8
]
=
{
2.25934026232206e-11
,
-
1.45992206328306e-10
,
-
3.70861183071900e-08
,
-
1.22206071019319e-06
,
6.49115500399637e-06
,
0
.
0012
9828997837433
,
0
.
025
9669554914859
,
0
.
166602901214898
};
//for MI to SNR conversion 7 th order Polynomial coeff
//for MI to SNR conversion 7 th order Polynomial coeff
double
p_qpsk
[
8
]
=
{
5982
.
42405670359
,
-
21568
.
1135917693
,
31293
.
9987036905
,
-
23394
.
6795043871
,
9608
.
34750585489
,
-
2158
.
15802349899
,
267
.
731968719036
,
-
20
.
6145324295965
};
const
double
p_qpsk
[
8
]
=
{
5982
.
42405670359
,
-
21568
.
1135917693
,
31293
.
9987036905
,
-
23394
.
6795043871
,
9608
.
34750585489
,
-
2158
.
15802349899
,
267
.
731968719036
,
-
20
.
6145324295965
};
double
p_qam16
[
8
]
=
{
7862
.
12690694170
,
-
28510
.
3207048338
,
41542
.
2150287122
,
-
31088
.
3036957379
,
12690
.
1982361016
,
-
2785
.
66604739984
,
326
.
595462489375
,
-
18
.
9911849872089
};
const
double
p_qam16
[
8
]
=
{
7862
.
12690694170
,
-
28510
.
3207048338
,
41542
.
2150287122
,
-
31088
.
3036957379
,
12690
.
1982361016
,
-
2785
.
66604739984
,
326
.
595462489375
,
-
18
.
9911849872089
};
double
p_qam64
[
8
]
=
{
8832
.
57933013696
,
-
32119
.
1802555952
,
46914
.
2578990397
,
-
35163
.
8150557183
,
14343
.
7419388853
,
-
3126
.
61025510092
,
360
.
954930562237
,
-
18
.
035
8548533343
};
const
double
p_qam64
[
8
]
=
{
8832
.
57933013696
,
-
32119
.
1802555952
,
46914
.
2578990397
,
-
35163
.
8150557183
,
14343
.
7419388853
,
-
3126
.
61025510092
,
360
.
954930562237
,
-
18
.
035
8548533343
};
// ideal CE MIESM
// ideal CE MIESM
double
beta1_dlsch_MI
[
6
][
MCS_COUNT
]
=
{
{
1
.
1188
,
0
.
3720
,
0
.
3755
,
0
.
9453
,
0
.
5799
,
0
.
5256
,
0
.
5485
,
0
.
5340
,
0
.
5165
,
0
.
5300
,
0
.
6594
,
0
.
5962
,
0
.
4884
,
0
.
4927
,
0
.
3687
,
0
.
4614
,
0
.
4081
,
0
.
2639
,
0
.
2935
,
0
.
2520
,
0
.
3709
,
0
.
2906
,
0
.
2612
,
0
.
2390
},
{
0
.
7138
,
0
.
5533
,
0
.
5533
,
0
.
4828
,
0
.
4998
,
0
.
4843
,
0
.
4942
,
0
.
5323
,
0
.
5142
,
0
.
4756
,
0
.
5792
,
0
.
4167
,
0
.
4445
,
0
.
3942
,
0
.
3789
,
0
.
2756
,
0
.
4456
,
0
.
1650
,
0
.
2254
,
0
.
2353
,
0
.
2097
,
0
.
2517
,
0
.
3242
,
1
},
{
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
},
{
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
},{
1
.
808065416202085
,
1
.
754544945430673
,
1
.
902272019362616
,
1
.
790054645392961
,
1
.
563204092967629
,
1
.
585258289348813
,
1
.
579349443720310
,
1
.
570650121437345
,
1
.
545055626608596
,
1
.
362229442426877
,
1
.
85
,
1
.
79
,
1
.
65
,
1
.
54
,
1
.
46
,
1
.
39
,
1
.
33
,
1
,
1
,
1
,
1
,
1
,
1
,
1
},{
0
.
7146
,
0
.
4789
,
0
.
5392
,
0
.
5556
,
0
.
4975
,
0
.
4847
,
0
.
4691
,
0
.
5261
,
0
.
5278
,
0
.
4962
,
0
.
4468
,
0
.
4113
,
0
.
4622
,
0
.
4609
,
0
.
3946
,
0
.
3991
,
0
.
3532
,
0
.
2439
,
0
.
1898
,
0
.
2929
,
0
.
2712
,
0
.
3367
,
0
.
3591
,
0
.
2571
}};
const
double
beta1_dlsch_MI
[
6
][
MCS_COUNT
]
=
{
{
1
.
1188
,
0
.
3720
,
0
.
3755
,
0
.
9453
,
0
.
5799
,
0
.
5256
,
0
.
5485
,
0
.
5340
,
0
.
5165
,
0
.
5300
,
0
.
6594
,
0
.
5962
,
0
.
4884
,
0
.
4927
,
0
.
3687
,
0
.
4614
,
0
.
4081
,
0
.
2639
,
0
.
2935
,
0
.
2520
,
0
.
3709
,
0
.
2906
,
0
.
2612
,
0
.
2390
},
{
0
.
7138
,
0
.
5533
,
0
.
5533
,
0
.
4828
,
0
.
4998
,
0
.
4843
,
0
.
4942
,
0
.
5323
,
0
.
5142
,
0
.
4756
,
0
.
5792
,
0
.
4167
,
0
.
4445
,
0
.
3942
,
0
.
3789
,
0
.
2756
,
0
.
4456
,
0
.
1650
,
0
.
2254
,
0
.
2353
,
0
.
2097
,
0
.
2517
,
0
.
3242
,
1
},
{
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
},
{
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
},{
1
.
808065416202085
,
1
.
754544945430673
,
1
.
902272019362616
,
1
.
790054645392961
,
1
.
563204092967629
,
1
.
585258289348813
,
1
.
579349443720310
,
1
.
570650121437345
,
1
.
545055626608596
,
1
.
362229442426877
,
1
.
85
,
1
.
79
,
1
.
65
,
1
.
54
,
1
.
46
,
1
.
39
,
1
.
33
,
1
,
1
,
1
,
1
,
1
,
1
,
1
},{
0
.
7146
,
0
.
4789
,
0
.
5392
,
0
.
5556
,
0
.
4975
,
0
.
4847
,
0
.
4691
,
0
.
5261
,
0
.
5278
,
0
.
4962
,
0
.
4468
,
0
.
4113
,
0
.
4622
,
0
.
4609
,
0
.
3946
,
0
.
3991
,
0
.
3532
,
0
.
2439
,
0
.
1898
,
0
.
2929
,
0
.
2712
,
0
.
3367
,
0
.
3591
,
0
.
2571
}};
double
beta2_dlsch_MI
[
6
][
MCS_COUNT
]
=
{
{
1
.
1293
,
0
.
3707
,
0
.
3722
,
0
.
9310
,
0
.
5808
,
0
.
5265
,
0
.
5404
,
0
.
5279
,
0
.
5210
,
0
.
5226
,
0
.
6438
,
0
.
5827
,
0
.
4804
,
0
.
4830
,
0
.
3638
,
0
.
4506
,
0
.
4107
,
0
.
2547
,
0
.
2797
,
0
.
2413
,
0
.
3351
,
0
.
2750
,
0
.
2568
,
0
.
2273
},
{
0
.
7028
,
0
.
5503
,
0
.
5503
,
0
.
4815
,
0
.
5006
,
0
.
4764
,
0
.
4810
,
0
.
5124
,
0
.
4964
,
0
.
4485
,
0
.
5497
,
0
.
3971
,
0
.
4239
,
0
.
3701
,
0
.
3494
,
0
.
2630
,
0
.
4053
,
0
.
1505
,
0
.
2001
,
0
.
2024
,
0
.
1788
,
0
.
2124
,
0
.
2668
,
1
},
{
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
},
{
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
},{
1
.
07
9518113138858
,
1
.
105622953570353
,
1
.
03133744
9900606
,
1
.
07334203266
8810
,
1
.
242636589110353
,
1
.
255054927783647
,
1
.
291463834317768
,
1
.
317048698347491
,
1
.
354485054187984
,
0
.
338534029291017
,
1
.
85
,
1
.
79
,
1
.
65
,
1
.
54
,
1
.
46
,
1
.
39
,
1
.
33
,
1
,
1
,
1
,
1
,
1
,
1
,
1
},{
0
.
6980
,
0
.
4694
,
0
.
5379
,
0
.
5483
,
0
.
4982
,
0
.
4737
,
0
.
4611
,
0
.
5051
,
0
.
5020
,
0
.
4672
,
0
.
4357
,
0
.
3957
,
0
.
4389
,
0
.
4344
,
0
.
3645
,
0
.
3661
,
0
.
3301
,
0
.
2179
,
0
.
1730
,
0
.
2536
,
0
.
2389
,
0
.
2884
,
0
.
2936
,
0
.
2226
}};
const
double
beta2_dlsch_MI
[
6
][
MCS_COUNT
]
=
{
{
1
.
1293
,
0
.
3707
,
0
.
3722
,
0
.
9310
,
0
.
5808
,
0
.
5265
,
0
.
5404
,
0
.
5279
,
0
.
5210
,
0
.
5226
,
0
.
6438
,
0
.
5827
,
0
.
4804
,
0
.
4830
,
0
.
3638
,
0
.
4506
,
0
.
4107
,
0
.
2547
,
0
.
2797
,
0
.
2413
,
0
.
3351
,
0
.
2750
,
0
.
2568
,
0
.
2273
},
{
0
.
7028
,
0
.
5503
,
0
.
5503
,
0
.
4815
,
0
.
5006
,
0
.
4764
,
0
.
4810
,
0
.
5124
,
0
.
4964
,
0
.
4485
,
0
.
5497
,
0
.
3971
,
0
.
4239
,
0
.
3701
,
0
.
3494
,
0
.
2630
,
0
.
4053
,
0
.
1505
,
0
.
2001
,
0
.
2024
,
0
.
1788
,
0
.
2124
,
0
.
2668
,
1
},
{
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
},
{
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
},{
1
.
07
9518113138858
,
1
.
105622953570353
,
1
.
03133744
9900606
,
1
.
07334203266
8810
,
1
.
242636589110353
,
1
.
255054927783647
,
1
.
291463834317768
,
1
.
317048698347491
,
1
.
354485054187984
,
0
.
338534029291017
,
1
.
85
,
1
.
79
,
1
.
65
,
1
.
54
,
1
.
46
,
1
.
39
,
1
.
33
,
1
,
1
,
1
,
1
,
1
,
1
,
1
},{
0
.
6980
,
0
.
4694
,
0
.
5379
,
0
.
5483
,
0
.
4982
,
0
.
4737
,
0
.
4611
,
0
.
5051
,
0
.
5020
,
0
.
4672
,
0
.
4357
,
0
.
3957
,
0
.
4389
,
0
.
4344
,
0
.
3645
,
0
.
3661
,
0
.
3301
,
0
.
2179
,
0
.
1730
,
0
.
2536
,
0
.
2389
,
0
.
2884
,
0
.
2936
,
0
.
2226
}};
//real CE MIESM
//real CE MIESM
/*
/*
...
@@ -109,8 +109,8 @@ double beta2_dlsch_MI[6][MCS_COUNT] = { {1.36875, 0.59304, 0.53870, 0.98239, 0.8
...
@@ -109,8 +109,8 @@ double beta2_dlsch_MI[6][MCS_COUNT] = { {1.36875, 0.59304, 0.53870, 0.98239, 0.8
//ideal channel estimation values
//ideal channel estimation values
//double beta1_dlsch[6][MCS_COUNT] = { {2.3814, 0.4956, 0.5273, 1.1708, 0.8014, 0.7889, 0.8111, 0.8139, 0.8124, 0.8479, 1.9280, 1.9664, 2.3857, 2.5147, 2.4511, 3.0158, 2.8643, 5.3013, 5.8594, 6.5372, 7.8073, 7.8030, 7.5295, 7.1320}, {0.5146, 0.5549, 0.7405, 0.6913, 0.7349, 0.7000, 0.7539, 0.7955, 0.8074, 0.7760, 1.8150, 1.6561, 1.9280, 2.3563, 2.6699, 2.3086, 3.1601, 4.5316, 5.2870, 6.0983, 6.5635, 7.7024, 9.9592, 6.6173}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1,1,1,1,1,1}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1,1,1,1,1}, {1.79358, 1.17908, 2.02600, 1.72040, 1.58618, 1.59039, 1.68111, 1.67062, 1.64911, 1.33274, 4.87800, 3.58797, 3.72338, 5.35700, 2.81752, 1.93472, 2.23259, 1,1,1,1,1,1,1}, {0.4445, 0.5918, 0.7118, 0.7115, 0.7284, 0.7202, 0.7117, 0.8111, 0.8239, 0.7907, 1.8456, 1.8144, 2.3830, 2.6634, 2.6129, 2.8127, 2.7372, 4.9424, 4.8763, 6.8413, 7.1493, 9.4180, 10.1230, 8.9613}};
//double beta1_dlsch[6][MCS_COUNT] = { {2.3814, 0.4956, 0.5273, 1.1708, 0.8014, 0.7889, 0.8111, 0.8139, 0.8124, 0.8479, 1.9280, 1.9664, 2.3857, 2.5147, 2.4511, 3.0158, 2.8643, 5.3013, 5.8594, 6.5372, 7.8073, 7.8030, 7.5295, 7.1320}, {0.5146, 0.5549, 0.7405, 0.6913, 0.7349, 0.7000, 0.7539, 0.7955, 0.8074, 0.7760, 1.8150, 1.6561, 1.9280, 2.3563, 2.6699, 2.3086, 3.1601, 4.5316, 5.2870, 6.0983, 6.5635, 7.7024, 9.9592, 6.6173}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1,1,1,1,1,1}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1,1,1,1,1}, {1.79358, 1.17908, 2.02600, 1.72040, 1.58618, 1.59039, 1.68111, 1.67062, 1.64911, 1.33274, 4.87800, 3.58797, 3.72338, 5.35700, 2.81752, 1.93472, 2.23259, 1,1,1,1,1,1,1}, {0.4445, 0.5918, 0.7118, 0.7115, 0.7284, 0.7202, 0.7117, 0.8111, 0.8239, 0.7907, 1.8456, 1.8144, 2.3830, 2.6634, 2.6129, 2.8127, 2.7372, 4.9424, 4.8763, 6.8413, 7.1493, 9.4180, 10.1230, 8.9613}};
//double beta2_dlsch[6][MCS_COUNT] = { {2.3639, 0.4952, 0.5207, 1.1572, 0.8026, 0.7864, 0.7996, 0.8034, 0.8200, 0.8367, 1.8701, 1.9212, 2.2947, 2.4472, 2.4091, 2.9479, 2.8973, 5.0591, 5.5134, 6.1483, 7.2166, 7.5177, 7.5704, 7.2248}, {0.5113, 0.5600, 0.7359, 0.6860, 0.7344, 0.6902, 0.7315, 0.7660, 0.7817, 0.7315, 1.7268, 1.5912, 1.8519, 2.2115, 2.4580, 2.1879, 2.9015, 4.1543, 4.6986, 5.3193, 5.6319, 6.5640, 8.2421, 5.6393}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1,1,1,1,1,1}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1,1,1,1,1}, {0.79479, 0.52872, 0.90005, 0.77170, 0.73220, 0.72060, 0.75433, 0.75451, 0.75989, 0.67655, 1.68525, 1.31100, 1.46573, 1.99843, 1.57293, 1.62852, 2.10636, 1,1,1,1,1,1,1}, {0.4398, 0.5823, 0.7094, 0.7043, 0.7282, 0.7041, 0.6979, 0.7762, 0.7871, 0.7469, 1.7752, 1.7443, 2.2266, 2.4767, 2.4146, 2.6040, 2.5708, 4.4488, 4.4944, 5.9630, 6.3740, 8.1097, 8.4210, 7.8027}};
//double beta2_dlsch[6][MCS_COUNT] = { {2.3639, 0.4952, 0.5207, 1.1572, 0.8026, 0.7864, 0.7996, 0.8034, 0.8200, 0.8367, 1.8701, 1.9212, 2.2947, 2.4472, 2.4091, 2.9479, 2.8973, 5.0591, 5.5134, 6.1483, 7.2166, 7.5177, 7.5704, 7.2248}, {0.5113, 0.5600, 0.7359, 0.6860, 0.7344, 0.6902, 0.7315, 0.7660, 0.7817, 0.7315, 1.7268, 1.5912, 1.8519, 2.2115, 2.4580, 2.1879, 2.9015, 4.1543, 4.6986, 5.3193, 5.6319, 6.5640, 8.2421, 5.6393}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1,1,1,1,1,1}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1,1,1,1,1}, {0.79479, 0.52872, 0.90005, 0.77170, 0.73220, 0.72060, 0.75433, 0.75451, 0.75989, 0.67655, 1.68525, 1.31100, 1.46573, 1.99843, 1.57293, 1.62852, 2.10636, 1,1,1,1,1,1,1}, {0.4398, 0.5823, 0.7094, 0.7043, 0.7282, 0.7041, 0.6979, 0.7762, 0.7871, 0.7469, 1.7752, 1.7443, 2.2266, 2.4767, 2.4146, 2.6040, 2.5708, 4.4488, 4.4944, 5.9630, 6.3740, 8.1097, 8.4210, 7.8027}};
double
beta1_dlsch
[
6
][
MCS_COUNT
]
=
{
{
1
.
199175
,
1
.
085656
,
0
.
983872
,
0
.
843789
,
0
.
816093
,
0
.
853078
,
0
.
899236
,
0
.
919665
,
0
.
888673
,
0
.
924181
,
0
.
814176
,
0
.
794108
,
0
.
770653
,
0
.
826266
,
0
.
982043
,
0
.
979621
,
0
.
985176
,
0
.
901741
,
0
.
870311
,
0
.
911303
,
0
.
898923
,
1
.
00335
9
,
0
.
988535
,
1
.
03063
9
,
1
.
151038
,
1
.
116939
,
1
.
214118
,
1
.
219148
},
{
0
.
5146
,
0
.
5549
,
0
.
7405
,
0
.
6913
,
0
.
7349
,
0
.
7000
,
0
.
7539
,
0
.
7955
,
0
.
8074
,
0
.
7760
,
1
.
8150
,
1
.
6561
,
1
.
9280
,
2
.
3563
,
2
.
6699
,
2
.
3086
,
3
.
1601
,
4
.
5316
,
5
.
2870
,
6
.
0983
,
6
.
5635
,
7
.
7024
,
9
.
9592
,
6
.
6173
},
{
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
},
{
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
},
{
1
.
79358
,
1
.
17908
,
2
.
02600
,
1
.
72040
,
1
.
58618
,
1
.
59039
,
1
.
68111
,
1
.
67062
,
1
.
64911
,
1
.
33274
,
4
.
87800
,
3
.
58797
,
3
.
72338
,
5
.
35700
,
2
.
81752
,
1
.
93472
,
2
.
23259
,
1
,
1
,
1
,
1
,
1
,
1
,
1
},
{
0
.
4445
,
0
.
5918
,
0
.
7118
,
0
.
7115
,
0
.
7284
,
0
.
7202
,
0
.
7117
,
0
.
8111
,
0
.
8239
,
0
.
7907
,
1
.
8456
,
1
.
8144
,
2
.
3830
,
2
.
6634
,
2
.
6129
,
2
.
8127
,
2
.
7372
,
4
.
9424
,
4
.
8763
,
6
.
8413
,
7
.
1493
,
9
.
4180
,
10
.
1230
,
8
.
9613
}};
const
double
beta1_dlsch
[
6
][
MCS_COUNT
]
=
{
{
1
.
199175
,
1
.
085656
,
0
.
983872
,
0
.
843789
,
0
.
816093
,
0
.
853078
,
0
.
899236
,
0
.
919665
,
0
.
888673
,
0
.
924181
,
0
.
814176
,
0
.
794108
,
0
.
770653
,
0
.
826266
,
0
.
982043
,
0
.
979621
,
0
.
985176
,
0
.
901741
,
0
.
870311
,
0
.
911303
,
0
.
898923
,
1
.
00335
9
,
0
.
988535
,
1
.
03063
9
,
1
.
151038
,
1
.
116939
,
1
.
214118
,
1
.
219148
},
{
0
.
5146
,
0
.
5549
,
0
.
7405
,
0
.
6913
,
0
.
7349
,
0
.
7000
,
0
.
7539
,
0
.
7955
,
0
.
8074
,
0
.
7760
,
1
.
8150
,
1
.
6561
,
1
.
9280
,
2
.
3563
,
2
.
6699
,
2
.
3086
,
3
.
1601
,
4
.
5316
,
5
.
2870
,
6
.
0983
,
6
.
5635
,
7
.
7024
,
9
.
9592
,
6
.
6173
},
{
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
},
{
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
},
{
1
.
79358
,
1
.
17908
,
2
.
02600
,
1
.
72040
,
1
.
58618
,
1
.
59039
,
1
.
68111
,
1
.
67062
,
1
.
64911
,
1
.
33274
,
4
.
87800
,
3
.
58797
,
3
.
72338
,
5
.
35700
,
2
.
81752
,
1
.
93472
,
2
.
23259
,
1
,
1
,
1
,
1
,
1
,
1
,
1
},
{
0
.
4445
,
0
.
5918
,
0
.
7118
,
0
.
7115
,
0
.
7284
,
0
.
7202
,
0
.
7117
,
0
.
8111
,
0
.
8239
,
0
.
7907
,
1
.
8456
,
1
.
8144
,
2
.
3830
,
2
.
6634
,
2
.
6129
,
2
.
8127
,
2
.
7372
,
4
.
9424
,
4
.
8763
,
6
.
8413
,
7
.
1493
,
9
.
4180
,
10
.
1230
,
8
.
9613
}};
double
beta2_dlsch
[
6
][
MCS_COUNT
]
=
{
{
0
.
534622
,
0
.
596561
,
0
.
500838
,
0
.
471721
,
0
.
548218
,
0
.
547974
,
0
.
924245
,
0
.
836484
,
0
.
776917
,
0
.
879691
,
0
.
875722
,
0
.
666933
,
0
.
666393
,
0
.
755377
,
1
.
074
985
,
1
.
080290
,
1
.
010
914
,
0
.
790892
,
0
.
793435
,
0
.
860249
,
0
.
901508
,
0
.
967060
,
0
.
951372
,
1
.
0114
93
,
1
.
106151
,
1
.
117076
,
1
.
209397
,
1
.
227790
},
{
0
.
5113
,
0
.
5600
,
0
.
7359
,
0
.
6860
,
0
.
7344
,
0
.
6902
,
0
.
7315
,
0
.
7660
,
0
.
7817
,
0
.
7315
,
1
.
7268
,
1
.
5912
,
1
.
8519
,
2
.
2115
,
2
.
4580
,
2
.
1879
,
2
.
9015
,
4
.
1543
,
4
.
6986
,
5
.
3193
,
5
.
6319
,
6
.
5640
,
8
.
2421
,
5
.
6393
},
{
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
},
{
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
},
{
0
.
79479
,
0
.
52872
,
0
.
90005
,
0
.
77170
,
0
.
73220
,
0
.
72060
,
0
.
75433
,
0
.
75451
,
0
.
75989
,
0
.
67655
,
1
.
68525
,
1
.
31100
,
1
.
46573
,
1
.
99843
,
1
.
57293
,
1
.
62852
,
2
.
10636
,
1
,
1
,
1
,
1
,
1
,
1
,
1
},
{
0
.
4398
,
0
.
5823
,
0
.
7094
,
0
.
7043
,
0
.
7282
,
0
.
7041
,
0
.
6979
,
0
.
7762
,
0
.
7871
,
0
.
7469
,
1
.
7752
,
1
.
7443
,
2
.
2266
,
2
.
4767
,
2
.
4146
,
2
.
6040
,
2
.
5708
,
4
.
4488
,
4
.
4944
,
5
.
9630
,
6
.
3740
,
8
.
1097
,
8
.
4210
,
7
.
8027
}};
const
double
beta2_dlsch
[
6
][
MCS_COUNT
]
=
{
{
0
.
534622
,
0
.
596561
,
0
.
500838
,
0
.
471721
,
0
.
548218
,
0
.
547974
,
0
.
924245
,
0
.
836484
,
0
.
776917
,
0
.
879691
,
0
.
875722
,
0
.
666933
,
0
.
666393
,
0
.
755377
,
1
.
074
985
,
1
.
080290
,
1
.
010
914
,
0
.
790892
,
0
.
793435
,
0
.
860249
,
0
.
901508
,
0
.
967060
,
0
.
951372
,
1
.
0114
93
,
1
.
106151
,
1
.
117076
,
1
.
209397
,
1
.
227790
},
{
0
.
5113
,
0
.
5600
,
0
.
7359
,
0
.
6860
,
0
.
7344
,
0
.
6902
,
0
.
7315
,
0
.
7660
,
0
.
7817
,
0
.
7315
,
1
.
7268
,
1
.
5912
,
1
.
8519
,
2
.
2115
,
2
.
4580
,
2
.
1879
,
2
.
9015
,
4
.
1543
,
4
.
6986
,
5
.
3193
,
5
.
6319
,
6
.
5640
,
8
.
2421
,
5
.
6393
},
{
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
},
{
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
},
{
0
.
79479
,
0
.
52872
,
0
.
90005
,
0
.
77170
,
0
.
73220
,
0
.
72060
,
0
.
75433
,
0
.
75451
,
0
.
75989
,
0
.
67655
,
1
.
68525
,
1
.
31100
,
1
.
46573
,
1
.
99843
,
1
.
57293
,
1
.
62852
,
2
.
10636
,
1
,
1
,
1
,
1
,
1
,
1
,
1
},
{
0
.
4398
,
0
.
5823
,
0
.
7094
,
0
.
7043
,
0
.
7282
,
0
.
7041
,
0
.
6979
,
0
.
7762
,
0
.
7871
,
0
.
7469
,
1
.
7752
,
1
.
7443
,
2
.
2266
,
2
.
4767
,
2
.
4146
,
2
.
6040
,
2
.
5708
,
4
.
4488
,
4
.
4944
,
5
.
9630
,
6
.
3740
,
8
.
1097
,
8
.
4210
,
7
.
8027
}};
//real channel estimation valus
//real channel estimation valus
/*
/*
...
@@ -122,9 +122,9 @@ double beta2_dlsch[6][MCS_COUNT] = { {2.52163, 0.83231, 0.77472, 1.36536, 1.1682
...
@@ -122,9 +122,9 @@ double beta2_dlsch[6][MCS_COUNT] = { {2.52163, 0.83231, 0.77472, 1.36536, 1.1682
#ifdef OCP_FRAMEWORK
#ifdef OCP_FRAMEWORK
#include <enums.h>
#include <enums.h>
#else
#else
char
NB_functions
[
7
][
20
]
=
{
"eNodeB_3GPP"
,
"eNodeB_3GPP_BBU"
,
"NGFI_RAU_IF4p5"
,
"NGFI_RRU_IF5"
,
"NGFI_RRU_IF4p5"
,
"gNodeB_3GPP"
,};
c
onst
c
har
NB_functions
[
7
][
20
]
=
{
"eNodeB_3GPP"
,
"eNodeB_3GPP_BBU"
,
"NGFI_RAU_IF4p5"
,
"NGFI_RRU_IF5"
,
"NGFI_RRU_IF4p5"
,
"gNodeB_3GPP"
,};
char
NB_timing
[
2
][
20
]
=
{
"synch_to_ext_device"
,
"synch_to_other"
};
c
onst
c
har
NB_timing
[
2
][
20
]
=
{
"synch_to_ext_device"
,
"synch_to_other"
};
char
ru_if_types
[
MAX_RU_IF_TYPES
][
20
]
=
{
"local RF"
,
"IF5 RRU"
,
"IF5 Mobipass"
,
"IF4p5 RRU"
,
"IF1pp RRU"
};
c
onst
c
har
ru_if_types
[
MAX_RU_IF_TYPES
][
20
]
=
{
"local RF"
,
"IF5 RRU"
,
"IF5 Mobipass"
,
"IF4p5 RRU"
,
"IF1pp RRU"
};
#endif
#endif
/// lookup table for unscrambling in RX
/// lookup table for unscrambling in RX
...
...
openair2/LAYER2/MAC/mac_extern.h
View file @
cbd801b6
...
@@ -60,7 +60,7 @@ extern uint16_t NB_THREAD_INST;
...
@@ -60,7 +60,7 @@ extern uint16_t NB_THREAD_INST;
extern
unsigned
char
NB_RN_INST
;
extern
unsigned
char
NB_RN_INST
;
extern
unsigned
short
NODE_ID
[
1
];
extern
unsigned
short
NODE_ID
[
1
];
extern
int
cqi_to_mcs
[
16
];
extern
const
int
cqi_to_mcs
[
16
];
extern
uint32_t
RRC_CONNECTION_FLAG
;
extern
uint32_t
RRC_CONNECTION_FLAG
;
...
...
openair2/LAYER2/MAC/pre_processor.c
View file @
cbd801b6
...
@@ -36,6 +36,7 @@
...
@@ -36,6 +36,7 @@
#include "LAYER2/MAC/mac.h"
#include "LAYER2/MAC/mac.h"
#include "LAYER2/MAC/mac_proto.h"
#include "LAYER2/MAC/mac_proto.h"
#include "LAYER2/MAC/mac_extern.h"
#include "LAYER2/MAC/mac_extern.h"
#include <openair2/LAYER2/NR_MAC_COMMON/nr_mac_extern.h>
#include "common/utils/LOG/log.h"
#include "common/utils/LOG/log.h"
#include "common/utils/LOG/vcd_signal_dumper.h"
#include "common/utils/LOG/vcd_signal_dumper.h"
#include "UTIL/OPT/opt.h"
#include "UTIL/OPT/opt.h"
...
...
openair2/LAYER2/NR_MAC_COMMON/nr_mac_extern.h
View file @
cbd801b6
...
@@ -45,7 +45,7 @@ extern const uint8_t cqi2fmt2x_agg[MAX_SUPPORTED_BW][CQI_VALUE_RANGE];
...
@@ -45,7 +45,7 @@ extern const uint8_t cqi2fmt2x_agg[MAX_SUPPORTED_BW][CQI_VALUE_RANGE];
extern UE_RRC_INST *UE_rrc_inst;
extern UE_RRC_INST *UE_rrc_inst;
extern eNB_ULSCH_INFO eNB_ulsch_info[NUMBER_OF_eNB_MAX][MAX_NUM_CCs][MAX_MOBILES_PER_ENB]; // eNBxUE = 8x8
extern eNB_ULSCH_INFO eNB_ulsch_info[NUMBER_OF_eNB_MAX][MAX_NUM_CCs][MAX_MOBILES_PER_ENB]; // eNBxUE = 8x8
extern eNB_DLSCH_INFO eNB_dlsch_info[NUMBER_OF_eNB_MAX][MAX_NUM_CCs][MAX_MOBILES_PER_ENB]; // eNBxUE = 8x8
extern eNB_DLSCH_INFO eNB_dlsch_info[NUMBER_OF_eNB_MAX][MAX_NUM_CCs][MAX_MOBILES_PER_ENB]; // eNBxUE = 8x8
extern int cqi_to_mcs[16];
extern
const
int cqi_to_mcs[16];
extern uint32_t RRC_CONNECTION_FLAG;
extern uint32_t RRC_CONNECTION_FLAG;
extern uint8_t rb_table[34];
extern uint8_t rb_table[34];
extern mac_rlc_am_muilist_t rlc_am_mui;
extern mac_rlc_am_muilist_t rlc_am_mui;
...
...
openair3/NAS/TOOLS/conf_network.c
View file @
cbd801b6
...
@@ -43,7 +43,7 @@ void gen_network_record_from_conf(const plmn_conf_param_t *conf, network_record_
...
@@ -43,7 +43,7 @@ void gen_network_record_from_conf(const plmn_conf_param_t *conf, network_record_
strcpy
(
record
->
fullname
,
conf
->
fullname
);
strcpy
(
record
->
fullname
,
conf
->
fullname
);
strcpy
(
record
->
shortname
,
conf
->
shortname
);
strcpy
(
record
->
shortname
,
conf
->
shortname
);
char
num
[
6
];
char
num
[
6
0
];
sprintf
(
num
,
"%s%s"
,
conf
->
mcc
,
conf
->
mnc
);
sprintf
(
num
,
"%s%s"
,
conf
->
mcc
,
conf
->
mnc
);
record
->
num
=
atoi
(
num
);
record
->
num
=
atoi
(
num
);
...
...
targets/RT/USER/lte-softmodem.c
View file @
cbd801b6
...
@@ -660,6 +660,7 @@ int main ( int argc, char **argv )
...
@@ -660,6 +660,7 @@ int main ( int argc, char **argv )
initTpool
(
"n"
,
L1proc
->
threadPool
,
true
);
initTpool
(
"n"
,
L1proc
->
threadPool
,
true
);
initNotifiedFIFO
(
L1proc
->
respEncode
);
initNotifiedFIFO
(
L1proc
->
respEncode
);
initNotifiedFIFO
(
L1proc
->
respDecode
);
initNotifiedFIFO
(
L1proc
->
respDecode
);
RC
.
eNB
[
x
][
CC_id
]
->
proc
.
L1_proc_tx
.
threadPool
=
L1proc
->
threadPool
;
}
}
...
...
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