mirror of https://github.com/PentHertz/srsLTE.git
Merge with master
This commit is contained in:
commit
90634182ce
|
@ -32,7 +32,7 @@ endif(${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR})
|
|||
# Project setup
|
||||
########################################################################
|
||||
CMAKE_MINIMUM_REQUIRED (VERSION 2.6)
|
||||
PROJECT (LIBLTE)
|
||||
PROJECT (SRSLTE)
|
||||
|
||||
LIST(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake/modules")
|
||||
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
Copyright (C) 2013-2014 Ismael Gomez Miguelez, <gomezi@tcd.ie>. All rights reserved.
|
||||
Copyright (C) 2013-2015 Ismael Gomez Miguelez <gomezi@tcd.ie>,
|
||||
Paul Sutton <paul@softwareradiosystems.com>. All rights reserved.
|
||||
|
||||
The following copyright notices are for libraries used within libLTE:
|
||||
|
||||
|
@ -539,4 +540,4 @@ necessary. Here is a sample; alter the names:
|
|||
<signature of Ty Coon>, 1 April 1990
|
||||
Ty Coon, President of Vice
|
||||
|
||||
That's all there is to it!
|
||||
That's all there is to it!
|
||||
|
|
|
@ -4,10 +4,10 @@
|
|||
## # The following are required to uses Dart and the Cdash dashboard
|
||||
## ENABLE_TESTING()
|
||||
## INCLUDE(CTest)
|
||||
set(CTEST_PROJECT_NAME "libLTE")
|
||||
set(CTEST_PROJECT_NAME "srsLTE")
|
||||
set(CTEST_NIGHTLY_START_TIME "00:00:00 GMT")
|
||||
|
||||
set(CTEST_DROP_METHOD "http")
|
||||
set(CTEST_DROP_SITE "my.cdash.org")
|
||||
set(CTEST_DROP_LOCATION "/submit.php?project=libLTE")
|
||||
set(CTEST_DROP_LOCATION "/submit.php?project=srsLTE")
|
||||
set(CTEST_DROP_SITE_CDASH TRUE)
|
||||
|
|
|
@ -30,7 +30,7 @@ Download & Install Instructions
|
|||
* Mandatory dependencies:
|
||||
* libfftw
|
||||
* Optional requirements:
|
||||
* libsdrgui: for real-time plotting. Download it here: https://github.com/suttonpd/libsdrgui
|
||||
* srsgui: for real-time plotting. Download it here: https://github.com/srslte/srsgui
|
||||
* VOLK: if the VOLK library and headers are detected, they will be used for accelerating some signal processing functions.
|
||||
* Matlab/Octave: if found by CMake, MEX files will also be generated and installed. If you find any compilation issue with MEX and you don't need them, pass -DDisableMex=ON to cmake to disable them.
|
||||
|
||||
|
|
|
@ -1,40 +0,0 @@
|
|||
# - Try to find LIBSDRGUI
|
||||
# Once done this will define
|
||||
# LIBSDRGUI_FOUND - System has libsdrgui
|
||||
# LIBSDRGUI_INCLUDE_DIRS - The libsdrgui include directories
|
||||
# LIBSDRGUI_LIBRARIES - The libsdrgui library
|
||||
|
||||
find_package(PkgConfig)
|
||||
pkg_check_modules(PC_LIBSDRGUI QUIET libsdrgui)
|
||||
set(LIBSDRGUI_DEFINITIONS ${PC_LIBSDRGUI_CFLAGS_OTHER})
|
||||
|
||||
FIND_PATH(
|
||||
LIBSDRGUI_INCLUDE_DIRS
|
||||
NAMES libsdrgui/libsdrgui.h
|
||||
HINTS ${PC_LIBSDRGUI_INCLUDEDIR}
|
||||
${PC_LIBSDRGUI_INCLUDE_DIRS}
|
||||
$ENV{LIBSDRGUI_DIR}/include
|
||||
PATHS /usr/local/include
|
||||
/usr/include
|
||||
)
|
||||
|
||||
FIND_LIBRARY(
|
||||
LIBSDRGUI_LIBRARIES
|
||||
NAMES sdrgui
|
||||
HINTS ${PC_LIBSDRGUI_LIBDIR}
|
||||
${CMAKE_INSTALL_PREFIX}/lib
|
||||
${CMAKE_INSTALL_PREFIX}/lib64
|
||||
$ENV{LIBSDRGUI_DIR}/lib
|
||||
PATHS /usr/local/lib
|
||||
/usr/local/lib64
|
||||
/usr/lib
|
||||
/usr/lib64
|
||||
)
|
||||
|
||||
message(STATUS "LIBSDRGUI LIBRARIES " ${LIBSDRGUI_LIBRARIES})
|
||||
message(STATUS "LIBSDRGUI INCLUDE DIRS " ${LIBSDRGUI_INCLUDE_DIRS})
|
||||
|
||||
INCLUDE(FindPackageHandleStandardArgs)
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(LIBSDRGUI DEFAULT_MSG LIBSDRGUI_LIBRARIES LIBSDRGUI_INCLUDE_DIRS)
|
||||
MARK_AS_ADVANCED(LIBSDRGUI_LIBRARIES LIBSDRGUI_INCLUDE_DIRS)
|
||||
|
|
@ -24,7 +24,7 @@
|
|||
# The original file was copied from an Ubuntu Linux install
|
||||
# /usr/share/cmake-2.8/Modules/FindMatlab.cmake
|
||||
|
||||
set(MATLAB_FOUND 0)
|
||||
set(MATLAB_FOUND FALSE)
|
||||
if(WIN32)
|
||||
# Search for a version of Matlab available, starting from the most modern one to older versions
|
||||
foreach(MATVER "7.14" "7.11" "7.10" "7.9" "7.8" "7.7" "7.6" "7.5" "7.4")
|
||||
|
@ -128,25 +128,25 @@ else()
|
|||
# Get path to the MEX libraries
|
||||
execute_process(
|
||||
#COMMAND find "${MATLAB_ROOT}/extern/lib" -name libmex${LIBRARY_EXTENSION} # Peter
|
||||
COMMAND find "${MATLAB_ROOT}/bin" -name libmex${LIBRARY_EXTENSION} # standard
|
||||
COMMAND find "${MATLAB_ROOT}/bin" -name libmex${LIBRARY_EXTENSION} # standard
|
||||
COMMAND xargs echo -n
|
||||
OUTPUT_VARIABLE MATLAB_MEX_LIBRARY
|
||||
)
|
||||
execute_process(
|
||||
#COMMAND find "${MATLAB_ROOT}/extern/lib" -name libmx${LIBRARY_EXTENSION} # Peter
|
||||
COMMAND find "${MATLAB_ROOT}/bin" -name libmx${LIBRARY_EXTENSION} # Standard
|
||||
COMMAND find "${MATLAB_ROOT}/bin" -name libmx${LIBRARY_EXTENSION} # Standard
|
||||
COMMAND xargs echo -n
|
||||
OUTPUT_VARIABLE MATLAB_MX_LIBRARY
|
||||
)
|
||||
execute_process(
|
||||
#COMMAND find "${MATLAB_ROOT}/extern/lib" -name libmat${LIBRARY_EXTENSION} # Peter
|
||||
COMMAND find "${MATLAB_ROOT}/bin" -name libmat${LIBRARY_EXTENSION} # Standard
|
||||
COMMAND find "${MATLAB_ROOT}/bin" -name libmat${LIBRARY_EXTENSION} # Standard
|
||||
COMMAND xargs echo -n
|
||||
OUTPUT_VARIABLE MATLAB_MAT_LIBRARY
|
||||
)
|
||||
execute_process(
|
||||
#COMMAND find "${MATLAB_ROOT}/extern/lib" -name libeng${LIBRARY_EXTENSION} # Peter
|
||||
COMMAND find "${MATLAB_ROOT}/bin" -name libeng${LIBRARY_EXTENSION} # Standard
|
||||
COMMAND find "${MATLAB_ROOT}/bin" -name libeng${LIBRARY_EXTENSION} # Standard
|
||||
COMMAND xargs echo -n
|
||||
OUTPUT_VARIABLE MATLAB_ENG_LIBRARY
|
||||
)
|
||||
|
@ -185,7 +185,7 @@ set(MATLAB_LIBRARIES
|
|||
)
|
||||
|
||||
if(MATLAB_INCLUDE_DIR AND MATLAB_LIBRARIES)
|
||||
set(MATLAB_FOUND 1)
|
||||
set(MATLAB_FOUND TRUE)
|
||||
endif()
|
||||
|
||||
# 32-bit or 64-bit mex
|
||||
|
|
|
@ -0,0 +1,42 @@
|
|||
# - Try to find SRSGUI
|
||||
# Once done this will define
|
||||
# SRSGUI_FOUND - System has srsgui
|
||||
# SRSGUI_INCLUDE_DIRS - The srsgui include directories
|
||||
# SRSGUI_LIBRARIES - The srsgui library
|
||||
|
||||
find_package(PkgConfig)
|
||||
pkg_check_modules(PC_SRSGUI QUIET srsgui)
|
||||
IF(NOT SRSGUI_FOUND)
|
||||
|
||||
FIND_PATH(
|
||||
SRSGUI_INCLUDE_DIRS
|
||||
NAMES srsgui/srsgui.h
|
||||
HINTS ${PC_SRSGUI_INCLUDEDIR}
|
||||
${PC_SRSGUI_INCLUDE_DIRS}
|
||||
$ENV{SRSGUI_DIR}/include
|
||||
PATHS /usr/local/include
|
||||
/usr/include
|
||||
)
|
||||
|
||||
FIND_LIBRARY(
|
||||
SRSGUI_LIBRARIES
|
||||
NAMES srsgui
|
||||
HINTS ${PC_SRSGUI_LIBDIR}
|
||||
${CMAKE_INSTALL_PREFIX}/lib
|
||||
${CMAKE_INSTALL_PREFIX}/lib64
|
||||
$ENV{SRSGUI_DIR}/lib
|
||||
PATHS /usr/local/lib
|
||||
/usr/local/lib64
|
||||
/usr/lib
|
||||
/usr/lib64
|
||||
)
|
||||
|
||||
message(STATUS "SRSGUI LIBRARIES " ${SRSGUI_LIBRARIES})
|
||||
message(STATUS "SRSGUI INCLUDE DIRS " ${SRSGUI_INCLUDE_DIRS})
|
||||
|
||||
INCLUDE(FindPackageHandleStandardArgs)
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(SRSGUI DEFAULT_MSG SRSGUI_LIBRARIES SRSGUI_INCLUDE_DIRS)
|
||||
MARK_AS_ADVANCED(SRSGUI_LIBRARIES SRSGUI_INCLUDE_DIRS)
|
||||
|
||||
ENDIF(NOT SRSGUI_FOUND)
|
||||
|
|
@ -37,27 +37,28 @@ if(NOT MATLAB_MEX_PATH)
|
|||
)
|
||||
endif()
|
||||
|
||||
IF (MATLAB_FOUND)
|
||||
if(MATLAB_FOUND)
|
||||
message(STATUS "Found MATLAB in ${MATLAB_ROOT}")
|
||||
ENDIF(MATLAB_FOUND)
|
||||
IF (OCTAVE_FOUND)
|
||||
add_library(srslte_mex SHARED mexutils.c)
|
||||
install(TARGETS srslte_mex DESTINATION ${LIBRARY_DIR})
|
||||
liblte_set_pic(srslte_mex)
|
||||
include_directories(${MATLAB_INCLUDE_DIR})
|
||||
endif(MATLAB_FOUND)
|
||||
|
||||
if(OCTAVE_FOUND)
|
||||
message(STATUS "Found OCTAVE in ${OCTAVE_INCLUDE_PATHS}")
|
||||
ENDIF(OCTAVE_FOUND)
|
||||
|
||||
|
||||
IF (MATLAB_FOUND OR OCTAVE_FOUND)
|
||||
ADD_LIBRARY(srslte_mex SHARED mexutils.c)
|
||||
INSTALL(TARGETS srslte_mex DESTINATION ${LIBRARY_DIR})
|
||||
LIBLTE_SET_PIC(srslte_mex)
|
||||
if (MATLAB_FOUND)
|
||||
include_directories(${MATLAB_INCLUDE_DIR})
|
||||
endif(MATLAB_FOUND)
|
||||
if (OCTAVE_FOUND)
|
||||
include_directories(${OCTAVE_INCLUDE_DIR})
|
||||
endif (OCTAVE_FOUND)
|
||||
|
||||
ELSEIF (MATLAB_FOUND OR OCTAVE_FOUND)
|
||||
message(STATUS "Could NOT find OCTAVE or MATLAB. MEX files won't be compiled")
|
||||
ENDIF(MATLAB_FOUND OR OCTAVE_FOUND)
|
||||
if (NOT MATLAB_FOUND)
|
||||
add_library(srslte_mex SHARED mexutils.c)
|
||||
install(TARGETS srslte_mex DESTINATION ${LIBRARY_DIR})
|
||||
liblte_set_pic(srslte_mex)
|
||||
endif (NOT MATLAB_FOUND)
|
||||
include_directories(${OCTAVE_INCLUDE_DIR})
|
||||
endif(OCTAVE_FOUND)
|
||||
|
||||
if(NOT MATLAB_FOUND)
|
||||
if(NOT OCTAVE_FOUND)
|
||||
message(STATUS "Could NOT find OCTAVE or MATLAB. MEX files won't be compiled")
|
||||
endif(NOT OCTAVE_FOUND)
|
||||
endif(NOT MATLAB_FOUND)
|
||||
|
||||
|
||||
|
|
|
@ -44,7 +44,7 @@ LINK_DIRECTORIES(${UHD_LIBRARY_DIRS})
|
|||
|
||||
|
||||
#################################################################
|
||||
# These two can be compiled without UHD or graphics support
|
||||
# These can be compiled without UHD or graphics support
|
||||
#################################################################
|
||||
|
||||
add_executable(pdsch_ue pdsch_ue.c cuhd_utils.c)
|
||||
|
@ -62,13 +62,13 @@ ELSE(${CUHD_FIND} EQUAL -1)
|
|||
target_link_libraries(pdsch_enodeb cuhd)
|
||||
ENDIF(${CUHD_FIND} EQUAL -1)
|
||||
|
||||
FIND_PACKAGE(LIBSDRGUI)
|
||||
IF(LIBSDRGUI_FOUND)
|
||||
include_directories(${LIBSDRGUI_INCLUDE_DIRS})
|
||||
target_link_libraries(pdsch_ue ${LIBSDRGUI_LIBRARIES})
|
||||
ELSE(LIBSDRGUI_FOUND)
|
||||
FIND_PACKAGE(SRSGUI)
|
||||
IF(SRSGUI_FOUND)
|
||||
include_directories(${SRSGUI_INCLUDE_DIRS})
|
||||
target_link_libraries(pdsch_ue ${SRSGUI_LIBRARIES})
|
||||
ELSE(SRSGUI_FOUND)
|
||||
SET_TARGET_PROPERTIES(pdsch_ue PROPERTIES COMPILE_DEFINITIONS "DISABLE_GRAPHICS")
|
||||
ENDIF(LIBSDRGUI_FOUND)
|
||||
ENDIF(SRSGUI_FOUND)
|
||||
|
||||
|
||||
#################################################################
|
||||
|
@ -86,6 +86,9 @@ IF(${CUHD_FIND} GREATER -1)
|
|||
add_executable(cell_measurement cell_measurement.c cuhd_utils.c)
|
||||
target_link_libraries(cell_measurement cuhd srslte)
|
||||
|
||||
add_executable(usrp_capture usrp_capture.c cuhd_utils.c)
|
||||
target_link_libraries(usrp_capture cuhd srslte)
|
||||
|
||||
MESSAGE(STATUS " UHD examples will be installed.")
|
||||
|
||||
ELSE(${CUHD_FIND} GREATER -1)
|
||||
|
|
|
@ -56,7 +56,7 @@ cell_search_cfg_t cell_detect_config = {
|
|||
//#define STDOUT_COMPACT
|
||||
|
||||
#ifndef DISABLE_GRAPHICS
|
||||
#include "libsdrgui/libsdrgui.h"
|
||||
#include "srsgui/srsgui.h"
|
||||
void init_plots();
|
||||
pthread_t plot_thread;
|
||||
sem_t plot_sem;
|
||||
|
|
|
@ -0,0 +1,150 @@
|
|||
/**
|
||||
*
|
||||
* \section COPYRIGHT
|
||||
*
|
||||
* Copyright 2013-2014 The srsLTE Developers. See the
|
||||
* COPYRIGHT file at the top-level directory of this distribution.
|
||||
*
|
||||
* \section LICENSE
|
||||
*
|
||||
* This file is part of the srsLTE library.
|
||||
*
|
||||
* srsLTE 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.
|
||||
*
|
||||
* srsLTE 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 <stdio.h>
|
||||
#include <signal.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <strings.h>
|
||||
#include <unistd.h>
|
||||
#include <math.h>
|
||||
#include <time.h>
|
||||
|
||||
#include <stdbool.h>
|
||||
|
||||
#include "srslte/srslte.h"
|
||||
#include "srslte/cuhd/cuhd.h"
|
||||
#include "srslte/io/filesink.h"
|
||||
|
||||
static bool keep_running = true;
|
||||
char *output_file_name;
|
||||
char *uhd_args="";
|
||||
float uhd_gain=40.0, uhd_freq=-1.0, uhd_rate=0.96;
|
||||
int nof_samples = -1;
|
||||
|
||||
void int_handler(int dummy) {
|
||||
keep_running = false;
|
||||
}
|
||||
|
||||
void usage(char *prog) {
|
||||
printf("Usage: %s [agrnv] -f rx_frequency_hz -o output_file\n", prog);
|
||||
printf("\t-a UHD args [Default %s]\n", uhd_args);
|
||||
printf("\t-g UHD Gain [Default %.2f dB]\n", uhd_gain);
|
||||
printf("\t-r UHD Rate [Default %.6f MHz]\n", uhd_rate);
|
||||
printf("\t-n nof_samples [Default %d]\n", nof_samples);
|
||||
printf("\t-v srslte_verbose\n");
|
||||
}
|
||||
|
||||
void parse_args(int argc, char **argv) {
|
||||
int opt;
|
||||
while ((opt = getopt(argc, argv, "agrnvfo")) != -1) {
|
||||
switch (opt) {
|
||||
case 'o':
|
||||
output_file_name = argv[optind];
|
||||
break;
|
||||
case 'a':
|
||||
uhd_args = argv[optind];
|
||||
break;
|
||||
case 'g':
|
||||
uhd_gain = atof(argv[optind]);
|
||||
break;
|
||||
case 'r':
|
||||
uhd_rate = atof(argv[optind]);
|
||||
break;
|
||||
case 'f':
|
||||
uhd_freq = atof(argv[optind]);
|
||||
break;
|
||||
case 'n':
|
||||
nof_samples = atoi(argv[optind]);
|
||||
break;
|
||||
case 'v':
|
||||
srslte_verbose++;
|
||||
break;
|
||||
default:
|
||||
usage(argv[0]);
|
||||
exit(-1);
|
||||
}
|
||||
}
|
||||
if (uhd_freq < 0) {
|
||||
usage(argv[0]);
|
||||
exit(-1);
|
||||
}
|
||||
}
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
cf_t *buffer;
|
||||
int sample_count, n;
|
||||
void *uhd;
|
||||
srslte_filesink_t sink;
|
||||
int32_t buflen;
|
||||
|
||||
signal(SIGINT, int_handler);
|
||||
|
||||
parse_args(argc, argv);
|
||||
|
||||
buflen = 4800;
|
||||
sample_count = 0;
|
||||
|
||||
buffer = malloc(sizeof(cf_t) * buflen);
|
||||
if (!buffer) {
|
||||
perror("malloc");
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
srslte_filesink_init(&sink, output_file_name, SRSLTE_COMPLEX_FLOAT_BIN);
|
||||
|
||||
printf("Opening UHD device...\n");
|
||||
if (cuhd_open(uhd_args, &uhd)) {
|
||||
fprintf(stderr, "Error opening uhd\n");
|
||||
exit(-1);
|
||||
}
|
||||
printf("Set RX freq: %.6f MHz\n", cuhd_set_rx_freq(uhd, uhd_freq) / 1000000);
|
||||
printf("Set RX gain: %.1f dB\n", cuhd_set_rx_gain(uhd, uhd_gain));
|
||||
printf("Set RX rate: %.6f MHz\n", cuhd_set_rx_srate(uhd, uhd_rate*1e6) / 1000000);
|
||||
cuhd_rx_wait_lo_locked(uhd);
|
||||
cuhd_start_rx_stream(uhd);
|
||||
|
||||
|
||||
while((sample_count < nof_samples || nof_samples == -1)
|
||||
&& keep_running){
|
||||
n = cuhd_recv(uhd, buffer, buflen, 1);
|
||||
if (n < 0) {
|
||||
fprintf(stderr, "Error receiving samples\n");
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
srslte_filesink_write(&sink, buffer, buflen);
|
||||
sample_count += buflen;
|
||||
}
|
||||
|
||||
srslte_filesink_free(&sink);
|
||||
free(buffer);
|
||||
cuhd_close(uhd);
|
||||
|
||||
printf("Ok - wrote %d samples\n", sample_count);
|
||||
exit(0);
|
||||
}
|
|
@ -25,7 +25,14 @@
|
|||
*
|
||||
*/
|
||||
|
||||
|
||||
/**********************************************************************************************
|
||||
* File: agc.h
|
||||
*
|
||||
* Description: Automatic gain control
|
||||
* This module is not currently used
|
||||
*
|
||||
* Reference:
|
||||
*********************************************************************************************/
|
||||
|
||||
#ifndef AGC_
|
||||
#define AGC_
|
||||
|
@ -36,10 +43,6 @@
|
|||
|
||||
#include "srslte/config.h"
|
||||
|
||||
/* Automatic Gain Control
|
||||
*
|
||||
*/
|
||||
|
||||
#define SRSLTE_AGC_DEFAULT_BW (5e-2)
|
||||
|
||||
typedef struct SRSLTE_API{
|
||||
|
|
|
@ -25,7 +25,19 @@
|
|||
*
|
||||
*/
|
||||
|
||||
|
||||
/**********************************************************************************************
|
||||
* File: chest_dl.h
|
||||
*
|
||||
* Description: 3GPP LTE Downlink channel estimator and equalizer.
|
||||
* Estimates the channel in the resource elements transmitting references and
|
||||
* interpolates for the rest of the resource grid.
|
||||
* The equalizer uses the channel estimates to produce an estimation of the
|
||||
* transmitted symbol.
|
||||
* This object depends on the srslte_refsignal_t object for creating the LTE
|
||||
* CSR signal.
|
||||
*
|
||||
* Reference:
|
||||
*********************************************************************************************/
|
||||
|
||||
#ifndef CHEST_DL_
|
||||
#define CHEST_DL_
|
||||
|
@ -38,15 +50,6 @@
|
|||
#include "srslte/ch_estimation/refsignal_dl.h"
|
||||
#include "srslte/common/phy_common.h"
|
||||
|
||||
/** 3GPP LTE Downlink channel estimator and equalizer.
|
||||
* Estimates the channel in the resource elements transmitting references and interpolates for the rest
|
||||
* of the resource grid.
|
||||
*
|
||||
* The equalizer uses the channel estimates to produce an estimation of the transmitted symbol.
|
||||
*
|
||||
* This object depends on the srslte_refsignal_t object for creating the LTE CSR signal.
|
||||
*/
|
||||
|
||||
#define SRSLTE_CHEST_MAX_FILTER_FREQ_LEN 10
|
||||
#define SRSLTE_CHEST_MAX_FILTER_TIME_LEN 4
|
||||
|
||||
|
@ -110,4 +113,4 @@ SRSLTE_API float srslte_chest_dl_get_rsrq(srslte_chest_dl_t *q);
|
|||
|
||||
SRSLTE_API float srslte_chest_dl_get_rsrp(srslte_chest_dl_t *q);
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
|
|
@ -25,13 +25,17 @@
|
|||
*
|
||||
*/
|
||||
|
||||
/**********************************************************************************************
|
||||
* File: refsignal_dl.h
|
||||
*
|
||||
* Description: Object to manage downlink reference signals for channel estimation.
|
||||
*
|
||||
* Reference: 3GPP TS 36.211 version 10.0.0 Release 10 Sec. 6.10
|
||||
*********************************************************************************************/
|
||||
|
||||
#ifndef SRSLTE_REFSIGNAL_DL_
|
||||
#define SRSLTE_REFSIGNAL_DL_
|
||||
|
||||
/* Object to manage Downlink reference signals for channel estimation.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "srslte/config.h"
|
||||
#include "srslte/common/phy_common.h"
|
||||
|
||||
|
|
|
@ -25,13 +25,17 @@
|
|||
*
|
||||
*/
|
||||
|
||||
/**********************************************************************************************
|
||||
* File: refsignal_ul.h
|
||||
*
|
||||
* Description: Object to manage uplink reference signals for channel estimation.
|
||||
*
|
||||
* Reference: 3GPP TS 36.211 version 10.0.0 Release 10 Sec. 5.5
|
||||
*********************************************************************************************/
|
||||
|
||||
#ifndef SRSLTE_REFSIGNAL_UL_
|
||||
#define SRSLTE_REFSIGNAL_UL_
|
||||
|
||||
/* Object to manage Downlink reference signals for channel estimation.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "srslte/config.h"
|
||||
#include "srslte/phch/pucch.h"
|
||||
#include "srslte/common/phy_common.h"
|
||||
|
|
|
@ -25,6 +25,13 @@
|
|||
*
|
||||
*/
|
||||
|
||||
/**********************************************************************************************
|
||||
* File: ch_awgn.h
|
||||
*
|
||||
* Description: Additive white gaussian noise channel object
|
||||
*
|
||||
* Reference:
|
||||
*********************************************************************************************/
|
||||
|
||||
#include <complex.h>
|
||||
#include <stdint.h>
|
||||
|
|
|
@ -25,6 +25,13 @@
|
|||
*
|
||||
*/
|
||||
|
||||
/**********************************************************************************************
|
||||
* File: phy_common.h
|
||||
*
|
||||
* Description: Common parameters and lookup functions for PHY
|
||||
*
|
||||
* Reference: 3GPP TS 36.211 version 10.0.0 Release 10
|
||||
*********************************************************************************************/
|
||||
|
||||
#ifndef _LTEBASE_
|
||||
#define _LTEBASE_
|
||||
|
|
|
@ -25,6 +25,15 @@
|
|||
*
|
||||
*/
|
||||
|
||||
/**********************************************************************************************
|
||||
* File: sequence.h
|
||||
*
|
||||
* Description: Pseudo Random Sequence generation. Sequences are defined by a length-31 Gold
|
||||
* sequence.
|
||||
*
|
||||
* Reference: 3GPP TS 36.211 version 10.0.0 Release 10 Sec. 7.2
|
||||
*********************************************************************************************/
|
||||
|
||||
#ifndef LTESEQ_
|
||||
#define LTESEQ_
|
||||
|
||||
|
|
|
@ -25,6 +25,15 @@
|
|||
*
|
||||
*/
|
||||
|
||||
/**********************************************************************************************
|
||||
* File: timestamp.h
|
||||
*
|
||||
* Description: A simple timestamp struct with separate variables for full and frac seconds.
|
||||
* Separate variables are used to avoid loss of precision in our frac seconds.
|
||||
* Only positive timestamps are supported.
|
||||
*
|
||||
* Reference:
|
||||
*********************************************************************************************/
|
||||
|
||||
#ifndef TIMESTAMP_
|
||||
#define TIMESTAMP_
|
||||
|
@ -32,13 +41,6 @@
|
|||
#include <time.h>
|
||||
#include "srslte/config.h"
|
||||
|
||||
/*!
|
||||
* A simple timestamp struct with separate variables for full and frac seconds.
|
||||
*
|
||||
* Separate variables are used to avoid loss of precision in our frac seconds.
|
||||
* Only positive timestamps are supported.
|
||||
*/
|
||||
|
||||
typedef struct SRSLTE_API{
|
||||
time_t full_secs;
|
||||
double frac_secs;
|
||||
|
|
|
@ -32,18 +32,23 @@
|
|||
#include <stdbool.h>
|
||||
#include "srslte/config.h"
|
||||
|
||||
|
||||
/* Generic DFT module.
|
||||
* Supports one-dimensional complex and real transforms. Options are set
|
||||
* using the dft_plan_set_x functions.
|
||||
/**********************************************************************************************
|
||||
* File: dft.h
|
||||
*
|
||||
* Options (default is false):
|
||||
* mirror - Rearranges negative and positive frequency bins. Swaps after
|
||||
* transform for FORWARD, swaps before transform for BACKWARD.
|
||||
* db - Provides output in dB (10*log10(x)).
|
||||
* norm - Normalizes output (by sqrt(len) for complex, len for real).
|
||||
* dc - Handles insertion and removal of null DC carrier internally.
|
||||
*/
|
||||
* Description: Generic DFT module.
|
||||
* Supports one-dimensional complex and real transforms. Options are set
|
||||
* using the dft_plan_set_x functions.
|
||||
*
|
||||
* Options (default is false):
|
||||
*
|
||||
* mirror - Rearranges negative and positive frequency bins. Swaps after
|
||||
* transform for FORWARD, swaps before transform for BACKWARD.
|
||||
* db - Provides output in dB (10*log10(x)).
|
||||
* norm - Normalizes output (by sqrt(len) for complex, len for real).
|
||||
* dc - Handles insertion and removal of null DC carrier internally.
|
||||
*
|
||||
* Reference:
|
||||
*********************************************************************************************/
|
||||
|
||||
typedef enum {
|
||||
SRSLTE_DFT_COMPLEX, SRSLTE_REAL
|
||||
|
|
|
@ -25,6 +25,14 @@
|
|||
*
|
||||
*/
|
||||
|
||||
/**********************************************************************************************
|
||||
* File: dft_precoding.h
|
||||
*
|
||||
* Description: DFT-based transform precoding object.
|
||||
* Used in generation of uplink SCFDMA signals.
|
||||
*
|
||||
* Reference: 3GPP TS 36.211 version 10.0.0 Release 10 Sec. 5.3.3
|
||||
*********************************************************************************************/
|
||||
|
||||
#ifndef DFTPREC_
|
||||
#define DFTPREC_
|
||||
|
|
|
@ -29,6 +29,14 @@
|
|||
#ifndef LTEFFT_
|
||||
#define LTEFFT_
|
||||
|
||||
/**********************************************************************************************
|
||||
* File: ofdm.h
|
||||
*
|
||||
* Description: OFDM modulation object.
|
||||
* Used in generation of downlink OFDM signals.
|
||||
*
|
||||
* Reference: 3GPP TS 36.211 version 10.0.0 Release 10 Sec. 6
|
||||
*********************************************************************************************/
|
||||
|
||||
#include <strings.h>
|
||||
#include <stdlib.h>
|
||||
|
|
|
@ -25,7 +25,15 @@
|
|||
*
|
||||
*/
|
||||
|
||||
|
||||
/**********************************************************************************************
|
||||
* File: convcoder.h
|
||||
*
|
||||
* Description: Convolutional encoder.
|
||||
* LTE uses a tail biting convolutional code with constraint length 7
|
||||
* and coding rate 1/3.
|
||||
*
|
||||
* Reference: 3GPP TS 36.212 version 10.0.0 Release 10 Sec. 5.1.3.1
|
||||
*********************************************************************************************/
|
||||
|
||||
#ifndef CONVCODER_
|
||||
#define CONVCODER_
|
||||
|
|
|
@ -25,6 +25,15 @@
|
|||
*
|
||||
*/
|
||||
|
||||
/**********************************************************************************************
|
||||
* File: convcoder.h
|
||||
*
|
||||
* Description: Cyclic Redundancy Check
|
||||
* LTE requires CRC lengths 8, 16, 24A and 24B, each with it's own generator
|
||||
* polynomial.
|
||||
*
|
||||
* Reference: 3GPP TS 36.212 version 10.0.0 Release 10 Sec. 5.1.1
|
||||
*********************************************************************************************/
|
||||
|
||||
#ifndef CRC_
|
||||
#define CRC_
|
||||
|
|
|
@ -25,6 +25,15 @@
|
|||
*
|
||||
*/
|
||||
|
||||
/**********************************************************************************************
|
||||
* File: rm_conv.h
|
||||
*
|
||||
* Description: Rate matching for convolutionally coded transport channels and control
|
||||
* information.
|
||||
*
|
||||
* Reference: 3GPP TS 36.212 version 10.0.0 Release 10 Sec. 5.1.4.2
|
||||
*********************************************************************************************/
|
||||
|
||||
#ifndef RM_CONV_
|
||||
#define RM_CONV_
|
||||
|
||||
|
|
|
@ -25,6 +25,14 @@
|
|||
*
|
||||
*/
|
||||
|
||||
/**********************************************************************************************
|
||||
* File: rm_turbo.h
|
||||
*
|
||||
* Description: Rate matching for turbo coded transport channels.
|
||||
*
|
||||
* Reference: 3GPP TS 36.212 version 10.0.0 Release 10 Sec. 5.1.4.1
|
||||
*********************************************************************************************/
|
||||
|
||||
#ifndef RM_TURBO_
|
||||
#define RM_TURBO_
|
||||
|
||||
|
|
|
@ -25,6 +25,14 @@
|
|||
*
|
||||
*/
|
||||
|
||||
/**********************************************************************************************
|
||||
* File: tc_interl.h
|
||||
*
|
||||
* Description: Turbo code interleaver.
|
||||
*
|
||||
* Reference: 3GPP TS 36.212 version 10.0.0 Release 10 Sec. 5.1.3.2.3
|
||||
*********************************************************************************************/
|
||||
|
||||
#ifndef _TC_INTERL_H
|
||||
#define _TC_INTERL_H
|
||||
|
||||
|
|
|
@ -25,6 +25,17 @@
|
|||
*
|
||||
*/
|
||||
|
||||
/**********************************************************************************************
|
||||
* File: turbocoder.h
|
||||
*
|
||||
* Description: Turbo coder.
|
||||
* Parallel Concatenated Convolutional Code (PCCC) with two 8-state constituent
|
||||
* encoders and one turbo code internal interleaver. The coding rate of turbo
|
||||
* encoder is 1/3.
|
||||
*
|
||||
* Reference: 3GPP TS 36.212 version 10.0.0 Release 10 Sec. 5.1.3.2
|
||||
*********************************************************************************************/
|
||||
|
||||
#ifndef TURBOCODER_
|
||||
#define TURBOCODER_
|
||||
|
||||
|
|
|
@ -25,6 +25,18 @@
|
|||
*
|
||||
*/
|
||||
|
||||
/**********************************************************************************************
|
||||
* File: turbodecoder.h
|
||||
*
|
||||
* Description: Turbo Decoder.
|
||||
* Parallel Concatenated Convolutional Code (PCCC) with two 8-state constituent
|
||||
* encoders and one turbo code internal interleaver. The coding rate of turbo
|
||||
* encoder is 1/3.
|
||||
* MAP_GEN is the MAX-LOG-MAP generic implementation of the decoder.
|
||||
*
|
||||
* Reference: 3GPP TS 36.212 version 10.0.0 Release 10 Sec. 5.1.3.2
|
||||
*********************************************************************************************/
|
||||
|
||||
#ifndef TURBODECODER_
|
||||
#define TURBODECODER_
|
||||
|
||||
|
|
|
@ -25,6 +25,14 @@
|
|||
*
|
||||
*/
|
||||
|
||||
/******************************************************************************
|
||||
* File: viterbi.h
|
||||
*
|
||||
* Description: Viterbi decoder for convolutionally encoded data.
|
||||
* Used for decoding of PBCH and PDCCH (type 37 decoder).
|
||||
*
|
||||
* Reference:
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef VITERBI_
|
||||
#define VITERBI_
|
||||
|
|
|
@ -25,6 +25,13 @@
|
|||
*
|
||||
*/
|
||||
|
||||
/******************************************************************************
|
||||
* File: binsource.h
|
||||
*
|
||||
* Description: Pseudo-random binary source.
|
||||
*
|
||||
* Reference:
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef BINSOURCE_
|
||||
#define BINSOURCE_
|
||||
|
|
|
@ -25,6 +25,15 @@
|
|||
*
|
||||
*/
|
||||
|
||||
/******************************************************************************
|
||||
* File: filesink.h
|
||||
*
|
||||
* Description: File sink.
|
||||
* Supports writing floats, complex floats and complex shorts
|
||||
* to file in text or binary formats.
|
||||
*
|
||||
* Reference:
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef FILESINK_
|
||||
#define FILESINK_
|
||||
|
|
|
@ -25,6 +25,15 @@
|
|||
*
|
||||
*/
|
||||
|
||||
/******************************************************************************
|
||||
* File: filesource.h
|
||||
*
|
||||
* Description: File source.
|
||||
* Supports reading floats, complex floats and complex shorts
|
||||
* from file in text or binary formats.
|
||||
*
|
||||
* Reference:
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef FILESOURCE_
|
||||
#define FILESOURCE_
|
||||
|
|
|
@ -25,6 +25,14 @@
|
|||
*
|
||||
*/
|
||||
|
||||
/******************************************************************************
|
||||
* File: netsink.h
|
||||
*
|
||||
* Description: Network socket sink.
|
||||
* Supports writing binary data to a TCP or UDP socket.
|
||||
*
|
||||
* Reference:
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef NETSINK_
|
||||
#define NETSINK_
|
||||
|
|
|
@ -25,6 +25,14 @@
|
|||
*
|
||||
*/
|
||||
|
||||
/******************************************************************************
|
||||
* File: netsource.h
|
||||
*
|
||||
* Description: Network socket source.
|
||||
* Supports reading binary data from a TCP or UDP socket.
|
||||
*
|
||||
* Reference:
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef NETSOURCE_
|
||||
#define NETSOURCE_
|
||||
|
|
|
@ -25,6 +25,15 @@
|
|||
*
|
||||
*/
|
||||
|
||||
/******************************************************************************
|
||||
* File: layermap.h
|
||||
*
|
||||
* Description: MIMO layer mapping and demapping.
|
||||
* Single antenna, tx diversity and spatial multiplexing are
|
||||
* supported.
|
||||
*
|
||||
* Reference: 3GPP TS 36.211 version 10.0.0 Release 10 Sec. 6.3.3
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef LAYERMAP_H_
|
||||
#define LAYERMAP_H_
|
||||
|
|
|
@ -25,6 +25,15 @@
|
|||
*
|
||||
*/
|
||||
|
||||
/******************************************************************************
|
||||
* File: precoding.h
|
||||
*
|
||||
* Description: MIMO precoding and deprecoding.
|
||||
* Single antenna and tx diversity supported.
|
||||
*
|
||||
* Reference: 3GPP TS 36.211 version 10.0.0 Release 10 Sec. 6.3.4
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef PRECODING_H_
|
||||
#define PRECODING_H_
|
||||
|
||||
|
|
|
@ -25,6 +25,14 @@
|
|||
*
|
||||
*/
|
||||
|
||||
/******************************************************************************
|
||||
* File: demod_hard.h
|
||||
*
|
||||
* Description: Hard demodulator.
|
||||
* Supports BPSK, QPSK, 16QAM and 64QAM.
|
||||
*
|
||||
* Reference: 3GPP TS 36.211 version 10.0.0 Release 10 Sec. 7.1
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef DEMOD_HARD_
|
||||
#define DEMOD_HARD_
|
||||
|
|
|
@ -25,6 +25,14 @@
|
|||
*
|
||||
*/
|
||||
|
||||
/******************************************************************************
|
||||
* File: demod_soft.h
|
||||
*
|
||||
* Description: Soft demodulator.
|
||||
* Supports BPSK, QPSK, 16QAM and 64QAM.
|
||||
*
|
||||
* Reference: 3GPP TS 36.211 version 10.0.0 Release 10 Sec. 7.1
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef DEMOD_SOFT_
|
||||
#define DEMOD_SOFT_
|
||||
|
|
|
@ -25,6 +25,14 @@
|
|||
*
|
||||
*/
|
||||
|
||||
/******************************************************************************
|
||||
* File: mod.h
|
||||
*
|
||||
* Description: Modulation.
|
||||
* Supports BPSK, QPSK, 16QAM and 64QAM.
|
||||
*
|
||||
* Reference: 3GPP TS 36.211 version 10.0.0 Release 10 Sec. 7.1
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef MOD_
|
||||
#define MOD_
|
||||
|
@ -35,7 +43,7 @@
|
|||
#include "srslte/config.h"
|
||||
#include "modem_table.h"
|
||||
|
||||
SRSLTE_API int srslte_mod_modulate(srslte_modem_table_t* table,
|
||||
SRSLTE_API int srslte_mod_modulate(srslte_modem_table_t* table,
|
||||
uint8_t *bits,
|
||||
cf_t* symbols,
|
||||
uint32_t nbits);
|
||||
|
|
|
@ -25,7 +25,14 @@
|
|||
*
|
||||
*/
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
* File: modem_table.h
|
||||
*
|
||||
* Description: Modem tables used for modulation/demodulation.
|
||||
* Supports BPSK, QPSK, 16QAM and 64QAM.
|
||||
*
|
||||
* Reference: 3GPP TS 36.211 version 10.0.0 Release 10 Sec. 7.1
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef MODEM_TABLE_
|
||||
#define MODEM_TABLE_
|
||||
|
|
|
@ -25,6 +25,14 @@
|
|||
*
|
||||
*/
|
||||
|
||||
/******************************************************************************
|
||||
* File: cqi.h
|
||||
*
|
||||
* Description: Channel quality indicator message packing.
|
||||
*
|
||||
* Reference: 3GPP TS 36.212 version 10.0.0 Release 10 Sec. 5.2.2.6, 5.2.3.3
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef CQI_
|
||||
#define CQI_
|
||||
|
||||
|
@ -33,11 +41,6 @@
|
|||
#include "srslte/config.h"
|
||||
#include "srslte/common/phy_common.h"
|
||||
|
||||
/**
|
||||
* CQI message generation according to 36.212 Sections 5.2.2.6 and 5.2.3.3
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
/* Table 5.2.2.6.2-1: Fields for channel quality information feedback for higher layer configured subband
|
||||
CQI reports
|
||||
|
|
|
@ -25,6 +25,14 @@
|
|||
*
|
||||
*/
|
||||
|
||||
/******************************************************************************
|
||||
* File: dci.h
|
||||
*
|
||||
* Description: Downlink control information (DCI)
|
||||
*
|
||||
* Reference: 3GPP TS 36.212 version 10.0.0 Release 10 Sec. 5.3.3
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef DCI_
|
||||
#define DCI_
|
||||
|
||||
|
@ -34,13 +42,6 @@
|
|||
#include "srslte/common/phy_common.h"
|
||||
#include "srslte/phch/ra.h"
|
||||
|
||||
/**
|
||||
* DCI message generation according to the formats, as specified in
|
||||
* 36.212 Section 5.3.3.1
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
#define DCI_MAX_BITS 57
|
||||
|
||||
typedef enum {
|
||||
|
|
|
@ -25,6 +25,13 @@
|
|||
*
|
||||
*/
|
||||
|
||||
/******************************************************************************
|
||||
* File: harq.h
|
||||
*
|
||||
* Description: Hybrid Automatic Repeat Request (HARQ)
|
||||
*
|
||||
* Reference:
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef HARQ_
|
||||
#define HARQ_
|
||||
|
@ -88,4 +95,4 @@ SRSLTE_API int srslte_harq_codeblock_segmentation(srslte_harq_cbsegm_t *s,
|
|||
uint32_t tbs);
|
||||
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
|
|
@ -25,6 +25,13 @@
|
|||
*
|
||||
*/
|
||||
|
||||
/******************************************************************************
|
||||
* File: pbch.h
|
||||
*
|
||||
* Description: Physical broadcast channel.
|
||||
*
|
||||
* Reference: 3GPP TS 36.211 version 10.0.0 Release 10 Sec. 6.6
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef PBCH_
|
||||
#define PBCH_
|
||||
|
|
|
@ -25,6 +25,14 @@
|
|||
*
|
||||
*/
|
||||
|
||||
/******************************************************************************
|
||||
* File: pcfich.h
|
||||
*
|
||||
* Description: Physical control format indicator channel
|
||||
*
|
||||
* Reference: 3GPP TS 36.211 version 10.0.0 Release 10 Sec. 6.7
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef PCFICH_
|
||||
#define PCFICH_
|
||||
|
||||
|
|
|
@ -25,6 +25,14 @@
|
|||
*
|
||||
*/
|
||||
|
||||
/******************************************************************************
|
||||
* File: pdcch.h
|
||||
*
|
||||
* Description: Physical downlink control channel.
|
||||
*
|
||||
* Reference: 3GPP TS 36.211 version 10.0.0 Release 10 Sec. 6.8
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef PDCCH_
|
||||
#define PDCCH_
|
||||
|
||||
|
|
|
@ -25,6 +25,13 @@
|
|||
*
|
||||
*/
|
||||
|
||||
/******************************************************************************
|
||||
* File: pdsch.h
|
||||
*
|
||||
* Description: Physical downlink shared channel
|
||||
*
|
||||
* Reference: 3GPP TS 36.211 version 10.0.0 Release 10 Sec. 6.4
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef PDSCH_
|
||||
#define PDSCH_
|
||||
|
|
|
@ -25,6 +25,13 @@
|
|||
*
|
||||
*/
|
||||
|
||||
/******************************************************************************
|
||||
* File: phich.h
|
||||
*
|
||||
* Description: Physical Hybrid ARQ indicator channel.
|
||||
*
|
||||
* Reference: 3GPP TS 36.211 version 10.0.0 Release 10 Sec. 6.9
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef PHICH_
|
||||
#define PHICH_
|
||||
|
|
|
@ -25,6 +25,14 @@
|
|||
*
|
||||
*/
|
||||
|
||||
/******************************************************************************
|
||||
* File: prach.h
|
||||
*
|
||||
* Description: Physical random access channel.
|
||||
*
|
||||
* Reference: 3GPP TS 36.211 version 10.0.0 Release 10 Sec. 5.7
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef PRACH_
|
||||
#define PRACH_
|
||||
|
||||
|
|
|
@ -25,6 +25,13 @@
|
|||
*
|
||||
*/
|
||||
|
||||
/******************************************************************************
|
||||
* File: pucch.h
|
||||
*
|
||||
* Description: Physical uplink control channel.
|
||||
*
|
||||
* Reference: 3GPP TS 36.211 version 10.0.0 Release 10 Sec. 5.4
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef PUCCH_
|
||||
#define PUCCH_
|
||||
|
|
|
@ -25,6 +25,13 @@
|
|||
*
|
||||
*/
|
||||
|
||||
/******************************************************************************
|
||||
* File: pusch.h
|
||||
*
|
||||
* Description: Physical uplink shared channel.
|
||||
*
|
||||
* Reference: 3GPP TS 36.211 version 10.0.0 Release 10 Sec. 5.3
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef PUSCH_
|
||||
#define PUSCH_
|
||||
|
|
|
@ -25,6 +25,14 @@
|
|||
*
|
||||
*/
|
||||
|
||||
/******************************************************************************
|
||||
* File: ra.h
|
||||
*
|
||||
* Description: Structures and utility functions for DL/UL resource allocation.
|
||||
*
|
||||
* Reference: 3GPP TS 36.213 version 10.0.1 Release 10
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef RB_ALLOC_H_
|
||||
#define RB_ALLOC_H_
|
||||
|
||||
|
@ -34,10 +42,6 @@
|
|||
#include "srslte/config.h"
|
||||
#include "srslte/common/phy_common.h"
|
||||
|
||||
/** Structures and utility functions for DL/UL resource
|
||||
* allocation.
|
||||
*/
|
||||
|
||||
typedef struct SRSLTE_API {
|
||||
srslte_mod_t mod;
|
||||
int tbs;
|
||||
|
|
|
@ -25,6 +25,13 @@
|
|||
*
|
||||
*/
|
||||
|
||||
/******************************************************************************
|
||||
* File: regs.h
|
||||
*
|
||||
* Description: Resource element mapping functions.
|
||||
*
|
||||
* Reference: 3GPP TS 36.211 version 10.0.0 Release 10
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef _REGS_H_
|
||||
#define _REGS_H_
|
||||
|
|
|
@ -25,6 +25,13 @@
|
|||
*
|
||||
*/
|
||||
|
||||
/******************************************************************************
|
||||
* File: sch.h
|
||||
*
|
||||
* Description: Common UL and DL shared channel encode/decode functions.
|
||||
*
|
||||
* Reference: 3GPP TS 36.212 version 10.0.0 Release 10
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef SCH_
|
||||
#define SCH_
|
||||
|
|
|
@ -25,6 +25,13 @@
|
|||
*
|
||||
*/
|
||||
|
||||
/******************************************************************************
|
||||
* File: uci.h
|
||||
*
|
||||
* Description: Uplink control information.
|
||||
*
|
||||
* Reference: 3GPP TS 36.212 version 10.0.0 Release 10 Sec. 5.2.3, 5.2.4
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef UCI_
|
||||
#define UCI_
|
||||
|
@ -88,4 +95,4 @@ SRSLTE_API int srslte_uci_encode_ri(uint8_t data,
|
|||
uint8_t *q_bits);
|
||||
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
|
|
@ -25,6 +25,14 @@
|
|||
*
|
||||
*/
|
||||
|
||||
/******************************************************************************
|
||||
* File: decim.h
|
||||
*
|
||||
* Description: Integer linear decimation
|
||||
*
|
||||
* Reference:
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef DECIM_H
|
||||
#define DECIM_H
|
||||
|
||||
|
|
|
@ -25,6 +25,14 @@
|
|||
*
|
||||
*/
|
||||
|
||||
/******************************************************************************
|
||||
* File: interp.h
|
||||
*
|
||||
* Description: Linear and vector interpolation
|
||||
*
|
||||
* Reference:
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef INTERP_H
|
||||
#define INTERP_H
|
||||
|
||||
|
|
|
@ -25,6 +25,16 @@
|
|||
*
|
||||
*/
|
||||
|
||||
/******************************************************************************
|
||||
* File: resample_arb.h
|
||||
*
|
||||
* Description: Arbitrary rate resampler using a polyphase filter bank
|
||||
* implementation.
|
||||
*
|
||||
* Reference: Multirate Signal Processing for Communication Systems
|
||||
* fredric j. harris
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef RESAMPLE_ARB_
|
||||
#define RESAMPLE_ARB_
|
||||
|
||||
|
|
|
@ -25,6 +25,13 @@
|
|||
*
|
||||
*/
|
||||
|
||||
/******************************************************************************
|
||||
* File: scrambling.h
|
||||
*
|
||||
* Description: Generic scrambling functions used by UL and DL channels.
|
||||
*
|
||||
* Reference: 3GPP TS 36.211 version 10.0.0 Release 10 Sec. 5.3.1, 6.3.1
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef SCRAMBLING_
|
||||
#define SCRAMBLING_
|
||||
|
|
|
@ -25,6 +25,13 @@
|
|||
*
|
||||
*/
|
||||
|
||||
/******************************************************************************
|
||||
* File: cfo.h
|
||||
*
|
||||
* Description: Carrier frequency offset correction using complex exponentials.
|
||||
*
|
||||
* Reference:
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef CFO_
|
||||
#define CFO_
|
||||
|
|
|
@ -25,6 +25,23 @@
|
|||
*
|
||||
*/
|
||||
|
||||
/******************************************************************************
|
||||
* File: pss.h
|
||||
*
|
||||
* Description: Primary synchronization signal (PSS) generation and detection.
|
||||
*
|
||||
* The srslte_pss_synch_t object provides functions for fast
|
||||
* computation of the crosscorrelation between the PSS and received
|
||||
* signal and CFO estimation. Also, the function srslte_pss_synch_tperiodic()
|
||||
* is designed to be called periodically every subframe, taking
|
||||
* care of the correct data alignment with respect to the PSS sequence.
|
||||
*
|
||||
* The object is designed to work with signals sampled at 1.92 Mhz
|
||||
* centered at the carrier frequency. Thus, downsampling is required
|
||||
* if the signal is sampled at higher frequencies.
|
||||
*
|
||||
* Reference: 3GPP TS 36.211 version 10.0.0 Release 10 Sec. 6.11.1
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef PSS_
|
||||
#define PSS_
|
||||
|
@ -50,17 +67,6 @@
|
|||
|
||||
#define SRSLTE_PSS_RETURN_PSR // If enabled returns peak to side-lobe ratio, otherwise returns absolute peak value
|
||||
|
||||
/**
|
||||
* The srslte_pss_synch_t object provides functions for fast computation of the crosscorrelation
|
||||
* between the PSS and received signal and CFO estimation. Also, the function srslte_pss_synch_tperiodic() is designed
|
||||
* to be called periodically every subframe, taking care of the correct data alignment with respect
|
||||
* to the PSS sequence.
|
||||
*
|
||||
* The object is designed to work with signals sampled at 1.92 Mhz centered at the carrier frequency.
|
||||
* Thus, downsampling is required if the signal is sampled at higher frequencies.
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
/* Low-level API */
|
||||
typedef struct SRSLTE_API {
|
||||
|
|
|
@ -25,6 +25,13 @@
|
|||
*
|
||||
*/
|
||||
|
||||
/******************************************************************************
|
||||
* File: sfo.h
|
||||
*
|
||||
* Description: Sampling frequency offset estimation.
|
||||
*
|
||||
* Reference:
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef SFO_
|
||||
#define SFO_
|
||||
|
|
|
@ -25,6 +25,14 @@
|
|||
*
|
||||
*/
|
||||
|
||||
/******************************************************************************
|
||||
* File: sss.h
|
||||
*
|
||||
* Description: Secondary synchronization signal (SSS) generation and detection.
|
||||
*
|
||||
*
|
||||
* Reference: 3GPP TS 36.211 version 10.0.0 Release 10 Sec. 6.11.2
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef SSS_
|
||||
#define SSS_
|
||||
|
|
|
@ -25,6 +25,23 @@
|
|||
*
|
||||
*/
|
||||
|
||||
/******************************************************************************
|
||||
* File: sync.h
|
||||
*
|
||||
* Description: Time and frequency synchronization using the PSS and SSS signals.
|
||||
*
|
||||
* The object is designed to work with signals sampled at 1.92 Mhz
|
||||
* centered at the carrier frequency. Thus, downsampling is required
|
||||
* if the signal is sampled at higher frequencies.
|
||||
*
|
||||
* Correlation peak is detected comparing the maximum at the output
|
||||
* of the correlator with a threshold. The comparison accepts two
|
||||
* modes: absolute value or peak-to-mean ratio, which are configured
|
||||
* with the functions sync_pss_det_absolute() and sync_pss_det_peakmean().
|
||||
*
|
||||
*
|
||||
* Reference: 3GPP TS 36.211 version 10.0.0 Release 10 Sec. 6.11.1, 6.11.2
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef SYNC_
|
||||
#define SYNC_
|
||||
|
@ -40,18 +57,6 @@
|
|||
#define SRSLTE_SYNC_FFT_SZ_MIN 64
|
||||
#define SRSLTE_SYNC_FFT_SZ_MAX 2048
|
||||
|
||||
/**
|
||||
*
|
||||
* This object performs time and frequency synchronization using the PSS and SSS signals.
|
||||
*
|
||||
* The object is designed to work with signals sampled at 1.92 Mhz centered at the carrier frequency.
|
||||
* Thus, downsampling is required if the signal is sampled at higher frequencies.
|
||||
*
|
||||
* Correlation peak is detected comparing the maximum at the output of the correlator with a threshold.
|
||||
* The comparison accepts two modes: absolute value or peak-to-mean ratio, which are configured with the
|
||||
* functions sync_pss_det_absolute() and sync_pss_det_peakmean().
|
||||
*/
|
||||
|
||||
typedef enum {SSS_DIFF=0, SSS_PARTIAL_3=2, SSS_FULL=1} sss_alg_t;
|
||||
|
||||
typedef struct SRSLTE_API {
|
||||
|
|
|
@ -25,6 +25,22 @@
|
|||
*
|
||||
*/
|
||||
|
||||
/******************************************************************************
|
||||
* File: ue_cell_search.h
|
||||
*
|
||||
* Description: Wrapper for the ue_sync object.
|
||||
*
|
||||
* This object is a wrapper to the ue_sync object. It receives
|
||||
* several synchronized frames and obtains the most common cell_id
|
||||
* and cp length.
|
||||
*
|
||||
* The I/O stream device sampling frequency must be set to 1.92 MHz
|
||||
* (SRSLTE_CS_SAMP_FREQ constant) before calling to
|
||||
* srslte_ue_cellsearch_scan() functions.
|
||||
*
|
||||
* Reference:
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef UE_CELLSEARCH_
|
||||
#define UE_CELLSEARCH_
|
||||
|
||||
|
@ -38,17 +54,6 @@
|
|||
#include "srslte/phch/pbch.h"
|
||||
#include "srslte/dft/ofdm.h"
|
||||
|
||||
/************************************************************
|
||||
*
|
||||
* This object is a wrapper to the ue_sync object. It receives
|
||||
* several synchronized frames and obtains the most common cell_id
|
||||
* and cp length.
|
||||
*
|
||||
* The I/O stream device sampling frequency must be set to 1.92 MHz (SRSLTE_CS_SAMP_FREQ constant)
|
||||
* before calling to srslte_ue_cellsearch_scan() functions.
|
||||
*
|
||||
************************************************************/
|
||||
|
||||
/**
|
||||
* TODO: Check also peak offset
|
||||
*/
|
||||
|
|
|
@ -25,17 +25,20 @@
|
|||
*
|
||||
*/
|
||||
|
||||
/******************************************************************************
|
||||
* File: ue_dl.h
|
||||
*
|
||||
* Description: UE downlink object.
|
||||
*
|
||||
* This module is a frontend to all the downlink data and control
|
||||
* channel processing modules.
|
||||
*
|
||||
* Reference:
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef UEDL_H
|
||||
#define UEDL_H
|
||||
|
||||
/*******************************************************
|
||||
*
|
||||
* This module is a frontend to all the data and control channels processing
|
||||
* modules.
|
||||
********************************************************/
|
||||
|
||||
|
||||
|
||||
#include "srslte/ch_estimation/chest_dl.h"
|
||||
#include "srslte/dft/ofdm.h"
|
||||
#include "srslte/common/phy_common.h"
|
||||
|
@ -134,4 +137,4 @@ SRSLTE_API void srslte_ue_dl_reset(srslte_ue_dl_t *q);
|
|||
SRSLTE_API void srslte_ue_dl_set_rnti(srslte_ue_dl_t *q,
|
||||
uint16_t rnti);
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
|
|
@ -25,27 +25,28 @@
|
|||
*
|
||||
*/
|
||||
|
||||
/******************************************************************************
|
||||
* File: ue_mib.h
|
||||
*
|
||||
* Description: This object decodes the MIB from the PBCH of an LTE signal.
|
||||
*
|
||||
* The function srslte_ue_mib_decode() shall be called multiple
|
||||
* times, each passing a number of samples multiple of 19200,
|
||||
* sampled at 1.92 MHz (that is, 10 ms of samples).
|
||||
*
|
||||
* The function uses the sync_t object to find the PSS sequence and
|
||||
* decode the PBCH to obtain the MIB.
|
||||
*
|
||||
* The function returns 0 until the MIB is decoded.
|
||||
*
|
||||
* See ue_cell_detect.c for an example.
|
||||
*
|
||||
* Reference:
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef UE_MIB_
|
||||
#define UE_MIB_
|
||||
|
||||
|
||||
/************************************************************
|
||||
*
|
||||
* This object decodes the MIB from the PBCH of an LTE signal.
|
||||
*
|
||||
* The function srslte_ue_mib_decode() shall be called multiple times,
|
||||
* each passing a number of samples multiple of 19200, sampled at 1.92 MHz
|
||||
* (that is, 10 ms of samples).
|
||||
*
|
||||
* The function uses the sync_t object to find the PSS sequence and
|
||||
* decode the PBCH to obtain the MIB.
|
||||
*
|
||||
* The function returns 0 until the MIB is decoded.
|
||||
*
|
||||
* See ue_cell_detect.c for an example.
|
||||
*
|
||||
************************************************************/
|
||||
|
||||
#include <stdbool.h>
|
||||
|
||||
#include "srslte/config.h"
|
||||
|
|
|
@ -0,0 +1,169 @@
|
|||
/**
|
||||
*
|
||||
* \section COPYRIGHT
|
||||
*
|
||||
* Copyright 2013-2014 The srsLTE Developers. See the
|
||||
* COPYRIGHT file at the top-level directory of this distribution.
|
||||
*
|
||||
* \section LICENSE
|
||||
*
|
||||
* This file is part of the srsLTE library.
|
||||
*
|
||||
* srsLTE 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.
|
||||
*
|
||||
* srsLTE 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/.
|
||||
*
|
||||
*/
|
||||
|
||||
/******************************************************************************
|
||||
* File: ue_phy.h
|
||||
*
|
||||
* Description: Top-level class wrapper for PHY layer.
|
||||
*
|
||||
* Reference:
|
||||
*****************************************************************************/
|
||||
|
||||
#include "srslte/srslte.h"
|
||||
#include "srslte/utils/queue.h"
|
||||
|
||||
#ifndef UEPHY_H
|
||||
#define UEPHY_H
|
||||
|
||||
#define SYNC_MODE_CV 0
|
||||
#define SYNC_MODE_CALLBACK 1
|
||||
#define SYNC_MODE SYNC_MODE_CV
|
||||
|
||||
namespace srslte {
|
||||
|
||||
typedef _Complex float cf_t;
|
||||
|
||||
class ue_phy
|
||||
{
|
||||
public:
|
||||
|
||||
typedef enum {DOWNLINK, UPLINK} direction_t;
|
||||
|
||||
typedef enum {
|
||||
PDCCH_UL_SEARCH_CRNTI = 0,
|
||||
PDCCH_UL_SEARCH_RA_PROC,
|
||||
PDCCH_UL_SEARCH_SPS,
|
||||
PDCCH_UL_SEARCH_TEMPORAL,
|
||||
PDCCH_UL_SEARCH_TPC_PUSCH,
|
||||
PDCCH_UL_SEARCH_TPC_PUCCH
|
||||
} pdcch_ul_search_t;
|
||||
|
||||
typedef enum {
|
||||
PDCCH_DL_SEARCH_CRNTI = 0,
|
||||
PDCCH_DL_SEARCH_SIRNTI,
|
||||
PDCCH_DL_SEARCH_PRNTI,
|
||||
PDCCH_DL_SEARCH_RARNTI,
|
||||
PDCCH_DL_SEARCH_TEMPORAL,
|
||||
PDCCH_DL_SEARCH_SPS
|
||||
} pdcch_dl_search_t;
|
||||
|
||||
/* Uplink/Downlink scheduling grant generated by a successfully decoded PDCCH */
|
||||
class sched_grant {
|
||||
public:
|
||||
uint16_t get_rnti();
|
||||
uint32_t get_rv();
|
||||
void set_rv(uint32_t rv);
|
||||
bool get_ndi();
|
||||
bool get_cqi_request();
|
||||
uint32_t get_harq_process();
|
||||
private:
|
||||
union {
|
||||
srslte_ra_pusch_t ul_grant;
|
||||
srslte_ra_pdsch_t dl_grant;
|
||||
};
|
||||
direction_t dir;
|
||||
};
|
||||
|
||||
|
||||
/* Uplink scheduling assignment. The MAC instructs the PHY to prepare an UL packet (PUSCH or PUCCH)
|
||||
* for transmission. The MAC must call generate_pusch() to set the packet ready for transmission
|
||||
*/
|
||||
class ul_buffer : public queue::element {
|
||||
public:
|
||||
ul_buffer(srslte_cell_t cell);
|
||||
void generate_pusch(sched_grant pusch_grant, uint8_t *payload, srslte_uci_data_t uci_data);
|
||||
void generate_pucch(srslte_uci_data_t uci_data);
|
||||
private:
|
||||
srslte_ue_ul_t ue_ul;
|
||||
bool signal_generated = false;
|
||||
cf_t* signal_buffer = NULL;
|
||||
uint32_t tti = 0;
|
||||
};
|
||||
|
||||
/* Class for the processing of Downlink buffers. The MAC obtains a buffer for a given TTI and then
|
||||
* gets ul/dl scheduling grants and/or processes phich/pdsch channels
|
||||
*/
|
||||
class dl_buffer : public queue::element {
|
||||
public:
|
||||
dl_buffer(srslte_cell_t cell);
|
||||
sched_grant get_ul_grant(pdcch_ul_search_t mode, uint32_t rnti);
|
||||
sched_grant get_dl_grant(pdcch_dl_search_t mode, uint32_t rnti);
|
||||
bool decode_phich(srslte_phich_alloc_t assignment);
|
||||
bool decode_pdsch(sched_grant pdsch_grant, uint8_t *payload); // returns true or false for CRC OK/KO
|
||||
private:
|
||||
srslte_ue_dl_t ue_dl;
|
||||
srslte_phich_t phich;
|
||||
cf_t *signal_buffer = NULL;
|
||||
bool sf_symbols_and_ce_done = false;
|
||||
bool pdcch_llr_extracted = false;
|
||||
uint32_t tti = 0;
|
||||
};
|
||||
|
||||
|
||||
#if SYNC_MODE==SYNC_MODE_CALLBACK
|
||||
typedef (*ue_phy_tti_clock_fcn_t) (void);
|
||||
ue_phy(ue_phy_tti_clock_fcn_t tti_clock_callback);
|
||||
#else
|
||||
ue_phy();
|
||||
#endif
|
||||
~ue_phy();
|
||||
|
||||
void measure(); // TBD
|
||||
void dl_bch();
|
||||
void start_rxtx();
|
||||
void stop_rxtx();
|
||||
void init_prach();
|
||||
void send_prach(/* prach_cfg_t in prach.h with power, seq idx, etc */);
|
||||
void set_param();
|
||||
|
||||
uint32_t get_tti();
|
||||
#if SYNC_MODE==SYNC_MODE_CV
|
||||
std::condition_variable tti_cv;
|
||||
std::mutex tti_mutex;
|
||||
#endif
|
||||
|
||||
ul_buffer get_ul_buffer(uint32_t tti);
|
||||
dl_buffer get_dl_buffer(uint32_t tti);
|
||||
|
||||
private:
|
||||
enum {
|
||||
IDLE, MEASURE, RX_BCH, RXTX
|
||||
} phy_state;
|
||||
|
||||
bool prach_initiated = false;
|
||||
bool prach_ready_to_send = false;
|
||||
srslte_prach_t prach;
|
||||
|
||||
queue ul_buffer_queue;
|
||||
queue dl_buffer_queue;
|
||||
|
||||
pthread_t radio_thread;
|
||||
void *radio_handler;
|
||||
};
|
||||
|
||||
}
|
||||
#endif
|
|
@ -25,6 +25,28 @@
|
|||
*
|
||||
*/
|
||||
|
||||
/******************************************************************************
|
||||
* File: ue_sync.h
|
||||
*
|
||||
* Description: This object automatically manages the cell synchronization
|
||||
* procedure.
|
||||
*
|
||||
* The main function is srslte_ue_sync_get_buffer(), which returns
|
||||
* a pointer to the aligned subframe of samples (before FFT). This
|
||||
* function should be called regularly, returning every 1 ms.
|
||||
* It reads from the USRP, aligns the samples to the subframe and
|
||||
* performs time/freq synch.
|
||||
*
|
||||
* It is also possible to read the signal from a file using the
|
||||
* init function srslte_ue_sync_init_file(). The sampling frequency
|
||||
* is derived from the number of PRB.
|
||||
*
|
||||
* The function returns 1 when the signal is correctly acquired and
|
||||
* the returned buffer is aligned with the subframe.
|
||||
*
|
||||
* Reference:
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef UE_SYNC_
|
||||
#define UE_SYNC_
|
||||
|
||||
|
@ -39,22 +61,6 @@
|
|||
#include "srslte/common/timestamp.h"
|
||||
#include "srslte/io/filesource.h"
|
||||
|
||||
/**************************************************************
|
||||
*
|
||||
* This object automatically manages the cell synchronization procedure.
|
||||
*
|
||||
* The main function is srslte_ue_sync_get_buffer(), which returns a pointer
|
||||
* to the aligned subframe of samples (before FFT). This function
|
||||
* should be called regularly, returning every 1 ms. It reads from the
|
||||
* USRP, aligns the samples to the subframe and performs time/freq synch.
|
||||
*
|
||||
* It is also possible to read the signal from a file using the init function
|
||||
* srslte_ue_sync_init_file(). The sampling frequency is derived from the number of PRB.
|
||||
*
|
||||
* The function returns 1 when the signal is correctly acquired and the
|
||||
* returned buffer is aligned with the subframe.
|
||||
*
|
||||
*************************************************************/
|
||||
|
||||
typedef enum SRSLTE_API { SF_FIND, SF_TRACK} srslte_ue_sync_state_t;
|
||||
|
||||
|
|
|
@ -25,16 +25,20 @@
|
|||
*
|
||||
*/
|
||||
|
||||
/******************************************************************************
|
||||
* File: ue_ul.h
|
||||
*
|
||||
* Description: UE uplink object.
|
||||
*
|
||||
* This module is a frontend to all the uplink data and control
|
||||
* channel processing modules.
|
||||
*
|
||||
* Reference:
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef UEUL_H
|
||||
#define UEUL_H
|
||||
|
||||
/*******************************************************
|
||||
*
|
||||
* This module is a frontend to all the data and control channels processing
|
||||
* modules.
|
||||
********************************************************/
|
||||
|
||||
|
||||
#include "srslte/common/phy_common.h"
|
||||
#include "srslte/ch_estimation/chest_dl.h"
|
||||
#include "srslte/dft/ofdm.h"
|
||||
|
@ -119,4 +123,4 @@ SRSLTE_API void srslte_ue_ul_reset(srslte_ue_ul_t *q);
|
|||
SRSLTE_API void srslte_ue_ul_set_rnti(srslte_ue_ul_t *q,
|
||||
uint16_t rnti);
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
|
|
@ -26,6 +26,13 @@
|
|||
*/
|
||||
|
||||
#include <stdint.h>
|
||||
/******************************************************************************
|
||||
* File: queue.h
|
||||
*
|
||||
* Description: Queue used at interface of PHY/MAC
|
||||
*
|
||||
* Reference:
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef QUEUE_H
|
||||
#define QUEUE_H
|
||||
|
@ -85,5 +92,7 @@ private:
|
|||
};
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
|
|
@ -25,6 +25,13 @@
|
|||
*
|
||||
*/
|
||||
|
||||
/******************************************************************************
|
||||
* File: bit.h
|
||||
*
|
||||
* Description: Bit-level utilities.
|
||||
*
|
||||
* Reference:
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef BIT_
|
||||
#define BIT_
|
||||
|
|
|
@ -25,6 +25,13 @@
|
|||
*
|
||||
*/
|
||||
|
||||
/******************************************************************************
|
||||
* File: cexptab.h
|
||||
*
|
||||
* Description: Utility module for generation of complex exponential tables.
|
||||
*
|
||||
* Reference:
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef CEXPTAB_
|
||||
#define CEXPTAB_
|
||||
|
|
|
@ -25,6 +25,13 @@
|
|||
*
|
||||
*/
|
||||
|
||||
/******************************************************************************
|
||||
* File: convolution.h
|
||||
*
|
||||
* Description: Utility module for fast convolution using FFT.
|
||||
*
|
||||
* Reference:
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef CONVOLUTION_H_
|
||||
#define CONVOLUTION_H_
|
||||
|
|
|
@ -25,6 +25,14 @@
|
|||
*
|
||||
*/
|
||||
|
||||
/******************************************************************************
|
||||
* File: debug.h
|
||||
*
|
||||
* Description: Debug output utilities.
|
||||
*
|
||||
* Reference:
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef DEBUG_H
|
||||
#define DEBUG_H
|
||||
|
||||
|
|
|
@ -25,6 +25,13 @@
|
|||
*
|
||||
*/
|
||||
|
||||
/******************************************************************************
|
||||
* File: vector.h
|
||||
*
|
||||
* Description: Vector functions using SIMD instructions where possible.
|
||||
*
|
||||
* Reference:
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef VECTOR_
|
||||
#define VECTOR_
|
||||
|
|
|
@ -38,7 +38,7 @@ ELSE(${DISABLE_VOLK})
|
|||
FIND_PACKAGE(Volk)
|
||||
ENDIF(${DISABLE_VOLK})
|
||||
|
||||
FIND_PACKAGE(LIBSDRGUI)
|
||||
FIND_PACKAGE(SRSGUI)
|
||||
|
||||
########################################################################
|
||||
# Recurse subdirectories and compile all source files into the same lib
|
||||
|
|
|
@ -2,19 +2,19 @@
|
|||
*
|
||||
* \section COPYRIGHT
|
||||
*
|
||||
* Copyright 2013-2014 The libLTE Developers. See the
|
||||
* Copyright 2013-2014 The srsLTE Developers. See the
|
||||
* COPYRIGHT file at the top-level directory of this distribution.
|
||||
*
|
||||
* \section LICENSE
|
||||
*
|
||||
* This file is part of the libLTE library.
|
||||
* This file is part of the srsLTE library.
|
||||
*
|
||||
* libLTE is free software: you can redistribute it and/or modify
|
||||
* srsLTE 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,
|
||||
* srsLTE 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.
|
||||
|
|
|
@ -2,19 +2,19 @@
|
|||
*
|
||||
* \section COPYRIGHT
|
||||
*
|
||||
* Copyright 2013-2014 The libLTE Developers. See the
|
||||
* Copyright 2013-2014 The srsLTE Developers. See the
|
||||
* COPYRIGHT file at the top-level directory of this distribution.
|
||||
*
|
||||
* \section LICENSE
|
||||
*
|
||||
* This file is part of the libLTE library.
|
||||
* This file is part of the srsLTE library.
|
||||
*
|
||||
* libLTE is free software: you can redistribute it and/or modify
|
||||
* srsLTE 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,
|
||||
* srsLTE 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.
|
||||
|
|
|
@ -2,19 +2,19 @@
|
|||
*
|
||||
* \section COPYRIGHT
|
||||
*
|
||||
* Copyright 2013-2014 The libLTE Developers. See the
|
||||
* Copyright 2013-2014 The srsLTE Developers. See the
|
||||
* COPYRIGHT file at the top-level directory of this distribution.
|
||||
*
|
||||
* \section LICENSE
|
||||
*
|
||||
* This file is part of the libLTE library.
|
||||
* This file is part of the srsLTE library.
|
||||
*
|
||||
* libLTE is free software: you can redistribute it and/or modify
|
||||
* srsLTE 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,
|
||||
* srsLTE 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.
|
||||
|
|
|
@ -2,19 +2,19 @@
|
|||
*
|
||||
* \section COPYRIGHT
|
||||
*
|
||||
* Copyright 2013-2014 The libLTE Developers. See the
|
||||
* Copyright 2013-2014 The srsLTE Developers. See the
|
||||
* COPYRIGHT file at the top-level directory of this distribution.
|
||||
*
|
||||
* \section LICENSE
|
||||
*
|
||||
* This file is part of the libLTE library.
|
||||
* This file is part of the srsLTE library.
|
||||
*
|
||||
* libLTE is free software: you can redistribute it and/or modify
|
||||
* srsLTE 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,
|
||||
* srsLTE 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.
|
||||
|
|
|
@ -2,19 +2,19 @@
|
|||
*
|
||||
* \section COPYRIGHT
|
||||
*
|
||||
* Copyright 2013-2014 The libLTE Developers. See the
|
||||
* Copyright 2013-2014 The srsLTE Developers. See the
|
||||
* COPYRIGHT file at the top-level directory of this distribution.
|
||||
*
|
||||
* \section LICENSE
|
||||
*
|
||||
* This file is part of the libLTE library.
|
||||
* This file is part of the srsLTE library.
|
||||
*
|
||||
* libLTE is free software: you can redistribute it and/or modify
|
||||
* srsLTE 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,
|
||||
* srsLTE 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.
|
||||
|
|
|
@ -2,19 +2,19 @@
|
|||
*
|
||||
* \section COPYRIGHT
|
||||
*
|
||||
* Copyright 2013-2014 The libLTE Developers. See the
|
||||
* Copyright 2013-2014 The srsLTE Developers. See the
|
||||
* COPYRIGHT file at the top-level directory of this distribution.
|
||||
*
|
||||
* \section LICENSE
|
||||
*
|
||||
* This file is part of the libLTE library.
|
||||
* This file is part of the srsLTE library.
|
||||
*
|
||||
* libLTE is free software: you can redistribute it and/or modify
|
||||
* srsLTE 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,
|
||||
* srsLTE 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.
|
||||
|
|
|
@ -2,19 +2,19 @@
|
|||
*
|
||||
* \section COPYRIGHT
|
||||
*
|
||||
* Copyright 2013-2014 The libLTE Developers. See the
|
||||
* Copyright 2013-2014 The srsLTE Developers. See the
|
||||
* COPYRIGHT file at the top-level directory of this distribution.
|
||||
*
|
||||
* \section LICENSE
|
||||
*
|
||||
* This file is part of the libLTE library.
|
||||
* This file is part of the srsLTE library.
|
||||
*
|
||||
* libLTE is free software: you can redistribute it and/or modify
|
||||
* srsLTE 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,
|
||||
* srsLTE 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.
|
||||
|
|
|
@ -2,19 +2,19 @@
|
|||
*
|
||||
* \section COPYRIGHT
|
||||
*
|
||||
* Copyright 2013-2014 The libLTE Developers. See the
|
||||
* Copyright 2013-2014 The srsLTE Developers. See the
|
||||
* COPYRIGHT file at the top-level directory of this distribution.
|
||||
*
|
||||
* \section LICENSE
|
||||
*
|
||||
* This file is part of the libLTE library.
|
||||
* This file is part of the srsLTE library.
|
||||
*
|
||||
* libLTE is free software: you can redistribute it and/or modify
|
||||
* srsLTE 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,
|
||||
* srsLTE 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.
|
||||
|
|
|
@ -2,19 +2,19 @@
|
|||
*
|
||||
* \section COPYRIGHT
|
||||
*
|
||||
* Copyright 2013-2014 The libLTE Developers. See the
|
||||
* Copyright 2013-2014 The srsLTE Developers. See the
|
||||
* COPYRIGHT file at the top-level directory of this distribution.
|
||||
*
|
||||
* \section LICENSE
|
||||
*
|
||||
* This file is part of the libLTE library.
|
||||
* This file is part of the srsLTE library.
|
||||
*
|
||||
* libLTE is free software: you can redistribute it and/or modify
|
||||
* srsLTE 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,
|
||||
* srsLTE 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.
|
||||
|
|
|
@ -2,19 +2,19 @@
|
|||
*
|
||||
* \section COPYRIGHT
|
||||
*
|
||||
* Copyright 2013-2014 The libLTE Developers. See the
|
||||
* Copyright 2013-2014 The srsLTE Developers. See the
|
||||
* COPYRIGHT file at the top-level directory of this distribution.
|
||||
*
|
||||
* \section LICENSE
|
||||
*
|
||||
* This file is part of the libLTE library.
|
||||
* This file is part of the srsLTE library.
|
||||
*
|
||||
* libLTE is free software: you can redistribute it and/or modify
|
||||
* srsLTE 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,
|
||||
* srsLTE 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.
|
||||
|
|
|
@ -2,19 +2,19 @@
|
|||
*
|
||||
* \section COPYRIGHT
|
||||
*
|
||||
* Copyright 2013-2014 The libLTE Developers. See the
|
||||
* Copyright 2013-2014 The srsLTE Developers. See the
|
||||
* COPYRIGHT file at the top-level directory of this distribution.
|
||||
*
|
||||
* \section LICENSE
|
||||
*
|
||||
* This file is part of the libLTE library.
|
||||
* This file is part of the srsLTE library.
|
||||
*
|
||||
* libLTE is free software: you can redistribute it and/or modify
|
||||
* srsLTE 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,
|
||||
* srsLTE 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.
|
||||
|
|
|
@ -2,19 +2,19 @@
|
|||
*
|
||||
* \section COPYRIGHT
|
||||
*
|
||||
* Copyright 2013-2014 The libLTE Developers. See the
|
||||
* Copyright 2013-2014 The srsLTE Developers. See the
|
||||
* COPYRIGHT file at the top-level directory of this distribution.
|
||||
*
|
||||
* \section LICENSE
|
||||
*
|
||||
* This file is part of the libLTE library.
|
||||
* This file is part of the srsLTE library.
|
||||
*
|
||||
* libLTE is free software: you can redistribute it and/or modify
|
||||
* srsLTE 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,
|
||||
* srsLTE 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.
|
||||
|
|
|
@ -2,19 +2,19 @@
|
|||
*
|
||||
* \section COPYRIGHT
|
||||
*
|
||||
* Copyright 2013-2014 The libLTE Developers. See the
|
||||
* Copyright 2013-2014 The srsLTE Developers. See the
|
||||
* COPYRIGHT file at the top-level directory of this distribution.
|
||||
*
|
||||
* \section LICENSE
|
||||
*
|
||||
* This file is part of the libLTE library.
|
||||
* This file is part of the srsLTE library.
|
||||
*
|
||||
* libLTE is free software: you can redistribute it and/or modify
|
||||
* srsLTE 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,
|
||||
* srsLTE 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.
|
||||
|
|
|
@ -2,19 +2,19 @@
|
|||
*
|
||||
* \section COPYRIGHT
|
||||
*
|
||||
* Copyright 2013-2014 The libLTE Developers. See the
|
||||
* Copyright 2013-2014 The srsLTE Developers. See the
|
||||
* COPYRIGHT file at the top-level directory of this distribution.
|
||||
*
|
||||
* \section LICENSE
|
||||
*
|
||||
* This file is part of the libLTE library.
|
||||
* This file is part of the srsLTE library.
|
||||
*
|
||||
* libLTE is free software: you can redistribute it and/or modify
|
||||
* srsLTE 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,
|
||||
* srsLTE 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.
|
||||
|
|
|
@ -2,19 +2,19 @@
|
|||
*
|
||||
* \section COPYRIGHT
|
||||
*
|
||||
* Copyright 2013-2014 The libLTE Developers. See the
|
||||
* Copyright 2013-2014 The srsLTE Developers. See the
|
||||
* COPYRIGHT file at the top-level directory of this distribution.
|
||||
*
|
||||
* \section LICENSE
|
||||
*
|
||||
* This file is part of the libLTE library.
|
||||
* This file is part of the srsLTE library.
|
||||
*
|
||||
* libLTE is free software: you can redistribute it and/or modify
|
||||
* srsLTE 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,
|
||||
* srsLTE 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.
|
||||
|
|
|
@ -2,19 +2,19 @@
|
|||
*
|
||||
* \section COPYRIGHT
|
||||
*
|
||||
* Copyright 2013-2014 The libLTE Developers. See the
|
||||
* Copyright 2013-2014 The srsLTE Developers. See the
|
||||
* COPYRIGHT file at the top-level directory of this distribution.
|
||||
*
|
||||
* \section LICENSE
|
||||
*
|
||||
* This file is part of the libLTE library.
|
||||
* This file is part of the srsLTE library.
|
||||
*
|
||||
* libLTE is free software: you can redistribute it and/or modify
|
||||
* srsLTE 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,
|
||||
* srsLTE 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.
|
||||
|
|
|
@ -2,19 +2,19 @@
|
|||
*
|
||||
* \section COPYRIGHT
|
||||
*
|
||||
* Copyright 2013-2014 The libLTE Developers. See the
|
||||
* Copyright 2013-2014 The srsLTE Developers. See the
|
||||
* COPYRIGHT file at the top-level directory of this distribution.
|
||||
*
|
||||
* \section LICENSE
|
||||
*
|
||||
* This file is part of the libLTE library.
|
||||
* This file is part of the srsLTE library.
|
||||
*
|
||||
* libLTE is free software: you can redistribute it and/or modify
|
||||
* srsLTE 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,
|
||||
* srsLTE 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.
|
||||
|
|
|
@ -2,19 +2,19 @@
|
|||
*
|
||||
* \section COPYRIGHT
|
||||
*
|
||||
* Copyright 2013-2014 The libLTE Developers. See the
|
||||
* Copyright 2013-2014 The srsLTE Developers. See the
|
||||
* COPYRIGHT file at the top-level directory of this distribution.
|
||||
*
|
||||
* \section LICENSE
|
||||
*
|
||||
* This file is part of the libLTE library.
|
||||
* This file is part of the srsLTE library.
|
||||
*
|
||||
* libLTE is free software: you can redistribute it and/or modify
|
||||
* srsLTE 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,
|
||||
* srsLTE 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.
|
||||
|
|
|
@ -2,19 +2,19 @@
|
|||
*
|
||||
* \section COPYRIGHT
|
||||
*
|
||||
* Copyright 2013-2014 The libLTE Developers. See the
|
||||
* Copyright 2013-2014 The srsLTE Developers. See the
|
||||
* COPYRIGHT file at the top-level directory of this distribution.
|
||||
*
|
||||
* \section LICENSE
|
||||
*
|
||||
* This file is part of the libLTE library.
|
||||
* This file is part of the srsLTE library.
|
||||
*
|
||||
* libLTE is free software: you can redistribute it and/or modify
|
||||
* srsLTE 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,
|
||||
* srsLTE 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.
|
||||
|
|
|
@ -2,19 +2,19 @@
|
|||
*
|
||||
* \section COPYRIGHT
|
||||
*
|
||||
* Copyright 2013-2014 The libLTE Developers. See the
|
||||
* Copyright 2013-2014 The srsLTE Developers. See the
|
||||
* COPYRIGHT file at the top-level directory of this distribution.
|
||||
*
|
||||
* \section LICENSE
|
||||
*
|
||||
* This file is part of the libLTE library.
|
||||
* This file is part of the srsLTE library.
|
||||
*
|
||||
* libLTE is free software: you can redistribute it and/or modify
|
||||
* srsLTE 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,
|
||||
* srsLTE 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.
|
||||
|
|
|
@ -2,19 +2,19 @@
|
|||
*
|
||||
* \section COPYRIGHT
|
||||
*
|
||||
* Copyright 2013-2014 The libLTE Developers. See the
|
||||
* Copyright 2013-2014 The srsLTE Developers. See the
|
||||
* COPYRIGHT file at the top-level directory of this distribution.
|
||||
*
|
||||
* \section LICENSE
|
||||
*
|
||||
* This file is part of the libLTE library.
|
||||
* This file is part of the srsLTE library.
|
||||
*
|
||||
* libLTE is free software: you can redistribute it and/or modify
|
||||
* srsLTE 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,
|
||||
* srsLTE 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.
|
||||
|
|
|
@ -2,19 +2,19 @@
|
|||
*
|
||||
* \section COPYRIGHT
|
||||
*
|
||||
* Copyright 2013-2014 The libLTE Developers. See the
|
||||
* Copyright 2013-2014 The srsLTE Developers. See the
|
||||
* COPYRIGHT file at the top-level directory of this distribution.
|
||||
*
|
||||
* \section LICENSE
|
||||
*
|
||||
* This file is part of the libLTE library.
|
||||
* This file is part of the srsLTE library.
|
||||
*
|
||||
* libLTE is free software: you can redistribute it and/or modify
|
||||
* srsLTE 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,
|
||||
* srsLTE 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.
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue