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
zzha zzha
OpenXG-RAN
Commits
74ea4e5b
Commit
74ea4e5b
authored
Dec 16, 2021
by
luis_pereira87
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Refactor name of two variables
parent
13116299
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
48 additions
and
48 deletions
+48
-48
openair1/PHY/NR_ESTIMATION/nr_ul_channel_estimation.c
openair1/PHY/NR_ESTIMATION/nr_ul_channel_estimation.c
+36
-36
openair1/PHY/NR_TRANSPORT/srs_rx.c
openair1/PHY/NR_TRANSPORT/srs_rx.c
+6
-6
openair1/PHY/NR_UE_TRANSPORT/srs_modulation_nr.c
openair1/PHY/NR_UE_TRANSPORT/srs_modulation_nr.c
+3
-3
openair1/PHY/defs_nr_common.h
openair1/PHY/defs_nr_common.h
+2
-2
openair1/SCHED_NR/phy_procedures_nr_gNB.c
openair1/SCHED_NR/phy_procedures_nr_gNB.c
+1
-1
No files found.
openair1/PHY/NR_ESTIMATION/nr_ul_channel_estimation.c
View file @
74ea4e5b
...
...
@@ -1096,7 +1096,7 @@ int nr_srs_channel_estimation(PHY_VARS_gNB *gNB,
int32_t
**
srs_estimated_channel_time_shifted
,
uint32_t
*
noise_power
)
{
if
(
nr_srs_info
->
n_symbs
==
0
)
{
if
(
nr_srs_info
->
sc_list_length
==
0
)
{
LOG_E
(
NR_PHY
,
"(%d.%d) nr_srs_info was not generated yet!
\n
"
,
frame
,
slot
);
return
-
1
;
}
...
...
@@ -1104,8 +1104,8 @@ int nr_srs_channel_estimation(PHY_VARS_gNB *gNB,
NR_DL_FRAME_PARMS
*
frame_parms
=
&
gNB
->
frame_parms
;
int32_t
**
srs_ls_estimated_channel
=
nr_srs_info
->
srs_ls_estimated_channel
;
uint16_t
noise_real
[
frame_parms
->
nb_antennas_rx
*
nr_srs_info
->
n_symbs
];
uint16_t
noise_imag
[
frame_parms
->
nb_antennas_rx
*
nr_srs_info
->
n_symbs
];
uint16_t
noise_real
[
frame_parms
->
nb_antennas_rx
*
nr_srs_info
->
sc_list_length
];
uint16_t
noise_imag
[
frame_parms
->
nb_antennas_rx
*
nr_srs_info
->
sc_list_length
];
int16_t
prev_ls_estimated
[
2
];
int16_t
ls_estimated
[
2
];
...
...
@@ -1115,23 +1115,23 @@ int nr_srs_channel_estimation(PHY_VARS_gNB *gNB,
memset
(
srs_ls_estimated_channel
[
ant
],
0
,
frame_parms
->
ofdm_symbol_size
*
(
1
<<
srs_pdu
->
num_symbols
)
*
sizeof
(
int32_t
));
memset
(
srs_estimated_channel_freq
[
ant
],
0
,
frame_parms
->
ofdm_symbol_size
*
(
1
<<
srs_pdu
->
num_symbols
)
*
sizeof
(
int32_t
));
int16_t
*
srs_estimated_channel16
=
(
int16_t
*
)
&
srs_estimated_channel_freq
[
ant
][
nr_srs_info
->
s
ubcarrier_idx
[
0
]];
int16_t
*
srs_estimated_channel16
=
(
int16_t
*
)
&
srs_estimated_channel_freq
[
ant
][
nr_srs_info
->
s
c_list
[
0
]];
for
(
int
sc_idx
=
0
;
sc_idx
<
nr_srs_info
->
n_symbs
;
sc_idx
++
)
{
for
(
int
sc_idx
=
0
;
sc_idx
<
nr_srs_info
->
sc_list_length
;
sc_idx
++
)
{
int16_t
generated_real
=
srs_generated_signal
[
nr_srs_info
->
s
ubcarrier_idx
[
sc_idx
]]
&
0xFFFF
;
int16_t
generated_imag
=
(
srs_generated_signal
[
nr_srs_info
->
s
ubcarrier_idx
[
sc_idx
]]
>>
16
)
&
0xFFFF
;
int16_t
generated_real
=
srs_generated_signal
[
nr_srs_info
->
s
c_list
[
sc_idx
]]
&
0xFFFF
;
int16_t
generated_imag
=
(
srs_generated_signal
[
nr_srs_info
->
s
c_list
[
sc_idx
]]
>>
16
)
&
0xFFFF
;
int16_t
received_real
=
srs_received_signal
[
ant
][
nr_srs_info
->
s
ubcarrier_idx
[
sc_idx
]]
&
0xFFFF
;
int16_t
received_imag
=
(
srs_received_signal
[
ant
][
nr_srs_info
->
s
ubcarrier_idx
[
sc_idx
]]
>>
16
)
&
0xFFFF
;
int16_t
received_real
=
srs_received_signal
[
ant
][
nr_srs_info
->
s
c_list
[
sc_idx
]]
&
0xFFFF
;
int16_t
received_imag
=
(
srs_received_signal
[
ant
][
nr_srs_info
->
s
c_list
[
sc_idx
]]
>>
16
)
&
0xFFFF
;
// We know that nr_srs_info->srs_generated_signal_bits bits are enough to represent the generated_real and generated_imag.
// So we only need a nr_srs_info->srs_generated_signal_bits shift to ensure that the result fits into 16 bits.
ls_estimated
[
0
]
=
(
int16_t
)(((
int32_t
)
generated_real
*
received_real
+
(
int32_t
)
generated_imag
*
received_imag
)
>>
nr_srs_info
->
srs_generated_signal_bits
);
ls_estimated
[
1
]
=
(
int16_t
)(((
int32_t
)
generated_real
*
received_imag
-
(
int32_t
)
generated_imag
*
received_real
)
>>
nr_srs_info
->
srs_generated_signal_bits
);
srs_ls_estimated_channel
[
ant
][
nr_srs_info
->
s
ubcarrier_idx
[
sc_idx
]]
=
ls_estimated
[
0
]
+
(((
int32_t
)
ls_estimated
[
1
]
<<
16
)
&
0xFFFF0000
);
srs_ls_estimated_channel
[
ant
][
nr_srs_info
->
s
c_list
[
sc_idx
]]
=
ls_estimated
[
0
]
+
(((
int32_t
)
ls_estimated
[
1
]
<<
16
)
&
0xFFFF0000
);
if
(
sc_idx
>
0
&&
nr_srs_info
->
s
ubcarrier_idx
[
sc_idx
]
>
nr_srs_info
->
subcarrier_idx
[
sc_idx
-
1
])
{
if
(
sc_idx
>
0
&&
nr_srs_info
->
s
c_list
[
sc_idx
]
>
nr_srs_info
->
sc_list
[
sc_idx
-
1
])
{
ls_estimated
[
0
]
=
(
ls_estimated
[
0
]
+
prev_ls_estimated
[
0
])
>>
1
;
ls_estimated
[
1
]
=
(
ls_estimated
[
1
]
+
prev_ls_estimated
[
1
])
>>
1
;
}
...
...
@@ -1142,43 +1142,43 @@ int nr_srs_channel_estimation(PHY_VARS_gNB *gNB,
if
(
srs_pdu
->
comb_size
==
0
)
{
if
(
sc_idx
==
0
)
{
multadd_real_vector_complex_scalar
(
filt8_l0
,
ls_estimated
,
srs_estimated_channel16
,
8
);
}
else
if
(
nr_srs_info
->
s
ubcarrier_idx
[
sc_idx
]
<
nr_srs_info
->
subcarrier_idx
[
sc_idx
-
1
])
{
srs_estimated_channel16
=
(
int16_t
*
)
&
srs_estimated_channel_freq
[
ant
][
nr_srs_info
->
s
ubcarrier_idx
[
sc_idx
+
2
]]
-
8
;
}
else
if
(
nr_srs_info
->
s
c_list
[
sc_idx
]
<
nr_srs_info
->
sc_list
[
sc_idx
-
1
])
{
srs_estimated_channel16
=
(
int16_t
*
)
&
srs_estimated_channel_freq
[
ant
][
nr_srs_info
->
s
c_list
[
sc_idx
+
2
]]
-
8
;
multadd_real_vector_complex_scalar
(
filt8_l0
,
ls_estimated
,
srs_estimated_channel16
,
8
);
}
else
if
(
(
sc_idx
<
(
nr_srs_info
->
n_symbs
-
1
)
&&
nr_srs_info
->
subcarrier_idx
[
sc_idx
+
1
]
<
nr_srs_info
->
subcarrier_idx
[
sc_idx
])
||
(
sc_idx
==
(
nr_srs_info
->
n_symbs
-
1
)))
{
}
else
if
(
(
sc_idx
<
(
nr_srs_info
->
sc_list_length
-
1
)
&&
nr_srs_info
->
sc_list
[
sc_idx
+
1
]
<
nr_srs_info
->
sc_list
[
sc_idx
])
||
(
sc_idx
==
(
nr_srs_info
->
sc_list_length
-
1
)))
{
multadd_real_vector_complex_scalar
(
filt8_m0
,
ls_estimated
,
srs_estimated_channel16
,
8
);
srs_estimated_channel_freq
[
ant
][
nr_srs_info
->
s
ubcarrier_idx
[
sc_idx
]
+
1
]
=
srs_estimated_channel_freq
[
ant
][
nr_srs_info
->
subcarrier_idx
[
sc_idx
]];
srs_estimated_channel_freq
[
ant
][
nr_srs_info
->
s
c_list
[
sc_idx
]
+
1
]
=
srs_estimated_channel_freq
[
ant
][
nr_srs_info
->
sc_list
[
sc_idx
]];
}
else
if
(
sc_idx
%
2
==
1
)
{
multadd_real_vector_complex_scalar
(
filt8_m0
,
ls_estimated
,
srs_estimated_channel16
,
8
);
}
else
if
(
sc_idx
%
2
==
0
)
{
multadd_real_vector_complex_scalar
(
filt8_mm0
,
ls_estimated
,
srs_estimated_channel16
,
8
);
srs_estimated_channel16
=
(
int16_t
*
)
&
srs_estimated_channel_freq
[
ant
][
nr_srs_info
->
s
ubcarrier_idx
[
sc_idx
]];
srs_estimated_channel16
=
(
int16_t
*
)
&
srs_estimated_channel_freq
[
ant
][
nr_srs_info
->
s
c_list
[
sc_idx
]];
}
}
else
{
if
(
sc_idx
>
0
)
{
multadd_real_vector_complex_scalar
(
filt8_dcr0_h
,
ls_estimated
,
srs_estimated_channel16
,
8
);
if
(
nr_srs_info
->
s
ubcarrier_idx
[
sc_idx
]
<
nr_srs_info
->
subcarrier_idx
[
sc_idx
-
1
])
{
srs_estimated_channel16
=
(
int16_t
*
)
&
srs_estimated_channel_freq
[
ant
][
nr_srs_info
->
s
ubcarrier_idx
[
sc_idx
+
1
]]
-
8
;
if
(
nr_srs_info
->
s
c_list
[
sc_idx
]
<
nr_srs_info
->
sc_list
[
sc_idx
-
1
])
{
srs_estimated_channel16
=
(
int16_t
*
)
&
srs_estimated_channel_freq
[
ant
][
nr_srs_info
->
s
c_list
[
sc_idx
+
1
]]
-
8
;
}
else
{
srs_estimated_channel16
=
(
int16_t
*
)
&
srs_estimated_channel_freq
[
ant
][
nr_srs_info
->
s
ubcarrier_idx
[
sc_idx
]];
srs_estimated_channel16
=
(
int16_t
*
)
&
srs_estimated_channel_freq
[
ant
][
nr_srs_info
->
s
c_list
[
sc_idx
]];
}
srs_estimated_channel16
[
0
]
=
0
;
srs_estimated_channel16
[
1
]
=
0
;
}
multadd_real_vector_complex_scalar
(
filt8_dcl0_h
,
ls_estimated
,
srs_estimated_channel16
,
8
);
if
(
sc_idx
==
(
nr_srs_info
->
n_symbs
-
1
))
{
srs_estimated_channel_freq
[
ant
][
nr_srs_info
->
s
ubcarrier_idx
[
sc_idx
]
+
1
]
=
srs_estimated_channel_freq
[
ant
][
nr_srs_info
->
subcarrier_idx
[
sc_idx
]];
srs_estimated_channel_freq
[
ant
][
nr_srs_info
->
s
ubcarrier_idx
[
sc_idx
]
+
2
]
=
srs_estimated_channel_freq
[
ant
][
nr_srs_info
->
subcarrier_idx
[
sc_idx
]];
srs_estimated_channel_freq
[
ant
][
nr_srs_info
->
s
ubcarrier_idx
[
sc_idx
]
+
3
]
=
srs_estimated_channel_freq
[
ant
][
nr_srs_info
->
subcarrier_idx
[
sc_idx
]];
if
(
sc_idx
==
(
nr_srs_info
->
sc_list_length
-
1
))
{
srs_estimated_channel_freq
[
ant
][
nr_srs_info
->
s
c_list
[
sc_idx
]
+
1
]
=
srs_estimated_channel_freq
[
ant
][
nr_srs_info
->
sc_list
[
sc_idx
]];
srs_estimated_channel_freq
[
ant
][
nr_srs_info
->
s
c_list
[
sc_idx
]
+
2
]
=
srs_estimated_channel_freq
[
ant
][
nr_srs_info
->
sc_list
[
sc_idx
]];
srs_estimated_channel_freq
[
ant
][
nr_srs_info
->
s
c_list
[
sc_idx
]
+
3
]
=
srs_estimated_channel_freq
[
ant
][
nr_srs_info
->
sc_list
[
sc_idx
]];
}
}
noise_real
[
ant
*
nr_srs_info
->
n_symbs
+
sc_idx
]
=
abs
(
prev_ls_estimated
[
0
]
-
(
int16_t
)(
srs_estimated_channel_freq
[
ant
][
nr_srs_info
->
subcarrier_idx
[
sc_idx
]]
&
0xFFFF
));
noise_imag
[
ant
*
nr_srs_info
->
n_symbs
+
sc_idx
]
=
abs
(
prev_ls_estimated
[
1
]
-
(
int16_t
)((
srs_estimated_channel_freq
[
ant
][
nr_srs_info
->
subcarrier_idx
[
sc_idx
]]
>>
16
)
&
0xFFFF
));
noise_real
[
ant
*
nr_srs_info
->
sc_list_length
+
sc_idx
]
=
abs
(
prev_ls_estimated
[
0
]
-
(
int16_t
)(
srs_estimated_channel_freq
[
ant
][
nr_srs_info
->
sc_list
[
sc_idx
]]
&
0xFFFF
));
noise_imag
[
ant
*
nr_srs_info
->
sc_list_length
+
sc_idx
]
=
abs
(
prev_ls_estimated
[
1
]
-
(
int16_t
)((
srs_estimated_channel_freq
[
ant
][
nr_srs_info
->
sc_list
[
sc_idx
]]
>>
16
)
&
0xFFFF
));
#ifdef SRS_DEBUG
uint64_t
subcarrier_offset
=
frame_parms
->
first_carrier_offset
+
srs_pdu
->
bwp_start
*
12
;
int
subcarrier_log
=
nr_srs_info
->
s
ubcarrier_idx
[
sc_idx
]
-
subcarrier_offset
;
int
subcarrier_log
=
nr_srs_info
->
s
c_list
[
sc_idx
]
-
subcarrier_offset
;
if
(
subcarrier_log
<
0
)
{
subcarrier_log
=
subcarrier_log
+
frame_parms
->
ofdm_symbol_size
;
}
...
...
@@ -1211,15 +1211,15 @@ int nr_srs_channel_estimation(PHY_VARS_gNB *gNB,
(
gNB
->
frame_parms
.
ofdm_symbol_size
>>
1
)
*
sizeof
(
int32_t
));
}
*
noise_power
=
calc_power
(
noise_real
,
frame_parms
->
nb_antennas_rx
*
nr_srs_info
->
n_symbs
)
+
calc_power
(
noise_imag
,
frame_parms
->
nb_antennas_rx
*
nr_srs_info
->
n_symbs
);
*
noise_power
=
calc_power
(
noise_real
,
frame_parms
->
nb_antennas_rx
*
nr_srs_info
->
sc_list_length
)
+
calc_power
(
noise_imag
,
frame_parms
->
nb_antennas_rx
*
nr_srs_info
->
sc_list_length
);
#ifdef SRS_DEBUG
uint64_t
subcarrier_offset
=
frame_parms
->
first_carrier_offset
+
srs_pdu
->
bwp_start
*
12
;
uint8_t
R
=
srs_pdu
->
comb_size
==
0
?
2
:
4
;
for
(
int
ant
=
0
;
ant
<
frame_parms
->
nb_antennas_rx
;
ant
++
)
{
for
(
int
sc_idx
=
0
;
sc_idx
<
nr_srs_info
->
n_symbs
;
sc_idx
++
)
{
int
subcarrier_log
=
nr_srs_info
->
s
ubcarrier_idx
[
sc_idx
]
-
subcarrier_offset
;
for
(
int
sc_idx
=
0
;
sc_idx
<
nr_srs_info
->
sc_list_length
;
sc_idx
++
)
{
int
subcarrier_log
=
nr_srs_info
->
s
c_list
[
sc_idx
]
-
subcarrier_offset
;
if
(
subcarrier_log
<
0
)
{
subcarrier_log
=
subcarrier_log
+
frame_parms
->
ofdm_symbol_size
;
}
...
...
@@ -1233,12 +1233,12 @@ int nr_srs_channel_estimation(PHY_VARS_gNB *gNB,
for
(
int
r
=
0
;
r
<
R
;
r
++
)
{
LOG_I
(
NR_PHY
,
"(%4i) %6i
\t
%6i | %6i
\t
%6i | %6i
\t
%6i
\n
"
,
subcarrier_log
+
r
,
(
int16_t
)(
srs_ls_estimated_channel
[
ant
][
nr_srs_info
->
s
ubcarrier_idx
[
sc_idx
]
+
r
]
&
0xFFFF
),
(
int16_t
)((
srs_ls_estimated_channel
[
ant
][
nr_srs_info
->
s
ubcarrier_idx
[
sc_idx
]
+
r
]
>>
16
)
&
0xFFFF
),
(
int16_t
)(
srs_estimated_channel_freq
[
ant
][
nr_srs_info
->
s
ubcarrier_idx
[
sc_idx
]
+
r
]
&
0xFFFF
),
(
int16_t
)((
srs_estimated_channel_freq
[
ant
][
nr_srs_info
->
s
ubcarrier_idx
[
sc_idx
]
+
r
]
>>
16
)
&
0xFFFF
),
noise_real
[
ant
*
nr_srs_info
->
n_symbs
+
sc_idx
],
noise_imag
[
ant
*
nr_srs_info
->
n_symbs
+
sc_idx
]);
(
int16_t
)(
srs_ls_estimated_channel
[
ant
][
nr_srs_info
->
s
c_list
[
sc_idx
]
+
r
]
&
0xFFFF
),
(
int16_t
)((
srs_ls_estimated_channel
[
ant
][
nr_srs_info
->
s
c_list
[
sc_idx
]
+
r
]
>>
16
)
&
0xFFFF
),
(
int16_t
)(
srs_estimated_channel_freq
[
ant
][
nr_srs_info
->
s
c_list
[
sc_idx
]
+
r
]
&
0xFFFF
),
(
int16_t
)((
srs_estimated_channel_freq
[
ant
][
nr_srs_info
->
s
c_list
[
sc_idx
]
+
r
]
>>
16
)
&
0xFFFF
),
noise_real
[
ant
*
nr_srs_info
->
sc_list_length
+
sc_idx
],
noise_imag
[
ant
*
nr_srs_info
->
sc_list_length
+
sc_idx
]);
}
}
...
...
openair1/PHY/NR_TRANSPORT/srs_rx.c
View file @
74ea4e5b
...
...
@@ -95,7 +95,7 @@ int nr_get_srs_signal(PHY_VARS_gNB *gNB,
nr_srs_info_t
*
nr_srs_info
,
int32_t
**
srs_received_signal
)
{
if
(
nr_srs_info
->
n_symbs
==
0
)
{
if
(
nr_srs_info
->
sc_list_length
==
0
)
{
LOG_E
(
NR_PHY
,
"(%d.%d) nr_srs_info was not generated yet!
\n
"
,
frame
,
slot
);
return
-
1
;
}
...
...
@@ -113,12 +113,12 @@ int nr_get_srs_signal(PHY_VARS_gNB *gNB,
memset
(
srs_received_signal
[
ant
],
0
,
frame_parms
->
samples_per_frame
*
sizeof
(
int32_t
));
rx_signal
=
&
rxdataF
[
ant
][
symbol_offset
];
for
(
int
sc_idx
=
0
;
sc_idx
<
nr_srs_info
->
n_symbs
;
sc_idx
++
)
{
srs_received_signal
[
ant
][
nr_srs_info
->
s
ubcarrier_idx
[
sc_idx
]]
=
rx_signal
[
nr_srs_info
->
subcarrier_idx
[
sc_idx
]];
for
(
int
sc_idx
=
0
;
sc_idx
<
nr_srs_info
->
sc_list_length
;
sc_idx
++
)
{
srs_received_signal
[
ant
][
nr_srs_info
->
s
c_list
[
sc_idx
]]
=
rx_signal
[
nr_srs_info
->
sc_list
[
sc_idx
]];
#ifdef SRS_DEBUG
uint64_t
subcarrier_offset
=
frame_parms
->
first_carrier_offset
+
srs_pdu
->
bwp_start
*
12
;
int
subcarrier_log
=
nr_srs_info
->
s
ubcarrier_idx
[
sc_idx
]
-
subcarrier_offset
;
int
subcarrier_log
=
nr_srs_info
->
s
c_list
[
sc_idx
]
-
subcarrier_offset
;
if
(
subcarrier_log
<
0
)
{
subcarrier_log
=
subcarrier_log
+
frame_parms
->
ofdm_symbol_size
;
}
...
...
@@ -130,8 +130,8 @@ int nr_get_srs_signal(PHY_VARS_gNB *gNB,
}
LOG_I
(
NR_PHY
,
"(%i)
\t
%i
\t
%i
\n
"
,
subcarrier_log
,
(
int16_t
)(
srs_received_signal
[
ant
][
nr_srs_info
->
s
ubcarrier_idx
[
sc_idx
]]
&
0xFFFF
),
(
int16_t
)((
srs_received_signal
[
ant
][
nr_srs_info
->
s
ubcarrier_idx
[
sc_idx
]]
>>
16
)
&
0xFFFF
));
(
int16_t
)(
srs_received_signal
[
ant
][
nr_srs_info
->
s
c_list
[
sc_idx
]]
&
0xFFFF
),
(
int16_t
)((
srs_received_signal
[
ant
][
nr_srs_info
->
s
c_list
[
sc_idx
]]
>>
16
)
&
0xFFFF
));
#endif
}
}
...
...
openair1/PHY/NR_UE_TRANSPORT/srs_modulation_nr.c
View file @
74ea4e5b
...
...
@@ -119,7 +119,7 @@ int generate_srs_nr(nfapi_nr_srs_pdu_t *srs_config_pdu,
uint64_t
subcarrier_offset
=
frame_parms
->
first_carrier_offset
+
srs_config_pdu
->
bwp_start
*
N_SC_RB
;
if
(
nr_srs_info
)
{
nr_srs_info
->
n_symbs
=
0
;
nr_srs_info
->
sc_list_length
=
0
;
nr_srs_info
->
srs_generated_signal_bits
=
log2_approx
(
amp
);
}
...
...
@@ -374,8 +374,8 @@ int generate_srs_nr(nfapi_nr_srs_pdu_t *srs_config_pdu,
txptr
[
subcarrier
]
=
(
real_amp
&
0xFFFF
)
+
((
imag_amp
<<
16
)
&
0xFFFF0000
);
if
(
nr_srs_info
)
{
nr_srs_info
->
s
ubcarrier_idx
[
nr_srs_info
->
n_symbs
]
=
subcarrier
;
nr_srs_info
->
n_symbs
++
;
nr_srs_info
->
s
c_list
[
nr_srs_info
->
sc_list_length
]
=
subcarrier
;
nr_srs_info
->
sc_list_length
++
;
}
#ifdef SRS_DEBUG
...
...
openair1/PHY/defs_nr_common.h
View file @
74ea4e5b
...
...
@@ -243,8 +243,8 @@ typedef struct {
}
NR_PRACH_RESOURCES_t
;
typedef
struct
{
uint16_t
n_symbs
;
uint16_t
s
ubcarrier_idx
[
6
*
NR_MAX_NB_RB
];
uint16_t
sc_list_length
;
uint16_t
s
c_list
[
6
*
NR_MAX_NB_RB
];
uint8_t
srs_generated_signal_bits
;
int32_t
*
srs_generated_signal
;
int32_t
**
srs_received_signal
;
...
...
openair1/SCHED_NR/phy_procedures_nr_gNB.c
View file @
74ea4e5b
...
...
@@ -813,7 +813,7 @@ int phy_procedures_gNB_uespec_RX(PHY_VARS_gNB *gNB, int frame_rx, int slot_rx) {
nfapi_nr_srs_pdu_t
*
srs_pdu
=
&
srs
->
srs_pdu
;
// At least currently, the configuration is constant, so it is enough to generate the sequence just once.
if
(
gNB
->
nr_srs_info
[
i
]
->
n_symbs
==
0
)
{
if
(
gNB
->
nr_srs_info
[
i
]
->
sc_list_length
==
0
)
{
generate_srs_nr
(
srs_pdu
,
&
gNB
->
frame_parms
,
gNB
->
nr_srs_info
[
i
]
->
srs_generated_signal
,
gNB
->
nr_srs_info
[
i
],
AMP
,
frame_rx
,
slot_rx
);
}
...
...
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