Acquisition
A generic GNSS signal defined by its complex baseband equivalent, \(s_{T}(t)\), the digital signal at the input of an Acquisition block can be written as:
\[\begin{equation} \label{xin} x_\text{IN}[k] = A(t)\tilde{s}_{T}(t - \tau(t))e^{j \left( 2\pi f_D(t) t + \phi(t) \right) } \Bigr \rvert_{t=kT_s} + n(t) \Bigr \rvert_{t=kT_s} \end{equation}\]where \(A(t)\) is the signal amplitude, \(\tilde{s}_{T}(t)\) is a filtered version of \(s_T(t)\), \(\tau(t)\) is a time-varying code delay, \(f_D(t)\) is a time-varying Doppler shift, \(\phi(t)\) is a time-varying carrier phase shift, \(n(t)\) is a term modeling random noise and \(T_s\) is the sampling period.
The role of an Acquisition block is the detection of the presence/absence of signals coming from a given GNSS satellite. In the case of a positive detection, it should provide coarse estimations of the code phase \(\hat{\tau}_{acq}\) and the Doppler shift \(\hat{f}_{\!D_{acq}}\), yet accurate enough to initialize the delay and phase tracking loops.
By exploiting the concepts and methodology of estimation theory, it is possible to show that the maximum likelihood (ML) estimates of \(f_D\) and \(\tau\) can be obtained by maximizing the function
\[\begin{equation} \hat{f}_{\!D_{ML}}, \hat{\tau}_{ML} = \arg \max_{f_D,\tau} \left\{ \left| \hat{R}_{xd}(f_D,\tau)\right|^2\right\}~, \end{equation}\]where
\[\begin{equation} \hat{R}_{xd}(f_D,\tau) = \frac{1}{K}\sum_{k=0}^{K-1}x_{\text{IN}}[k]d[kT_s - \tau]e^{-j 2 \pi f_D kT_s}~, \end{equation}\]\(x_{\text{IN}}[k]\) is a complex vector containing I&Q samples of the received signal, \(T_s\) is the sampling period, \(\tau\) is the code phase of the received signal with respect to a local reference, \(f_D\) is the Doppler shift, \(K\) is the number of samples in a spreading code (4 ms for Galileo E1, 1 ms for GPS L1, etc.), and \(d[k]\) is a locally generated reference. The maximization in the equation above requires a two-dimensional search in a function which output results from a multiplication-and-sum of \(K\) complex samples, becoming the computational bottleneck of the whole process. A usual method to alleviate this issue is to resort to the FFT-based circular convolution, which exchanges the expensive multiplication-and-sum operation by a discrete Fourier transform, a vector product, and an inverse transform, taking advantage of the efficient implementations available for such operations1.
The magnitude of \(|\hat{R}_{xd}(f_D,\tau)|\), also known as cross-ambiguity function, is also used to decide whether the satellite corresponding to the local replica \(d[k]\) is in view or it is not. Resorting to signal detection theory, it is possible to define tests statistics with desirable properties. A criterion commonly used for a detection problem is the maximization of the detection probability (\(P_d\)) subject to a given false alarm probability (\(P_{fa}\)). It is well-known in the literature that the optimum solution to that problem can be found by applying the Neyman-Pearson approach, which requires perfect knowledge of the signal parameters and constitutes the uniformly most powerful test. Assuming additive white Gaussian noise and replacing the true synchronization parameters by their ML estimators in the Neyman-Pearson detector, one obtains the Generalized Likelihood Ratio Test (GLRT) function, which can be written as:
\[\begin{equation} T_{\text{GLRT}}\left(\mathbf{x}_{\text{IN}}\right) = \max_{f_D,\tau}\left\{ \frac{\left| \hat{R}_{xd}(f_D,\tau) \right|^2}{\hat{R}_{xx}} \right\}~, \end{equation}\]where \(\hat{R}_{xx}\) is an estimation of the input signal power. It can be shown that this acquisition test statistic is a Constant False Alarm Rate (CFAR) detector because \(P_{fa}\) does not depend on the noise power.
GLRT statistic for Parallel Code Phase Search acquisition algorithm for a
configuration of \(f_{IN} = 4\) Msps, a frequency span of \(\pm 5\) kHz with
steps of \(250\) Hz, and using the E1B sinBOC local replica for Galileo’s IOV
satellite PRN 112.
Completing all non-coherent dwells
The Acquisition_<signal>.full_grid_search option controls when the shared
PCPS acquisition block (CPU or CUDA) makes its detection decision. It defaults
to false.
Each dwell computes the correlation over every active Doppler bin and code phase. With multiple dwells, the block adds their squared correlation magnitudes, forming a non-coherently accumulated search grid. This option changes the stopping rule:
full_grid_search=false: after each dwell, accept the strongest peak if its detection statistic exceeds the threshold. Otherwise, continue untilmax_dwellsis reached, then declare failure.full_grid_search=true: accumulate exactlymax_dwellsdwells before testing the strongest peak for acceptance or rejection. An earlier threshold crossing does not end the search.
Despite its name, full_grid_search does not enlarge the Doppler range, reduce
the Doppler step, or enable additional code-phase hypotheses. Both settings
search the entire active grid in each dwell.
Waiting for all dwells can improve peak selection when noise or a temporary competing peak would otherwise cause an early acceptance. It does not guarantee better detection or tracking: a persistent competing peak can remain strongest, and a signal that fades or moves across grid cells during accumulation may produce a less useful final result. This option does not add motion compensation or resolve the inherent ambiguity of a BOC correlation function.
The cost is additional processing and a later handoff to tracking when a signal
could have been accepted early. For max_dwells=N and a coherent integration
time of T ms, a single-stage attempt processes N*T ms of input samples. If
early acceptance would have occurred after k dwells, completing all dwells
requires approximately N/k times as much correlation work. Actual elapsed time
also depends on buffering, processing capacity, and scheduling. An attempt that
never crosses the threshold already uses all N dwells with either setting.
Accumulation reuses the existing grid, so this option does not require storing
all dwells separately.
The following interactions apply:
max_dwells=1gives the same behavior with either setting.bit_transition_flag=truetakes precedence: the block uses one double-length dwell per search stage, regardless ofmax_dwellsorfull_grid_search.- With
make_two_steps=true, each stage accumulatesmax_dwellsdwells. If the coarse stage succeeds, the refinement stage starts a fresh accumulation; a successful two-stage attempt processes2*N*Tms of input samples. - When the Doppler search is narrowed (see Reduced Doppler
search), the reduced grid remains in use.
full_grid_searchchanges the dwell count, not the searched Doppler range. - Both
blocking=trueandblocking=falsesupport this option. Moving the work to a separate thread does not eliminate the additional correlation work. - The existing
pfa-derived or manually configured threshold is retained. The option changes when that threshold is tested; it does not recalibrate it.
Enable this option selectively when stable peak selection matters more than the earliest possible handoff to tracking, and compare acquisition success, subsequent tracking lock, and CPU load with representative recordings. Keeping the default is appropriate when rapid acquisition of strong signals is the priority.
For example, this Galileo E1 pilot configuration accumulates five 4 ms dwells (20 ms of input samples) before making a single-stage decision:
Acquisition_1B.implementation=Galileo_E1_PCPS_Ambiguous_Acquisition
Acquisition_1B.acquire_pilot=true
Acquisition_1B.coherent_integration_time_ms=4
Acquisition_1B.doppler_max=5000
Acquisition_1B.doppler_step=125
Acquisition_1B.pfa=1e-7
Acquisition_1B.max_dwells=5
Acquisition_1B.full_grid_search=true
This option is supported by the implementations whose parameter tables below
include full_grid_search.
Reduced Doppler search
The implementations whose parameter tables below include full_grid_search and
reference_bin_min_sidelobes share a PCPS acquisition block (CPU or CUDA) that
can search any number of Doppler bins, from a single one up to the full configured grid,
centered at a Doppler value \(f_c\) provided by the receiver. Without prior
knowledge, the search covers the full grid of
\(N = \lceil 2 \cdot \text{doppler_max} / \text{doppler_step} \rceil\)
bins centered at \(f_c = 0\) Hz. The receiver narrows it when the Doppler
shift is already known or can be predicted:
- In multi-frequency configurations, the Doppler measured by a channel tracking
the same satellite in the primary band is projected to the secondary band (see
Self-assistance in multi-frequency
receivers),
and a single bin is searched. This is controlled by
GNSS-SDR.assist_dual_frequency_acq. A single signal can opt out of this narrowing withAcquisition_XX.dual_freq_assisted_doppler_narrowing=false(it defaults totrue): its searches are then always performed over the full grid centered at \(0\) Hz, while the other secondary bands remain assisted. Only the projected Doppler is discarded: withGNSS-SDR.assist_dual_frequency_acq=true, the secondary band still waits until the satellite is tracked in the primary band, and searches for that same satellite. This is mainly intended for characterizing the unassisted acquisition performance of a given band without disabling the assistance for the rest of the receiver. The parameter is read from the role the block was configured with, so it can also be set on a per-channel role (e.g.,Acquisition_L50.dual_freq_assisted_doppler_narrowing=false) when those are in use (see Channels). - Without dual-frequency assistance, if
GNSS-SDR.enable_visibility_aware_search=trueand the satellite is classified as visible, the Doppler can be predicted from its ephemeris or almanac (see Doppler prediction from ephemeris and almanac). This is always done in the primary band, and in a secondary band only ifAcquisition_XX.alm_ephe_assisted_doppler_narrowing=true(it defaults tofalse). This parameter can also be set on a per-channel role. With a position fix no older than one second, a single bin is searched. Before the first fix, and only ifGNSS-SDR.doppler_prediction_before_fix=true, the prediction carries a Doppler uncertainty of \(U\) Hz derived from the configured clock and velocity bounds, and \(M = 1 + 2 \lceil U / \text{doppler_step} \rceil\) bins are searched. If \(M > 1\) and \(M \geq N\), the narrowing brings no benefit, and the full grid centered at \(0\) Hz is searched instead. \(N\) and \(M\) take into account the--doppler_maxand--doppler_stepcommand-line overrides.
Otherwise, the full grid is searched.
The \(M\) candidate bins are placed symmetrically around \(f_c\), with the \(k\)-th bin (\(k = 0, \ldots, M-1\)) at
\[f_k = f_c + \left(k - \left\lfloor \frac{M-1}{2} \right\rfloor \right) \cdot \text{doppler_step}~,\]so a single-bin search tests exactly \(f_c\), and with an even \(M\) the
extra bin falls on the positive side. For instance, doppler_max=5000 and
doppler_step=250 give \(N = 40\) bins, from \(-4750\) Hz to \(+5000\)
Hz.
If pfa is set, the detection threshold is recomputed for the number of
candidate bins actually searched every time that number changes, so the
configured probability of false alarm refers to the current search instead of
the full grid. A manually configured threshold is used as is.
With pfa set, the test statistic normalizes the correlation peak by a noise
power estimate taken from a Doppler bin assumed to contain no signal. In a full
grid, this is the bin located \(\lfloor N/2 \rfloor\) bins away from the
peak (wrapping around the grid). That bin is replaced by dedicated noise-reference
bins, computed in addition to the candidates, in these cases:
- The search is narrowed (\(M < N\)). Reference bins are then always
computed, even without
pfa, although only the CFAR statistic uses them. - The full grid is searched,
pfais set, and \(\lfloor N/2 \rfloor \cdot \text{doppler_step} < (\text{reference_bin_min_sidelobes} + 0.5) / T_{int}\), where \(T_{int}\) is the coherent integration time in seconds (the Doppler sidelobes of the correlation are spaced approximately \(1/T_{int}\) Hz apart). For instance, with the defaultreference_bin_min_sidelobes=4, the threshold is \(4500\) Hz for \(T_{int} = 1\) ms and \(1125\) Hz for \(T_{int} = 4\) ms.
With a single candidate bin, one reference bin is computed at
\(f_c + \text{doppler_max}\). With more candidates, two reference bins are
computed, at \(f_c + \text{doppler_max}\) and
\(f_c - \text{doppler_max}\), and the statistic uses the one on the
opposite side of \(f_c\) from the strongest candidate, so the reference never
lies next to a signal near the edge of the search range. Reference bins are
never placed beyond \(\pm\)doppler_max from \(f_c\), even when that
separation does not reach the reference_bin_min_sidelobes target, because
the configured doppler_max is the range for which the rest of the acquisition
chain is designed, and noise samples taken outside it may be distorted by
filtering.
Searching only a few Doppler bins is not statistically free: both the
pfa-based threshold calibration and the noise estimate rely on fewer
independent hypotheses than a full-grid search, so the detection is less
statistically robust than with the full grid.
For example, consider GPS L5 in a multi-frequency receiver:
Acquisition_L5.implementation=GPS_L5i_PCPS_Acquisition
Acquisition_L5.coherent_integration_time_ms=1
Acquisition_L5.doppler_max=3000
Acquisition_L5.doppler_step=250
Acquisition_L5.pfa=0.01
Acquisition_L5.reference_bin_min_sidelobes=4
As a secondary band, most L5 searches are narrowed to a single bin by the
assistance from L1 C/A, with the noise reference at \(f_c + 3000\) Hz. When
L5 is searched without assistance, the full grid has \(N = 24\) bins, and
\(\lfloor 24/2 \rfloor \cdot 250 = 3000\) Hz does not reach the
\(4500\) Hz target for \(T_{int} = 1\) ms, so two reference bins are added
at \(\pm 3000\) Hz from \(f_c\). Setting reference_bin_min_sidelobes=2
lowers the target to \(2500\) Hz, and the full grid then takes its reference
from within the grid. Adding
Acquisition_L5.dual_freq_assisted_doppler_narrowing=false would make every
L5 search use this full grid, even when the satellite is already tracked in
L1 C/A.
GPS L1 C/A signal acquisition
Implementation: GPS_L1_CA_PCPS_Acquisition
The Parallel Code Phase Search (PCPS) algorithm is described as follows:
- Require: Input signal buffer \(\mathbf{x}_{\text{IN}}\) of \(K\) complex samples, provided by the Signal Conditioner; on-memory FFT of the local replica, \(D[k]=FFT_{K}\left\{d[k]\right\}\); acquisition threshold \(\gamma\); freq. span \([f_{min}\; f_{max}]\); freq. step \(f_{step}\).
- Ensure: Decision positive or negative signal acquisition. In the case of positive detection, it provides coarse estimations of code phase \(\hat{\tau}_{acq}\) and Doppler shift \(\hat{f}_{\!D_{acq}}\) to the Tracking block.
-
Compute input signal power estimation: \(\hat{P}_{in} = \frac{1}{K}\sum_{k=0}^{K-1}\left|x_{\text{IN}}[k]\right|^2\).
- for \(\check{f}_D=f_{min}\) to \(\check{f}_D = f_{max}\) in \(f_{step}\) steps:
- Carrier wipe-off: \(x[k] = x_{\text{IN}}[k] \cdot e^{-(j2\pi \check{f}_D k T_s)}\), for \(k = 0,...,K-1\).
- Compute \(X[k] = \text{FFT}_{K}\left\{ x[k]\right\}\).
- Compute \(Y[k] = X[k] \cdot D[k]\), for \(k = 0,...,K-1\).
- Compute \(R_{xd}(\check{f}_D, \boldsymbol{\tau}) = \frac{1}{K^2}\text{IFFT}_{K}\left\{Y[k]\right\}\).
-
end for
-
Search maximum and its indices in the search grid: \(\left\{S_{max}, f_i, \tau_j \right\} \quad \Leftarrow \quad \max_{f,\tau}\left|R_{xd}(f,\tau)\right|^2\)
-
Compute the GLRT function with normalized variance: \(\Gamma_{\text{GLRT}} = \frac{2\cdot K \cdot S_{max}}{\hat{P}_{in}}\)
- if \(\Gamma_{\text{GLRT}}>\gamma\)
- Declare positive acquisition and provide \(\hat{f}_{\!D_{acq}} = f_i\) and \(\hat{\tau}_{acq} = \tau_j\).
- else
- Declare negative acquisition.
- endif
The computation of the Fast Fourier Transform and its inverse (second and fourth steps inside the for loop) are performed by means of GNU Radio wrappers of the FFTW library, an efficient implementation for computing the discrete Fourier transform, whereas the products (first and third steps in the for loop) are implemented with the Vector-Optimized Library of Kernels (VOLK), which generates processor-specific Single-Input Multiple-Data (SIMD) assembly instructions that take advantage of parallel computing techniques and allow writing efficient and portable code.
This implementation accepts the following parameters:
| Global Parameter | Description | Required |
|---|---|---|
GNSS-SDR.internal_fs_sps |
Input sample rate to the processing channels, in samples per second. | Mandatory |
GNSS-SDR.use_acquisition_resampler |
[true, false]: If set to true, the Acquisition block makes use of the minimum possible sample rate during acquisition by setting a resampler at its input. This allows reducing the FFT size when using high data rates at GNSS-SDR.internal_fs_sps. All the required setup is configured automatically. It defaults to false. |
Optional |
| Parameter | Description | Required |
|---|---|---|
implementation |
GPS_L1_CA_PCPS_Acquisition |
Mandatory |
item_type |
[gr_complex, cshort, cbyte]: Set the sample data type expected at the block input. It defaults to gr_complex. |
Optional |
doppler_max |
Maximum Doppler value in the search grid, in Hz. It defaults to 5000 Hz. | Optional |
doppler_step |
Frequency step in the search grid, in Hz. It defaults to 500 Hz. | Optional |
threshold |
Decision threshold \(\gamma\) from which a signal will be considered present. It defaults to \(0.0\) (i.e., all signals are declared present). | Optional |
pfa |
If defined, it supersedes the threshold value and computes a new threshold \(\gamma_{pfa}\) based on the Probability of False Alarm. It defaults to \(0.0\) (i.e., not set). |
Optional |
coherent_integration_time_ms |
Set the integration time \(T_{int}\), in ms. It defaults to 1 ms. | Optional |
bit_transition_flag |
[true, false]: If set to true, it takes into account the possible presence of a bit transition, so the effective integration time is doubled. When set, it invalidates the value of max_dwells. It defaults to false. |
Optional |
max_dwells |
Set the maximum number of non-coherent dwells to declare a signal present. It defaults to 1. | Optional |
full_grid_search |
[true, false]: If set to true, accumulate all max_dwells non-coherent dwells before accepting or rejecting the strongest peak. It defaults to false (early acceptance). Ignored when bit_transition_flag=true. See Completing all non-coherent dwells for availability, tradeoffs, and interactions. |
Optional |
reference_bin_min_sidelobes |
Target separation, in Doppler sidelobes of the correlation, between the searched bins and the noise-reference bin of the CFAR statistic. It only decides whether a full-grid search needs dedicated reference bins, and never moves them beyond \(\pm\)doppler_max. Only used if pfa is set. It defaults to \(4\). See Reduced Doppler search for availability and details. |
Optional |
dual_freq_assisted_doppler_narrowing |
[true, false]: If set to false, the Doppler projected from the primary band when GNSS-SDR.assist_dual_frequency_acq=true is discarded for this signal, which is then always searched over the full Doppler grid centered at \(0\) Hz. The secondary band still waits for the satellite to be tracked in the primary band; only the Doppler assistance is dropped. It defaults to true. See Reduced Doppler search for availability and details. |
Optional |
repeat_satellite |
[true, false]: If set to true, the block will search again for the same satellite once its presence has been discarded. Useful for testing. It defaults to false. |
Optional |
blocking |
[true, false]: If set to false, the acquisition workload is executed in a separate thread, outside the GNU Radio scheduler that manages the flow graph, and the block skips over samples that arrive while the processing thread is busy. This is especially useful in real-time operation using radio frequency front-ends, overcoming the processing bottleneck for medium and high sampling rates. However, results then depend on the processing speed of the host computer, so do not use this option for file processing, unless GNSS-SDR.deterministic=true (see deterministic processing, only present in the next branch), which makes the results independent of this parameter. It defaults to true. |
Optional |
make_two_steps |
[true, false]: If set to true, an acquisition refinement stage is performed after a signal is declared present. This allows providing an updated, refined Doppler estimation to the Tracking block. It defaults to false. |
Optional |
second_nbins |
If make_two_steps is set to true, this parameter sets the number of bins done in the acquisition refinement stage. It defaults to 4. |
Optional |
second_doppler_step |
If make_two_steps is set to true, this parameter sets the Doppler step applied in the acquisition refinement stage, in Hz. It defaults to 125 Hz. |
Optional |
dump |
[true, false]: If set to true, it enables the Acquisition internal binary data file logging. It defaults to false. |
Optional |
dump_filename |
If dump is set to true, name of the file in which internal data will be stored. This parameter accepts either a relative or an absolute path; if there are non-existing specified folders, they will be created. It defaults to ./acquisition, so files with name ./acquisition_G_1C_ch_N_K_sat_P.mat (where N is the channel number defined by dump_channel, K is the dump number, and P is the targeted satellite’s PRN number) will be generated. |
Optional |
dump_channel |
If dump is set to true, channel number from which internal data will be stored. It defaults to 0. |
Optional |
Acquisition implementation: GPS_L1_CA_PCPS_Acquisition.
Example:
;######### ACQUISITION CONFIG FOR GPS L1 CHANNELS ############
Acquisition_1C.implementation=GPS_L1_CA_PCPS_Acquisition
Acquisition_1C.doppler_max=5000
Acquisition_1C.doppler_step=250
Acquisition_1C.pfa=0.01
Acquisition_1C.coherent_integration_time_ms=1
Acquisition_1C.max_dwells=1
Implementation: GPS_L1_CA_PCPS_Acquisition_Fine_Doppler
This implementation accepts the following parameters:
| Global Parameter | Description | Required |
|---|---|---|
GNSS-SDR.internal_fs_sps |
Input sample rate to the processing channels, in samples per second. | Mandatory |
| Parameter | Description | Required |
|---|---|---|
implementation |
GPS_L1_CA_PCPS_Acquisition_Fine_Doppler |
Mandatory |
item_type |
[gr_complex]: Set the sample data type expected at the block input. Only gr_complex is defined in this version. It defaults to gr_complex. |
Optional |
doppler_max |
Maximum Doppler value in the search grid, in Hz. It defaults to \(5000\) Hz. | Optional |
doppler_step |
Frequency step in the search grid, in Hz. It defaults to 500 Hz. | Optional |
threshold |
Decision threshold \(\gamma\) from which a signal will be considered present. It defaults to \(0.0\) (i.e., all signals are declared present), | Optional |
coherent_integration_time_ms |
Set the integration time \(T_{int}\), in ms. It defaults to 1 ms. | Optional |
max_dwells |
Set the maximum number of non-coherent dwells to declare a signal present. It defaults to 1. | Optional |
repeat_satellite |
[true, false]: If set to true, the block will search again for the same satellite once its presence has been discarded. Useful for testing. It defaults to false. |
Optional |
dump |
[true, false]: If set to true, it enables the Acquisition internal binary data file logging. It defaults to false. |
Optional |
dump_filename |
If dump is set to true, name of the file in which internal data will be stored. It defaults to ./acquisition.dat |
Optional |
Acquisition implementation: GPS_L1_CA_PCPS_Acquisition_Fine_Doppler.
Example:
;######### ACQUISITION CONFIG FOR GPS L1 CHANNELS ############
Acquisition_1C.implementation=GPS_L1_CA_PCPS_Acquisition_Fine_Doppler
Acquisition_1C.threshold=0.007
Acquisition_1C.doppler_max=10000
Acquisition_1C.doppler_step=500
Acquisition_1C.max_dwells=10
Implementation: GPS_L1_CA_PCPS_Tong_Acquisition
On top of the PCPS Algorithm (or any other providing the same outputs), we could integrate results from more than one consecutive code periods in order to enhance the acquisition sensitivity, understood as the minimum signal power at which a receiver can correctly identify the presence of a particular satellite signal in the incoming RF signal within a given time-out interval.
This is the case of the Tong detector3, a sequential variable dwell time detector with a reasonable computation burden and proves good for acquiring signals with low \(C/N_0\) levels. During the signal search, the up/down counter \(\mathcal{K}\) is incremented by one if the correlation peak value exceeds the threshold, otherwise it is decremented by one. If the counter has reached the maximum count value \(A\), the signal is declared ‘present’ and the search is terminated. Similarly, if the counter contents reach zero, the signal is declared ‘absent’ and the search is terminated. So that the Tong detector is not trapped into an extended dwell in the same cell, under certain poor signal conditions, another counter (\(\mathcal{K}_{max}\)) sets the limit on the maximum number of dwells.
This implementation accepts the following parameters:
| Global Parameter | Description | Required |
|---|---|---|
GNSS-SDR.internal_fs_sps |
Input sample rate to the processing channels, in samples per second. | Mandatory |
| Parameter | Description | Required |
|---|---|---|
implementation |
GPS_L1_CA_PCPS_Tong_Acquisition |
Mandatory |
item_type |
[gr_complex]: Set the sample data type expected at the block input. It defaults to gr_complex. |
Optional |
doppler_max |
Maximum Doppler value in the search grid, in Hz. It defaults to 5000 Hz. | Optional |
doppler_step |
Frequency step in the search grid, in Hz. It defaults to 500 Hz. | Optional |
threshold |
Decision threshold \(\gamma\) from which a signal will be considered present. It defaults to \(0.0\) (i.e., all signals are declared present), | Optional |
pfa |
If defined, it supersedes the threshold value and computes a new threshold \(\gamma_{pfa}\) based on the Probability of False Alarm. It defaults to \(0.0\) (i.e., not set). |
Optional |
coherent_integration_time_ms |
Set the integration time \(T_{int}\), in ms. It defaults to 1 ms. | Optional |
tong_init_val |
Initial value of the Tong counter \(\mathcal{K}\). It defaults to 1. | Optional |
tong_max_val |
Count value \(A\) that, if reached by counter \(\mathcal{K}\), declares a signal as present. It defaults to 2. | Optional |
tong_max_dwells |
Maximum number of dwells in a search \(\mathcal{K}_{max}\). It defaults to tong_max_val \(+1\). |
Optional |
repeat_satellite |
[true, false]: If set to true, the block will search again for the same satellite once its presence has been discarded. Useful for testing. It defaults to false. |
Optional |
dump |
[true, false]: If set to true, it enables the Acquisition internal binary data file logging. It defaults to false. |
Optional |
dump_filename |
If dump is set to true, name of the file in which internal data will be stored. It defaults to ./acquisition.dat |
Optional |
Acquisition implementation: GPS_L1_CA_PCPS_Tong_Acquisition.
Example:
;######### ACQUISITION CONFIG FOR GPS L1 CHANNELS ############
Acquisition_1C.implementation=GPS_L1_CA_PCPS_Tong_Acquisition
Acquisition_1C.pfa=0.0001
Acquisition_1C.doppler_max=10000
Acquisition_1C.doppler_step=250
Acquisition_1C.tong_init_val=2
Acquisition_1C.tong_max_val=10
Acquisition_1C.tong_max_dwells=20
Galileo E1 signal acquisition
The Galileo E1 Open Service signal can be written as:4
\[\begin{eqnarray} s^{\text{(Gal E1)}}_{T}(t)& = &\frac{1}{\sqrt{2}} \Big( e_{E1B}(t) \left(\alpha sc_A(t) + \beta sc_B(t) \right)~ + \nonumber \\ {} & {} & -~e_{E1C}(t) \left(\alpha sc_A(t) - \beta sc_B(t) \right) \Big)~, \end{eqnarray}\]where \(sc_A(t)\) and \(sc_B(t)\) are the subcarriers defined as \(sc_A(t) = \text{sign}\Big(\sin(2\pi f_{s,E1A}t) \Big)\) and \(sc_B(t) = \text{sign}\Big(\sin(2\pi f_{s, E1B}t) \Big)\), with \(f_{s,E1A}=1.023\) MHz and \(f_{s, E1B}=6.138\) MHz.
Channel B contains the I/NAV type of navigation message, \(D_{I/NAV}\), and can be expressed as:
\[\begin{equation} e_{E1B}(t) = \sum_{l=-\infty}^{+\infty} D_{\text{I/NAV}} \Big[ [l]_{4092}\Big] \oplus C_{E1B}\Big[|l|_{4092}\Big] \cdot p(t - lT_{c,E1B})~. \end{equation}\]In the case of channel C, it is a pilot (dataless) channel with a secondary code with a length of 100 ms, forming a tiered code:
\[\!\!\!\!\!\!\!\!\!\!\!\begin{equation} e_{E1C}(t) =\!\! \sum_{m=-\infty}^{+\infty}\!C_{E1Cs}\Big[|m|_{25}\Big] \oplus \sum_{l=1}^{4092}C_{E1Cp}\Big[ l \Big] \cdot p(t \! - \! mT_{c,E1Cs} \! - \! lT_{c,E1Cp})~, \end{equation}\]with \(T_{c,E1B}=T_{c,E1Cp}=\frac{1}{1.023}\) \(\mu\)s and \(T_{c,E1Cs}=4\) ms.
Implementation: Galileo_E1_PCPS_Ambiguous_Acquisition
This implementation permits the configuration of the shape of the local replica \(d[k]\), allowing for simplifications that reduce the computational load. As shown in the figure below, in narrowband receivers the CBOC waveform can be substituted by a sinBOC modulation with a very small performance penalty5. For the E1B signal component, the reference signals available in this implementation are:
\[\begin{equation} d_{E1B}^{(\text{CBOC})}[n] = \sum_{l=-\infty}^{+\infty} C_{E1B}\Big[|l|_{4092}\Big] p(t - lT_{c,E1B}) \cdot \left( \alpha sc_A[n] + \beta sc_B[n] \right) \end{equation}\]or
\[\begin{equation} \label{eq:dE1BsinBOC} d_{E1B}^{(\text{sinBOC})}[n] = \sum_{l=-\infty}^{+\infty} C_{E1B}\Big[|l|_{4092}\Big] p(t - lT_{c,E1B}) sc_A[n]~, \end{equation}\]while for E1C, users can choose among:
\[\begin{eqnarray} d_{E1C}^{(\text{CBOC})}[n] & = &\sum_{m=-\infty}^{+\infty} \sum_{l=1}^{4092}\! C_{E1Cp}\Big[ l \Big] \! \cdot \! p[n\! -\! mT_{c,E1Cs} - lT_{c,E1Cp}] \cdot \nonumber \\ {} & {} & \cdot \left( \alpha sc_A[n] + \beta sc_B[n] \right) \end{eqnarray}\]or
\[\!\!\!\!\begin{equation} d_{E1C}^{(\text{sinBOC})}[n] = \! \sum_{m=-\infty}^{+\infty} \! \sum_{l=1}^{4092}C_{E1Cp}\Big[ l \Big] \! \cdot \! p[n \! - \! mT_{c,E1Cs} \! - \! lT_{c,E1Cp}] \cdot sc_A[n]~. \end{equation}\]The simpler sinBOC options are chosen by default. CBOC versions can be set by
Acquisition_1B.cboc=true. Next figure plots the shape of the cross-correlation
function for those waveforms:
Normalized \(\left|R_{xd}\left(\check{f}_D = f_D, \tau \right) \right|^2\) for different sampling rates and local reference waveforms2.
This implementation accepts the following parameters:
| Global Parameter | Description | Required |
|---|---|---|
GNSS-SDR.internal_fs_sps |
Input sample rate to the processing channels, in samples per second. | Mandatory |
GNSS-SDR.use_acquisition_resampler |
[true, false]: If set to true, the Acquisition block makes use of the minimum possible sample rate during acquisition by setting a resampler at its input. This allows reducing the FFT size when using high data rates at GNSS-SDR.internal_fs_sps. All the required setup is configured automatically. It defaults to false. |
Optional |
| Parameter | Description | Required |
|---|---|---|
implementation |
Galileo_E1_PCPS_Ambiguous_Acquisition |
Mandatory |
item_type |
[gr_complex, cshort, cbyte]: Set the sample data type expected at the block input. It defaults to gr_complex. |
Optional |
doppler_max |
Maximum Doppler value in the search grid, in Hz. It defaults to 5000 Hz. | Optional |
doppler_step |
Frequency step in the search grid, in Hz. It defaults to 500 Hz. | Optional |
threshold |
Decision threshold \(\gamma\) from which a signal will be considered present. It defaults to \(0.0\) (i.e., all signals are declared present), | Optional |
pfa |
If defined, it supersedes the threshold value and computes a new threshold \(\gamma_{pfa}\) based on the Probability of False Alarm. It defaults to \(0.0\) (i.e., not set). |
Optional |
cboc |
[true, false]: If set to true the algorithm uses the CBOC waveform , if set to false a simpler sinBOC waveform is used. It defaults to false. |
Optional |
coherent_integration_time_ms |
Set the integration time \(T_{int}\), in ms. Should be a multiple of 4 ms. It defaults to 4 ms. | Optional |
acquire_pilot |
[true, false]: If set to true, sets the receiver to acquire the E1C pilot component. It defaults to false (that is, the receiver is set to acquire the E1B data component). |
Optional |
bit_transition_flag |
[true, false]: If set to true, it takes into account the possible presence of a bit transition, so the effective integration time is doubled. When set, it invalidates the value of max_dwells. It defaults to false. |
Optional |
max_dwells |
Set the maximum number of non-coherent dwells to declare a signal present. It defaults to 1. | Optional |
full_grid_search |
[true, false]: If set to true, accumulate all max_dwells non-coherent dwells before accepting or rejecting the strongest peak. It defaults to false (early acceptance). Ignored when bit_transition_flag=true. See Completing all non-coherent dwells for availability, tradeoffs, and interactions. |
Optional |
reference_bin_min_sidelobes |
Target separation, in Doppler sidelobes of the correlation, between the searched bins and the noise-reference bin of the CFAR statistic. It only decides whether a full-grid search needs dedicated reference bins, and never moves them beyond \(\pm\)doppler_max. Only used if pfa is set. It defaults to \(4\). See Reduced Doppler search for availability and details. |
Optional |
dual_freq_assisted_doppler_narrowing |
[true, false]: If set to false, the Doppler projected from the primary band when GNSS-SDR.assist_dual_frequency_acq=true is discarded for this signal, which is then always searched over the full Doppler grid centered at \(0\) Hz. The secondary band still waits for the satellite to be tracked in the primary band; only the Doppler assistance is dropped. It defaults to true. See Reduced Doppler search for availability and details. |
Optional |
repeat_satellite |
[true, false]: If set to true, the block will search again for the same satellite once its presence has been discarded. Useful for testing. It defaults to false. |
Optional |
blocking |
[true, false]: If set to false, the acquisition workload is executed in a separate thread, outside the GNU Radio scheduler that manages the flow graph, and the block skips over samples that arrive while the processing thread is busy. This is especially useful in real-time operation using radio frequency front-ends, overcoming the processing bottleneck for medium and high sampling rates. However, results then depend on the processing speed of the host computer, so do not use this option for file processing, unless GNSS-SDR.deterministic=true (see deterministic processing, only present in the next branch), which makes the results independent of this parameter. It defaults to true. |
Optional |
make_two_steps |
[true, false]: If set to true, an acquisition refinement stage is performed after a signal is declared present. This allows providing an updated, refined Doppler estimation to the Tracking block. It defaults to false. |
Optional |
second_nbins |
If make_two_steps is set to true, this parameter sets the number of bins done in the acquisition refinement stage. It defaults to 4. |
Optional |
second_doppler_step |
If make_two_steps is set to true, this parameter sets the Doppler step applied in the acquisition refinement stage, in Hz. It defaults to 125 Hz. |
Optional |
dump |
[true, false]: If set to true, it enables the Acquisition internal binary data file logging. It defaults to false. |
Optional |
dump_filename |
If dump is set to true, name of the file in which internal data will be stored. This parameter accepts either a relative or an absolute path; if there are non-existing specified folders, they will be created. It defaults to ./acquisition, so files with name ./acquisition_E_1B_ch_N_K_sat_P.mat (where N is the channel number defined by dump_channel, K is the dump number, and P is the targeted satellite’s PRN number) will be generated. |
Optional |
dump_channel |
If dump is set to true, channel number from which internal data will be stored. It defaults to 0. |
Optional |
Acquisition implementation: Galileo_E1_PCPS_Ambiguous_Acquisition.
Example:
;######### ACQUISITION CONFIG FOR GALILEO E1 CHANNELS ############
Acquisition_1B.implementation=Galileo_E1_PCPS_Ambiguous_Acquisition
Acquisition_1B.pfa=0.01
Acquisition_1B.doppler_max=5000
Acquisition_1B.doppler_step=250
Acquisition_1B.coherent_integration_time_ms=4
Acquisition_1B.max_dwells=1
Implementation: Galileo_E1_PCPS_Tong_Ambiguous_Acquisition
The Tong detector3 is a sequential variable dwell time detector with a reasonable computation burden that proves good for acquiring signals with low \(C/N_0\) levels. During the signal search, the up/down counter \(\mathcal{K}\) is incremented by one if the correlation peak value exceeds the threshold, otherwise it is decremented by one. If the counter has reached the maximum count value \(A\), the signal is declared ‘present’ and the search is terminated. Similarly, if the counter contents reach zero, the signal is declared ‘absent’ and the search is terminated. So that the Tong detector is not trapped into an extended dwell in the same cell, under certain poor signal conditions, another counter (\(\mathcal{K}_{max}\)) sets the limit on the maximum number of dwells.
This implementation accepts the following parameters:
| Global Parameter | Description | Required |
|---|---|---|
GNSS-SDR.internal_fs_sps |
Input sample rate to the processing channels, in samples per second. | Mandatory |
| Parameter | Description | Required |
|---|---|---|
implementation |
Galileo_E1_PCPS_Tong_Ambiguous_Acquisition |
Mandatory |
item_type |
[gr_complex]: Set the sample data type expected at the block input. It defaults to gr_complex. |
Optional |
doppler_max |
Maximum Doppler value in the search grid, in Hz. It defaults to 5000 Hz. | Optional |
doppler_step |
Frequency step in the search grid, in Hz. It defaults to 500 Hz. | Optional |
threshold |
Decision threshold \(\gamma\) from which a signal will be considered present. It defaults to \(0.0\) (i.e., all signals are declared present), | Optional |
pfa |
If defined, it supersedes the threshold value and computes a new threshold \(\gamma_{pfa}\) based on the Probability of False Alarm. It defaults to \(0.0\) (i.e., not set). |
Optional |
coherent_integration_time_ms |
Set the integration time \(T_{int}\), in ms. Should be a multiple of 4 ms. It defaults to 4 ms. | Optional |
tong_init_val |
Initial value of the Tong counter \(\mathcal{K}\). It defaults to 1. | Optional |
tong_max_val |
Count value \(A\) that, if reached by counter \(\mathcal{K}\), declares a signal as present. It defaults to 2. | Optional |
tong_max_dwells |
Maximum number of dwells in a search \(\mathcal{K}_{max}\). It defaults to tong_max_val \(+1\). |
Optional |
repeat_satellite |
[true, false]: If set to true, the block will search again for the same satellite once its presence has been discarded. Useful for testing. It defaults to false. |
Optional |
dump |
[true, false]: If set to true, it enables the Acquisition internal binary data file logging. It defaults to false. |
Optional |
dump_filename |
If dump is set to true, name of the file in which internal data will be stored. It defaults to ./acquisition.dat |
Optional |
Acquisition implementation: Galileo_E1_PCPS_Tong_Ambiguous_Acquisition.
Example:
;######### ACQUISITION CONFIG FOR GALILEO E1 CHANNELS ############
Acquisition_1B.implementation=Galileo_E1_PCPS_Tong_Ambiguous_Acquisition
Acquisition_1B.pfa=0.0001
Acquisition_1B.doppler_max=10000
Acquisition_1B.doppler_step=250
Acquisition_1B.tong_init_val=2
Acquisition_1B.tong_max_val=10
Acquisition_1B.tong_max_dwells=20
Glonass L1 C/A signal acquisition
Implementation: GLONASS_L1_CA_PCPS_Acquisition
This implementation accepts the following parameters:
| Global Parameter | Description | Required |
|---|---|---|
GNSS-SDR.internal_fs_sps |
Input sample rate to the processing channels, in samples per second. | Mandatory |
| Parameter | Description | Required |
|---|---|---|
implementation |
GLONASS_L1_CA_PCPS_Acquisition |
Mandatory |
item_type |
[gr_complex, cshort, cbyte]: Set the sample data type expected at the block input. It defaults to gr_complex. |
Optional |
doppler_max |
Maximum Doppler value in the search grid, in Hz. It defaults to 5000 Hz. | Optional |
doppler_step |
Frequency step in the search grid, in Hz. It defaults to 500 Hz. | Optional |
threshold |
Decision threshold \(\gamma\) from which a signal will be considered present. It defaults to \(0.0\) (i.e., all signals are declared present), | Optional |
pfa |
If defined, it supersedes the threshold value and computes a new threshold \(\gamma_{pfa}\) based on the Probability of False Alarm. It defaults to \(0.0\) (i.e., not set). |
Optional |
coherent_integration_time_ms |
Set the integration time \(T_{int}\), in ms. It defaults to 1 ms. | Optional |
bit_transition_flag |
[true, false]: If set to true, it takes into account the possible presence of a bit transition, so the effective integration time is doubled. When set, it invalidates the value of max_dwells. It defaults to false. |
Optional |
max_dwells |
Set the maximum number of non-coherent dwells to declare a signal present. It defaults to 1. | Optional |
full_grid_search |
[true, false]: If set to true, accumulate all max_dwells non-coherent dwells before accepting or rejecting the strongest peak. It defaults to false (early acceptance). Ignored when bit_transition_flag=true. See Completing all non-coherent dwells for availability, tradeoffs, and interactions. |
Optional |
reference_bin_min_sidelobes |
Target separation, in Doppler sidelobes of the correlation, between the searched bins and the noise-reference bin of the CFAR statistic. It only decides whether a full-grid search needs dedicated reference bins, and never moves them beyond \(\pm\)doppler_max. Only used if pfa is set. It defaults to \(4\). See Reduced Doppler search for availability and details. |
Optional |
dual_freq_assisted_doppler_narrowing |
[true, false]: If set to false, the Doppler projected from the primary band when GNSS-SDR.assist_dual_frequency_acq=true is discarded for this signal, which is then always searched over the full Doppler grid centered at \(0\) Hz. The secondary band still waits for the satellite to be tracked in the primary band; only the Doppler assistance is dropped. It defaults to true. See Reduced Doppler search for availability and details. |
Optional |
repeat_satellite |
[true, false]: If set to true, the block will search again for the same satellite once its presence has been discarded. Useful for testing. It defaults to false. |
Optional |
blocking |
[true, false]: If set to false, the acquisition workload is executed in a separate thread, outside the GNU Radio scheduler that manages the flow graph, and the block skips over samples that arrive while the processing thread is busy. This is especially useful in real-time operation using radio frequency front-ends, overcoming the processing bottleneck for medium and high sampling rates. However, results then depend on the processing speed of the host computer, so do not use this option for file processing, unless GNSS-SDR.deterministic=true (see deterministic processing, only present in the next branch), which makes the results independent of this parameter. It defaults to true. |
Optional |
make_two_steps |
[true, false]: If set to true, an acquisition refinement stage is performed after a signal is declared present. This allows providing an updated, refined Doppler estimation to the Tracking block. It defaults to false. |
Optional |
second_nbins |
If make_two_steps is set to true, this parameter sets the number of bins done in the acquisition refinement stage. It defaults to 4. |
Optional |
second_doppler_step |
If make_two_steps is set to true, this parameter sets the Doppler step applied in the acquisition refinement stage, in Hz. It defaults to 125 Hz. |
Optional |
dump |
[true, false]: If set to true, it enables the Acquisition internal binary data file logging. It defaults to false. |
Optional |
dump_filename |
If dump is set to true, name of the file in which internal data will be stored. This parameter accepts either a relative or an absolute path; if there are non-existing specified folders, they will be created. It defaults to ./acquisition, so files with name ./acquisition_R_1G_ch_N_K_sat_P.mat (where N is the channel number defined by dump_channel, K is the dump number, and P is the targeted satellite’s PRN number) will be generated. |
Optional |
dump_channel |
If dump is set to true, channel number from which internal data will be stored. It defaults to 0. |
Optional |
Acquisition implementation: GLONASS_L1_CA_PCPS_Acquisition.
Example:
;######### ACQUISITION CONFIG FOR GLONASS L1 CHANNELS ############
Acquisition_1G.implementation=GLONASS_L1_CA_PCPS_Acquisition
Acquisition_1G.doppler_max=8000
Acquisition_1G.doppler_step=250
Acquisition_1G.pfa=0.0001
BeiDou B1I signal acquisition
Implementation: BEIDOU_B1I_PCPS_Acquisition
This implementation accepts the following parameters:
| Global Parameter | Description | Required |
|---|---|---|
GNSS-SDR.internal_fs_sps |
Input sample rate to the processing channels, in samples per second. | Mandatory |
GNSS-SDR.use_acquisition_resampler |
[true, false]: If set to true, the Acquisition block makes use of the minimum possible sample rate during acquisition by setting a resampler at its input. This allows reducing the FFT size when using high data rates at GNSS-SDR.internal_fs_sps. All the required setup is configured automatically. It defaults to false. |
Optional |
| Parameter | Description | Required |
|---|---|---|
implementation |
BEIDOU_B1I_PCPS_Acquisition |
Mandatory |
item_type |
[gr_complex, cshort, cbyte]: Set the sample data type expected at the block input. It defaults to gr_complex. |
Optional |
doppler_max |
Maximum Doppler value in the search grid, in Hz. It defaults to 5000 Hz. | Optional |
doppler_step |
Frequency step in the search grid, in Hz. It defaults to 500 Hz. | Optional |
threshold |
Decision threshold \(\gamma\) from which a signal will be considered present. It defaults to \(0.0\) (i.e., all signals are declared present). | Optional |
pfa |
If defined, it supersedes the threshold value and computes a new threshold \(\gamma_{pfa}\) based on the Probability of False Alarm. It defaults to \(0.0\) (i.e., not set). |
Optional |
coherent_integration_time_ms |
Set the integration time \(T_{int}\), in ms. It defaults to 1 ms. | Optional |
bit_transition_flag |
[true, false]: If set to true, it takes into account the possible presence of a bit transition, so the effective integration time is doubled. When set, it invalidates the value of max_dwells. It defaults to false. |
Optional |
max_dwells |
Set the maximum number of non-coherent dwells to declare a signal present. It defaults to 1. | Optional |
full_grid_search |
[true, false]: If set to true, accumulate all max_dwells non-coherent dwells before accepting or rejecting the strongest peak. It defaults to false (early acceptance). Ignored when bit_transition_flag=true. See Completing all non-coherent dwells for availability, tradeoffs, and interactions. |
Optional |
reference_bin_min_sidelobes |
Target separation, in Doppler sidelobes of the correlation, between the searched bins and the noise-reference bin of the CFAR statistic. It only decides whether a full-grid search needs dedicated reference bins, and never moves them beyond \(\pm\)doppler_max. Only used if pfa is set. It defaults to \(4\). See Reduced Doppler search for availability and details. |
Optional |
dual_freq_assisted_doppler_narrowing |
[true, false]: If set to false, the Doppler projected from the primary band when GNSS-SDR.assist_dual_frequency_acq=true is discarded for this signal, which is then always searched over the full Doppler grid centered at \(0\) Hz. The secondary band still waits for the satellite to be tracked in the primary band; only the Doppler assistance is dropped. It defaults to true. See Reduced Doppler search for availability and details. |
Optional |
repeat_satellite |
[true, false]: If set to true, the block will search again for the same satellite once its presence has been discarded. Useful for testing. It defaults to false. |
Optional |
blocking |
[true, false]: If set to false, the acquisition workload is executed in a separate thread, outside the GNU Radio scheduler that manages the flow graph, and the block skips over samples that arrive while the processing thread is busy. This is especially useful in real-time operation using radio frequency front-ends, overcoming the processing bottleneck for medium and high sampling rates. However, results then depend on the processing speed of the host computer, so do not use this option for file processing, unless GNSS-SDR.deterministic=true (see deterministic processing, only present in the next branch), which makes the results independent of this parameter. It defaults to true. |
Optional |
make_two_steps |
[true, false]: If set to true, an acquisition refinement stage is performed after a signal is declared present. This allows providing an updated, refined Doppler estimation to the Tracking block. It defaults to false. |
Optional |
second_nbins |
If make_two_steps is set to true, this parameter sets the number of bins done in the acquisition refinement stage. It defaults to 4. |
Optional |
second_doppler_step |
If make_two_steps is set to true, this parameter sets the Doppler step applied in the acquisition refinement stage, in Hz. It defaults to 125 Hz. |
Optional |
dump |
[true, false]: If set to true, it enables the Acquisition internal binary data file logging. It defaults to false. |
Optional |
dump_filename |
If dump is set to true, name of the file in which internal data will be stored. This parameter accepts either a relative or an absolute path; if there are non-existing specified folders, they will be created. It defaults to ./acquisition, so files with name ./acquisition_C_B1_ch_N_K_sat_P.mat (where N is the channel number defined by dump_channel, K is the dump number, and P is the targeted satellite’s PRN number) will be generated. |
Optional |
dump_channel |
If dump is set to true, channel number from which internal data will be stored. It defaults to 0. |
Optional |
Acquisition implementation: BEIDOU_B1I_PCPS_Acquisition.
Example:
;######### ACQUISITION CONFIG FOR BeiDou B1I CHANNELS ############
Acquisition_B1.implementation=BEIDOU_B1I_PCPS_Acquisition
Acquisition_B1.doppler_max=5000
Acquisition_B1.doppler_step=250
Acquisition_B1.pfa=0.01
Acquisition_B1.coherent_integration_time_ms=1
Acquisition_B1.max_dwells=1
BeiDou B1C signal acquisition
The BeiDou B1C signal, transmitted by BeiDou-3 MEO and IGSO satellites and
centered at \(1575.42\) MHz, is composed of a data component (carrying the
B-CNAV1 navigation message and modulated with BOC(1,1)) and a pilot component
(modulated with QMBOC(6,1,4/33)), with a data:pilot power ratio of 1:3. Both
components use ranging codes of \(10230\) chips transmitted at \(1.023\)
Mchip/s, thus with a period of \(10\) ms, and the pilot component is further
modulated by a secondary code of \(1800\) chips. GNSS-SDR identifies the
BeiDou B1C signal with the identifier 1D.
Implementation: BEIDOU_B1C_PCPS_Ambiguous_Acquisition
By default, this implementation acquires the pilot component, which carries
\(3/4\) of the total signal power, using a QMBOC(6,1,4/33) local replica. The
acquire_pilot and qmboc parameters allow acquiring the data component
instead, and/or using a simpler sinBOC(1,1) local replica.
This implementation accepts the following parameters:
| Global Parameter | Description | Required |
|---|---|---|
GNSS-SDR.internal_fs_sps |
Input sample rate to the processing channels, in samples per second. | Mandatory |
GNSS-SDR.use_acquisition_resampler |
[true, false]: If set to true, the Acquisition block makes use of the minimum possible sample rate during acquisition by setting a resampler at its input. This allows reducing the FFT size when using high data rates at GNSS-SDR.internal_fs_sps. All the required setup is configured automatically. It defaults to false. |
Optional |
| Parameter | Description | Required |
|---|---|---|
implementation |
BEIDOU_B1C_PCPS_Ambiguous_Acquisition |
Mandatory |
item_type |
[gr_complex, cshort, cbyte]: Set the sample data type expected at the block input. It defaults to gr_complex. |
Optional |
acquire_pilot |
[true, false]: If set to true, the receiver is set to acquire the B1C pilot component. If set to false, the receiver is set to acquire the B1C data component. It defaults to true. |
Optional |
qmboc |
[true, false]: If set to true, the algorithm uses a QMBOC(6,1,4/33) local replica; if set to false, a simpler sinBOC(1,1) local replica is used. It defaults to true. |
Optional |
doppler_max |
Maximum Doppler value in the search grid, in Hz. It defaults to 5000 Hz. | Optional |
doppler_step |
Frequency step in the search grid, in Hz. It defaults to 500 Hz. | Optional |
threshold |
Decision threshold \(\gamma\) from which a signal will be considered present. It defaults to \(0.0\) (i.e., all signals are declared present). | Optional |
pfa |
If defined, it supersedes the threshold value and computes a new threshold \(\gamma_{pfa}\) based on the Probability of False Alarm. It defaults to \(0.0\) (i.e., not set). |
Optional |
coherent_integration_time_ms |
Set the integration time \(T_{int}\), in ms. It must be a multiple of the code period (\(10\) ms). It defaults to 10 ms. | Optional |
bit_transition_flag |
[true, false]: If set to true, it takes into account the possible presence of a symbol transition, so the effective integration time is doubled. When set, it invalidates the value of max_dwells. It defaults to false. |
Optional |
max_dwells |
Set the maximum number of non-coherent dwells to declare a signal present. It defaults to 1. | Optional |
full_grid_search |
[true, false]: If set to true, accumulate all max_dwells non-coherent dwells before accepting or rejecting the strongest peak. It defaults to false (early acceptance). Ignored when bit_transition_flag=true. See Completing all non-coherent dwells for availability, tradeoffs, and interactions. |
Optional |
reference_bin_min_sidelobes |
Target separation, in Doppler sidelobes of the correlation, between the searched bins and the noise-reference bin of the CFAR statistic. It only decides whether a full-grid search needs dedicated reference bins, and never moves them beyond \(\pm\)doppler_max. Only used if pfa is set. It defaults to \(4\). See Reduced Doppler search for availability and details. |
Optional |
dual_freq_assisted_doppler_narrowing |
[true, false]: If set to false, the Doppler projected from the primary band when GNSS-SDR.assist_dual_frequency_acq=true is discarded for this signal, which is then always searched over the full Doppler grid centered at \(0\) Hz. The secondary band still waits for the satellite to be tracked in the primary band; only the Doppler assistance is dropped. It defaults to true. See Reduced Doppler search for availability and details. |
Optional |
repeat_satellite |
[true, false]: If set to true, the block will search again for the same satellite once its presence has been discarded. Useful for testing. It defaults to false. |
Optional |
blocking |
[true, false]: If set to false, the acquisition workload is executed in a separate thread, outside the GNU Radio scheduler that manages the flow graph, and the block skips over samples that arrive while the processing thread is busy. This is especially useful in real-time operation using radio frequency front-ends, overcoming the processing bottleneck for medium and high sampling rates. However, results then depend on the processing speed of the host computer, so do not use this option for file processing, unless GNSS-SDR.deterministic=true (see deterministic processing, only present in the next branch), which makes the results independent of this parameter. It defaults to true. |
Optional |
make_two_steps |
[true, false]: If set to true, an acquisition refinement stage is performed after a signal is declared present. This allows providing an updated, refined Doppler estimation to the Tracking block. It defaults to false. |
Optional |
second_nbins |
If make_two_steps is set to true, this parameter sets the number of bins done in the acquisition refinement stage. It defaults to 4. |
Optional |
second_doppler_step |
If make_two_steps is set to true, this parameter sets the Doppler step applied in the acquisition refinement stage, in Hz. It defaults to 125 Hz. |
Optional |
dump |
[true, false]: If set to true, it enables the Acquisition internal binary data file logging. It defaults to false. |
Optional |
dump_filename |
If dump is set to true, name of the file in which internal data will be stored. This parameter accepts either a relative or an absolute path; if there are non-existing specified folders, they will be created. It defaults to ./acquisition, so files with name ./acquisition_C_1D_ch_N_K_sat_P.mat (where N is the channel number defined by dump_channel, K is the dump number, and P is the targeted satellite’s PRN number) will be generated. |
Optional |
dump_channel |
If dump is set to true, channel number from which internal data will be stored. It defaults to 0. |
Optional |
Acquisition implementation: BEIDOU_B1C_PCPS_Ambiguous_Acquisition.
Example:
;######### ACQUISITION CONFIG FOR BeiDou B1C CHANNELS ############
Acquisition_1D.implementation=BEIDOU_B1C_PCPS_Ambiguous_Acquisition
Acquisition_1D.item_type=gr_complex
Acquisition_1D.acquire_pilot=true
Acquisition_1D.qmboc=true
Acquisition_1D.pfa=0.005
Acquisition_1D.doppler_max=5000
Acquisition_1D.doppler_step=25
QZSS L1 C/A signal acquisition
Implementation: QZSS_L1_PCPS_Acquisition
This implementation accepts the following parameters:
| Global Parameter | Description | Required |
|---|---|---|
GNSS-SDR.internal_fs_sps |
Input sample rate to the processing channels, in samples per second. | Mandatory |
GNSS-SDR.use_acquisition_resampler |
[true, false]: If set to true, the Acquisition block makes use of the minimum possible sample rate during acquisition by setting a resampler at its input. This allows reducing the FFT size when using high data rates at GNSS-SDR.internal_fs_sps. All the required setup is configured automatically. It defaults to false. |
Optional |
| Parameter | Description | Required |
|---|---|---|
implementation |
QZSS_L1_PCPS_Acquisition |
Mandatory |
item_type |
[gr_complex, cshort, cbyte]: Set the sample data type expected at the block input. It defaults to gr_complex. |
Optional |
doppler_max |
Maximum Doppler value in the search grid, in Hz. It defaults to 5000 Hz. | Optional |
doppler_step |
Frequency step in the search grid, in Hz. It defaults to 500 Hz. | Optional |
threshold |
Decision threshold \(\gamma\) from which a signal will be considered present. It defaults to \(0.0\) (i.e., all signals are declared present). | Optional |
pfa |
If defined, it supersedes the threshold value and computes a new threshold \(\gamma_{pfa}\) based on the Probability of False Alarm. It defaults to \(0.0\) (i.e., not set). |
Optional |
coherent_integration_time_ms |
Set the integration time \(T_{int}\), in ms. It defaults to 1 ms. | Optional |
bit_transition_flag |
[true, false]: If set to true, it takes into account the possible presence of a bit transition, so the effective integration time is doubled. When set, it invalidates the value of max_dwells. It defaults to false. |
Optional |
max_dwells |
Set the maximum number of non-coherent dwells to declare a signal present. It defaults to 1. | Optional |
full_grid_search |
[true, false]: If set to true, accumulate all max_dwells non-coherent dwells before accepting or rejecting the strongest peak. It defaults to false (early acceptance). Ignored when bit_transition_flag=true. See Completing all non-coherent dwells for availability, tradeoffs, and interactions. |
Optional |
reference_bin_min_sidelobes |
Target separation, in Doppler sidelobes of the correlation, between the searched bins and the noise-reference bin of the CFAR statistic. It only decides whether a full-grid search needs dedicated reference bins, and never moves them beyond \(\pm\)doppler_max. Only used if pfa is set. It defaults to \(4\). See Reduced Doppler search for availability and details. |
Optional |
dual_freq_assisted_doppler_narrowing |
[true, false]: If set to false, the Doppler projected from the primary band when GNSS-SDR.assist_dual_frequency_acq=true is discarded for this signal, which is then always searched over the full Doppler grid centered at \(0\) Hz. The secondary band still waits for the satellite to be tracked in the primary band; only the Doppler assistance is dropped. It defaults to true. See Reduced Doppler search for availability and details. |
Optional |
repeat_satellite |
[true, false]: If set to true, the block will search again for the same satellite once its presence has been discarded. Useful for testing. It defaults to false. |
Optional |
blocking |
[true, false]: If set to false, the acquisition workload is executed in a separate thread, outside the GNU Radio scheduler that manages the flow graph, and the block skips over samples that arrive while the processing thread is busy. This is especially useful in real-time operation using radio frequency front-ends, overcoming the processing bottleneck for medium and high sampling rates. However, results then depend on the processing speed of the host computer, so do not use this option for file processing, unless GNSS-SDR.deterministic=true (see deterministic processing, only present in the next branch), which makes the results independent of this parameter. It defaults to true. |
Optional |
make_two_steps |
[true, false]: If set to true, an acquisition refinement stage is performed after a signal is declared present. This allows providing an updated, refined Doppler estimation to the Tracking block. It defaults to false. |
Optional |
second_nbins |
If make_two_steps is set to true, this parameter sets the number of bins done in the acquisition refinement stage. It defaults to 4. |
Optional |
second_doppler_step |
If make_two_steps is set to true, this parameter sets the Doppler step applied in the acquisition refinement stage, in Hz. It defaults to 125 Hz. |
Optional |
dump |
[true, false]: If set to true, it enables the Acquisition internal binary data file logging. It defaults to false. |
Optional |
dump_filename |
If dump is set to true, name of the file in which internal data will be stored. This parameter accepts either a relative or an absolute path; if there are non-existing specified folders, they will be created. It defaults to ./acquisition, so files with name ./acquisition_J_J1_ch_N_K_sat_P.mat (where N is the channel number defined by dump_channel, K is the dump number, and P is the targeted satellite’s PRN number) will be generated. |
Optional |
dump_channel |
If dump is set to true, channel number from which internal data will be stored. It defaults to 0. |
Optional |
Acquisition implementation: QZSS_L1_PCPS_Acquisition.
Example:
;######### ACQUISITION CONFIG FOR QZSS L1 CHANNELS ############
Acquisition_J1.implementation=QZSS_L1_PCPS_Acquisition
Acquisition_J1.doppler_max=5000
Acquisition_J1.doppler_step=250
Acquisition_J1.pfa=0.01
Acquisition_J1.coherent_integration_time_ms=1
Acquisition_J1.max_dwells=1
SBAS L1 signal acquisition
The SBAS L1 signal, broadcast at \(1575.42\) MHz by the geostationary
satellites of the different satellite-based augmentation systems (EGNOS, WAAS,
…), uses Gold codes of \(1023\) chips transmitted at \(1.023\) Mchip/s
(thus with a period of \(1\) ms, the same code family as GPS L1 C/A), and
carries navigation data at \(250\) bits per second, convolutionally encoded
at rate \(1/2\) into a \(500\) symbols-per-second data channel. There is no
pilot component. GNSS-SDR identifies the SBAS L1 signal with the identifier
S1, and supports PRNs \(120\) to \(138\) (RTCA DO-229, Table A-1).
Since the transmitting satellites are geostationary, the Doppler shift observed
by a static receiver is below \(\pm 100\) Hz, so the acquisition search space
mainly needs to accommodate the frequency error of the receiver’s reference
oscillator (about \(1.6\) kHz per ppm of error at the L1 frequency): with an
accurate or calibrated reference, doppler_max can be reduced well below the
default, speeding up acquisition.
Implementation: SBAS_L1_PCPS_Acquisition
This implementation accepts the following parameters:
| Global Parameter | Description | Required |
|---|---|---|
GNSS-SDR.internal_fs_sps |
Input sample rate to the processing channels, in samples per second. | Mandatory |
GNSS-SDR.use_acquisition_resampler |
[true, false]: If set to true, the Acquisition block makes use of the minimum possible sample rate during acquisition by setting a resampler at its input. This allows reducing the FFT size when using high data rates at GNSS-SDR.internal_fs_sps. All the required setup is configured automatically. It defaults to false. |
Optional |
| Parameter | Description | Required |
|---|---|---|
implementation |
SBAS_L1_PCPS_Acquisition |
Mandatory |
item_type |
[gr_complex, cshort, cbyte]: Set the sample data type expected at the block input. It defaults to gr_complex. |
Optional |
doppler_max |
Maximum Doppler value in the search grid, in Hz. It defaults to 5000 Hz. | Optional |
doppler_step |
Frequency step in the search grid, in Hz. It defaults to 500 Hz. | Optional |
threshold |
Decision threshold \(\gamma\) from which a signal will be considered present. It defaults to \(0.0\) (i.e., all signals are declared present). | Optional |
pfa |
If defined, it supersedes the threshold value and computes a new threshold \(\gamma_{pfa}\) based on the Probability of False Alarm. It defaults to \(0.0\) (i.e., not set). |
Optional |
coherent_integration_time_ms |
Set the integration time \(T_{int}\), in ms. It defaults to 1 ms. | Optional |
bit_transition_flag |
[true, false]: If set to true, it takes into account the possible presence of a bit transition, so the effective integration time is doubled. When set, it invalidates the value of max_dwells. It defaults to false. |
Optional |
max_dwells |
Set the maximum number of non-coherent dwells to declare a signal present. It defaults to 1. | Optional |
full_grid_search |
[true, false]: If set to true, accumulate all max_dwells non-coherent dwells before accepting or rejecting the strongest peak. It defaults to false (early acceptance). Ignored when bit_transition_flag=true. See Completing all non-coherent dwells for availability, tradeoffs, and interactions. |
Optional |
reference_bin_min_sidelobes |
Target separation, in Doppler sidelobes of the correlation, between the searched bins and the noise-reference bin of the CFAR statistic. It only decides whether a full-grid search needs dedicated reference bins, and never moves them beyond \(\pm\)doppler_max. Only used if pfa is set. It defaults to \(4\). See Reduced Doppler search for availability and details. |
Optional |
dual_freq_assisted_doppler_narrowing |
[true, false]: If set to false, the Doppler projected from the primary band when GNSS-SDR.assist_dual_frequency_acq=true is discarded for this signal, which is then always searched over the full Doppler grid centered at \(0\) Hz. The secondary band still waits for the satellite to be tracked in the primary band; only the Doppler assistance is dropped. It defaults to true. See Reduced Doppler search for availability and details. |
Optional |
repeat_satellite |
[true, false]: If set to true, the block will search again for the same satellite once its presence has been discarded. Useful for testing. It defaults to false. |
Optional |
blocking |
[true, false]: If set to false, the acquisition workload is executed in a separate thread, outside the GNU Radio scheduler that manages the flow graph, and the block skips over samples that arrive while the processing thread is busy. This is especially useful in real-time operation using radio frequency front-ends, overcoming the processing bottleneck for medium and high sampling rates. However, results then depend on the processing speed of the host computer, so do not use this option for file processing, unless GNSS-SDR.deterministic=true (see deterministic processing, only present in the next branch), which makes the results independent of this parameter. It defaults to true. |
Optional |
make_two_steps |
[true, false]: If set to true, an acquisition refinement stage is performed after a signal is declared present. This allows providing an updated, refined Doppler estimation to the Tracking block. It defaults to false. |
Optional |
second_nbins |
If make_two_steps is set to true, this parameter sets the number of bins done in the acquisition refinement stage. It defaults to 4. |
Optional |
second_doppler_step |
If make_two_steps is set to true, this parameter sets the Doppler step applied in the acquisition refinement stage, in Hz. It defaults to 125 Hz. |
Optional |
dump |
[true, false]: If set to true, it enables the Acquisition internal binary data file logging. It defaults to false. |
Optional |
dump_filename |
If dump is set to true, name of the file in which internal data will be stored. This parameter accepts either a relative or an absolute path; if there are non-existing specified folders, they will be created. It defaults to ./acquisition, so files with name ./acquisition_S_S1_ch_N_K_sat_P.mat (where N is the channel number defined by dump_channel, K is the dump number, and P is the targeted satellite’s PRN number) will be generated. |
Optional |
dump_channel |
If dump is set to true, channel number from which internal data will be stored. It defaults to 0. |
Optional |
Acquisition implementation: SBAS_L1_PCPS_Acquisition.
Example:
;######### ACQUISITION CONFIG FOR SBAS L1 CHANNELS ############
Acquisition_S1.implementation=SBAS_L1_PCPS_Acquisition
Acquisition_S1.item_type=gr_complex
Acquisition_S1.pfa=0.01
Acquisition_S1.doppler_max=5000
Acquisition_S1.doppler_step=250
GPS L2CM signal acquisition
Implementation: GPS_L2_M_PCPS_Acquisition
This implementation accepts the following parameters:
| Global Parameter | Description | Required |
|---|---|---|
GNSS-SDR.internal_fs_sps |
Input sample rate to the processing channels, in samples per second. | Mandatory |
GNSS-SDR.use_acquisition_resampler |
[true, false]: If set to true, the Acquisition block makes use of the minimum possible sample rate during acquisition by setting a resampler at its input. This allows reducing the FFT size when using high data rates at GNSS-SDR.internal_fs_sps. All the required setup is configured automatically. It defaults to false. |
Optional |
| Parameter | Description | Required |
|---|---|---|
implementation |
GPS_L2_M_PCPS_Acquisition |
Mandatory |
item_type |
[gr_complex, cshort, cbyte]: Set the sample data type expected at the block input. It defaults to gr_complex. |
Optional |
doppler_max |
Maximum Doppler value in the search grid, in Hz. It defaults to 5000 Hz. | Optional |
doppler_step |
Frequency step in the search grid, in Hz. It defaults to 500 Hz. | Optional |
threshold |
Decision threshold \(\gamma\) from which a signal will be considered present. It defaults to \(0.0\) (i.e., all signals are declared present), | Optional |
pfa |
If defined, it supersedes the threshold value and computes a new threshold \(\gamma_{pfa}\) based on the Probability of False Alarm. It defaults to \(0.0\) (i.e., not set). |
Optional |
coherent_integration_time_ms |
Set the integration time \(T_{int}\), in ms. It defaults to 20 ms. | Optional |
bit_transition_flag |
[true, false]: If set to true, it takes into account the possible presence of a bit transition, so the effective integration time is doubled. When set, it invalidates the value of max_dwells. It defaults to false. |
Optional |
max_dwells |
Set the maximum number of non-coherent dwells to declare a signal present. It defaults to 1. | Optional |
full_grid_search |
[true, false]: If set to true, accumulate all max_dwells non-coherent dwells before accepting or rejecting the strongest peak. It defaults to false (early acceptance). Ignored when bit_transition_flag=true. See Completing all non-coherent dwells for availability, tradeoffs, and interactions. |
Optional |
reference_bin_min_sidelobes |
Target separation, in Doppler sidelobes of the correlation, between the searched bins and the noise-reference bin of the CFAR statistic. It only decides whether a full-grid search needs dedicated reference bins, and never moves them beyond \(\pm\)doppler_max. Only used if pfa is set. It defaults to \(4\). See Reduced Doppler search for availability and details. |
Optional |
dual_freq_assisted_doppler_narrowing |
[true, false]: If set to false, the Doppler projected from the primary band when GNSS-SDR.assist_dual_frequency_acq=true is discarded for this signal, which is then always searched over the full Doppler grid centered at \(0\) Hz. The secondary band still waits for the satellite to be tracked in the primary band; only the Doppler assistance is dropped. It defaults to true. See Reduced Doppler search for availability and details. |
Optional |
alm_ephe_assisted_doppler_narrowing |
[true, false]: If set to true, and this signal is searched as a secondary band without dual-frequency assistance (e.g., with GNSS-SDR.assist_dual_frequency_acq=false), its Doppler search is narrowed around the value predicted from the ephemeris or almanac of the satellite, provided that GNSS-SDR.enable_visibility_aware_search=true and the satellite is classified as visible. It has no effect when this signal is searched as the primary band, where the prediction is always used. It defaults to false. See Reduced Doppler search for availability and details. |
Optional |
repeat_satellite |
[true, false]: If set to true, the block will search again for the same satellite once its presence has been discarded. Useful for testing. It defaults to false. |
Optional |
blocking |
[true, false]: If set to false, the acquisition workload is executed in a separate thread, outside the GNU Radio scheduler that manages the flow graph, and the block skips over samples that arrive while the processing thread is busy. This is especially useful in real-time operation using radio frequency front-ends, overcoming the processing bottleneck for medium and high sampling rates. However, results then depend on the processing speed of the host computer, so do not use this option for file processing, unless GNSS-SDR.deterministic=true (see deterministic processing, only present in the next branch), which makes the results independent of this parameter. It defaults to true. |
Optional |
make_two_steps |
[true, false]: If set to true, an acquisition refinement stage is performed after a signal is declared present. This allows providing an updated, refined Doppler estimation to the Tracking block. It defaults to false. |
Optional |
second_nbins |
If make_two_steps is set to true, this parameter sets the number of bins done in the acquisition refinement stage. It defaults to 4. |
Optional |
second_doppler_step |
If make_two_steps is set to true, this parameter sets the Doppler step applied in the acquisition refinement stage, in Hz. It defaults to 125 Hz. |
Optional |
dump |
[true, false]: If set to true, it enables the Acquisition internal binary data file logging. It defaults to false. |
Optional |
dump_filename |
If dump is set to true, name of the file in which internal data will be stored. This parameter accepts either a relative or an absolute path; if there are non-existing specified folders, they will be created. It defaults to ./acquisition, so files with name ./acquisition_G_2S_ch_N_K_sat_P.mat (where N is the channel number defined by dump_channel, K is the dump number, and P is the targeted satellite’s PRN number) will be generated. |
Optional |
dump_channel |
If dump is set to true, channel number from which internal data will be stored. It defaults to 0. |
Optional |
Acquisition implementation: GPS_L2_M_PCPS_Acquisition.
Example:
;######### ACQUISITION CONFIG FOR GPS L2C CHANNELS ############
Acquisition_2S.implementation=GPS_L2_M_PCPS_Acquisition
Acquisition_2S.item_type=cshort
Acquisition_2S.pfa=0.01
Acquisition_2S.doppler_max=6000
Acquisition_2S.doppler_step=60
Acquisition_2S.coherent_integration_time_ms=20
Acquisition_2S.max_dwells=2
Glonass L2 C/A signal acquisition
Implementation: GLONASS_L2_CA_PCPS_Acquisition
This implementation accepts the following parameters:
| Global Parameter | Description | Required |
|---|---|---|
GNSS-SDR.internal_fs_sps |
Input sample rate to the processing channels, in samples per second. | Mandatory |
| Parameter | Description | Required |
|---|---|---|
implementation |
GLONASS_L2_CA_PCPS_Acquisition |
Mandatory |
item_type |
[gr_complex, cshort, cbyte]: Set the sample data type expected at the block input. It defaults to gr_complex. |
Optional |
doppler_max |
Maximum Doppler value in the search grid, in Hz. It defaults to 5000 Hz. | Optional |
doppler_step |
Frequency step in the search grid, in Hz. It defaults to 500 Hz. | Optional |
threshold |
Decision threshold \(\gamma\) from which a signal will be considered present. It defaults to \(0.0\) (i.e., all signals are declared present), | Optional |
pfa |
If defined, it supersedes the threshold value and computes a new threshold \(\gamma_{pfa}\) based on the Probability of False Alarm. It defaults to \(0.0\) (i.e., not set). |
Optional |
coherent_integration_time_ms |
Set the integration time \(T_{int}\), in ms. It defaults to 1 ms. | Optional |
bit_transition_flag |
[true, false]: If set to true, it takes into account the possible presence of a bit transition, so the effective integration time is doubled. When set, it invalidates the value of max_dwells. It defaults to false. |
Optional |
max_dwells |
Set the maximum number of non-coherent dwells to declare a signal present. It defaults to 1. | Optional |
full_grid_search |
[true, false]: If set to true, accumulate all max_dwells non-coherent dwells before accepting or rejecting the strongest peak. It defaults to false (early acceptance). Ignored when bit_transition_flag=true. See Completing all non-coherent dwells for availability, tradeoffs, and interactions. |
Optional |
reference_bin_min_sidelobes |
Target separation, in Doppler sidelobes of the correlation, between the searched bins and the noise-reference bin of the CFAR statistic. It only decides whether a full-grid search needs dedicated reference bins, and never moves them beyond \(\pm\)doppler_max. Only used if pfa is set. It defaults to \(4\). See Reduced Doppler search for availability and details. |
Optional |
dual_freq_assisted_doppler_narrowing |
[true, false]: If set to false, the Doppler projected from the primary band when GNSS-SDR.assist_dual_frequency_acq=true is discarded for this signal, which is then always searched over the full Doppler grid centered at \(0\) Hz. The secondary band still waits for the satellite to be tracked in the primary band; only the Doppler assistance is dropped. It defaults to true. See Reduced Doppler search for availability and details. |
Optional |
alm_ephe_assisted_doppler_narrowing |
[true, false]: If set to true, and this signal is searched as a secondary band without dual-frequency assistance (e.g., with GNSS-SDR.assist_dual_frequency_acq=false), its Doppler search is narrowed around the value predicted from the ephemeris or almanac of the satellite, provided that GNSS-SDR.enable_visibility_aware_search=true and the satellite is classified as visible. It has no effect when this signal is searched as the primary band, where the prediction is always used. It defaults to false. See Reduced Doppler search for availability and details. |
Optional |
repeat_satellite |
[true, false]: If set to true, the block will search again for the same satellite once its presence has been discarded. Useful for testing. It defaults to false. |
Optional |
blocking |
[true, false]: If set to false, the acquisition workload is executed in a separate thread, outside the GNU Radio scheduler that manages the flow graph, and the block skips over samples that arrive while the processing thread is busy. This is especially useful in real-time operation using radio frequency front-ends, overcoming the processing bottleneck for medium and high sampling rates. However, results then depend on the processing speed of the host computer, so do not use this option for file processing, unless GNSS-SDR.deterministic=true (see deterministic processing, only present in the next branch), which makes the results independent of this parameter. It defaults to true. |
Optional |
make_two_steps |
[true, false]: If set to true, an acquisition refinement stage is performed after a signal is declared present. This allows providing an updated, refined Doppler estimation to the Tracking block. It defaults to false. |
Optional |
second_nbins |
If make_two_steps is set to true, this parameter sets the number of bins done in the acquisition refinement stage. It defaults to 4. |
Optional |
second_doppler_step |
If make_two_steps is set to true, this parameter sets the Doppler step applied in the acquisition refinement stage, in Hz. It defaults to 125 Hz. |
Optional |
dump |
[true, false]: If set to true, it enables the Acquisition internal binary data file logging. It defaults to false. |
Optional |
dump_filename |
If dump is set to true, name of the file in which internal data will be stored. This parameter accepts either a relative or an absolute path; if there are non-existing specified folders, they will be created. It defaults to ./acquisition, so files with name ./acquisition_R_2G_ch_N_K_sat_P.mat (where N is the channel number defined by dump_channel, K is the dump number, and P is the targeted satellite’s PRN number) will be generated. |
Optional |
dump_channel |
If dump is set to true, channel number from which internal data will be stored. It defaults to 0. |
Optional |
Acquisition implementation: GLONASS_L2_CA_PCPS_Acquisition.
Example:
;######### ACQUISITION CONFIG FOR GLONASS L2 CHANNELS ############
Acquisition_2G.implementation=GLONASS_L2_CA_PCPS_Acquisition
Acquisition_2G.doppler_max=8000
Acquisition_2G.doppler_step=250
Acquisition_2G.pfa=0.0001
Galileo E6 signal acquisition
Implementation: Galileo_E6_PCPS_Acquisition
This implementation accepts the following parameters:
| Global Parameter | Description | Required |
|---|---|---|
GNSS-SDR.internal_fs_sps |
Input sample rate to the processing channels, in samples per second. | Mandatory |
GNSS-SDR.use_acquisition_resampler |
[true, false]: If set to true, the Acquisition block makes use of the minimum possible sample rate during acquisition by setting a resampler at its input. This allows reducing the FFT size when using high data rates at GNSS-SDR.internal_fs_sps. All the required setup is configured automatically. It defaults to false. |
Optional |
| Parameter | Description | Required |
|---|---|---|
implementation |
Galileo_E6_PCPS_Acquisition |
Mandatory |
item_type |
[gr_complex, cshort, cbyte]: Set the sample data type expected at the block input. It defaults to gr_complex. |
Optional |
doppler_max |
Maximum Doppler value in the search grid, in Hz. It defaults to \(5000\) Hz. | Optional |
doppler_step |
Frequency step in the search grid, in Hz. It defaults to 500 Hz. | Optional |
threshold |
Decision threshold \(\gamma\) from which a signal will be considered present. It defaults to \(0.0\) (i.e., all signals are declared present), | Optional |
pfa |
If defined, it supersedes the threshold value and computes a new threshold \(\gamma_{pfa}\) based on the Probability of False Alarm. It defaults to \(0.0\) (i.e., not set). |
Optional |
coherent_integration_time_ms |
Set the integration time \(T_{int}\), in ms. It defaults to 1 ms. | Optional |
bit_transition_flag |
[true, false]: If set to true, it takes into account the possible presence of a bit transition, so the effective integration time is doubled. When set, it invalidates the value of max_dwells. It defaults to false. |
Optional |
max_dwells |
Set the maximum number of non-coherent dwells to declare a signal present. It defaults to 1. | Optional |
full_grid_search |
[true, false]: If set to true, accumulate all max_dwells non-coherent dwells before accepting or rejecting the strongest peak. It defaults to false (early acceptance). Ignored when bit_transition_flag=true. See Completing all non-coherent dwells for availability, tradeoffs, and interactions. |
Optional |
reference_bin_min_sidelobes |
Target separation, in Doppler sidelobes of the correlation, between the searched bins and the noise-reference bin of the CFAR statistic. It only decides whether a full-grid search needs dedicated reference bins, and never moves them beyond \(\pm\)doppler_max. Only used if pfa is set. It defaults to \(4\). See Reduced Doppler search for availability and details. |
Optional |
dual_freq_assisted_doppler_narrowing |
[true, false]: If set to false, the Doppler projected from the primary band when GNSS-SDR.assist_dual_frequency_acq=true is discarded for this signal, which is then always searched over the full Doppler grid centered at \(0\) Hz. The secondary band still waits for the satellite to be tracked in the primary band; only the Doppler assistance is dropped. It defaults to true. See Reduced Doppler search for availability and details. |
Optional |
alm_ephe_assisted_doppler_narrowing |
[true, false]: If set to true, and this signal is searched as a secondary band without dual-frequency assistance (e.g., with GNSS-SDR.assist_dual_frequency_acq=false), its Doppler search is narrowed around the value predicted from the ephemeris or almanac of the satellite, provided that GNSS-SDR.enable_visibility_aware_search=true and the satellite is classified as visible. It has no effect when this signal is searched as the primary band, where the prediction is always used. It defaults to false. See Reduced Doppler search for availability and details. |
Optional |
repeat_satellite |
[true, false]: If set to true, the block will search again for the same satellite once its presence has been discarded. Useful for testing. It defaults to false. |
Optional |
blocking |
[true, false]: If set to false, the acquisition workload is executed in a separate thread, outside the GNU Radio scheduler that manages the flow graph, and the block skips over samples that arrive while the processing thread is busy. This is especially useful in real-time operation using radio frequency front-ends, overcoming the processing bottleneck for medium and high sampling rates. However, results then depend on the processing speed of the host computer, so do not use this option for file processing, unless GNSS-SDR.deterministic=true (see deterministic processing, only present in the next branch), which makes the results independent of this parameter. It defaults to true. |
Optional |
make_two_steps |
[true, false]: If set to true, an acquisition refinement stage is performed after a signal is declared present. This allows providing an updated, refined Doppler estimation to the Tracking block. It defaults to false. |
Optional |
second_nbins |
If make_two_steps is set to true, this parameter sets the number of bins done in the acquisition refinement stage. It defaults to 4. |
Optional |
second_doppler_step |
If make_two_steps is set to true, this parameter sets the Doppler step applied in the acquisition refinement stage, in Hz. It defaults to 125 Hz. |
Optional |
dump |
[true, false]: If set to true, it enables the Acquisition internal binary data file logging. It defaults to false. |
Optional |
dump_filename |
If dump is set to true, name of the file in which internal data will be stored. This parameter accepts either a relative or an absolute path; if there are non-existing specified folders, they will be created. It defaults to ./acquisition, so files with name ./acquisition_E_E6_ch_N_K_sat_P.mat (where N is the channel number defined by dump_channel, K is the dump number, and P is the targeted satellite’s PRN number) will be generated. |
Optional |
dump_channel |
If dump is set to true, channel number from which internal data will be stored. It defaults to 0. |
Optional |
Acquisition implementation: Galileo_E6_PCPS_Acquisition.
Example:
;######### ACQUISITION CONFIG FOR GALILEO E6 CHANNELS ############
Acquisition_E6.implementation=Galileo_E6_PCPS_Acquisition
Acquisition_E6.item_type=gr_complex
Acquisition_E6.pfa=0.001;
Acquisition_E6.blocking=true
Acquisition_E6.doppler_max=5000
Acquisition_E6.doppler_step=250
Acquisition_E6.dump=false
Acquisition_E6.dump_filename=./acq_e6_dump
Acquisition_E6.dump_channel=0
GPS L5 signal acquisition
Implementation: GPS_L5i_PCPS_Acquisition
This implementation accepts the following parameters:
| Global Parameter | Description | Required |
|---|---|---|
GNSS-SDR.internal_fs_sps |
Input sample rate to the processing channels, in samples per second. | Mandatory |
GNSS-SDR.use_acquisition_resampler |
[true, false]: If set to true, the Acquisition block makes use of the minimum possible sample rate during acquisition by setting a resampler at its input. This allows reducing the FFT size when using high data rates at GNSS-SDR.internal_fs_sps. All the required setup is configured automatically. It defaults to false. |
Optional |
| Parameter | Description | Required |
|---|---|---|
implementation |
GPS_L5i_PCPS_Acquisition |
Mandatory |
item_type |
[gr_complex, cshort, cbyte]: Set the sample data type expected at the block input. It defaults to gr_complex. |
Optional |
doppler_max |
Maximum Doppler value in the search grid, in Hz. It defaults to 5000 Hz. | Optional |
doppler_step |
Frequency step in the search grid, in Hz. It defaults to 500 Hz. | Optional |
threshold |
Decision threshold \(\gamma\) from which a signal will be considered present. It defaults to \(0.0\) (i.e., all signals are declared present), | Optional |
pfa |
If defined, it supersedes the threshold value and computes a new threshold \(\gamma_{pfa}\) based on the Probability of False Alarm. It defaults to \(0.0\) (i.e., not set). |
Optional |
bit_transition_flag |
[true, false]: If set to true, it takes into account the possible presence of a bit transition, so the effective integration time is doubled. When set, it invalidates the value of max_dwells. It defaults to false. |
Optional |
max_dwells |
Set the maximum number of non-coherent dwells to declare a signal present. It defaults to 1. | Optional |
full_grid_search |
[true, false]: If set to true, accumulate all max_dwells non-coherent dwells before accepting or rejecting the strongest peak. It defaults to false (early acceptance). Ignored when bit_transition_flag=true. See Completing all non-coherent dwells for availability, tradeoffs, and interactions. |
Optional |
reference_bin_min_sidelobes |
Target separation, in Doppler sidelobes of the correlation, between the searched bins and the noise-reference bin of the CFAR statistic. It only decides whether a full-grid search needs dedicated reference bins, and never moves them beyond \(\pm\)doppler_max. Only used if pfa is set. It defaults to \(4\). See Reduced Doppler search for availability and details. |
Optional |
dual_freq_assisted_doppler_narrowing |
[true, false]: If set to false, the Doppler projected from the primary band when GNSS-SDR.assist_dual_frequency_acq=true is discarded for this signal, which is then always searched over the full Doppler grid centered at \(0\) Hz. The secondary band still waits for the satellite to be tracked in the primary band; only the Doppler assistance is dropped. It defaults to true. See Reduced Doppler search for availability and details. |
Optional |
alm_ephe_assisted_doppler_narrowing |
[true, false]: If set to true, and this signal is searched as a secondary band without dual-frequency assistance (e.g., with GNSS-SDR.assist_dual_frequency_acq=false), its Doppler search is narrowed around the value predicted from the ephemeris or almanac of the satellite, provided that GNSS-SDR.enable_visibility_aware_search=true and the satellite is classified as visible. It has no effect when this signal is searched as the primary band, where the prediction is always used. It defaults to false. See Reduced Doppler search for availability and details. |
Optional |
repeat_satellite |
[true, false]: If set to true, the block will search again for the same satellite once its presence has been discarded. Useful for testing. It defaults to false. |
Optional |
blocking |
[true, false]: If set to false, the acquisition workload is executed in a separate thread, outside the GNU Radio scheduler that manages the flow graph, and the block skips over samples that arrive while the processing thread is busy. This is especially useful in real-time operation using radio frequency front-ends, overcoming the processing bottleneck for medium and high sampling rates. However, results then depend on the processing speed of the host computer, so do not use this option for file processing, unless GNSS-SDR.deterministic=true (see deterministic processing, only present in the next branch), which makes the results independent of this parameter. It defaults to true. |
Optional |
make_two_steps |
[true, false]: If set to true, an acquisition refinement stage is performed after a signal is declared present. This allows providing an updated, refined Doppler estimation to the Tracking block. It defaults to false. |
Optional |
second_nbins |
If make_two_steps is set to true, this parameter sets the number of bins done in the acquisition refinement stage. It defaults to 4. |
Optional |
second_doppler_step |
If make_two_steps is set to true, this parameter sets the Doppler step applied in the acquisition refinement stage, in Hz. It defaults to 125 Hz. |
Optional |
dump |
[true, false]: If set to true, it enables the Acquisition internal binary data file logging. It defaults to false. |
Optional |
dump_filename |
If dump is set to true, base name of the file(s) in which internal data will be stored. This parameter accepts either a relative or an absolute path; if there are non-existing specified folders, they will be created. It defaults to ./acquisition, so files with name ./acquisition_G_L5_ch_N_K_sat_P.mat (where N is the channel number defined by dump_channel, K is the dump number, and P is the targeted satellite’s PRN number) will be generated. |
Optional |
dump_channel |
If dump is set to true, channel number from which internal data will be stored. It defaults to 0. |
Optional |
Acquisition implementation: GPS_L5i_PCPS_Acquisition.
Example:
;######### ACQUISITION CONFIG FOR GPS L5 CHANNELS ############
Acquisition_L5.implementation=GPS_L5i_PCPS_Acquisition
Acquisition_L5.item_type=cshort
Acquisition_L5.pfa=0.01
Acquisition_L5.doppler_max=6000
Acquisition_L5.doppler_step=60
Acquisition_L5.coherent_integration_time_ms=4
Acquisition_L5.max_dwells=1
Galileo E5a signal acquisition
Implementation: Galileo_E5a_Pcps_Acquisition
This implementation accepts the following parameters:
| Global Parameter | Description | Required |
|---|---|---|
GNSS-SDR.internal_fs_sps |
Input sample rate to the processing channels, in samples per second. | Mandatory |
GNSS-SDR.use_acquisition_resampler |
[true, false]: If set to true, the Acquisition block makes use of the minimum possible sample rate during acquisition by setting a resampler at its input. This allows reducing the FFT size when using high data rates at GNSS-SDR.internal_fs_sps. All the required setup is configured automatically. It defaults to false. |
Optional |
| Parameter | Description | Required |
|---|---|---|
implementation |
Galileo_E5a_Pcps_Acquisition |
Mandatory |
item_type |
[gr_complex, cshort]: Set the sample data type expected at the block input. It defaults to gr_complex. |
Optional |
doppler_max |
Maximum Doppler value in the search grid, in Hz. It defaults to 5000 Hz. | Optional |
doppler_step |
Frequency step in the search grid, in Hz. It defaults to 500 Hz. | Optional |
threshold |
Decision threshold \(\gamma\) from which a signal will be considered present. It defaults to \(0.0\) (i.e., all signals are declared present), | Optional |
pfa |
If defined, it supersedes the threshold value and computes a new threshold \(\gamma_{pfa}\) based on the Probability of False Alarm. It defaults to \(0.0\) (i.e., not set). |
Optional |
coherent_integration_time_ms |
Set the integration time \(T_{int}\), in ms. It defaults to 1 ms. | Optional |
bit_transition_flag |
[true, false]: If set to true, it takes into account the possible presence of a bit transition, so the effective integration time is doubled. When set, it invalidates the value of max_dwells. It defaults to false. |
Optional |
max_dwells |
Set the maximum number of non-coherent dwells to declare a signal present. It defaults to 1. | Optional |
full_grid_search |
[true, false]: If set to true, accumulate all max_dwells non-coherent dwells before accepting or rejecting the strongest peak. It defaults to false (early acceptance). Ignored when bit_transition_flag=true. See Completing all non-coherent dwells for availability, tradeoffs, and interactions. |
Optional |
reference_bin_min_sidelobes |
Target separation, in Doppler sidelobes of the correlation, between the searched bins and the noise-reference bin of the CFAR statistic. It only decides whether a full-grid search needs dedicated reference bins, and never moves them beyond \(\pm\)doppler_max. Only used if pfa is set. It defaults to \(4\). See Reduced Doppler search for availability and details. |
Optional |
dual_freq_assisted_doppler_narrowing |
[true, false]: If set to false, the Doppler projected from the primary band when GNSS-SDR.assist_dual_frequency_acq=true is discarded for this signal, which is then always searched over the full Doppler grid centered at \(0\) Hz. The secondary band still waits for the satellite to be tracked in the primary band; only the Doppler assistance is dropped. It defaults to true. See Reduced Doppler search for availability and details. |
Optional |
alm_ephe_assisted_doppler_narrowing |
[true, false]: If set to true, and this signal is searched as a secondary band without dual-frequency assistance (e.g., with GNSS-SDR.assist_dual_frequency_acq=false), its Doppler search is narrowed around the value predicted from the ephemeris or almanac of the satellite, provided that GNSS-SDR.enable_visibility_aware_search=true and the satellite is classified as visible. It has no effect when this signal is searched as the primary band, where the prediction is always used. It defaults to false. See Reduced Doppler search for availability and details. |
Optional |
repeat_satellite |
[true, false]: If set to true, the block will search again for the same satellite once its presence has been discarded. Useful for testing. It defaults to false. |
Optional |
blocking |
[true, false]: If set to false, the acquisition workload is executed in a separate thread, outside the GNU Radio scheduler that manages the flow graph, and the block skips over samples that arrive while the processing thread is busy. This is especially useful in real-time operation using radio frequency front-ends, overcoming the processing bottleneck for medium and high sampling rates. However, results then depend on the processing speed of the host computer, so do not use this option for file processing, unless GNSS-SDR.deterministic=true (see deterministic processing, only present in the next branch), which makes the results independent of this parameter. It defaults to true. |
Optional |
acquire_pilot |
[true, false]: If set to true, it enables the Acquisition of the pilot Galileo E5a signal (Q component). It defaults to false. |
Optional |
acquire_iq |
[true, false]: If set to true, it enables the Acquisition of both, data (I) and pilot (Q) components of the Galileo E5a signal and overrides acquire_pilot to false. It is suitable for increasing the acquisition sensitivity of the receiver. It defaults to false. |
Optional |
make_two_steps |
[true, false]: If set to true, an acquisition refinement stage is performed after a signal is declared present. This allows providing an updated, refined Doppler estimation to the Tracking block. It defaults to false. |
Optional |
second_nbins |
If make_two_steps is set to true, this parameter sets the number of bins done in the acquisition refinement stage. It defaults to 4. |
Optional |
second_doppler_step |
If make_two_steps is set to true, this parameter sets the Doppler step applied in the acquisition refinement stage, in Hz. It defaults to 125 Hz. |
Optional |
dump |
[true, false]: If set to true, it enables the Acquisition internal binary data file logging. It defaults to false. |
Optional |
dump_filename |
If dump is set to true, base name of the file(s) in which internal data will be stored. This parameter accepts either a relative or an absolute path; if there are non-existing specified folders, they will be created. It defaults to ./acquisition, so files with name ./acquisition_E_5X_ch_N_K_sat_P.mat (where N is the channel number defined by dump_channel, K is the dump number, and P is the targeted satellite’s PRN number) will be generated. |
Optional |
dump_channel |
If dump is set to true, channel number from which internal data will be stored. It defaults to 0. |
Optional |
Acquisition implementation: Galileo_E5a_Pcps_Acquisition.
Example:
;######### ACQUISITION CONFIG FOR GALILEO E5a CHANNELS ############
Acquisition_5X.implementation=Galileo_E5a_Pcps_Acquisition
Acquisition_5X.doppler_max=8000
Acquisition_5X.doppler_step=250
Acquisition_5X.pfa=0.01
Acquisition_5X.coherent_integration_time_ms=1
Acquisition_5X.max_dwells=1
Implementation: Galileo_E5a_Noncoherent_IQ_Acquisition_CAF
This implementation accepts the following parameters:
| Global Parameter | Description | Required |
|---|---|---|
GNSS-SDR.internal_fs_sps |
Input sample rate to the processing channels, in samples per second. | Mandatory |
| Parameter | Description | Required |
|---|---|---|
implementation |
Galileo_E5a_Noncoherent_IQ_Acquisition_CAF |
Mandatory |
item_type |
[gr_complex]: Set the sample data type expected at the block input. It defaults to gr_complex. |
Optional |
doppler_max |
Maximum Doppler value in the search grid, in Hz. It defaults to 5000 Hz. | Optional |
doppler_step |
Frequency step in the search grid, in Hz. It defaults to 500 Hz. | Optional |
CAF_window_hz |
Resolves Doppler ambiguity by averaging the specified bandwidth (in Hz) in the winner code delay. If set to \(0\), the CAF filter is deactivated. Recommended value: \(3000\) Hz. It defaults to 0 Hz. | Optional |
Zero_padding |
If set to a \(1\), it avoids power loss and doppler ambiguity in bit transitions by correlating one code with twice the input data length, ensuring that at least one full code is present without transitions. It defaults to \(0\) (i.e., deactivated). | Optional |
threshold |
Decision threshold \(\gamma\) from which a signal will be considered present. It defaults to \(0.0\) (i.e., all signals are declared present), | Optional |
pfa |
If defined, it supersedes the threshold value and computes a new threshold \(\gamma_{pfa}\) based on the Probability of False Alarm. It defaults to \(0.0\) (i.e., not set). |
Optional |
coherent_integration_time_ms |
Set the integration time \(T_{int}\), in ms. Should be a 3 ms or less. It defaults to 1 ms. | Optional |
bit_transition_flag |
[true, false]: If set to true, it takes into account the possible presence of a bit transition, so the effective integration time is doubled. When set, it invalidates the value of max_dwells. It defaults to false. |
Optional |
max_dwells |
Set the maximum number of non-coherent dwells to declare a signal present. It defaults to 1. | Optional |
repeat_satellite |
[true, false]: If set to true, the block will search again for the same satellite once its presence has been discarded. Useful for testing. It defaults to false. |
Optional |
dump |
[true, false]: If set to true, it enables the Acquisition internal binary data file logging. It defaults to false. |
Optional |
dump_filename |
If dump is set to true, name of the file in which internal data will be stored. It defaults to ./acquisition.dat |
Optional |
Acquisition implementation: Galileo_E5a_Noncoherent_IQ_Acquisition_CAF.
Example:
;######### ACQUISITION CONFIG FOR GALILEO E5a CHANNELS ############
Acquisition_5X.implementation=Galileo_E5a_Noncoherent_IQ_Acquisition_CAF
Acquisition_5X.pfa=0.01
Acquisition_5X.doppler_max=10000
Acquisition_5X.doppler_step=250
BeiDOu B3I signal acquisition
Implementation: BEIDOU_B3I_PCPS_Acquisition
This implementation accepts the following parameters:
| Global Parameter | Description | Required |
|---|---|---|
GNSS-SDR.internal_fs_sps |
Input sample rate to the processing channels, in samples per second. | Mandatory |
GNSS-SDR.use_acquisition_resampler |
[true, false]: If set to true, the Acquisition block makes use of the minimum possible sample rate during acquisition by setting a resampler at its input. This allows reducing the FFT size when using high data rates at GNSS-SDR.internal_fs_sps. All the required setup is configured automatically. It defaults to false. |
Optional |
| Parameter | Description | Required |
|---|---|---|
implementation |
BEIDOU_B3I_PCPS_Acquisition |
Mandatory |
item_type |
[gr_complex, cshort, cbyte]: Set the sample data type expected at the block input. It defaults to gr_complex. |
Optional |
doppler_max |
Maximum Doppler value in the search grid, in Hz. It defaults to 5000 Hz. | Optional |
doppler_step |
Frequency step in the search grid, in Hz. It defaults to 500 Hz. | Optional |
threshold |
Decision threshold \(\gamma\) from which a signal will be considered present. It defaults to \(0.0\) (i.e., all signals are declared present), | Optional |
pfa |
If defined, it supersedes the threshold value and computes a new threshold \(\gamma_{pfa}\) based on the Probability of False Alarm. It defaults to \(0.0\) (i.e., not set). |
Optional |
bit_transition_flag |
[true, false]: If set to true, it takes into account the possible presence of a bit transition, so the effective integration time is doubled. When set, it invalidates the value of max_dwells. It defaults to false. |
Optional |
max_dwells |
Set the maximum number of non-coherent dwells to declare a signal present. It defaults to 1. | Optional |
full_grid_search |
[true, false]: If set to true, accumulate all max_dwells non-coherent dwells before accepting or rejecting the strongest peak. It defaults to false (early acceptance). Ignored when bit_transition_flag=true. See Completing all non-coherent dwells for availability, tradeoffs, and interactions. |
Optional |
reference_bin_min_sidelobes |
Target separation, in Doppler sidelobes of the correlation, between the searched bins and the noise-reference bin of the CFAR statistic. It only decides whether a full-grid search needs dedicated reference bins, and never moves them beyond \(\pm\)doppler_max. Only used if pfa is set. It defaults to \(4\). See Reduced Doppler search for availability and details. |
Optional |
dual_freq_assisted_doppler_narrowing |
[true, false]: If set to false, the Doppler projected from the primary band when GNSS-SDR.assist_dual_frequency_acq=true is discarded for this signal, which is then always searched over the full Doppler grid centered at \(0\) Hz. The secondary band still waits for the satellite to be tracked in the primary band; only the Doppler assistance is dropped. It defaults to true. See Reduced Doppler search for availability and details. |
Optional |
alm_ephe_assisted_doppler_narrowing |
[true, false]: If set to true, and this signal is searched as a secondary band without dual-frequency assistance (e.g., with GNSS-SDR.assist_dual_frequency_acq=false), its Doppler search is narrowed around the value predicted from the ephemeris or almanac of the satellite, provided that GNSS-SDR.enable_visibility_aware_search=true and the satellite is classified as visible. It has no effect when this signal is searched as the primary band, where the prediction is always used. It defaults to false. See Reduced Doppler search for availability and details. |
Optional |
repeat_satellite |
[true, false]: If set to true, the block will search again for the same satellite once its presence has been discarded. Useful for testing. It defaults to false. |
Optional |
blocking |
[true, false]: If set to false, the acquisition workload is executed in a separate thread, outside the GNU Radio scheduler that manages the flow graph, and the block skips over samples that arrive while the processing thread is busy. This is especially useful in real-time operation using radio frequency front-ends, overcoming the processing bottleneck for medium and high sampling rates. However, results then depend on the processing speed of the host computer, so do not use this option for file processing, unless GNSS-SDR.deterministic=true (see deterministic processing, only present in the next branch), which makes the results independent of this parameter. It defaults to true. |
Optional |
make_two_steps |
[true, false]: If set to true, an acquisition refinement stage is performed after a signal is declared present. This allows providing an updated, refined Doppler estimation to the Tracking block. It defaults to false. |
Optional |
second_nbins |
If make_two_steps is set to true, this parameter sets the number of bins done in the acquisition refinement stage. It defaults to 4. |
Optional |
second_doppler_step |
If make_two_steps is set to true, this parameter sets the Doppler step applied in the acquisition refinement stage, in Hz. It defaults to 125 Hz. |
Optional |
dump |
[true, false]: If set to true, it enables the Acquisition internal binary data file logging. It defaults to false. |
Optional |
dump_filename |
If dump is set to true, base name of the file(s) in which internal data will be stored. This parameter accepts either a relative or an absolute path; if there are non-existing specified folders, they will be created. It defaults to ./acquisition, so files with name ./acquisition_C_B3_ch_N_K_sat_P.mat (where N is the channel number defined by dump_channel, K is the dump number, and P is the targeted satellite’s PRN number) will be generated. |
Optional |
dump_channel |
If dump is set to true, channel number from which internal data will be stored. It defaults to 0. |
Optional |
Acquisition implementation: BEIDOU_B3I_PCPS_Acquisition.
Example:
;######### ACQUISITION CONFIG FOR BeiDou B3I CHANNELS ############
Acquisition_B3.implementation=BEIDOU_B3I_PCPS_Acquisition
Acquisition_B3.item_type=cshort
Acquisition_B3.pfa=0.01
Acquisition_B3.doppler_max=6000
Acquisition_B3.doppler_step=60
Acquisition_B3.coherent_integration_time_ms=4
Acquisition_B3.max_dwells=1
QZSS L5 signal acquisition
Implementation: QZSS_L5i_PCPS_Acquisition
This implementation accepts the following parameters:
| Global Parameter | Description | Required |
|---|---|---|
GNSS-SDR.internal_fs_sps |
Input sample rate to the processing channels, in samples per second. | Mandatory |
GNSS-SDR.use_acquisition_resampler |
[true, false]: If set to true, the Acquisition block makes use of the minimum possible sample rate during acquisition by setting a resampler at its input. This allows reducing the FFT size when using high data rates at GNSS-SDR.internal_fs_sps. All the required setup is configured automatically. It defaults to false. |
Optional |
| Parameter | Description | Required |
|---|---|---|
implementation |
QZSS_L5i_PCPS_Acquisition |
Mandatory |
item_type |
[gr_complex, cshort, cbyte]: Set the sample data type expected at the block input. It defaults to gr_complex. |
Optional |
doppler_max |
Maximum Doppler value in the search grid, in Hz. It defaults to 5000 Hz. | Optional |
doppler_step |
Frequency step in the search grid, in Hz. It defaults to 500 Hz. | Optional |
threshold |
Decision threshold \(\gamma\) from which a signal will be considered present. It defaults to \(0.0\) (i.e., all signals are declared present), | Optional |
pfa |
If defined, it supersedes the threshold value and computes a new threshold \(\gamma_{pfa}\) based on the Probability of False Alarm. It defaults to \(0.0\) (i.e., not set). |
Optional |
bit_transition_flag |
[true, false]: If set to true, it takes into account the possible presence of a bit transition, so the effective integration time is doubled. When set, it invalidates the value of max_dwells. It defaults to false. |
Optional |
max_dwells |
Set the maximum number of non-coherent dwells to declare a signal present. It defaults to 1. | Optional |
full_grid_search |
[true, false]: If set to true, accumulate all max_dwells non-coherent dwells before accepting or rejecting the strongest peak. It defaults to false (early acceptance). Ignored when bit_transition_flag=true. See Completing all non-coherent dwells for availability, tradeoffs, and interactions. |
Optional |
reference_bin_min_sidelobes |
Target separation, in Doppler sidelobes of the correlation, between the searched bins and the noise-reference bin of the CFAR statistic. It only decides whether a full-grid search needs dedicated reference bins, and never moves them beyond \(\pm\)doppler_max. Only used if pfa is set. It defaults to \(4\). See Reduced Doppler search for availability and details. |
Optional |
dual_freq_assisted_doppler_narrowing |
[true, false]: If set to false, the Doppler projected from the primary band when GNSS-SDR.assist_dual_frequency_acq=true is discarded for this signal, which is then always searched over the full Doppler grid centered at \(0\) Hz. The secondary band still waits for the satellite to be tracked in the primary band; only the Doppler assistance is dropped. It defaults to true. See Reduced Doppler search for availability and details. |
Optional |
alm_ephe_assisted_doppler_narrowing |
[true, false]: If set to true, and this signal is searched as a secondary band without dual-frequency assistance (e.g., with GNSS-SDR.assist_dual_frequency_acq=false), its Doppler search is narrowed around the value predicted from the ephemeris or almanac of the satellite, provided that GNSS-SDR.enable_visibility_aware_search=true and the satellite is classified as visible. It has no effect when this signal is searched as the primary band, where the prediction is always used. It defaults to false. See Reduced Doppler search for availability and details. |
Optional |
repeat_satellite |
[true, false]: If set to true, the block will search again for the same satellite once its presence has been discarded. Useful for testing. It defaults to false. |
Optional |
blocking |
[true, false]: If set to false, the acquisition workload is executed in a separate thread, outside the GNU Radio scheduler that manages the flow graph, and the block skips over samples that arrive while the processing thread is busy. This is especially useful in real-time operation using radio frequency front-ends, overcoming the processing bottleneck for medium and high sampling rates. However, results then depend on the processing speed of the host computer, so do not use this option for file processing, unless GNSS-SDR.deterministic=true (see deterministic processing, only present in the next branch), which makes the results independent of this parameter. It defaults to true. |
Optional |
make_two_steps |
[true, false]: If set to true, an acquisition refinement stage is performed after a signal is declared present. This allows providing an updated, refined Doppler estimation to the Tracking block. It defaults to false. |
Optional |
second_nbins |
If make_two_steps is set to true, this parameter sets the number of bins done in the acquisition refinement stage. It defaults to 4. |
Optional |
second_doppler_step |
If make_two_steps is set to true, this parameter sets the Doppler step applied in the acquisition refinement stage, in Hz. It defaults to 125 Hz. |
Optional |
dump |
[true, false]: If set to true, it enables the Acquisition internal binary data file logging. It defaults to false. |
Optional |
dump_filename |
If dump is set to true, base name of the file(s) in which internal data will be stored. This parameter accepts either a relative or an absolute path; if there are non-existing specified folders, they will be created. It defaults to ./acquisition, so files with name ./acquisition_J_J5_ch_N_K_sat_P.mat (where N is the channel number defined by dump_channel, K is the dump number, and P is the targeted satellite’s PRN number) will be generated. |
Optional |
dump_channel |
If dump is set to true, channel number from which internal data will be stored. It defaults to 0. |
Optional |
Acquisition implementation: QZSS_L5i_PCPS_Acquisition.
Example:
;######### ACQUISITION CONFIG FOR QZSS L5 CHANNELS ############
Acquisition_J5.implementation=QZSS_L5i_PCPS_Acquisition
Acquisition_J5.item_type=cshort
Acquisition_J5.pfa=0.01
Acquisition_J5.doppler_max=6000
Acquisition_J5.doppler_step=60
Acquisition_J5.coherent_integration_time_ms=4
Acquisition_J5.max_dwells=1
BeiDou B2a signal acquisition
The BeiDou B2a signal, transmitted by BeiDou-3 MEO and IGSO satellites and
centered at \(1176.45\) MHz, is composed of a data component (carrying the
B-CNAV2 navigation message) and a pilot component, in phase quadrature and
with equal power, both modulated with BPSK(10). Both components use ranging
codes of \(10230\) chips transmitted at \(10.23\) Mchip/s, thus with a
period of \(1\) ms. The data component is further modulated by a
\(5\)-chip secondary code, and the pilot component by a \(100\)-chip
secondary code. GNSS-SDR identifies the BeiDou B2a signal with the identifier
5D.
Implementation: BEIDOU_B2A_PCPS_Acquisition
By default, this implementation acquires the pilot component of the B2a
signal, using a local replica of its primary ranging code. The acquire_pilot
parameter allows acquiring the data component instead, and acquire_iq allows
using a complex local replica that carries the data primary code in phase and
the pilot primary code in quadrature, as in the transmitted signal. Both
primary codes have the same length and chip rate, so the code phase and Doppler
estimates delivered to the Tracking block are valid for either component.
Pilot and joint data+pilot acquisition are only
present in the next branch of the upstream repository, and will be included
in the next GNSS-SDR stable release. GNSS-SDR v0.0.22 always acquires the data
component.
Since the primary code period is \(1\) ms and both components carry a
secondary code at \(1\) kchip/s, the default coherent integration time of
\(1\) ms keeps at most one secondary code chip transition within each
correlation; sensitivity can be increased by accumulating non-coherent dwells
with max_dwells.
This implementation accepts the following parameters:
| Global Parameter | Description | Required |
|---|---|---|
GNSS-SDR.internal_fs_sps |
Input sample rate to the processing channels, in samples per second. | Mandatory |
GNSS-SDR.use_acquisition_resampler |
[true, false]: If set to true, the Acquisition block makes use of the minimum possible sample rate during acquisition by setting a resampler at its input. This allows reducing the FFT size when using high data rates at GNSS-SDR.internal_fs_sps. All the required setup is configured automatically. It defaults to false. |
Optional |
| Parameter | Description | Required |
|---|---|---|
implementation |
BEIDOU_B2A_PCPS_Acquisition |
Mandatory |
item_type |
[gr_complex, cshort, cbyte]: Set the sample data type expected at the block input. It defaults to gr_complex. |
Optional |
acquire_pilot |
[true, false]: If set to true, the receiver is set to acquire the B2a pilot component (Q). If set to false, the receiver is set to acquire the B2a data component (I). It defaults to true. Only present in the next branch. |
Optional |
acquire_iq |
[true, false]: If set to true, the receiver is set to acquire both the data (I) and pilot (Q) components of the B2a signal with a single complex local replica, and acquire_pilot is ignored. It defaults to false. Only present in the next branch. |
Optional |
doppler_max |
Maximum Doppler value in the search grid, in Hz. It defaults to 5000 Hz. | Optional |
doppler_step |
Frequency step in the search grid, in Hz. It defaults to 500 Hz. | Optional |
threshold |
Decision threshold \(\gamma\) from which a signal will be considered present. It defaults to \(0.0\) (i.e., all signals are declared present). | Optional |
pfa |
If defined, it supersedes the threshold value and computes a new threshold \(\gamma_{pfa}\) based on the Probability of False Alarm. It defaults to \(0.0\) (i.e., not set). |
Optional |
coherent_integration_time_ms |
Set the integration time \(T_{int}\), in ms. It defaults to 1 ms. | Optional |
bit_transition_flag |
[true, false]: If set to true, it takes into account the possible presence of a symbol transition, so the effective integration time is doubled. When set, it invalidates the value of max_dwells. It defaults to false. |
Optional |
max_dwells |
Set the maximum number of non-coherent dwells to declare a signal present. It defaults to 1. | Optional |
full_grid_search |
[true, false]: If set to true, accumulate all max_dwells non-coherent dwells before accepting or rejecting the strongest peak. It defaults to false (early acceptance). Ignored when bit_transition_flag=true. See Completing all non-coherent dwells for availability, tradeoffs, and interactions. |
Optional |
reference_bin_min_sidelobes |
Target separation, in Doppler sidelobes of the correlation, between the searched bins and the noise-reference bin of the CFAR statistic. It only decides whether a full-grid search needs dedicated reference bins, and never moves them beyond \(\pm\)doppler_max. Only used if pfa is set. It defaults to \(4\). See Reduced Doppler search for availability and details. |
Optional |
dual_freq_assisted_doppler_narrowing |
[true, false]: If set to false, the Doppler projected from the primary band when GNSS-SDR.assist_dual_frequency_acq=true is discarded for this signal, which is then always searched over the full Doppler grid centered at \(0\) Hz. The secondary band still waits for the satellite to be tracked in the primary band; only the Doppler assistance is dropped. It defaults to true. See Reduced Doppler search for availability and details. |
Optional |
alm_ephe_assisted_doppler_narrowing |
[true, false]: If set to true, and this signal is searched as a secondary band without dual-frequency assistance (e.g., with GNSS-SDR.assist_dual_frequency_acq=false), its Doppler search is narrowed around the value predicted from the ephemeris or almanac of the satellite, provided that GNSS-SDR.enable_visibility_aware_search=true and the satellite is classified as visible. It has no effect when this signal is searched as the primary band, where the prediction is always used. It defaults to false. See Reduced Doppler search for availability and details. |
Optional |
repeat_satellite |
[true, false]: If set to true, the block will search again for the same satellite once its presence has been discarded. Useful for testing. It defaults to false. |
Optional |
blocking |
[true, false]: If set to false, the acquisition workload is executed in a separate thread, outside the GNU Radio scheduler that manages the flow graph, and the block skips over samples that arrive while the processing thread is busy. This is especially useful in real-time operation using radio frequency front-ends, overcoming the processing bottleneck for medium and high sampling rates. However, results then depend on the processing speed of the host computer, so do not use this option for file processing, unless GNSS-SDR.deterministic=true (see deterministic processing, only present in the next branch), which makes the results independent of this parameter. It defaults to true. |
Optional |
make_two_steps |
[true, false]: If set to true, an acquisition refinement stage is performed after a signal is declared present. This allows providing an updated, refined Doppler estimation to the Tracking block. It defaults to false. |
Optional |
second_nbins |
If make_two_steps is set to true, this parameter sets the number of bins done in the acquisition refinement stage. It defaults to 4. |
Optional |
second_doppler_step |
If make_two_steps is set to true, this parameter sets the Doppler step applied in the acquisition refinement stage, in Hz. It defaults to 125 Hz. |
Optional |
dump |
[true, false]: If set to true, it enables the Acquisition internal binary data file logging. It defaults to false. |
Optional |
dump_filename |
If dump is set to true, name of the file in which internal data will be stored. This parameter accepts either a relative or an absolute path; if there are non-existing specified folders, they will be created. It defaults to ./acquisition, so files with name ./acquisition_C_5D_ch_N_K_sat_P.mat (where N is the channel number defined by dump_channel, K is the dump number, and P is the targeted satellite’s PRN number) will be generated. |
Optional |
dump_channel |
If dump is set to true, channel number from which internal data will be stored. It defaults to 0. |
Optional |
Acquisition implementation: BEIDOU_B2A_PCPS_Acquisition.
Example:
;######### ACQUISITION CONFIG FOR BeiDou B2a CHANNELS ############
Acquisition_5D.implementation=BEIDOU_B2A_PCPS_Acquisition
Acquisition_5D.item_type=gr_complex
Acquisition_5D.acquire_pilot=true
Acquisition_5D.coherent_integration_time_ms=1
Acquisition_5D.pfa=0.01
Acquisition_5D.doppler_max=5000
Acquisition_5D.doppler_step=250
Acquisition_5D.max_dwells=8
Galileo E5b signal acquisition
Implementation: Galileo_E5b_PCPS_Acquisition
This implementation accepts the following parameters:
| Global Parameter | Description | Required |
|---|---|---|
GNSS-SDR.internal_fs_sps |
Input sample rate to the processing channels, in samples per second. | Mandatory |
GNSS-SDR.use_acquisition_resampler |
[true, false]: If set to true, the Acquisition block makes use of the minimum possible sample rate during acquisition by setting a resampler at its input. This allows reducing the FFT size when using high data rates at GNSS-SDR.internal_fs_sps. All the required setup is configured automatically. It defaults to false. |
Optional |
| Parameter | Description | Required |
|---|---|---|
implementation |
Galileo_E5b_PCPS_Acquisition |
Mandatory |
item_type |
[gr_complex, cshort]: Set the sample data type expected at the block input. It defaults to gr_complex. |
Optional |
doppler_max |
Maximum Doppler value in the search grid, in Hz. It defaults to 5000 Hz. | Optional |
doppler_step |
Frequency step in the search grid, in Hz. It defaults to 500 Hz. | Optional |
threshold |
Decision threshold \(\gamma\) from which a signal will be considered present. It defaults to \(0.0\) (i.e., all signals are declared present), | Optional |
pfa |
If defined, it supersedes the threshold value and computes a new threshold \(\gamma_{pfa}\) based on the Probability of False Alarm. It defaults to \(0.0\) (i.e., not set). |
Optional |
coherent_integration_time_ms |
Set the integration time \(T_{int}\), in ms. It defaults to 1 ms. | Optional |
bit_transition_flag |
[true, false]: If set to true, it takes into account the possible presence of a bit transition, so the effective integration time is doubled. When set, it invalidates the value of max_dwells. It defaults to false. |
Optional |
max_dwells |
Set the maximum number of non-coherent dwells to declare a signal present. It defaults to 1. | Optional |
full_grid_search |
[true, false]: If set to true, accumulate all max_dwells non-coherent dwells before accepting or rejecting the strongest peak. It defaults to false (early acceptance). Ignored when bit_transition_flag=true. See Completing all non-coherent dwells for availability, tradeoffs, and interactions. |
Optional |
reference_bin_min_sidelobes |
Target separation, in Doppler sidelobes of the correlation, between the searched bins and the noise-reference bin of the CFAR statistic. It only decides whether a full-grid search needs dedicated reference bins, and never moves them beyond \(\pm\)doppler_max. Only used if pfa is set. It defaults to \(4\). See Reduced Doppler search for availability and details. |
Optional |
dual_freq_assisted_doppler_narrowing |
[true, false]: If set to false, the Doppler projected from the primary band when GNSS-SDR.assist_dual_frequency_acq=true is discarded for this signal, which is then always searched over the full Doppler grid centered at \(0\) Hz. The secondary band still waits for the satellite to be tracked in the primary band; only the Doppler assistance is dropped. It defaults to true. See Reduced Doppler search for availability and details. |
Optional |
alm_ephe_assisted_doppler_narrowing |
[true, false]: If set to true, and this signal is searched as a secondary band without dual-frequency assistance (e.g., with GNSS-SDR.assist_dual_frequency_acq=false), its Doppler search is narrowed around the value predicted from the ephemeris or almanac of the satellite, provided that GNSS-SDR.enable_visibility_aware_search=true and the satellite is classified as visible. It has no effect when this signal is searched as the primary band, where the prediction is always used. It defaults to false. See Reduced Doppler search for availability and details. |
Optional |
repeat_satellite |
[true, false]: If set to true, the block will search again for the same satellite once its presence has been discarded. Useful for testing. It defaults to false. |
Optional |
blocking |
[true, false]: If set to false, the acquisition workload is executed in a separate thread, outside the GNU Radio scheduler that manages the flow graph, and the block skips over samples that arrive while the processing thread is busy. This is especially useful in real-time operation using radio frequency front-ends, overcoming the processing bottleneck for medium and high sampling rates. However, results then depend on the processing speed of the host computer, so do not use this option for file processing, unless GNSS-SDR.deterministic=true (see deterministic processing, only present in the next branch), which makes the results independent of this parameter. It defaults to true. |
Optional |
acquire_pilot |
[true, false]: If set to true, it enables the Acquisition of the pilot Galileo E5b signal (Q component). It defaults to false. |
Optional |
acquire_iq |
[true, false]: If set to true, it enables the Acquisition of both, data (I) and pilot (Q) components of the Galileo E5b signal and overrides acquire_pilot to false. It is suitable for increasing the acquisition sensitivity of the receiver. It defaults to false. |
Optional |
make_two_steps |
[true, false]: If set to true, an acquisition refinement stage is performed after a signal is declared present. This allows providing an updated, refined Doppler estimation to the Tracking block. It defaults to false. |
Optional |
second_nbins |
If make_two_steps is set to true, this parameter sets the number of bins done in the acquisition refinement stage. It defaults to 4. |
Optional |
second_doppler_step |
If make_two_steps is set to true, this parameter sets the Doppler step applied in the acquisition refinement stage, in Hz. It defaults to 125 Hz. |
Optional |
dump |
[true, false]: If set to true, it enables the Acquisition internal binary data file logging. It defaults to false. |
Optional |
dump_filename |
If dump is set to true, base name of the file(s) in which internal data will be stored. This parameter accepts either a relative or an absolute path; if there are non-existing specified folders, they will be created. It defaults to ./acquisition, so files with name ./acquisition_E_7X_ch_N_K_sat_P.mat (where N is the channel number defined by dump_channel, K is the dump number, and P is the targeted satellite’s PRN number) will be generated. |
Optional |
dump_channel |
If dump is set to true, channel number from which internal data will be stored. It defaults to 0. |
Optional |
Acquisition implementation: Galileo_E5b_PCPS_Acquisition.
Example:
;######### ACQUISITION CONFIG FOR GALILEO E5a CHANNELS ############
Acquisition_7X.implementation=Galileo_E5b_PCPS_Acquisition
Acquisition_7X.item_type=gr_complex
Acquisition_7X.pfa=0.01
Acquisition_7X.blocking=true
Acquisition_7X.doppler_max=5000
Acquisition_7X.doppler_step=250
Acquisition_7X.max_dwells=1
Acquisition_7X.dump=false
Acquisition_7X.dump_filename=./acq_dump_x5
Plotting results with MATLAB/Octave
Some Acquisition block implementations are able to dump intermediate results of
the channel indicated by the dump_channel parameter in MATLAB Level 5
MAT-file
v7.3 file
format (.mat files), which can be opened in MATLAB/Octave.
The list of output variables contained in each .mat file is the following:
acq_delay_samples: Coarse estimation of time delay, in number of samples from the start of the pseudorandom code.acq_doppler_hz: Coarse estimation of Doppler shift, in Hz.acq_grid: Acquisition search grid. Each column corresponds to a Doppler bin. In dumps generated since GNSS-SDR v0.0.22, the Doppler bins can be followed by up to two noise-reference columns (seedoppler_num_candidates).positive_acq:1if there has been a positive acquisition,0for no detection.doppler_center: Center of the Doppler search grid, in Hz. It is0unless the search was centered on a Doppler estimation obtained in another frequency band or predicted from ephemeris or almanac data (see Reduced Doppler search).doppler_max: Maximum Doppler shift in the search grid. In dumps generated since GNSS-SDR v0.0.22, it is the offset of the first Doppler bin with respect todoppler_center, so that the Doppler of column \(i\) (starting at \(0\)) isdoppler_center - doppler_max + doppler_step * i. Since the bins are centered atdoppler_center(see Reduced Doppler search), this value can differ from the configureddoppler_max(for instance, it is \(0\) for a single-bin search).doppler_narrowed:1if fewer Doppler bins than the full configured grid were searched (see Reduced Doppler search),0otherwise.doppler_num_candidates: Number of leading columns ofacq_gridthat are Doppler bins. The remaining columns, if any (up to two), are noise-reference bins atdoppler_center\(\pm\) the configured maximum Doppler, which are not on the Doppler axis defined bydoppler_maxanddoppler_stepand must be skipped when plotting.doppler_step: Doppler step in the search grid.input_power: Input signal power.num_dwells: Number of dwells performed in non-coherent acquisition.PRN: Satellite ID.sample_counter: Sample counter from receiver’s start.test_statistic: Result of the test statistic.threshold: Threshold above which a signal is declared present.
Example:
Assuming that you are processing GPS L1 C/A signals, and you have included the following lines in your configuration file:
Acquisition_1C.implementation=GPS_L1_CA_PCPS_Acquisition
;... (other parameters) ...
Acquisition_1C.dump=true
Acquisition_1C.dump_filename=acq_dump
Acquisition_1C.dump_channel=0
Then, after the processing, you will get .mat files storing the results
obtained from the Acquisition block corresponding to channel 0.
The acquisition grid can be plotted from MATLAB or Octave as:
load('./acq_dump_G_1C_ch_0_1_sat_1.mat')
f = -doppler_max:doppler_step:(doppler_max-doppler_step);
tau = linspace(0, 1023, size(acq_grid, 1));
surf(f, tau, acq_grid); xlabel('Doppler [Hz]'); ylabel('Delay [chips]');
You should see something like:
Positive acquisition.
or
Negative acquisition.
If the dump contains the doppler_num_candidates variable (see above), only
its first doppler_num_candidates columns must be plotted, and the Doppler axis
becomes:
n = double(doppler_num_candidates);
f = double(doppler_center) - double(doppler_max) + (0:n-1) * double(doppler_step);
tau = linspace(0, 1023, size(acq_grid, 1));
surf(f, tau, acq_grid(:, 1:n)); xlabel('Doppler [Hz]'); ylabel('Delay [chips]');
A single-bin search (n equal to \(1\)) cannot be drawn with surf; plot
acq_grid(:, 1) against tau instead. The scripts
utils/matlab/plot_acq_grid.m
and
utils/python/plot_acq_grid.py
provided with the source code automate this plotting, skip the noise-reference
columns, and decode all dump variants.
References
-
K. Borre, D. M. Akos, N. Bertelsen, P. Rinder, S. H. Jensen, A Software-Defined GPS and Galileo Receiver. A Single-Frequency Approach, 1st edition, Boston: Birkhäuser, November 2006. ↩
-
C. Fernández-Prades, J. Arribas, L. Esteve-Elfau, D. Pubill, P. Closas, An Open Source Galileo E1 Software Receiver, in Proceedings of the 6th ESA Workshop on Satellite Navigation Technologies (NAVITEC 2012), 5-7 December 2012, ESTEC, Noordwijk, The Netherlands. ↩ ↩2
-
P. S. Tong, A Suboptimum Synchronization Procedure for Pseudo Noise Communication Systems, in Proc. of National Telecommunications Conference, pp. 26D1-26D5. Atlanta, GA, Nov. 1973. ↩ ↩2
-
European GNSS (Galileo) Open Service Signal In Space Interface Control Document, Issue 2.1, Nov. 2023. ↩
-
J. Zhang, E. S. Lohan, Galileo E1 and E5a Link-Level Performances in Single and Multipath Channels. In G. Giambene, C. Sacchi, Eds., Personal Satellite Services, Third International ICST Conference PSATS 2011, Málaga, Spain, February 2011. ↩