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
promise
OpenXG-RAN
Commits
0f55139d
Commit
0f55139d
authored
Jan 24, 2021
by
Khodr Saaifan
Committed by
Thomas Schlichter
Feb 01, 2021
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Extend nr_dlsch demoulation to support multiple Rx antennas with MRC
parent
b962cc94
Changes
4
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
472 additions
and
425 deletions
+472
-425
openair1/PHY/INIT/nr_init_ue.c
openair1/PHY/INIT/nr_init_ue.c
+2
-6
openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_demodulation.c
openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_demodulation.c
+454
-416
openair1/PHY/NR_UE_TRANSPORT/nr_transport_proto_ue.h
openair1/PHY/NR_UE_TRANSPORT/nr_transport_proto_ue.h
+13
-0
openair1/PHY/defs_nr_UE.h
openair1/PHY/defs_nr_UE.h
+3
-3
No files found.
openair1/PHY/INIT/nr_init_ue.c
View file @
0f55139d
...
@@ -642,14 +642,9 @@ int init_nr_ue_signal(PHY_VARS_NR_UE *ue,
...
@@ -642,14 +642,9 @@ int init_nr_ue_signal(PHY_VARS_NR_UE *ue,
ue
->
pdsch_vars
[
th_id
][
eNB_id
]
->
llr
[
1
]
=
(
int16_t
*
)
malloc16_clear
(
(
8
*
(
3
*
8
*
8448
))
*
sizeof
(
int16_t
)
);
ue
->
pdsch_vars
[
th_id
][
eNB_id
]
->
llr
[
1
]
=
(
int16_t
*
)
malloc16_clear
(
(
8
*
(
3
*
8
*
8448
))
*
sizeof
(
int16_t
)
);
ue
->
pdsch_vars
[
th_id
][
eNB_id
]
->
layer_llr
[
1
]
=
(
int16_t
*
)
malloc16_clear
(
(
8
*
(
3
*
8
*
8448
))
*
sizeof
(
int16_t
)
);
ue
->
pdsch_vars
[
th_id
][
eNB_id
]
->
layer_llr
[
1
]
=
(
int16_t
*
)
malloc16_clear
(
(
8
*
(
3
*
8
*
8448
))
*
sizeof
(
int16_t
)
);
ue
->
pdsch_vars
[
th_id
][
eNB_id
]
->
llr128_2ndstream
=
(
int16_t
**
)
malloc16_clear
(
sizeof
(
int16_t
*
)
);
ue
->
pdsch_vars
[
th_id
][
eNB_id
]
->
llr128_2ndstream
=
(
int16_t
**
)
malloc16_clear
(
sizeof
(
int16_t
*
)
);
ue
->
pdsch_vars
[
th_id
][
eNB_id
]
->
rho
=
(
int32_t
**
)
malloc16_clear
(
fp
->
nb_antennas_rx
*
sizeof
(
int32_t
*
)
);
ue
->
pdsch_vars
[
th_id
][
eNB_id
]
->
rho
=
(
int32_t
**
)
malloc16_clear
(
4
*
fp
->
nb_antennas_rx
*
sizeof
(
int32_t
*
)
);
}
}
for
(
int
i
=
0
;
i
<
fp
->
nb_antennas_rx
;
i
++
)
{
for
(
th_id
=
0
;
th_id
<
RX_NB_TH_MAX
;
th_id
++
)
{
ue
->
pdsch_vars
[
th_id
][
eNB_id
]
->
rho
[
i
]
=
(
int32_t
*
)
malloc16_clear
(
7
*
2
*
sizeof
(
int32_t
)
*
(
fp
->
N_RB_DL
*
12
)
);
}
}
for
(
th_id
=
0
;
th_id
<
RX_NB_TH_MAX
;
th_id
++
)
{
for
(
th_id
=
0
;
th_id
<
RX_NB_TH_MAX
;
th_id
++
)
{
ue
->
pdsch_vars
[
th_id
][
eNB_id
]
->
dl_ch_rho2_ext
=
(
int32_t
**
)
malloc16_clear
(
4
*
fp
->
nb_antennas_rx
*
sizeof
(
int32_t
*
)
);
ue
->
pdsch_vars
[
th_id
][
eNB_id
]
->
dl_ch_rho2_ext
=
(
int32_t
**
)
malloc16_clear
(
4
*
fp
->
nb_antennas_rx
*
sizeof
(
int32_t
*
)
);
...
@@ -662,6 +657,7 @@ int init_nr_ue_signal(PHY_VARS_NR_UE *ue,
...
@@ -662,6 +657,7 @@ int init_nr_ue_signal(PHY_VARS_NR_UE *ue,
for
(
th_id
=
0
;
th_id
<
RX_NB_TH_MAX
;
th_id
++
)
{
for
(
th_id
=
0
;
th_id
<
RX_NB_TH_MAX
;
th_id
++
)
{
ue
->
pdsch_vars
[
th_id
][
eNB_id
]
->
dl_ch_rho2_ext
[
idx
]
=
(
int32_t
*
)
malloc16_clear
(
sizeof
(
int32_t
)
*
num
);
ue
->
pdsch_vars
[
th_id
][
eNB_id
]
->
dl_ch_rho2_ext
[
idx
]
=
(
int32_t
*
)
malloc16_clear
(
sizeof
(
int32_t
)
*
num
);
ue
->
pdsch_vars
[
th_id
][
eNB_id
]
->
rho
[
idx
]
=
(
int32_t
*
)
malloc16_clear
(
7
*
2
*
sizeof
(
int32_t
)
*
(
fp
->
N_RB_DL
*
12
)
);
}
}
}
}
...
...
openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_demodulation.c
View file @
0f55139d
This diff is collapsed.
Click to expand it.
openair1/PHY/NR_UE_TRANSPORT/nr_transport_proto_ue.h
View file @
0f55139d
...
@@ -805,6 +805,7 @@ void nr_dlsch_channel_compensation(int32_t **rxdataF_ext,
...
@@ -805,6 +805,7 @@ void nr_dlsch_channel_compensation(int32_t **rxdataF_ext,
int32_t
**
rxdataF_comp
,
int32_t
**
rxdataF_comp
,
int32_t
**
rho
,
int32_t
**
rho
,
NR_DL_FRAME_PARMS
*
frame_parms
,
NR_DL_FRAME_PARMS
*
frame_parms
,
uint8_t
nb_aatx
,
uint8_t
symbol
,
uint8_t
symbol
,
uint8_t
start_symbol
,
uint8_t
start_symbol
,
uint8_t
first_symbol_flag
,
uint8_t
first_symbol_flag
,
...
@@ -889,6 +890,15 @@ void nr_dlsch_channel_level_median(int **dl_ch_estimates_ext,
...
@@ -889,6 +890,15 @@ void nr_dlsch_channel_level_median(int **dl_ch_estimates_ext,
int
length
,
int
length
,
int
start_point
);
int
start_point
);
void
nr_dlsch_detection_mrc
(
int
**
rxdataF_comp
,
int
**
rho
,
int
**
dl_ch_mag
,
int
**
dl_ch_magb
,
short
n_tx
,
short
n_rx
,
unsigned
char
symbol
,
unsigned
short
nb_rb
);
void
nr_dlsch_detection_mrc_core
(
int
**
rxdataF_comp
,
void
nr_dlsch_detection_mrc_core
(
int
**
rxdataF_comp
,
int
**
rxdataF_comp_i
,
int
**
rxdataF_comp_i
,
int
**
rho
,
int
**
rho
,
...
@@ -962,6 +972,7 @@ void dlsch_channel_compensation_TM34(NR_DL_FRAME_PARMS *frame_parms,
...
@@ -962,6 +972,7 @@ void dlsch_channel_compensation_TM34(NR_DL_FRAME_PARMS *frame_parms,
*/
*/
void
nr_dlsch_channel_level
(
int
**
dl_ch_estimates_ext
,
void
nr_dlsch_channel_level
(
int
**
dl_ch_estimates_ext
,
NR_DL_FRAME_PARMS
*
frame_parms
,
NR_DL_FRAME_PARMS
*
frame_parms
,
uint8_t
n_tx
,
int32_t
*
avg
,
int32_t
*
avg
,
uint8_t
symbol
,
uint8_t
symbol
,
uint32_t
len
,
uint32_t
len
,
...
@@ -993,6 +1004,8 @@ void dlsch_channel_level_TM7(int32_t **dl_bf_ch_estimates_ext,
...
@@ -993,6 +1004,8 @@ void dlsch_channel_level_TM7(int32_t **dl_bf_ch_estimates_ext,
void
nr_dlsch_scale_channel
(
int32_t
**
dl_ch_estimates_ext
,
void
nr_dlsch_scale_channel
(
int32_t
**
dl_ch_estimates_ext
,
NR_DL_FRAME_PARMS
*
frame_parms
,
NR_DL_FRAME_PARMS
*
frame_parms
,
uint8_t
n_tx
,
uint8_t
n_rx
,
NR_UE_DLSCH_t
**
dlsch_ue
,
NR_UE_DLSCH_t
**
dlsch_ue
,
uint8_t
symbol
,
uint8_t
symbol
,
uint8_t
start_symbol
,
uint8_t
start_symbol
,
...
...
openair1/PHY/defs_nr_UE.h
View file @
0f55139d
...
@@ -234,7 +234,7 @@ typedef struct {
...
@@ -234,7 +234,7 @@ typedef struct {
//! estimated rssi (dBm)
//! estimated rssi (dBm)
short
rx_rssi_dBm
[
NUMBER_OF_CONNECTED_eNB_MAX
];
short
rx_rssi_dBm
[
NUMBER_OF_CONNECTED_eNB_MAX
];
//! estimated correlation (wideband linear) between spatial channels (computed in dlsch_demodulation)
//! estimated correlation (wideband linear) between spatial channels (computed in dlsch_demodulation)
int
rx_correlation
[
NUMBER_OF_CONNECTED_eNB_MAX
][
2
];
int
rx_correlation
[
NUMBER_OF_CONNECTED_eNB_MAX
][
4
][
4
];
//! estimated correlation (wideband dB) between spatial channels (computed in dlsch_demodulation)
//! estimated correlation (wideband dB) between spatial channels (computed in dlsch_demodulation)
int
rx_correlation_dB
[
NUMBER_OF_CONNECTED_eNB_MAX
][
2
];
int
rx_correlation_dB
[
NUMBER_OF_CONNECTED_eNB_MAX
][
2
];
...
@@ -379,8 +379,8 @@ typedef struct {
...
@@ -379,8 +379,8 @@ typedef struct {
int32_t
**
dl_ch_magb1
[
8
][
8
];
int32_t
**
dl_ch_magb1
[
8
][
8
];
/// \brief Magnitude of Downlink Channel, first layer (256QAM level).
/// \brief Magnitude of Downlink Channel, first layer (256QAM level).
int32_t
**
dl_ch_magr0
;
int32_t
**
dl_ch_magr0
;
/// \brief Cross-correlation
of two eNB
signals.
/// \brief Cross-correlation
Matrix of the gNB Tx channel
signals.
/// - first index:
rx antenna [0..nb_antennas
_rx[
/// - first index:
aatx*n_rx+aarx for all aatx=[0..n_tx[ and aarx=[0..nb
_rx[
/// - second index: symbol [0..]
/// - second index: symbol [0..]
int32_t
**
rho
;
int32_t
**
rho
;
/// never used... always send dl_ch_rho_ext instead...
/// never used... always send dl_ch_rho_ext instead...
...
...
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