mprime=0;// mprime = 0,1 for NB_IoT // for LTE , maximum number of resources blocks (110) - the total number of RB in the selected bandwidth (.... 15 , 25 , 50, 100)
//mprime = 0; // mprime = 0,1 for NB_IoT // for LTE , maximum number of resources blocks (110) - the total number of RB in the selected bandwidth (.... 15 , 25 , 50, 100)
@@ -192,7 +197,7 @@ int dci_allocate_REs_in_RB_NB_IoT(NB_IoT_DL_FRAME_PARMS *frame_parms,
...
@@ -192,7 +197,7 @@ int dci_allocate_REs_in_RB_NB_IoT(NB_IoT_DL_FRAME_PARMS *frame_parms,
if(pilots!=1||re%3!=id_offset)// if re is not a pilot
if(pilots!=1||re%3!=id_offset)// if re is not a pilot
{
{
// diff_re = re%3 - id_offset;
// diff_re = re%3 - id_offset;
if (mimo_mode == SISO) { //SISO mapping
if(mimo_mode==SISO_NB_IoT){//SISO mapping
*re_allocated=*re_allocated+1;// variable incremented but never used
*re_allocated=*re_allocated+1;// variable incremented but never used
for(aa=0;aa<frame_parms->nb_antennas_tx;aa++){
for(aa=0;aa<frame_parms->nb_antennas_tx;aa++){
...
@@ -204,7 +209,7 @@ int dci_allocate_REs_in_RB_NB_IoT(NB_IoT_DL_FRAME_PARMS *frame_parms,
...
@@ -204,7 +209,7 @@ int dci_allocate_REs_in_RB_NB_IoT(NB_IoT_DL_FRAME_PARMS *frame_parms,
}
}
*jj=*jj+1;
*jj=*jj+1;
} else if (mimo_mode == ALAMOUTI) {
}elseif(mimo_mode==ALAMOUTI_NB_IoT){
*re_allocated=*re_allocated+1;
*re_allocated=*re_allocated+1;
...
@@ -247,6 +252,7 @@ int dci_allocate_REs_in_RB_NB_IoT(NB_IoT_DL_FRAME_PARMS *frame_parms,
...
@@ -247,6 +252,7 @@ int dci_allocate_REs_in_RB_NB_IoT(NB_IoT_DL_FRAME_PARMS *frame_parms,
}
}
}
}
}elseif(agr_level==1&&dci_number==1){
}elseif(agr_level==1&&dci_number==1){
for(re=first_re;re<6;re++){// re varies between 0 and 6 sub-carriers
for(re=first_re;re<6;re++){// re varies between 0 and 6 sub-carriers
tti_offset=symbol_offset+re;// symbol_offset = 512 * L , re_offset = 512 - 3*12 , re
tti_offset=symbol_offset+re;// symbol_offset = 512 * L , re_offset = 512 - 3*12 , re
...
@@ -254,7 +260,7 @@ int dci_allocate_REs_in_RB_NB_IoT(NB_IoT_DL_FRAME_PARMS *frame_parms,
...
@@ -254,7 +260,7 @@ int dci_allocate_REs_in_RB_NB_IoT(NB_IoT_DL_FRAME_PARMS *frame_parms,
if(pilots!=1||re%3!=id_offset)// if re is not a pilot
if(pilots!=1||re%3!=id_offset)// if re is not a pilot
{
{
// diff_re = re%3 - id_offset;
// diff_re = re%3 - id_offset;
if (mimo_mode == SISO) { //SISO mapping
if(mimo_mode==SISO_NB_IoT){//SISO mapping
*re_allocated=*re_allocated+1;// variable incremented but never used
*re_allocated=*re_allocated+1;// variable incremented but never used
for(aa=0;aa<frame_parms->nb_antennas_tx;aa++){
for(aa=0;aa<frame_parms->nb_antennas_tx;aa++){
...
@@ -266,7 +272,7 @@ int dci_allocate_REs_in_RB_NB_IoT(NB_IoT_DL_FRAME_PARMS *frame_parms,
...
@@ -266,7 +272,7 @@ int dci_allocate_REs_in_RB_NB_IoT(NB_IoT_DL_FRAME_PARMS *frame_parms,
}
}
*jj=*jj+1;
*jj=*jj+1;
} else if (mimo_mode == ALAMOUTI) {
}elseif(mimo_mode==ALAMOUTI_NB_IoT){
*re_allocated=*re_allocated+1;
*re_allocated=*re_allocated+1;
...
@@ -315,10 +321,10 @@ int dci_allocate_REs_in_RB_NB_IoT(NB_IoT_DL_FRAME_PARMS *frame_parms,
...
@@ -315,10 +321,10 @@ int dci_allocate_REs_in_RB_NB_IoT(NB_IoT_DL_FRAME_PARMS *frame_parms,
tti_offset=symbol_offset+re;// symbol_offset = 512 * L , re_offset = 512 - 3*12 , re
tti_offset=symbol_offset+re;// symbol_offset = 512 * L , re_offset = 512 - 3*12 , re
if (pilots != 1 || re%3 != id_offset) // if re is not a pilot
if(pilots!=1||re%3!=id_offset){// if re is not a pilot
{
// diff_re = re%3 - id_offset;
// diff_re = re%3 - id_offset;
if (mimo_mode == SISO) { //SISO mapping
if(mimo_mode==SISO_NB_IoT){//SISO mapping
*re_allocated=*re_allocated+1;// variable incremented but never used
*re_allocated=*re_allocated+1;// variable incremented but never used
for(aa=0;aa<frame_parms->nb_antennas_tx;aa++){
for(aa=0;aa<frame_parms->nb_antennas_tx;aa++){
...
@@ -332,7 +338,7 @@ int dci_allocate_REs_in_RB_NB_IoT(NB_IoT_DL_FRAME_PARMS *frame_parms,
...
@@ -332,7 +338,7 @@ int dci_allocate_REs_in_RB_NB_IoT(NB_IoT_DL_FRAME_PARMS *frame_parms,
}
}
*jj=*jj+1;
*jj=*jj+1;
} else if (mimo_mode == ALAMOUTI) {
}elseif(mimo_mode==ALAMOUTI_NB_IoT){
*re_allocated=*re_allocated+1;
*re_allocated=*re_allocated+1;
...
@@ -401,7 +407,7 @@ int dci_allocate_REs_in_RB_NB_IoT(NB_IoT_DL_FRAME_PARMS *frame_parms,
...
@@ -401,7 +407,7 @@ int dci_allocate_REs_in_RB_NB_IoT(NB_IoT_DL_FRAME_PARMS *frame_parms,
intdci_modulation_NB_IoT(int32_t**txdataF,
intdci_modulation_NB_IoT(int32_t**txdataF,
int16_tamp,
int16_tamp,
NB_IoT_DL_FRAME_PARMS*frame_parms,
NB_IoT_DL_FRAME_PARMS*frame_parms,
uint8_t control_region_size,//XXX we pass the npdcch_start_symbol // control region size for LTE , values between 0..3, (0 for stand-alone / 1, 2 or 3 for in-band)
uint8_tcontrol_region_size,//XXX we pass the npdcch_start_symbol // control region size for LTE , values between 0..3, (0 for stand-alone / 1, 2 or 3 for in-band)
uint8_t*e[2],// Input data
uint8_t*e[2],// Input data
intG,// number of bits per subframe
intG,// number of bits per subframe
uint8_tdci_number,// This variable should takes the 1 or 2 (1 for in case of one DCI, 2 in case of two DCI)
uint8_tdci_number,// This variable should takes the 1 or 2 (1 for in case of one DCI, 2 in case of two DCI)
...
@@ -429,16 +435,16 @@ int dci_modulation_NB_IoT(int32_t **txdataF,
...
@@ -429,16 +435,16 @@ int dci_modulation_NB_IoT(int32_t **txdataF,