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
spbro
OpenXG-RAN
Commits
e8597a16
Commit
e8597a16
authored
Oct 11, 2024
by
Robert Schmidt
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/NR_CSI_improvements' into integration_2024_w41
parents
3d32ce39
aaf9b57a
Changes
14
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
834 additions
and
765 deletions
+834
-765
CMakeLists.txt
CMakeLists.txt
+2
-4
openair1/PHY/INIT/nr_init.c
openair1/PHY/INIT/nr_init.c
+0
-6
openair1/PHY/NR_REFSIG/nr_refsig.h
openair1/PHY/NR_REFSIG/nr_refsig.h
+2
-9
openair1/PHY/NR_TRANSPORT/nr_csi_rs.c
openair1/PHY/NR_TRANSPORT/nr_csi_rs.c
+40
-564
openair1/PHY/NR_UE_TRANSPORT/csi_rx.c
openair1/PHY/NR_UE_TRANSPORT/csi_rx.c
+171
-160
openair1/PHY/defs_gNB.h
openair1/PHY/defs_gNB.h
+0
-3
openair1/PHY/defs_nr_UE.h
openair1/PHY/defs_nr_UE.h
+7
-0
openair1/PHY/defs_nr_common.h
openair1/PHY/defs_nr_common.h
+0
-7
openair1/PHY/nr_phy_common/inc/nr_phy_common.h
openair1/PHY/nr_phy_common/inc/nr_phy_common.h
+40
-0
openair1/PHY/nr_phy_common/src/nr_phy_common_csirs.c
openair1/PHY/nr_phy_common/src/nr_phy_common_csirs.c
+563
-0
openair1/SCHED_NR/phy_procedures_nr_gNB.c
openair1/SCHED_NR/phy_procedures_nr_gNB.c
+9
-9
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
+0
-1
openair2/NR_UE_PHY_INTERFACE/NR_IF_Module.h
openair2/NR_UE_PHY_INTERFACE/NR_IF_Module.h
+0
-1
openair2/NR_UE_PHY_INTERFACE/NR_Packet_Drop.h
openair2/NR_UE_PHY_INTERFACE/NR_Packet_Drop.h
+0
-1
No files found.
CMakeLists.txt
View file @
e8597a16
...
...
@@ -1001,7 +1001,7 @@ set(PHY_SRC_UE
set
(
PHY_NR_SRC_COMMON
${
OPENAIR1_DIR
}
/PHY/NR_TRANSPORT/nr_prach_common.c
${
OPENAIR1_DIR
}
/PHY/
NR_TRANSPORT/nr_csi_
rs.c
${
OPENAIR1_DIR
}
/PHY/
nr_phy_common/src/nr_phy_common_csi
rs.c
${
OPENAIR1_DIR
}
/PHY/NR_TRANSPORT/nr_scrambling.c
${
OPENAIR1_DIR
}
/PHY/NR_REFSIG/scrambling_luts.c
${
OPENAIR1_DIR
}
/PHY/NR_REFSIG/refsig.c
...
...
@@ -1033,12 +1033,12 @@ set(PHY_SRC_UE
${
OPENAIR1_DIR
}
/PHY/NR_REFSIG/nr_gen_mod_table.c
${
OPENAIR1_DIR
}
/PHY/NR_REFSIG/dmrs_nr.c
${
OPENAIR1_DIR
}
/PHY/NR_REFSIG/ptrs_nr.c
${
OPENAIR1_DIR
}
/PHY/NR_TRANSPORT/nr_csi_rs.c
${
OPENAIR1_DIR
}
/PHY/NR_ESTIMATION/nr_ul_channel_estimation.c
${
OPENAIR1_DIR
}
/PHY/NR_ESTIMATION/nr_freq_equalization.c
${
OPENAIR1_DIR
}
/PHY/NR_ESTIMATION/nr_measurements_gNB.c
${
OPENAIR1_DIR
}
/PHY/TOOLS/file_output.c
${
OPENAIR1_DIR
}
/PHY/TOOLS/cadd_vv.c
#${OPENAIR1_DIR}/PHY/TOOLS/lte_dfts.c
${
OPENAIR1_DIR
}
/PHY/TOOLS/log2_approx.c
${
OPENAIR1_DIR
}
/PHY/TOOLS/cmult_sv.c
${
OPENAIR1_DIR
}
/PHY/TOOLS/cmult_vv.c
...
...
@@ -1093,7 +1093,6 @@ set(PHY_SRC_UE
${
OPENAIR1_DIR
}
/PHY/NR_UE_ESTIMATION/nr_adjust_gain.c
${
OPENAIR1_DIR
}
/PHY/TOOLS/file_output.c
${
OPENAIR1_DIR
}
/PHY/TOOLS/cadd_vv.c
# ${OPENAIR1_DIR}/PHY/TOOLS/lte_dfts.c
${
OPENAIR1_DIR
}
/PHY/TOOLS/log2_approx.c
${
OPENAIR1_DIR
}
/PHY/TOOLS/cmult_sv.c
${
OPENAIR1_DIR
}
/PHY/TOOLS/cmult_vv.c
...
...
@@ -1104,7 +1103,6 @@ set(PHY_SRC_UE
${
OPENAIR1_DIR
}
/PHY/TOOLS/lut.c
${
OPENAIR1_DIR
}
/PHY/TOOLS/simde_operations.c
${
OPENAIR1_DIR
}
/PHY/INIT/nr_init_ue.c
# ${OPENAIR1_DIR}/SIMULATION/NR_UE_PHY/unit_tests/src/pucch_uci_test.c
${
PHY_POLARSRC
}
${
PHY_SMALLBLOCKSRC
}
${
PHY_NR_CODINGIF
}
...
...
openair1/PHY/INIT/nr_init.c
View file @
e8597a16
...
...
@@ -150,10 +150,6 @@ int phy_init_nr_gNB(PHY_VARS_gNB *gNB)
nr_generate_modulation_table
();
nr_init_pbch_interleaver
(
gNB
->
nr_pbch_interleaver
);
// CSI RS init
// ceil((NB_RB*8(max allocation per RB)*2(QPSK))/32)
gNB
->
nr_csi_info
=
(
nr_csi_info_t
*
)
malloc16_clear
(
sizeof
(
nr_csi_info_t
));
generate_ul_reference_signal_sequences
(
SHRT_MAX
);
/* Generate low PAPR type 1 sequences for PUSCH DMRS, these are used if transform precoding is enabled. */
...
...
@@ -241,8 +237,6 @@ void phy_free_nr_gNB(PHY_VARS_gNB *gNB)
free_and_zero
(
meas
->
n0_subband_power
);
free_and_zero
(
meas
->
n0_subband_power_dB
);
free_and_zero
(
gNB
->
nr_csi_info
);
for
(
int
id
=
0
;
id
<
gNB
->
max_nb_srs
;
id
++
)
{
for
(
int
i
=
0
;
i
<
MAX_NUM_NR_SRS_AP
;
i
++
)
{
free_and_zero
(
gNB
->
nr_srs_info
[
id
]
->
srs_generated_signal
[
i
]);
...
...
openair1/PHY/NR_REFSIG/nr_refsig.h
View file @
e8597a16
...
...
@@ -26,6 +26,7 @@
#include "PHY/defs_gNB.h"
#include "openair1/PHY/NR_REFSIG/nr_refsig_common.h"
#include "PHY/nr_phy_common/inc/nr_phy_common.h"
int
nr_pusch_dmrs_rx
(
PHY_VARS_gNB
*
gNB
,
unsigned
int
Ns
,
...
...
@@ -40,17 +41,9 @@ int nr_pusch_dmrs_rx(PHY_VARS_gNB *gNB,
void
nr_generate_csi_rs
(
const
NR_DL_FRAME_PARMS
*
frame_parms
,
int32_t
**
dataF
,
const
int16_t
amp
,
nr_csi_info_t
*
nr_csi_info
,
const
nfapi_nr_dl_tti_csi_rs_pdu_rel15_t
*
csi_params
,
const
int
slot
,
uint8_t
*
N_cdm_groups
,
uint8_t
*
CDM_group_size
,
uint8_t
*
k_prime
,
uint8_t
*
l_prime
,
uint8_t
*
N_ports
,
uint8_t
*
j_cdm
,
uint8_t
*
k_overline
,
uint8_t
*
l_overline
);
const
csi_mapping_parms_t
*
phy_csi_parms
);
void
init_scrambling_luts
(
void
);
void
nr_generate_modulation_table
(
void
);
...
...
openair1/PHY/NR_TRANSPORT/nr_csi_rs.c
View file @
e8597a16
This diff is collapsed.
Click to expand it.
openair1/PHY/NR_UE_TRANSPORT/csi_rx.c
View file @
e8597a16
This diff is collapsed.
Click to expand it.
openair1/PHY/defs_gNB.h
View file @
e8597a16
...
...
@@ -464,9 +464,6 @@ typedef struct PHY_VARS_gNB_s {
/// SRS variables
nr_srs_info_t
**
nr_srs_info
;
/// CSI variables
nr_csi_info_t
*
nr_csi_info
;
// reference amplitude for TX
int16_t
TX_AMP
;
...
...
openair1/PHY/defs_nr_UE.h
View file @
e8597a16
...
...
@@ -310,6 +310,13 @@ typedef struct {
fapi_nr_dl_config_csirs_pdu_rel15_t
csirs_config_pdu
;
}
NR_UE_CSI_RS
;
typedef
struct
{
uint8_t
csi_rs_generated_signal_bits
;
int32_t
**
csi_rs_generated_signal
;
bool
csi_im_meas_computed
;
uint32_t
interference_plus_noise_power
;
}
nr_csi_info_t
;
typedef
struct
{
bool
active
;
fapi_nr_ul_config_srs_pdu
srs_config_pdu
;
...
...
openair1/PHY/defs_nr_common.h
View file @
e8597a16
...
...
@@ -119,13 +119,6 @@ typedef struct {
nfapi_nr_srs_pdu_t
srs_pdu
;
}
nr_srs_info_t
;
typedef
struct
{
uint8_t
csi_rs_generated_signal_bits
;
int32_t
**
csi_rs_generated_signal
;
bool
csi_im_meas_computed
;
uint32_t
interference_plus_noise_power
;
}
nr_csi_info_t
;
typedef
struct
NR_DL_FRAME_PARMS
NR_DL_FRAME_PARMS
;
typedef
uint32_t
(
*
get_samples_per_slot_t
)(
int
slot
,
const
NR_DL_FRAME_PARMS
*
fp
);
...
...
openair1/PHY/nr_phy_common/inc/nr_phy_common.h
View file @
e8597a16
...
...
@@ -23,7 +23,47 @@
#define __NR_PHY_COMMON__H__
#include "PHY/impl_defs_top.h"
#include "PHY/TOOLS/tools_defs.h"
#include "PHY/NR_REFSIG/nr_refsig_common.h"
#include "PHY/MODULATION/nr_modulation.h"
typedef
struct
{
int
size
;
int
ports
;
int
kprime
;
int
lprime
;
int
j
[
16
];
int
koverline
[
16
];
int
loverline
[
16
];
}
csi_mapping_parms_t
;
void
get_modulated_csi_symbols
(
int
symbols_per_slot
,
int
slot
,
int
N_RB_DL
,
int
mod_length
,
int16_t
mod_csi
[][(
N_RB_DL
<<
4
)
>>
1
],
int
lprime
,
int
l0
,
int
l1
,
int
row
,
int
scramb_id
);
void
csi_rs_resource_mapping
(
int32_t
**
dataF
,
int
csi_rs_length
,
int16_t
mod_csi
[][
csi_rs_length
>>
1
],
int
ofdm_symbol_size
,
int
dataF_offset
,
int
start_sc
,
const
csi_mapping_parms_t
*
mapping_parms
,
int
start_rb
,
int
nb_rbs
,
double
alpha
,
int
beta
,
double
rho
,
int
gs
,
int
freq_density
);
csi_mapping_parms_t
get_csi_mapping_parms
(
int
row
,
int
b
,
int
l0
,
int
l1
);
int
get_cdm_group_size
(
int
cdm_type
);
double
get_csi_rho
(
int
freq_density
);
uint32_t
get_csi_beta_amplitude
(
const
int16_t
amp
,
int
power_control_offset_ss
);
int
get_csi_modulation_length
(
double
rho
,
int
freq_density
,
int
kprime
,
int
start_rb
,
int
nb_rbs
);
void
nr_qpsk_llr
(
int32_t
*
rxdataF_comp
,
int16_t
*
llr
,
uint32_t
nb_re
);
void
nr_16qam_llr
(
int32_t
*
rxdataF_comp
,
int32_t
*
ch_mag_in
,
int16_t
*
llr
,
uint32_t
nb_re
);
void
nr_64qam_llr
(
int32_t
*
rxdataF_comp
,
int32_t
*
ch_mag
,
int32_t
*
ch_mag2
,
int16_t
*
llr
,
uint32_t
nb_re
);
...
...
openair1/PHY/nr_phy_common/src/nr_phy_common_csirs.c
0 → 100644
View file @
e8597a16
This diff is collapsed.
Click to expand it.
openair1/SCHED_NR/phy_procedures_nr_gNB.c
View file @
e8597a16
...
...
@@ -220,20 +220,20 @@ void phy_procedures_gNB_TX(processingData_L1tx_t *msgTx,
if
(
csirs
->
active
==
1
)
{
LOG_D
(
PHY
,
"CSI-RS generation started in frame %d.%d
\n
"
,
frame
,
slot
);
nfapi_nr_dl_tti_csi_rs_pdu_rel15_t
*
csi_params
=
&
csirs
->
csirs_pdu
.
csi_rs_pdu_rel15
;
if
(
csi_params
->
csi_type
==
2
)
{
// ZP-CSI
csirs
->
active
=
0
;
return
;
}
csi_mapping_parms_t
mapping_parms
=
get_csi_mapping_parms
(
csi_params
->
row
,
csi_params
->
freq_domain
,
csi_params
->
symb_l0
,
csi_params
->
symb_l1
);
nr_generate_csi_rs
(
&
gNB
->
frame_parms
,
(
int32_t
**
)
gNB
->
common_vars
.
txdataF
,
gNB
->
TX_AMP
,
gNB
->
nr_csi_info
,
csi_params
,
slot
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
);
&
mapping_parms
);
csirs
->
active
=
0
;
}
}
...
...
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
View file @
e8597a16
...
...
@@ -1081,7 +1081,6 @@ void pdsch_processing(PHY_VARS_NR_UE *ue, const UE_nr_rxtx_proc_t *proc, nr_phy_
}
}
nr_ue_csi_rs_procedures
(
ue
,
proc
,
rxdataF
);
ue
->
csirs_vars
[
gNB_id
]
->
active
=
0
;
}
if
(
dlsch
[
0
].
active
)
{
...
...
openair2/NR_UE_PHY_INTERFACE/NR_IF_Module.h
View file @
e8597a16
...
...
@@ -37,7 +37,6 @@
#include <semaphore.h>
#include "fapi_nr_ue_interface.h"
#include "openair2/PHY_INTERFACE/queue_t.h"
#include "nfapi_nr_interface_scf.h"
#include "openair2/NR_PHY_INTERFACE/NR_IF_Module.h"
#include "NR_Packet_Drop.h"
#include "nfapi/open-nFAPI/nfapi/public_inc/sidelink_nr_ue_interface.h"
...
...
openair2/NR_UE_PHY_INTERFACE/NR_Packet_Drop.h
View file @
e8597a16
...
...
@@ -22,7 +22,6 @@
#define __NR_CHAN_MODEL_H__
#include "common/platform_types.h"
#include <nfapi_nr_interface_scf.h>
#include "openair2/NR_PHY_INTERFACE/NR_IF_Module.h"
#define NR_NUM_MCS 29
...
...
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