Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG-RAN
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wangjie
OpenXG-RAN
Commits
751ad8e9
Commit
751ad8e9
authored
Dec 03, 2018
by
Florian Kaltenberger
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
adding some visuals
parent
eb381216
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
45 additions
and
61 deletions
+45
-61
openair1/PHY/TOOLS/nr_phy_scope.c
openair1/PHY/TOOLS/nr_phy_scope.c
+43
-60
targets/RT/USER/nr-uesoftmodem.c
targets/RT/USER/nr-uesoftmodem.c
+2
-1
No files found.
openair1/PHY/TOOLS/nr_phy_scope.c
View file @
751ad8e9
...
@@ -419,7 +419,7 @@ FD_lte_phy_scope_ue *create_lte_phy_scope_ue( void )
...
@@ -419,7 +419,7 @@ FD_lte_phy_scope_ue *create_lte_phy_scope_ue( void )
fl_set_object_lcolor
(
fdui
->
pbch_llr
,
FL_WHITE
);
// Label color
fl_set_object_lcolor
(
fdui
->
pbch_llr
,
FL_WHITE
);
// Label color
fl_set_xyplot_symbolsize
(
fdui
->
pbch_llr
,
2
);
fl_set_xyplot_symbolsize
(
fdui
->
pbch_llr
,
2
);
fl_set_xyplot_xgrid
(
fdui
->
pbch_llr
,
FL_GRID_MAJOR
);
fl_set_xyplot_xgrid
(
fdui
->
pbch_llr
,
FL_GRID_MAJOR
);
fl_set_xyplot_xbounds
(
fdui
->
pbch_llr
,
0
,
1920
);
//
fl_set_xyplot_xbounds( fdui->pbch_llr,0,1920);
// I/Q PBCH comp
// I/Q PBCH comp
fdui
->
pbch_comp
=
fl_add_xyplot
(
FL_POINTS_XYPLOT
,
540
,
260
,
240
,
100
,
"PBCH I/Q of MF Output"
);
fdui
->
pbch_comp
=
fl_add_xyplot
(
FL_POINTS_XYPLOT
,
540
,
260
,
240
,
100
,
"PBCH I/Q of MF Output"
);
...
@@ -501,21 +501,27 @@ void phy_scope_UE(FD_lte_phy_scope_ue *form,
...
@@ -501,21 +501,27 @@ void phy_scope_UE(FD_lte_phy_scope_ue *form,
/*
/*
int16_t **chest_t;
int16_t **chest_t;
int16_t **chest_f;
int16_t **chest_f;
*/
int16_t
*
pdsch_llr
;
int16_t
*
pdsch_llr
;
int16_t
*
pdsch_comp
;
int16_t
*
pdsch_comp
;
int16_t *pdsch_mag;
//
int16_t *pdsch_mag;
int8_t
*
pdcch_llr
;
int8_t
*
pdcch_llr
;
int16_t
*
pdcch_comp
;
int16_t
*
pdcch_comp
;
int8_t
*
pbch_llr
;
int8_t
*
pbch_llr
;
int16_t
*
pbch_comp
;
int16_t
*
pbch_comp
;
float
Re,Im,ymax=1
;
float
llr_pbch
[
1920
],
bit_pbch
[
1920
]
;
int num_pdcch_symbols=3;
float
*
llr
,
*
bit
;
float *llr
, *bit, *chest_f_abs, llr_pbch[1920], bit_pbch[1920], *llr
_pdcch, *bit_pdcch;
float
*
llr_pdcch
,
*
bit_pdcch
;
float
*
I
,
*
Q
;
float
*
I
,
*
Q
;
float **chest_t_abs;
int
num_pdcch_symbols
=
2
;
int
num_re
=
4500
;
int
Qm
=
2
;
int
coded_bits_per_codeword
=
num_re
*
Qm
;
/*
float Re,Im,ymax=1;
float **chest_t_abs, *chest_f_abs;
float freq[nsymb_ce*nb_antennas_rx*nb_antennas_tx];
float freq[nsymb_ce*nb_antennas_rx*nb_antennas_tx];
int frame = phy_vars_ue->proc.proc_rxtx[0].frame_rx;
int frame = phy_vars_ue->proc.proc_rxtx[0].frame_rx;
int coded_bits_per_codeword = 0;
int mcs = 0;
int mcs = 0;
unsigned char harq_pid = 0;
unsigned char harq_pid = 0;
*/
*/
...
@@ -554,9 +560,10 @@ void phy_scope_UE(FD_lte_phy_scope_ue *form,
...
@@ -554,9 +560,10 @@ void phy_scope_UE(FD_lte_phy_scope_ue *form,
} else {
} else {
coded_bits_per_codeword = 0; //frame_parms->N_RB_DL*12*get_Qm(mcs)*(frame_parms->symbols_per_tti);
coded_bits_per_codeword = 0; //frame_parms->N_RB_DL*12*get_Qm(mcs)*(frame_parms->symbols_per_tti);
}
}
*/
I = (float*) calloc(frame_parms->ofdm_symbol_size*frame_parms->symbols_per_tti*2,sizeof(float));
I
=
(
float
*
)
calloc
(
frame_parms
->
ofdm_symbol_size
*
frame_parms
->
symbols_per_slot
*
2
,
sizeof
(
float
));
Q = (float*) calloc(frame_parms->ofdm_symbol_size*frame_parms->symbols_per_tti*2,sizeof(float));
Q
=
(
float
*
)
calloc
(
frame_parms
->
ofdm_symbol_size
*
frame_parms
->
symbols_per_slot
*
2
,
sizeof
(
float
));
/*
chest_t_abs = (float**) malloc(nb_antennas_rx*sizeof(float*));
chest_t_abs = (float**) malloc(nb_antennas_rx*sizeof(float*));
for (arx=0; arx<nb_antennas_rx; arx++) {
for (arx=0; arx<nb_antennas_rx; arx++) {
...
@@ -564,11 +571,13 @@ void phy_scope_UE(FD_lte_phy_scope_ue *form,
...
@@ -564,11 +571,13 @@ void phy_scope_UE(FD_lte_phy_scope_ue *form,
}
}
chest_f_abs = (float*) calloc(nsymb_ce*nb_antennas_rx*nb_antennas_tx,sizeof(float));
chest_f_abs = (float*) calloc(nsymb_ce*nb_antennas_rx*nb_antennas_tx,sizeof(float));
*/
llr
=
(
float
*
)
calloc
(
coded_bits_per_codeword
,
sizeof
(
float
));
// init to zero
llr
=
(
float
*
)
calloc
(
coded_bits_per_codeword
,
sizeof
(
float
));
// init to zero
bit
=
malloc
(
coded_bits_per_codeword
*
sizeof
(
float
));
bit
=
malloc
(
coded_bits_per_codeword
*
sizeof
(
float
));
llr_pdcch
=
(
float
*
)
calloc
(
12
*
frame_parms
->
N_RB_DL
*
num_pdcch_symbols
*
2
,
sizeof
(
float
));
// init to zero
llr_pdcch
=
(
float
*
)
calloc
(
12
*
frame_parms
->
N_RB_DL
*
num_pdcch_symbols
*
2
,
sizeof
(
float
));
// init to zero
bit_pdcch
=
(
float
*
)
calloc
(
12
*
frame_parms
->
N_RB_DL
*
num_pdcch_symbols
*
2
,
sizeof
(
float
));
bit_pdcch
=
(
float
*
)
calloc
(
12
*
frame_parms
->
N_RB_DL
*
num_pdcch_symbols
*
2
,
sizeof
(
float
));
*/
rxsig_t
=
(
int16_t
**
)
phy_vars_ue
->
common_vars
.
rxdata
;
rxsig_t
=
(
int16_t
**
)
phy_vars_ue
->
common_vars
.
rxdata
;
rxsig_t_dB
=
calloc
(
nb_antennas_rx
,
sizeof
(
float
*
));
rxsig_t_dB
=
calloc
(
nb_antennas_rx
,
sizeof
(
float
*
));
...
@@ -581,15 +590,16 @@ void phy_scope_UE(FD_lte_phy_scope_ue *form,
...
@@ -581,15 +590,16 @@ void phy_scope_UE(FD_lte_phy_scope_ue *form,
/*
/*
chest_t = (int16_t**) phy_vars_ue->common_vars.common_vars_rx_data_per_thread[phy_vars_ue->current_thread_id[subframe]].dl_ch_estimates_time[eNB_id];
chest_t = (int16_t**) phy_vars_ue->common_vars.common_vars_rx_data_per_thread[phy_vars_ue->current_thread_id[subframe]].dl_ch_estimates_time[eNB_id];
chest_f = (int16_t**) phy_vars_ue->common_vars.common_vars_rx_data_per_thread[phy_vars_ue->current_thread_id[subframe]].dl_ch_estimates[eNB_id];
chest_f = (int16_t**) phy_vars_ue->common_vars.common_vars_rx_data_per_thread[phy_vars_ue->current_thread_id[subframe]].dl_ch_estimates[eNB_id];
*/
pbch_llr
=
(
int8_t
*
)
phy_vars_ue
->
pbch_vars
[
eNB_id
]
->
llr
;
pbch_llr
=
(
int8_t
*
)
phy_vars_ue
->
pbch_vars
[
eNB_id
]
->
llr
;
pbch_comp
=
(
int16_t
*
)
phy_vars_ue
->
pbch_vars
[
eNB_id
]
->
rxdataF_comp
[
0
];
pbch_comp
=
(
int16_t
*
)
phy_vars_ue
->
pbch_vars
[
eNB_id
]
->
rxdataF_comp
[
0
];
pdcch_llr
=
(
int8_t
*
)
phy_vars_ue
->
pdcch_vars
[
phy_vars_ue
->
current_thread_id
[
subframe
]][
eNB_id
]
->
llr
;
pdcch_llr
=
(
int8_t
*
)
phy_vars_ue
->
pdcch_vars
[
phy_vars_ue
->
current_thread_id
[
subframe
]][
eNB_id
]
->
llr
;
pdcch_comp
=
(
int16_t
*
)
phy_vars_ue
->
pdcch_vars
[
phy_vars_ue
->
current_thread_id
[
subframe
]][
eNB_id
]
->
rxdataF_comp
[
0
];
pdcch_comp
=
(
int16_t
*
)
phy_vars_ue
->
pdcch_vars
[
phy_vars_ue
->
current_thread_id
[
subframe
]][
eNB_id
]
->
rxdataF_comp
[
0
];
pdsch_llr
=
(
int16_t
*
)
phy_vars_ue
->
pdsch_vars
[
phy_vars_ue
->
current_thread_id
[
subframe
]][
eNB_id
]
->
llr
[
0
];
// stream 0
pdsch_llr
=
(
int16_t
*
)
phy_vars_ue
->
pdsch_vars
[
phy_vars_ue
->
current_thread_id
[
subframe
]][
eNB_id
]
->
llr
[
0
];
// stream 0
// pdsch_llr = (int16_t*) phy_vars_ue->lte_ue_pdsch_vars_SI[eNB_id]->llr[0]; // stream 0
// pdsch_llr = (int16_t*) phy_vars_ue->lte_ue_pdsch_vars_SI[eNB_id]->llr[0]; // stream 0
pdsch_comp
=
(
int16_t
*
)
phy_vars_ue
->
pdsch_vars
[
phy_vars_ue
->
current_thread_id
[
subframe
]][
eNB_id
]
->
rxdataF_comp0
[
0
];
pdsch_comp
=
(
int16_t
*
)
phy_vars_ue
->
pdsch_vars
[
phy_vars_ue
->
current_thread_id
[
subframe
]][
eNB_id
]
->
rxdataF_comp0
[
0
];
pdsch_mag = (int16_t*) phy_vars_ue->pdsch_vars[phy_vars_ue->current_thread_id[subframe]][eNB_id]->dl_ch_mag0[0];
//pdsch_mag = (int16_t*) phy_vars_ue->pdsch_vars[phy_vars_ue->current_thread_id[subframe]][eNB_id]->dl_ch_mag0[0];
*/
// 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
)
{
...
@@ -710,25 +720,26 @@ void phy_scope_UE(FD_lte_phy_scope_ue *form,
...
@@ -710,25 +720,26 @@ void phy_scope_UE(FD_lte_phy_scope_ue *form,
}
}
}
}
}
}
*/
// PBCH LLRs
// PBCH LLRs
if
(
pbch_llr
!=
NULL
)
{
if
(
pbch_llr
!=
NULL
)
{
for (i=0; i<
1920
; i++) {
for
(
i
=
0
;
i
<
864
;
i
++
)
{
llr_pbch
[
i
]
=
(
float
)
pbch_llr
[
i
];
llr_pbch
[
i
]
=
(
float
)
pbch_llr
[
i
];
bit_pbch
[
i
]
=
(
float
)
i
;
bit_pbch
[
i
]
=
(
float
)
i
;
}
}
fl_set_xyplot_data(form->pbch_llr,bit_pbch,llr_pbch,
1920
,"","","");
fl_set_xyplot_data
(
form
->
pbch_llr
,
bit_pbch
,
llr_pbch
,
864
,
""
,
""
,
""
);
}
}
// PBCH I/Q of MF Output
// PBCH I/Q of MF Output
if
(
pbch_comp
!=
NULL
)
{
if
(
pbch_comp
!=
NULL
)
{
for (i=0; i<
72*2
; i++) {
for
(
i
=
0
;
i
<
576
;
i
++
)
{
I
[
i
]
=
pbch_comp
[
2
*
i
];
I
[
i
]
=
pbch_comp
[
2
*
i
];
Q
[
i
]
=
pbch_comp
[
2
*
i
+
1
];
Q
[
i
]
=
pbch_comp
[
2
*
i
+
1
];
}
}
fl_set_xyplot_data(form->pbch_comp,I,Q,
72*2
,"","","");
fl_set_xyplot_data
(
form
->
pbch_comp
,
I
,
Q
,
576
,
""
,
""
,
""
);
}
}
// PDCCH LLRs
// PDCCH LLRs
...
@@ -738,15 +749,7 @@ void phy_scope_UE(FD_lte_phy_scope_ue *form,
...
@@ -738,15 +749,7 @@ void phy_scope_UE(FD_lte_phy_scope_ue *form,
bit_pdcch
[
i
]
=
(
float
)
i
;
bit_pdcch
[
i
]
=
(
float
)
i
;
}
}
fl_set_xyplot_xbounds(form->pdcch_llr,0,12*frame_parms->N_RB_DL*2*3);
fl_set_xyplot_data
(
form
->
pdcch_llr
,
bit_pdcch
,
llr_pdcch
,
12
*
frame_parms
->
N_RB_DL
*
num_pdcch_symbols
,
""
,
""
,
""
);
if (frame_parms->N_RB_DL != 100)
{
fl_set_xyplot_data(form->pdcch_llr,bit_pdcch,llr_pdcch,12*frame_parms->N_RB_DL*2*num_pdcch_symbols,"","","");
}
else
{
LOG_D(PHY,"UE PDCCH LLR plot is bugged in 20 MHz BW, to be fixed !!!\n");
}
}
}
// PDCCH I/Q of MF Output
// PDCCH I/Q of MF Output
...
@@ -755,15 +758,8 @@ void phy_scope_UE(FD_lte_phy_scope_ue *form,
...
@@ -755,15 +758,8 @@ void phy_scope_UE(FD_lte_phy_scope_ue *form,
I
[
i
]
=
pdcch_comp
[
2
*
i
];
I
[
i
]
=
pdcch_comp
[
2
*
i
];
Q
[
i
]
=
pdcch_comp
[
2
*
i
+
1
];
Q
[
i
]
=
pdcch_comp
[
2
*
i
+
1
];
}
}
if (frame_parms->N_RB_DL != 100)
{
fl_set_xyplot_data
(
form
->
pdcch_comp
,
I
,
Q
,
12
*
frame_parms
->
N_RB_DL
*
num_pdcch_symbols
,
""
,
""
,
""
);
fl_set_xyplot_data
(
form
->
pdcch_comp
,
I
,
Q
,
12
*
frame_parms
->
N_RB_DL
*
num_pdcch_symbols
,
""
,
""
,
""
);
}
}
else
{
LOG_D(PHY,"UE PDCCH COMP plot is bugged in 20 MHz BW, to be fixed !!!\n");
}
}
// PDSCH LLRs
// PDSCH LLRs
if
(
pdsch_llr
!=
NULL
)
{
if
(
pdsch_llr
!=
NULL
)
{
...
@@ -772,32 +768,20 @@ void phy_scope_UE(FD_lte_phy_scope_ue *form,
...
@@ -772,32 +768,20 @@ void phy_scope_UE(FD_lte_phy_scope_ue *form,
bit
[
i
]
=
(
float
)
i
;
bit
[
i
]
=
(
float
)
i
;
}
}
fl_set_xyplot_xbounds(form->pdsch_llr,0,coded_bits_per_codeword);
//fl_set_xyplot_xbounds(form->pdsch_llr,0,coded_bits_per_codeword);
if (frame_parms->N_RB_DL != 100)
{
fl_set_xyplot_data
(
form
->
pdsch_llr
,
bit
,
llr
,
coded_bits_per_codeword
,
""
,
""
,
""
);
fl_set_xyplot_data
(
form
->
pdsch_llr
,
bit
,
llr
,
coded_bits_per_codeword
,
""
,
""
,
""
);
}
}
else
{
LOG_D(PHY,"UE PDSCH LLR plot is bugged in 20 MHz BW, to be fixed !!!\n");
}
}
// PDSCH I/Q of MF Output
// PDSCH I/Q of MF Output
if
(
pdsch_comp
!=
NULL
)
{
if
(
pdsch_comp
!=
NULL
)
{
ind=0;
for
(
i
=
0
;
i
<
num_re
;
i
++
)
{
I
[
ind
]
=
pdsch_comp
[
i
];
for (k=0; k<frame_parms->symbols_per_tti; k++) {
Q
[
ind
]
=
pdsch_comp
[
i
+
1
];
for (i=0; i<12*frame_parms->N_RB_DL/2; i++) {
int j = (2*frame_parms->N_RB_DL*12*k)+4*i;
I[ind] = (pdsch_mag[j ]!=0? 1.0/pdsch_mag[j ]: 0.0) * pdsch_comp[j ]*1.0;
Q[ind] = (pdsch_mag[j+1]!=0? 1.0/pdsch_mag[j+1]: 0.0) * pdsch_comp[j+1]*1.0;
ind++;
}
}
}
fl_set_xyplot_data(form->pdsch_comp,I,Q,
ind
,"","","");
fl_set_xyplot_data
(
form
->
pdsch_comp
,
I
,
Q
,
num_re
,
""
,
""
,
""
);
}
}
/*
// PDSCH Throughput
// PDSCH Throughput
memmove( tput_time_ue[UE_id], &tput_time_ue[UE_id][1], (TPUT_WINDOW_LENGTH-1)*sizeof(float) );
memmove( tput_time_ue[UE_id], &tput_time_ue[UE_id][1], (TPUT_WINDOW_LENGTH-1)*sizeof(float) );
...
@@ -824,19 +808,18 @@ void phy_scope_UE(FD_lte_phy_scope_ue *form,
...
@@ -824,19 +808,18 @@ void phy_scope_UE(FD_lte_phy_scope_ue *form,
}
}
free
(
rxsig_t_dB
);
free
(
rxsig_t_dB
);
/*
free
(
I
);
free
(
I
);
free
(
Q
);
free
(
Q
);
free(chest_f_abs);
free
(
llr
);
free
(
llr
);
free
(
bit
);
free
(
bit
);
free
(
bit_pdcch
);
free
(
bit_pdcch
);
free
(
llr_pdcch
);
free
(
llr_pdcch
);
/*
free(chest_f_abs);
for (arx=0; arx<nb_antennas_rx; arx++) {
for (arx=0; arx<nb_antennas_rx; arx++) {
free(chest_t_abs[arx]);
free(chest_t_abs[arx]);
}
}
free(chest_t_abs);
free(chest_t_abs);
*/
*/
}
}
targets/RT/USER/nr-uesoftmodem.c
View file @
751ad8e9
...
@@ -1116,6 +1116,8 @@ int main( int argc, char **argv ) {
...
@@ -1116,6 +1116,8 @@ int main( int argc, char **argv ) {
pthread_cond_init
(
&
sync_cond
,
NULL
);
pthread_cond_init
(
&
sync_cond
,
NULL
);
pthread_mutex_init
(
&
sync_mutex
,
NULL
);
pthread_mutex_init
(
&
sync_mutex
,
NULL
);
init_UE
(
1
);
#ifdef XFORMS
#ifdef XFORMS
int
UE_id
;
int
UE_id
;
int
fl_argc
=
1
;
int
fl_argc
=
1
;
...
@@ -1156,7 +1158,6 @@ int main( int argc, char **argv ) {
...
@@ -1156,7 +1158,6 @@ int main( int argc, char **argv ) {
rt_sleep_ns
(
10
*
100000000ULL
);
rt_sleep_ns
(
10
*
100000000ULL
);
init_UE
(
1
);
number_of_cards
=
1
;
number_of_cards
=
1
;
for
(
CC_id
=
0
;
CC_id
<
MAX_NUM_CCs
;
CC_id
++
)
{
for
(
CC_id
=
0
;
CC_id
<
MAX_NUM_CCs
;
CC_id
++
)
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment