mirror of
https://github.com/gnss-sdr/gnss-sdr
synced 2024-06-25 22:43:14 +00:00
![Cillian O'Driscoll](/assets/img/avatar_default.png)
This implements a generic loop filter. Based on the analog PLL filters from Kaplan and Hegarty, with a bilinear (Tustin's) transform from s-plane to z-plane ( 1/s -> T/2 ( 1 + z^-1 )/( 1 - z^-1 ) ) Also added tests. Note the "truth" outputs were derived from an Octave implementation of the loop filter and Octave's builtin filter function
67 lines
2.4 KiB
CMake
67 lines
2.4 KiB
CMake
# Copyright (C) 2012-2015 (see AUTHORS file for a list of contributors)
|
|
#
|
|
# This file is part of GNSS-SDR.
|
|
#
|
|
# GNSS-SDR is free software: you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation, either version 3 of the License, or
|
|
# (at your option) any later version.
|
|
#
|
|
# GNSS-SDR 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 General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with GNSS-SDR. If not, see <http://www.gnu.org/licenses/>.
|
|
#
|
|
|
|
|
|
if(ENABLE_CUDA)
|
|
# Append current NVCC flags by something, eg comput capability
|
|
# set(CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS} --gpu-architecture sm_30)
|
|
list(APPEND CUDA_NVCC_FLAGS "-gencode arch=compute_30,code=sm_30; -std=c++11;-O3; -use_fast_math -default-stream per-thread")
|
|
set(CUDA_PROPAGATE_HOST_FLAGS OFF)
|
|
CUDA_INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_SOURCE_DIR})
|
|
set(LIB_TYPE STATIC) #set the lib type
|
|
CUDA_ADD_LIBRARY(CUDA_CORRELATOR_LIB ${LIB_TYPE} cuda_multicorrelator.h cuda_multicorrelator.cu)
|
|
set(OPT_TRACKING_LIBRARIES ${OPT_TRACKING_LIBRARIES} CUDA_CORRELATOR_LIB)
|
|
set(OPT_TRACKING_INCLUDES ${OPT_TRACKING_INCLUDES} ${CUDA_INCLUDE_DIRS} )
|
|
endif(ENABLE_CUDA)
|
|
|
|
|
|
set(TRACKING_LIB_SOURCES
|
|
correlator.cc
|
|
lock_detectors.cc
|
|
tcp_communication.cc
|
|
tcp_packet_data.cc
|
|
tracking_2nd_DLL_filter.cc
|
|
tracking_2nd_PLL_filter.cc
|
|
tracking_discriminators.cc
|
|
tracking_FLL_PLL_filter.cc
|
|
tracking_loop_filter.cc
|
|
)
|
|
|
|
include_directories(
|
|
$(CMAKE_CURRENT_SOURCE_DIR)
|
|
${CMAKE_SOURCE_DIR}/src/core/system_parameters
|
|
${CMAKE_SOURCE_DIR}/src/core/interfaces
|
|
${CMAKE_SOURCE_DIR}/src/core/receiver
|
|
${VOLK_INCLUDE_DIRS}
|
|
${OPT_TRACKING_INCLUDES}
|
|
)
|
|
|
|
if(ENABLE_GENERIC_ARCH)
|
|
add_definitions( -DGENERIC_ARCH=1 )
|
|
endif(ENABLE_GENERIC_ARCH)
|
|
|
|
if (SSE3_AVAILABLE)
|
|
add_definitions( -DHAVE_SSE3=1 )
|
|
endif(SSE3_AVAILABLE)
|
|
|
|
|
|
file(GLOB TRACKING_LIB_HEADERS "*.h")
|
|
add_library(tracking_lib ${TRACKING_LIB_SOURCES} ${TRACKING_LIB_HEADERS})
|
|
source_group(Headers FILES ${TRACKING_LIB_HEADERS})
|
|
target_link_libraries(tracking_lib ${OPT_TRACKING_LIBRARIES} ${VOLK_LIBRARIES} ${GNURADIO_RUNTIME_LIBRARIES})
|