Commit b9db3044 authored by Robert Schmidt's avatar Robert Schmidt

Merge remote-tracking branch 'origin/episys-5g-mimo' into integration_2022_wk42b

parents b1352c9d 914d7302
...@@ -17,29 +17,16 @@ nssai_sst=222; ...@@ -17,29 +17,16 @@ nssai_sst=222;
nssai_sd=123; nssai_sd=123;
} }
L1s = ( MACRLCs = (
{ {
num_cc = 1; num_cc = 1;
tr_n_preference = "nfapi"; tr_n_preference = "nfapi";
local_n_if_name = "ens3"; local_n_if_name = "ens3";
remote_n_address = "127.0.0.1"; //Proxy IP remote_n_address = "127.0.0.1"; //Proxy IP
local_n_address = "127.0.0.1"; local_n_address = "127.0.0.1";
local_n_portc = 50600; local_n_portc = 50600;
remote_n_portc = 50601; remote_n_portc = 50601;
local_n_portd = 50610; local_n_portd = 50610;
remote_n_portd = 50611; remote_n_portd = 50611;
} }
);
RUs = (
{
local_rf = "yes"
nb_tx = 1
nb_rx = 1
att_tx = 90
att_rx = 0;
bands = [7,38,42,43];
max_pdschReferenceSignalPower = -27;
max_rxgain = 125;
}
); );
...@@ -17,6 +17,9 @@ gNBs = ...@@ -17,6 +17,9 @@ gNBs =
////////// Physical parameters: ////////// Physical parameters:
pdsch_AntennaPorts_XP = 2;
pusch_AntennaPorts = 2;
do_CSIRS = 1;
min_rxtxtime = 6; min_rxtxtime = 6;
pdcch_ConfigSIB1 = ( pdcch_ConfigSIB1 = (
{ {
...@@ -218,13 +221,13 @@ security = { ...@@ -218,13 +221,13 @@ security = {
log_config : log_config :
{ {
global_log_level ="info"; global_log_level ="analysis";
hw_log_level ="info"; hw_log_level ="analysis";
phy_log_level ="info"; phy_log_level ="analysis";
mac_log_level ="info"; mac_log_level ="analysis";
rlc_log_level ="info"; rlc_log_level ="analysis";
pdcp_log_level ="info"; pdcp_log_level ="analysis";
rrc_log_level ="info"; rrc_log_level ="analysis";
ngap_log_level ="debug"; ngap_log_level ="analysis";
}; };
...@@ -17,29 +17,17 @@ nssai_sst=1; ...@@ -17,29 +17,17 @@ nssai_sst=1;
nssai_sd=1; nssai_sd=1;
} }
L1s = ( MACRLCs = (
{ {
num_cc = 1; num_cc = 1;
tr_n_preference = "nfapi"; tr_n_preference = "nfapi";
local_n_if_name = "lo:"; local_n_if_name = "lo:";
remote_n_address = "127.0.0.1"; //Proxy IP remote_n_address = "127.0.0.1"; //Proxy IP
local_n_address = "127.0.0.1"; local_n_address = "127.0.0.1";
local_n_portc = 50600; local_n_portc = 50600;
remote_n_portc = 50601; remote_n_portc = 50601;
local_n_portd = 50610; local_n_portd = 50610;
remote_n_portd = 50611; remote_n_portd = 50611;
} }
); );
RUs = (
{
local_rf = "yes"
nb_tx = 1
nb_rx = 1
att_tx = 90
att_rx = 0;
bands = [7,38,42,43];
max_pdschReferenceSignalPower = -27;
max_rxgain = 125;
}
);
...@@ -36,7 +36,7 @@ ...@@ -36,7 +36,7 @@
<eNB_instance>1</eNB_instance> <eNB_instance>1</eNB_instance>
<eNB_serverId>1</eNB_serverId> <eNB_serverId>1</eNB_serverId>
<forced_workspace_cleanup>True</forced_workspace_cleanup> <forced_workspace_cleanup>True</forced_workspace_cleanup>
<proxy_commit>56cfdc0</proxy_commit> <proxy_commit>a6169d8</proxy_commit>
</testCase> </testCase>
</testCaseList> </testCaseList>
...@@ -36,7 +36,7 @@ ...@@ -36,7 +36,7 @@
<eNB_instance>1</eNB_instance> <eNB_instance>1</eNB_instance>
<eNB_serverId>1</eNB_serverId> <eNB_serverId>1</eNB_serverId>
<forced_workspace_cleanup>True</forced_workspace_cleanup> <forced_workspace_cleanup>True</forced_workspace_cleanup>
<proxy_commit>56cfdc0</proxy_commit> <proxy_commit>a6169d8</proxy_commit>
</testCase> </testCase>
</testCaseList> </testCaseList>
...@@ -264,10 +264,10 @@ static void process_queued_nr_nfapi_msgs(NR_UE_MAC_INST_t *mac, int sfn_slot) ...@@ -264,10 +264,10 @@ static void process_queued_nr_nfapi_msgs(NR_UE_MAC_INST_t *mac, int sfn_slot)
send_nsa_standalone_msg(&UL_INFO, rach_ind->header.message_id); send_nsa_standalone_msg(&UL_INFO, rach_ind->header.message_id);
for (int i = 0; i < rach_ind->number_of_pdus; i++) for (int i = 0; i < rach_ind->number_of_pdus; i++)
{ {
free(rach_ind->pdu_list[i].preamble_list); free_and_zero(rach_ind->pdu_list[i].preamble_list);
} }
free(rach_ind->pdu_list); free_and_zero(rach_ind->pdu_list);
free(rach_ind); free_and_zero(rach_ind);
nr_Msg1_transmitted(0, 0, NFAPI_SFNSLOT2SFN(sfn_slot), 0); nr_Msg1_transmitted(0, 0, NFAPI_SFNSLOT2SFN(sfn_slot), 0);
} }
if (dl_tti_request) if (dl_tti_request)
...@@ -280,8 +280,7 @@ static void process_queued_nr_nfapi_msgs(NR_UE_MAC_INST_t *mac, int sfn_slot) ...@@ -280,8 +280,7 @@ static void process_queued_nr_nfapi_msgs(NR_UE_MAC_INST_t *mac, int sfn_slot)
NFAPI_SFNSLOT2SFN(dl_tti_sfn_slot), NFAPI_SFNSLOT2SLOT(dl_tti_sfn_slot)); NFAPI_SFNSLOT2SFN(dl_tti_sfn_slot), NFAPI_SFNSLOT2SLOT(dl_tti_sfn_slot));
if (get_softmodem_params()->nsa) if (get_softmodem_params()->nsa)
save_nr_measurement_info(dl_tti_request); save_nr_measurement_info(dl_tti_request);
free(dl_tti_request); free_and_zero(dl_tti_request);
dl_tti_request = NULL;
} }
else if (dl_tti_request->dl_tti_request_body.nPDUs > 0 && tx_data_request->Number_of_PDUs > 0) else if (dl_tti_request->dl_tti_request_body.nPDUs > 0 && tx_data_request->Number_of_PDUs > 0)
{ {
...@@ -437,6 +436,12 @@ static void *NRUE_phy_stub_standalone_pnf_task(void *arg) ...@@ -437,6 +436,12 @@ static void *NRUE_phy_stub_standalone_pnf_task(void *arg)
mac->dl_info.slot = slot; mac->dl_info.slot = slot;
mac->dl_info.dci_ind = NULL; mac->dl_info.dci_ind = NULL;
mac->dl_info.rx_ind = NULL; mac->dl_info.rx_ind = NULL;
if (ch_info) {
mac->nr_ue_emul_l1.pmi = ch_info->csi[0].pmi;
mac->nr_ue_emul_l1.ri = ch_info->csi[0].ri;
mac->nr_ue_emul_l1.cqi = ch_info->csi[0].cqi;
free_and_zero(ch_info);
}
if (is_nr_DL_slot(get_softmodem_params()->nsa ? if (is_nr_DL_slot(get_softmodem_params()->nsa ?
mac->scc->tdd_UL_DL_ConfigurationCommon : mac->scc->tdd_UL_DL_ConfigurationCommon :
......
...@@ -85,6 +85,7 @@ unsigned short config_frames[4] = {2,9,11,13}; ...@@ -85,6 +85,7 @@ unsigned short config_frames[4] = {2,9,11,13};
#include "nr_nas_msg_sim.h" #include "nr_nas_msg_sim.h"
#include <openair1/PHY/MODULATION/nr_modulation.h> #include <openair1/PHY/MODULATION/nr_modulation.h>
#include "openair2/GNB_APP/gnb_paramdef.h"
extern const char *duplex_mode[]; extern const char *duplex_mode[];
THREAD_STRUCT thread_struct; THREAD_STRUCT thread_struct;
...@@ -161,7 +162,7 @@ uint8_t abstraction_flag=0; ...@@ -161,7 +162,7 @@ uint8_t abstraction_flag=0;
nr_bler_struct nr_bler_data[NR_NUM_MCS]; nr_bler_struct nr_bler_data[NR_NUM_MCS];
static void init_bler_table(void); static void init_bler_table(char*);
/*---------------------BMC: timespec helpers -----------------------------*/ /*---------------------BMC: timespec helpers -----------------------------*/
...@@ -391,6 +392,17 @@ void *rrc_enb_process_msg(void *notUsed) { ...@@ -391,6 +392,17 @@ void *rrc_enb_process_msg(void *notUsed) {
return NULL; return NULL;
} }
static void get_channel_model_mode() {
paramdef_t GNBParams[] = GNBPARAMS_DESC;
config_get(GNBParams, sizeof(GNBParams)/sizeof(paramdef_t), NULL);
int num_xp_antennas = *GNBParams[GNB_PDSCH_ANTENNAPORTS_XP_IDX].iptr;
if (num_xp_antennas == 2)
init_bler_table("NR_MIMO2x2_AWGN_RESULTS_DIR");
else
init_bler_table("NR_AWGN_RESULTS_DIR");
}
int main( int argc, char **argv ) { int main( int argc, char **argv ) {
int set_exe_prio = 1; int set_exe_prio = 1;
...@@ -468,8 +480,8 @@ int main( int argc, char **argv ) { ...@@ -468,8 +480,8 @@ int main( int argc, char **argv ) {
PHY_vars_UE_g = malloc(sizeof(PHY_VARS_NR_UE **)); PHY_vars_UE_g = malloc(sizeof(PHY_VARS_NR_UE **));
PHY_vars_UE_g[0] = malloc(sizeof(PHY_VARS_NR_UE *)*MAX_NUM_CCs); PHY_vars_UE_g[0] = malloc(sizeof(PHY_VARS_NR_UE *)*MAX_NUM_CCs);
if (get_softmodem_params()->emulate_l1) { if (get_softmodem_params()->emulate_l1) {
RCconfig_nr_ue_L1(); RCconfig_nr_ue_macrlc();
init_bler_table(); get_channel_model_mode();
} }
if (get_softmodem_params()->do_ra) if (get_softmodem_params()->do_ra)
...@@ -550,12 +562,12 @@ int main( int argc, char **argv ) { ...@@ -550,12 +562,12 @@ int main( int argc, char **argv ) {
} }
// Read in each MCS file and build BLER-SINR-TB table // Read in each MCS file and build BLER-SINR-TB table
static void init_bler_table(void) { static void init_bler_table(char *env_string) {
memset(nr_bler_data, 0, sizeof(nr_bler_data)); memset(nr_bler_data, 0, sizeof(nr_bler_data));
const char *awgn_results_dir = getenv("AWGN_RESULTS_DIR"); const char *awgn_results_dir = getenv(env_string);
if (!awgn_results_dir) { if (!awgn_results_dir) {
LOG_W(NR_MAC, "No $AWGN_RESULTS_DIR\n"); LOG_W(NR_MAC, "No %s\n", env_string);
return; return;
} }
...@@ -577,7 +589,7 @@ static void init_bler_table(void) { ...@@ -577,7 +589,7 @@ static void init_bler_table(void) {
continue; continue;
} }
if (nlines > NUM_SINR) { if (nlines > NR_NUM_SINR) {
LOG_E(NR_MAC, "BLER FILE ERROR - num lines greater than expected - file: %s\n", fName); LOG_E(NR_MAC, "BLER FILE ERROR - num lines greater than expected - file: %s\n", fName);
abort(); abort();
} }
......
export OPENAIR_HOME=$(pwd) export OPENAIR_HOME=$(pwd)
export OPENAIR_DIR=$(pwd) export OPENAIR_DIR=$(pwd)
export AWGN_RESULTS_DIR=$OPENAIR_DIR/openair1/SIMULATION/NR_PHY/BLER_SIMULATIONS/AWGN/AWGN_results export LTE_AWGN_RESULTS_DIR=$OPENAIR_DIR/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results
export NR_AWGN_RESULTS_DIR=$OPENAIR_DIR/openair1/SIMULATION/NR_PHY/BLER_SIMULATIONS/AWGN/AWGN_results
export NR_MIMO2x2_AWGN_RESULTS_DIR=$OPENAIR_DIR/openair1/SIMULATION/NR_PHY/BLER_SIMULATIONS/AWGN/AWGN_MIMO2x2_results
export OPENAIR1_DIR=$OPENAIR_HOME/openair1 export OPENAIR1_DIR=$OPENAIR_HOME/openair1
export OPENAIR2_DIR=$OPENAIR_HOME/openair2 export OPENAIR2_DIR=$OPENAIR_HOME/openair2
export OPENAIR3_DIR=$OPENAIR_HOME/openair3 export OPENAIR3_DIR=$OPENAIR_HOME/openair3
......
...@@ -53,6 +53,7 @@ queue_t nr_uci_ind_queue; ...@@ -53,6 +53,7 @@ queue_t nr_uci_ind_queue;
static void fill_uci_2_3_4(nfapi_nr_uci_pucch_pdu_format_2_3_4_t *pdu_2_3_4, static void fill_uci_2_3_4(nfapi_nr_uci_pucch_pdu_format_2_3_4_t *pdu_2_3_4,
fapi_nr_ul_config_pucch_pdu *pucch_pdu) fapi_nr_ul_config_pucch_pdu *pucch_pdu)
{ {
NR_UE_MAC_INST_t *mac = get_mac_inst(0);
memset(pdu_2_3_4, 0, sizeof(*pdu_2_3_4)); memset(pdu_2_3_4, 0, sizeof(*pdu_2_3_4));
pdu_2_3_4->handle = 0; pdu_2_3_4->handle = 0;
pdu_2_3_4->rnti = pucch_pdu->rnti; pdu_2_3_4->rnti = pucch_pdu->rnti;
...@@ -62,7 +63,7 @@ static void fill_uci_2_3_4(nfapi_nr_uci_pucch_pdu_format_2_3_4_t *pdu_2_3_4, ...@@ -62,7 +63,7 @@ static void fill_uci_2_3_4(nfapi_nr_uci_pucch_pdu_format_2_3_4_t *pdu_2_3_4,
pdu_2_3_4->rssi = 0; pdu_2_3_4->rssi = 0;
// TODO: Eventually check 38.212:Sect.631 to know when to use csi_part2, for now only using csi_part1 // TODO: Eventually check 38.212:Sect.631 to know when to use csi_part2, for now only using csi_part1
pdu_2_3_4->pduBitmap = 4; pdu_2_3_4->pduBitmap = 4;
pdu_2_3_4->csi_part1.csi_part1_bit_len = pucch_pdu->nr_of_symbols; pdu_2_3_4->csi_part1.csi_part1_bit_len = mac->nr_ue_emul_l1.num_csi_reports;
int csi_part1_byte_len = (int)((pdu_2_3_4->csi_part1.csi_part1_bit_len / 8) + 1); int csi_part1_byte_len = (int)((pdu_2_3_4->csi_part1.csi_part1_bit_len / 8) + 1);
AssertFatal(!pdu_2_3_4->csi_part1.csi_part1_payload, "pdu_2_3_4->csi_part1.csi_part1_payload != NULL\n"); AssertFatal(!pdu_2_3_4->csi_part1.csi_part1_payload, "pdu_2_3_4->csi_part1.csi_part1_payload != NULL\n");
pdu_2_3_4->csi_part1.csi_part1_payload = CALLOC(csi_part1_byte_len, pdu_2_3_4->csi_part1.csi_part1_payload = CALLOC(csi_part1_byte_len,
......
SNR;MCS;TBS;rate;err0;trials0;err1;trials1;err2;trials2;err3;trials3;dci_err
-15;0;1864;0.2344;1415;1500;0;0;0;0;0;0;0
-14.9;0;1864;0.2344;1401;1500;0;0;0;0;0;0;0
-14.8;0;1864;0.2344;1388;1500;0;0;0;0;0;0;0
-14.7;0;1864;0.2344;1375;1500;0;0;0;0;0;0;0
-14.6;0;1864;0.2344;1362;1500;0;0;0;0;0;0;0
-14.5;0;1864;0.2344;1349;1500;0;0;0;0;0;0;0
-14.4;0;1864;0.2344;1336;1500;0;0;0;0;0;0;0
-14.3;0;1864;0.2344;1324;1500;0;0;0;0;0;0;0
-14.2;0;1864;0.2344;1311;1500;0;0;0;0;0;0;0
-14.1;0;1864;0.2344;1299;1500;0;0;0;0;0;0;0
-14;0;1864;0.2344;1287;1500;0;0;0;0;0;0;0
-13.9;0;1864;0.2344;1275;1500;0;0;0;0;0;0;0
-13.8;0;1864;0.2344;1262;1500;0;0;0;0;0;0;0
-13.7;0;1864;0.2344;1251;1500;0;0;0;0;0;0;0
-13.6;0;1864;0.2344;1239;1500;0;0;0;0;0;0;0
-13.5;0;1864;0.2344;1227;1500;0;0;0;0;0;0;0
-13.4;0;1864;0.2344;1216;1500;0;0;0;0;0;0;0
-13.3;0;1864;0.2344;1204;1500;0;0;0;0;0;0;0
-13.2;0;1864;0.2344;1193;1500;0;0;0;0;0;0;0
-13.1;0;1864;0.2344;1181;1500;0;0;0;0;0;0;0
-13;0;1864;0.2344;1170;1500;0;0;0;0;0;0;0
-12.9;0;1864;0.2344;1159;1500;0;0;0;0;0;0;0
-12.8;0;1864;0.2344;1148;1500;0;0;0;0;0;0;0
-12.7;0;1864;0.2344;1137;1500;0;0;0;0;0;0;0
-12.6;0;1864;0.2344;1127;1500;0;0;0;0;0;0;0
-12.5;0;1864;0.2344;1116;1500;0;0;0;0;0;0;0
-12.4;0;1864;0.2344;1106;1500;0;0;0;0;0;0;0
-12.3;0;1864;0.2344;1095;1500;0;0;0;0;0;0;0
-12.2;0;1864;0.2344;1085;1500;0;0;0;0;0;0;0
-12.1;0;1864;0.2344;1075;1500;0;0;0;0;0;0;0
-12;0;1864;0.2344;1064;1500;0;0;0;0;0;0;0
-11.9;0;1864;0.2344;1050;1500;0;0;0;0;0;0;0
-11.8;0;1864;0.2344;1035;1500;0;0;0;0;0;0;0
-11.7;0;1864;0.2344;1021;1500;0;0;0;0;0;0;0
-11.6;0;1864;0.2344;1007;1500;0;0;0;0;0;0;0
-11.5;0;1864;0.2344;993;1500;0;0;0;0;0;0;0
-11.4;0;1864;0.2344;979;1500;0;0;0;0;0;0;0
-11.3;0;1864;0.2344;965;1500;0;0;0;0;0;0;0
-11.2;0;1864;0.2344;952;1500;0;0;0;0;0;0;0
-11.1;0;1864;0.2344;939;1500;0;0;0;0;0;0;0
-11;0;1864;0.2344;926;1500;0;0;0;0;0;0;0
-10.9;0;1864;0.2344;913;1500;0;0;0;0;0;0;0
-10.8;0;1864;0.2344;900;1500;0;0;0;0;0;0;0
-10.7;0;1864;0.2344;888;1500;0;0;0;0;0;0;0
-10.6;0;1864;0.2344;876;1500;0;0;0;0;0;0;0
-10.5;0;1864;0.2344;863;1500;0;0;0;0;0;0;0
-10.4;0;1864;0.2344;851;1500;0;0;0;0;0;0;0
-10.3;0;1864;0.2344;840;1500;0;0;0;0;0;0;0
-10.2;0;1864;0.2344;828;1500;0;0;0;0;0;0;0
-10.1;0;1864;0.2344;817;1500;0;0;0;0;0;0;0
-10;0;1864;0.2344;805;1500;0;0;0;0;0;0;0
-9.9;0;1864;0.2344;794;1500;0;0;0;0;0;0;0
-9.8;0;1864;0.2344;783;1500;0;0;0;0;0;0;0
-9.7;0;1864;0.2344;772;1500;0;0;0;0;0;0;0
-9.6;0;1864;0.2344;762;1500;0;0;0;0;0;0;0
-9.5;0;1864;0.2344;751;1500;0;0;0;0;0;0;0
-9.4;0;1864;0.2344;741;1500;0;0;0;0;0;0;0
-9.3;0;1864;0.2344;730;1500;0;0;0;0;0;0;0
-9.2;0;1864;0.2344;720;1500;0;0;0;0;0;0;0
-9.1;0;1864;0.2344;710;1500;0;0;0;0;0;0;0
-9;0;1864;0.2344;700;1500;0;0;0;0;0;0;0
-8.9;0;;;671;1500;0;0;0;0;0;0;0
-8.8;0;;;642;1500;0;0;0;0;0;0;0
-8.7;0;;;615;1500;0;0;0;0;0;0;0
-8.6;0;;;589;1500;0;0;0;0;0;0;0
-8.5;0;;;564;1500;0;0;0;0;0;0;0
-8.4;0;;;541;1500;0;0;0;0;0;0;0
-8.3;0;;;518;1500;0;0;0;0;0;0;0
-8.2;0;;;496;1500;0;0;0;0;0;0;0
-8.1;0;;;475;1500;0;0;0;0;0;0;0
-8;0;;;455;1500;0;0;0;0;0;0;0
-7.9;0;;;436;1500;0;0;0;0;0;0;0
-7.8;0;;;417;1500;0;0;0;0;0;0;0
-7.7;0;;;400;1500;0;0;0;0;0;0;0
-7.6;0;;;383;1500;0;0;0;0;0;0;0
-7.5;0;;;366;1500;0;0;0;0;0;0;0
-7.4;0;;;351;1500;0;0;0;0;0;0;0
-7.3;0;;;336;1500;0;0;0;0;0;0;0
-7.2;0;;;322;1500;0;0;0;0;0;0;0
-7.1;0;;;308;1500;0;0;0;0;0;0;0
-7;0;;;295;1500;0;0;0;0;0;0;0
-6.9;0;;;283;1500;0;0;0;0;0;0;0
-6.8;0;;;271;1500;0;0;0;0;0;0;0
-6.7;0;;;259;1500;0;0;0;0;0;0;0
-6.6;0;;;248;1500;0;0;0;0;0;0;0
-6.5;0;;;238;1500;0;0;0;0;0;0;0
-6.4;0;;;228;1500;0;0;0;0;0;0;0
-6.3;0;;;218;1500;0;0;0;0;0;0;0
-6.2;0;;;209;1500;0;0;0;0;0;0;0
-6.1;0;;;200;1500;0;0;0;0;0;0;0
-6;0;;;192;1500;0;0;0;0;0;0;0
-5.9;0;;;171;1500;0;0;0;0;0;0;0
-5.8;0;;;152;1500;0;0;0;0;0;0;0
-5.7;0;;;136;1500;0;0;0;0;0;0;0
-5.6;0;;;121;1500;0;0;0;0;0;0;0
-5.5;0;;;108;1500;0;0;0;0;0;0;0
-5.4;0;;;96;1500;0;0;0;0;0;0;0
-5.3;0;;;85;1500;0;0;0;0;0;0;0
-5.2;0;;;76;1500;0;0;0;0;0;0;0
-5.1;0;;;68;1500;0;0;0;0;0;0;0
-5;0;;;60;1500;0;0;0;0;0;0;0
-4.9;0;;;54;1500;0;0;0;0;0;0;0
-4.8;0;;;48;1500;0;0;0;0;0;0;0
-4.7;0;;;43;1500;0;0;0;0;0;0;0
-4.6;0;;;38;1500;0;0;0;0;0;0;0
-4.5;0;;;34;1500;0;0;0;0;0;0;0
-4.4;0;;;30;1500;0;0;0;0;0;0;0
-4.3;0;;;27;1500;0;0;0;0;0;0;0
-4.2;0;;;24;1500;0;0;0;0;0;0;0
-4.1;0;;;21;1500;0;0;0;0;0;0;0
-4;0;;;19;1500;0;0;0;0;0;0;0
-3.9;0;;;17;1500;0;0;0;0;0;0;0
-3.8;0;;;15;1500;0;0;0;0;0;0;0
-3.7;0;;;13;1500;0;0;0;0;0;0;0
-3.6;0;;;12;1500;0;0;0;0;0;0;0
-3.5;0;;;11;1500;0;0;0;0;0;0;0
-3.4;0;;;10;1500;0;0;0;0;0;0;0
-3.3;0;;;8;1500;0;0;0;0;0;0;0
-3.2;0;;;8;1500;0;0;0;0;0;0;0
-3.1;0;;;7;1500;0;0;0;0;0;0;0
-3;0;;;6;1500;0;0;0;0;0;0;0
-2.9;0;;;0;1500;0;0;0;0;0;0;0
-2.8;0;;;0;1500;0;0;0;0;0;0;0
-2.7;0;;;0;1500;0;0;0;0;0;0;0
-2.6;0;;;0;1500;0;0;0;0;0;0;0
-2.5;0;;;0;1500;0;0;0;0;0;0;0
-2.4;0;;;0;1500;0;0;0;0;0;0;0
-2.3;0;;;0;1500;0;0;0;0;0;0;0
-2.2;0;;;0;1500;0;0;0;0;0;0;0
-2.1;0;;;0;1500;0;0;0;0;0;0;0
-2;0;;;0;1500;0;0;0;0;0;0;0
-1.9;0;;;0;1500;0;0;0;0;0;0;0
-1.8;0;;;0;1500;0;0;0;0;0;0;0
-1.7;0;;;0;1500;0;0;0;0;0;0;0
-1.6;0;;;0;1500;0;0;0;0;0;0;0
-1.5;0;;;0;1500;0;0;0;0;0;0;0
-1.4;0;;;0;1500;0;0;0;0;0;0;0
-1.3;0;;;0;1500;0;0;0;0;0;0;0
-1.2;0;;;0;1500;0;0;0;0;0;0;0
-1.1;0;;;0;1500;0;0;0;0;0;0;0
-1;0;;;0;1500;0;0;0;0;0;0;0
-0.9;0;;;0;1500;0;0;0;0;0;0;0
-0.8;0;;;0;1500;0;0;0;0;0;0;0
-0.7;0;;;0;1500;0;0;0;0;0;0;0
-0.6;0;;;0;1500;0;0;0;0;0;0;0
-0.5;0;;;0;1500;0;0;0;0;0;0;0
-0.4;0;;;0;1500;0;0;0;0;0;0;0
-0.3;0;;;0;1500;0;0;0;0;0;0;0
-0.2;0;;;0;1500;0;0;0;0;0;0;0
-0.1;0;;;0;1500;0;0;0;0;0;0;0
0;0;;;0;1500;0;0;0;0;0;0;0
SNR;MCS;TBS;rate;err0;trials0;err1;trials1;err2;trials2;err3;trials3;dci_err
-15;1;2472;0.3066;1491;1500;0;0;0;0;0;0;0
-14.9;1;2472;0.3066;1481;1500;0;0;0;0;0;0;0
-14.8;1;2472;0.3066;1472;1500;0;0;0;0;0;0;0
-14.7;1;2472;0.3066;1463;1500;0;0;0;0;0;0;0
-14.6;1;2472;0.3066;1454;1500;0;0;0;0;0;0;0
-14.5;1;2472;0.3066;1445;1500;0;0;0;0;0;0;0
-14.4;1;2472;0.3066;1436;1500;0;0;0;0;0;0;0
-14.3;1;2472;0.3066;1427;1500;0;0;0;0;0;0;0
-14.2;1;2472;0.3066;1418;1500;0;0;0;0;0;0;0
-14.1;1;2472;0.3066;1409;1500;0;0;0;0;0;0;0
-14;1;2472;0.3066;1400;1500;0;0;0;0;0;0;0
-13.9;1;2472;0.3066;1392;1500;0;0;0;0;0;0;0
-13.8;1;2472;0.3066;1383;1500;0;0;0;0;0;0;0
-13.7;1;2472;0.3066;1374;1500;0;0;0;0;0;0;0
-13.6;1;2472;0.3066;1366;1500;0;0;0;0;0;0;0
-13.5;1;2472;0.3066;1357;1500;0;0;0;0;0;0;0
-13.4;1;2472;0.3066;1349;1500;0;0;0;0;0;0;0
-13.3;1;2472;0.3066;1341;1500;0;0;0;0;0;0;0
-13.2;1;2472;0.3066;1332;1500;0;0;0;0;0;0;0
-13.1;1;2472;0.3066;1324;1500;0;0;0;0;0;0;0
-13;1;2472;0.3066;1316;1500;0;0;0;0;0;0;0
-12.9;1;2472;0.3066;1307;1500;0;0;0;0;0;0;0
-12.8;1;2472;0.3066;1299;1500;0;0;0;0;0;0;0
-12.7;1;2472;0.3066;1291;1500;0;0;0;0;0;0;0
-12.6;1;2472;0.3066;1283;1500;0;0;0;0;0;0;0
-12.5;1;2472;0.3066;1275;1500;0;0;0;0;0;0;0
-12.4;1;2472;0.3066;1267;1500;0;0;0;0;0;0;0
-12.3;1;2472;0.3066;1259;1500;0;0;0;0;0;0;0
-12.2;1;2472;0.3066;1251;1500;0;0;0;0;0;0;0
-12.1;1;2472;0.3066;1244;1500;0;0;0;0;0;0;0
-12;1;2472;0.3066;1236;1500;0;0;0;0;0;0;0
-11.9;1;2472;0.3066;1222;1500;0;0;0;0;0;0;0
-11.8;1;2472;0.3066;1207;1500;0;0;0;0;0;0;0
-11.7;1;2472;0.3066;1193;1500;0;0;0;0;0;0;0
-11.6;1;2472;0.3066;1179;1500;0;0;0;0;0;0;0
-11.5;1;2472;0.3066;1166;1500;0;0;0;0;0;0;0
-11.4;1;2472;0.3066;1152;1500;0;0;0;0;0;0;0
-11.3;1;2472;0.3066;1139;1500;0;0;0;0;0;0;0
-11.2;1;2472;0.3066;1126;1500;0;0;0;0;0;0;0
-11.1;1;2472;0.3066;1113;1500;0;0;0;0;0;0;0
-11;1;2472;0.3066;1100;1500;0;0;0;0;0;0;0
-10.9;1;2472;0.3066;1087;1500;0;0;0;0;0;0;0
-10.8;1;2472;0.3066;1074;1500;0;0;0;0;0;0;0
-10.7;1;2472;0.3066;1062;1500;0;0;0;0;0;0;0
-10.6;1;2472;0.3066;1049;1500;0;0;0;0;0;0;0
-10.5;1;2472;0.3066;1037;1500;0;0;0;0;0;0;0
-10.4;1;2472;0.3066;1025;1500;0;0;0;0;0;0;0
-10.3;1;2472;0.3066;1013;1500;0;0;0;0;0;0;0
-10.2;1;2472;0.3066;1001;1500;0;0;0;0;0;0;0
-10.1;1;2472;0.3066;990;1500;0;0;0;0;0;0;0
-10;1;2472;0.3066;978;1500;0;0;0;0;0;0;0
-9.9;1;2472;0.3066;967;1500;0;0;0;0;0;0;0
-9.8;1;2472;0.3066;956;1500;0;0;0;0;0;0;0
-9.7;1;2472;0.3066;945;1500;0;0;0;0;0;0;0
-9.6;1;2472;0.3066;934;1500;0;0;0;0;0;0;0
-9.5;1;2472;0.3066;923;1500;0;0;0;0;0;0;0
-9.4;1;2472;0.3066;912;1500;0;0;0;0;0;0;0
-9.3;1;2472;0.3066;902;1500;0;0;0;0;0;0;0
-9.2;1;2472;0.3066;891;1500;0;0;0;0;0;0;0
-9.1;1;2472;0.3066;881;1500;0;0;0;0;0;0;0
-9;1;2472;0.3066;870;1500;0;0;0;0;0;0;0
-8.9;1;2472;0.3066;847;1500;0;0;0;0;0;0;0
-8.8;1;2472;0.3066;825;1500;0;0;0;0;0;0;0
-8.7;1;2472;0.3066;802;1500;0;0;0;0;0;0;0
-8.6;1;2472;0.3066;781;1500;0;0;0;0;0;0;0
-8.5;1;2472;0.3066;760;1500;0;0;0;0;0;0;0
-8.4;1;2472;0.3066;740;1500;0;0;0;0;0;0;0
-8.3;1;2472;0.3066;720;1500;0;0;0;0;0;0;0
-8.2;1;2472;0.3066;701;1500;0;0;0;0;0;0;0
-8.1;1;2472;0.3066;682;1500;0;0;0;0;0;0;0
-8;1;2472;0.3066;664;1500;0;0;0;0;0;0;0
-7.9;1;2472;0.3066;646;1500;0;0;0;0;0;0;0
-7.8;1;2472;0.3066;629;1500;0;0;0;0;0;0;0
-7.7;1;2472;0.3066;612;1500;0;0;0;0;0;0;0
-7.6;1;2472;0.3066;596;1500;0;0;0;0;0;0;0
-7.5;1;2472;0.3066;580;1500;0;0;0;0;0;0;0
-7.4;1;2472;0.3066;564;1500;0;0;0;0;0;0;0
-7.3;1;2472;0.3066;549;1500;0;0;0;0;0;0;0
-7.2;1;2472;0.3066;534;1500;0;0;0;0;0;0;0
-7.1;1;2472;0.3066;520;1500;0;0;0;0;0;0;0
-7;1;2472;0.3066;506;1500;0;0;0;0;0;0;0
-6.9;1;2472;0.3066;493;1500;0;0;0;0;0;0;0
-6.8;1;2472;0.3066;480;1500;0;0;0;0;0;0;0
-6.7;1;2472;0.3066;467;1500;0;0;0;0;0;0;0
-6.6;1;2472;0.3066;454;1500;0;0;0;0;0;0;0
-6.5;1;2472;0.3066;442;1500;0;0;0;0;0;0;0
-6.4;1;2472;0.3066;430;1500;0;0;0;0;0;0;0
-6.3;1;2472;0.3066;419;1500;0;0;0;0;0;0;0
-6.2;1;2472;0.3066;408;1500;0;0;0;0;0;0;0
-6.1;1;2472;0.3066;397;1500;0;0;0;0;0;0;0
-6;1;2472;0.3066;386;1500;0;0;0;0;0;0;0
-5.9;1;2472;0.3066;355;1500;0;0;0;0;0;0;0
-5.8;1;2472;0.3066;326;1500;0;0;0;0;0;0;0
-5.7;1;2472;0.3066;300;1500;0;0;0;0;0;0;0
-5.6;1;2472;0.3066;276;1500;0;0;0;0;0;0;0
-5.5;1;2472;0.3066;253;1500;0;0;0;0;0;0;0
-5.4;1;2472;0.3066;233;1500;0;0;0;0;0;0;0
-5.3;1;2472;0.3066;214;1500;0;0;0;0;0;0;0
-5.2;1;2472;0.3066;197;1500;0;0;0;0;0;0;0
-5.1;1;2472;0.3066;181;1500;0;0;0;0;0;0;0
-5;1;2472;0.3066;166;1500;0;0;0;0;0;0;0
-4.9;1;2472;0.3066;153;1500;0;0;0;0;0;0;0
-4.8;1;2472;0.3066;141;1500;0;0;0;0;0;0;0
-4.7;1;2472;0.3066;129;1500;0;0;0;0;0;0;0
-4.6;1;2472;0.3066;119;1500;0;0;0;0;0;0;0
-4.5;1;2472;0.3066;109;1500;0;0;0;0;0;0;0
-4.4;1;2472;0.3066;100;1500;0;0;0;0;0;0;0
-4.3;1;2472;0.3066;92;1500;0;0;0;0;0;0;0
-4.2;1;2472;0.3066;85;1500;0;0;0;0;0;0;0
-4.1;1;2472;0.3066;78;1500;0;0;0;0;0;0;0
-4;1;2472;0.3066;72;1500;0;0;0;0;0;0;0
-3.9;1;2472;0.3066;66;1500;0;0;0;0;0;0;0
-3.8;1;2472;0.3066;61;1500;0;0;0;0;0;0;0
-3.7;1;2472;0.3066;56;1500;0;0;0;0;0;0;0
-3.6;1;2472;0.3066;51;1500;0;0;0;0;0;0;0
-3.5;1;2472;0.3066;47;1500;0;0;0;0;0;0;0
-3.4;1;2472;0.3066;43;1500;0;0;0;0;0;0;0
-3.3;1;2472;0.3066;40;1500;0;0;0;0;0;0;0
-3.2;1;2472;0.3066;37;1500;0;0;0;0;0;0;0
-3.1;1;2472;0.3066;34;1500;0;0;0;0;0;0;0
-3;1;2472;0.3066;31;1500;0;0;0;0;0;0;0
-2.9;1;2472;0.3066;26;1500;0;0;0;0;0;0;0
-2.8;1;2472;0.3066;22;1500;0;0;0;0;0;0;0
-2.7;1;2472;0.3066;18;1500;0;0;0;0;0;0;0
-2.6;1;2472;0.3066;15;1500;0;0;0;0;0;0;0
-2.5;1;2472;0.3066;13;1500;0;0;0;0;0;0;0
-2.4;1;2472;0.3066;11;1500;0;0;0;0;0;0;0
-2.3;1;2472;0.3066;9;1500;0;0;0;0;0;0;0
-2.2;1;2472;0.3066;7;1500;0;0;0;0;0;0;0
-2.1;1;2472;0.3066;6;1500;0;0;0;0;0;0;0
-2;1;2472;0.3066;5;1500;0;0;0;0;0;0;0
-1.9;1;2472;0.3066;4;1500;0;0;0;0;0;0;0
-1.8;1;2472;0.3066;4;1500;0;0;0;0;0;0;0
-1.7;1;2472;0.3066;3;1500;0;0;0;0;0;0;0
-1.6;1;2472;0.3066;3;1500;0;0;0;0;0;0;0
-1.5;1;2472;0.3066;2;1500;0;0;0;0;0;0;0
-1.4;1;2472;0.3066;2;1500;0;0;0;0;0;0;0
-1.3;1;2472;0.3066;2;1500;0;0;0;0;0;0;0
-1.2;1;2472;0.3066;1;1500;0;0;0;0;0;0;0
-1.1;1;2472;0.3066;1;1500;0;0;0;0;0;0;0
-1;1;2472;0.3066;1;1500;0;0;0;0;0;0;0
-0.9;1;2472;0.3066;1;1500;0;0;0;0;0;0;0
-0.8;1;2472;0.3066;1;1500;0;0;0;0;0;0;0
-0.7;1;2472;0.3066;1;1500;0;0;0;0;0;0;0
-0.6;1;2472;0.3066;0;1500;0;0;0;0;0;0;0
-0.5;1;2472;0.3066;0;1500;0;0;0;0;0;0;0
-0.4;1;2472;0.3066;0;1500;0;0;0;0;0;0;0
-0.3;1;2472;0.3066;0;1500;0;0;0;0;0;0;0
-0.2;1;2472;0.3066;0;1500;0;0;0;0;0;0;0
-0.1;1;2472;0.3066;0;1500;0;0;0;0;0;0;0
0;1;2472;0.3066;0;1500;0;0;0;0;0;0;0
SNR;MCS;TBS;rate;err0;trials0;err1;trials1;err2;trials2;err3;trials3;dci_err
-15;2;2976;0.377;1500;1500;0;0;0;0;0;0;0
-14.9;2;2976;0.377;1494;1500;0;0;0;0;0;0;0
-14.8;2;2976;0.377;1489;1500;0;0;0;0;0;0;0
-14.7;2;2976;0.377;1484;1500;0;0;0;0;0;0;0
-14.6;2;2976;0.377;1479;1500;0;0;0;0;0;0;0
-14.5;2;2976;0.377;1473;1500;0;0;0;0;0;0;0
-14.4;2;2976;0.377;1468;1500;0;0;0;0;0;0;0
-14.3;2;2976;0.377;1463;1500;0;0;0;0;0;0;0
-14.2;2;2976;0.377;1458;1500;0;0;0;0;0;0;0
-14.1;2;2976;0.377;1453;1500;0;0;0;0;0;0;0
-14;2;2976;0.377;1448;1500;0;0;0;0;0;0;0
-13.9;2;2976;0.377;1443;1500;0;0;0;0;0;0;0
-13.8;2;2976;0.377;1438;1500;0;0;0;0;0;0;0
-13.7;2;2976;0.377;1433;1500;0;0;0;0;0;0;0
-13.6;2;2976;0.377;1427;1500;0;0;0;0;0;0;0
-13.5;2;2976;0.377;1422;1500;0;0;0;0;0;0;0
-13.4;2;2976;0.377;1417;1500;0;0;0;0;0;0;0
-13.3;2;2976;0.377;1412;1500;0;0;0;0;0;0;0
-13.2;2;2976;0.377;1407;1500;0;0;0;0;0;0;0
-13.1;2;2976;0.377;1403;1500;0;0;0;0;0;0;0
-13;2;2976;0.377;1398;1500;0;0;0;0;0;0;0
-12.9;2;2976;0.377;1393;1500;0;0;0;0;0;0;0
-12.8;2;2976;0.377;1388;1500;0;0;0;0;0;0;0
-12.7;2;2976;0.377;1383;1500;0;0;0;0;0;0;0
-12.6;2;2976;0.377;1378;1500;0;0;0;0;0;0;0
-12.5;2;2976;0.377;1373;1500;0;0;0;0;0;0;0
-12.4;2;2976;0.377;1368;1500;0;0;0;0;0;0;0
-12.3;2;2976;0.377;1364;1500;0;0;0;0;0;0;0
-12.2;2;2976;0.377;1359;1500;0;0;0;0;0;0;0
-12.1;2;2976;0.377;1354;1500;0;0;0;0;0;0;0
-12;2;2976;0.377;1349;1500;0;0;0;0;0;0;0
-11.9;2;2976;0.377;1335;1500;0;0;0;0;0;0;0
-11.8;2;2976;0.377;1321;1500;0;0;0;0;0;0;0
-11.7;2;2976;0.377;1308;1500;0;0;0;0;0;0;0
-11.6;2;2976;0.377;1294;1500;0;0;0;0;0;0;0
-11.5;2;2976;0.377;1281;1500;0;0;0;0;0;0;0
-11.4;2;2976;0.377;1267;1500;0;0;0;0;0;0;0
-11.3;2;2976;0.377;1254;1500;0;0;0;0;0;0;0
-11.2;2;2976;0.377;1241;1500;0;0;0;0;0;0;0
-11.1;2;2976;0.377;1228;1500;0;0;0;0;0;0;0
-11;2;2976;0.377;1216;1500;0;0;0;0;0;0;0
-10.9;2;2976;0.377;1203;1500;0;0;0;0;0;0;0
-10.8;2;2976;0.377;1191;1500;0;0;0;0;0;0;0
-10.7;2;2976;0.377;1178;1500;0;0;0;0;0;0;0
-10.6;2;2976;0.377;1166;1500;0;0;0;0;0;0;0
-10.5;2;2976;0.377;1154;1500;0;0;0;0;0;0;0
-10.4;2;2976;0.377;1142;1500;0;0;0;0;0;0;0
-10.3;2;2976;0.377;1130;1500;0;0;0;0;0;0;0
-10.2;2;2976;0.377;1119;1500;0;0;0;0;0;0;0
-10.1;2;2976;0.377;1107;1500;0;0;0;0;0;0;0
-10;2;2976;0.377;1095;1500;0;0;0;0;0;0;0
-9.9;2;2976;0.377;1084;1500;0;0;0;0;0;0;0
-9.8;2;2976;0.377;1073;1500;0;0;0;0;0;0;0
-9.7;2;2976;0.377;1062;1500;0;0;0;0;0;0;0
-9.6;2;2976;0.377;1051;1500;0;0;0;0;0;0;0
-9.5;2;2976;0.377;1040;1500;0;0;0;0;0;0;0
-9.4;2;2976;0.377;1029;1500;0;0;0;0;0;0;0
-9.3;2;2976;0.377;1018;1500;0;0;0;0;0;0;0
-9.2;2;2976;0.377;1008;1500;0;0;0;0;0;0;0
-9.1;2;2976;0.377;997;1500;0;0;0;0;0;0;0
-9;2;2976;0.377;987;1500;0;0;0;0;0;0;0
-8.9;2;2976;0.377;970;1500;0;0;0;0;0;0;0
-8.8;2;2976;0.377;953;1500;0;0;0;0;0;0;0
-8.7;2;2976;0.377;937;1500;0;0;0;0;0;0;0
-8.6;2;2976;0.377;921;1500;0;0;0;0;0;0;0
-8.5;2;2976;0.377;905;1500;0;0;0;0;0;0;0
-8.4;2;2976;0.377;889;1500;0;0;0;0;0;0;0
-8.3;2;2976;0.377;874;1500;0;0;0;0;0;0;0
-8.2;2;2976;0.377;859;1500;0;0;0;0;0;0;0
-8.1;2;2976;0.377;844;1500;0;0;0;0;0;0;0
-8;2;2976;0.377;829;1500;0;0;0;0;0;0;0
-7.9;2;2976;0.377;815;1500;0;0;0;0;0;0;0
-7.8;2;2976;0.377;801;1500;0;0;0;0;0;0;0
-7.7;2;2976;0.377;787;1500;0;0;0;0;0;0;0
-7.6;2;2976;0.377;773;1500;0;0;0;0;0;0;0
-7.5;2;2976;0.377;760;1500;0;0;0;0;0;0;0
-7.4;2;2976;0.377;747;1500;0;0;0;0;0;0;0
-7.3;2;2976;0.377;734;1500;0;0;0;0;0;0;0
-7.2;2;2976;0.377;721;1500;0;0;0;0;0;0;0
-7.1;2;2976;0.377;709;1500;0;0;0;0;0;0;0
-7;2;2976;0.377;697;1500;0;0;0;0;0;0;0
-6.9;2;2976;0.377;685;1500;0;0;0;0;0;0;0
-6.8;2;2976;0.377;673;1500;0;0;0;0;0;0;0
-6.7;2;2976;0.377;661;1500;0;0;0;0;0;0;0
-6.6;2;2976;0.377;650;1500;0;0;0;0;0;0;0
-6.5;2;2976;0.377;639;1500;0;0;0;0;0;0;0
-6.4;2;2976;0.377;628;1500;0;0;0;0;0;0;0
-6.3;2;2976;0.377;617;1500;0;0;0;0;0;0;0
-6.2;2;2976;0.377;606;1500;0;0;0;0;0;0;0
-6.1;2;2976;0.377;596;1500;0;0;0;0;0;0;0
-6;2;2976;0.377;585;1500;0;0;0;0;0;0;0
-5.9;2;2976;0.377;555;1500;0;0;0;0;0;0;0
-5.8;2;2976;0.377;527;1500;0;0;0;0;0;0;0
-5.7;2;2976;0.377;500;1500;0;0;0;0;0;0;0
-5.6;2;2976;0.377;474;1500;0;0;0;0;0;0;0
-5.5;2;2976;0.377;450;1500;0;0;0;0;0;0;0
-5.4;2;2976;0.377;427;1500;0;0;0;0;0;0;0
-5.3;2;2976;0.377;405;1500;0;0;0;0;0;0;0
-5.2;2;2976;0.377;384;1500;0;0;0;0;0;0;0
-5.1;2;2976;0.377;365;1500;0;0;0;0;0;0;0
-5;2;2976;0.377;346;1500;0;0;0;0;0;0;0
-4.9;2;2976;0.377;328;1500;0;0;0;0;0;0;0
-4.8;2;2976;0.377;312;1500;0;0;0;0;0;0;0
-4.7;2;2976;0.377;296;1500;0;0;0;0;0;0;0
-4.6;2;2976;0.377;280;1500;0;0;0;0;0;0;0
-4.5;2;2976;0.377;266;1500;0;0;0;0;0;0;0
-4.4;2;2976;0.377;252;1500;0;0;0;0;0;0;0
-4.3;2;2976;0.377;240;1500;0;0;0;0;0;0;0
-4.2;2;2976;0.377;227;1500;0;0;0;0;0;0;0
-4.1;2;2976;0.377;216;1500;0;0;0;0;0;0;0
-4;2;2976;0.377;205;1500;0;0;0;0;0;0;0
-3.9;2;2976;0.377;194;1500;0;0;0;0;0;0;0
-3.8;2;2976;0.377;184;1500;0;0;0;0;0;0;0
-3.7;2;2976;0.377;175;1500;0;0;0;0;0;0;0
-3.6;2;2976;0.377;166;1500;0;0;0;0;0;0;0
-3.5;2;2976;0.377;157;1500;0;0;0;0;0;0;0
-3.4;2;2976;0.377;149;1500;0;0;0;0;0;0;0
-3.3;2;2976;0.377;142;1500;0;0;0;0;0;0;0
-3.2;2;2976;0.377;134;1500;0;0;0;0;0;0;0
-3.1;2;2976;0.377;128;1500;0;0;0;0;0;0;0
-3;2;2976;0.377;121;1500;0;0;0;0;0;0;0
-2.9;2;2976;0.377;107;1500;0;0;0;0;0;0;0
-2.8;2;2976;0.377;94;1500;0;0;0;0;0;0;0
-2.7;2;2976;0.377;83;1500;0;0;0;0;0;0;0
-2.6;2;2976;0.377;73;1500;0;0;0;0;0;0;0
-2.5;2;2976;0.377;64;1500;0;0;0;0;0;0;0
-2.4;2;2976;0.377;57;1500;0;0;0;0;0;0;0
-2.3;2;2976;0.377;50;1500;0;0;0;0;0;0;0
-2.2;2;2976;0.377;44;1500;0;0;0;0;0;0;0
-2.1;2;2976;0.377;39;1500;0;0;0;0;0;0;0
-2;2;2976;0.377;34;1500;0;0;0;0;0;0;0
-1.9;2;2976;0.377;30;1500;0;0;0;0;0;0;0
-1.8;2;2976;0.377;27;1500;0;0;0;0;0;0;0
-1.7;2;2976;0.377;24;1500;0;0;0;0;0;0;0
-1.6;2;2976;0.377;21;1500;0;0;0;0;0;0;0
-1.5;2;2976;0.377;18;1500;0;0;0;0;0;0;0
-1.4;2;2976;0.377;16;1500;0;0;0;0;0;0;0
-1.3;2;2976;0.377;14;1500;0;0;0;0;0;0;0
-1.2;2;2976;0.377;13;1500;0;0;0;0;0;0;0
-1.1;2;2976;0.377;11;1500;0;0;0;0;0;0;0
-1;2;2976;0.377;10;1500;0;0;0;0;0;0;0
-0.9;2;2976;0.377;9;1500;0;0;0;0;0;0;0
-0.8;2;2976;0.377;8;1500;0;0;0;0;0;0;0
-0.7;2;2976;0.377;7;1500;0;0;0;0;0;0;0
-0.6;2;2976;0.377;6;1500;0;0;0;0;0;0;0
-0.5;2;2976;0.377;5;1500;0;0;0;0;0;0;0
-0.4;2;2976;0.377;5;1500;0;0;0;0;0;0;0
-0.3;2;2976;0.377;4;1500;0;0;0;0;0;0;0
-0.2;2;2976;0.377;4;1500;0;0;0;0;0;0;0
-0.1;2;2976;0.377;3;1500;0;0;0;0;0;0;0
0;2;2976;0.377;3;1500;0;0;0;0;0;0;0
0.1;2;2976;0.377;0;1500;0;0;0;0;0;0;0
# Overview of AWGN BLER Table #
Look-up tables of performance versus signal-to-noise ratio (SNR) are obtained via PHY simulations in additive white Gaussian noise (AWGN) channels. Then, to evaluate the BLER of fading channel, we map the received SINR to an AWGN curve using these look-up tables. Note that due to time/frequency selective fading, the received SINR value for each packet/ resource block varies. This requires the computation of AWGN equivalent SINR, also generally known as effective SINR, by mapping the individual symbol SINRs to a scalar. Then, the performance of the PHY in a fading channel at a given effective SINR is equivalent to the performance in AWGN channel.
## AWGN_results ##
The provided simulation results are for NR SISO channel modeling.
## AWGN_MIMO 2x2_results ##
The provided simulation results are for NR MIMO 2x2 channel modeling.
# Table Generation Method #
The tables result from an exponential effective SINR mapping (EESM) and comparison to MATLAB link-level simulation models.
# Limitations #
These BLER curves are used in the packet dropping abstraction process.
The curves in the tables can be used under the condition of L1 abstraction mode and packet dropping abstraction process.
...@@ -300,6 +300,9 @@ typedef struct { ...@@ -300,6 +300,9 @@ typedef struct {
int num_srs; int num_srs;
int num_harqs; int num_harqs;
int num_csi_reports; int num_csi_reports;
uint8_t pmi;
uint8_t ri;
uint8_t cqi;
} nr_emulated_l1_t; } nr_emulated_l1_t;
typedef struct { typedef struct {
......
...@@ -50,6 +50,7 @@ ...@@ -50,6 +50,7 @@
#include "NR_MAC_UE/mac_extern.h" #include "NR_MAC_UE/mac_extern.h"
#include "NR_MAC_COMMON/nr_mac_extern.h" #include "NR_MAC_COMMON/nr_mac_extern.h"
#include "common/utils/nr/nr_common.h" #include "common/utils/nr/nr_common.h"
#include "openair2/NR_UE_PHY_INTERFACE/NR_Packet_Drop.h"
/* PHY */ /* PHY */
#include "PHY/NR_TRANSPORT/nr_dci.h" #include "PHY/NR_TRANSPORT/nr_dci.h"
...@@ -2694,6 +2695,17 @@ uint8_t get_csirs_RI_PMI_CQI_payload(NR_UE_MAC_INST_t *mac, ...@@ -2694,6 +2695,17 @@ uint8_t get_csirs_RI_PMI_CQI_payload(NR_UE_MAC_INST_t *mac,
int cqi_bitlen = csi_report->csi_meas_bitlen.cqi_bitlen[mac->csirs_measurements.rank_indicator]; int cqi_bitlen = csi_report->csi_meas_bitlen.cqi_bitlen[mac->csirs_measurements.rank_indicator];
int padding_bitlen = n_bits - (cri_bitlen + ri_bitlen + pmi_x1_bitlen + pmi_x2_bitlen + cqi_bitlen); int padding_bitlen = n_bits - (cri_bitlen + ri_bitlen + pmi_x1_bitlen + pmi_x2_bitlen + cqi_bitlen);
if (get_softmodem_params()->emulate_l1) {
static const uint8_t mcs_to_cqi[] = {0, 1, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9,
10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15};
CHECK_INDEX(nr_bler_data, NR_NUM_MCS - 1);
int mcs = get_mcs_from_sinr(nr_bler_data, (mac->nr_ue_emul_l1.cqi - 640) * 0.1);
CHECK_INDEX(mcs_to_cqi, mcs);
mac->csirs_measurements.rank_indicator = mac->nr_ue_emul_l1.ri;
mac->csirs_measurements.i1 = mac->nr_ue_emul_l1.pmi;
mac->csirs_measurements.cqi = mcs_to_cqi[mcs];
}
// TODO: Improvements will be needed to cri_bitlen>0 and pmi_x1_bitlen>0 // TODO: Improvements will be needed to cri_bitlen>0 and pmi_x1_bitlen>0
temp_payload = (mac->csirs_measurements.rank_indicator<<(cri_bitlen+cqi_bitlen+pmi_x2_bitlen+padding_bitlen+pmi_x1_bitlen)) | temp_payload = (mac->csirs_measurements.rank_indicator<<(cri_bitlen+cqi_bitlen+pmi_x2_bitlen+padding_bitlen+pmi_x1_bitlen)) |
(mac->csirs_measurements.i1<<(cri_bitlen+cqi_bitlen+pmi_x2_bitlen)) | (mac->csirs_measurements.i1<<(cri_bitlen+cqi_bitlen+pmi_x2_bitlen)) |
......
...@@ -37,6 +37,7 @@ ...@@ -37,6 +37,7 @@
#include "LAYER2/nr_rlc/nr_rlc_oai_api.h" #include "LAYER2/nr_rlc/nr_rlc_oai_api.h"
#include <openair3/ocp-gtpu/gtp_itf.h> #include <openair3/ocp-gtpu/gtp_itf.h>
#include "openair2/SDAP/nr_sdap/nr_sdap.h" #include "openair2/SDAP/nr_sdap/nr_sdap.h"
#include "executables/softmodem-common.h"
#define TODO do { \ #define TODO do { \
printf("%s:%d:%s: todo\n", __FILE__, __LINE__, __FUNCTION__); \ printf("%s:%d:%s: todo\n", __FILE__, __LINE__, __FUNCTION__); \
......
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment