master
ismagom 10 years ago
commit 8722ad8037

@ -1,15 +1,15 @@
# #
# Copyright 2012-2013 The libLTE Developers. See the # Copyright 2012-2013 The srsLTE Developers. See the
# COPYRIGHT file at the top-level directory of this distribution. # COPYRIGHT file at the top-level directory of this distribution.
# #
# 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 # it under the terms of the GNU Lesser General Public License as
# published by the Free Software Foundation, either version 3 of # published by the Free Software Foundation, either version 3 of
# the License, or (at your option) any later version. # 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 # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Lesser General Public License for more details. # GNU Lesser General Public License for more details.
@ -32,7 +32,7 @@ endif(${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR})
# Project setup # Project setup
######################################################################## ########################################################################
CMAKE_MINIMUM_REQUIRED (VERSION 2.6) CMAKE_MINIMUM_REQUIRED (VERSION 2.6)
PROJECT (LIBLTE) PROJECT (SRSLTE)
LIST(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake/modules") 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: The following copyright notices are for libraries used within libLTE:

@ -4,10 +4,10 @@
## # The following are required to uses Dart and the Cdash dashboard ## # The following are required to uses Dart and the Cdash dashboard
## ENABLE_TESTING() ## ENABLE_TESTING()
## INCLUDE(CTest) ## INCLUDE(CTest)
set(CTEST_PROJECT_NAME "libLTE") set(CTEST_PROJECT_NAME "srsLTE")
set(CTEST_NIGHTLY_START_TIME "00:00:00 GMT") set(CTEST_NIGHTLY_START_TIME "00:00:00 GMT")
set(CTEST_DROP_METHOD "http") set(CTEST_DROP_METHOD "http")
set(CTEST_DROP_SITE "my.cdash.org") 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) set(CTEST_DROP_SITE_CDASH TRUE)

@ -30,7 +30,7 @@ Download & Install Instructions
* Mandatory dependencies: * Mandatory dependencies:
* libfftw * libfftw
* Optional requirements: * 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. * 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. * 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 # The original file was copied from an Ubuntu Linux install
# /usr/share/cmake-2.8/Modules/FindMatlab.cmake # /usr/share/cmake-2.8/Modules/FindMatlab.cmake
set(MATLAB_FOUND 0) set(MATLAB_FOUND FALSE)
if(WIN32) if(WIN32)
# Search for a version of Matlab available, starting from the most modern one to older versions # 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") foreach(MATVER "7.14" "7.11" "7.10" "7.9" "7.8" "7.7" "7.6" "7.5" "7.4")
@ -185,7 +185,7 @@ set(MATLAB_LIBRARIES
) )
if(MATLAB_INCLUDE_DIR AND MATLAB_LIBRARIES) if(MATLAB_INCLUDE_DIR AND MATLAB_LIBRARIES)
set(MATLAB_FOUND 1) set(MATLAB_FOUND TRUE)
endif() endif()
# 32-bit or 64-bit mex # 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)

@ -1,15 +1,15 @@
# #
# Copyright 2012-2013 The libLTE Developers. See the # Copyright 2012-2013 The srsLTE Developers. See the
# COPYRIGHT file at the top-level directory of this distribution. # COPYRIGHT file at the top-level directory of this distribution.
# #
# 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 # it under the terms of the GNU Lesser General Public License as
# published by the Free Software Foundation, either version 3 of # published by the Free Software Foundation, either version 3 of
# the License, or (at your option) any later version. # 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 # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Lesser General Public License for more details. # GNU Lesser General Public License for more details.

@ -1,15 +1,15 @@
# #
# Copyright 2012-2013 The libLTE Developers. See the # Copyright 2012-2013 The srsLTE Developers. See the
# COPYRIGHT file at the top-level directory of this distribution. # COPYRIGHT file at the top-level directory of this distribution.
# #
# 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 # it under the terms of the GNU Lesser General Public License as
# published by the Free Software Foundation, either version 3 of # published by the Free Software Foundation, either version 3 of
# the License, or (at your option) any later version. # 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 # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Lesser General Public License for more details. # GNU Lesser General Public License for more details.

@ -1,15 +1,15 @@
# #
# Copyright 2012-2013 The libLTE Developers. See the # Copyright 2012-2013 The srsLTE Developers. See the
# COPYRIGHT file at the top-level directory of this distribution. # COPYRIGHT file at the top-level directory of this distribution.
# #
# 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 # it under the terms of the GNU Lesser General Public License as
# published by the Free Software Foundation, either version 3 of # published by the Free Software Foundation, either version 3 of
# the License, or (at your option) any later version. # 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 # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Lesser General Public License for more details. # GNU Lesser General Public License for more details.

@ -1,15 +1,15 @@
# #
# Copyright 2012-2013 The libLTE Developers. See the # Copyright 2012-2013 The srsLTE Developers. See the
# COPYRIGHT file at the top-level directory of this distribution. # COPYRIGHT file at the top-level directory of this distribution.
# #
# 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 # it under the terms of the GNU Lesser General Public License as
# published by the Free Software Foundation, either version 3 of # published by the Free Software Foundation, either version 3 of
# the License, or (at your option) any later version. # 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 # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Lesser General Public License for more details. # GNU Lesser General Public License for more details.

@ -1,15 +1,15 @@
# #
# Copyright 2012-2013 The libLTE Developers. See the # Copyright 2012-2013 The srsLTE Developers. See the
# COPYRIGHT file at the top-level directory of this distribution. # COPYRIGHT file at the top-level directory of this distribution.
# #
# 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 # it under the terms of the GNU Lesser General Public License as
# published by the Free Software Foundation, either version 3 of # published by the Free Software Foundation, either version 3 of
# the License, or (at your option) any later version. # 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 # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Lesser General Public License for more details. # GNU Lesser General Public License for more details.
@ -37,27 +37,28 @@ if(NOT MATLAB_MEX_PATH)
) )
endif() endif()
IF (MATLAB_FOUND)
message(STATUS "Found MATLAB in ${MATLAB_ROOT}")
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) if(MATLAB_FOUND)
message(STATUS "Found MATLAB in ${MATLAB_ROOT}")
add_library(srslte_mex SHARED mexutils.c)
install(TARGETS srslte_mex DESTINATION ${LIBRARY_DIR})
liblte_set_pic(srslte_mex)
include_directories(${MATLAB_INCLUDE_DIR}) include_directories(${MATLAB_INCLUDE_DIR})
endif(MATLAB_FOUND) endif(MATLAB_FOUND)
if(OCTAVE_FOUND) if(OCTAVE_FOUND)
message(STATUS "Found OCTAVE in ${OCTAVE_INCLUDE_PATHS}")
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}) include_directories(${OCTAVE_INCLUDE_DIR})
endif(OCTAVE_FOUND) endif(OCTAVE_FOUND)
ELSEIF (MATLAB_FOUND OR OCTAVE_FOUND) if(NOT MATLAB_FOUND)
if(NOT OCTAVE_FOUND)
message(STATUS "Could NOT find OCTAVE or MATLAB. MEX files won't be compiled") message(STATUS "Could NOT find OCTAVE or MATLAB. MEX files won't be compiled")
ENDIF(MATLAB_FOUND OR OCTAVE_FOUND) endif(NOT OCTAVE_FOUND)
endif(NOT MATLAB_FOUND)

@ -1,15 +1,15 @@
# #
# Copyright 2012-2013 The libLTE Developers. See the # Copyright 2012-2013 The srsLTE Developers. See the
# COPYRIGHT file at the top-level directory of this distribution. # COPYRIGHT file at the top-level directory of this distribution.
# #
# 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 # it under the terms of the GNU Lesser General Public License as
# published by the Free Software Foundation, either version 3 of # published by the Free Software Foundation, either version 3 of
# the License, or (at your option) any later version. # 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 # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Lesser General Public License for more details. # GNU Lesser General Public License for more details.

@ -1,15 +1,15 @@
# #
# Copyright 2012-2013 The libLTE Developers. See the # Copyright 2012-2013 The srsLTE Developers. See the
# COPYRIGHT file at the top-level directory of this distribution. # COPYRIGHT file at the top-level directory of this distribution.
# #
# 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 # it under the terms of the GNU Lesser General Public License as
# published by the Free Software Foundation, either version 3 of # published by the Free Software Foundation, either version 3 of
# the License, or (at your option) any later version. # 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 # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Lesser General Public License for more details. # GNU Lesser General Public License for more details.
@ -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) 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) target_link_libraries(pdsch_enodeb cuhd)
ENDIF(${CUHD_FIND} EQUAL -1) ENDIF(${CUHD_FIND} EQUAL -1)
FIND_PACKAGE(LIBSDRGUI) FIND_PACKAGE(SRSGUI)
IF(LIBSDRGUI_FOUND) IF(SRSGUI_FOUND)
include_directories(${LIBSDRGUI_INCLUDE_DIRS}) include_directories(${SRSGUI_INCLUDE_DIRS})
target_link_libraries(pdsch_ue ${LIBSDRGUI_LIBRARIES}) target_link_libraries(pdsch_ue ${SRSGUI_LIBRARIES})
ELSE(LIBSDRGUI_FOUND) ELSE(SRSGUI_FOUND)
SET_TARGET_PROPERTIES(pdsch_ue PROPERTIES COMPILE_DEFINITIONS "DISABLE_GRAPHICS") 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) add_executable(cell_measurement cell_measurement.c cuhd_utils.c)
target_link_libraries(cell_measurement cuhd srslte) 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.") MESSAGE(STATUS " UHD examples will be installed.")
ELSE(${CUHD_FIND} GREATER -1) ELSE(${CUHD_FIND} GREATER -1)

@ -56,7 +56,7 @@ cell_search_cfg_t cell_detect_config = {
//#define STDOUT_COMPACT //#define STDOUT_COMPACT
#ifndef DISABLE_GRAPHICS #ifndef DISABLE_GRAPHICS
#include "libsdrgui/libsdrgui.h" #include "srsgui/srsgui.h"
void init_plots(); void init_plots();
pthread_t plot_thread; pthread_t plot_thread;
sem_t plot_sem; 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_ #ifndef AGC_
#define AGC_ #define AGC_
@ -36,10 +43,6 @@
#include "srslte/config.h" #include "srslte/config.h"
/* Automatic Gain Control
*
*/
#define SRSLTE_AGC_DEFAULT_BW (5e-2) #define SRSLTE_AGC_DEFAULT_BW (5e-2)
typedef struct SRSLTE_API{ 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_ #ifndef CHEST_DL_
#define CHEST_DL_ #define CHEST_DL_
@ -38,15 +50,6 @@
#include "srslte/ch_estimation/refsignal_dl.h" #include "srslte/ch_estimation/refsignal_dl.h"
#include "srslte/common/phy_common.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_FREQ_LEN 10
#define SRSLTE_CHEST_MAX_FILTER_TIME_LEN 4 #define SRSLTE_CHEST_MAX_FILTER_TIME_LEN 4

@ -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_ #ifndef SRSLTE_REFSIGNAL_DL_
#define SRSLTE_REFSIGNAL_DL_ #define SRSLTE_REFSIGNAL_DL_
/* Object to manage Downlink reference signals for channel estimation.
*
*/
#include "srslte/config.h" #include "srslte/config.h"
#include "srslte/common/phy_common.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_ #ifndef SRSLTE_REFSIGNAL_UL_
#define SRSLTE_REFSIGNAL_UL_ #define SRSLTE_REFSIGNAL_UL_
/* Object to manage Downlink reference signals for channel estimation.
*
*/
#include "srslte/config.h" #include "srslte/config.h"
#include "srslte/phch/pucch.h" #include "srslte/phch/pucch.h"
#include "srslte/common/phy_common.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 <complex.h>
#include <stdint.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_ #ifndef _LTEBASE_
#define _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_ #ifndef LTESEQ_
#define 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_ #ifndef TIMESTAMP_
#define TIMESTAMP_ #define TIMESTAMP_
@ -32,13 +41,6 @@
#include <time.h> #include <time.h>
#include "srslte/config.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{ typedef struct SRSLTE_API{
time_t full_secs; time_t full_secs;
double frac_secs; double frac_secs;

@ -32,18 +32,23 @@
#include <stdbool.h> #include <stdbool.h>
#include "srslte/config.h" #include "srslte/config.h"
/**********************************************************************************************
/* Generic DFT module. * File: dft.h
*
* Description: Generic DFT module.
* Supports one-dimensional complex and real transforms. Options are set * Supports one-dimensional complex and real transforms. Options are set
* using the dft_plan_set_x functions. * using the dft_plan_set_x functions.
* *
* Options (default is false): * Options (default is false):
*
* mirror - Rearranges negative and positive frequency bins. Swaps after * mirror - Rearranges negative and positive frequency bins. Swaps after
* transform for FORWARD, swaps before transform for BACKWARD. * transform for FORWARD, swaps before transform for BACKWARD.
* db - Provides output in dB (10*log10(x)). * db - Provides output in dB (10*log10(x)).
* norm - Normalizes output (by sqrt(len) for complex, len for real). * norm - Normalizes output (by sqrt(len) for complex, len for real).
* dc - Handles insertion and removal of null DC carrier internally. * dc - Handles insertion and removal of null DC carrier internally.
*/ *
* Reference:
*********************************************************************************************/
typedef enum { typedef enum {
SRSLTE_DFT_COMPLEX, SRSLTE_REAL 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_ #ifndef DFTPREC_
#define DFTPREC_ #define DFTPREC_

@ -29,6 +29,14 @@
#ifndef LTEFFT_ #ifndef LTEFFT_
#define 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 <strings.h>
#include <stdlib.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_ #ifndef CONVCODER_
#define 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_ #ifndef CRC_
#define 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_ #ifndef RM_CONV_
#define 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_ #ifndef RM_TURBO_
#define 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 #ifndef _TC_INTERL_H
#define _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_ #ifndef TURBOCODER_
#define 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_ #ifndef TURBODECODER_
#define 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_ #ifndef VITERBI_
#define VITERBI_ #define VITERBI_

@ -25,6 +25,13 @@
* *
*/ */
/******************************************************************************
* File: binsource.h
*
* Description: Pseudo-random binary source.
*
* Reference:
*****************************************************************************/
#ifndef BINSOURCE_ #ifndef BINSOURCE_
#define 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_ #ifndef FILESINK_
#define 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_ #ifndef FILESOURCE_
#define 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_ #ifndef NETSINK_
#define 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_ #ifndef NETSOURCE_
#define 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_ #ifndef LAYERMAP_H_
#define 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_ #ifndef PRECODING_H_
#define 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_ #ifndef DEMOD_HARD_
#define 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_ #ifndef DEMOD_SOFT_
#define 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_ #ifndef MOD_
#define MOD_ #define MOD_

@ -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_ #ifndef MODEM_TABLE_
#define 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_ #ifndef CQI_
#define CQI_ #define CQI_
@ -33,11 +41,6 @@
#include "srslte/config.h" #include "srslte/config.h"
#include "srslte/common/phy_common.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 /* Table 5.2.2.6.2-1: Fields for channel quality information feedback for higher layer configured subband
CQI reports 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_ #ifndef DCI_
#define DCI_ #define DCI_
@ -34,13 +42,6 @@
#include "srslte/common/phy_common.h" #include "srslte/common/phy_common.h"
#include "srslte/phch/ra.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 #define DCI_MAX_BITS 57
typedef enum { typedef enum {

@ -25,6 +25,13 @@
* *
*/ */
/******************************************************************************
* File: harq.h
*
* Description: Hybrid Automatic Repeat Request (HARQ)
*
* Reference:
*****************************************************************************/
#ifndef HARQ_ #ifndef HARQ_
#define HARQ_ #define HARQ_

@ -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_ #ifndef PBCH_
#define 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_ #ifndef PCFICH_
#define 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_ #ifndef PDCCH_
#define 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_ #ifndef PDSCH_
#define 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_ #ifndef PHICH_
#define 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_ #ifndef PRACH_
#define 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_ #ifndef PUCCH_
#define 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_ #ifndef PUSCH_
#define 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_ #ifndef RB_ALLOC_H_
#define RB_ALLOC_H_ #define RB_ALLOC_H_
@ -34,10 +42,6 @@
#include "srslte/config.h" #include "srslte/config.h"
#include "srslte/common/phy_common.h" #include "srslte/common/phy_common.h"
/** Structures and utility functions for DL/UL resource
* allocation.
*/
typedef struct SRSLTE_API { typedef struct SRSLTE_API {
srslte_mod_t mod; srslte_mod_t mod;
int tbs; 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_ #ifndef _REGS_H_
#define _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_ #ifndef SCH_
#define 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_ #ifndef UCI_
#define UCI_ #define UCI_

@ -25,6 +25,14 @@
* *
*/ */
/******************************************************************************
* File: decim.h
*
* Description: Integer linear decimation
*
* Reference:
*****************************************************************************/
#ifndef DECIM_H #ifndef DECIM_H
#define DECIM_H #define DECIM_H

@ -25,6 +25,14 @@
* *
*/ */
/******************************************************************************
* File: interp.h
*
* Description: Linear and vector interpolation
*
* Reference:
*****************************************************************************/
#ifndef INTERP_H #ifndef INTERP_H
#define 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_ #ifndef RESAMPLE_ARB_
#define 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_ #ifndef SCRAMBLING_
#define SCRAMBLING_ #define SCRAMBLING_

@ -25,6 +25,13 @@
* *
*/ */
/******************************************************************************
* File: cfo.h
*
* Description: Carrier frequency offset correction using complex exponentials.
*
* Reference:
*****************************************************************************/
#ifndef CFO_ #ifndef CFO_
#define 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_ #ifndef PSS_
#define 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 #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 */ /* Low-level API */
typedef struct SRSLTE_API { typedef struct SRSLTE_API {

@ -25,6 +25,13 @@
* *
*/ */
/******************************************************************************
* File: sfo.h
*
* Description: Sampling frequency offset estimation.
*
* Reference:
*****************************************************************************/
#ifndef SFO_ #ifndef SFO_
#define 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_ #ifndef SSS_
#define 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_ #ifndef SYNC_
#define SYNC_ #define SYNC_
@ -40,18 +57,6 @@
#define SRSLTE_SYNC_FFT_SZ_MIN 64 #define SRSLTE_SYNC_FFT_SZ_MIN 64
#define SRSLTE_SYNC_FFT_SZ_MAX 2048 #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 enum {SSS_DIFF=0, SSS_PARTIAL_3=2, SSS_FULL=1} sss_alg_t;
typedef struct SRSLTE_API { 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_ #ifndef UE_CELLSEARCH_
#define UE_CELLSEARCH_ #define UE_CELLSEARCH_
@ -38,17 +54,6 @@
#include "srslte/phch/pbch.h" #include "srslte/phch/pbch.h"
#include "srslte/dft/ofdm.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 * TODO: Check also peak offset
*/ */

@ -25,16 +25,19 @@
* *
*/ */
#ifndef UEDL_H /******************************************************************************
#define UEDL_H * File: ue_dl.h
/*******************************************************
* *
* This module is a frontend to all the data and control channels processing * Description: UE downlink object.
* modules. *
********************************************************/ * This module is a frontend to all the downlink data and control
* channel processing modules.
*
* Reference:
*****************************************************************************/
#ifndef UEDL_H
#define UEDL_H
#include "srslte/ch_estimation/chest_dl.h" #include "srslte/ch_estimation/chest_dl.h"
#include "srslte/dft/ofdm.h" #include "srslte/dft/ofdm.h"

@ -25,17 +25,14 @@
* *
*/ */
#ifndef UE_MIB_ /******************************************************************************
#define UE_MIB_ * File: ue_mib.h
/************************************************************
* *
* This object decodes the MIB from the PBCH of an LTE signal. * Description: This object decodes the MIB from the PBCH of an LTE signal.
* *
* The function srslte_ue_mib_decode() shall be called multiple times, * The function srslte_ue_mib_decode() shall be called multiple
* each passing a number of samples multiple of 19200, sampled at 1.92 MHz * times, each passing a number of samples multiple of 19200,
* (that is, 10 ms of samples). * sampled at 1.92 MHz (that is, 10 ms of samples).
* *
* The function uses the sync_t object to find the PSS sequence and * The function uses the sync_t object to find the PSS sequence and
* decode the PBCH to obtain the MIB. * decode the PBCH to obtain the MIB.
@ -44,7 +41,11 @@
* *
* See ue_cell_detect.c for an example. * See ue_cell_detect.c for an example.
* *
************************************************************/ * Reference:
*****************************************************************************/
#ifndef UE_MIB_
#define UE_MIB_
#include <stdbool.h> #include <stdbool.h>

@ -25,6 +25,14 @@
* *
*/ */
/******************************************************************************
* File: ue_phy.h
*
* Description: Top-level class wrapper for PHY layer.
*
* Reference:
*****************************************************************************/
#include "srslte/srslte.h" #include "srslte/srslte.h"
#include "srslte/utils/queue.h" #include "srslte/utils/queue.h"

@ -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_ #ifndef UE_SYNC_
#define UE_SYNC_ #define UE_SYNC_
@ -39,22 +61,6 @@
#include "srslte/common/timestamp.h" #include "srslte/common/timestamp.h"
#include "srslte/io/filesource.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; typedef enum SRSLTE_API { SF_FIND, SF_TRACK} srslte_ue_sync_state_t;

@ -25,15 +25,19 @@
* *
*/ */
#ifndef UEUL_H /******************************************************************************
#define UEUL_H * File: ue_ul.h
*
/******************************************************* * Description: UE uplink object.
* *
* This module is a frontend to all the data and control channels processing * This module is a frontend to all the uplink data and control
* modules. * channel processing modules.
********************************************************/ *
* Reference:
*****************************************************************************/
#ifndef UEUL_H
#define UEUL_H
#include "srslte/common/phy_common.h" #include "srslte/common/phy_common.h"
#include "srslte/ch_estimation/chest_dl.h" #include "srslte/ch_estimation/chest_dl.h"

@ -25,6 +25,13 @@
* *
*/ */
/******************************************************************************
* File: bit.h
*
* Description: Bit-level utilities.
*
* Reference:
*****************************************************************************/
#ifndef BIT_ #ifndef BIT_
#define BIT_ #define BIT_

@ -25,6 +25,13 @@
* *
*/ */
/******************************************************************************
* File: cexptab.h
*
* Description: Utility module for generation of complex exponential tables.
*
* Reference:
*****************************************************************************/
#ifndef CEXPTAB_ #ifndef CEXPTAB_
#define CEXPTAB_ #define CEXPTAB_

@ -25,6 +25,13 @@
* *
*/ */
/******************************************************************************
* File: convolution.h
*
* Description: Utility module for fast convolution using FFT.
*
* Reference:
*****************************************************************************/
#ifndef CONVOLUTION_H_ #ifndef CONVOLUTION_H_
#define CONVOLUTION_H_ #define CONVOLUTION_H_

@ -25,6 +25,14 @@
* *
*/ */
/******************************************************************************
* File: debug.h
*
* Description: Debug output utilities.
*
* Reference:
*****************************************************************************/
#ifndef DEBUG_H #ifndef DEBUG_H
#define DEBUG_H #define DEBUG_H

@ -25,6 +25,14 @@
* *
*/ */
/******************************************************************************
* File: queue.h
*
* Description: Queue used at interface of PHY/MAC
*
* Reference:
*****************************************************************************/
#ifndef QUEUE_H #ifndef QUEUE_H
#define QUEUE_H #define QUEUE_H

@ -25,6 +25,13 @@
* *
*/ */
/******************************************************************************
* File: vector.h
*
* Description: Vector functions using SIMD instructions where possible.
*
* Reference:
*****************************************************************************/
#ifndef VECTOR_ #ifndef VECTOR_
#define VECTOR_ #define VECTOR_

@ -1,15 +1,15 @@
# #
# Copyright 2012-2013 The libLTE Developers. See the # Copyright 2012-2013 The srsLTE Developers. See the
# COPYRIGHT file at the top-level directory of this distribution. # COPYRIGHT file at the top-level directory of this distribution.
# #
# 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 # it under the terms of the GNU Lesser General Public License as
# published by the Free Software Foundation, either version 3 of # published by the Free Software Foundation, either version 3 of
# the License, or (at your option) any later version. # 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 # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Lesser General Public License for more details. # GNU Lesser General Public License for more details.
@ -38,7 +38,7 @@ ELSE(${DISABLE_VOLK})
FIND_PACKAGE(Volk) FIND_PACKAGE(Volk)
ENDIF(${DISABLE_VOLK}) ENDIF(${DISABLE_VOLK})
FIND_PACKAGE(LIBSDRGUI) FIND_PACKAGE(SRSGUI)
######################################################################## ########################################################################
# Recurse subdirectories and compile all source files into the same lib # Recurse subdirectories and compile all source files into the same lib

@ -1,15 +1,15 @@
# #
# Copyright 2012-2013 The libLTE Developers. See the # Copyright 2012-2013 The srsLTE Developers. See the
# COPYRIGHT file at the top-level directory of this distribution. # COPYRIGHT file at the top-level directory of this distribution.
# #
# 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 # it under the terms of the GNU Lesser General Public License as
# published by the Free Software Foundation, either version 3 of # published by the Free Software Foundation, either version 3 of
# the License, or (at your option) any later version. # 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 # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Lesser General Public License for more details. # GNU Lesser General Public License for more details.

@ -2,19 +2,19 @@
* *
* \section COPYRIGHT * \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. * COPYRIGHT file at the top-level directory of this distribution.
* *
* \section LICENSE * \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 * it under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation, either version 3 of * published by the Free Software Foundation, either version 3 of
* the License, or (at your option) any later version. * 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 * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details. * GNU Lesser General Public License for more details.

@ -2,19 +2,19 @@
* *
* \section COPYRIGHT * \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. * COPYRIGHT file at the top-level directory of this distribution.
* *
* \section LICENSE * \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 * it under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation, either version 3 of * published by the Free Software Foundation, either version 3 of
* the License, or (at your option) any later version. * 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 * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details. * GNU Lesser General Public License for more details.

@ -2,19 +2,19 @@
* *
* \section COPYRIGHT * \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. * COPYRIGHT file at the top-level directory of this distribution.
* *
* \section LICENSE * \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 * it under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation, either version 3 of * published by the Free Software Foundation, either version 3 of
* the License, or (at your option) any later version. * 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 * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details. * GNU Lesser General Public License for more details.

@ -2,19 +2,19 @@
* *
* \section COPYRIGHT * \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. * COPYRIGHT file at the top-level directory of this distribution.
* *
* \section LICENSE * \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 * it under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation, either version 3 of * published by the Free Software Foundation, either version 3 of
* the License, or (at your option) any later version. * 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 * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details. * GNU Lesser General Public License for more details.

@ -2,19 +2,19 @@
* *
* \section COPYRIGHT * \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. * COPYRIGHT file at the top-level directory of this distribution.
* *
* \section LICENSE * \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 * it under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation, either version 3 of * published by the Free Software Foundation, either version 3 of
* the License, or (at your option) any later version. * 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 * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details. * GNU Lesser General Public License for more details.

@ -2,19 +2,19 @@
* *
* \section COPYRIGHT * \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. * COPYRIGHT file at the top-level directory of this distribution.
* *
* \section LICENSE * \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 * it under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation, either version 3 of * published by the Free Software Foundation, either version 3 of
* the License, or (at your option) any later version. * 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 * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details. * GNU Lesser General Public License for more details.

@ -1,15 +1,15 @@
# #
# Copyright 2012-2013 The libLTE Developers. See the # Copyright 2012-2013 The srsLTE Developers. See the
# COPYRIGHT file at the top-level directory of this distribution. # COPYRIGHT file at the top-level directory of this distribution.
# #
# 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 # it under the terms of the GNU Lesser General Public License as
# published by the Free Software Foundation, either version 3 of # published by the Free Software Foundation, either version 3 of
# the License, or (at your option) any later version. # 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 # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Lesser General Public License for more details. # GNU Lesser General Public License for more details.

@ -2,19 +2,19 @@
* *
* \section COPYRIGHT * \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. * COPYRIGHT file at the top-level directory of this distribution.
* *
* \section LICENSE * \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 * it under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation, either version 3 of * published by the Free Software Foundation, either version 3 of
* the License, or (at your option) any later version. * 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 * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details. * GNU Lesser General Public License for more details.

@ -2,19 +2,19 @@
* *
* \section COPYRIGHT * \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. * COPYRIGHT file at the top-level directory of this distribution.
* *
* \section LICENSE * \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 * it under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation, either version 3 of * published by the Free Software Foundation, either version 3 of
* the License, or (at your option) any later version. * 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 * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details. * GNU Lesser General Public License for more details.

@ -2,19 +2,19 @@
* *
* \section COPYRIGHT * \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. * COPYRIGHT file at the top-level directory of this distribution.
* *
* \section LICENSE * \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 * it under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation, either version 3 of * published by the Free Software Foundation, either version 3 of
* the License, or (at your option) any later version. * 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 * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details. * GNU Lesser General Public License for more details.

@ -2,19 +2,19 @@
* *
* \section COPYRIGHT * \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. * COPYRIGHT file at the top-level directory of this distribution.
* *
* \section LICENSE * \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 * it under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation, either version 3 of * published by the Free Software Foundation, either version 3 of
* the License, or (at your option) any later version. * 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 * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details. * GNU Lesser General Public License for more details.

@ -2,19 +2,19 @@
* *
* \section COPYRIGHT * \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. * COPYRIGHT file at the top-level directory of this distribution.
* *
* \section LICENSE * \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 * it under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation, either version 3 of * published by the Free Software Foundation, either version 3 of
* the License, or (at your option) any later version. * 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 * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details. * GNU Lesser General Public License for more details.

@ -2,19 +2,19 @@
* *
* \section COPYRIGHT * \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. * COPYRIGHT file at the top-level directory of this distribution.
* *
* \section LICENSE * \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 * it under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation, either version 3 of * published by the Free Software Foundation, either version 3 of
* the License, or (at your option) any later version. * 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 * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details. * GNU Lesser General Public License for more details.

@ -2,19 +2,19 @@
* *
* \section COPYRIGHT * \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. * COPYRIGHT file at the top-level directory of this distribution.
* *
* \section LICENSE * \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 * it under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation, either version 3 of * published by the Free Software Foundation, either version 3 of
* the License, or (at your option) any later version. * 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 * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details. * GNU Lesser General Public License for more details.

@ -2,19 +2,19 @@
* *
* \section COPYRIGHT * \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. * COPYRIGHT file at the top-level directory of this distribution.
* *
* \section LICENSE * \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 * it under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation, either version 3 of * published by the Free Software Foundation, either version 3 of
* the License, or (at your option) any later version. * 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 * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details. * GNU Lesser General Public License for more details.

@ -2,19 +2,19 @@
* *
* \section COPYRIGHT * \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. * COPYRIGHT file at the top-level directory of this distribution.
* *
* \section LICENSE * \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 * it under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation, either version 3 of * published by the Free Software Foundation, either version 3 of
* the License, or (at your option) any later version. * 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 * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details. * 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…
Cancel
Save