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
lizhongxiao
OpenXG-RAN
Commits
3cc61718
Commit
3cc61718
authored
Jun 21, 2023
by
rmagueta
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ULSCH power computation in a different way
parent
0be397b2
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
109 additions
and
71 deletions
+109
-71
openair1/PHY/NR_ESTIMATION/nr_measurements_gNB.c
openair1/PHY/NR_ESTIMATION/nr_measurements_gNB.c
+25
-1
openair1/PHY/NR_TRANSPORT/nr_ulsch_demodulation.c
openair1/PHY/NR_TRANSPORT/nr_ulsch_demodulation.c
+82
-70
openair1/PHY/defs_gNB.h
openair1/PHY/defs_gNB.h
+2
-0
No files found.
openair1/PHY/NR_ESTIMATION/nr_measurements_gNB.c
View file @
3cc61718
...
@@ -123,6 +123,14 @@ void gNB_I0_measurements(PHY_VARS_gNB *gNB,int slot, int first_symb,int num_symb
...
@@ -123,6 +123,14 @@ void gNB_I0_measurements(PHY_VARS_gNB *gNB,int slot, int first_symb,int num_symb
PHY_MEASUREMENTS_gNB
*
measurements
=
&
gNB
->
measurements
;
PHY_MEASUREMENTS_gNB
*
measurements
=
&
gNB
->
measurements
;
int
rb
,
nb_symb
[
275
]
=
{
0
};
int
rb
,
nb_symb
[
275
]
=
{
0
};
allocCast2D
(
ulsch_power
,
unsigned
int
,
gNB
->
measurements
.
ulsch_power
,
frame_parms
->
nb_antennas_rx
,
frame_parms
->
N_RB_UL
,
false
);
clearArray
(
gNB
->
measurements
.
ulsch_power
,
unsigned
int
);
allocCast2D
(
n0_subband_power
,
allocCast2D
(
n0_subband_power
,
unsigned
int
,
unsigned
int
,
gNB
->
measurements
.
n0_subband_power
,
gNB
->
measurements
.
n0_subband_power
,
...
@@ -140,9 +148,24 @@ void gNB_I0_measurements(PHY_VARS_gNB *gNB,int slot, int first_symb,int num_symb
...
@@ -140,9 +148,24 @@ void gNB_I0_measurements(PHY_VARS_gNB *gNB,int slot, int first_symb,int num_symb
for
(
int
s
=
first_symb
;
s
<
(
first_symb
+
num_symb
);
s
++
)
{
for
(
int
s
=
first_symb
;
s
<
(
first_symb
+
num_symb
);
s
++
)
{
int
offset0
=
((
slot
&
3
)
*
frame_parms
->
symbols_per_slot
+
s
)
*
frame_parms
->
ofdm_symbol_size
;
int
offset0
=
((
slot
&
3
)
*
frame_parms
->
symbols_per_slot
+
s
)
*
frame_parms
->
ofdm_symbol_size
;
for
(
rb
=
0
;
rb
<
frame_parms
->
N_RB_UL
;
rb
++
)
{
for
(
rb
=
0
;
rb
<
frame_parms
->
N_RB_UL
;
rb
++
)
{
int
offset
=
offset0
+
(
frame_parms
->
first_carrier_offset
+
(
rb
*
12
))
%
frame_parms
->
ofdm_symbol_size
;
for
(
int
aarx
=
0
;
aarx
<
frame_parms
->
nb_antennas_rx
;
aarx
++
)
{
int32_t
*
ul_ch
=
(
int32_t
*
)
&
common_vars
->
rxdataF
[
aarx
][
offset
];
int32_t
signal_energy
;
if
(((
frame_parms
->
N_RB_UL
&
1
)
==
1
)
&&
(
rb
==
(
frame_parms
->
N_RB_UL
>>
1
)))
{
signal_energy
=
signal_energy_nodc
(
ul_ch
,
6
);
ul_ch
=
(
int32_t
*
)
&
common_vars
->
rxdataF
[
aarx
][
offset0
];
signal_energy
+=
signal_energy_nodc
(
ul_ch
,
6
);
}
else
{
signal_energy
=
signal_energy_nodc
(
ul_ch
,
12
);
}
ulsch_power
[
aarx
][
rb
]
+=
signal_energy
;
LOG_D
(
NR_PHY
,
"slot %d symbol %d RB %d aarx %d n0_subband_power %d
\n
"
,
slot
,
s
,
rb
,
aarx
,
signal_energy
);
}
if
((
gNB
->
rb_mask_ul
[
s
][
rb
>>
5
]
&
(
1U
<<
(
rb
&
31
)))
==
0
&&
// check that rb was not used in this subframe
if
((
gNB
->
rb_mask_ul
[
s
][
rb
>>
5
]
&
(
1U
<<
(
rb
&
31
)))
==
0
&&
// check that rb was not used in this subframe
!
(
I0_SKIP_DC
&&
rb
==
frame_parms
->
N_RB_UL
>>
1
))
{
// skip middle PRB because of artificial noise possibly created by FFT
!
(
I0_SKIP_DC
&&
rb
==
frame_parms
->
N_RB_UL
>>
1
))
{
// skip middle PRB because of artificial noise possibly created by FFT
int
offset
=
offset0
+
(
frame_parms
->
first_carrier_offset
+
(
rb
*
12
))
%
frame_parms
->
ofdm_symbol_size
;
nb_symb
[
rb
]
++
;
nb_symb
[
rb
]
++
;
for
(
int
aarx
=
0
;
aarx
<
frame_parms
->
nb_antennas_rx
;
aarx
++
)
{
for
(
int
aarx
=
0
;
aarx
<
frame_parms
->
nb_antennas_rx
;
aarx
++
)
{
int32_t
*
ul_ch
=
(
int32_t
*
)
&
common_vars
->
rxdataF
[
aarx
][
offset
];
int32_t
*
ul_ch
=
(
int32_t
*
)
&
common_vars
->
rxdataF
[
aarx
][
offset
];
...
@@ -172,6 +195,7 @@ void gNB_I0_measurements(PHY_VARS_gNB *gNB,int slot, int first_symb,int num_symb
...
@@ -172,6 +195,7 @@ void gNB_I0_measurements(PHY_VARS_gNB *gNB,int slot, int first_symb,int num_symb
if
(
nb_symb
[
rb
]
>
0
)
{
if
(
nb_symb
[
rb
]
>
0
)
{
for
(
int
aarx
=
0
;
aarx
<
frame_parms
->
nb_antennas_rx
;
aarx
++
)
{
for
(
int
aarx
=
0
;
aarx
<
frame_parms
->
nb_antennas_rx
;
aarx
++
)
{
n0_subband_power
[
aarx
][
rb
]
/=
nb_symb
[
rb
];
n0_subband_power
[
aarx
][
rb
]
/=
nb_symb
[
rb
];
ulsch_power
[
aarx
][
rb
]
/=
num_symb
;
n0_subband_power_dB
[
aarx
][
rb
]
=
dB_fixed
(
n0_subband_power
[
aarx
][
rb
]);
n0_subband_power_dB
[
aarx
][
rb
]
=
dB_fixed
(
n0_subband_power
[
aarx
][
rb
]);
n0_subband_tot_perPRB
+=
n0_subband_power
[
aarx
][
rb
];
n0_subband_tot_perPRB
+=
n0_subband_power
[
aarx
][
rb
];
n0_subband_tot_perANT
[
aarx
]
+=
n0_subband_power
[
aarx
][
rb
];
n0_subband_tot_perANT
[
aarx
]
+=
n0_subband_power
[
aarx
][
rb
];
...
...
openair1/PHY/NR_TRANSPORT/nr_ulsch_demodulation.c
View file @
3cc61718
...
@@ -1496,6 +1496,12 @@ int nr_rx_pusch_tp(PHY_VARS_gNB *gNB,
...
@@ -1496,6 +1496,12 @@ int nr_rx_pusch_tp(PHY_VARS_gNB *gNB,
pusch_vars
,
pusch_vars
,
symbol
,
symbol
,
rel15_ul
->
nrOfLayers
);
rel15_ul
->
nrOfLayers
);
allocCast2D
(
ulsch_power
,
unsigned
int
,
gNB
->
measurements
.
ulsch_power
,
frame_parms
->
nb_antennas_rx
,
frame_parms
->
N_RB_UL
,
false
);
allocCast2D
(
n0_subband_power
,
allocCast2D
(
n0_subband_power
,
unsigned
int
,
unsigned
int
,
gNB
->
measurements
.
n0_subband_power
,
gNB
->
measurements
.
n0_subband_power
,
...
@@ -1509,15 +1515,21 @@ int nr_rx_pusch_tp(PHY_VARS_gNB *gNB,
...
@@ -1509,15 +1515,21 @@ int nr_rx_pusch_tp(PHY_VARS_gNB *gNB,
pusch_vars
->
ulsch_power
[
aarx
]
=
0
;
pusch_vars
->
ulsch_power
[
aarx
]
=
0
;
pusch_vars
->
ulsch_noise_power
[
aarx
]
=
0
;
pusch_vars
->
ulsch_noise_power
[
aarx
]
=
0
;
}
}
for
(
int
aatx
=
0
;
aatx
<
rel15_ul
->
nrOfLayers
;
aatx
++
)
{
for
(
int
rb
=
0
;
rb
<
rel15_ul
->
rb_size
;
rb
++
)
{
pusch_vars
->
ulsch_power
[
aarx
]
+=
signal_energy_nodc
(
pusch_vars
->
ulsch_power
[
aarx
]
+=
&
pusch_vars
->
ul_ch_estimates
[
aatx
*
gNB
->
frame_parms
.
nb_antennas_rx
+
aarx
][
symbol
*
frame_parms
->
ofdm_symbol_size
],
ulsch_power
[
aarx
][
rel15_ul
->
bwp_start
+
rel15_ul
->
rb_start
+
rb
]
/
rel15_ul
->
rb_size
;
rel15_ul
->
rb_size
*
12
);
}
for
(
int
rb
=
0
;
rb
<
rel15_ul
->
rb_size
;
rb
++
)
pusch_vars
->
ulsch_noise_power
[
aarx
]
+=
pusch_vars
->
ulsch_noise_power
[
aarx
]
+=
n0_subband_power
[
aarx
][
rel15_ul
->
bwp_start
+
rel15_ul
->
rb_start
+
rb
]
/
rel15_ul
->
rb_size
;
n0_subband_power
[
aarx
][
rel15_ul
->
bwp_start
+
rel15_ul
->
rb_start
+
rb
]
/
rel15_ul
->
rb_size
;
}
}
LOG_D
(
PHY
,
"aa %d, bwp_start%d, rb_start %d, rb_size %d: ulsch_power %d, ulsch_noise_power %d
\n
"
,
aarx
,
rel15_ul
->
bwp_start
,
rel15_ul
->
rb_start
,
rel15_ul
->
rb_size
,
pusch_vars
->
ulsch_power
[
aarx
],
pusch_vars
->
ulsch_noise_power
[
aarx
]);
}
}
}
}
}
...
...
openair1/PHY/defs_gNB.h
View file @
3cc61718
...
@@ -561,6 +561,8 @@ typedef struct {
...
@@ -561,6 +561,8 @@ typedef struct {
fourDimArray_t
*
n0_subband_power
;
fourDimArray_t
*
n0_subband_power
;
//! estimated avg noise power per RB per RX ant (dB)
//! estimated avg noise power per RB per RX ant (dB)
fourDimArray_t
*
n0_subband_power_dB
;
fourDimArray_t
*
n0_subband_power_dB
;
//! estimated avg power per RB per RX ant (lin)
fourDimArray_t
*
ulsch_power
;
//! estimated avg subband noise power (dB)
//! estimated avg subband noise power (dB)
unsigned
int
n0_subband_power_avg_dB
;
unsigned
int
n0_subband_power_avg_dB
;
//! estimated avg subband noise power per antenna (dB)
//! estimated avg subband noise power per antenna (dB)
...
...
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