printf("pilIdx %d at k %d of l %d reIdx %d rxF %p %d %d ch[0] %d ch[1] %d\n",0,k,l,(l*frame_params->ofdm_symbol_size+k),rxF,rxF[0],rxF[1],ch[0],ch[1]);
printf("pilIdx %d at k %d of l %d reIdx %d rxF %p %d %d ch[0] %d ch[1] %d\n",1,k,l,(l*frame_params->ofdm_symbol_size+k),rxF,rxF[0],rxF[1],ch[0],ch[1]);
printf("pilIdx %d at k %d of l %d reIdx %d rxF %p %d %d ch[0] %d ch[1] %d\n",2,k,l,(l*frame_params->ofdm_symbol_size+k),rxF,rxF[0],rxF[1],ch[0],ch[1]);
printf("pilIdx %d at k %d of l %d reIdx %d rxF %p %d %d ch[0] %d ch[1] %d\n",pIdx,k,l,(l*frame_params->ofdm_symbol_size+k),rxF,rxF[0],rxF[1],ch[0],ch[1]);
if(pIdx==(prs_cfg->NumRB*(12/prs_cfg->CombSize)-3))// 2nd last pilot
printf("pilIdx %d at k %d of l %d reIdx %d rxF %p %d %d ch[0] %d ch[1] %d\n",pIdx+1,k,l,(l*frame_params->ofdm_symbol_size+k),rxF,rxF[0],rxF[1],ch[0],ch[1]);
printf("pilIdx %d at k %d of l %d reIdx %d rxF %p %d %d ch[0] %d ch[1] %d\n",1,k,l,(l*frame_params->ofdm_symbol_size+k),rxF,rxF[0],rxF[1],ch[0],ch[1]);
printf("pilIdx %d at k %d of l %d reIdx %d rxF %p %d %d ch[0] %d ch[1] %d\n",prs_cfg->NumRB*(12/prs_cfg->CombSize)-2,k,l,(l*frame_params->ofdm_symbol_size+k),rxF,rxF[0],rxF[1],ch[0],ch[1]);
printf("pilIdx %d at k %d of l %d reIdx %d rxF %p %d %d ch[0] %d ch[1] %d\n",prs_cfg->NumRB*(12/prs_cfg->CombSize)-1,k,l,(l*frame_params->ofdm_symbol_size+k),rxF,rxF[0],rxF[1],ch[0],ch[1]);
#endif
multadd_real_vector_complex_scalar(fr,
multadd_real_vector_complex_scalar(fr,
ch,
ch,
prs_chest,
ch_intrp,
8);
8);
}
}
...
@@ -252,32 +199,36 @@ int nr_prs_channel_estimation(PHY_VARS_NR_UE *ue,
...
@@ -252,32 +199,36 @@ int nr_prs_channel_estimation(PHY_VARS_NR_UE *ue,
switch(k_prime){
switch(k_prime){
case0:
case0:
fl=filt16a_l0;
fl=filt16a_l0;
fmm=filt16a_mm0;
fml=filt16a_mm0;
fml=filt16a_mm0;
fmm=filt16a_mm0;
fmr=filt16a_m0;
fm=filt16a_m0;
fm=filt16a_m0;
fr=filt16a_r0;
fr=filt16a_r0;
break;
break;
case1:
case1:
fl=filt16a_l1;
fl=filt16a_l1;
fmm=filt16a_mm1;
fml=filt16a_ml1;
fml=filt16a_ml1;
fmm=filt16a_mm1;
fmr=filt16a_mr1;
fm=filt16a_m1;
fm=filt16a_m1;
fr=filt16a_r1;
fr=filt16a_r1;
break;
break;
case2:
case2:
fl=filt16a_l2;
fl=filt16a_l2;
fmm=filt16a_mm2;
fml=filt16a_ml2;
fml=filt16a_ml2;
fmm=filt16a_mm2;
fmr=filt16a_mr2;
fm=filt16a_m2;
fm=filt16a_m2;
fr=filt16a_r2;
fr=filt16a_r2;
break;
break;
case3:
case3:
fl=filt16a_l3;
fl=filt16a_l3;
fmm=filt16a_mm3;
fml=filt16a_ml3;
fml=filt16a_ml3;
fmm=filt16a_mm3;
fmr=filt16a_mm3;
fm=filt16a_m3;
fm=filt16a_m3;
fr=filt16a_r3;
fr=filt16a_r3;
break;
break;
...
@@ -291,13 +242,10 @@ int nr_prs_channel_estimation(PHY_VARS_NR_UE *ue,
...
@@ -291,13 +242,10 @@ int nr_prs_channel_estimation(PHY_VARS_NR_UE *ue,
printf("pilIdx %d at k %d of l %d reIdx %d rxF %p %d %d ch[0] %d ch[1] %d\n",0,k,l,(l*frame_params->ofdm_symbol_size+k),rxF,rxF[0],rxF[1],ch[0],ch[1]);
#endif
multadd_real_vector_complex_scalar(fl,
multadd_real_vector_complex_scalar(fl,
ch,
ch,
prs_chest,
ch_intrp,
16);
16);
pil+=2;
pil+=2;
...
@@ -306,50 +254,41 @@ int nr_prs_channel_estimation(PHY_VARS_NR_UE *ue,
...
@@ -306,50 +254,41 @@ int nr_prs_channel_estimation(PHY_VARS_NR_UE *ue,
printf("pilIdx %d at k %d of l %d reIdx %d rxF %p %d %d ch[0] %d ch[1] %d\n",1,k,l,(l*frame_params->ofdm_symbol_size+k),rxF,rxF[0],rxF[1],ch[0],ch[1]);
printf("pilIdx %d at k %d of l %d reIdx %d rxF %p %d %d ch[0] %d ch[1] %d\n",pIdx,k,l,(l*frame_params->ofdm_symbol_size+k),rxF,rxF[0],rxF[1],ch[0],ch[1]);
printf("pilIdx %d at k %d of l %d reIdx %d rxF %p %d %d ch[0] %d ch[1] %d\n",prs_cfg->NumRB*(12/prs_cfg->CombSize)-2,k,l,(l*frame_params->ofdm_symbol_size+k),rxF,rxF[0],rxF[1],ch[0],ch[1]);
#endif
multadd_real_vector_complex_scalar(fm,
multadd_real_vector_complex_scalar(fmr,
ch,
ch,
prs_chest,
ch_intrp,
16);
16);
pil+=2;
pil+=2;
...
@@ -358,23 +297,71 @@ int nr_prs_channel_estimation(PHY_VARS_NR_UE *ue,
...
@@ -358,23 +297,71 @@ int nr_prs_channel_estimation(PHY_VARS_NR_UE *ue,
printf("pilIdx %d at k %d of l %d reIdx %d rxF %p %d %d ch[0] %d ch[1] %d\n",prs_cfg->NumRB*(12/prs_cfg->CombSize)-1,k,l,(l*frame_params->ofdm_symbol_size+k),rxF,rxF[0],rxF[1],ch[0],ch[1]);