Merge pull request #26 from suttonpd/master

Directory restructure and cmake cleanup
master
Ismael Gómez-Miguelez 11 years ago
commit b4e625eddd

@ -119,7 +119,7 @@ ADD_CUSTOM_TARGET(uninstall
# Macro to add -fPIC property to static libs # Macro to add -fPIC property to static libs
######################################################################## ########################################################################
MACRO(LIBLTE_SET_PIC) MACRO(LIBLTE_SET_PIC)
IF( CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" ) IF( CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" )
SET_TARGET_PROPERTIES(${ARGV} PROPERTIES COMPILE_FLAGS -fPIC) SET_TARGET_PROPERTIES(${ARGV} PROPERTIES COMPILE_FLAGS -fPIC)
ENDIF( CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" ) ENDIF( CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" )
ENDMACRO(LIBLTE_SET_PIC) ENDMACRO(LIBLTE_SET_PIC)
@ -129,15 +129,12 @@ ENDMACRO(LIBLTE_SET_PIC)
# through an internal cache variable. # through an internal cache variable.
######################################################################## ########################################################################
MACRO (APPEND_INTERNAL_LIST LIST_NAME VALUE) MACRO (APPEND_INTERNAL_LIST LIST_NAME VALUE)
# If the list in not in the cache, create it. # If the list in not in the cache, create it.
IF (${LIST_NAME}) IF (${LIST_NAME})
SET (${LIST_NAME} "${${LIST_NAME}};${VALUE}" CACHE INTERNAL "Internal SET (${LIST_NAME} "${${LIST_NAME}};${VALUE}" CACHE INTERNAL "Internal variable")
variable")
ELSE (${LIST_NAME}) ELSE (${LIST_NAME})
SET (${LIST_NAME} "${VALUE}" CACHE INTERNAL "Internal variable") SET (${LIST_NAME} "${VALUE}" CACHE INTERNAL "Internal variable")
ENDIF (${LIST_NAME}) ENDIF (${LIST_NAME})
ENDMACRO (APPEND_INTERNAL_LIST) ENDMACRO (APPEND_INTERNAL_LIST)
@ -150,16 +147,16 @@ MESSAGE(STATUS "Building for version: ${VERSION}")
######################################################################## ########################################################################
# Add general includes and dependencies # Add general includes and dependencies
######################################################################## ########################################################################
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/lte/include) INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/common/include)
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/lte/phy/include/)
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/cuhd/include) INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/cuhd/include)
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/graphics/include) INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/graphics/include)
######################################################################## ########################################################################
# Add the subdirectories # Add the subdirectories
######################################################################## ########################################################################
ADD_SUBDIRECTORY(common)
ADD_SUBDIRECTORY(lte)
ADD_SUBDIRECTORY(cuhd) ADD_SUBDIRECTORY(cuhd)
ADD_SUBDIRECTORY(graphics) ADD_SUBDIRECTORY(graphics)
ADD_SUBDIRECTORY(examples) ADD_SUBDIRECTORY(lte)

@ -42,7 +42,7 @@ make
The library can also be installed using the command ```sudo make install```. The library can also be installed using the command ```sudo make install```.
Examples PHY Examples
========== ==========
* eNodeB and UE PBCH example * eNodeB and UE PBCH example
@ -50,12 +50,12 @@ Examples
Setup one or two computers connected to two USRP or UHD-compatible hardware. From the eNodeB, type Setup one or two computers connected to two USRP or UHD-compatible hardware. From the eNodeB, type
``` ```
examples/pbch_enodeb -f [frequency_in_Hz] -c [cell_id] [-a [UHD args]] [-h for more commands] lte/phy/examples/pbch_enodeb -f [frequency_in_Hz] -c [cell_id] [-a [UHD args]] [-h for more commands]
``` ```
From the UE, type From the UE, type
``` ```
examples/pbch_ue -f [frequency_in_Hz] -c [cell_id] [-a [UHD args]] [-h for more commands] lte/phy/examples/pbch_ue -f [frequency_in_Hz] -c [cell_id] [-a [UHD args]] [-h for more commands]
``` ```
And the output should look something like the following video. In this example, we removed the transmitter and receiver antennas in the middle of the demonstration, showing how reception is still possible (despite with some erros). And the output should look something like the following video. In this example, we removed the transmitter and receiver antennas in the middle of the demonstration, showing how reception is still possible (despite with some erros).
@ -70,12 +70,12 @@ If you don't have a pair of USRP, you can also test the demo by writing the samp
From the eNodeB, type From the eNodeB, type
``` ```
examples/pbch_enodeb -o [output_file] -c [cell_id] [-h for more commands] lte/phy/examples/pbch_enodeb -o [output_file] -c [cell_id] [-h for more commands]
``` ```
From the UE, type From the UE, type
``` ```
examples/pbch_ue -i [input_file] -c [cell_id] [-h for more commands] lte/phy/examples/pbch_ue -i [input_file] -c [cell_id] [-h for more commands]
``` ```
@ -85,7 +85,7 @@ This program uses any hardware supported by the UHD driver to scan an LTE band f
For instance, the command: For instance, the command:
``` examples/scan_mib -b 3 ``` ``` lte/phy/examples/scan_mib -b 3 ```
Scans the LTE band 3 (1805 to 1880 MHz). Note that you need a hardware supporting these frequencies (e.g. SBX daughterboard for USRP). For more command arguments, type ``` examples/mib_scan_usrp -h ``` Scans the LTE band 3 (1805 to 1880 MHz). Note that you need a hardware supporting these frequencies (e.g. SBX daughterboard for USRP). For more command arguments, type ``` examples/mib_scan_usrp -h ```

@ -19,20 +19,24 @@
# and at http://www.gnu.org/licenses/. # and at http://www.gnu.org/licenses/.
# #
########################################################################
# Install headers
########################################################################
INSTALL(DIRECTORY include/ DESTINATION "${INCLUDE_DIR}"
FILES_MATCHING PATTERN "*.h"
PATTERN ".svn" EXCLUDE
)
######################################################################## ########################################################################
# Add headers to cmake project (useful for IDEs) # Add headers to cmake project (useful for IDEs)
######################################################################## ########################################################################
SET(HEADERS_ALL "") SET(HEADERS_ALL "")
FILE(GLOB_RECURSE tmp "*.h")
LIST(APPEND HEADERS_ALL ${tmp})
FILE(GLOB headers *) FILE(GLOB headers *)
FOREACH (_header ${headers}) FOREACH (_header ${headers})
IF(IS_DIRECTORY ${_header}) IF(IS_DIRECTORY ${_header})
FILE(GLOB_RECURSE tmp "${_header}/*.h") FILE(GLOB_RECURSE tmp "${_header}/*.h")
LIST(APPEND HEADERS_ALL ${tmp}) LIST(APPEND HEADERS_ALL ${tmp})
ENDIF(IS_DIRECTORY ${_header}) ENDIF(IS_DIRECTORY ${_header})
ENDFOREACH() ENDFOREACH()
ADD_CUSTOM_TARGET (add_graphics_headers SOURCES ${HEADERS_ALL}) ADD_CUSTOM_TARGET (add_common_headers SOURCES ${HEADERS_ALL})

@ -22,16 +22,27 @@
######################################################################## ########################################################################
# Install headers # Install headers
######################################################################## ########################################################################
ADD_SUBDIRECTORY(include) INSTALL(DIRECTORY include/
INSTALL(DIRECTORY include/ DESTINATION "${INCLUDE_DIR}" DESTINATION "${INCLUDE_DIR}"
FILES_MATCHING PATTERN "*.h" FILES_MATCHING PATTERN "*.h"
PATTERN ".svn" EXCLUDE PATTERN ".svn" EXCLUDE
) )
########################################################################
# Add headers to cmake project (useful for IDEs)
########################################################################
SET(HEADERS_ALL "")
FILE(GLOB headers *)
FOREACH (_header ${headers})
IF(IS_DIRECTORY ${_header})
FILE(GLOB_RECURSE tmp "${_header}/*.h")
LIST(APPEND HEADERS_ALL ${tmp})
ENDIF(IS_DIRECTORY ${_header})
ENDFOREACH()
ADD_CUSTOM_TARGET (add_cuhd_headers SOURCES ${HEADERS_ALL})
######################################################################## ########################################################################
# Add the subdirectories # Add the subdirectories
######################################################################## ########################################################################
ADD_SUBDIRECTORY(lib) ADD_SUBDIRECTORY(lib)

@ -1,38 +0,0 @@
#
# Copyright 2012-2013 The libLTE Developers. See the
# COPYRIGHT file at the top-level directory of this distribution.
#
# This file is part of the libLTE library.
#
# libLTE is free software: you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as
# published by the Free Software Foundation, either version 3 of
# the License, or (at your option) any later version.
#
# libLTE is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Lesser General Public License for more details.
#
# A copy of the GNU Lesser General Public License can be found in
# the LICENSE file in the top-level directory of this distribution
# and at http://www.gnu.org/licenses/.
#
########################################################################
# Add headers to cmake project (useful for IDEs)
########################################################################
SET(HEADERS_ALL "")
FILE(GLOB_RECURSE tmp "*.h")
LIST(APPEND HEADERS_ALL ${tmp})
FILE(GLOB headers *)
FOREACH (_header ${headers})
IF(IS_DIRECTORY ${_header})
FILE(GLOB_RECURSE tmp "${_header}/*.h")
LIST(APPEND HEADERS_ALL ${tmp})
ENDIF(IS_DIRECTORY ${_header})
ENDFOREACH()
ADD_CUSTOM_TARGET (add_cuhd_headers SOURCES ${HEADERS_ALL})

@ -32,24 +32,25 @@ extern "C" {
#endif #endif
#include <stdbool.h> #include <stdbool.h>
#include "cuhd/cuhd_utils.h" #include "liblte/config.h"
#include "liblte/cuhd/cuhd_utils.h"
int cuhd_open(char *args, void **handler);
int cuhd_close(void *h); LIBLTE_API int cuhd_open(char *args, void **handler);
LIBLTE_API int cuhd_close(void *h);
int cuhd_start_rx_stream(void *h);
int cuhd_start_rx_stream_nsamples(void *h, int nsamples); LIBLTE_API int cuhd_start_rx_stream(void *h);
int cuhd_stop_rx_stream(void *h); LIBLTE_API int cuhd_start_rx_stream_nsamples(void *h, int nsamples);
bool cuhd_rx_wait_lo_locked(void *h); LIBLTE_API int cuhd_stop_rx_stream(void *h);
double cuhd_set_rx_srate(void *h, double freq); LIBLTE_API bool cuhd_rx_wait_lo_locked(void *h);
double cuhd_set_rx_gain(void *h, double gain); LIBLTE_API double cuhd_set_rx_srate(void *h, double freq);
double cuhd_set_rx_freq(void *h, double freq); LIBLTE_API double cuhd_set_rx_gain(void *h, double gain);
int cuhd_recv(void *h, void *data, int nsamples, int blocking); LIBLTE_API double cuhd_set_rx_freq(void *h, double freq);
LIBLTE_API int cuhd_recv(void *h, void *data, int nsamples, int blocking);
double cuhd_set_tx_srate(void *h, double freq);
double cuhd_set_tx_gain(void *h, double gain); LIBLTE_API double cuhd_set_tx_srate(void *h, double freq);
double cuhd_set_tx_freq(void *h, double freq); LIBLTE_API double cuhd_set_tx_gain(void *h, double gain);
int cuhd_send(void *h, void *data, int nsamples, int blocking); LIBLTE_API double cuhd_set_tx_freq(void *h, double freq);
LIBLTE_API int cuhd_send(void *h, void *data, int nsamples, int blocking);
#ifdef __cplusplus #ifdef __cplusplus

@ -25,6 +25,6 @@
* *
*/ */
#include "liblte/config.h"
LIBLTE_API int cuhd_rssi_scan(void *uhd, float *freqs, float *rssi, int nof_bands, double fs, int nsamp);
int cuhd_rssi_scan(void *uhd, float *freqs, float *rssi, int nof_bands, double fs, int nsamp);

@ -23,7 +23,7 @@ FIND_PACKAGE(UHD)
IF(UHD_FOUND) IF(UHD_FOUND)
ADD_LIBRARY(cuhd cuhd_imp.cpp cuhd_utils.c) ADD_LIBRARY(cuhd SHARED cuhd_imp.cpp cuhd_utils.c)
INCLUDE_DIRECTORIES(${UHD_INCLUDE_DIRS}) INCLUDE_DIRECTORIES(${UHD_INCLUDE_DIRS})
LINK_DIRECTORIES(${UHD_LIBRARY_DIRS}) LINK_DIRECTORIES(${UHD_LIBRARY_DIRS})
TARGET_LINK_LIBRARIES(cuhd ${UHD_LIBRARIES}) TARGET_LINK_LIBRARIES(cuhd ${UHD_LIBRARIES})

@ -32,7 +32,7 @@
#include <uhd/utils/msg.hpp> #include <uhd/utils/msg.hpp>
#include "cuhd_handler.hpp" #include "cuhd_handler.hpp"
#include "cuhd.h" #include "liblte/cuhd/cuhd.h"
void my_handler(uhd::msg::type_t type, const std::string &msg){ void my_handler(uhd::msg::type_t type, const std::string &msg){

@ -31,9 +31,9 @@
#include <unistd.h> #include <unistd.h>
#include "cuhd.h" #include "liblte/cuhd/cuhd.h"
#include "lte/utils/vector.h" #include "liblte/phy/utils/vector.h"
#include "lte/utils/debug.h" #include "liblte/phy/utils/debug.h"
int cuhd_rssi_scan(void *uhd, float *freqs, float *rssi, int nof_bands, double fs, int nsamp) { int cuhd_rssi_scan(void *uhd, float *freqs, float *rssi, int nof_bands, double fs, int nsamp) {
int i, j; int i, j;

@ -22,15 +22,27 @@
######################################################################## ########################################################################
# Install headers # Install headers
######################################################################## ########################################################################
ADD_SUBDIRECTORY(include) INSTALL(DIRECTORY include/
INSTALL(DIRECTORY include/ DESTINATION "${INCLUDE_DIR}" DESTINATION "${INCLUDE_DIR}"
FILES_MATCHING PATTERN "*.h" FILES_MATCHING PATTERN "*.h"
PATTERN ".svn" EXCLUDE PATTERN ".svn" EXCLUDE
) )
######################################################################## ########################################################################
# Add the subdirectories # Add headers to cmake project (useful for IDEs)
######################################################################## ########################################################################
SET(HEADERS_ALL "")
FILE(GLOB headers *)
FOREACH (_header ${headers})
IF(IS_DIRECTORY ${_header})
FILE(GLOB_RECURSE tmp "${_header}/*.h")
LIST(APPEND HEADERS_ALL ${tmp})
ENDIF(IS_DIRECTORY ${_header})
ENDFOREACH()
ADD_CUSTOM_TARGET (add_graphics_headers SOURCES ${HEADERS_ALL})
########################################################################
# Add the subdirectories
########################################################################
ADD_SUBDIRECTORY(lib) ADD_SUBDIRECTORY(lib)

@ -33,12 +33,12 @@
extern "C" { extern "C" {
#endif #endif
#include "lte/config.h" #include "liblte/config.h"
#include "plot/plot_real.h" #include "liblte/graphics/plot/plot_real.h"
#include "plot/plot_scatter.h" #include "liblte/graphics/plot/plot_scatter.h"
#include "plot/plot_complex.h" #include "liblte/graphics/plot/plot_complex.h"
#include "plot/plot_waterfall.h" #include "liblte/graphics/plot/plot_waterfall.h"
LIBLTE_API int plot_init(); LIBLTE_API int plot_init();
LIBLTE_API void plot_exit(); LIBLTE_API void plot_exit();

@ -35,7 +35,7 @@ extern "C" {
#endif #endif
#include <stdbool.h> #include <stdbool.h>
#include "lte/config.h" #include "liblte/config.h"
typedef enum { typedef enum {
Ip, Q, Magnitude, Phase Ip, Q, Magnitude, Phase

@ -34,7 +34,7 @@ extern "C" {
#endif #endif
#include <stdbool.h> #include <stdbool.h>
#include "lte/config.h" #include "liblte/config.h"
typedef void* plot_real_t; typedef void* plot_real_t;

@ -34,7 +34,7 @@ extern "C" {
#endif #endif
#include <stdbool.h> #include <stdbool.h>
#include "lte/config.h" #include "liblte/config.h"
typedef void* plot_scatter_t; typedef void* plot_scatter_t;

@ -34,7 +34,7 @@ extern "C" {
#endif #endif
#include <stdbool.h> #include <stdbool.h>
#include "lte/config.h" #include "liblte/config.h"
typedef void* plot_waterfall_t; typedef void* plot_waterfall_t;

@ -26,7 +26,7 @@
*/ */
#include "plot.h" #include "liblte/graphics/plot.h"
#include <stdio.h> #include <stdio.h>
#include <QApplication> #include <QApplication>
#include <QMainWindow> #include <QMainWindow>

@ -28,7 +28,7 @@
#include "plot/plot_complex.h" #include "liblte/graphics/plot/plot_complex.h"
#include "Complexplot.h" #include "Complexplot.h"
#include <complex> #include <complex>

@ -27,7 +27,7 @@
#include "plot/plot_real.h" #include "liblte/graphics/plot/plot_real.h"
#include "Realplot.h" #include "Realplot.h"
#include <complex.h> #include <complex.h>

@ -3,7 +3,7 @@
#include <string> #include <string>
#include <complex> #include <complex>
#include "lte/config.h" #include "liblte/config.h"
class ScatterplotWrapper; class ScatterplotWrapper;

@ -27,7 +27,7 @@
#include "plot/plot_scatter.h" #include "liblte/graphics/plot/plot_scatter.h"
#include "Scatterplot.h" #include "Scatterplot.h"
#include <complex> #include <complex>

@ -28,7 +28,7 @@
#include "plot/plot_waterfall.h" #include "liblte/graphics/plot/plot_waterfall.h"
#include "Waterfallplot.h" #include "Waterfallplot.h"
#include <complex.h> #include <complex.h>

@ -19,18 +19,10 @@
# and at http://www.gnu.org/licenses/. # and at http://www.gnu.org/licenses/.
# #
########################################################################
# Install headers
########################################################################
ADD_SUBDIRECTORY(include)
INSTALL(DIRECTORY include/ DESTINATION "${INCLUDE_DIR}"
FILES_MATCHING PATTERN "*.h"
PATTERN ".svn" EXCLUDE
)
######################################################################## ########################################################################
# Add the subdirectories # Add the subdirectories
######################################################################## ########################################################################
ADD_SUBDIRECTORY(phy)
ADD_SUBDIRECTORY(lib) ADD_SUBDIRECTORY(mac)
ADD_SUBDIRECTORY(rlc)
ADD_SUBDIRECTORY(pdcp)

@ -1,107 +0,0 @@
/**
*
* \section COPYRIGHT
*
* Copyright 2013-2014 The libLTE Developers. See the
* COPYRIGHT file at the top-level directory of this distribution.
*
* \section LICENSE
*
* This file is part of the libLTE library.
*
* libLTE is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation, either version 3 of
* the License, or (at your option) any later version.
*
* libLTE is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* A copy of the GNU Lesser General Public License can be found in
* the LICENSE file in the top-level directory of this distribution
* and at http://www.gnu.org/licenses/.
*
*/
#include <complex.h>
#include <math.h>
#ifndef _LTE_
#define _LTE_
#ifdef __cplusplus
extern "C" {
#endif
#include "lte/config.h"
#include "lte/utils/bit.h"
#include "lte/utils/convolution.h"
#include "lte/utils/debug.h"
#include "lte/utils/dft.h"
#include "lte/utils/matrix.h"
#include "lte/utils/mux.h"
#include "lte/utils/cexptab.h"
#include "lte/utils/pack.h"
#include "lte/utils/vector.h"
#include "lte/common/base.h"
#include "lte/common/fft.h"
#include "lte/common/sequence.h"
#include "lte/ch_estimation/chest.h"
#include "lte/ch_estimation/refsignal.h"
#include "lte/channel/ch_awgn.h"
#include "lte/fec/viterbi.h"
#include "lte/fec/convcoder.h"
#include "lte/fec/crc.h"
#include "lte/fec/tc_interl.h"
#include "lte/fec/turbocoder.h"
#include "lte/fec/turbodecoder.h"
#include "lte/fec/rm_conv.h"
#include "lte/fec/rm_turbo.h"
#include "lte/filter/filter2d.h"
#include "lte/io/binsource.h"
#include "lte/io/filesink.h"
#include "lte/io/filesource.h"
#include "lte/io/udpsink.h"
#include "lte/io/udpsource.h"
#include "lte/modem/demod_hard.h"
#include "lte/modem/demod_soft.h"
#include "lte/modem/mod.h"
#include "lte/modem/modem_table.h"
#include "lte/mimo/precoding.h"
#include "lte/mimo/layermap.h"
#include "lte/phch/regs.h"
#include "lte/phch/dci.h"
#include "lte/phch/pdcch.h"
#include "lte/phch/pdsch.h"
#include "lte/phch/pbch.h"
#include "lte/phch/pcfich.h"
#include "lte/phch/phich.h"
#include "lte/scrambling/scrambling.h"
#include "lte/resampling/interp.h"
#include "lte/sync/pss.h"
#include "lte/sync/sfo.h"
#include "lte/sync/sss.h"
#include "lte/sync/sync.h"
#include "lte/sync/cfo.h"
#ifdef __cplusplus
}
#endif
#endif

@ -0,0 +1,21 @@
#
# Copyright 2012-2013 The libLTE Developers. See the
# COPYRIGHT file at the top-level directory of this distribution.
#
# This file is part of the libLTE library.
#
# libLTE is free software: you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as
# published by the Free Software Foundation, either version 3 of
# the License, or (at your option) any later version.
#
# libLTE is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Lesser General Public License for more details.
#
# A copy of the GNU Lesser General Public License can be found in
# the LICENSE file in the top-level directory of this distribution
# and at http://www.gnu.org/licenses/.
#

@ -0,0 +1,21 @@
#
# Copyright 2012-2013 The libLTE Developers. See the
# COPYRIGHT file at the top-level directory of this distribution.
#
# This file is part of the libLTE library.
#
# libLTE is free software: you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as
# published by the Free Software Foundation, either version 3 of
# the License, or (at your option) any later version.
#
# libLTE is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Lesser General Public License for more details.
#
# A copy of the GNU Lesser General Public License can be found in
# the LICENSE file in the top-level directory of this distribution
# and at http://www.gnu.org/licenses/.
#

@ -19,20 +19,30 @@
# and at http://www.gnu.org/licenses/. # and at http://www.gnu.org/licenses/.
# #
########################################################################
# Install headers
########################################################################
INSTALL(DIRECTORY include/
DESTINATION "${INCLUDE_DIR}"
FILES_MATCHING PATTERN "*.h"
PATTERN ".svn" EXCLUDE
)
######################################################################## ########################################################################
# Add headers to cmake project (useful for IDEs) # Add headers to cmake project (useful for IDEs)
######################################################################## ########################################################################
SET(HEADERS_ALL "") SET(HEADERS_ALL "")
FILE(GLOB_RECURSE tmp "*.h")
LIST(APPEND HEADERS_ALL ${tmp})
FILE(GLOB headers *) FILE(GLOB headers *)
FOREACH (_header ${headers}) FOREACH (_header ${headers})
IF(IS_DIRECTORY ${_header}) IF(IS_DIRECTORY ${_header})
FILE(GLOB_RECURSE tmp "${_header}/*.h") FILE(GLOB_RECURSE tmp "${_header}/*.h")
LIST(APPEND HEADERS_ALL ${tmp}) LIST(APPEND HEADERS_ALL ${tmp})
ENDIF(IS_DIRECTORY ${_header}) ENDIF(IS_DIRECTORY ${_header})
ENDFOREACH() ENDFOREACH()
ADD_CUSTOM_TARGET (add_lte_headers SOURCES ${HEADERS_ALL}) ADD_CUSTOM_TARGET (add_lte_headers SOURCES ${HEADERS_ALL})
########################################################################
# Add subdirectories
########################################################################
ADD_SUBDIRECTORY(lib)
ADD_SUBDIRECTORY(examples)

@ -25,10 +25,10 @@
################################################################# #################################################################
add_executable(hl_example hl_example.c) add_executable(hl_example hl_example.c)
target_link_libraries(hl_example lte) target_link_libraries(hl_example lte_phy)
add_executable(ll_example ll_example.c) add_executable(ll_example ll_example.c)
target_link_libraries(ll_example lte) target_link_libraries(ll_example lte_phy)
################################################################# #################################################################
@ -36,7 +36,7 @@ target_link_libraries(ll_example lte)
################################################################# #################################################################
add_executable(synch_file synch_file.c) add_executable(synch_file synch_file.c)
target_link_libraries(synch_file lte) target_link_libraries(synch_file lte_phy)
LINK_DIRECTORIES(${UHD_LIBRARY_DIRS}) LINK_DIRECTORIES(${UHD_LIBRARY_DIRS})
@ -52,10 +52,10 @@ LIST(FIND OPTIONAL_LIBS graphics GRAPHICS_FIND)
################################################################# #################################################################
add_executable(pbch_ue pbch_ue.c) add_executable(pbch_ue pbch_ue.c)
target_link_libraries(pbch_ue lte) target_link_libraries(pbch_ue lte_phy)
add_executable(pbch_enodeb pbch_enodeb.c) add_executable(pbch_enodeb pbch_enodeb.c)
target_link_libraries(pbch_enodeb lte) target_link_libraries(pbch_enodeb lte_phy)
IF(${CUHD_FIND} EQUAL -1) IF(${CUHD_FIND} EQUAL -1)
SET_TARGET_PROPERTIES(pbch_ue PROPERTIES COMPILE_DEFINITIONS "DISABLE_UHD") SET_TARGET_PROPERTIES(pbch_ue PROPERTIES COMPILE_DEFINITIONS "DISABLE_UHD")
@ -82,13 +82,13 @@ ENDIF(${GRAPHICS_FIND} EQUAL -1)
IF(${CUHD_FIND} GREATER -1) IF(${CUHD_FIND} GREATER -1)
add_executable(scan_rssi scan_rssi.c) add_executable(scan_rssi scan_rssi.c)
target_link_libraries(scan_rssi lte cuhd ) target_link_libraries(scan_rssi lte_phy cuhd )
add_executable(scan_pss scan_pss.c) add_executable(scan_pss scan_pss.c)
target_link_libraries(scan_pss lte cuhd ) target_link_libraries(scan_pss lte_phy cuhd )
add_executable(scan_mib scan_mib.c) add_executable(scan_mib scan_mib.c)
target_link_libraries(scan_mib lte cuhd ) target_link_libraries(scan_mib lte_phy cuhd )
MESSAGE(STATUS " UHD examples will be installed.") MESSAGE(STATUS " UHD examples will be installed.")

@ -31,7 +31,7 @@
#include <strings.h> #include <strings.h>
#include <math.h> #include <math.h>
#include "lte.h" #include "liblte/phy/phy.h"
void usage(char *arg) { void usage(char *arg) {
printf("Usage: %s nbits snr_db\n",arg); printf("Usage: %s nbits snr_db\n",arg);

@ -29,7 +29,7 @@
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include "lte.h" #include "liblte/phy/phy.h"
int main(int argc, char **argv) { int main(int argc, char **argv) {
binsource_t bs; binsource_t bs;

@ -31,10 +31,10 @@
#include <strings.h> #include <strings.h>
#include <unistd.h> #include <unistd.h>
#include "lte.h" #include "liblte/phy/phy.h"
#ifndef DISABLE_UHD #ifndef DISABLE_UHD
#include "cuhd.h" #include "liblte/cuhd/cuhd.h"
void *uhd; void *uhd;
#endif #endif

@ -36,15 +36,15 @@
#include <assert.h> #include <assert.h>
#include <signal.h> #include <signal.h>
#include "lte.h" #include "liblte/phy/phy.h"
#ifndef DISABLE_UHD #ifndef DISABLE_UHD
#include "cuhd.h" #include "liblte/cuhd/cuhd.h"
void *uhd; void *uhd;
#endif #endif
#ifndef DISABLE_GRAPHICS #ifndef DISABLE_GRAPHICS
#include "plot.h" #include "liblte/graphics/plot.h"
plot_real_t poutfft; plot_real_t poutfft;
plot_complex_t pce; plot_complex_t pce;
plot_scatter_t pscatrecv, pscatequal; plot_scatter_t pscatrecv, pscatequal;

@ -34,12 +34,12 @@
#include <sys/time.h> #include <sys/time.h>
#include <unistd.h> #include <unistd.h>
#include "lte.h" #include "liblte/phy/phy.h"
//#define DISABLE_UHD //#define DISABLE_UHD
#ifndef DISABLE_UHD #ifndef DISABLE_UHD
#include "cuhd.h" #include "liblte/cuhd/cuhd.h"
#endif #endif
#define MHZ 1000000 #define MHZ 1000000

@ -34,8 +34,8 @@
#include <sys/time.h> #include <sys/time.h>
#include <unistd.h> #include <unistd.h>
#include "lte.h" #include "liblte/phy/phy.h"
#include "cuhd.h" #include "liblte/cuhd/cuhd.h"
#define MHZ 1000000 #define MHZ 1000000
#define SAMP_FREQ 1920000 #define SAMP_FREQ 1920000

@ -32,8 +32,8 @@
#include <unistd.h> #include <unistd.h>
#include <math.h> #include <math.h>
#include "lte.h" #include "liblte/phy/phy.h"
#include "cuhd.h" #include "liblte/cuhd/cuhd.h"
int nof_frames=1000; int nof_frames=1000;
int band; int band;

@ -31,7 +31,7 @@
#include <unistd.h> #include <unistd.h>
#include <sys/time.h> #include <sys/time.h>
#include "lte.h" #include "liblte/phy/phy.h"
char *input_file_name; char *input_file_name;
char *output_file_name="abs_corr.txt"; char *output_file_name="abs_corr.txt";

@ -32,10 +32,10 @@
#include <stdio.h> #include <stdio.h>
#include "lte/config.h" #include "liblte/config.h"
#include "lte/ch_estimation/refsignal.h" #include "liblte/phy/ch_estimation/refsignal.h"
#include "lte/filter/filter2d.h" #include "liblte/phy/filter/filter2d.h"
#include "lte/common/base.h" #include "liblte/phy/common/base.h"
typedef _Complex float cf_t; /* this is only a shortcut */ typedef _Complex float cf_t; /* this is only a shortcut */

@ -37,8 +37,8 @@
* *
*/ */
#include "lte/config.h" #include "liblte/config.h"
#include "lte/common/base.h" #include "liblte/phy/common/base.h"
typedef _Complex float cf_t; typedef _Complex float cf_t;

@ -27,7 +27,7 @@
#include <complex.h> #include <complex.h>
#include "lte/config.h" #include "liblte/config.h"
#ifndef CH_AWGN_ #ifndef CH_AWGN_
#define CH_AWGN_ #define CH_AWGN_

@ -29,7 +29,7 @@
#ifndef _LTEBASE_ #ifndef _LTEBASE_
#define _LTEBASE_ #define _LTEBASE_
#include "lte/config.h" #include "liblte/config.h"
#define NSUBFRAMES_X_FRAME 10 #define NSUBFRAMES_X_FRAME 10
#define NSLOTS_X_FRAME (2*NSUBFRAMES_X_FRAME) #define NSLOTS_X_FRAME (2*NSUBFRAMES_X_FRAME)

@ -33,9 +33,9 @@
#include <strings.h> #include <strings.h>
#include <stdlib.h> #include <stdlib.h>
#include "lte/config.h" #include "liblte/config.h"
#include "lte/common/base.h" #include "liblte/phy/common/base.h"
#include "lte/utils/dft.h" #include "liblte/phy/utils/dft.h"
typedef _Complex float cf_t; /* this is only a shortcut */ typedef _Complex float cf_t; /* this is only a shortcut */

@ -28,7 +28,8 @@
#ifndef LTESEQ_ #ifndef LTESEQ_
#define LTESEQ_ #define LTESEQ_
#include "lte/common/base.h" #include "liblte/config.h"
#include "liblte/phy/common/base.h"
typedef struct LIBLTE_API { typedef struct LIBLTE_API {
char *c; char *c;

@ -31,7 +31,7 @@
#define CONVCODER_ #define CONVCODER_
#include <stdbool.h> #include <stdbool.h>
#include "lte/config.h" #include "liblte/config.h"
typedef struct LIBLTE_API { typedef struct LIBLTE_API {
int R; int R;

@ -29,7 +29,7 @@
#ifndef CRC_ #ifndef CRC_
#define CRC_ #define CRC_
#include "lte/config.h" #include "liblte/config.h"
typedef struct LIBLTE_API { typedef struct LIBLTE_API {
unsigned long table[256]; unsigned long table[256];

@ -28,7 +28,7 @@
#ifndef RM_CONV_ #ifndef RM_CONV_
#define RM_CONV_ #define RM_CONV_
#include "lte/config.h" #include "liblte/config.h"
#define RX_NULL 10000 #define RX_NULL 10000
#define TX_NULL 80 #define TX_NULL 80

@ -28,6 +28,8 @@
#ifndef RM_TURBO_ #ifndef RM_TURBO_
#define RM_TURBO_ #define RM_TURBO_
#include "liblte/config.h"
#ifndef RX_NULL #ifndef RX_NULL
#define RX_NULL 10000 #define RX_NULL 10000
#endif #endif
@ -36,7 +38,7 @@
#define TX_NULL 100 #define TX_NULL 100
#endif #endif
#include "lte/config.h" #include "liblte/config.h"
typedef struct LIBLTE_API { typedef struct LIBLTE_API {
int buffer_len; int buffer_len;

@ -28,7 +28,7 @@
#ifndef _TC_INTERL_H #ifndef _TC_INTERL_H
#define _TC_INTERL_H #define _TC_INTERL_H
#include "lte/config.h" #include "liblte/config.h"
typedef struct LIBLTE_API { typedef struct LIBLTE_API {
int *forward; int *forward;

@ -28,8 +28,8 @@
#ifndef TURBOCODER_ #ifndef TURBOCODER_
#define TURBOCODER_ #define TURBOCODER_
#include "lte/fec/tc_interl.h" #include "liblte/config.h"
#include "lte/config.h" #include "liblte/phy/fec/tc_interl.h"
#define NUMREGS 3 #define NUMREGS 3

@ -28,8 +28,8 @@
#ifndef TURBODECODER_ #ifndef TURBODECODER_
#define TURBODECODER_ #define TURBODECODER_
#include "lte/fec/tc_interl.h" #include "liblte/config.h"
#include "lte/config.h" #include "liblte/phy/fec/tc_interl.h"
#define RATE 3 #define RATE 3
#define TOTALTAIL 12 #define TOTALTAIL 12

@ -30,7 +30,7 @@
#define VITERBI_ #define VITERBI_
#include <stdbool.h> #include <stdbool.h>
#include "lte/config.h" #include "liblte/config.h"
typedef enum { typedef enum {
viterbi_27, viterbi_29, viterbi_37, viterbi_39 viterbi_27, viterbi_29, viterbi_37, viterbi_39

@ -30,7 +30,7 @@
#ifndef FILTER2D_ #ifndef FILTER2D_
#define FILTER2D_ #define FILTER2D_
#include "lte/config.h" #include "liblte/config.h"
/* 2-D real filter of complex input /* 2-D real filter of complex input
* *

@ -31,7 +31,7 @@
#include <stdint.h> #include <stdint.h>
#include "lte/config.h" #include "liblte/config.h"
/* Low-level API */ /* Low-level API */
typedef struct LIBLTE_API{ typedef struct LIBLTE_API{

@ -32,8 +32,8 @@
#include <stdint.h> #include <stdint.h>
#include <stdlib.h> #include <stdlib.h>
#include "lte/config.h" #include "liblte/config.h"
#include "lte/io/format.h" #include "liblte/phy/io/format.h"
/* Low-level API */ /* Low-level API */
typedef struct LIBLTE_API { typedef struct LIBLTE_API {

@ -32,8 +32,8 @@
#include <stdint.h> #include <stdint.h>
#include <stdlib.h> #include <stdlib.h>
#include "lte/config.h" #include "liblte/config.h"
#include "lte/io/format.h" #include "liblte/phy/io/format.h"
/* Low-level API */ /* Low-level API */
typedef struct LIBLTE_API { typedef struct LIBLTE_API {

@ -35,8 +35,8 @@
#include <stdint.h> #include <stdint.h>
#include <stdlib.h> #include <stdlib.h>
#include "lte/config.h" #include "liblte/config.h"
#include "lte/io/format.h" #include "liblte/phy/io/format.h"
/* Low-level API */ /* Low-level API */
typedef struct LIBLTE_API { typedef struct LIBLTE_API {

@ -36,8 +36,8 @@
#include <stdint.h> #include <stdint.h>
#include <stdlib.h> #include <stdlib.h>
#include "lte/config.h" #include "liblte/config.h"
#include "lte/io/format.h" #include "liblte/phy/io/format.h"
/* Low-level API */ /* Low-level API */
typedef struct LIBLTE_API { typedef struct LIBLTE_API {

@ -29,7 +29,7 @@
#ifndef LAYERMAP_H_ #ifndef LAYERMAP_H_
#define LAYERMAP_H_ #define LAYERMAP_H_
#include "lte/config.h" #include "liblte/config.h"
typedef _Complex float cf_t; typedef _Complex float cf_t;

@ -28,6 +28,8 @@
#ifndef PRECODING_H_ #ifndef PRECODING_H_
#define PRECODING_H_ #define PRECODING_H_
#include "liblte/config.h"
typedef _Complex float cf_t; typedef _Complex float cf_t;
/** The precoder takes as input nlayers vectors "x" from the /** The precoder takes as input nlayers vectors "x" from the

@ -32,7 +32,7 @@
#include <complex.h> #include <complex.h>
#include <stdint.h> #include <stdint.h>
#include "lte/config.h" #include "liblte/config.h"
#include "modem_table.h" #include "modem_table.h"
typedef _Complex float cf_t; typedef _Complex float cf_t;

@ -32,7 +32,7 @@
#include <complex.h> #include <complex.h>
#include <stdint.h> #include <stdint.h>
#include "lte/config.h" #include "liblte/config.h"
#include "modem_table.h" #include "modem_table.h"
enum alg { EXACT, APPROX }; enum alg { EXACT, APPROX };

@ -32,7 +32,7 @@
#include <complex.h> #include <complex.h>
#include <stdint.h> #include <stdint.h>
#include "lte/config.h" #include "liblte/config.h"
#include "modem_table.h" #include "modem_table.h"
typedef _Complex float cf_t; typedef _Complex float cf_t;

@ -34,7 +34,7 @@
#include <complex.h> #include <complex.h>
#include <stdint.h> #include <stdint.h>
#include "lte/config.h" #include "liblte/config.h"
typedef _Complex float cf_t; typedef _Complex float cf_t;
typedef struct LIBLTE_API { typedef struct LIBLTE_API {

@ -30,9 +30,9 @@
#include <stdint.h> #include <stdint.h>
#include "lte/config.h" #include "liblte/config.h"
#include "lte/common/base.h" #include "liblte/phy/common/base.h"
#include "lte/phch/ra.h" #include "liblte/phy/phch/ra.h"
typedef _Complex float cf_t; typedef _Complex float cf_t;

@ -29,17 +29,17 @@
#ifndef PBCH_ #ifndef PBCH_
#define PBCH_ #define PBCH_
#include "lte/config.h" #include "liblte/config.h"
#include "lte/common/base.h" #include "liblte/phy/common/base.h"
#include "lte/mimo/precoding.h" #include "liblte/phy/mimo/precoding.h"
#include "lte/mimo/layermap.h" #include "liblte/phy/mimo/layermap.h"
#include "lte/modem/mod.h" #include "liblte/phy/modem/mod.h"
#include "lte/modem/demod_soft.h" #include "liblte/phy/modem/demod_soft.h"
#include "lte/scrambling/scrambling.h" #include "liblte/phy/scrambling/scrambling.h"
#include "lte/fec/rm_conv.h" #include "liblte/phy/fec/rm_conv.h"
#include "lte/fec/convcoder.h" #include "liblte/phy/fec/convcoder.h"
#include "lte/fec/viterbi.h" #include "liblte/phy/fec/viterbi.h"
#include "lte/fec/crc.h" #include "liblte/phy/fec/crc.h"
#define PBCH_RE_CPNORM 240 #define PBCH_RE_CPNORM 240
#define PBCH_RE_CPEXT 216 #define PBCH_RE_CPEXT 216

@ -28,13 +28,14 @@
#ifndef PCFICH_ #ifndef PCFICH_
#define PCFICH_ #define PCFICH_
#include "lte/common/base.h" #include "liblte/config.h"
#include "lte/mimo/precoding.h" #include "liblte/phy/common/base.h"
#include "lte/mimo/layermap.h" #include "liblte/phy/mimo/precoding.h"
#include "lte/modem/mod.h" #include "liblte/phy/mimo/layermap.h"
#include "lte/modem/demod_hard.h" #include "liblte/phy/modem/mod.h"
#include "lte/scrambling/scrambling.h" #include "liblte/phy/modem/demod_hard.h"
#include "lte/phch/regs.h" #include "liblte/phy/scrambling/scrambling.h"
#include "liblte/phy/phch/regs.h"
#define PCFICH_CFI_LEN 32 #define PCFICH_CFI_LEN 32
#define PCFICH_RE PCFICH_CFI_LEN/2 #define PCFICH_RE PCFICH_CFI_LEN/2

@ -28,18 +28,19 @@
#ifndef PDCCH_ #ifndef PDCCH_
#define PDCCH_ #define PDCCH_
#include "lte/common/base.h" #include "liblte/config.h"
#include "lte/mimo/precoding.h" #include "liblte/phy/common/base.h"
#include "lte/mimo/layermap.h" #include "liblte/phy/mimo/precoding.h"
#include "lte/modem/mod.h" #include "liblte/phy/mimo/layermap.h"
#include "lte/modem/demod_soft.h" #include "liblte/phy/modem/mod.h"
#include "lte/scrambling/scrambling.h" #include "liblte/phy/modem/demod_soft.h"
#include "lte/fec/rm_conv.h" #include "liblte/phy/scrambling/scrambling.h"
#include "lte/fec/convcoder.h" #include "liblte/phy/fec/rm_conv.h"
#include "lte/fec/viterbi.h" #include "liblte/phy/fec/convcoder.h"
#include "lte/fec/crc.h" #include "liblte/phy/fec/viterbi.h"
#include "lte/phch/dci.h" #include "liblte/phy/fec/crc.h"
#include "lte/phch/regs.h" #include "liblte/phy/phch/dci.h"
#include "liblte/phy/phch/regs.h"
typedef _Complex float cf_t; typedef _Complex float cf_t;

@ -29,19 +29,19 @@
#ifndef PDSCH_ #ifndef PDSCH_
#define PDSCH_ #define PDSCH_
#include "lte/config.h" #include "liblte/config.h"
#include "lte/common/base.h" #include "liblte/phy/common/base.h"
#include "lte/mimo/precoding.h" #include "liblte/phy/mimo/precoding.h"
#include "lte/mimo/layermap.h" #include "liblte/phy/mimo/layermap.h"
#include "lte/modem/mod.h" #include "liblte/phy/modem/mod.h"
#include "lte/modem/demod_soft.h" #include "liblte/phy/modem/demod_soft.h"
#include "lte/scrambling/scrambling.h" #include "liblte/phy/scrambling/scrambling.h"
#include "lte/fec/rm_turbo.h" #include "liblte/phy/fec/rm_turbo.h"
#include "lte/fec/turbocoder.h" #include "liblte/phy/fec/turbocoder.h"
#include "lte/fec/turbodecoder.h" #include "liblte/phy/fec/turbodecoder.h"
#include "lte/fec/crc.h" #include "liblte/phy/fec/crc.h"
#include "lte/phch/dci.h" #include "liblte/phy/phch/dci.h"
#include "lte/phch/regs.h" #include "liblte/phy/phch/regs.h"
#define TDEC_ITERATIONS 1 #define TDEC_ITERATIONS 1

@ -29,13 +29,13 @@
#ifndef PHICH_ #ifndef PHICH_
#define PHICH_ #define PHICH_
#include "lte/config.h" #include "liblte/config.h"
#include "lte/common/base.h" #include "liblte/phy/common/base.h"
#include "lte/mimo/precoding.h" #include "liblte/phy/mimo/precoding.h"
#include "lte/mimo/layermap.h" #include "liblte/phy/mimo/layermap.h"
#include "lte/modem/mod.h" #include "liblte/phy/modem/mod.h"
#include "lte/modem/demod_hard.h" #include "liblte/phy/modem/demod_hard.h"
#include "lte/scrambling/scrambling.h" #include "liblte/phy/scrambling/scrambling.h"
#include "regs.h" #include "regs.h"
typedef _Complex float cf_t; typedef _Complex float cf_t;

@ -31,6 +31,8 @@
#include <stdint.h> #include <stdint.h>
#include <stdbool.h> #include <stdbool.h>
#include "liblte/config.h"
/** Structures and utility functions for DL/UL resource /** Structures and utility functions for DL/UL resource
* allocation. * allocation.
*/ */

@ -30,8 +30,8 @@
#define _REGS_H_ #define _REGS_H_
#include <stdbool.h> #include <stdbool.h>
#include "lte/config.h" #include "liblte/config.h"
#include "lte/common/base.h" #include "liblte/phy/common/base.h"
#define REGS_PHICH_NSYM 12 #define REGS_PHICH_NSYM 12
#define REGS_PHICH_REGS_X_GROUP 3 #define REGS_PHICH_REGS_X_GROUP 3

@ -0,0 +1,107 @@
/**
*
* \section COPYRIGHT
*
* Copyright 2013-2014 The libLTE Developers. See the
* COPYRIGHT file at the top-level directory of this distribution.
*
* \section LICENSE
*
* This file is part of the libLTE library.
*
* libLTE is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation, either version 3 of
* the License, or (at your option) any later version.
*
* libLTE is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* A copy of the GNU Lesser General Public License can be found in
* the LICENSE file in the top-level directory of this distribution
* and at http://www.gnu.org/licenses/.
*
*/
#include <complex.h>
#include <math.h>
#ifndef _LTE_
#define _LTE_
#ifdef __cplusplus
extern "C" {
#endif
#include "liblte/config.h"
#include "liblte/phy/utils/bit.h"
#include "liblte/phy/utils/convolution.h"
#include "liblte/phy/utils/debug.h"
#include "liblte/phy/utils/dft.h"
#include "liblte/phy/utils/matrix.h"
#include "liblte/phy/utils/mux.h"
#include "liblte/phy/utils/cexptab.h"
#include "liblte/phy/utils/pack.h"
#include "liblte/phy/utils/vector.h"
#include "liblte/phy/common/base.h"
#include "liblte/phy/common/fft.h"
#include "liblte/phy/common/sequence.h"
#include "liblte/phy/ch_estimation/chest.h"
#include "liblte/phy/ch_estimation/refsignal.h"
#include "liblte/phy/channel/ch_awgn.h"
#include "liblte/phy/fec/viterbi.h"
#include "liblte/phy/fec/convcoder.h"
#include "liblte/phy/fec/crc.h"
#include "liblte/phy/fec/tc_interl.h"
#include "liblte/phy/fec/turbocoder.h"
#include "liblte/phy/fec/turbodecoder.h"
#include "liblte/phy/fec/rm_conv.h"
#include "liblte/phy/fec/rm_turbo.h"
#include "liblte/phy/filter/filter2d.h"
#include "liblte/phy/io/binsource.h"
#include "liblte/phy/io/filesink.h"
#include "liblte/phy/io/filesource.h"
#include "liblte/phy/io/udpsink.h"
#include "liblte/phy/io/udpsource.h"
#include "liblte/phy/modem/demod_hard.h"
#include "liblte/phy/modem/demod_soft.h"
#include "liblte/phy/modem/mod.h"
#include "liblte/phy/modem/modem_table.h"
#include "liblte/phy/mimo/precoding.h"
#include "liblte/phy/mimo/layermap.h"
#include "liblte/phy/phch/regs.h"
#include "liblte/phy/phch/dci.h"
#include "liblte/phy/phch/pdcch.h"
#include "liblte/phy/phch/pdsch.h"
#include "liblte/phy/phch/pbch.h"
#include "liblte/phy/phch/pcfich.h"
#include "liblte/phy/phch/phich.h"
#include "liblte/phy/scrambling/scrambling.h"
#include "liblte/phy/resampling/interp.h"
#include "liblte/phy/sync/pss.h"
#include "liblte/phy/sync/sfo.h"
#include "liblte/phy/sync/sss.h"
#include "liblte/phy/sync/sync.h"
#include "liblte/phy/sync/cfo.h"
#ifdef __cplusplus
}
#endif
#endif

@ -28,7 +28,7 @@
#ifndef INTERP_H #ifndef INTERP_H
#define INTERP_H_ #define INTERP_H_
#include "lte/config.h" #include "liblte/config.h"
typedef _Complex float cf_t; typedef _Complex float cf_t;

@ -31,7 +31,7 @@
#include <stdint.h> #include <stdint.h>
#include <complex.h> #include <complex.h>
#include "lte/config.h" #include "liblte/config.h"
typedef _Complex float cf_t; typedef _Complex float cf_t;

@ -29,9 +29,9 @@
#ifndef SCRAMBLING_ #ifndef SCRAMBLING_
#define SCRAMBLING_ #define SCRAMBLING_
#include "lte/config.h" #include "liblte/config.h"
#include "lte/common/sequence.h" #include "liblte/phy/common/sequence.h"
#include "lte/common/base.h" #include "liblte/phy/common/base.h"
typedef _Complex float cf_t; typedef _Complex float cf_t;

@ -31,7 +31,7 @@
#include <complex.h> #include <complex.h>
#include "lte/config.h" #include "liblte/config.h"
typedef _Complex float cf_t; typedef _Complex float cf_t;

@ -32,9 +32,9 @@
#include <stdint.h> #include <stdint.h>
#include <stdbool.h> #include <stdbool.h>
#include "lte/config.h" #include "liblte/config.h"
#include "lte/common/base.h" #include "liblte/phy/common/base.h"
#include "lte/utils/convolution.h" #include "liblte/phy/utils/convolution.h"
typedef _Complex float cf_t; /* this is only a shortcut */ typedef _Complex float cf_t; /* this is only a shortcut */

@ -29,7 +29,7 @@
#ifndef SFO_ #ifndef SFO_
#define SFO_ #define SFO_
#include "lte/config.h" #include "liblte/config.h"
LIBLTE_API float sfo_estimate(int *t0, int len, float period); LIBLTE_API float sfo_estimate(int *t0, int len, float period);
LIBLTE_API float sfo_estimate_period(int *t0, int *t, int len, float period); LIBLTE_API float sfo_estimate_period(int *t0, int *t, int len, float period);

@ -32,9 +32,9 @@
#include <stdint.h> #include <stdint.h>
#include <stdbool.h> #include <stdbool.h>
#include "lte/config.h" #include "liblte/config.h"
#include "lte/common/base.h" #include "liblte/phy/common/base.h"
#include "lte/utils/dft.h" #include "liblte/phy/utils/dft.h"
typedef _Complex float cf_t; /* this is only a shortcut */ typedef _Complex float cf_t; /* this is only a shortcut */

@ -31,7 +31,7 @@
#include <stdbool.h> #include <stdbool.h>
#include "lte/config.h" #include "liblte/config.h"
#include "pss.h" #include "pss.h"
#include "sss.h" #include "sss.h"
#include "sfo.h" #include "sfo.h"

@ -32,7 +32,7 @@
#include <stdint.h> #include <stdint.h>
#include <stdio.h> #include <stdio.h>
#include "lte/config.h" #include "liblte/config.h"
LIBLTE_API uint32_t bit_unpack(char **bits, int nof_bits); LIBLTE_API uint32_t bit_unpack(char **bits, int nof_bits);
LIBLTE_API void bit_pack(uint32_t value, char **bits, int nof_bits); LIBLTE_API void bit_pack(uint32_t value, char **bits, int nof_bits);

@ -30,7 +30,7 @@
#define CEXPTAB_ #define CEXPTAB_
#include <complex.h> #include <complex.h>
#include "lte/config.h" #include "liblte/config.h"
typedef _Complex float cf_t; typedef _Complex float cf_t;

@ -29,8 +29,8 @@
#ifndef CONVOLUTION_H_ #ifndef CONVOLUTION_H_
#define CONVOLUTION_H_ #define CONVOLUTION_H_
#include "lte/config.h" #include "liblte/config.h"
#include "lte/utils/dft.h" #include "liblte/phy/utils/dft.h"
typedef struct LIBLTE_API { typedef struct LIBLTE_API {
_Complex float *input_fft; _Complex float *input_fft;

@ -29,7 +29,7 @@
#define DEBUG_H #define DEBUG_H
#include <stdio.h> #include <stdio.h>
#include "lte/config.h" #include "liblte/config.h"
#define VERBOSE_DEBUG 2 #define VERBOSE_DEBUG 2
#define VERBOSE_INFO 1 #define VERBOSE_INFO 1

@ -30,7 +30,7 @@
#define DFT_H_ #define DFT_H_
#include <fftw3.h> #include <fftw3.h>
#include "lte/config.h" #include "liblte/config.h"
/* dft is a frontend to the fftw3 library. It facilitates the computation of /* dft is a frontend to the fftw3 library. It facilitates the computation of

@ -29,7 +29,7 @@
#define MATRIX_ #define MATRIX_
#include <stdio.h> #include <stdio.h>
#include "lte/config.h" #include "liblte/config.h"
typedef _Complex float cf_t; typedef _Complex float cf_t;

@ -28,7 +28,7 @@
#ifndef MUX_ #ifndef MUX_
#define MUX_ #define MUX_
#include "lte/config.h" #include "liblte/config.h"
LIBLTE_API void mux(void **input, void *output, int *input_lengths, int *input_padding_pre, int nof_inputs, LIBLTE_API void mux(void **input, void *output, int *input_lengths, int *input_padding_pre, int nof_inputs,
int sample_sz); int sample_sz);

@ -29,7 +29,7 @@
#ifndef PACK_ #ifndef PACK_
#define PACK_ #define PACK_
#include "lte/config.h" #include "liblte/config.h"
LIBLTE_API unsigned int unpack_bits(char **bits, int nof_bits); LIBLTE_API unsigned int unpack_bits(char **bits, int nof_bits);
LIBLTE_API void pack_bits(unsigned int value, char **bits, int nof_bits); LIBLTE_API void pack_bits(unsigned int value, char **bits, int nof_bits);

@ -30,7 +30,7 @@
#define VECTOR_ #define VECTOR_
#include <stdio.h> #include <stdio.h>
#include "lte/config.h" #include "liblte/config.h"
typedef _Complex float cf_t; typedef _Complex float cf_t;

@ -41,7 +41,6 @@ ENDIF(${DISABLE_VOLK})
######################################################################## ########################################################################
# Recurse subdirectories and compile all source files into the same lib # Recurse subdirectories and compile all source files into the same lib
######################################################################## ########################################################################
FILE(GLOB modules *) FILE(GLOB modules *)
SET(SOURCES_ALL "") SET(SOURCES_ALL "")
FOREACH (_module ${modules}) FOREACH (_module ${modules})
@ -51,15 +50,15 @@ FOREACH (_module ${modules})
ENDIF(IS_DIRECTORY ${_module}) ENDIF(IS_DIRECTORY ${_module})
ENDFOREACH() ENDFOREACH()
ADD_LIBRARY(lte SHARED ${SOURCES_ALL}) ADD_LIBRARY(lte_phy SHARED ${SOURCES_ALL})
TARGET_LINK_LIBRARIES(lte m ${FFTW3F_LIBRARIES}) TARGET_LINK_LIBRARIES(lte_phy m ${FFTW3F_LIBRARIES})
INSTALL(TARGETS lte DESTINATION ${LIBRARY_DIR}) INSTALL(TARGETS lte_phy DESTINATION ${LIBRARY_DIR})
LIBLTE_SET_PIC(lte) LIBLTE_SET_PIC(lte_phy)
IF(VOLK_FOUND) IF(VOLK_FOUND)
INCLUDE_DIRECTORIES(${VOLK_INCLUDE_DIRS}) INCLUDE_DIRECTORIES(${VOLK_INCLUDE_DIRS})
SET_TARGET_PROPERTIES(lte PROPERTIES COMPILE_DEFINITIONS "${VOLK_DEFINITIONS}") SET_TARGET_PROPERTIES(lte_phy PROPERTIES COMPILE_DEFINITIONS "${VOLK_DEFINITIONS}")
TARGET_LINK_LIBRARIES(lte ${VOLK_LIBRARIES}) TARGET_LINK_LIBRARIES(lte_phy ${VOLK_LIBRARIES})
MESSAGE(STATUS " Compiling with VOLK SIMD library.") MESSAGE(STATUS " Compiling with VOLK SIMD library.")
ELSE(VOLK_FOUND) ELSE(VOLK_FOUND)
MESSAGE(STATUS " VOLK SIMD library NOT found. Using generic implementation.") MESSAGE(STATUS " VOLK SIMD library NOT found. Using generic implementation.")
@ -69,7 +68,6 @@ ENDIF(VOLK_FOUND)
######################################################################## ########################################################################
# Recurse subdirectories and find all directories with a CMakeLists.txt file in it # Recurse subdirectories and find all directories with a CMakeLists.txt file in it
######################################################################## ########################################################################
FILE(GLOB_RECURSE cmakefiles CMakeLists.txt) FILE(GLOB_RECURSE cmakefiles CMakeLists.txt)
FOREACH (_file ${cmakefiles}) FOREACH (_file ${cmakefiles})
GET_FILENAME_COMPONENT(dir ${_file} PATH) GET_FILENAME_COMPONENT(dir ${_file} PATH)

@ -32,10 +32,10 @@
#include <assert.h> #include <assert.h>
#include <math.h> #include <math.h>
#include "lte/ch_estimation/chest.h" #include "liblte/phy/ch_estimation/chest.h"
#include "lte/resampling/interp.h" #include "liblte/phy/resampling/interp.h"
#include "lte/utils/vector.h" #include "liblte/phy/utils/vector.h"
#include "lte/utils/debug.h" #include "liblte/phy/utils/debug.h"
#define SLOT_SZ(q) (q->nof_symbols * q->symbol_sz) #define SLOT_SZ(q) (q->nof_symbols * q->symbol_sz)
#define SF_SZ(q) (2 * SLOT_SZ(q)) #define SF_SZ(q) (2 * SLOT_SZ(q))

@ -32,11 +32,11 @@
#include <stdlib.h> #include <stdlib.h>
#include <complex.h> #include <complex.h>
#include "lte/common/base.h" #include "liblte/phy/common/base.h"
#include "lte/ch_estimation/refsignal.h" #include "liblte/phy/ch_estimation/refsignal.h"
#include "lte/utils/vector.h" #include "liblte/phy/utils/vector.h"
#include "lte/utils/debug.h" #include "liblte/phy/utils/debug.h"
#include "lte/common/sequence.h" #include "liblte/phy/common/sequence.h"
#define idx(x, y) (l*nof_refs_x_symbol+i) #define idx(x, y) (l*nof_refs_x_symbol+i)

@ -24,7 +24,7 @@
######################################################################## ########################################################################
ADD_EXECUTABLE(chest_test chest_test.c) ADD_EXECUTABLE(chest_test chest_test.c)
TARGET_LINK_LIBRARIES(chest_test lte) TARGET_LINK_LIBRARIES(chest_test lte_phy)
ADD_TEST(chest_test_all_cellids chest_test) ADD_TEST(chest_test_all_cellids chest_test)
ADD_TEST(chest_test_cellid chest_test -c 1) ADD_TEST(chest_test_cellid chest_test -c 1)

@ -31,7 +31,7 @@
#include <unistd.h> #include <unistd.h>
#include <complex.h> #include <complex.h>
#include "lte.h" #include "liblte/phy/phy.h"
int cell_id = -1; int cell_id = -1;
int nof_prb = 6; int nof_prb = 6;

@ -31,7 +31,7 @@
#include <strings.h> #include <strings.h>
#include "gauss.h" #include "gauss.h"
#include "lte/channel/ch_awgn.h" #include "liblte/phy/channel/ch_awgn.h"
void ch_awgn_c(const cf_t* x, cf_t* y, float variance, int buff_sz) { void ch_awgn_c(const cf_t* x, cf_t* y, float variance, int buff_sz) {
_Complex float tmp; _Complex float tmp;

@ -29,11 +29,11 @@
#include <strings.h> #include <strings.h>
#include <stdlib.h> #include <stdlib.h>
#include "lte/common/base.h" #include "liblte/phy/common/base.h"
#include "lte/utils/dft.h" #include "liblte/phy/utils/dft.h"
#include "lte/common/fft.h" #include "liblte/phy/common/fft.h"
#include "lte/utils/debug.h" #include "liblte/phy/utils/debug.h"
#include "lte/utils/vector.h" #include "liblte/phy/utils/vector.h"
int lte_fft_init_(lte_fft_t *q, lte_cp_t cp_type, int nof_prb, dft_dir_t dir) { int lte_fft_init_(lte_fft_t *q, lte_cp_t cp_type, int nof_prb, dft_dir_t dir) {
int symbol_sz = lte_symbol_sz(nof_prb); int symbol_sz = lte_symbol_sz(nof_prb);

@ -32,7 +32,7 @@
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
#include "lte/common/base.h" #include "liblte/phy/common/base.h"
const int tc_cb_sizes[NOF_TC_CB_SIZES] = { 40, 48, 56, 64, 72, 80, 88, 96, 104, 112, 120, const int tc_cb_sizes[NOF_TC_CB_SIZES] = { 40, 48, 56, 64, 72, 80, 88, 96, 104, 112, 120,
128, 136, 144, 152, 160, 168, 176, 184, 192, 200, 208, 216, 224, 232, 128, 136, 144, 152, 160, 168, 176, 184, 192, 200, 208, 216, 224, 232,

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save