Commit c1e6004c authored by lfarizav's avatar lfarizav

dlsim working for awgn channel

parent 1793ae59
......@@ -293,16 +293,16 @@ void DL_channel_freq(PHY_VARS_eNB *eNB,PHY_VARS_UE *UE,int subframe,int awgn_fla
}
}
}
printf("subframe %d\n",subframe);
/*printf("subframe %d\n",subframe);
write_output("tx_data.m","txdata", &eNB->common_vars.txdata[0][0],UE->frame_parms.samples_per_tti,1,1);
write_output("tx_data_F.m","txdataF", &eNB->common_vars.txdataF[0][0],(UE->frame_parms.ofdm_symbol_size*UE->frame_parms.symbols_per_tti),1,1);
write_output("r_re_f.m","rref", &r_re_f[0],(UE->frame_parms.ofdm_symbol_size*UE->frame_parms.symbols_per_tti),1,1);
write_output("r_im_f.m","rimf", &r_im_f[0],(UE->frame_parms.ofdm_symbol_size*UE->frame_parms.symbols_per_tti),1,1);
write_output("r_im_f.m","rimf", &r_im_f[0],(UE->frame_parms.ofdm_symbol_size*UE->frame_parms.symbols_per_tti),1,1);*/
// Multipath channel
if (awgn_flag == 0) {
multipath_channel_freq_AVX_float(eNB2UE[round],s_re_f,s_im_f,r_re_f,r_im_f,
2*UE->frame_parms.ofdm_symbol_size*UE->frame_parms.symbols_per_tti,hold_channel,0,0,0,subframe&0x1);
2*UE->frame_parms.ofdm_symbol_size*UE->frame_parms.symbols_per_tti,hold_channel,0,0,0,subframe&0x1,UE->frame_parms.N_RB_DL,UE->frame_parms.N_RB_DL*12+1,UE->frame_parms.ofdm_symbol_size,UE->frame_parms.symbols_per_tti);
// printf("amc: ****************** eNB2UE[%d]->n_rx = %d,dd %d\n",round,eNB2UE[round]->nb_rx,eNB2UE[round]->channel_offset);
if(abstx==1 && num_rounds>1)
......@@ -2491,7 +2491,7 @@ int main(int argc, char **argv)
eNB_rxtx_proc_t *proc_eNB = &eNB->proc.proc_rxtx[UE->current_thread_id[subframe]];
for (trials = 0; trials<n_frames; trials++) {
printf("Trial %d\n",trials);
//printf("Trial %d\n",trials);
fflush(stdout);
round=0;
......
......@@ -323,7 +323,12 @@ void multipath_channel_freq_AVX_float(channel_desc_t *desc,
uint8_t eNB_id,
uint8_t UE_id,
uint8_t CC_id,
uint8_t th_id);
uint8_t th_id,
uint32_t nb_rb,
uint32_t n_samples,
uint32_t ofdm_symbol_size,
uint32_t symbols_per_tti);
/**\fn void multipath_channel_prach(channel_desc_t *desc,
double tx_sig_re[2],
double tx_sig_im[2],
......
......@@ -625,7 +625,11 @@ void multipath_channel_freq_AVX_float(channel_desc_t *desc,
uint8_t eNB_id,
uint8_t UE_id,
uint8_t CC_id,
uint8_t th_id)
uint8_t th_id,
uint32_t nb_rb,
uint32_t n_samples,
uint32_t ofdm_symbol_size,
uint32_t symbols_per_tti)
{
int ii,j,f;
__m256 rx_tmp256_re_f,rx_tmp256_im_f,rx_tmp256_re,rx_tmp256_im, rx_tmp256_1,rx_tmp256_2,rx_tmp256_3,rx_tmp256_4,tx256_re,tx256_im,chF256_x,chF256_y,pathloss256;
......@@ -634,11 +638,11 @@ void multipath_channel_freq_AVX_float(channel_desc_t *desc,
float path_loss = pow(10,desc->path_loss_dB/20);
pathloss256 = _mm256_set1_ps(path_loss);
int nb_rb, n_samples, ofdm_symbol_size, symbols_per_tti;
nb_rb=PHY_vars_UE_g[UE_id][CC_id]->frame_parms.N_RB_DL;
n_samples=PHY_vars_UE_g[UE_id][CC_id]->frame_parms.N_RB_DL*12+1;
ofdm_symbol_size=length/PHY_vars_UE_g[UE_id][CC_id]->frame_parms.symbols_per_tti;
symbols_per_tti=length/PHY_vars_UE_g[UE_id][CC_id]->frame_parms.ofdm_symbol_size;
//int nb_rb, n_samples, ofdm_symbol_size, symbols_per_tti;
//nb_rb=PHY_vars_UE_g[UE_id][CC_id]->frame_parms.N_RB_DL;
//n_samples=PHY_vars_UE_g[UE_id][CC_id]->frame_parms.N_RB_DL*12+1;
//ofdm_symbol_size=length/PHY_vars_UE_g[UE_id][CC_id]->frame_parms.symbols_per_tti;
//symbols_per_tti=length/PHY_vars_UE_g[UE_id][CC_id]->frame_parms.ofdm_symbol_size;
#ifdef DEBUG_CH
......
......@@ -72,12 +72,12 @@
int number_rb_ul;
int first_rbUL ;
#ifdef __AVX2__
float r_re_DL[NUMBER_OF_UE_MAX][2][30720];
float r_im_DL[NUMBER_OF_UE_MAX][2][30720];
float r_re_UL[NUMBER_OF_eNB_MAX][2][30720];
float r_im_UL[NUMBER_OF_eNB_MAX][2][30720];
double r_re_DL[NUMBER_OF_UE_MAX][2][30720];
double r_im_DL[NUMBER_OF_UE_MAX][2][30720];
double r_re_UL[NUMBER_OF_eNB_MAX][2][30720];
double r_im_UL[NUMBER_OF_eNB_MAX][2][30720];
#ifdef __AVX2__
float r_re_DL_f[NUMBER_OF_UE_MAX][2][2048*14];
float r_im_DL_f[NUMBER_OF_UE_MAX][2][2048*14];
float r_re_UL_f[NUMBER_OF_eNB_MAX][2][2048*14];
......@@ -85,11 +85,6 @@ float r_im_UL_f[NUMBER_OF_eNB_MAX][2][2048*14];
float r_re_UL_f_prach[NUMBER_OF_eNB_MAX][2][2048*14];
float r_im_UL_f_prach[NUMBER_OF_eNB_MAX][2][2048*14];
#else
double r_re_DL[NUMBER_OF_UE_MAX][2][30720];
double r_im_DL[NUMBER_OF_UE_MAX][2][30720];
double r_re_UL[NUMBER_OF_eNB_MAX][2][30720];
double r_im_UL[NUMBER_OF_eNB_MAX][2][30720];
double r_re_DL_f[NUMBER_OF_UE_MAX][2][2048*14];
double r_im_DL_f[NUMBER_OF_UE_MAX][2][2048*14];
double r_re_UL_f[NUMBER_OF_eNB_MAX][2][2048*14];
......@@ -547,7 +542,7 @@ void do_DL_sig_freq(channel_desc_t *eNB2UE[NUMBER_OF_eNB_MAX][NUMBER_OF_UE_MAX][
#ifdef __AVX2__
start_meas(&eNB2UE[eNB_id][UE_id][CC_id]->DL_multipath_channel_freq);
multipath_channel_freq_AVX_float(eNB2UE[eNB_id][UE_id][CC_id],s_re_f,s_im_f,r_re0_f,r_im0_f,
frame_parms->ofdm_symbol_size*frame_parms->symbols_per_tti,hold_channel,eNB_id,UE_id,CC_id,subframe&0x1);
frame_parms->ofdm_symbol_size*frame_parms->symbols_per_tti,hold_channel,eNB_id,UE_id,CC_id,subframe&0x1,frame_parms->N_RB_DL,frame_parms->N_RB_DL*12+1,frame_parms->ofdm_symbol_size,frame_parms->symbols_per_tti);
stop_meas(&eNB2UE[eNB_id][UE_id][CC_id]->DL_multipath_channel_freq);
#else
start_meas(&eNB2UE[eNB_id][UE_id][CC_id]->DL_multipath_channel_freq);
......@@ -1151,7 +1146,7 @@ void do_UL_sig_freq(channel_desc_t *UE2eNB[NUMBER_OF_UE_MAX][NUMBER_OF_eNB_MAX][
#ifdef __AVX2__
start_meas(&UE2eNB[UE_id][eNB_id][CC_id]->UL_multipath_channel_freq);
multipath_channel_freq_AVX_float(UE2eNB[UE_id][eNB_id][CC_id],s_re_f,s_im_f,r_re0_f,r_im0_f,
frame_parms->ofdm_symbol_size*frame_parms->symbols_per_tti,hold_channel,eNB_id,UE_id,CC_id,subframe&0x1);//ue timer subframe&0x1
frame_parms->ofdm_symbol_size*frame_parms->symbols_per_tti,hold_channel,eNB_id,UE_id,CC_id,subframe&0x1,frame_parms->N_RB_DL,frame_parms->N_RB_DL*12+1,frame_parms->ofdm_symbol_size,frame_parms->symbols_per_tti);//ue timer subframe&0x1
stop_meas(&UE2eNB[UE_id][eNB_id][CC_id]->UL_multipath_channel_freq);
#else
start_meas(&UE2eNB[UE_id][eNB_id][CC_id]->UL_multipath_channel_freq);
......
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