The receiver section is responsible for tracking one GNSS service, like Galileo E1BC (Open Service on E1) or GPS L5 just to name a few examples. Typically multiple receiver sections are present and they are named as Receiver0, Receiver1, ... , Receiver10, Receiver11 and so on. The receiver section comprises a number of parameters for replica generation, tracking loop configuration, navigation message decoding and other features. The table below lists the ones most relevant for standard tracking, like it is found in reference stations and described in most text books. At the end of this page some special remarks are given including configuration of the correlation engine.
| Parameter | Description | Unit | Default / Related Values | Notes |
|---|---|---|---|---|
| AntennaId | The antenna ID is used to distinguish different GNSS antennas in a multi-antennae system. The first antenna has the id = 0. This entry actually defines the id (it is not a selector). | - | The IF sample data selection is done by the field 'StreamNo'. | |
| BumpJump | If true, a bump jump algorithm is performed to avoid false locks with BOC signals (or for any navigation signal exhibiting a correlation function with multiple peaks). The bump jump algorithm is carried out with the data signal component. | - | Note, that you need to configure a proper number of multi-correlators to identify false locks. | |
| BumpJumpIntegrationTime | Time period used to determine the position of the correlation function peak. The bump jump algorithm shifts the peak back to the prompt correlator, if a significant deviation is detected. | s | ||
| BumpJumpMinDistance | If the bump jumper does not attempt to jump for more subchips than this value, the bump jump is cancelled (to avoid frequent jumps of low distance) | m | ||
| BumpJumpThreshold | If the ratio of the largest correlator value divided by the prompt correlator value exceeds this threshold, the bump jumper is triggered. | - | ||
| CarrierPhaseAlways | If true, then the carrier phase is always measured, even if the channel is not in phase lock. | - | Use mostly for debugging applications. Should be set to 'false' during normal receiver operation. | |
| CodeMultiPathStdDev | Code pseudorange accuracy offset, which is added to the code discriminator based standard deviation. The output code pseuodrange accuracy follows the formula sqrt( 'CodeMultiPathStdDev'^2 + DiscNoiseStdDev^2 ). Applies only if 'AddDiscriminatorToRawMeasurements' is true. | m | Normalls not used; see also SPP.StdDevCodePseudorangeAutomatic | |
| CoherentFraction | Defines primary coherent integration period for the data channel. The primary coherent integration period is determined as the PRN code period divided by 'CoherentFraction'. | - | Normally set to 1, with the notable expection of L2CL | |
| CoherentFractionSlave | Same as CoherentFraction, but for pilot channel | - | The primary coherent integration period is determined as the PRN code period divided by 'CoherentFractionSlave'. | |
| CoherentIntegrator | Modul to do secondary coherent integration and bit-sync for the data channel. | - | 0 = bypass (default if signal has no secondary code); 1 = histogram for GPS C/A; 2 = Kalman Filter+Viterbi (default method for all signals with secondary codes); 3 = cross-correlation with predefined secondary code (default for signals with long secondary codes, e.g. L1CP). | |
| CoherentIntegratorSlave | Same as CoherentIntegrator but for pilot channel | - | ||
| CorrelatorMode | Flag to indicate if numerical approximations are applied when generating the replica signals for the data channel. To obtain an utmost precision, CorrelatorMode must be set to 0. Only applicable if the parameter CorrelatorType = 1. CorrelatorType 4 always works in precise mode. | - | 0 → precise correlation 1 → fast correlation | Use 0 per default, as speed gain by using 1 is low. |
| CorrelatorModeSlave | Same as CorrelatorMode but for pilot channel. | |||
| CorrelatorTrackingMode | If CorrelatorTrackingMode == 1 then waveform based tracking is used (P- and D-correlator are employed), if CorrelatorTrackingMode==0 then correlator based tracking is used (early, prompt, late, ... correlators are used). Applies only for 'CorrelatorType == 1' CorrelatorType 4 always works in correlator based mode. | - | Note 1: waveform based tracking requires D-correlator entries within the *.rcf file and is insensitive to the used IF sample rate. Note 2: correlator based tracking requires calculation of the EarlyLateScale based on the used correlator configuration and sampling rate. | |
| CorrelatorType | Indicates which code base is used for signale correlation CorrelatorType should be set to 1 for standard GNSS tracking. CorrelatorType==1 realizes a full 16-bit hardware NCO plus multi-correlator on the CPU without any approximations CorrelatorType=4 is a GPU-based correlator exploiting FP16 values for IF samples and needs a nVidia graphics card of at least Turing architecture. CorrelatorType==5 is a true AltBOC correlator following the same principles as type 1. The other types are for special use only and should be used with care: CorrelatorType==0 is CPU based waveform based tracking only and quite slow (legacy code) and CorrelatorType==2 is an 8-bit CPU based correlator with less memory bandwidth demands but introducing some extra noise. CorrelatorType==3 is a special type to be use if this section defines a GNSS signal generator, CorrelatorType=6 is an GPU-based correlator exploiting FP16 values and shared memory for IF samples and needs a nVidia graphics card of at least Turing architecture | - | Use 1 as default | |
| CycleSlipBadPoints | Number of bad points added to the cycle slip stability counter each time when the PLL exceeds a stability threshold (0.125 cyc for data channels, 0.25 cyc for data+pilot channels). If no cycle slip is detected the stability counter is decreased by 1. | - | ||
| CycleSlipThreshold | If the number of bad points exceeds this threshold, a cycle slip flag will be set and the number of bad points will be reset. | - | ||
| DataWipeOff | If set to true, then the data channel tries to perform a data wipe-off to improve carrier tracking performance. | - | requires that data bits are provide as .nav file to MuSNAT | |
| DataWipeOffSlave | Same as DataWipeOff but for pilot channel | - | ||
| Description | A string describing the current receiver configuration. The string has no influence on the processing. | - | ||
| DllBandWidthNarrow | The bandwidth used in the DLL; applies for FilterMode 1 and 2 (after filter convergence) | Hz | ||
| DllBandWidthWide | For 'FilterMode' = 2. Defines the DLL bandwidth, used immediately after acquisition (and thus before convergence). | Hz | ||
| DllFilterOrder | DLL filter order for 'FilterMode' = 1. Choose 1-3 for a 1st to 3rd order filter. Choose 0 for open loop tracking. | - | ||
| DoHardSync | If set to true then an artifical satellite time stamp 0 is used to calculate pseudoranges. This can be used when the navigation signal does not carry any time stamp. Useful when pseudorange differences are used in a specific test measurement scenario. | - | Set to false during normal operation | |
| NavDataBitPresent | Indicates if a Costas phase discriminator is going to be used or not and if navigation data is used or ignored. The Costas phase discriminator will cope with data bits or with a secondary code on the data channel. | - | ||
| DumpMultiCorrValues | If true, then multi-correlator values are logged into a files with the *.mclog format. Note: Dumping of multi-correlator values is recommended only in post-processing mode. If set to true then multi-correlator positions are defined via 'MinMCIndex/MaxMCIndex'. See also parameter: DumpMultiCorrValuesFileTemplate | - | true = log MC Values, false = no logging | |
| DumpMultiCorrValuesFileTemplate | Filename template for multi-correlator dump files. Must be of the form 'MCDump_service%d_sat%d_chan%d_cnt%d_type%s.mclog'. See also parameter: DumpMultiCorrValues | - | e.g. Out\Galileo_E1_MCDump_sys%d_sat%d_chan%d_cnt%d_type%s.mclog | |
| EarlyIndex | Defines early correlator for data channel as index to the list of CorrelatorPositions. Used if correlator based tracking is used (see CorrelatorType) | - | ||
| EarlyIndexSlave | Same as EarlyIndex but for pilot channel. | - | ||
| EarlyLateScale | Factor to multiply with the (E-L)/P difference for code tracking (data channel). Used if correlator based tracking is used (see CorrelatorType) | - | The YASST tool calculates this value in the function doPerfAnalysis (the parameter doPerfAnalysis must be set to true for that). The value to be used is called Code correlator gain and is given in µs. The Code_correlator-gain value represents the slope of the discriminator (DLL) S-curve. The formula to calculate this value is given below: EarlyLateScale = Code_correlator_gain [s] * Oversampling_factor [Subchip/Chip] * Nominal_code_rate [Chip/s] | |
| EarlyLateScaleSlave | Same as EarlyLateScale but for pilot channel. | - | ||
| ExtendedCoherentIntDuration | Duration of the extended coherent integration time of the data channel in terms of number of primary coherent integrations (e.g. 1, 5, 25). The secondary coherent integration time is the product of this number with the primary code length divided by the 'CoherentFraction'. | Usually set to a value to achieve an extended coherent integration time of 4 ... 10 ms. | ||
| ExtendedCoherentIntDurationSlave | Same as ExtendedCoherentIntDurationfor pilot channel. | - | ||
| FilterMode | Tracking loop filter mode. 1 ... standard DLL/PLL tracking where PLL switches to FLL if signal power is below ThresholdFLL 2 ... aided DLL/FLL/PLL (see Kaplan book) | - | Use 1 for default operation | |
| FllBandWidthNarrow | The bandwidth used in the FLL | Hz | ||
| FllBandWidthWide | For 'FilterMode' = 2. Defines the FLL bandwidth, used immediately after acquisition. | Hz | ||
| FllCycleSlipThreshold | Applies for 'FilterMode' = 1 and PLL tracking only: If the FLL discriminator exceeds this value in [Hz], then a cycle slip is inserted and the carrier tracking loop switches back to FLL tracking. If you choose 0, then no check is employed. | - | ||
| FllFilterOrder | FLL filter order for 'FilterMode' = 1. Choose 1-3 for a 1st to 3rd order filter. Choose 0 for open loop tracking. | - | ||
| FLLCodePhaseOffset | Offset for LEO-SVs in handover between acq→tracking | m | Determined by multicorrelator observation | |
| FLLErrorPulseLength | Energy containing Pulselength of replica, used in FLL error computation. Used f.e. with 5G PRS Tracking | s | ||
| FrameSize | Number of IF samples within one frame. A frame is a batch of samples used in signal tracking. An integer number of frames must fit into packet of IF samples. The frame size needs to be smaller than the smallest primary coherent integration period. | - | Choose '0' for automatic frame size calculation. | |
| FrequencyOffset | A frequency offset to the carrier frequency can be set, for example 750000 Hz. Gets added upon IF, This was for example used in experiments to not disturb real GPS-users. Can be used to identify the E5a and E5b center frequency within a IF sample stream capturing the whole E5 band. If used, increase AcqMinReqSampleRate accordingly avoid bandlimitiations in Acquisition. | Hz | for example: 750000 Hz. Gets added onto IF. If this Parameter is used, make sure to increase | |
| GpsWeekOffset | This value is added to the decoded GPS NAV week number. | - | Should be 0, 1024 or 2048 | The first rollover (1024) took place midnight August 21 to 22, 1999. The second rollover (2048) occurred on the night of April 6 to 7, 2019. |
| HardwareDelay | Receiver hardware delay. This value is subtracted from the code phase, the pseudorange and the carrier phase measurements when the pseudoranges are generated in the receiver. If you want to steer the interfrequency biases displayed in the Position window to 0, then add the IFBs to the hardware delay values. | m | ||
| HistogramLength | Number of primary coherent integrations (i.e. PRN code periods) within one secondary code period of the data channel. If the secondary coherent integrator supports extended coherent integration times (e.g. 20 ms for GPS C/A), then you may use the negative value for 'HistogramLengthSlave' to stick normal coherent integration (e.g. 1 ms). Applies for CoherentIntegrator type 1 and 2 (but not for 3) | |||
| HistogramLengthSlave | Same as HistogramLength but for pilot channel. | |||
| HistogramRunTime | How many primary coherent integration values are used for bit/symbol-synchronization of the data channel. Applies for the CoherentIntegrator type 1, 2 and 3. | |||
| HistogramRunTimeSlave | Same as HistogramRunTime but for pilot channel | |||
| HistogramTrials | Number of identical histogram results in a row before bit sync. | 3 | Used with CoherenIntegratorSlave 3 | |
| LateIndex | See EarlyIndex | - | ||
| LateIndexSlave | See EarlyIndex | - | ||
| LogFileHighRate | Activate if high rate .dumplog files should be written High rate logging results in a dump every primary coherent integration interval (i.e. at the PRN period rate). Normal rate logging follows the extended coherent integration time. | |||
| LogFileNameMode | File mode when the dump-log file is opened. A dump-log file is opened, every time the corresponding signal has been (re-)acquired. The file is closed after a loss-of-lock event. Choose 'wt' to always create a new file or 'at' to append to a possibly existing file (this option is useful if the channel experiences loss-of-locks and subsequent re-acquisitions). | - | ||
| LogFileNameTemplate | File name template for dump logging. Must be of the form 'GPS_dump_PRN%d.dumplog', where '%d' will receive the PRN number. See also parameter: PRNsToLog | - | ||
| MasterForSlave | Channels of this receiver are providing NCO values to other receivers to allow channel slaving | - | true or false | Set to false for normal receiver operation |
| MasterControlsAlsoCode | If set to true, then channel aiding between master and slave channels also includes code phase and code rate (carrier phase and Doppler is always slaved) | - | true or false | |
| MasterCarrierScaling | If true, then carrier phase/Doppler is scaled from master to slave to achieve indentical phase / Doppler values expressed in [m] (resp.[m/s]). If false, carrier phase in [cyc] and Doppler in [Hz] is identical for master and slave. | - | true or false | |
| MasterId | If different from -1, identifies the ReceiverId that acts as master for channel slaving | - | 0 for Receiver. -1 to deactivate | |
| MaxMCIndex | Use to configure the multi-correlator in case MultiCorrelatorConfiguration == true. It is the multi-correlator maximum index for data channel. Position in [chip] = 'MinMCIndex'/sample_rate*code_rate. Note: working with 'CorrelatorType' = 2 implies that half the sample rate is used. If for example set to -100 then (for GPS L1/C/A or Galileo E1B and sampling rate of 100MhZ) correlators from 100*1.023*10^6/(100*10^6) - ca. 1 chip till the prompt correlator=0 are used. If MaxMCIndex set to 100 in this case, the correlation function for +/- 1 chip can be seen. | - | ||
| MaxMCIndexSlave | Same as MaxMCIndex but for pilot channel. | - | ||
| MaxMultiCorrOrder | Maximum multi-correlator order; if 'MultiCorrOrder' exceeds this value, then timely successive correlator values will be averaged. | - | ||
| MeasurementDopplerNoiseCov, MeasurementDopplerNoiseCovSlave | For bit-sync. with CoherentIntegrator type 2. Assumed Doppler measurement noise covariance | - | Those values are very specific and require trial and error to set them properly. | |
| MeasurementPhaseNoiseCov, MeasurementPhaseNoiseCovSlave | For bit-sync. with CoherentIntegrator r type 2. Assumed Phase measurement noise covariance | - | Those values are very specific and require trial and error to set them properly. | |
| MinMCIndex | See MaxMCIndex | - | ||
| MinMCIndexSlave | See MaxMCIndex | - | ||
| MultiCorrDataFraction | The fraction (0.0-1.0) of the FFT integration time that is actually filled with correlation values. The remaining part is filled with zeros. This value is used to increase the Doppler resolution of the multi-correlator; e.g. a value of 0.25 increases the Doppler resolution by a factor of 4. | |||
| MultiCorrNavBitsRequired | If true, then navigation data bits need to be available to compute multi-correlator values. If they are not available, then multi-correlator values are not computed. Note: if data bits/symbols are available, they will be wiped off before increasing the coherent integration time according to 'MaxCorrOrder'. | |||
| MultiCorrNcoMode | To select the NCO operating mode during the (long multi-correlator) coherent integration time. 0 = use NCO of internal tracking, 1 = constant Doppler, 2 = directly estimate and reduce carrier phase from small batches. | - | ||
| MultiCorrOrder | Defines the coherent integration time in [µs] for the multi-correlator, T_coh = 2^'MultiCorrOrder'*PRN_code_period/'CoherentFraction'. Note, if you give a 'MultiCorrOrder' > 'MaxMultiCorrOrder', then the receivers starts to average successive primary integrate and dump values to achieve an total number of 'MaxMultiCorrOrder' integrate and dumps, which are then used to form the frequency domain values. This effectively reduces the Doppler span by 2^('MultiCorrOrder'-'MaxMultiCorrOrder'). In this case no time domain values are visualized or written to a file. | - | ||
| MultiCorrRecoveryTime | Minimum time between two multi-correlator calculations in 'MultiCorrelatorUsage' = 2 or 3. | s | ||
| MultiCorrRefSignal | 0 = infinite bandwidth PRN code, 1 = P-correlator reference signal, 2 = D-correlator reference signal, 3 = W-correlator reference signal. The index refers to the reference signal types of the file specified in 'Main.RandomCodesFile'. | - | ||
| MultiCorrelatorConfiguration | If true, then multi-correlator positions are defined via 'MinMCIndex/MaxMCIndex', if false then positions are defined via 'CorrelatorPositions' or 'CorrelatorPositionsSlave'. Applies only for CorrelatorType 1 and 4 | - | It is recommended to use MultiCorrelatorConfiguration == false to maximize compatibility with older configurations. | |
| MultiCorrelatorForTracking | If true, then multi-correlator are computed continuously, if false then depending on 'MultiCorrelatorUsage'. Applies only for 'CorrelatorType == 1'. | - | Needs to be set to true for correlator based tracking; if waveform based tracking is used, then true or false can be selected depeding on the specific use case. | |
| MultiCorrelatorUsage | Defines if the multi-correlator is used. | - | 0 = Off 1 = All channels 2 = Fixed PRN 3 = Time sequencing 4 = Dynamic on the fly from GUI | Typical cases: 0 or 1 |
| MultiCorrelator_PRN | Applies if 'MultiCorrelatorUsage' = 2 and defines PRN for which the multi-correlator is computed. | - | ||
| NavDataBitsPresent | If set to true a Costas phase discriminator is used to cope with data bits or with a secondary code on the data channel. | - | ||
| NavDataBitsPresentSlave | If set to true a Costas phase discriminator is used to cope with data or with a secondary code on the pilot signal. | - | ||
| NavMsgDecoder | Module to do navigation message decoding on the data channel | - | 0 = deactivated 1 = GPS C/A NAV decoder 2 = GPS CNAV decoder 3 = GIOVE-A decoder 4 = Galileo INAV V12 decoder 5 = Egnos/Waas decoder 6 = GATE XI/NAV V9 on E1-B 7 = Pseudolite decoder 8 = GATE XI/NAV V12 on E1-B 9 = IMES 10 = QZSS 11 = GLONASS L1 decoder 12 = BeiDou decoder 13 = GALILEO E5a FNAV 14 = GALILEO E6 CNAV 15 = BeiDou D1 16= BeiDou D2 | |
| NavMsgDecoderSlave | Same as NavMsgDecoder but for the pilot channel | Note: it is possible to configure message decoding for the pilot channel, in case a message is broadcast on this component (which normally is not the case) | ||
| NavigationMessageType | Defines the type of navigation message bit stream used for configuration of the navigation message decoder. | - | -1→ Not applicable 0 → Unknown 1 → GPS NAV 2 → GPS CNAV on L2 3 → GIOVE A1 INAV on E1 4 → Galileo INAV on E1 5 → Galileo INAV on E5 6 → SBAS 7 → GLONASS 8 → Reserved 9 → Galileo FNAV on E5 10 → Galileo CNAV on E6 11 → GPS CNAV on L5 12 → BeiDou D1 13 → BeiDou D2 14 → IRNSS L5 15 → IRNSS S | |
| NavigationMessageTypeSlave | An identifier used to distinguish different navigation message bit streams used in the data wipe-off process ( | - | 0 = unknown 1 = GPS NAV 2 = GPS CNAV 3 = GIOVE A1 INAV on E1 4 = Galileo INAV on E1 5 = Galileo INAV on E5 6 = SBAS 7 = GLONASS. | |
| NumberAssistanceBits | This is a parameter used to store navigation data (from the data channel) bits/symbols at a reference station in the .nav file. Bits/symbols are stored in the form of packets in the navigation data container and are written to file at receiver stop. This value defines the number of bits/symbols per packet. Use 0 to deactivate navigation bit/symbol storage. | - | Note 1: It is actually mostly irrelevant which value is used to activate bit logging as subsequent packets are concatenated within the .nav file. Use e.g. 300 as a default value to activate bit logging. Note 2: should be set to zero during normal receiver operation. | |
| NumberAssistanceBitsSlave | Same as NumberAssistanceBits but for pilot channel | - | Note: makes only sense if - for whatever reason - a message is modulated onto the pilot channel. Otherwise only '1's will be logged. | |
| NumberOfMasterChannels | Number of channels in this receiver | - | ||
| NumberOfSignalComponents | 1 = only the data component is tracked, 2 = data and pilot are tracked. | - | ||
| ParallelizingMasterChannels | Indicates if the processing of the MasterChannels is parallelized by OpenMP: 0 ... no parallelization, 1 ... parallelized. If more than one receiver is used adapt the number of OpenMP threads, otherwise the overhead is too big (see config entry ParallelizingMasterChannelsThreadNumber). | - | Normally parallelization is recommended for faster processing, i.e. set ParallelizingMasterChannels to 1 | |
| ParallelizingMasterChannelsThreadNumber | Number of parallel OpenMP threads when parallelizing MasterChannels (see config entry ParallelizingMasterChannels) | - | Depending on the CPU type, a good value is 2 to 4. | |
| PhaseDifference | Carrier phase difference between data and pilot signal. | deg | To be set according to the signal ICD to ensure that data and pilot component are properly combined. | |
| PllBandWidthNarrow | PLL bandwidth for FilterMode 1 and 2 (after convergence) | Hz | ||
| PllBandWidthWide | For 'FilterMode' = 2. Defines the wide PLL bandwidth, used immediately after acquisition (and thus before convergence). | Hz | ||
| PllFilterOrder | PLL filter order for 'FilterMode' = 1. Choose 1-3 for a 1st to 3rd order filter. Choose 0 for open loop tracking. | - | ||
| PllWeightFactorBig | Applicable only for 'FilterMode' = 2. Defines the phase discriminator contribution to the carrier tracking filter. The frequency discriminator contributes (1-'PllWeightFactorBig') to the carrier tracking filter. The 'big' value is used in final tracking mode (narrow bandwidths). Usually this factor is big (i.e. near to 1). | - | ||
| PllWeightFactorSmall | Applicable only for 'FilterMode' = 2. Defines the phase discriminator contribution to the carrier tracking filter. The frequency discriminator contributes (1-'PllWeightFactorSmall') to the carrier tracking filter. The 'small' value is used after acquisition. Usually this factor is small (i.e. near to 0). | - | ||
| PolyFitCarrier | If true, then apply a poly fit of order 'PolyFitOrderCarrier' based on the carrier discriminator plus the carrier pseudorange is performed during one measurement interval to extract the carrier measurement. | - | Only used for vector tracking. Set to false for normal receiver operation. | |
| PolyFitCarrierMaxAge | Maximum age of the carrier discriminator values to be considered for 'PolyFitCarrier' or 'PolyPreciseDoppler'. | s | Only used for vector tracking. | |
| PolyFitCarrierQualityCheck | If true, then code/carrier pseudoranges plus Doppler measurements are only generated, if the polyfit to the carrier phase did show a maximum residual below 'PolyFitCarrierThreshold'. | - | Only used for vector tracking. | |
| PolyFitCarrierThreshold | If the maximum residual of the carrier-polyfit is below this threshold, then the carrier polyfit method is declared to be successful and used for further processing. | cyc | Only used for vector tracking. | |
| PolyFitCn0 | If true, then apply a poly fit of order 'PolyFitOrderCn0' based on the integrate-and-dump interval C/N0 values is performed during one measurement interval to extract the C/N0 estimate. | - | Only used for vector tracking. Set to false for normal receiver operation. | |
| PolyFitCode | If true, then apply a poly fit of order 'PolyFitOrderCode' based on the code discriminator plus the code pseudorange is performed during one measurement interval to extract the code measurement. | - | Only used for vector tracking. Set to false for normal receiver operation. | |
| PolyFitDoppler | If true, then apply a poly fit of order 'PolyFitOrderDoppler' based on the Doppler discriminator plus the NCO Doppler value is performed during one measurement interval to extract the Doppler measurement. | - | Only used for vector tracking. Set to false for normal receiver operation. | |
| PolyFitOrderCarrier | Order of the polynomial to fit carrier discriminator values over the measurement interval (used if 'AddDiscriminatorToRawMeasurements' == true ). | - | Only used for vector tracking. | |
| PolyFitOrderCn0 | Order of the polynomial to fit CN0 values over the measurement interval (used if 'AddDiscriminatorToRawMeasurements' == true ). | - | Only used for vector tracking. | |
| PolyFitOrderCode | Order of the polynomial to fit code discriminator over the measurement interval (used if 'AddDiscriminatorToRawMeasurements' == true ). | - | Only used for vector tracking. | |
| PolyFitOrderDoppler | Order of the polynomial to fit Doppler discriminator over the measurement interval (used if 'AddDiscriminatorToRawMeasurements' == true ). | - | Only used for vector tracking. | |
| PolyPreciseDoppler | If true, then precise Doppler estimates are output based on a polyfit of the carrier phase during the measurement interval. The maximum possible polynomial order is determined by 'PolyFitOrderCarrier'. If polyfit residuals are too high (see 'PolyFitCarrierThreshold'), then conventional or 'PolyFitDoppler' based measurements are generated. | - | Only used for vector tracking. | |
| PowerAveragingTime | Averaging period for C/N0 estimation of the data channel. | s | Note: the output C/N0 values is the sum of the data and pilot contribution. | |
| PowerAveragingTimeSlave | Same as PowerAveragingTime but for pilot channel. | s | ||
| PrecomputedCorrelationCode | PrecomputedCorrelationCode needs to be set to 2 (correlation dot-product is computed via Intel IPP if CPU-based correlation is used). Other values are not supported anymore. | - | Always set to 2! | |
| ProcessAccelNoiseCovSlave | For bit-sync. with CoherentIntegrator type 2. Assumed Doppler rate process noise covariance | rad^2/s^5 | Those values are very specific and require trial and error to set them properly. | |
| ProcessFreqNoiseCovSlave | For bit-sync. with CoherentIntegrator type 2. Assumed Doppler process noise covariance | rad^2/s^3 | Those values are very specific and require trial and error to set them properly. | |
| ProcessPhaseNoiseCovSlave | For bit-sync. with CoherentIntegrator type 2. Assumed phase process noise covariance | rad^2/s | Those values are very specific and require trial and error to set them properly. | |
| PromptIndex | See EarlyIndex | - | ||
| PromptIndexSlave | See EarlyIndex | - | ||
| SatelliteSystem | Satellite system of the signals to be tracked by the receiver | - | 0 → Unknown system 1 → All satellites of a system (no specific satellite number) 2 → GPS system 3 → Galileo system 4 → GLONASS system 5 → GEO/WAAS system 6 → Signal from Pseudolite 7 → IMES signal (PRN 173-182) 8 → QZSS signal (PRN 182-187, 193-197) 9 → BeiDou system 10 → BeiDou system (Compass) 11 → LTE system 12 → Starlink 13 → IRNSS system 14 → Iridium system 15 → Xona system 16 → 3GPP NR-like 17 → 5G NTN system (Non Terrestrial Network) 18 → 5G TN system (Terrestrial Network) | Note: this value is attached to the raw observations to label them properly. |
| SecondaryCode | Secondary code sequence for the data channel, to be specified in chips. Use a ';' to separate PRN-specific secondary codes. If only one sequences is given, it will be used for all PRNs. | - | Note: the secondary code is used by the CoherentIntegrator type 2 and 3 to perform secondary code synchronization and to wipe-off the secondary code chip after synchronization has been achieved. | |
| SecondaryCode | Same as SecondaryCode for the pilot channel. | - | ||
| Service | Label to identify the GNSS service tracked by the receiver | - | 0 → Unknown service, for test purposes 1 → GPS C/A code on L1 2 → GPS Civil signal on L2 3 → GPS P(Y)-code code on L2 4 → GPS L5 5 → Galileo E1 OS 6 → Galileo E5a OS 7 → EGNOS (or WAAS, ...) on L1 8 → GLONASS L1 C/A 9 → GLONASS L2 C/A 10 → IMES on L1 11 → QZSS on L1 12 → Pseudolite C/A code on L1 13 → Galileo E5b OS 14 → Galileo E5a+b OS 15 → Galileo E6 16 → GPS L1C 17 → GPS L1 P(Y) 18 → GLONASS L1 P 19 → GLONASS L2 P 20 → EGNOS (or WAAS, ...) on L5 21 → AUX1 22 → AUX2 23 → AUX3 24 → AUX 4 25 → AUX 5 26 → COMPASS B1 27 → COMPASS B2 28 → COMPASS B3 29 → Galileo E1 PRS Wideband 30 → Galileo E1 PRS Upper 31 → Galileo E1 PRS Lower 32 → Galileo E6 PRS Wideband 33 → Galileo E6 PRS Upper 34 → Galileo E6 PRS Lower 35 → Beidou B1C 36 → LTE 37 → Starlink Channel 3 38 → Starlink Channel 4 39 → IRNSS NAVIC L1 40 → IRNSS NAVIC L5 SPS 41 → QZSS L1C 42 → Iridium Ring Alert (Simplex Channel 7) 43 → Xona-lite (not Xona, mimics L5) 44 → 5G NTN 45 → 5G TN 46 → 3GPP NR-like 47 → Starlink Channel 1 48 → Starlink Channel 2 49 → Starlink Channel 5 50 → Starlink Channel 6 51 → Starlink Channel 7 52 → Starlink Channel 8 | Note: this value is attached to the raw observations to label them properly. |
| SignalPowerEstimatorType | Estimator type for C/N0 estimator. Intended to be changed for signals with uneven energy distribution. | - | 1 → Differential Estimator (classic, default) 2 → Squaring Estimator | described in doi: 10.1109/PLANS.2006.1650689. |
| StreamNo | Selection of the IF band to be processed by this receiver unit. Either IF sample stream id (0, 1, 2, ...) or nominal RF of respective frequency band (e.g. 1575420000). | - | ||
| SubdividePacketsIntoFrames | Set to true to enable subdivision of IF sample packets into smaller frames (this is required for all 'GNSS receiver' modules but not for the spectrum analyzer | - | ||
| ThresholdExport | C/N0 threshold for a raw pseudorange measurement record. The record's estimated C/N0 value must exceed this threshold in order that the record is exported to the navigation processor. | dBHz | ||
| ThresholdFLL | For 'FilterMode' 1 = minimum C/N0 required to switch from FLL into PLL mode and to stay there. For 'FilterMode' 2 = minimum C/N0 required to narrow down tracking loop bandwidths. | dBHz | ||
| ThresholdLossOfLock | Loss-of-lock threshold, if C/N0 falls below this value, tracking is stopped. | dBHz | ||
| TrackingTimeLimitFLL | For 'FilterMode' 1 = minimum time in [s] to work in FLL mode before a switch into the PLL mode is considered. For 'FilterMode' 2 = minimum time to work in wide loop bandwidth mode. | - | ||
| UnderSamplingFactor | IF sample decimation factor when channel is in undersampling mode (see UnderSamplingThreshold). Undersampling reduces computational demands at the cost of a reduced C/N0. | - | ||
| UnderSamplingThreshold | If the estimated C/N0 value exceeds the 'UnderSamplingThreshold', then the channels switches to the under sampling mode. | dBHz | Note: Undersampling is a technique to speed up processing at the cost of higher measurement noise. Should be used with care. Set to 99 for normal receiver operations (to deactivate undersampling) | |
| Viterbi | Type of used Viterbi decoder for the data channel | - | 0 = Viterbi decoding deactivated 1 = GPS CNAV mode 2 = Galileo mode 3 = Beidou B1C mode 4 = Galileo HAS. | |
| ViterbiSlave | Same as Viterbi but for pilot channel | - | ||
| AcqCnoThreshold | C/N0 threshold to exceed to declare acquisition. If acquistion estimates a C/N0 above this value, then it activates tracking for this channel. This parameter reflects the threshold \gamma of chapter 5 of [1]. You should choose is slightly larger than the reported C/N0 values under H0 conditions. The first entry is for level 1 (cold start), the second entry is for level 2 (warm start). The parameter is used only for FFTAcquisitionLevel*.AcquisitionType = 4. | dBHz | ||
| AcqMinReqSampleRate | Minimum required sample rate to perform signal acquisition. This value is used to determine the down sampling factor from the native sample rate to the acquisition sample rate (cf. section 5.3 of [1]). The first entry is for level 1 (cold start), the second entry is for level 2 (warm start). The parameter is used only for FFTAcquisitionLevel*.AcquisitionType = 4. | MSamples/s | ||
| AcqNumberCoh | Signal acquisition coherent integration time in multiples of the primary PRN code length. The first entry is for level 1 (cold start), the second entry is for level 2 (warm start). The parameter is used only for FFTAcquisitionLevel*.AcquisitionType = 4. | - | ||
| AcqNumberNonCoh | Number of non-coherent integrations for signal acquisition. The first entry is for level 1 (cold start), the second entry is for level 2 (warm start). The parameter is used only for FFTAcquisitionLevel*.AcquisitionType = 4. | - | ||
| AcqPrimaryFftOrder | FFT order used to represent the primary PRN code sequence; this value determines the code phase resolution = #chips/2^'AcqPrimaryFftOrder'. The first entry is for level 1 (cold start), the second entry is for level 2 (warm start). The parameter is used only for FFTAcquisitionLevel*.AcquisitionType = 4. | - | ||
| CodeFamilyIndex | Index to the values to be extracted from the RandomCodesConfigFile defined in the Main section. The first enry defines the PRN spreading codes of the data channel, the second entry for the pilot channel (if present). | - | ||
| CorrelatorPositions | Defines a number of correlator positions for the data channel respect to the NCO value (i.e. defines the code phase offsets of the various correlators). Several values can be defined. The corresponding index to the values will be used in the following parameters: EarlyIndex, PromptIndex, LateIndex and so on ... | - | Use this MATLAB script to generate proper entries automatically: cnt=0;for k=-20:1:-20, fprintf('<!-- %d --><item>%d</item>\n',cnt,k), cnt=cnt+1;, end | |
| CorrelatorPositionsSlave | Same as CorrelatorPositions but for pilot channel | - | ||
| CodeDiscCoefficients | If at least one element differs from zero, then this lists overrides 'EarlyIndex' and 'LateIndex'. The entries of 'CodeDiscCoefficients' are used to obtain the Dcorrelator for the data channel (i.e. early-late correlator for code tracking) from a linear combination of several correlators shifted in the code phase. List needs to have the same length as CorrelatorPositions. The linear combination is then multiplied by EarlyLateScale and divided by the prompt correlator to obtain the code tracking error in [subchip]. | Should be used with care to realize e.g. a double-delta correlator to mitigate multipath. Shall be absent for normal receiver operation realizing standard early-late tracking. | ||
| PRNsToLog | List of PRNs to log in the dumplog files. | - | -1 : Logging of all tracked satellites 0: No logging is done Otherwise: The PRN number(s) to be logged | |
| TrackedPrn | The PRNs to be tracked. | - | empty or -1 → All PRNs are tracked |
[1] ... PANY, Thomas. Navigation signal processing for GNSS software receivers. Artech House, 2010.
Notes on the correlator settings in the .musnat configuration file:
| Main correlator setting | Code tracking mode | Replica signal for code tracking | Replica signal for phase tracking | Replica signal for multi-correlator | Note and example configuration |
|---|---|---|---|---|---|
| CorrelatorType=1, CorrelatorTrackingMode=true | Waveform based tracking | vsCodeFileNames | vsCarrierFileNames | If MultiCorrelatorForTracking == true then vsCarrierFileNames, otherwise see MultiCorrRefSignal | This should be the default configuration for most applications. Waveform based tracking also to reuse the same parameter set for different sampling rates. The correlation runs on the CPU making use of the Intel IPP library. Note, the Intel IPP supports also most processors from AMD. Example: Configurations\AllGnss\AllGnss.musnat (all receivers there are configured for waveform based tracking and tailored for reference station use) |
| CorrelatorType=1 or 4, CorrelatorTrackingMode=false | Correlator based tracking | vsCarrierFileNames | vsCarrierFileNames | vsCarrierFileNames | Having access to dedicated correlators including early, late and prompt is the basis for most analyis in navigation signal processing. This mode requires some care in configuring the correlators and in setting the EarlyLateScale as this does depend on the sampling rate. Both CPU and GPU based computation are supported (GPU only if CUDA is enabled during compile time). Example: Configurations\CUDA_Correlator\SQM_CUDA.musnat (this is a Galileo E1BC+E5aIQ plus GPS C/A+L5IQ receiver config tailored for signal quality monitoring). Set CorrelatorType=1 or 4 depending on your preferred processing mode (1=CPU, 4 = GPU) and all other parameters remain identical. |
| Obsolete Configurations: | |||||
| CorrelatorType=0 | Waveform based tracking | vsCodeFileNames | vsCarrierFileNames | n/a | |
| CorrelatorType=2 | Correlator based tracking | vsCarrierFileNames | vsCarrierFileNames | vsCarrierFileNames |
Notes on baseband logging
Settings necessary to activate baseband logging. Baseband logging writes short snippets of the received GNSS signal to a file after carrier wipe-off has been performed. Mostly used for debugging and spreading code authentifcation.
| BasebandLoggingTime | Time to log the baseband signal e.g. 10. Logging time is calculated by trying to achieve an SNR value of abs(BasebandLoggingTime) e.g. 16 [dB] | ms | If the value is negative, than the logging time is calculated depending on the MasterReceiver signal power,high C/N0 short logging, low C/N0 long logging | ||
| TrueBasebandLoggingFile | Logs the first 100 ms after PLL phase lock has been achieved and after carrier wipe-off in the defined .tbb file | - | |||
| RepeatBasebandLogging | If >0, the baseband logging is repeated with a time interval according to its value in [s] | - | 0, 1, 2, 2.5 |