Commit b0a54d8c authored by gauthier's avatar gauthier

fix of PUCCH statistic tracking with signal scope

parent f5a71841
...@@ -1027,8 +1027,8 @@ uint32_t rx_pucch(PHY_VARS_eNB *phy_vars_eNB, ...@@ -1027,8 +1027,8 @@ uint32_t rx_pucch(PHY_VARS_eNB *phy_vars_eNB,
(subframe<<10) + (phy_vars_eNB->pucch1ab_stats_cnt[UE_id][subframe])); (subframe<<10) + (phy_vars_eNB->pucch1ab_stats_cnt[UE_id][subframe]));
#endif #endif
((int16_t*)&phy_vars_eNB->pucch1ab_stats[UE_id][(subframe<<10) + (phy_vars_eNB->pucch1_stats_cnt[UE_id][subframe])])[0] = (int16_t)(stat_re); phy_vars_eNB->pucch1ab_stats[UE_id][(subframe<<11) + 2*(phy_vars_eNB->pucch1ab_stats_cnt[UE_id][subframe])] = (stat_re);
((int16_t*)&phy_vars_eNB->pucch1ab_stats[UE_id][(subframe<<10) + (phy_vars_eNB->pucch1_stats_cnt[UE_id][subframe])])[1] = (int16_t)(stat_im); phy_vars_eNB->pucch1ab_stats[UE_id][(subframe<<11) + 1+2*(phy_vars_eNB->pucch1ab_stats_cnt[UE_id][subframe])] = (stat_im);
phy_vars_eNB->pucch1ab_stats_cnt[UE_id][subframe] = (phy_vars_eNB->pucch1ab_stats_cnt[UE_id][subframe]+1)&1023; phy_vars_eNB->pucch1ab_stats_cnt[UE_id][subframe] = (phy_vars_eNB->pucch1ab_stats_cnt[UE_id][subframe]+1)&1023;
...@@ -1039,8 +1039,8 @@ uint32_t rx_pucch(PHY_VARS_eNB *phy_vars_eNB, ...@@ -1039,8 +1039,8 @@ uint32_t rx_pucch(PHY_VARS_eNB *phy_vars_eNB,
*(1+payload) = (stat_im<0) ? 1 : 0; *(1+payload) = (stat_im<0) ? 1 : 0;
} else { // insufficient energy on PUCCH so NAK } else { // insufficient energy on PUCCH so NAK
*payload = 0; *payload = 0;
((int16_t*)&phy_vars_eNB->pucch1ab_stats[UE_id][(subframe<<10) + (phy_vars_eNB->pucch1_stats_cnt[UE_id][subframe])])[0] = (int16_t)(stat_re); ((int16_t*)&phy_vars_eNB->pucch1ab_stats[UE_id][(subframe<<10) + (phy_vars_eNB->pucch1ab_stats_cnt[UE_id][subframe])])[0] = (int16_t)(stat_re);
((int16_t*)&phy_vars_eNB->pucch1ab_stats[UE_id][(subframe<<10) + (phy_vars_eNB->pucch1_stats_cnt[UE_id][subframe])])[1] = (int16_t)(stat_im); ((int16_t*)&phy_vars_eNB->pucch1ab_stats[UE_id][(subframe<<10) + (phy_vars_eNB->pucch1ab_stats_cnt[UE_id][subframe])])[1] = (int16_t)(stat_im);
phy_vars_eNB->pucch1ab_stats_cnt[UE_id][subframe] = (phy_vars_eNB->pucch1ab_stats_cnt[UE_id][subframe]+1)&1023; phy_vars_eNB->pucch1ab_stats_cnt[UE_id][subframe] = (phy_vars_eNB->pucch1ab_stats_cnt[UE_id][subframe]+1)&1023;
*payload = (stat_re<0) ? 1 : 0; *payload = (stat_re<0) ? 1 : 0;
......
...@@ -172,7 +172,7 @@ void phy_scope_eNB(FD_lte_phy_scope_enb *form, ...@@ -172,7 +172,7 @@ void phy_scope_eNB(FD_lte_phy_scope_enb *form,
int16_t *pusch_comp; int16_t *pusch_comp;
int32_t *pucch1_comp; int32_t *pucch1_comp;
int32_t *pucch1_thres; int32_t *pucch1_thres;
int16_t *pucch1ab_comp; int32_t *pucch1ab_comp;
float Re,Im,ymax; float Re,Im,ymax;
float *llr, *bit; float *llr, *bit;
float I[nsymb_ce*2], Q[nsymb_ce*2]; float I[nsymb_ce*2], Q[nsymb_ce*2];
...@@ -208,7 +208,7 @@ void phy_scope_eNB(FD_lte_phy_scope_enb *form, ...@@ -208,7 +208,7 @@ void phy_scope_eNB(FD_lte_phy_scope_enb *form,
pusch_comp = (int16_t*) phy_vars_enb->lte_eNB_pusch_vars[UE_id]->rxdataF_comp[eNB_id][0]; pusch_comp = (int16_t*) phy_vars_enb->lte_eNB_pusch_vars[UE_id]->rxdataF_comp[eNB_id][0];
pucch1_comp = (int32_t*) phy_vars_enb->pucch1_stats[UE_id]; pucch1_comp = (int32_t*) phy_vars_enb->pucch1_stats[UE_id];
pucch1_thres = (int32_t*) phy_vars_enb->pucch1_stats_thres[UE_id]; pucch1_thres = (int32_t*) phy_vars_enb->pucch1_stats_thres[UE_id];
pucch1ab_comp = (int16_t*) phy_vars_enb->pucch1ab_stats[UE_id]; pucch1ab_comp = (int32_t*) phy_vars_enb->pucch1ab_stats[UE_id];
// Received signal in time domain of receive antenna 0 // Received signal in time domain of receive antenna 0
if (rxsig_t != NULL) { if (rxsig_t != NULL) {
...@@ -339,8 +339,9 @@ void phy_scope_eNB(FD_lte_phy_scope_enb *form, ...@@ -339,8 +339,9 @@ void phy_scope_eNB(FD_lte_phy_scope_enb *form,
// PUSCH I/Q of MF Output // PUSCH I/Q of MF Output
if (pucch1ab_comp!=NULL) { if (pucch1ab_comp!=NULL) {
for (ind=0; ind<10240; ind++) { for (ind=0; ind<10240; ind++) {
I_pucch[ind] = pucch1ab_comp[2*ind];
Q_pucch[ind] = pucch1ab_comp[2*ind+1]; I_pucch[ind] = (float)pucch1ab_comp[2*(ind)];
Q_pucch[ind] = (float)pucch1ab_comp[2*(ind)+1];
A_pucch[ind] = 10*log10(pucch1_comp[ind]); A_pucch[ind] = 10*log10(pucch1_comp[ind]);
B_pucch[ind] = ind; B_pucch[ind] = ind;
C_pucch[ind] = (float)pucch1_thres[ind]; C_pucch[ind] = (float)pucch1_thres[ind];
...@@ -348,7 +349,9 @@ void phy_scope_eNB(FD_lte_phy_scope_enb *form, ...@@ -348,7 +349,9 @@ void phy_scope_eNB(FD_lte_phy_scope_enb *form,
fl_set_xyplot_data(form->pucch_comp,I_pucch,Q_pucch,10240,"","",""); fl_set_xyplot_data(form->pucch_comp,I_pucch,Q_pucch,10240,"","","");
fl_set_xyplot_data(form->pucch_comp1,B_pucch,A_pucch,1024,"","",""); fl_set_xyplot_data(form->pucch_comp1,B_pucch,A_pucch,1024,"","","");
fl_add_xyplot_overlay(form->pucch_comp1,1,B_pucch,C_pucch,1024,FL_RED); fl_add_xyplot_overlay(form->pucch_comp1,1,B_pucch,C_pucch,1024,FL_RED);
// fl_set_xyplot_ybounds(form->pucch_comp,-100,100); fl_set_xyplot_ybounds(form->pucch_comp,-5000,5000);
fl_set_xyplot_xbounds(form->pucch_comp,-5000,5000);
fl_set_xyplot_ybounds(form->pucch_comp1,20,80); fl_set_xyplot_ybounds(form->pucch_comp1,20,80);
} }
......
...@@ -382,7 +382,7 @@ typedef struct PHY_VARS_eNB_s { ...@@ -382,7 +382,7 @@ typedef struct PHY_VARS_eNB_s {
int32_t pucch1_stats[NUMBER_OF_UE_MAX][10*1024]; int32_t pucch1_stats[NUMBER_OF_UE_MAX][10*1024];
int32_t pucch1_stats_thres[NUMBER_OF_UE_MAX][10*1024]; int32_t pucch1_stats_thres[NUMBER_OF_UE_MAX][10*1024];
int32_t pucch1ab_stats_cnt[NUMBER_OF_UE_MAX][10]; int32_t pucch1ab_stats_cnt[NUMBER_OF_UE_MAX][10];
int32_t pucch1ab_stats[NUMBER_OF_UE_MAX][10*1024]; int32_t pucch1ab_stats[NUMBER_OF_UE_MAX][2*10*1024];
#if ENABLE_RAL #if ENABLE_RAL
hash_table_t *ral_thresholds_timed; hash_table_t *ral_thresholds_timed;
......
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