Update docs

This commit is contained in:
Carles Fernandez 2020-01-22 00:40:42 +01:00
parent eda1fcaaf2
commit 99368616ec
No known key found for this signature in database
GPG Key ID: 4C583C52B0C3877D
5 changed files with 98 additions and 121 deletions

View File

@ -379,7 +379,7 @@ $ sudo make install
This will also make a copy of the conf/ folder into /usr/local/share/gnss-sdr/conf for your reference. We suggest to create a working directory at your preferred location and store your own configuration and data files there.
You could be interested in creating the documentation by doing:
You could be interested in creating the documentation (requires: `sudo apt-get install doxygen-latex` in Ubuntu/Debian) by doing:
~~~~~~
$ make doc
@ -1241,7 +1241,6 @@ Acquisition_1C.item_type=gr_complex
Acquisition_1C.coherent_integration_time_ms=1 ; Signal block duration for the acquisition signal detection [ms]
Acquisition_1C.threshold=0.005 ; Acquisition threshold
Acquisition_1C.pfa=0.0001 ; Acquisition false alarm probability. This option overrides the threshold option.
; Only use with implementations: [GPS_L1_CA_PCPS_Acquisition] or [Galileo_E1_PCPS_Ambiguous_Acquisition]
Acquisition_1C.doppler_max=10000 ; Maximum expected Doppler shift [Hz]
Acquisition_1C.doppler_step=500 ; Doppler step in the grid search [Hz]
Acquisition_1C.dump=false ; Enables internal data file logging [true] or [false]
@ -1255,7 +1254,7 @@ and, for Galileo E1B channels:
Acquisition_1B.implementation=Galileo_E1_PCPS_Ambiguous_Acquisition
Acquisition_1B.item_type=gr_complex
Acquisition_1B.coherent_integration_time_ms=4
Acquisition_1B.pfa=0.0000008
Acquisition_1B.pfa=0.008
Acquisition_1B.doppler_max=15000
Acquisition_1B.doppler_step=125
Acquisition_1B.dump=false

View File

@ -41,6 +41,7 @@
- clang-format can now be applied to the whole code tree without breaking compilation.
- Added more check options to .clang-tidy file.
- Default Python version is now >= 3.4. Python 2.7 still can be used in systems where Python 3 is not available (e.g., CentOS 7, Debian 8, Ubuntu 10.04).
- CMake now passes the CMAKE_BUILD_TYPE (or configuration in multi-configuration generators like Xcode) to modules built along gnss-sdr (e.g, the volk_gnsssdr library and googletest). Build types available: None, Release (by default), Debug, RelWithDebInfo, MinSizeRel, Coverage, NoOptWithASM, O2WithASM, O3WithASM, ASAN.
### Improvements in Portability:
@ -51,6 +52,7 @@
- Added toolchain files for building gnss-sdr and the volk_gnsssdr library in several ARM processor architectures, including those in Raspberry Pi 3 and 4.
- The software can now be built using Xcode (passing -GXcode to CMake) without previous manual installation of volk_gnsssdr.
- Now the volk_gnsssdr library can be built on Microsoft Windows.
- Improved CMake script for cross-compilation and for the detection of AVX, AVX2 and NEON (v7 and v8) instructions.
### Improvements in Reliability:
@ -67,6 +69,7 @@
### Improvements in Testability:
- Add receiver runtime to position_test report.
- Improvements in FPGA unit tests.
### Improvements in Usability:
@ -77,6 +80,7 @@
- Added a Python 3 plotting script to show relative performance of generic volk_gnsssdr kernels wrt SIMD fastest versions.
- Added reporting of velocity in the terminal.
- Added reporting of user clock drift estimation, in ppm, in the Pvt_Monitor and in internal logging (debug mode).
- Updated documentation generated by Doxygen, now the pdfmanual target works when using ninja.

View File

@ -1,4 +1,4 @@
# Copyright (C) 2012-2014 (see AUTHORS file for a list of contributors)
# Copyright (C) 2012-2020 (see AUTHORS file for a list of contributors)
#
# This file is part of GNSS-SDR.
#
@ -26,8 +26,8 @@ Welcome to GNSS-SDR!
GNSS-SDR is an open-source <a href="https://en.wikipedia.org/wiki/Software_GNSS_receiver" target="_blank">GNSS software receiver</a> freely available to the research community. This project provides a common framework for GNSS signal processing which can operate in a variety of computer platforms. This tool is intended to foster collaboration, increase awareness, and reduce development costs in the field of GNSS receiver design and customized use of GNSS signals.
For details about GNSS-SDR and using it, please see the <a
href="https://gnss-sdr.org" target="_blank"><b>main project page</b></a> or browse the code at the <a
href="https://sourceforge.net/p/gnss-sdr/cttc/ci/master/tree/" target="_blank"><b>Sourceforge project page</b></a>. You could be also interested in
href="https://gnss-sdr.org" target="_blank"><b>main project page</b></a> or browse <a
href="https://github.com/gnss-sdr/gnss-sdr" target="_blank"><b>the source code at GitHub</b></a>. You could be also interested in
<a href="https://lists.sourceforge.net/lists/listinfo/gnss-sdr-developers" target="_blank"><b>subscribing to the mailing list</b></a>.
\section toc Contents
@ -93,6 +93,11 @@ dependencies and build process. Mainly, it consists on installing <a href="https
\li <a href="https://github.com/gflags/gflags" target="_blank">Gflags</a>, a library that implements commandline flags processing,
\li <a href="https://github.com/google/glog" target="_blank">Glog</a>, a library that implements application-level logging,
\li <a href="http://arma.sourceforge.net/" target="_blank">Armadillo</a>, a C++ linear algebra library,
\li <a href="https://github.com/tbeu/matio" target="_blank">Matio</a>, a MATLAB MAT File I/O Library.
\li <a href="https://pugixml.org/" target="_blank">PugiXML</a>, a light-weight, simple and fast XML parser for C++ with XPath support.
\li <a href="https://developers.google.com/protocol-buffers" target="_blank">Protocol Buffers</a>, a language-neutral, platform-neutral extensible mechanism for serializing structured data.
\li <a href="https://www.makotemplates.org/" target="_blank">Mako</a>, a template library written in Python.
\li <a href="https://pypi.org/project/six/" target="_blank">Six</a>, a Python 2 and 3 compatibility library.
\li <a href="https://github.com/google/googletest" target="_blank">Googletest</a>, Google's framework for writing C++ tests (requires definition of the GTEST_DIR variable),
and, optionally,
@ -170,7 +175,7 @@ will remove the content of previously-generated documentation and, if a LaTeX in
$ make pdfmanual
\endverbatim
will create a PDF manual at <tt>gnss-sdr/docs/GNSS-SDR_manual.pdf</tt>. Please note that the PDF generation requires some fonts to be installed on the host system.
In Ubuntu 12.10, those fonts do not come by default. You can install them by doing:
In Ubuntu, those fonts do not come by default. You can install them by doing:
\verbatim
$ sudo apt-get install texlive-fonts-recommended
\endverbatim
@ -213,7 +218,7 @@ This new receiver can be done by invoking gnss-sdr with the <tt>--config_file</t
$ gnss-sdr --config_file=../conf/my_receiver.conf
\endverbatim
You can see a guide of available implementations at <tt>gnss-sdr/conf/master.conf</tt>. That folder contains other working examples as well. If you have a working
You can see a guide of available implementations at <a href="https://gnss-sdr.org/docs/" target="_blank">the online documentation</a>. That folder contains other working examples as well. If you have a working
configuration and want to share it will others, please email it to the <a href="https://lists.sourceforge.net/lists/listinfo/gnss-sdr-developers" target="_blank"><b>GNSS-SDR developers mailing list</b></a>
and we will be happy to upload it to the server.
@ -403,49 +408,24 @@ The user can select a given implementation for the algorithm to be used in each
\verbatim
;######### ACQUISITION GLOBAL CONFIG ############
;#dump: Enable or disable the acquisition internal data file logging [true] or [false]
Acquisition.dump=false
;#filename: Log path and filename
Acquisition.dump_filename=./acq_dump.dat
;#item_type: Type and resolution for each of the signal samples. Use only gr_complex in this version.
Acquisition.item_type=gr_complex
;#if: Signal intermediate frequency in [Hz]
Acquisition.if=0
;#sampled_ms: Signal block duration for the acquisition signal detection [ms]
Acquisition.sampled_ms=1
;#implementation: Acquisition algorithm selection for this channel:
Acquisition.implementation=GPS_L1_CA_PCPS_Acquisition
Acquisition_1C.implementation=GPS_L1_CA_PCPS_Acquisition
;#dump: Enable or disable the acquisition internal data file logging [true] or [false]
Acquisition_1C.dump=false
;#filename: Log path and filename
Acquisition_1C.dump_filename=./acq_dump.dat
;#item_type: Type and resolution for each of the signal samples. Use only gr_complex in this version.
Acquisition_1C.item_type=gr_complex
;#coherent_integration_time_ms: Signal block duration for the acquisition signal detection [ms]
Acquisition_1C.coherent_integration_time_ms=1
;#threshold: Acquisition threshold
Acquisition.threshold=0.005
Acquisition_1C.threshold=2.5
;#pfa: Acquisition false alarm probability. This option overrides the threshold option.
;Only use with implementations: [GPS_L1_CA_PCPS_Acquisition] or [Galileo_E1_PCPS_Ambiguous_Acquisition]
Acquisition.pfa=0.0001
Acquisition_1C.pfa=0.0001
;#doppler_max: Maximum expected Doppler shift [Hz]
Acquisition.doppler_max=10000
;#doppler_max: Doppler step in the grid search [Hz]
Acquisition.doppler_step=500
;######### ACQUISITION CHANNELS CONFIG ######
;#The following options are specific to each channel and overwrite the generic options
;######### ACQUISITION CH 0 CONFIG ############
;Acquisition0.implementation=GPS_L1_CA_PCPS_Acquisition
;Acquisition0.threshold=0.005
;Acquisition0.pfa=0.001
;Acquisition0.doppler_max=10000
;Acquisition0.doppler_step=250
;#repeat_satellite: Use only jointly with the satellite PRN ID option. The default value is false
;Acquisition0.repeat_satellite = false
;######### ACQUISITION CH 1 CONFIG ############
;Acquisition1.implementation=GPS_L1_CA_PCPS_Acquisition
;Acquisition1.threshold=0.005
;Acquisition1.pfa=0.001
;Acquisition1.doppler_max=10000
;Acquisition1.doppler_step=250
;Acquisition1.repeat_satellite = false
Acquisition_1C.doppler_max=5000
;#doppler_step: Doppler step in the grid search [Hz]
Acquisition_1C.doppler_step=250
\endverbatim
@ -475,33 +455,30 @@ The user can select a given implementation for the algorithm to be used in all t
;######### TRACKING GLOBAL CONFIG ############
;#implementation: Selected tracking algorithm
Tracking.implementation=GPS_L1_CA_DLL_PLL_Tracking
;#item_type: Type and resolution for each of the signal samples. Use only [gr_complex] in this version.
Tracking.item_type=gr_complex
;#sampling_frequency: Signal Intermediate Frequency in [Hz]
Tracking.if=0
Tracking_1C.implementation=GPS_L1_CA_DLL_PLL_Tracking
;#item_type: Type and resolution for each of the signal samples.
Tracking_1C.item_type=gr_complex
;#dump: Enable or disable the Tracking internal binary data file logging [true] or [false]
Tracking.dump=false
Tracking_1C.dump=false
;#dump_filename: Log path and filename. Notice that the tracking channel will add "x.dat" where x is the channel number.
Tracking.dump_filename=./tracking_ch_
Tracking_1C.dump_filename=./tracking_ch_
;#pll_bw_hz: PLL loop filter bandwidth [Hz]
Tracking.pll_bw_hz=50.0;
Tracking_1C.pll_bw_hz=50.0;
;#dll_bw_hz: DLL loop filter bandwidth [Hz]
Tracking.dll_bw_hz=2.0;
Tracking_1C.dll_bw_hz=2.0;
;#fll_bw_hz: FLL loop filter bandwidth [Hz]
Tracking.fll_bw_hz=10.0;
Tracking_1C.fll_bw_hz=10.0;
;#order: PLL/DLL loop filter order [2] or [3]
Tracking.order=3;
Tracking_1C.pll_filter_order=3 ; PLL loop filter order [2] or [3]
Tracking_1C.dll_filter_order=2 ; DLL loop filter order [1], [2] or [3]
;#early_late_space_chips: correlator early-late space [chips]. Use [0.5]
Tracking.early_late_space_chips=0.5;
;#early_late_space_chips: correlator early-late space [chips].
Tracking_1C.early_late_space_chips=0.5;
\endverbatim
\subsubsection decoding Decoding of the navigation message
@ -517,8 +494,8 @@ for an actual implementation of a signal processing block. Configuration example
\verbatim
;######### TELEMETRY DECODER CONFIG ############
TelemetryDecoder.implementation=GPS_L1_CA_Telemetry_Decoder
TelemetryDecoder.dump=false
TelemetryDecoder_1C.implementation=GPS_L1_CA_Telemetry_Decoder
TelemetryDecoder_1C.dump=false
\endverbatim
See the \ref reference_docs for more information about the signal format.
@ -535,8 +512,7 @@ The common interface is ObservablesInterface.
Configuration example:
\verbatim
;######### OBSERVABLES CONFIG ############
;#implementation: Use [GPS_L1_CA_Observables] for GPS L1 C/A.
Observables.implementation=GPS_L1_CA_Observables
Observables.implementation=Hybrid_Observables
;#dump: Enable or disable the Observables internal binary data file logging [true] or [false]
Observables.dump=false
@ -548,12 +524,12 @@ Observables.dump_filename=./observables.dat
\subsection pvt Computation of Position, Velocity and Time
Although data processing for obtaining high-accuracy PVT solutions is out of the scope of GNSS-SDR, we provide a module that can compute a simple least square
solution and leaves room for more sophisticated positioning methods. The integration with libraries and software tools that are able to deal with multi-constellation
data such as <a href="http://www.gpstk.org" target="_blank">GPSTk</a> or <a href="http://gage14.upc.es/gLAB/" target="_blank">gLAB</a> appears as a viable solution for high performance, completely customizable GNSS receivers.
data such as <a href="http://www.gpstk.org" target="_blank">GPSTk</a> or <a href="https://gage.upc.edu/gLAB/" target="_blank">gLAB</a> appears as a viable solution for high performance, completely customizable GNSS receivers.
The common interface is PvtInterface. For instance, in order to use the implementation GpsL1CaPvt, add to the configuration file:
The common interface is PvtInterface. For instance, in order to use the implementation RTKLIB_PVT, add to the configuration file:
\verbatim
;######### PVT CONFIG ############
PVT.implementation=GPS_L1_CA_PVT
PVT.implementation=RTKLIB_PVT
;#nmea_dump_filename: NMEA log path and filename
PVT.nmea_dump_filename=./gnss_sdr_pvt.nmea;
@ -570,12 +546,24 @@ PVT.dump=false
This implementation allows tuning of the following parameters:
\verbatim
PVT.averaging_depth=10 ; Number of PVT observations in the moving average algorithm
PVT.flag_averaging=true ; Enables the PVT averaging between output intervals (arithmetic mean) [true] or [false]
PVT.output_rate_ms=100 ; Period in [ms] between two PVT outputs
PVT.display_rate_ms=500 ; Position console print (std::out) interval [ms].
PVT.dump=false ; Enable or disable the PVT internal binary data file logging [true] or [false]
PVT.dump_filename=./PVT ; Log path and filename without extension.
PVT.implementation=RTKLIB_PVT
PVT.positioning_mode=Single ; options: Single, Static, Kinematic, PPP_Static, PPP_Kinematic
PVT.iono_model=Broadcast ; options: OFF, Broadcast
PVT.trop_model=Saastamoinen ; options: OFF, Saastamoinen
PVT.rinex_version=2 ; options: 2 or 3
PVT.output_rate_ms=100 ; Period in [ms] between two PVT outputs
PVT.display_rate_ms=500 ; Position console print (std::out) interval [ms].
PVT.nmea_dump_filename=./gnss_sdr_pvt.nmea ; NMEA log path and filename
PVT.flag_nmea_tty_port=false ; Enables the NMEA log to a serial TTY port
PVT.nmea_dump_devname=/dev/pts/4 ; serial device descriptor for NMEA logging
PVT.flag_rtcm_server=true ; Enables or disables a TCP/IP server dispatching RTCM messages
PVT.flag_rtcm_tty_port=false ; Enables the RTCM log to a serial TTY port
PVT.rtcm_dump_devname=/dev/pts/1 ; serial device descriptor for RTCM logging
PVT.rtcm_tcp_port=2101
PVT.rtcm_MT1019_rate_ms=5000
PVT.rtcm_MT1045_rate_ms=5000
PVT.rtcm_MT1097_rate_ms=1000
PVT.rtcm_MT1077_rate_ms=1000
\endverbatim
@ -640,9 +628,11 @@ For LaTeX users, these are the BibTeX cites for your convenience:
YEAR = {2010},
address = {ESTEC, Noordwijk, The Netherlands},
month = {Dec.},
note = {DOI:10.1109/NAVITEC.2010.5707981} }
note = {doi:10.1109/NAVITEC.2010.5707981} }
\endverbatim
More papers related to GNSS-SDR are available at the <a href="https://gnss-sdr.org/publications/" _target="_blank">publications page</a>.
\section now_what Ok, now what?
In order to start using GNSS-SDR, you may want to populate <tt>gnss-sdr/data</tt> folder (or anywhere else on your system) with raw data files. By "raw data" we mean the output
of a Radio Frequency front-end's Analog-to_Digital converter. GNSS-SDR needs signal samples already in baseband or in passband, at a suitable intemediate frequency (on the order of MHz).

View File

@ -1,4 +1,4 @@
# Copyright (C) 2012-2013 (see AUTHORS file for a list of contributors)
# Copyright (C) 2012-2020 (see AUTHORS file for a list of contributors)
#
# This file is part of GNSS-SDR.
#
@ -24,25 +24,23 @@
All the current GPS Interface Control Documents can be downloaded from <a href="https://www.gps.gov" target="_blank">GPS.gov</a>, the official U.S. Government webpage for GPS.
\li GPS L1 and L2C: Global Positioning System Directorate, <a href="https://www.gps.gov/technical/icwg/IS-GPS-200H.pdf" target="_blank"><b>Interface Specification IS-GPS-200 Revision H</b></a>. September, 2013.
\li GPS L1C (available with first Block III launch): Global Positioning System Directorate, <a href="https://www.gps.gov/technical/icwg/IS-GPS-800D.pdf" target="_blank"><b>Interface Specification IS-GPS-800 Revision D</b></a>. September, 2013.
\li GPS L5 (first Block IIF satellite launched on May, 2010): Global Positioning System Directorate, <a href="https://www.gps.gov/technical/icwg/IS-GPS-705D.pdf" target="_blank"><b>Interface Specification IS-GPS-705 Revision D</b></a>. September, 2013.
\li GPS L1 and L2C: Global Positioning System Directorate, <a href="https://www.gps.gov/technical/icwg/IS-GPS-200K.pdf" target="_blank"><b>Interface Specification IS-GPS-200 Revision K</b></a>. June, 2019.
\li GPS L1C (available with first Block III launch): Global Positioning System Directorate, <a href="https://www.gps.gov/technical/icwg/IS-GPS-800F.pdf" target="_blank"><b>Interface Specification IS-GPS-800 Revision F</b></a>. June, 2019.
\li GPS L5 (first Block IIF satellite launched on May, 2010): Global Positioning System Directorate, <a href="https://www.gps.gov/technical/icwg/IS-GPS-705F.pdf" target="_blank"><b>Interface Specification IS-GPS-705 Revision F</b></a>. June, 2019.
\subsection glonass GLONASS
Official GLONASS webpage: <a href="http://www.glonass-ianc.rsa.ru/en/" target="_blank"> Information-analytical centre official website</a>.
\li Standard Accuracy (ST) signals at L1 and L2: Russian Institute of Space Device Engineering, Global Navigation Satellite System GLONASS. <a href="http://facility.unavco.org/data/docs/ICD_GLONASS_5.1_(2008)_en.pdf" target="_blank"><b>Interface Control Document. Navigational radiosignal in bands L1, L2. Edition 5.1</b></a>, Moscow, Russia, 2008
Official GLONASS webpage: <a href="https://www.glonass-iac.ru/en/" target="_blank"> Information-analytical centre official website</a>.
\li Standard Accuracy (ST) signals at L1 and L2: Russian Institute of Space Device Engineering, Global Navigation Satellite System GLONASS. <a href="http://russianspacesystems.ru/wp-content/uploads/2016/08/ICD_GLONASS_eng_v5.1.pdf" target="_blank"><b>Interface Control Document. Navigational radiosignal in bands L1, L2. Edition 5.1</b></a>, Moscow, Russia, 2008
\subsection galileo Galileo
Check the <a href="https://ec.europa.eu/enterprise/policies/satnav/galileo/index_en.htm" target="_blank">Galileo website of the European Commission</a> and the
Check the <a href="https://www.gsa.europa.eu/european-gnss/galileo/galileo-european-global-satellite-based-navigation-system" target="_blank">Galileo website of the European Global Navigation Satellite Systems Agency (GSA)</a> and the
<a href="https://www.esa.int/Our_Activities/Navigation/The_future_-_Galileo/What_is_Galileo" target="_blank">Galileo website of the European Space Agency</a>.
There is a website with <a href="http://igs.org/mgex/Status_GAL.htm" target="_blank">Galileo constellation status information</a> from the International GNSS Service.
There is a website with <a href="https://www.gsc-europa.eu/system-service-status/constellation-information" target="_blank">Galileo constellation status information</a> from the GSA.
\li Galileo E5, E6, and E1: European GNSS (Galileo) Open Service. <a href="http://www.gsc-europa.eu/system/files/galileo_documents/Galileo_OS_SIS_ICD.pdf" target="_blank"><b>Signal In Space Interface Control Document. Ref: OS SIS ICD, Issue 1.2</b></a>, European Commission, Nov. 2015.
\li European GNSS (Galileo) Open Service <a href="" target="_blank"><b>Signal-In-Space Operational Status Definition</b></a>, European Commission, Sept. 2015.
\li Galileo E5, E6, and E1: European GNSS (Galileo) Open Service. <a href="https://www.gsc-europa.eu/sites/default/files/sites/all/files/Galileo-OS-SIS-ICD.pdf" target="_blank"><b>Signal In Space Interface Control Document. Ref: OS SIS ICD, Issue 1.3</b></a>, European Commission, Dec. 2016.
The European Commission is granting free access to the technical information on the future Galileo open service signal, i.e. the specifications manufacturers
@ -63,11 +61,11 @@ Open Service Signal (Version 2.0). China Satellite Navigation Office, December 2
\li <a href="http://www.gps.gov/technical/ps/2008-WAAS-performance-standard.pdf" target="_blank"><b>Global Positioning System Wide Area Augmentation System (WAAS) Performance Standard, 1st Edition</b></a>, Department of Transportation and Federal Aviation Administration, Oct. 31, 2008. This document defines the levels of performance the U.S. Government makes available to users of the GPS SPS augmented by the Wide Area Augmentation System.
\li <a href="http://egnos-portal.eu/sites/default/files/EGNOS-open-service-sdd.PDF" target="_blank"><b>EGNOS Open Service (OS) Service Definition Document. Ref: EGN-SDD OS, Revision 2.2</b></a>, European GNSS Agency (GSA), Feb. 12, 2015. This is a complementary document to the RTCA DO229D, mentioned above. It describes the scope of services provided by the EGNOS Open Service to be used by end-users or Application Specific Service Providers. It details the general conditions relating to the use of the EGNOS service, a technical description of the Signal-in-Space (SIS), the reference receiver, environmental conditions, the service performance achieved and aspects relating to service provision.
\li <a href="https://egnos-user-support.essp-sas.eu/new_egnos_ops/documents/egnos-sdd/egnos-data-access-service-sdd" target="_blank"><b>EGNOS Data Access Service (EDAS) Service Definition Document. Revision 2.2</b></a>, European GNSS Agency (GSA), June, 2019. This is a complementary document to the RTCA DO229D, mentioned above. It describes the scope of services provided by the EGNOS EDAS Service to be used by end-users or Application Specific Service Providers. It details the general conditions relating to the use of the EGNOS service, a technical description of the Signal-in-Space (SIS), the reference receiver, environmental conditions, the service performance achieved and aspects relating to service provision.
\li <a href="http://egnos-user-support.essp-sas.eu/new_egnos_ops/sites/default/files/library/official_docs/egnos_sol_sdd_in_force.pdf" target="_blank"><b>EGNOS Safety of Life Service Definition Document. Ref: EGN-SDD SoL, Revision 3.0</b></a>, European GNSS Agency (GSA), Sep. 22, 2015. The EGNOS Safety of Life (SoL) Service is provided openly and is freely accessible without any direct charge and is tailored to safety-critical transport applications in various domains, in particular for aviation applications. The service is thus compliant with the aviation APV-I (Approach with Vertical Guidance) requirements, as defined by ICAO in Annex 10, but may support also applications in other SoL domains.
\li <a href="https://egnos-user-support.essp-sas.eu/new_egnos_ops/documents/egnos-sdd/egnos-safety-life-service-sdd" target="_blank"><b>EGNOS Safety of Life Service Definition Document. Revision 3.3</b></a>, European GNSS Agency (GSA), Mar, 2019. The EGNOS Safety of Life (SoL) Service is provided openly and is freely accessible without any direct charge and is tailored to safety-critical transport applications in various domains, in particular for aviation applications. The service is thus compliant with the aviation APV-I (Approach with Vertical Guidance) requirements, as defined by ICAO in Annex 10, but may support also applications in other SoL domains.
\li <a href="http://egnos-portal.gsa.europa.eu/sites/default/files/EGNOS_EDAS_SDD_2.1.pdf" target="_blank"><b>EGNOS Data Access Service (EDAS) Service Definition Document, Rf: EGN-SDD EDAS, V2.1</b></a>, European GNSS Agency (GSA), Dec. 19, 2014.
\li <a href="https://egnos-user-support.essp-sas.eu/new_egnos_ops/documents/egnos-sdd/egnos-open-service-sdd" target="_blank"><b>EGNOS Open Service Service Definition Document. Revision 2.3</b></a>, European GNSS Agency (GSA), Sep., 2017.
More information about EGNOS can be found through the <a href="https://egnos-user-support.essp-sas.eu/new_egnos_ops/index.php" target="_blank">EGNOS Portal</a>.
\section standards Other Standards
@ -78,13 +76,13 @@ are based on a series of measurements from one or more satellite constellations.
interesting to store intermediate measures for later post-processing. RINEX is the standard format that allows the management and disposal of the measures
generated by a receiver, as well as their off-line processing by a multitude of applications.
\li The most common version at present is <a href="http://igscb.jpl.nasa.gov/igscb/data/format/rinex211.txt" target="_blank"><b>RINEX: The Receiver Independent Exchange Format Version 2.11</b></a>, which enables storage of measurements from pseudorange, carrier-phase and Doppler systems for GPS or GLONASS,
\li The most common version at present is <a href="https://kb.igs.org/hc/en-us/article_attachments/115007665587/RINEX_211v2.pdf" target="_blank"><b>RINEX: The Receiver Independent Exchange Format Version 2.11</b></a>, which enables storage of measurements from pseudorange, carrier-phase and Doppler systems for GPS or GLONASS,
along with data from EGNOS and WAAS satellite based augmentation systems (SBAS).
\li The most recent version is <a href="ftp://igscb.jpl.nasa.gov/igscb/data/format/rinex301.pdf" target="_blank"><b>RINEX: The Receiver Independent Exchange Format Version 3.01</b></a> published in June, 2009.
\li The most recent version is <a href="ftp://igs.org/pub/data/format/rinex303.pdf" target="_blank"><b>RINEX: The Receiver Independent Exchange Format Version 3.03</b></a> published in July, 2015.
It includes Galileo and improves the handling of multi-constellation data files.
\li There is also available the <a href="ftp://igscb.jpl.nasa.gov/igscb/data/format/rinex_clock302.txt " target="_blank"><b>RINEX Extensions to Handle Clock Information</b></a>, published in September, 2010.
\li There is also available the <a href="ftp://igs.org/pub/data/format/rinex_clock302.txt" target="_blank"><b>RINEX Extensions to Handle Clock Information</b></a>, published in September, 2010.
\subsection nmea NMEA
@ -100,27 +98,13 @@ Google submitted KML (formerly Keyhole Markup Language) to the Open Geospatial C
\subsection cxx C++ Standards
In 1998, the C++ standards committee (the <a href="http://www.open-std.org/JTC1/SC22/WG21/" target="_blank">ISO/IEC JTC1/SC22/WG21 working group</a>)
standardized C++ and published the international standard ISO/IEC 14882:1998 (informally known as C++98). A technical corrigendum was approved in 2003,
and the standard was published again as the ISO/IEC 14882:2003.
Published ISO and IEC standards can be purchased from a member body of ISO or IEC. Free copies of the C++ standard Committee Drafts
were <a href="http://www.csci.csusb.edu/dick/c++std/" target="_blank">made public</a> before the official standard was released.
In 2005, a technical report, called the <a href="http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2005/n1836.pdf" target="_blank">Library Technical Report 1</a>
(often known as TR1 for short), was released. While not an official part of the standard, it specified a number of extensions to the standard library,
which were expected to be included in the next version of C++. The linked document is officially a draft, but that is due only to procedural issues;
the content did not change. Scott Meyers provides more <a href="http://www.aristeia.com/EC3E/TR1_info.html" target="_blank">TR1 information</a>.
Some ISO/IEC standards are publicly available, for instance: <a href="http://standards.iso.org/ittf/PubliclyAvailableStandards/c043351_ISO_IEC_TR_18015_2006(E).zip" target="_blank">ISO/IEC TR 18015:2006 Technical Report on C++ Performance</a>.
The standard for the next version of the language (previously known as C++0x) was finally
published with the name of <a href="https://en.wikipedia.org/wiki/C%2B%2B11" target="_blank">C++11</a> in September, 2011, as the ISO/IEC 14882:2011 Standard. GCC, the GNU Compiler Collection,
<a href="http://gcc.gnu.org/projects/cxx0x.html" target="_blank">provides partial C++11 support</a>. Bjarne Stroustrup maintains a <a href="http://www.stroustrup.com/C++11FAQ.html" target="_blank">C++11 FAQ</a>.
\li The most recent public draft of the <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3242.pdf" target="_blank"><b>Standard for Programming Language C++</b></a> was published in Feb. 2011.
The C++ programming language is standardized by the International Organization for Standardization (ISO), with the latest standard version ratified and published by ISO in December 2017 as ISO/IEC 14882:2017 (informally known as C++17). The list of supported C++ standards (the highest available is automatically selected by the CMake script):
<ul>
<li><strong>Draft C++20</strong>: Check the <a href="https://github.com/cplusplus/draft" target="_blank">C++ standard draft sources at GitHub</a>.</li>
<li><strong>C++17</strong>: The current ISO C++ standard is officially known as <em>ISO International Standard ISO/IEC 14882:2017 Programming languages C++</em>. You can get it from <a href="https://www.iso.org/standard/68564.html" target="_blank">ISO</a>, <a href="https://webstore.iec.ch/publication/62162" target="_blank">IEC</a> or <a href="https://webstore.ansi.org/Standards/ISO/ISOIEC148822017" target="_blank">ANSI</a>. The closest free working document available is <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/n4659.pdf" target="_blank">N4659</a>.</li>
<li><strong>C++14</strong>: The former ISO C++ standard was officially known as <em>ISO International Standard ISO/IEC 14882:2014 Programming languages C++</em>. You can get it from <a href="https://www.iso.org/standard/64029.html" target="_blank">ISO</a> or <a href="https://webstore.ansi.org/RecordDetail.aspx?sku=INCITS/ISO/IEC+14882:2014+(2016)" target="_blank">ANSI</a>. The closest free working document available is <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4296.pdf" target="_blank">N4296</a>.</li>
<li><strong>C++11</strong>: An older ISO C++ standard was ISO/IEC 14882:2011. You can get it from <a href="https://www.iso.org/standard/50372.html" target="_blank">ISO</a>. The closest free working document available is <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3337.pdf" target="_blank">N3337</a>.</li>
</ul>
\subsection protocols Positioning protocols in wireless communication networks
Cellular industry location standards first appeared in the late 1990s, with the <a href="http://www.3gpp.org/index.php" target="_blank">3rd generation partnership project (3GPP)</a> radio resource location services protocol (RRLP) technical specification 44.031 positioning protocol for GSM networks.
@ -142,7 +126,7 @@ User plane protocols:
LTE Release 9 introduced extension hooks in LPP messages, so that the bodies external to 3GPP could extend the LPP feature set. OMA LPP extensions (LPPe), supported in SUPL 3.0, build on top of the 3GPP LPP reusing its procedures and data types.
Check the <a href="http://technical.openmobilealliance.org/Technical/LOC.aspx" target="_blank">OMA Location Working Group (WG) webpage</a> for updated information about LPP Extensions (LPPe) Specification.
\li The <a href="http://technical.openmobilealliance.org/Technical/release_program/mlp_v31.aspx" target="_blank"><b>OMA Mobile Location Protocol (MLP) V3.1</b></a> is an application-level protocol for getting the position of mobile stations (mobile phones, wireless personal digital assistants, etc.) independent
\li The <a href="http://www.openmobilealliance.org/release/MLS/V1_2-20091001-C/OMA-TS-MLP-V3_3-20091001-C.pdf" target="_blank"><b>OMA Mobile Location Protocol (MLP) V3.3</b></a> is an application-level protocol for getting the position of mobile stations (mobile phones, wireless personal digital assistants, etc.) independent
of underlying network technology. The MLP serves as the interface between a Location Server and a Location Services (LCS) Client.
This specification defines the core set of operations that a Location Server should be able to perform.

View File

@ -1,4 +1,4 @@
# Copyright (C) 2012-2013 (see AUTHORS file for a list of contributors)
# Copyright (C) 2012-2020 (see AUTHORS file for a list of contributors)
#
# This file is part of GNSS-SDR.
#
@ -74,7 +74,7 @@ and civilian users on a continuous, worldwide basis. Two GPS services are provid
the Precise Positioning Service (PPS), available primarily to the military of the United
States and its allies, and the Standard Positioning Service (SPS) open to civilian users.
\li <b>GPS L1</b>. Defined at <a href="https://www.gps.gov/technical/icwg/IS-GPS-200F.pdf" target="_blank"><b>Interface Specification IS-GPS-200 Revision F</b></a>, this band is centered at \f$f_{\text{GPS L1}}=1575.42\f$ MHz. The complex baseband transmitted signal can be written as
\li <b>GPS L1</b>. Defined at <a href="https://www.gps.gov/technical/icwg/IS-GPS-200K.pdf" target="_blank"><b>Interface Specification IS-GPS-200 Revision K</b></a>, this band is centered at \f$f_{\text{GPS L1}}=1575.42\f$ MHz. The complex baseband transmitted signal can be written as
\f{equation}{
s^{\text{(GPS L1)}}_{T}(t)=e_{L1I}(t) + j e_{L1Q}(t)~,
\f}
@ -93,7 +93,7 @@ s^{\text{(GPS L1)}}_{T}(t)=e_{L1I}(t) + j e_{L1Q}(t)~,
provide C/A code to ensure backward compatibility.
\li <b>GPS L2C</b>. Defined at <a href="https://www.gps.gov/technical/icwg/IS-GPS-200F.pdf" target="_blank"><b>Interface Specification IS-GPS-200 Revision F</b></a>, is only available on
\li <b>GPS L2C</b>. Defined at <a href="https://www.gps.gov/technical/icwg/IS-GPS-200K.pdf" target="_blank"><b>Interface Specification IS-GPS-200 Revision K</b></a>, is only available on
Block IIR-M and subsequent satellite blocks. Centered at \f$f_{\text{GPS L2}}=1227.60\f$ MHz, the signal structure is the same than in (\ref{eq:GPSL1}), with the precision code in the In-phase
component, just as in (\ref{eq:L1CAI}) but with an optional presence of the navigation message \f$D_{\text{NAV}}\f$. For the Quadrature-phase component, three options are defined:
\f{align}{ e_{L2CQ}(t) =& \sum_{l=-\infty}^{\infty} D_{\text{CNAV}} \Big[ [l]_{10230} \Big] \oplus \left( C_{\text{CL}} \Big[ |l|_{L_{\text{CL}}} \Big] p_{\text{\tiny{1/2}}} \left( t - lT_{c,L2C} \right) + \right.\\ {} &+ \left. C_{\text{CM}} \Big[ |l|_{L_{\text{CM}}} \Big] p_{\text{\tiny{1/2}}}\left(t - \left(l+\frac{3}{4}\right)T_{c,L2C}\right) \right),\\
@ -106,7 +106,7 @@ component, just as in (\ref{eq:L1CAI}) but with an optional presence of the navi
data than the NAV data. It is transmitted at \f$25\f$ bps with forward error correction (FEC) encoding, resulting in \f$50\f$ sps.
\li <b>GPS L5</b>. The GPS L5 link, defined at <a href="https://www.gps.gov/technical/icwg/IS-GPS-705B.pdf" target="_blank"><b>Interface Specification IS-GPS-705 Revision B</b></a>, is only available
\li <b>GPS L5</b>. The GPS L5 link, defined at <a href="https://www.gps.gov/technical/icwg/IS-GPS-705F.pdf" target="_blank"><b>Interface Specification IS-GPS-705 Revision F</b></a>, is only available
in Block IIF (first satellite launched on May, 2010) and subsequent satellite blocks. Centered at \f$f_{\text{GPS L5}}=1176.45\f$ MHz, this signal in space can be written as:
\f{equation}{
s^{\text{(GPS L5)}}_{T}(t)=e_{L5I}(t) +j e_{L5Q}(t)~,
@ -170,7 +170,7 @@ nominal constellation configuration. The Galileo satellites are placed in quasi-
orbits with a nominal semi-major axis of about \f$30,000\f$ km and an approximate revolution
period of \f$14\f$ hours. The Control segment full infrastructure will be composed of \f$30-40\f$ sensor stations, \f$3\f$ control centers, \f$9\f$ Mission Uplink stations, and \f$5\f$ TT\&C stations.
Galileo's Open Service is defined at <a href="http://ec.europa.eu/enterprise/policies/satnav/galileo/files/galileo-os-sis-icd-issue1-revision1_en.pdf" target="_blank"><b>Signal In Space Interface Control Document. Ref: OS SIS ICD, Issue 1.1</b></a>, where the following signal structures are specified:
Galileo's Open Service is defined at <a href="https://www.gsc-europa.eu/sites/default/files/sites/all/files/Galileo-OS-SIS-ICD.pdf" target="_blank"><b>Signal In Space Interface Control Document. Ref: OS SIS ICD, Issue 1.3</b></a>, where the following signal structures are specified:
\li <b>Galileo E1</b>. This band, centered at \f$f_{\text{Gal E1}}=1575.420\f$ MHz and with a reference bandwidth of \f$24.5520\f$ MHz, uses the so-called composite binary offset carrier
@ -274,7 +274,7 @@ The same applies to \f$e_{E5b}(t)\f$, allowing an independent reception of two Q
This text is an except of the following paper:
\li C. Fern&aacute;ndez-Prades, L. Lo Presti, E. Falleti, <a href="https://ieeexplore.ieee.org/document/5942139/" target="_blank"><i>Satellite Radiolocalization From GPS to GNSS and Beyond: Novel Technologies and Applications for Civil Mass-Market</i></a>.
Proceedings of the IEEE. Vol 99, No. 11, pp. 1882-1904. November, 2011. DOI: 10.1109/JPROC.2011.2158032
Proceedings of the IEEE. Vol 99, No. 11, pp. 1882-1904. November, 2011. doi: 10.1109/JPROC.2011.2158032