1
0
mirror of https://github.com/gnss-sdr/gnss-sdr synced 2024-11-18 15:54:59 +00:00
Commit Graph

318 Commits

Author SHA1 Message Date
Javier Arribas
27588fa83b Artemisa tracking is almost working. Code cleaning, refactoring and renaming is in progress! 2015-11-16 19:23:25 +01:00
Javier
c2e254debc New DLL PLL Artemisa tracking block skeleton. Not usable yet! 2015-11-15 22:26:42 +01:00
Javier Arribas
2039e998ff Pinned memory (Zero copy) huge improvement for GPU tracking. 2015-10-15 19:09:09 +02:00
Javier Arribas
a4655e2b03 Merged with github next 2015-10-08 14:37:51 +02:00
Carles Fernandez
a84b4baef0 Removing cudahelpers library and usage by a copyright issue. It does not
affect functionality.
2015-09-10 17:46:38 +02:00
Javier Arribas
6aef3478cf Removed CheckCudaErrors function and the cuda helpers dependencies in
CUDA accelerators
2015-09-10 15:15:01 +02:00
Carles Fernandez
0821216970 Moving cudahelpers headers so other blocks can use it more easily. 2015-08-25 20:49:37 +02:00
Carles Fernandez
ef136e5c74 Some CUDA cleaning and documentation 2015-08-25 19:01:02 +02:00
Carles Fernandez
429e4e8776 Fixing compilation when CUDA is not present 2015-08-25 17:07:36 +02:00
Javier Arribas
af99f340a4 Merge branch 'next' of https://github.com/Arribas/gnss-sdr.git into next
Conflicts:
	src/algorithms/tracking/libs/cuda_multicorrelator.cu
2015-08-06 17:13:03 +02:00
Javier Arribas
1aa84cd1c4 Updated CUDA kernels and several GPU tracking optimizations.
Bug fix in GPS_L1_CA_DLL_PLL binary dump
2015-08-06 17:05:15 +02:00
Javier
fb2b12403a Multi-GPU device suport (splits the tracking channels between all the
availables GPUs (CUDA only!))
2015-07-24 18:07:33 +02:00
Javier Arribas
26cf90cdd4 First working version of the GPU GPS tracking block (it requires NVIDIA
CUDA
3.0 GPU hardware)
2015-07-24 17:21:25 +02:00
Javier Arribas
f722f5f8f7 Added GPU tracking block for GPS L1 CA. Not activable yet... 2015-07-23 18:07:52 +02:00
Javier Arribas
4fc61af172 Adding cuda ultra-fast correlator library. Not used yet, but optionally
compiled. All CMAKEs ready!
2015-07-22 18:16:54 +02:00
Carles Fernandez
9d2e22ea21 removing unused code, code cleaning 2015-05-29 19:10:28 +02:00
Carles Fernandez
79192a0bbd fixing coverity issues 2015-05-13 23:50:21 +02:00
Carles Fernandez
a174c490d9 Update copyright year 2015-01-12 21:12:08 +01:00
Carles Fernandez
6620e7d43c Updating copyright year 2015-01-08 19:49:59 +01:00
Carles Fernandez
67434d212c Fixing interface if SSE3 is found 2014-10-01 01:35:48 +02:00
Anthony Arnold
7ded93f93e Fixing preprocessor directive. 2014-09-24 08:23:32 +10:00
Anthony Arnold
77b635e8c0 Merge with next 2014-09-18 02:10:56 +10:00
Anthony Arnold
4c2b0fbc45 Testing for ARM and SSE to compile for armhf 2014-09-18 00:50:44 +10:00
Carles Fernandez
bb62dae014 Changing C-styled cast by C++ static_cast<>() 2014-09-12 13:34:43 +02:00
Carles Fernandez
fd6a8e3cff Better VOLK usage. Memory alignment, calling dispatchers instead of
aligned/unaligned versions. Code cleaning.
2014-09-10 00:23:18 +02:00
Carles Fernandez
1183c73b09 Merge branch 'next' of ssh://carlesfernandez@git.code.sf.net/p/gnss-sdr/cttc into next 2014-09-07 19:51:36 +02:00
Carles Fernandez
322550e0c6 Adding an option to build the binary without detecting the SIMD
instruction set present in the compiling machine, so it can be executed
in other machines without those specific sets.
2014-09-07 19:35:41 +02:00
Javier Arribas
072d0cad67 Important bug found and fixed:
Volk memory alignement for signal vectors was using a hardcoded 16 bytes
value. This parameter is machine-dependant and thus, in modern machines
caused memory exceptions if the parameter not match.

All posix_memalign functions are now replaced by the GNU Radio
volk_malloc(vector_size (bytes), volk_get_alignement());

volk_get_alignement() returns the number of bytes to align the memory
blocks in the current processor.

The memory bug showed up when the receiver is configured with higher
sample rates (>4 Msps!)
2014-09-07 19:11:37 +02:00
Carles Fernandez
dfd9be34a9 Merge branch 'galileo_e5a' of https://github.com/marc-sales/gnss-sdr
into next

Conflicts:
	src/core/receiver/gnss_block_factory.cc
	src/core/receiver/gnss_flowgraph.cc
2014-09-05 18:51:08 +02:00
marc-sales
3b3c809dab Unified acquisition 2014-08-05 02:01:37 +02:00
Carles Fernandez
8531a758ea Includes header files at add_libraries(...), which makes IDEs such as
Xcode to display them
2014-06-28 03:55:57 +02:00
Carles Fernandez
05accfb1d7 Tidying up includes: : C library, C++ library, other libraries' .h, project's .h.
git-svn-id: https://svn.code.sf.net/p/gnss-sdr/code/trunk@476 64b25241-fba3-4117-9849-534c7e92360d
2014-01-12 20:07:38 +00:00
Javier Arribas
a487ee7cbc Fixed some bugs in the volk correlators that caused core dump situations.
git-svn-id: https://svn.code.sf.net/p/gnss-sdr/code/trunk@382 64b25241-fba3-4117-9849-534c7e92360d
2013-07-08 12:57:16 +00:00
Javier Arribas
58b280afb6 Switch to GNU Radio 3.7.x API
git-svn-id: https://svn.code.sf.net/p/gnss-sdr/code/trunk@368 64b25241-fba3-4117-9849-534c7e92360d
2013-07-04 13:47:40 +00:00
Javier Arribas
12003ffa94 GNSS-SDR now uses CMAKE as the only build system. Goodbye BJAM!
git-svn-id: https://svn.code.sf.net/p/gnss-sdr/code/trunk@347 64b25241-fba3-4117-9849-534c7e92360d
2013-03-15 18:03:01 +00:00
Carles Fernandez
ae1cb212de improving documentation
git-svn-id: https://svn.code.sf.net/p/gnss-sdr/code/trunk@335 64b25241-fba3-4117-9849-534c7e92360d
2013-01-28 23:50:09 +00:00
Carles Fernandez
00a8007dc3 Adding Mac OS X support. Tested in Mountain Lion.
git-svn-id: https://svn.code.sf.net/p/gnss-sdr/code/trunk@333 64b25241-fba3-4117-9849-534c7e92360d
2013-01-27 20:50:38 +00:00
Carles Fernandez
c6e974ab21 Starting CMake support. In the root directory of gnss-sdr, type:
$ mkdir build && cd build && cmake ../ && make && make install

git-svn-id: https://svn.code.sf.net/p/gnss-sdr/code/trunk@290 64b25241-fba3-4117-9849-534c7e92360d
2012-12-24 02:33:50 +00:00
Carles Fernandez
4adeef7aec Minor code cleaning
git-svn-id: https://svn.code.sf.net/p/gnss-sdr/code/trunk@287 64b25241-fba3-4117-9849-534c7e92360d
2012-12-14 22:28:25 +00:00
Javier Arribas
080305cee8 New ultra-fast All-In-One Carrier wipe-off and Early-Prompt-Late correlator using Intel AVX SSE3 intrinsics.
Try it using the GPS_L1_CA_DLL_PLL_Optim_Tracking implementatioin for tracking operation!




git-svn-id: https://svn.code.sf.net/p/gnss-sdr/code/trunk@283 64b25241-fba3-4117-9849-534c7e92360d
2012-11-25 19:37:31 +00:00
Javier Arribas
54df5928ab GPS DLL PLL Tracking code rearrange to match the Galileo DLL PLL algorithm and code cleaning.
git-svn-id: https://svn.code.sf.net/p/gnss-sdr/code/trunk@280 64b25241-fba3-4117-9849-534c7e92360d
2012-11-18 18:20:34 +00:00
Javier Arribas
d85f65ed4c Galileo E1b/c tracking improvement and code cleaning
git-svn-id: https://svn.code.sf.net/p/gnss-sdr/code/trunk@255 64b25241-fba3-4117-9849-534c7e92360d
2012-10-24 08:02:51 +00:00
Carles Fernandez
1aea9db69f Changed the "CN_estimators" library name by the more informative "lock_detectors". The CN0 estimators for GPS L1 C/A and Galileo E1 have been unified
git-svn-id: https://svn.code.sf.net/p/gnss-sdr/code/trunk@254 64b25241-fba3-4117-9849-534c7e92360d
2012-10-21 09:54:37 +00:00
Javier Arribas
3628453c52 - Bug in carrier lock detector algorithm corrected
- Code cleaning and DLL/PLL variable renaming in galileo_e1_dll_pll_veml tracking

git-svn-id: https://svn.code.sf.net/p/gnss-sdr/code/trunk@253 64b25241-fba3-4117-9849-534c7e92360d
2012-10-20 16:11:31 +00:00
David Pubill
c241b7b1d6 - Added TCP connector for Galileo E1 simulink tracking
- Added simulink-based Galileo_E1_DLL_PLL_VEML_Tracking

git-svn-id: https://svn.code.sf.net/p/gnss-sdr/code/trunk@250 64b25241-fba3-4117-9849-534c7e92360d
2012-10-19 13:38:25 +00:00
Javier Arribas
a25e712be6 Bug correction for acquisition and tracking: acquisition Doppler sign were inverted and this issue caused several wrong interpretations in tracking algorithms, resulting in a swap in I/Q components. Now the bug was corrected in all tracking algorithms.
git-svn-id: https://svn.code.sf.net/p/gnss-sdr/code/trunk@249 64b25241-fba3-4117-9849-534c7e92360d
2012-10-18 10:24:41 +00:00
Luis Esteve
f0a0f94007 Added documentation to the code
git-svn-id: https://svn.code.sf.net/p/gnss-sdr/code/trunk@245 64b25241-fba3-4117-9849-534c7e92360d
2012-09-12 15:03:38 +00:00
Luis Esteve
45d7220dae First version of Galileo E1 DLL PLL Very Early Minus Late Tracking. Added some functions in Matlab to analyze the results.
git-svn-id: https://svn.code.sf.net/p/gnss-sdr/code/trunk@234 64b25241-fba3-4117-9849-534c7e92360d
2012-08-28 13:38:33 +00:00
Javier Arribas
fb82c2246d Correlator class now takes profit of the GNU Radio memory alignment, used by Volk SIMD functions
git-svn-id: https://svn.code.sf.net/p/gnss-sdr/code/trunk@218 64b25241-fba3-4117-9849-534c7e92360d
2012-07-31 12:35:07 +00:00
David Pubill
aab40c963d Simulink tracking block updated: generation of the Simulink model from a script MATLAB and improvement of the tracking algorithm (both PLL and DLL). Added multi-threading support for MATLAB.
git-svn-id: https://svn.code.sf.net/p/gnss-sdr/code/trunk@208 64b25241-fba3-4117-9849-534c7e92360d
2012-07-03 12:52:12 +00:00
Carles Fernandez
3533a08330 Fixed bug that prevented the code to compile in Mac OS. Documentation added
git-svn-id: https://svn.code.sf.net/p/gnss-sdr/code/trunk@189 64b25241-fba3-4117-9849-534c7e92360d
2012-03-24 02:53:00 +00:00
David Pubill
984b782660 Added a new tracking algorithm that uses TCP sockets to move the work of a processing block to a remote machine executing MATLAB Simulink.
git-svn-id: https://svn.code.sf.net/p/gnss-sdr/code/trunk@185 64b25241-fba3-4117-9849-534c7e92360d
2012-03-16 10:55:58 +00:00
Javier Arribas
5f51f513a3 Correlator class librery now uses volk_profile information to select the best architecture for the SIMD enabled functions.
git-svn-id: https://svn.code.sf.net/p/gnss-sdr/code/trunk@184 64b25241-fba3-4117-9849-534c7e92360d
2012-03-09 15:31:32 +00:00
Javier Arribas
0a62725445 - Improved speed for samples inconsistency check in tracking modules, and
- Added a total elapsed run time counter in main: now it is possible to compare the post-processing time with the signal duration. The elapsed time is reported in STD::COUT when GNSS-SDR finish the main thread.

git-svn-id: https://svn.code.sf.net/p/gnss-sdr/code/trunk@156 64b25241-fba3-4117-9849-534c7e92360d
2012-02-08 19:50:16 +00:00
Carles Fernandez
a8f6695f58 compilation warning cleaned
git-svn-id: https://svn.code.sf.net/p/gnss-sdr/code/trunk@152 64b25241-fba3-4117-9849-534c7e92360d
2012-01-31 00:31:07 +00:00
Carles Fernandez
c186828669 Code cleaning and documentation
git-svn-id: https://svn.code.sf.net/p/gnss-sdr/code/trunk@151 64b25241-fba3-4117-9849-534c7e92360d
2012-01-31 00:03:08 +00:00
Javier Arribas
9f3fbeb52d Code cleaning and few optimizations in tracking modules.
git-svn-id: https://svn.code.sf.net/p/gnss-sdr/code/trunk@148 64b25241-fba3-4117-9849-534c7e92360d
2012-01-29 18:03:56 +00:00
Carles Fernandez
3b5189075b Cleaning tests
git-svn-id: https://svn.code.sf.net/p/gnss-sdr/code/trunk@143 64b25241-fba3-4117-9849-534c7e92360d
2012-01-25 03:16:08 +00:00
Carles Fernandez
0d598a7188 Added implementation of plain cordic class in tracking/libs. Added a corresponding test. The implementation is slower than standard sin and cos implementations, so it is not used in the receiver. The test will fail otherwise, indicating that this should be used instead of standard functions.
git-svn-id: https://svn.code.sf.net/p/gnss-sdr/code/trunk@142 64b25241-fba3-4117-9849-534c7e92360d
2012-01-25 01:57:28 +00:00
Carles Fernandez
3bff16b5d1 Code cleaning.
Test infrastructure reactivated. Now a run_tests executable is created and runs some tests.

git-svn-id: https://svn.code.sf.net/p/gnss-sdr/code/trunk@138 64b25241-fba3-4117-9849-534c7e92360d
2012-01-23 00:52:05 +00:00
Carles Fernandez
80af09f91f Acquisition, Tracking and TelemetryDecoder blocks now use Gnss_Satellite class and have access to know what parameters have to use. Algorithms are not system-related anymore.
Some code cleaning and and enhancements in the output screen messages.

git-svn-id: https://svn.code.sf.net/p/gnss-sdr/code/trunk@135 64b25241-fba3-4117-9849-534c7e92360d
2012-01-20 23:28:11 +00:00
Javier Arribas
b72802a51f Added experimental SIMD-accelerated correlator for tracking, using GNURadio volk libraries.
git-svn-id: https://svn.code.sf.net/p/gnss-sdr/code/trunk@134 64b25241-fba3-4117-9849-534c7e92360d
2012-01-20 16:37:16 +00:00
Carles Fernandez
32690a7d59 Tracking Classes are now upper case.
git-svn-id: https://svn.code.sf.net/p/gnss-sdr/code/trunk@125 64b25241-fba3-4117-9849-534c7e92360d
2012-01-13 00:49:24 +00:00
Carles Fernandez
bc62d8d5be Some code cleaning
git-svn-id: https://svn.code.sf.net/p/gnss-sdr/code/trunk@120 64b25241-fba3-4117-9849-534c7e92360d
2012-01-11 09:01:24 +00:00
Carles Fernandez
2ce62706af Adding documentation and improving code formatting.
git-svn-id: https://svn.code.sf.net/p/gnss-sdr/code/trunk@103 64b25241-fba3-4117-9849-534c7e92360d
2011-12-28 21:36:45 +00:00
Carles Fernandez
48719c3075 Improving documentation
git-svn-id: https://svn.code.sf.net/p/gnss-sdr/code/trunk@102 64b25241-fba3-4117-9849-534c7e92360d
2011-12-28 03:05:37 +00:00
Javier Arribas
69b8ac00dc - Major changes:
- The executable file and the default configuration file is now changed from "./install/mercurio" and "./conf/mercurio.conf" to "./install/gnss-sdr" and "./conf/gnss-sdr.conf", respectively.
        - Configuration file structure changed to define in a single entry the internal sampling frequency (after the signal conditioner). NOTICE that this change affects the all the adapters (acquisition, tracking, telemetry_decoder, observables, and PVT). All the adapters are now modified to work with this feature.
        - Moved several in-line GPS L1 CA parameters (a.k.a magic numbers..) to ./src/core/system_parameters/GPS_L1_CA.h definition file.
        - Tracking blocks now uses DOUBLE values in their outputs.
        - Observables and PVT now are separated. PVT and their associated libraries are moved to ./src/algorithms/PVT
        - Temporarily disabled the RINEX output (I am working on that!)
        - GNSS-SDR screen output now gives extended debug information of the receiver status and events. In the future, this output will be redirected to a log file.

- Bug fixes:
        - FILE_SIGNAL_SOURCE now works correctly when the user configures GNSS-SDR to process the entire file.
        - GPS_L1_CA_DLL_PLL now computes correctly the PRN start values.
        - GPS_L1_CA_DLL_FLL_PLL now computes correctly the PRN start values.
        - Several modifications in GPS_L1_CA_Telemetry_Decoder, GPS_L1_CA_Observables, and GPS_L1_CA_PVT modules to fix the GPS position computation.

- New features
        - Tracking blocks perform a signal integrity check against NaN outliers before the correlation process.
        - Tracking and PVT binary dump options are now documented and we provide MATLAB libraries and sample files to read it. Available in ./utils/matlab" and "./utils/matlab/libs"
        - Observables output rate can be configured. This option enables the GPS L1 CA PVT computation at a maximum rate of 1ms.
        - GPS_L1_CA_PVT now can perform a moving average Latitude, Longitude, and Altitude output for each of the Observables output. It is configurable using the configuration file.
        - Added Google Earth compatible Keyhole Markup Language (KML) output writer class (./src/algorithms/PVT/libs/kml_printer.h and ./src/algorithms/PVT/libs/kml_printer.cc ). You can see the receiver position directly using Google Earth.
        - We provide a master configuration file which includes an in-line documentation with all the new (and old) options. It can be found in ./conf/master.conf

git-svn-id: https://svn.code.sf.net/p/gnss-sdr/code/trunk@84 64b25241-fba3-4117-9849-534c7e92360d
2011-12-07 17:59:34 +00:00
Javier Arribas
34d1c5110b GNSS-SDR Major changes:
New tracking libraries:
        -  tracking_discriminators: Library with a set of code tracking and carrier tracking discriminators that is used by the tracking algorithms. (fully documented, including math algorithms using doxygen!)
        -  tracking_2rd_DLL_filter: Class that implements 2 order DLL filter for code tracking loop.
        -  tracking_2rd_PLL_filter: Class that implements 2 order PLL filter for carrier tracking loop.
        -  tracking_FLL_PLL_filter:  Class that implements hybrid FLL and PLL filter for tracking carrier loop.
        -  CN_estimators: Library with a set of Carrier to Noise estimators and lock detectors. (fully documented, including math algorithms using doxygen!)

    Tracking:
        - gps_l1_ca_dll_pll_tracking: The existing DLL + PLL tracking module, which is the K.Borre and D.Akos one, is now completely re-factored. Now uses the above described libraries.
        - gps_l1_ca_dll_fll_pll_tracking: This is a brand new tracking module, which implements the FLL assisted PLL described in Kaplan (2nd edition). (also documentedwith references)

    Configuration options:
        - The following tracking parameters are added:
            ;######### TRACKING CONFIG ############
            ; Tracking.implementation=GPS_L1_CA_DLL_PLL_Tracking or GPS_L1_CA_DLL_FLL_PLL_Tracking 
            Tracking.implementation=GPS_L1_CA_DLL_FLL_PLL_Tracking
            ;PLL filter bandwidth in Hz.
            Tracking.pll_bw_hz=50.0;
            ;DLL filter bandwidth in Hz.
            Tracking.dll_bw_hz=2.0;
            ;FLL filter bandwidth in Hz.
            Tracking.fll_bw_hz=50;
            ;filter order: choice between 2 or 3 at this moment, only for FLL assisted PLL
            Tracking.order=2;
            ;Correlator space in chips units
            Tracking.early_late_space_chips=0.5;

Other files have also been modified with minor changes to adapt to new modules or minor bug fixes.


git-svn-id: https://svn.code.sf.net/p/gnss-sdr/code/trunk@80 64b25241-fba3-4117-9849-534c7e92360d
2011-11-22 17:21:54 +00:00