Sylphase SDGPS
The software-defined GPS(/GNSS) toolkit
|
Type signature: (solution->raw)
Simulate GNSS sample streams. Operates on configurable intervals, over which it linearly interpolates the effect of each satellite, allowing for computing the actual samples in a tight loop.
Usage:
simulate-raw [OPTION]... [CONFIG_STR (=repofile:configs/simple)] [ENVIRONMENT_FILENAME]
Allowed options:
Option | Description |
---|---|
--help | produce help message |
--config CONFIG_STR (=repofile:configs/simple) | config string (run "sdgps help" for examples) |
--satellites SATELLITES_FILENAME | read satellite definitions from SATELLITES_FILENAME |
--environment ENVIRONMENT_FILENAME | read environment definitions from ENVIRONMENT_FILENAME; only simulate-raw supports this option currently |
--start-stream-time STREAM_TIME (=10000001234.141592025756835936) | first solution packet will correspond to this STREAM_TIME in output |
--disable-plot | disable plotting of the simulated scenario |
--bit-inner-corruption-probability arg (=0) | corrupt unprotected GNSS NAV bits this often (used for testing decoder robustness) |
--bit-outer-corruption-probability arg (=0) | corrupt ECC-protected GNSS NAV bits this often (used for testing decoder robustness) |
--gps-broadcast-ionospheric-model GPS_IONOSPHERIC_MODEL | JSON with Klobuchar ionospheric model parameters to be broadcast on GPS L1 and L2C signal; This will override the ionospheric model provided via SATELLITES_FILENAME; (e.g. the contents of data/sample_ionospheric_model.iono) |
--broadcast-utc UTC_PARAMETERS_FILENAME | JSON file with UTC parameters to be broadcast on GPS L2C signal (e.g. data/sample_utc_model.utc) |
--broadcast-eop EOP_PROVIDER | EOP provider used to generate EOP parameters to be broadcast on GPS L2C signal (e.g. dynamic:data/sample_eop_model.eop) |
--broadcast-ggto GGTO_PARAMETERS_FILENAME | JSON file with GGTO parameters to be broadcast on GAL_E1B and GAL_E5b signal (e.g. data/sample_ggto_model.ggto) |
--broadcast-gps-l1-ura GPS_L1_URA | URA value to be broadcast on GPS_L1 signal; default value is 2 meters (e.g. to simulate an invalid URA use '{"error":"invalid"}') |
--broadcast-gps-l2c-ura GPS_L2C_URA | URA value to be broadcast on GPS_L2C signal; default value is 2 meters (e.g. to simulate 2 meters use '{"result":2}') |
--broadcast-galileo-sisa GALILEO_SISA | SISA value to be broadcast on GAL_E1B and GAL_E5b signal; default value is 2 meters (uses same format as GPS_L1_URA and GPS_L2C_URA) |
--broadcast-glonass-ura GLONASS_URA | URA value to be broadcast on GLO_L1 and GLO_L2 signal; default value is 2 meters (uses same format as GPS_L1_URA and GPS_L2C_URA) |
--sv-ephemeris-error arg (=0) | 1D rms ephemeris error to simulate; each of the 3 spatial axes will have an independent 0-mean random offset with this standard deviation applied (units: meters) |
--sv-clock-error arg (=0) | rms clock error to simulate; SV clock will have a 0-mean random offset with this standard deviation applied (units: meters) Note: SISRE (rms) = sqrt((--sv-ephemeris-error value)^2 + (--sv-clock-error value)^2) |
--sv-error-relaxation-time RELAXATION_TIME (=3600) | autocorrelation decay time constant of SV ephemeris/clock error random walk (units: seconds) |
--sv-error-seed SEED (=default) | seed for SV ephemeris/clock error random number generator; can be any string |
--ztd-variation arg (=0) | rms relative zenith tropospheric delay wander to simulate; nominal tropospheric delay will be scaled by a random walk with mean 1 and this standard deviation (unitless) |
--ztd-relaxation-time RELAXATION_TIME (=3600) | autocorrelation decay time constant of ZTD wander (units: seconds) |
--cn0 CN0 | fix all signal C/N_0 values to CN0 dB-Hz (default: C/N_0 is calculated based on SV-receiver range) (supports antenna-specific syntax: 'ANT0:45,ANT1:40') |
--physical-ionospheric-model arg (=zero) | ionospheric model that is used for computing simulated observables |
--physical-tropospheric-model arg (=simple) | tropospheric model that is used for computing simulated observables |
--antenna-elevation-mask arg | obscure SVs that have an elevation below this angle (elevation is relative to the horizon defined by the antenna's body-frame "axis" config parameter) (units: degrees) (multiantenna example: 'ANT0:20,ANT1:0') |
--gnss-stream-group-delay arg | simulate a per-GNSS-stream group delay to model e.g. cable delay or differential antenna SAW filter delay (example: "[1e-9, 2e-9]" to delay stream 0 by 1 ns and stream 1 by 2 ns) |
--gain-pattern PROVIDER_NAME[:PROVIDER_ARGS...] (=isotropic) | gain pattern provider name and arguments (e.g. "isotropic" or "crossed-dipole:'--radius=0.04527') |
--sv-whitelist arg | only simulate these SVIDs (e.g. "1,2,3") |
--threads-per-gnss-stream THREADS (=4) | distribute GNSS stream generation over THREADS threads |
--gnss-interpolation-rate FREQUENCY (=100) | linearly interpolate SV signals over intervals of 1/FREQUENCY seconds; increased rate adds computational overhead |
--spur arg | generate spur at this baseband frequency |
--spur-cn0 arg (=60) | C/N_0 of spurs added by --spur |
--outage-start arg | start GNSS outage (all SV signals disappear) at this GNSS time |
--outage-end arg | end GNSS outage (all SV signals reappear) at this GNSS time |
--outage-mask arg | limit outage to signals which have "STREAM/SUBSTREAM/GNSS/SVID" match this regex (example: '.*/.*/GPS_L2C/.*' will match all GPS_L2C SVs on all (sub)streams |
--noise-seed arg (=default) | seed for noise floor generation |
--antialias | (EXPERIMENTAL, SLOW) antialias signal by bandlimiting it to the band defined by the config's "spectrum_info" value |
--oversampling-ratio arg (=3) | oversampling ratio to reduce artifacts from linear interpolation; = (sampling rate) / (Nyquist rate); only has an effect if --antialias is used |
--null arg | generate null at this baseband frequency (units: Hertz); only has an effect if --antialias is used |
--null-width arg (=1e5) | width of nulls added by --null (units: Hertz) |
--filter-rolloff arg | bandpass filter rolloff (units: dB/MHz) (example: 10 for -10 dB/MHz); only has an effect if --antialias is used |
--no-noise | disable generation of thermal noise floor (warning: may cause signal distortion due to lack of dither!) |
This will simulate at the raw level, running as fast as possible.