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
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
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
OpenXG
OpenXG-RAN
Commits
4a36f7dd
Commit
4a36f7dd
authored
May 21, 2024
by
Bartosz Podrygajlo
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Extract nr_common and nr_phy_common libs. Also add unit tests for nr_common
parent
9c913fa0
Changes
15
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
168 additions
and
74 deletions
+168
-74
CMakeLists.txt
CMakeLists.txt
+5
-16
common/utils/CMakeLists.txt
common/utils/CMakeLists.txt
+1
-0
common/utils/nr/CMakeLists.txt
common/utils/nr/CMakeLists.txt
+5
-0
common/utils/nr/nr_common.c
common/utils/nr/nr_common.c
+0
-32
common/utils/nr/nr_common.h
common/utils/nr/nr_common.h
+0
-6
common/utils/nr/tests/CMakeLists.txt
common/utils/nr/tests/CMakeLists.txt
+5
-0
common/utils/nr/tests/test_nr_common.cpp
common/utils/nr/tests/test_nr_common.cpp
+47
-0
openair1/PHY/CMakeLists.txt
openair1/PHY/CMakeLists.txt
+1
-0
openair1/PHY/NR_ESTIMATION/nr_ul_channel_estimation.c
openair1/PHY/NR_ESTIMATION/nr_ul_channel_estimation.c
+1
-0
openair1/PHY/NR_UE_ESTIMATION/nr_dl_channel_estimation.c
openair1/PHY/NR_UE_ESTIMATION/nr_dl_channel_estimation.c
+2
-1
openair1/PHY/nr_phy_common/CMakeLists.txt
openair1/PHY/nr_phy_common/CMakeLists.txt
+2
-0
openair1/PHY/nr_phy_common/inc/nr_phy_common.h
openair1/PHY/nr_phy_common/inc/nr_phy_common.h
+30
-0
openair1/PHY/nr_phy_common/src/nr_phy_common.c
openair1/PHY/nr_phy_common/src/nr_phy_common.c
+69
-0
openair1/SCHED_NR_UE/defs.h
openair1/SCHED_NR_UE/defs.h
+0
-2
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
+0
-17
No files found.
CMakeLists.txt
View file @
4a36f7dd
...
...
@@ -1181,9 +1181,10 @@ target_include_directories(PHY_UE PRIVATE ${blas_INCLUDE_DIRS} ${lapacke_INCLUDE
add_library
(
PHY_NR_COMMON
${
PHY_NR_SRC_COMMON
}
)
add_library
(
PHY_NR
${
PHY_NR_SRC
}
)
target_link_libraries
(
PHY_NR nr_phy_common nr_common
)
add_library
(
PHY_NR_UE
${
PHY_NR_UE_SRC
}
)
target_link_libraries
(
PHY_NR_UE PRIVATE asn1_nr_rrc_hdrs
)
target_link_libraries
(
PHY_NR_UE PRIVATE asn1_nr_rrc_hdrs
nr_phy_common nr_common
)
add_library
(
PHY_RU
${
PHY_SRC_RU
}
)
target_link_libraries
(
PHY_RU PRIVATE asn1_lte_rrc_hdrs
)
...
...
@@ -1481,7 +1482,7 @@ add_library(e1_if
target_link_libraries
(
e1_if PRIVATE asn1_nr_rrc_hdrs asn1_lte_rrc_hdrs asn1_f1ap SECURITY
${
OPENSSL_LIBRARIES
}
e1ap GTPV1U
)
target_link_libraries
(
L2_NR PRIVATE f1ap x2ap s1ap ngap nr_rrc e1ap nr_rlc
)
target_link_libraries
(
L2_NR PRIVATE f1ap x2ap s1ap ngap nr_rrc e1ap nr_rlc
nr_common
)
if
(
E2_AGENT
)
target_link_libraries
(
L2_NR PUBLIC e2_agent e2_agent_arg e2_ran_func_du_cucp_cuup
)
target_compile_definitions
(
L2_NR PRIVATE
${
E2AP_VERSION
}
${
KPM_VERSION
}
E2_AGENT
)
...
...
@@ -1516,7 +1517,7 @@ target_link_libraries(L2_UE PRIVATE asn1_lte_rrc_hdrs)
add_library
(
NR_L2_UE
${
NR_L2_SRC_UE
}
${
MAC_NR_SRC_UE
}
)
target_link_libraries
(
NR_L2_UE PRIVATE f1ap nr_rlc
)
target_link_libraries
(
NR_L2_UE PRIVATE asn1_nr_rrc_hdrs asn1_lte_rrc_hdrs
)
target_link_libraries
(
NR_L2_UE PRIVATE asn1_nr_rrc_hdrs asn1_lte_rrc_hdrs
nr_common
)
add_library
(
MAC_NR_COMMON
${
OPENAIR2_DIR
}
/LAYER2/NR_MAC_COMMON/nr_mac_common.c
...
...
@@ -2083,7 +2084,6 @@ add_executable(nr-softmodem
${
OPENAIR2_DIR
}
/RRC/NAS/rb_config.c
${
OPENAIR_DIR
}
/common/utils/lte/ue_power.c
${
OPENAIR_DIR
}
/common/utils/lte/prach_utils.c
${
OPENAIR_DIR
}
/common/utils/nr/nr_common.c
${
PHY_INTERFACE_DIR
}
/queue_t.c
${
OPENAIR1_DIR
}
/PHY/TOOLS/phy_scope_interface.c
)
...
...
@@ -2152,7 +2152,6 @@ add_executable(nr-uesoftmodem
${
OPENAIR2_DIR
}
/LAYER2/NR_MAC_COMMON/nr_mac_common.c
${
OPENAIR2_DIR
}
/RRC/NAS/rb_config.c
${
OPENAIR3_DIR
}
/NAS/UE/nas_ue_task.c
${
OPENAIR_DIR
}
/common/utils/nr/nr_common.c
${
OPENAIR1_DIR
}
/PHY/TOOLS/phy_scope_interface.c
)
...
...
@@ -2207,7 +2206,6 @@ target_link_libraries(rftest PRIVATE asn1_lte_rrc_hdrs asn1_nr_rrc_hdrs)
add_executable
(
polartest
${
OPENAIR1_DIR
}
/PHY/CODING/TESTBENCH/polartest.c
${
OPENAIR_DIR
}
/common/utils/nr/nr_common.c
)
target_link_libraries
(
polartest PRIVATE
-Wl,--start-group UTIL SIMU PHY_COMMON PHY_NR PHY_NR_COMMON PHY_NR_UE CONFIG_LIB -Wl,--end-group
...
...
@@ -2216,7 +2214,6 @@ target_link_libraries(polartest PRIVATE
add_executable
(
smallblocktest
${
OPENAIR1_DIR
}
/PHY/CODING/TESTBENCH/smallblocktest.c
${
OPENAIR_DIR
}
/common/utils/nr/nr_common.c
)
target_link_libraries
(
smallblocktest PRIVATE
...
...
@@ -2242,7 +2239,6 @@ target_link_libraries(ldpctest PRIVATE
add_executable
(
nr_dlschsim
${
OPENAIR1_DIR
}
/SIMULATION/NR_PHY/dlschsim.c
${
OPENAIR1_DIR
}
/SIMULATION/NR_PHY/nr_dummy_functions.c
${
OPENAIR_DIR
}
/common/utils/nr/nr_common.c
)
target_link_libraries
(
nr_dlschsim PRIVATE
-Wl,--start-group UTIL SIMU PHY_COMMON PHY_NR_COMMON PHY_NR PHY_NR_UE SCHED_NR_LIB CONFIG_LIB MAC_NR_COMMON -Wl,--end-group
...
...
@@ -2253,7 +2249,6 @@ target_link_libraries(nr_dlschsim PRIVATE asn1_nr_rrc_hdrs)
add_executable
(
nr_pbchsim
${
OPENAIR1_DIR
}
/SIMULATION/NR_PHY/pbchsim.c
${
OPENAIR1_DIR
}
/SIMULATION/NR_PHY/nr_dummy_functions.c
${
OPENAIR_DIR
}
/common/utils/nr/nr_common.c
)
target_link_libraries
(
nr_pbchsim PRIVATE
-Wl,--start-group UTIL SIMU PHY_COMMON PHY_NR_COMMON PHY_NR PHY_NR_UE SCHED_NR_LIB CONFIG_LIB MAC_NR_COMMON -Wl,--end-group
...
...
@@ -2264,7 +2259,6 @@ target_link_libraries(nr_pbchsim PRIVATE asn1_nr_rrc_hdrs asn1_lte_rrc_hdrs)
add_executable
(
nr_psbchsim
${
OPENAIR1_DIR
}
/SIMULATION/NR_PHY/psbchsim.c
${
OPENAIR1_DIR
}
/SIMULATION/NR_PHY/nr_dummy_functions.c
${
OPENAIR_DIR
}
/common/utils/nr/nr_common.c
${
OPENAIR_DIR
}
/executables/softmodem-common.c
${
OPENAIR2_DIR
}
/RRC/NAS/nas_config.c
${
NR_UE_RRC_DIR
}
/rrc_nsa.c
...
...
@@ -2282,7 +2276,6 @@ target_link_libraries(nr_psbchsim PRIVATE asn1_nr_rrc_hdrs asn1_lte_rrc_hdrs)
add_executable
(
nr_pucchsim
${
OPENAIR1_DIR
}
/SIMULATION/NR_PHY/pucchsim.c
${
OPENAIR1_DIR
}
/SIMULATION/NR_PHY/nr_dummy_functions.c
${
OPENAIR_DIR
}
/common/utils/nr/nr_common.c
)
target_link_libraries
(
nr_pucchsim PRIVATE
-Wl,--start-group UTIL SIMU PHY_COMMON PHY_NR_COMMON PHY_NR PHY_NR_UE SCHED_NR_LIB CONFIG_LIB MAC_NR_COMMON -Wl,--end-group
...
...
@@ -2293,7 +2286,6 @@ target_link_libraries(nr_pucchsim PRIVATE asn1_nr_rrc_hdrs asn1_lte_rrc_hdrs)
add_executable
(
nr_dlsim
${
OPENAIR1_DIR
}
/SIMULATION/NR_PHY/dlsim.c
${
OPENAIR1_DIR
}
/SIMULATION/NR_PHY/nr_dummy_functions.c
${
OPENAIR_DIR
}
/common/utils/nr/nr_common.c
${
OPENAIR_DIR
}
/executables/softmodem-common.c
${
OPENAIR2_DIR
}
/RRC/NAS/nas_config.c
${
NR_UE_RRC_DIR
}
/rrc_nsa.c
...
...
@@ -2310,7 +2302,6 @@ target_link_libraries(nr_dlsim PRIVATE asn1_nr_rrc_hdrs asn1_lte_rrc_hdrs)
add_executable
(
nr_prachsim
${
OPENAIR1_DIR
}
/SIMULATION/NR_PHY/prachsim.c
${
OPENAIR1_DIR
}
/SIMULATION/NR_PHY/nr_dummy_functions.c
${
OPENAIR_DIR
}
/common/utils/nr/nr_common.c
)
target_link_libraries
(
nr_prachsim PRIVATE
-Wl,--start-group UTIL SIMU PHY_COMMON PHY_NR_COMMON PHY_NR PHY_RU PHY_NR_UE MAC_NR_COMMON SCHED_NR_LIB CONFIG_LIB -lz -Wl,--end-group
...
...
@@ -2320,7 +2311,6 @@ target_link_libraries(nr_prachsim PRIVATE asn1_nr_rrc_hdrs asn1_lte_rrc_hdrs)
add_executable
(
nr_ulschsim
${
OPENAIR1_DIR
}
/SIMULATION/NR_PHY/ulschsim.c
${
OPENAIR1_DIR
}
/SIMULATION/NR_PHY/nr_dummy_functions.c
${
OPENAIR_DIR
}
/common/utils/nr/nr_common.c
${
PHY_INTERFACE_DIR
}
/queue_t.c
)
target_link_libraries
(
nr_ulschsim PRIVATE
...
...
@@ -2332,7 +2322,6 @@ target_link_libraries(nr_ulschsim PRIVATE asn1_nr_rrc_hdrs asn1_lte_rrc_hdrs)
add_executable
(
nr_ulsim
${
OPENAIR1_DIR
}
/SIMULATION/NR_PHY/ulsim.c
${
OPENAIR1_DIR
}
/SIMULATION/NR_PHY/nr_dummy_functions.c
${
OPENAIR_DIR
}
/common/utils/nr/nr_common.c
${
OPENAIR_DIR
}
/executables/softmodem-common.c
${
OPENAIR2_DIR
}
/RRC/NAS/nas_config.c
${
NR_UE_RRC_DIR
}
/rrc_nsa.c
...
...
@@ -2410,7 +2399,7 @@ if (${T_TRACER})
PHY_COMMON PHY PHY_UE PHY_NR PHY_NR_COMMON PHY_NR_UE PHY_RU PHY_MEX
L2 L2_LTE L2_NR L2_LTE_NR L2_UE NR_L2_UE L2_UE_LTE_NR MAC_NR_COMMON MAC_UE_NR ngap
CN_UTILS GTPV1U SCTP_CLIENT MME_APP LIB_NAS_UE NB_IoT SIMU SIMU_ETH OPENAIR0_LIB
ldpc_orig ldpc_optim ldpc_optim8seg ldpc_t2 ldpc_cl ldpc_cuda ldpc dfts config_internals
)
ldpc_orig ldpc_optim ldpc_optim8seg ldpc_t2 ldpc_cl ldpc_cuda ldpc dfts config_internals
nr_common
)
if
(
TARGET
${
i
}
)
add_dependencies
(
${
i
}
generate_T
)
endif
()
...
...
common/utils/CMakeLists.txt
View file @
4a36f7dd
...
...
@@ -10,3 +10,4 @@ if(ENABLE_WEBSRV)
endif
()
add_subdirectory
(
T
)
add_subdirectory
(
nr
)
common/utils/nr/CMakeLists.txt
0 → 100644
View file @
4a36f7dd
add_library
(
nr_common nr_common.c
)
target_include_directories
(
nr_common PUBLIC .
)
if
(
ENABLE_TESTS
)
add_subdirectory
(
tests
)
endif
()
common/utils/nr/nr_common.c
View file @
4a36f7dd
...
...
@@ -1174,38 +1174,6 @@ void init_delay_table(uint16_t ofdm_symbol_size,
}
}
void
freq2time
(
uint16_t
ofdm_symbol_size
,
int16_t
*
freq_signal
,
int16_t
*
time_signal
)
{
const
idft_size_idx_t
idft_size
=
get_idft
(
ofdm_symbol_size
);
idft
(
idft_size
,
freq_signal
,
time_signal
,
1
);
}
void
nr_est_delay
(
int
ofdm_symbol_size
,
const
c16_t
*
ls_est
,
c16_t
*
ch_estimates_time
,
delay_t
*
delay
)
{
freq2time
(
ofdm_symbol_size
,
(
int16_t
*
)
ls_est
,
(
int16_t
*
)
ch_estimates_time
);
int
max_pos
=
delay
->
delay_max_pos
;
int
max_val
=
delay
->
delay_max_val
;
const
int
sync_pos
=
0
;
for
(
int
i
=
0
;
i
<
ofdm_symbol_size
;
i
++
)
{
int
temp
=
c16amp2
(
ch_estimates_time
[
i
])
>>
1
;
if
(
temp
>
max_val
)
{
max_pos
=
i
;
max_val
=
temp
;
}
}
if
(
max_pos
>
ofdm_symbol_size
/
2
)
max_pos
=
max_pos
-
ofdm_symbol_size
;
delay
->
delay_max_pos
=
max_pos
;
delay
->
delay_max_val
=
max_val
;
delay
->
est_delay
=
max_pos
-
sync_pos
;
}
void
nr_timer_start
(
NR_timer_t
*
timer
)
{
timer
->
active
=
true
;
...
...
common/utils/nr/nr_common.h
View file @
4a36f7dd
...
...
@@ -241,12 +241,6 @@ uint32_t get_ssb_offset_to_pointA(uint32_t absoluteFrequencySSB,
int
get_ssb_subcarrier_offset
(
uint32_t
absoluteFrequencySSB
,
uint32_t
absoluteFrequencyPointA
,
int
scs
);
int
get_delay_idx
(
int
delay
,
int
max_delay_comp
);
void
freq2time
(
uint16_t
ofdm_symbol_size
,
int16_t
*
freq_signal
,
int16_t
*
time_signal
);
void
nr_est_delay
(
int
ofdm_symbol_size
,
const
c16_t
*
ls_est
,
c16_t
*
ch_estimates_time
,
delay_t
*
delay
);
int
get_scan_ssb_first_sc
(
const
double
fc
,
const
int
nbRB
,
const
int
nrBand
,
...
...
common/utils/nr/tests/CMakeLists.txt
0 → 100644
View file @
4a36f7dd
add_executable
(
test_nr_common test_nr_common.cpp
)
target_link_libraries
(
test_nr_common PRIVATE nr_common GTest::gtest minimal_lib
)
add_dependencies
(
tests test_nr_common
)
add_test
(
NAME test_nr_common
COMMAND ./test_nr_common
)
common/utils/nr/tests/test_nr_common.cpp
0 → 100644
View file @
4a36f7dd
/*
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The OpenAirInterface Software Alliance licenses this file to You under
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
* except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.openairinterface.org/?page_id=698
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*-------------------------------------------------------------------------------
* For more information about the OpenAirInterface (OAI) Software Alliance:
* contact@openairinterface.org
*/
#include <gtest/gtest.h>
extern
"C"
{
#include "nr_common.h"
#include "common/utils/LOG/log.h"
}
TEST
(
nr_common
,
nr_timer
)
{
NR_timer_t
timer
;
nr_timer_setup
(
&
timer
,
10
,
1
);
nr_timer_start
(
&
timer
);
EXPECT_TRUE
(
is_nr_timer_active
(
timer
));
EXPECT_FALSE
(
nr_timer_expired
(
timer
));
for
(
auto
i
=
0
;
i
<
10
;
i
++
)
{
nr_timer_tick
(
&
timer
);
}
EXPECT_FALSE
(
is_nr_timer_active
(
timer
));
EXPECT_TRUE
(
nr_timer_expired
(
timer
));
}
int
main
(
int
argc
,
char
**
argv
)
{
logInit
();
testing
::
InitGoogleTest
(
&
argc
,
argv
);
return
RUN_ALL_TESTS
();
}
openair1/PHY/CMakeLists.txt
View file @
4a36f7dd
...
...
@@ -4,3 +4,4 @@ add_boolean_option(ENABLE_NRSCOPE OFF "Whether to build the 5G scope" OFF)
if
(
ENABLE_UESCOPE OR ENABLE_ENBSCOPE OR ENABLE_NRSCOPE
)
add_subdirectory
(
TOOLS
)
endif
()
add_subdirectory
(
nr_phy_common
)
openair1/PHY/NR_ESTIMATION/nr_ul_channel_estimation.c
View file @
4a36f7dd
...
...
@@ -33,6 +33,7 @@
#include "PHY/NR_REFSIG/ul_ref_seq_nr.h"
#include "executables/softmodem-common.h"
#include "nr_phy_common.h"
//#define DEBUG_CH
...
...
openair1/PHY/NR_UE_ESTIMATION/nr_dl_channel_estimation.c
View file @
4a36f7dd
...
...
@@ -29,12 +29,13 @@
#include "PHY/NR_REFSIG/nr_mod_table.h"
#include "PHY/NR_TRANSPORT/nr_sch_dmrs.h"
#include "PHY/NR_TRANSPORT/nr_transport_proto.h"
#include "
common/utils/nr/nr
_common.h"
#include "
nr_phy
_common.h"
#include "filt16a_32.h"
#include "T.h"
#include <openair1/PHY/TOOLS/phy_scope_interface.h>
#include "nfapi/open-nFAPI/nfapi/public_inc/nfapi_nr_interface.h"
extern
openair0_config_t
openair0_cfg
[];
// #define DEBUG_PDSCH
...
...
openair1/PHY/nr_phy_common/CMakeLists.txt
0 → 100644
View file @
4a36f7dd
add_library
(
nr_phy_common src/nr_phy_common.c
)
target_include_directories
(
nr_phy_common PUBLIC inc/
)
openair1/PHY/nr_phy_common/inc/nr_phy_common.h
0 → 100644
View file @
4a36f7dd
/*
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The OpenAirInterface Software Alliance licenses this file to You under
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
* except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.openairinterface.org/?page_id=698
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*-------------------------------------------------------------------------------
* For more information about the OpenAirInterface (OAI) Software Alliance:
* contact@openairinterface.org
*/
#ifndef __NR_PHY_COMMON__H__
#define __NR_PHY_COMMON__H__
#include "PHY/impl_defs_top.h"
#include "PHY/TOOLS/tools_defs.h"
void
freq2time
(
uint16_t
ofdm_symbol_size
,
int16_t
*
freq_signal
,
int16_t
*
time_signal
);
void
nr_est_delay
(
int
ofdm_symbol_size
,
const
c16_t
*
ls_est
,
c16_t
*
ch_estimates_time
,
delay_t
*
delay
);
unsigned
int
nr_get_tx_amp
(
int
power_dBm
,
int
power_max_dBm
,
int
total_nb_rb
,
int
nb_rb
);
#endif
openair1/PHY/nr_phy_common/src/nr_phy_common.c
0 → 100644
View file @
4a36f7dd
/*
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The OpenAirInterface Software Alliance licenses this file to You under
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
* except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.openairinterface.org/?page_id=698
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*-------------------------------------------------------------------------------
* For more information about the OpenAirInterface (OAI) Software Alliance:
* contact@openairinterface.org
*/
#include "nr_phy_common.h"
void
freq2time
(
uint16_t
ofdm_symbol_size
,
int16_t
*
freq_signal
,
int16_t
*
time_signal
)
{
const
idft_size_idx_t
idft_size
=
get_idft
(
ofdm_symbol_size
);
idft
(
idft_size
,
freq_signal
,
time_signal
,
1
);
}
void
nr_est_delay
(
int
ofdm_symbol_size
,
const
c16_t
*
ls_est
,
c16_t
*
ch_estimates_time
,
delay_t
*
delay
)
{
freq2time
(
ofdm_symbol_size
,
(
int16_t
*
)
ls_est
,
(
int16_t
*
)
ch_estimates_time
);
int
max_pos
=
delay
->
delay_max_pos
;
int
max_val
=
delay
->
delay_max_val
;
const
int
sync_pos
=
0
;
for
(
int
i
=
0
;
i
<
ofdm_symbol_size
;
i
++
)
{
int
temp
=
c16amp2
(
ch_estimates_time
[
i
])
>>
1
;
if
(
temp
>
max_val
)
{
max_pos
=
i
;
max_val
=
temp
;
}
}
if
(
max_pos
>
ofdm_symbol_size
/
2
)
max_pos
=
max_pos
-
ofdm_symbol_size
;
delay
->
delay_max_pos
=
max_pos
;
delay
->
delay_max_val
=
max_val
;
delay
->
est_delay
=
max_pos
-
sync_pos
;
}
unsigned
int
nr_get_tx_amp
(
int
power_dBm
,
int
power_max_dBm
,
int
total_nb_rb
,
int
nb_rb
)
{
// assume power at AMP is 20dBm
// if gain = 20 (power == 40)
int
gain_dB
=
power_dBm
-
power_max_dBm
;
double
gain_lin
;
gain_lin
=
pow
(
10
,
.
1
*
gain_dB
);
if
((
nb_rb
>
0
)
&&
(
nb_rb
<=
total_nb_rb
))
{
return
((
int
)(
AMP
*
sqrt
(
gain_lin
*
total_nb_rb
/
(
double
)
nb_rb
)));
}
else
{
LOG_E
(
PHY
,
"Illegal nb_rb/N_RB_UL combination (%d/%d)
\n
"
,
nb_rb
,
total_nb_rb
);
// mac_xface->macphy_exit("");
}
return
(
0
);
}
openair1/SCHED_NR_UE/defs.h
View file @
4a36f7dd
...
...
@@ -111,8 +111,6 @@ int8_t nr_find_ue(uint16_t rnti, PHY_VARS_eNB *phy_vars_eNB);
*/
void
ue_ta_procedures
(
PHY_VARS_NR_UE
*
ue
,
int
slot_tx
,
int
frame_tx
);
unsigned
int
nr_get_tx_amp
(
int
power_dBm
,
int
power_max_dBm
,
int
N_RB_UL
,
int
nb_rb
);
void
set_tx_harq_id
(
NR_UE_ULSCH_t
*
ulsch
,
int
harq_pid
,
int
slot_tx
);
int
get_tx_harq_id
(
NR_UE_ULSCH_t
*
ulsch
,
int
slot_tx
);
...
...
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
View file @
4a36f7dd
...
...
@@ -407,23 +407,6 @@ static int nr_ue_pbch_procedures(PHY_VARS_NR_UE *ue,
return
ret
;
}
unsigned
int
nr_get_tx_amp
(
int
power_dBm
,
int
power_max_dBm
,
int
N_RB_UL
,
int
nb_rb
)
{
int
gain_dB
=
power_dBm
-
power_max_dBm
;
double
gain_lin
;
gain_lin
=
pow
(
10
,.
1
*
gain_dB
);
if
((
nb_rb
>
0
)
&&
(
nb_rb
<=
N_RB_UL
))
{
return
((
int
)(
AMP
*
sqrt
(
gain_lin
*
N_RB_UL
/
(
double
)
nb_rb
)));
}
else
{
LOG_E
(
PHY
,
"Illegal nb_rb/N_RB_UL combination (%d/%d)
\n
"
,
nb_rb
,
N_RB_UL
);
//mac_xface->macphy_exit("");
}
return
(
0
);
}
int
nr_ue_pdcch_procedures
(
PHY_VARS_NR_UE
*
ue
,
const
UE_nr_rxtx_proc_t
*
proc
,
int32_t
pdcch_est_size
,
...
...
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