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
3331654e
Commit
3331654e
authored
Jan 03, 2023
by
Your Name
Committed by
wf
Jan 10, 2023
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix sync bug and add amp
parent
402352da
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
35 additions
and
3 deletions
+35
-3
openair1/PHY/MODULATION/modulation_UE.h
openair1/PHY/MODULATION/modulation_UE.h
+2
-0
openair1/PHY/MODULATION/nr_modulation.h
openair1/PHY/MODULATION/nr_modulation.h
+2
-0
openair1/PHY/MODULATION/slot_fep_nr.c
openair1/PHY/MODULATION/slot_fep_nr.c
+12
-0
openair1/PHY/NR_TRANSPORT/nr_ulsch_demodulation.c
openair1/PHY/NR_TRANSPORT/nr_ulsch_demodulation.c
+13
-0
openair1/PHY/NR_UE_TRANSPORT/pss_nr.c
openair1/PHY/NR_UE_TRANSPORT/pss_nr.c
+6
-3
No files found.
openair1/PHY/MODULATION/modulation_UE.h
View file @
3331654e
...
...
@@ -41,6 +41,8 @@
\param reset_freq_est if non-zero it resets the frequency offset estimation loop
*/
uint
cal_amp
(
int16_t
*
dataIn
,
int
len
);
int
slot_fep
(
PHY_VARS_UE
*
phy_vars_ue
,
unsigned
char
l
,
unsigned
char
Ns
,
...
...
openair1/PHY/MODULATION/nr_modulation.h
View file @
3331654e
...
...
@@ -81,6 +81,8 @@ void nr_ue_layer_mapping(int16_t *mod_symbs,
\param Ns Slot number (0..19)
\param sample_offset offset within rxdata (points to beginning of subframe)
*/
uint
cal_amp
(
int16_t
*
dataIn
,
int
len
);
int
nr_slot_fep_ul
(
NR_DL_FRAME_PARMS
*
frame_parms
,
int32_t
*
rxdata
,
...
...
openair1/PHY/MODULATION/slot_fep_nr.c
View file @
3331654e
...
...
@@ -34,6 +34,18 @@
#define LOG_I(A,B...) printf(A)
#endif*/
uint
cal_amp
(
int16_t
*
dataIn
,
int
len
)
{
int
i
;
uint
sumA
=
0
;
for
(
i
=
0
;
i
<
len
;
i
++
)
{
sumA
+=
abs
(
dataIn
[
i
]);
}
sumA
=
sumA
/
len
;
return
sumA
;
}
int
nr_slot_fep
(
PHY_VARS_NR_UE
*
ue
,
UE_nr_rxtx_proc_t
*
proc
,
unsigned
char
symbol
,
...
...
openair1/PHY/NR_TRANSPORT/nr_ulsch_demodulation.c
View file @
3331654e
...
...
@@ -2125,6 +2125,19 @@ void nr_rx_pusch(PHY_VARS_gNB *gNB,
}
stop_meas
(
&
gNB
->
ulsch_llr_stats
);
rxdataF_ext_offset
+=
gNB
->
pusch_vars
[
ulsch_id
]
->
ul_valid_re_per_slot
[
symbol
];
uint
pusch_amp
;
if
(
symbol
==
(
rel15_ul
->
start_symbol_index
+
rel15_ul
->
nr_of_symbols
-
1
))
{
static
int
cnt
=
0
;
if
(((
cnt
&
0x1F
)
==
0
)
&&
(
cnt
<
0x100
))
{
pusch_amp
=
cal_amp
(
&
gNB
->
pusch_vars
[
ulsch_id
]
->
rxdataF_ext
[
0
][
symbol
*
nb_re_pusch
],
nb_re_pusch
);
//LOG_I(PHY, "UL AMP frame %d %d, symbol %d, rbs %d, res %d, time %d, freq %d \n", frame, slot, symbol, nb_re_pusch/12, nb_re_pusch, g_ul_time_amp[symbol], g_ul_freq_amp[symbol], pusch_amp);
LOG_I
(
PHY
,
"UL AMP frame %d %d, symbol %d, rbs %d, res %d, pusch amp %d
\n
"
,
frame
,
slot
,
symbol
,
nb_re_pusch
/
12
,
nb_re_pusch
,
pusch_amp
);
}
cnt
++
;
}
}
}
// symbol loop
}
openair1/PHY/NR_UE_TRANSPORT/pss_nr.c
View file @
3331654e
...
...
@@ -748,18 +748,21 @@ int pss_search_time_nr(int **rxdata, ///rx data in time domain
}
// computing absolute value of frequency offset
*
f_off
=
ffo_est
*
frame_parms
->
subcarrier_spacing
;
//
*f_off = ffo_est*frame_parms->subcarrier_spacing;
for
(
int
pss_index
=
0
;
pss_index
<
NUMBER_PSS_SEQUENCE
;
pss_index
++
)
avg
[
pss_index
]
/=
(
length
/
4
);
*
eNB_id
=
pss_source
;
LOG_I
(
PHY
,
"[UE] nr_synchro_time: Sync source = %d, Peak found at pos %d, val = %llu (%d dB) avg %d dB, ffo %lf
\n
"
,
pss_source
,
peak_position
,
(
unsigned
long
long
)
peak_value
,
dB_fixed64
(
peak_value
),
dB_fixed64
(
avg
[
pss_source
]),
ffo_est
);
if
(
peak_value
<
5
*
avg
[
pss_source
])
{
LOG_I
(
PHY
,
"[UE] %d nr_synchro_time invalid: Sync source = %d, Peak found at pos %d, val = %llu (%d dB) avg %llu (%d dB), ffo %lf, %d hz
\n
"
,
is
,
pss_source
,
peak_position
,
(
unsigned
long
long
)
peak_value
,
dB_fixed64
(
peak_value
),
(
unsigned
long
long
)
avg
[
pss_source
],
dB_fixed64
(
avg
[
pss_source
]),
ffo_est
,
*
f_off
);
return
(
-
1
);
}
*
f_off
=
ffo_est
*
frame_parms
->
subcarrier_spacing
;
LOG_I
(
PHY
,
"[UE] %d nr_synchro_time valid: Sync source = %d, Peak found at pos %d, val = %llu (%d dB) avg %llu (%d dB), ffo %lf, %d hz
\n
"
,
is
,
pss_source
,
peak_position
,
(
unsigned
long
long
)
peak_value
,
dB_fixed64
(
peak_value
),
(
unsigned
long
long
)
avg
[
pss_source
],
dB_fixed64
(
avg
[
pss_source
]),
ffo_est
,
*
f_off
);
#ifdef DBG_PSS_NR
...
...
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