From 9f7b159039e8a1900aad3a82dcff90fa1f9f7e1f Mon Sep 17 00:00:00 2001 From: rmagueta Date: Tue, 18 Jul 2023 13:57:55 +0100 Subject: [PATCH] Remove duplicated function freq2time() --- CMakeLists.txt | 1 + common/utils/nr/nr_common.c | 38 ++++++++++++++++++ common/utils/nr/nr_common.h | 4 ++ .../NR_ESTIMATION/nr_ul_channel_estimation.c | 40 ------------------- .../nr_dl_channel_estimation.c | 39 ------------------ 5 files changed, 43 insertions(+), 79 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 2d916eba89..b57689aa8c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1112,6 +1112,7 @@ set(PHY_SRC_UE ${PHY_SRC_UE} ${OPENAIR1_DIR}/PHY/LTE_UE_TRANSPORT/dlsch_llr_comp set(PHY_NR_UE_SRC ${PHY_NR_UE_SRC} ${OPENAIR1_DIR}/PHY/LTE_UE_TRANSPORT/dlsch_llr_computation_avx2.c) add_library(PHY_COMMON ${PHY_SRC_COMMON}) +target_link_libraries(PHY_COMMON PRIVATE shlib_loader) add_dependencies(PHY_COMMON dfts) target_link_libraries(PHY_COMMON PRIVATE asn1_lte_rrc_hdrs) diff --git a/common/utils/nr/nr_common.c b/common/utils/nr/nr_common.c index ffa7079071..34e3733c5c 100644 --- a/common/utils/nr/nr_common.c +++ b/common/utils/nr/nr_common.c @@ -763,3 +763,41 @@ void init_delay_table(uint16_t ofdm_symbol_size, } } } + +void freq2time(uint16_t ofdm_symbol_size, + int16_t *freq_signal, + int16_t *time_signal) +{ + switch (ofdm_symbol_size) { + case 128: + idft(IDFT_128, freq_signal, time_signal, 1); + break; + case 256: + idft(IDFT_256, freq_signal, time_signal, 1); + break; + case 512: + idft(IDFT_512, freq_signal, time_signal, 1); + break; + case 1024: + idft(IDFT_1024, freq_signal, time_signal, 1); + break; + case 1536: + idft(IDFT_1536, freq_signal, time_signal, 1); + break; + case 2048: + idft(IDFT_2048, freq_signal, time_signal, 1); + break; + case 4096: + idft(IDFT_4096, freq_signal, time_signal, 1); + break; + case 6144: + idft(IDFT_6144, freq_signal, time_signal, 1); + break; + case 8192: + idft(IDFT_8192, freq_signal, time_signal, 1); + break; + default: + AssertFatal (1 == 0, "Invalid ofdm_symbol_size %i\n", ofdm_symbol_size); + break; + } +} diff --git a/common/utils/nr/nr_common.h b/common/utils/nr/nr_common.h index 95859caa06..5f4d11a1ca 100644 --- a/common/utils/nr/nr_common.h +++ b/common/utils/nr/nr_common.h @@ -125,6 +125,10 @@ uint32_t get_ssb_offset_to_pointA(uint32_t absoluteFrequencySSB, int get_ssb_subcarrier_offset(uint32_t absoluteFrequencySSB, uint32_t absoluteFrequencyPointA); 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); + #define CEILIDIV(a,b) ((a+b-1)/b) #define ROUNDIDIV(a,b) (((a<<1)+b)/(b<<1)) diff --git a/openair1/PHY/NR_ESTIMATION/nr_ul_channel_estimation.c b/openair1/PHY/NR_ESTIMATION/nr_ul_channel_estimation.c index 48e2a97b20..9f0f24a611 100644 --- a/openair1/PHY/NR_ESTIMATION/nr_ul_channel_estimation.c +++ b/openair1/PHY/NR_ESTIMATION/nr_ul_channel_estimation.c @@ -42,46 +42,6 @@ #define NO_INTERP 1 #define dBc(x,y) (dB_fixed(((int32_t)(x))*(x) + ((int32_t)(y))*(y))) -static void freq2time(uint16_t ofdm_symbol_size, - int16_t *freq_signal, - int16_t *time_signal) -{ - - switch (ofdm_symbol_size) { - case 128: - idft(IDFT_128, freq_signal, time_signal, 1); - break; - case 256: - idft(IDFT_256, freq_signal, time_signal, 1); - break; - case 512: - idft(IDFT_512, freq_signal, time_signal, 1); - break; - case 1024: - idft(IDFT_1024, freq_signal, time_signal, 1); - break; - case 1536: - idft(IDFT_1536, freq_signal, time_signal, 1); - break; - case 2048: - idft(IDFT_2048, freq_signal, time_signal, 1); - break; - case 4096: - idft(IDFT_4096, freq_signal, time_signal, 1); - break; - case 6144: - idft(IDFT_6144, freq_signal, time_signal, 1); - break; - case 8192: - idft(IDFT_8192, freq_signal, time_signal, 1); - break; - default: - idft(IDFT_512, freq_signal, time_signal, 1); - break; - } -} - - __attribute__((always_inline)) inline c16_t c32x16cumulVectVectWithSteps(c16_t *in1, int *offset1, const int step1, diff --git a/openair1/PHY/NR_UE_ESTIMATION/nr_dl_channel_estimation.c b/openair1/PHY/NR_UE_ESTIMATION/nr_dl_channel_estimation.c index 333d36e586..a208522a42 100644 --- a/openair1/PHY/NR_UE_ESTIMATION/nr_dl_channel_estimation.c +++ b/openair1/PHY/NR_UE_ESTIMATION/nr_dl_channel_estimation.c @@ -1303,45 +1303,6 @@ void nr_pdcch_channel_estimation(PHY_VARS_NR_UE *ue, } } -static void freq2time(uint16_t ofdm_symbol_size, - int16_t *freq_signal, - int16_t *time_signal) -{ - - switch (ofdm_symbol_size) { - case 128: - idft(IDFT_128, freq_signal, time_signal, 1); - break; - case 256: - idft(IDFT_256, freq_signal, time_signal, 1); - break; - case 512: - idft(IDFT_512, freq_signal, time_signal, 1); - break; - case 1024: - idft(IDFT_1024, freq_signal, time_signal, 1); - break; - case 1536: - idft(IDFT_1536, freq_signal, time_signal, 1); - break; - case 2048: - idft(IDFT_2048, freq_signal, time_signal, 1); - break; - case 4096: - idft(IDFT_4096, freq_signal, time_signal, 1); - break; - case 6144: - idft(IDFT_6144, freq_signal, time_signal, 1); - break; - case 8192: - idft(IDFT_8192, freq_signal, time_signal, 1); - break; - default: - AssertFatal (1 == 0, "Invalid ofdm_symbol_size %i\n", ofdm_symbol_size); - break; - } -} - void nr_est_delay_pdsch(const NR_DL_FRAME_PARMS *frame_parms, const c16_t *dl_ls_est, delay_t *delay) { c16_t dl_ch_estimates_time[frame_parms->ofdm_symbol_size] __attribute__((aligned(32)));