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 CPU
PCPS acquisition block makes its detection decision. It defaults to false.
Warning: This option is only available from the next branch of the
upstream GNSS-SDR repository. It will be included in the next stable release.
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. - With
enable_doppler_narrowing=trueand valid exact-Doppler assistance, the reduced grid remains in use.full_grid_searchchanges the dwell count, not the assisted search 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.
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 |
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, this breaks the determinism provided by the GNU Radio scheduler, and different processing results can be obtained in different machines. Do not use this option for file processing. 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_min |
Minimum 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_Fine_Doppler_Acquisition.
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_min=-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_Tong_PCPS_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 |
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, this breaks the determinism provided by the GNU Radio scheduler, and different processing results can be obtained in different machines. Do not use this option for file processing. 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 |
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, this breaks the determinism provided by the GNU Radio scheduler, and different processing results can be obtained in different machines. Do not use this option for file processing. It defaults to true. |
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 |
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 |
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, this breaks the determinism provided by the GNU Radio scheduler, and different processing results can be obtained in different machines. Do not use this option for file processing. 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
Warning: This implementation is only available from the next branch of the
upstream GNSS-SDR repository. It will be included in the next stable release.
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 |
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, this breaks the determinism provided by the GNU Radio scheduler, and different processing results can be obtained in different machines. Do not use this option for file processing. 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 |
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, this breaks the determinism provided by the GNU Radio scheduler, and different processing results can be obtained in different machines. Do not use this option for file processing. 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
Warning: This implementation is only available from the next branch of the
upstream GNSS-SDR repository. It will be included in the next stable release.
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 |
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, this breaks the determinism provided by the GNU Radio scheduler, and different processing results can be obtained in different machines. Do not use this option for file processing. 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 |
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, this breaks the determinism provided by the GNU Radio scheduler, and different processing results can be obtained in different machines. Do not use this option for file processing. 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 |
enable_doppler_narrowing |
[true, false]: If set to true, when this channel is assisted with the Doppler of the same satellite already tracked in the GPS L1 C/A band (see GNSS-SDR.assist_dual_frequency_acq), the acquisition searches a single Doppler bin centered at the assisted value (plus one noise-reference bin) instead of sweeping the full grid, reducing the computational load and the acquisition time. If pfa is set, the detection threshold is recalibrated for the reduced number of cells in the search space. It defaults to false. This feature is only available in the next branch of the public repository and will be available in the next GNSS-SDR stable release. |
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 |
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, this breaks the determinism provided by the GNU Radio scheduler, and different processing results can be obtained in different machines. Do not use this option for file processing. It defaults to true. |
Optional |
enable_doppler_narrowing |
[true, false]: If set to true, when this channel is assisted with the Doppler of the same satellite already tracked in the GLONASS L1 C/A band (see GNSS-SDR.assist_dual_frequency_acq), the acquisition searches a single Doppler bin centered at the assisted value (plus one noise-reference bin) instead of sweeping the full grid, reducing the computational load and the acquisition time. If pfa is set, the detection threshold is recalibrated for the reduced number of cells in the search space. It defaults to false. This feature is only available in the next branch of the public repository and will be available in the next GNSS-SDR stable release. |
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 |
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]: 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_min |
Minimum 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 |
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 |
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 |
enable_doppler_narrowing |
[true, false]: If set to true, when this channel is assisted with the Doppler of the same satellite already tracked in the Galileo E1 band (see GNSS-SDR.assist_dual_frequency_acq), the acquisition searches a single Doppler bin centered at the assisted value (plus one noise-reference bin) instead of sweeping the full grid, reducing the computational load and the acquisition time. If pfa is set, the detection threshold is recalibrated for the reduced number of cells in the search space. It defaults to false. This feature is only available in the next branch of the public repository and will be available in the next GNSS-SDR stable release. |
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_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 |
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, this breaks the determinism provided by the GNU Radio scheduler, and different processing results can be obtained in different machines. Do not use this option for file processing. 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 |
enable_doppler_narrowing |
[true, false]: If set to true, when this channel is assisted with the Doppler of the same satellite already tracked in the GPS L1 C/A band (see GNSS-SDR.assist_dual_frequency_acq), the acquisition searches a single Doppler bin centered at the assisted value (plus one noise-reference bin) instead of sweeping the full grid, reducing the computational load and the acquisition time. If pfa is set, the detection threshold is recalibrated for the reduced number of cells in the search space. It defaults to false. This feature is only available in the next branch of the public repository and will be available in the next GNSS-SDR stable release. |
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 |
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, this breaks the determinism provided by the GNU Radio scheduler, and different processing results can be obtained in different machines. Do not use this option for file processing. 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 |
enable_doppler_narrowing |
[true, false]: If set to true, when this channel is assisted with the Doppler of the same satellite already tracked in the Galileo E1 band (see GNSS-SDR.assist_dual_frequency_acq), the acquisition searches a single Doppler bin centered at the assisted value (plus one noise-reference bin) instead of sweeping the full grid, reducing the computational load and the acquisition time. If pfa is set, the detection threshold is recalibrated for the reduced number of cells in the search space. It defaults to false. This feature is only available in the next branch of the public repository and will be available in the next GNSS-SDR stable release. |
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 |
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, this breaks the determinism provided by the GNU Radio scheduler, and different processing results can be obtained in different machines. Do not use this option for file processing. 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 |
enable_doppler_narrowing |
[true, false]: If set to true, when this channel is assisted with the Doppler of the same satellite already tracked in the BeiDou B1I band, or in the B1C band if no B1I channel tracks it (see GNSS-SDR.assist_dual_frequency_acq), the acquisition searches a single Doppler bin centered at the assisted value (plus one noise-reference bin) instead of sweeping the full grid, reducing the computational load and the acquisition time. If pfa is set, the detection threshold is recalibrated for the reduced number of cells in the search space. It defaults to false. This feature is only available in the next branch of the public repository and will be available in the next GNSS-SDR stable release. |
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 |
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, this breaks the determinism provided by the GNU Radio scheduler, and different processing results can be obtained in different machines. Do not use this option for file processing. 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 |
enable_doppler_narrowing |
[true, false]: If set to true, when this channel is assisted with the Doppler of the same satellite already tracked in the QZSS L1 C/A band (see GNSS-SDR.assist_dual_frequency_acq), the acquisition searches a single Doppler bin centered at the assisted value (plus one noise-reference bin) instead of sweeping the full grid, reducing the computational load and the acquisition time. If pfa is set, the detection threshold is recalibrated for the reduced number of cells in the search space. It defaults to false. This feature is only available in the next branch of the public repository and will be available in the next GNSS-SDR stable release. |
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
Warning: This implementation is only available from the next branch of the
upstream GNSS-SDR repository. It will be included in the next stable release.
This implementation searches for the data component of the B2a signal, using a
local replica of its primary ranging code. Since the primary code period is
\(1\) ms and the data component carries a \(5\)-chip secondary code, the
default coherent integration time of \(1\) ms avoids straddling secondary
code chip transitions; 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 |
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 |
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, this breaks the determinism provided by the GNU Radio scheduler, and different processing results can be obtained in different machines. Do not use this option for file processing. 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.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 |
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, this breaks the determinism provided by the GNU Radio scheduler, and different processing results can be obtained in different machines. Do not use this option for file processing. 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 |
enable_doppler_narrowing |
[true, false]: If set to true, when this channel is assisted with the Doppler of the same satellite already tracked in the Galileo E1 band (see GNSS-SDR.assist_dual_frequency_acq), the acquisition searches a single Doppler bin centered at the assisted value (plus one noise-reference bin) instead of sweeping the full grid, reducing the computational load and the acquisition time. If pfa is set, the detection threshold is recalibrated for the reduced number of cells in the search space. It defaults to false. This feature is only available in the next branch of the public repository and will be available in the next GNSS-SDR stable release. |
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.d_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 acquisition was assisted with a Doppler estimation obtained in another frequency band. This variable is only present in dumps generated by thenextbranch of the public repository and will be included in the next GNSS-SDR stable release.doppler_max: Maximum Doppler shift in the search grid.doppler_narrowed:1if the Doppler search was narrowed to a single bin by dual-frequency assistance (see theenable_doppler_narrowingparameter),0otherwise. In narrowed dumps,acq_gridhas only two columns (the assisted Doppler bin and a noise-reference bin), encoded withdoppler_maxset to0anddoppler_stepset to the configured maximum Doppler, so the Doppler of column \(i\) (starting at \(0\)) is always given bydoppler_center - doppler_max + doppler_step * i, in both full and narrowed dumps. This variable is only present in dumps generated by thenextbranch of the public repository and will be included in the next GNSS-SDR stable release.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_center variable (see above), the Doppler
axis becomes f = double(doppler_center) + (0:size(acq_grid, 2) - 1) *
double(doppler_step) - double(doppler_max), which is valid for both full and
narrowed grids. The scripts
utils/matlab/plot_acq_grid.m
and
utils/python/plot_acq_grid.py
provided with the source code automate this plotting 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. ↩