1. Rician channel now operates with AoA 45 degrees.
2. Fixed a bug for HARQ rounds for TM1 frequency selective with PCE.
This commit is contained in:
@@ -721,14 +721,14 @@ int main(int argc, char **argv)
|
|||||||
sprintf(bler_fname,"bler_tx%d_rec%d_chan%d_nrx%d_mcs%d_mcsi%d_u%d_imod%d.csv",transmission_mode,rx_type,channel_model,n_rx,mcs1,mcs_i,rx_type,i_mod);
|
sprintf(bler_fname,"bler_tx%d_rec%d_chan%d_nrx%d_mcs%d_mcsi%d_u%d_imod%d.csv",transmission_mode,rx_type,channel_model,n_rx,mcs1,mcs_i,rx_type,i_mod);
|
||||||
else if (abstx == 1)
|
else if (abstx == 1)
|
||||||
if (perfect_ce==1)
|
if (perfect_ce==1)
|
||||||
sprintf(bler_fname,"bler_tx%d_r%d_ch%d_%d_nrx%d_mcs%d_mcsi%d_ab_pce_sh%d_pnort.csv",transmission_mode,rx_type,channel_model,n_frames, n_rx,mcs1, mcs2,interf_unaw_shift );
|
sprintf(bler_fname,"bler_tx%d_r%d_ch%d_%d_nrx%d_mcs%d_mcsi%d_ab_pce_sh%d_pnort_r45.csv",transmission_mode,rx_type,channel_model,n_frames, n_rx,mcs1, mcs2,interf_unaw_shift );
|
||||||
else
|
else
|
||||||
sprintf(bler_fname,"bler_tx%d_r%d_ch%d_%d_nrx%d_mcs%d_mcsi%d_ab_sh%d_pnort.csv",transmission_mode,rx_type,channel_model, n_frames, n_rx,mcs1, mcs2,interf_unaw_shift );
|
sprintf(bler_fname,"bler_tx%d_r%d_ch%d_%d_nrx%d_mcs%d_mcsi%d_ab_sh%d_pnort_r45.csv",transmission_mode,rx_type,channel_model, n_frames, n_rx,mcs1, mcs2,interf_unaw_shift );
|
||||||
else //abstx=0
|
else //abstx=0
|
||||||
if (perfect_ce==1)
|
if (perfect_ce==1)
|
||||||
sprintf(bler_fname,"bler_tx%d_r%d_ch%d_%d_nrx%d_mcs%d_mcsi%d_pce_sh%d_pnort.csv",transmission_mode,rx_type,channel_model,n_frames, n_rx,mcs1, mcs2, interf_unaw_shift);
|
sprintf(bler_fname,"bler_tx%d_r%d_ch%d_%d_nrx%d_mcs%d_mcsi%d_pce_sh%d_pnort_r45.csv",transmission_mode,rx_type,channel_model,n_frames, n_rx,mcs1, mcs2, interf_unaw_shift);
|
||||||
else
|
else
|
||||||
sprintf(bler_fname,"bler_tx%d_r%d_ch%d_%d_nrx%d_mcs%d_mcsi%d_sh%d_pnort.csv",transmission_mode,rx_type,channel_model,n_frames,n_rx,mcs1, mcs2, interf_unaw_shift);
|
sprintf(bler_fname,"bler_tx%d_r%d_ch%d_%d_nrx%d_mcs%d_mcsi%d_sh%d_pnort_r45.csv",transmission_mode,rx_type,channel_model,n_frames,n_rx,mcs1, mcs2, interf_unaw_shift);
|
||||||
|
|
||||||
bler_fd = fopen(bler_fname,"w");
|
bler_fd = fopen(bler_fname,"w");
|
||||||
if (bler_fd==NULL) {
|
if (bler_fd==NULL) {
|
||||||
@@ -764,9 +764,9 @@ int main(int argc, char **argv)
|
|||||||
|
|
||||||
else
|
else
|
||||||
if (perfect_ce==1)
|
if (perfect_ce==1)
|
||||||
sprintf(csv_fname,"dout_tx%d_r%d_mcs%d_mcsi%d_ch%d_ns%d_R%d_pce_sh%d_%d_pnort.m",transmission_mode,rx_type,mcs1,mcs2,channel_model,n_frames,num_rounds, interf_unaw_shift, n_ch_rlz);
|
sprintf(csv_fname,"dout_tx%d_r%d_mcs%d_mcsi%d_ch%d_ns%d_R%d_pce_sh%d_%d_pnort_r45.m",transmission_mode,rx_type,mcs1,mcs2,channel_model,n_frames,num_rounds, interf_unaw_shift, n_ch_rlz);
|
||||||
else
|
else
|
||||||
sprintf(csv_fname,"dout_tx%d_r%d_mcs%d_mcsi%d_ch%d_ns%d_R%d_sh%d_%d_pnort.m",transmission_mode,rx_type,mcs1,mcs2,channel_model,n_frames,num_rounds, interf_unaw_shift, n_ch_rlz);
|
sprintf(csv_fname,"dout_tx%d_r%d_mcs%d_mcsi%d_ch%d_ns%d_R%d_sh%d_%d_pnort_r45.m",transmission_mode,rx_type,mcs1,mcs2,channel_model,n_frames,num_rounds, interf_unaw_shift, n_ch_rlz);
|
||||||
|
|
||||||
csv_fd = fopen(csv_fname,"w");
|
csv_fd = fopen(csv_fname,"w");
|
||||||
fprintf(csv_fd,"data_all%d=[",mcs1);
|
fprintf(csv_fd,"data_all%d=[",mcs1);
|
||||||
@@ -2934,13 +2934,8 @@ n(tikz_fname,"w");
|
|||||||
|
|
||||||
// Multipath channel
|
// Multipath channel
|
||||||
if (awgn_flag == 0) {
|
if (awgn_flag == 0) {
|
||||||
multipath_channel(eNB2UE[0],s_re,s_im,r_re,r_im,
|
multipath_channel(eNB2UE[round],s_re,s_im,r_re,r_im,
|
||||||
2*frame_parms->samples_per_tti,hold_channel);
|
2*frame_parms->samples_per_tti,hold_channel);
|
||||||
if (PHY_vars_UE->perfect_ce==1){
|
|
||||||
freq_channel(eNB2UE[round],PHY_vars_UE->lte_frame_parms.N_RB_DL,12*PHY_vars_UE->lte_frame_parms.N_RB_DL + 1);
|
|
||||||
// write_output("channel.m","ch",eNB2UE[round]->ch[0],eNB2UE[round]->channel_length,1,8);
|
|
||||||
// write_output("channelF.m","chF",eNB2UE[round]->chF[0],12*PHY_vars_UE->lte_frame_parms.N_RB_DL +1,1,8);
|
|
||||||
}
|
|
||||||
// printf("amc: ****************** eNB2UE[%d]->n_rx = %d,dd %d\n",round,eNB2UE[round]->nb_rx,eNB2UE[round]->channel_offset);
|
// 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)
|
if(abstx==1 && num_rounds>1)
|
||||||
if(round==0 && hold_channel==0){
|
if(round==0 && hold_channel==0){
|
||||||
@@ -2948,9 +2943,13 @@ n(tikz_fname,"w");
|
|||||||
random_channel(eNB2UE[2],0);
|
random_channel(eNB2UE[2],0);
|
||||||
random_channel(eNB2UE[3],0);
|
random_channel(eNB2UE[3],0);
|
||||||
}
|
}
|
||||||
|
if (PHY_vars_UE->perfect_ce==1){
|
||||||
|
freq_channel(eNB2UE[round],PHY_vars_UE->lte_frame_parms.N_RB_DL,12*PHY_vars_UE->lte_frame_parms.N_RB_DL + 1);
|
||||||
|
// write_output("channel.m","ch",eNB2UE[round]->ch[0],eNB2UE[round]->channel_length,1,8);
|
||||||
|
// write_output("channelF.m","chF",eNB2UE[round]->chF[0],12*PHY_vars_UE->lte_frame_parms.N_RB_DL +1,1,8);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// freq_channel(eNB2UE[0], NB_RB,12*NB_RB + 1);
|
// freq_channel(eNB2UE[0], NB_RB,12*NB_RB + 1);
|
||||||
if(abstx){
|
if(abstx){
|
||||||
if (trials==0 && round==0) {
|
if (trials==0 && round==0) {
|
||||||
|
|||||||
@@ -122,7 +122,7 @@ int freq_channel(channel_desc_t *desc,uint16_t nb_rb,int16_t n_samples)
|
|||||||
|
|
||||||
start_meas(&desc->interp_freq);
|
start_meas(&desc->interp_freq);
|
||||||
|
|
||||||
for (f=-n_samples_max/2,f2=-n_samples/2; f<=n_samples_max/2; f+=d,f2++) {
|
for (f=-n_samples_max/2,f2=-n_samples/2; f<n_samples_max/2; f+=d,f2++) {
|
||||||
clut = cos_lut[n_samples_max/2+f];
|
clut = cos_lut[n_samples_max/2+f];
|
||||||
slut = sin_lut[n_samples_max/2+f];
|
slut = sin_lut[n_samples_max/2+f];
|
||||||
|
|
||||||
|
|||||||
@@ -562,7 +562,7 @@ channel_desc_t *new_channel_desc_scm(uint8_t nb_tx,
|
|||||||
Td = 0.8;
|
Td = 0.8;
|
||||||
channel_length = (int)11+2*sampling_rate*Td;
|
channel_length = (int)11+2*sampling_rate*Td;
|
||||||
ricean_factor = 0.1;
|
ricean_factor = 0.1;
|
||||||
aoa = .03;
|
aoa = 0.7854;
|
||||||
maxDoppler = 0;
|
maxDoppler = 0;
|
||||||
|
|
||||||
fill_channel_desc(chan_desc,nb_tx,
|
fill_channel_desc(chan_desc,nb_tx,
|
||||||
@@ -715,7 +715,7 @@ channel_desc_t *new_channel_desc_scm(uint8_t nb_tx,
|
|||||||
Td = 0;
|
Td = 0;
|
||||||
channel_length = 1;
|
channel_length = 1;
|
||||||
ricean_factor = 0.1;
|
ricean_factor = 0.1;
|
||||||
aoa = .03;
|
aoa = 0.7854;
|
||||||
maxDoppler = 0;
|
maxDoppler = 0;
|
||||||
|
|
||||||
fill_channel_desc(chan_desc,nb_tx,
|
fill_channel_desc(chan_desc,nb_tx,
|
||||||
|
|||||||
Reference in New Issue
Block a user