Ionospheric delay is one of the major sources of range and range-rate errors for global navigation satellite system (GNSS) positioning, navigation and timing (PNT) services. Generally, single-frequency GNSS receivers employ empirical models such as the Klobuchar model (1987) and the NeQuick model (Radicella and Nava 2010) to compensate for ionospheric delay, whereas dual-frequency receivers combine dual-frequency observations to correct the first-order ionospheric delay. These models assume the incoming signal to comprise a single-frequency tone and simply evaluate the center frequency ionospheric delay to replace the total group delay. In fact, different signal frequency components experience different delays due to the dispersive characteristics of the ionospheric medium, which introduces more severe distortions on wideband GNSS signals than on narrow band signals. On the other hand, wider signal root mean square (RMS) bandwidth is gradually being adopted for GPS modernization and emerging GNSS because of its higher code tracking accuracy and better anti-multipath and anti-interference performance. Therefore, the delay model that only considers the center frequency is not sufficient for high accuracy PNT applications, and the ionospheric dispersion effects on wideband signals should no longer be neglected, as in the narrow band case.

The ionosphere effect for general wideband signals was first studied in Christie et al. (1996). Gao et al. (2007) provided a method to simulate the effect of ionospheric dispersion on wideband GNSS signals. The dispersive ionosphere was found to result in severe deformations and fluctuations of the time domain signals, power loss, and asymmetry of the correlation function as well as carrier phase shift in the PLL output. The ionospheric dispersion effects with various total electron content (TEC) values and signal bandwidths were presented. It was suggested that the receiver applies appropriate compensation techniques to mitigate the wideband ionosphere effect. Yet, no corresponding design and implementation have been reported on this issue, and the dispersion effect on code tracking bias has yet to be evaluated.

It is the nonlinear and asymmetry phase response of the dispersive ionosphere that causes the deformations of wideband signals. Since an all-pass filter can delay different frequencies by different amounts while maintaining a constant magnitude response in the whole frequency band, it is often utilized for nonlinear phase compensation. The motivation is to pursue the digital phase equalization method to compensate the ionospheric dispersion-induced distortions of wideband GNSS signals, thus mitigating the corresponding pseudorange and carrier phase biases and improving the accuracy.

A number of realization methods and performance analyses of all-pass filters have been presented in the communication and signal processing fields. Lang and Laakso (1992) proposed a design method for an all-pass filter to approximate a given phase response based on the least-squares equation error (LSEE) criterion. Nguyen et al. (1994) used the eigen filter approach instead. The exact least-squares phase error is expressed via linearization to enable the eigen filter formulation. All-pass filters have been used in the music field (Jaffe and Smith 1983) to compensate for the dispersion of vibrating strings. Van Duyne and Smith (1994) proposed an efficient method of constructing the dispersion filter by cascading several first-order all-pass filters, which was later extended by Rauhala and Välimäki (2006). To obtain accurate dispersion simulation for piano strings, Rocchesso and Scalcon (1996) designed a high-order all-pass dispersion filter using the least-squares approach. Abel and Smith (2006) developed a nonparametric all-pass filter for matching a desired group delay, which was numerically robust and proved to outperform a previous closed-form design for dispersive string sound synthesis (Abel et al. 2010).

Two main contributions are presented. First, we further study the effect of ionospheric dispersion on code tracking bias by analyzing the delay locked loop (DLL) lock-point biases and S-curve biases (SCBs) under different early-minus-late (E-L) spacings and different TEC conditions, which have not been addressed before. Second, we propose an efficient digital delay-equalization all-pass filter to compensate the ionospheric dispersion-induced deformations of wideband GNSS signals, thus mitigating the corresponding biases and improving the accuracy of pseudorange and carrier phase measurements. The filter can be employed in a GNSS receiver before signal acquisition and tracking. The filter is constructed in cascaded biquad form as proposed in Abel and Smith (2006), Abel et al. (2010) based on the predicted/estimated TEC value. Furthermore, the impacts of TEC accuracy, filter order, and fraction parameter on the filter fitting error are explored. The effectiveness of the delay-compensation filter design is validated by comparing the signal waveform ripples, correlation loss and correlation peak distortion, code tracking bias as well as carrier phase bias with and without the equalization model. Both the code and the carrier tracking biases are reduced significantly by employing the filter. The SCB reduces from 0.16 to 0.061 m, and the carrier phase bias, from 13.47° to 0.22° for a TEC of 50 TECU (TEC units). Additionally, we use the receiver architecture embedding multi-channel all-pass filters with different preset TEC values to compensate TEC conditions, which exhibit large geographical and temporal variations.

The following section introduces the frequency-dependent group delay model and the nonlinear phase response of a dispersive ionosphere for wideband GNSS signals and analyzes the code tracking bias due to ionospheric dispersion under different TEC conditions. The section titled “Delay-compensation all-pass filter” presents the detailed design of an all-pass filter for ionospheric dispersion compensation and discusses its properties, which depend on three key parameters in the filter design. Section “Design example” demonstrates the effectiveness of this all-pass filter by comparing the signal waveform, correlation loss and peak asymmetry, code tracking bias, and carrier tracking bias. The last section provides conclusions and proposes future work.

Ionospheric dispersion effect simulation

The ionosphere is dispersive; the refractive index of the ionosphere is dependent on signal frequency. Higher frequency components of the signal propagate faster than lower frequency components. Consequently, different frequency components suffer different delays as they pass through the ionosphere. The ionosphere’s frequency-dependent group delay can be expressed as (Christie 1996)

$$\tau (f) = \frac{{k_{2} }}{{f^{2} }} + \frac{{k_{3} }}{{f^{3} }} + \frac{{k_{4} }}{{f^{4} }}$$

where f (Hz) is the frequency of the transmitted signals; k 2, k 3, k 4 are constants independent of frequency, among which k 2 is proportional to the TEC along the ray path from satellite to user, and k 3 and k 4 are the line integrals that include the local magnetic field in the integrations. Usually, the higher order terms are neglected, and the group delay τ (f) is simply modeled as

$$\tau (f) = \frac{{40.3\,{\text{TEC}}}}{{c \cdot f^{2} }}$$

where c (m/s) is the vacuum speed of light and TEC (electrons/m2) is the line integral of the free electron density along the direct ray path. Accordingly, the transfer function of the dispersive ionosphere can be expressed using a nonlinear phase model,

$$H_{\text{iono}} (f) = e^{ - j2\pi f \cdot \tau (f)} = e^{{ - j\frac{{80.6\pi {\text{TEC}}}}{c \cdot f}}}$$

For narrow band signals such as GPS L1 C/A BPSK-R(1), the delays of different frequencies within the signal bandwidth do not vary considerably; therefore, the signal can be regarded as a single-frequency tone represented by the center frequency. But for wideband GNSS signals such as Galileo E5 AltBOC(15,10), the ionospheric delay variations within the band are obvious and the signal distortion caused by ionospheric dispersion cannot be ignored. Figure 1 shows how the delay varies over the frequency band around the center frequency of Galileo E5 (1,191.795 MHz) with a TEC of 100 TECU. It is neither linear nor symmetric over the band. Considering a 92.07 MHz transmission bandwidth of the E5 signal, the lower end of the band has 2.33 m more ionospheric delay than the center frequency, whereas the higher end has 2.07 m less delay. The varying delay over the signal bandwidth brings signal distortions characterized by the waveform deformation, power loss of the correlation peak, phase shift in the PLL output, and correlation peak asymmetry (Gao et al. 2007).

Fig. 1
figure 1

Ionospheric delay variation with respect to frequency

In addition, the asymmetry of the correlation function leads to a lock-point (zero-crossing point) bias of the S-curve (the DLL discriminator output versus code phase offset), which means that the DLL locks at a point where the local code phase has a deviation with respect to the incoming code phase.

Taking the Galileo E5 signal performance analysis as an example, the coherent dual-band receiver architecture described in Margaria (2007) is considered here because it processes the entire E5 band by using the combined E5a/E5b complex correlator to achieve better performances than the single-band and separate dual-band receivers. The S-curve of an early-minus-late envelope discriminator of the coherent dual-band receiver can be expressed as

$${\text{SCurve}}\,(\varepsilon ,\delta ) = {\text{real }}\left[ {\rm CCF\left( {\varepsilon - \frac{\delta }{2}} \right)} \right] - {\text{real}}\left[ {{\text{CCF}}\left( {\varepsilon + \frac{\delta }{2}} \right)} \right]$$

where real [x] refers to the real part of the (complex) variable x, δ (chip) is the E-L spacing of the correlator, ɛ (chip) is the code phase bias, and CCF[] is the normalized cross correlation function of the input baseband signal \(s_{\text{BB - In}} (t)\) and the local reference code signal \(s_{\text{Ref}} \left( t \right)\) of the receiver correlator,

$${\text{CCF(}}\varepsilon )= \frac{{\int\limits_{0}^{T} {s_{\text{BB - In}} (t) \cdot s_{\text{Ref}}^{*} (t - \varepsilon ){\text{d}}t} }}{{\sqrt {\left[ {\int\limits_{0}^{T} {\left| {s_{\text{BB - In}} (t)} \right|^{2} {\text{d}}t} } \right] \cdot \left[ {\int\limits_{0}^{T} {\left| {s_{\text{Ref}} (t)} \right|^{2} {\text{d}}t} } \right]} }}$$

where T is the integration period. Since all of the useful information, including the complex envelope and the carrier phase of the incoming band-pass signal, are entirely contained in the equivalent base-band signal \(s_{\text{BB - In}} \left( t \right)\), we need not include the carrier component in the following simulation study. Additionally, the noise component is excluded from the input baseband signal in order to clearly identify the effects of ionospheric dispersion.

The same signal distortion may lead to different code tracking biases between standalone and differential receivers. For a standalone receiver, the code tracking bias is determined by the lock-point bias \(\varepsilon_{\text{bias}} \left( \delta \right), \delta\) of the S-curve, which is dependent on δ and satisfies

$${\text{SCurve}}\,\left( {\varepsilon_{\text{bias}} (\delta ), \delta} \right) = 0$$

The corresponding code tracking bias ξ (m) is calculated by

$$\xi = \left| {\varepsilon_{\text{bias}} (\delta )} \right| \cdot T_{c} \cdot c$$

where T c is one code chip period. In contrast, for a differential system, the range of the code tracking bias can be described by the SCB as

$${\text{SCB}} = \mathop {\hbox{max} }\limits_{\delta } \left( {\varepsilon_{\text{bias}} (\delta )} \right) - \mathop {\hbox{min} }\limits_{\delta } \left( {\varepsilon_{\text{bias}} (\delta )} \right)$$

The following simulation studies the code tracking bias induced by the ionospheric dispersion on the Galileo E5 signal using the equivalent low-pass expressions following the method of Gao et al. (2007). The baseband AltBOC(15,10) signal is first generated with a sampling frequency much higher than the Nyquist rate and transformed into the frequency domain by using the Fast Fourier Transform (FFT). Then, each frequency component suffers a corresponding phase shift according to (3) with a TEC of 100 TECU and f replaced by f + f 0 (f 0 is the center frequency of the bandpass signal). Next, the frequency-domain signal is converted back into the time domain by using the Inverse Fast Fourier Transform (IFFT) to obtain the post-dispersion baseband signal. The baseband signals before and after dispersion are subsequently cross-correlated according to (5). Figure 2 illustrates the S-Curves with an E-L spacing of 0.1 subcarrier periods, namely 0.06667 PRN code chips. In the figure, the red line “iono-f0” denotes the case where the signal bandwidth is ignored by assuming that all frequency components have the same ionospheric delay at the center frequency f 0, whereas the blue line “wideband iono” denotes the case where the different frequency components of the wideband signal have different delays due to ionospheric dispersion. It can be seen that the S-curve suffers significant deformations and a large lock-point bias due to ionospheric dispersion.

Fig. 2
figure 2

S-curve variations with (blue line) or without (red line) ionospheric dispersion

Figure 3 (top) simulates the lock-point bias variation with the E-L spacing. Limited by the autocorrelation characteristic of the E5 signal, it is recommended that the E-L spacing of a wideband-matched receiver be <0.3 PRN code chips. A typical E-L spacing of 0.0667 PRN code chips introduces a 0.22 m difference in the lock-point bias between the dispersive and assumed non-dispersive ionosphere, and the SCB increases from 0.06 to 0.42 m due to the dispersion effect. This order of magnitude is significant compared with the Cramer-Rao lower bound of the code noise of the AltBOC(15,10) signal. For instance, the bound is 0.008 m for a 51 MHz receiver reference bandwidth and a −152 dBW received signal power (Hein et al. 2002). Due to the CCF asymmetry, the lock-point bias exhibits a fluctuation with respect to the E-L spacing.

Fig. 3
figure 3

Dispersion effect on lock-point bias. Top TEC = 100 TECU. Bottom TEC ranging from 10 to 300 TECU

In general, it is expected that the lock-point bias will experience wider fluctuations with larger TEC values. However, this is not always the case in simulation results using a sampling rate as high as 2 GHz. This high sampling rate is used so as to not miss more detailed distortions. Figure 3 (bottom) plots the lock-point bias curves under different TEC values with the corresponding single-tone ionospheric delays eliminated to distinguish the effect of ionospheric dispersion from that of single-tone ionospheric delay. It is worth noting that the lock-point biases with narrow E-L spacing become apparently larger for a modest TEC around 160 TECU. A dispersion-induced lock-point bias as large as −1.29 m can occur at very narrow correlator spacing for a TEC of 160 TECU.

Figure 4 (top) simulates the normalized CCF peaks with TEC ranging from 10 to 300 TECU. It can be seen that the correlation peaks under 140–180 TECU suffer more severe deformations and asymmetries than the other cases. This implies that the AltBOC(15,10) waveform suffers larger dispersion effects for these modest TEC values than lower and higher TEC values, on the average over one PRN code period. Consequently, the SCBs do not simply increase monotonically as the TEC value increases, as shown in Fig. 4 (bottom). In accordance with Fig. 3 (bottom), the SCBs increase as the TEC increases from 120 to 160 TECU and decrease as the TEC increases from 160 to 200 TECU, forming a peak of 1.35 m at around 160 TECU, indicating that the DLL lock-point biases of the dual-band coherent receiver for the AltBOC(15,10) suffer the most severe fluctuations with respect to different E-L spacings for this modest TEC value. Figures 3 (bottom) and 4 provide an example of how different TEC values and different correlator E-L spacings affect the code tracking bias.

Fig. 4
figure 4

Normalized CCFs with different TECs (top), and SCB versus TEC with E-L spacing within 0.3 chips (bottom)

Delay-compensation all-pass filter

As mentioned above, the ionosphere group delay dispersion can cause non-negligible power loss and significant code tracking and carrier tracking bias for wideband GNSS signals. This section is aimed at finding a delay-equalization approach to compensate the corresponding signal distortion and improve the performance of the receiver. In signal processing, an all-pass filter can be used to compensate for undesired phase shifts that arise in the system because it can pass all the frequency components equally in magnitude, but differently in phase. Here, an all-pass filter is employed to adjust the relative phases of different frequencies to achieve a constant group delay.

First-order all-pass filter properties

Before describing the design procedure of the delay-equalization all-pass filter, this subsection first reviews properties of a first-order all-pass filter (Manolakis and Ingle 2011).

The first-order all-pass filter has a pole-zero pair in the z-plane. When the pole exists at a normalized radian frequency Ω with a radius r, a complementary zero exists at the same frequency Ω, but with the inverse radius 1/r. So, the first-order all-pass transfer function can be expressed as

$$H(z) = \frac{{ - re^{ - j\varOmega } + z^{ - 1} }}{{1 - re^{j\varOmega } z^{ - 1} }}$$

To ensure the causality and stability of an all-pass filter, the pole must be inside the unit circle with the zero outside the unit circle.

Accordingly, the magnitude and phase responses of this first-order all-pass filter are given by Eqs (10) and (11), respectively. By taking the derivative of the phase with respect to frequency ω, we can obtain the group delay responses of the first-order all-pass filter, as shown in (12) (Manolakis and Ingle 2011; Abel and Smith 2006),

$$\left| {H(e^{j\omega } )} \right| = 1$$
$$\angle H(e^{j\omega } ) = - \omega - 2\tan^{ - 1} \frac{r\sin (\omega - \varOmega )}{1 - r\cos (\omega - \varOmega )}$$
$$\tau (\omega ) = - \frac{{{\text{d}}\angle H(e^{j\omega } )}}{{{\text{d}}\omega }} = \frac{{1 - r^{2} }}{{1 + r^{2} - 2r\cos (\omega - \varOmega )}}$$

where ω ∊ [−π, π]. Thus, the group delay τ(ω) is symmetric in frequency around the pole frequency Ω with a maximum delay of

$$\tau_{\hbox{max} } (\omega ) = \frac{1 + r}{1 - r}$$

occurring at the pole frequency Ω, and a minimum delay of

$$\tau_{\hbox{min} } (\omega ) = \frac{1 - r}{1 + r}$$

occurring at the frequency Ω + π (Abel and Smith 2006).

As the group delay is the negative derivative of the phase response with respect to frequency, its integral around the unit circle is 2π, regardless of the pole position inside the unit circle:

$$\int_{0}^{2\pi } {\tau (\omega )d\omega = \varphi (0) - \varphi (2\pi )} = 2\pi$$

This property can be employed in the design of an all-pass filter to match a given group delay response (Abel and Smith 2006).

Design of a delay-compensation all-pass filter

In order to compensate the group delay distortion caused by ionospheric dispersion as shown in (2), an anti-dispersion all-pass filter can be constructed to approximate the following group delay response:

$$\tau_{\text{comp}} (f) = C - \frac{{40.3{\text{TEC}}}}{{c \cdot f^{2} }}$$

where C is an arbitrary delay offset. Adding this constant value to the compensation group delay has no effect on the phase response of the delay-compensation filter. The constant introduces a time delay to all frequencies without phase distortion in the overall frequency band. In practice, the constant ensures that the group delay of the filter remains above zero for the frequency approaching the required lower band edge. A baseband filter with the following group delay can be used to further conveniently describe the compensation process:

$$\tau_{\text{comp}} (f) = C - \frac{{40.3{\text{TEC}}}}{{c \cdot (f + f_{m} )^{2} }}$$

where f m is the lowest frequency. For example, the Galileo E5 AltBOC(15,10) signal is band-limited with a center frequency of 1,191.795 MHz. To cover a bandwidth of B = 200 MHz, the lowest frequency is f m  = 1,091.795 MHz and the highest frequency is 1,291.795 MHz.

The nonparametric all-pass filter design method presented in Abel and Smith (2006), Abel et al. (2010) overcomes the numerical difficulties and produces a robust filter in cascaded biquad form to match a given group delay characteristic. Based on this method, the design procedure of our delay-compensation all-pass filter is given as follows:

  1. 1.

    Add a constant value C to the desired frequency-dependent group delay in (16), which makes the proposed filter practical to achieve. Moreover, C is chosen to yield the desired all-pass filter order N. The desired group delay is divided into N frequency-dependent sub-bands with a constant area of 2π.

  2. 2.

    Start from zero frequency and find a first-order all-pass filter H n (z) to fit each sub-band.

  3. 3.

    Cascade each sub-band first-order filter to form the overall all-pass filter,

    $$H\left( z \right) = \prod\limits_{n = 1}^{N} {H_{n} \left( z \right)}$$

Thereby causing the filter in this cascaded form to fit the desired group delay response over the whole signal band.

The pole location for each 2π-area sub-band can be determined by approximating the group delay in that band. If given the nth sub-band lower edge f n−1 and the upper edge (the following sub-band lower edge) f n , the integral of the group delay around the unit circle is

$$\int_{{f_{n - 1} }}^{{f_{n} }} {\left( {C - \frac{{40.3{\text{TEC}}}}{{c \cdot (f + f_{m} )^{2} }}} \right)df} = 1$$

Thus, f n can be calculated using the positive root of the above equation. It is worth noting that in the second step of the design procedure above, the initial sub-band lower edge f 0 is set to the zero frequency. Then, all the sub-band edges can be obtained with the pole frequency being the center point of each sub-band,

$$\varOmega_{n} = \pi \left( {f_{n - 1} + f_{n} } \right)$$

According to Abel and Smith (2006), the pole radius r is decided so that the group delay at either sub-band edge is a fraction β of the peak group delay,

$$\tau \left( {f_{n - 1} } \right) = \tau \left( {f_{n} } \right) = \beta \mathop {\hbox{max} }\limits_{{f_{n - 1} \le f \le f_{n} }} \tau \left( f \right)$$

This provides a trade-off between smoothness of the fit to the desired group delay and its ability to follow small-bandwidth features. Combining (12) and (13), the pole radius r can be given by

$$r_{n} (\beta ) = \eta_{n} - \sqrt {\eta_{n}^{2} - 1}$$


$$\eta_{n} = \frac{{1 - \beta \cos \Delta_{n} }}{1 - \beta },\quad \Delta_{n} = \pi \left( {f_{n} - f_{n - 1} } \right)$$

Each sub-band should be narrow enough, and a certain filter order N is necessary to capture the behavior of the desired group delay.

The group delay \(\tau_{\text{comp}} (\omega )\) is even in frequency for real filters. This results in first-order all-pass sections appearing as complex conjugate pairs, which may be combined to form biquads having real coefficients (Abel and Smith 2006). If assigning the pole for section n at \(z_{{n\_{\text{pole}}}} = r_{n} e^{{j\varOmega_{n} }}\), and the corresponding complex conjugate pole at \(z_{{n\_{\text{pole}}}}^{*} = r_{n} e^{{ - j\varOmega_{n} }}\), the biquad section is expressed as

$$\begin{gathered} H_{n} (z) = \left( {\frac{{ - z_{{n\_{\text{pole}}}}^{*} + z^{ - 1} }}{{1 - z_{{n\_{\text{pole}}}} z^{ - 1} }}} \right)\left( {\frac{{ - z_{{n\_{\text{pole}}}} + z^{ - 1} }}{{1 - z_{{n\_{\text{pole}}}}^{*} z^{ - 1} }}} \right) \hfill \\ = \frac{{r_{n}^{2} - \left( {2r_{n} \cos \varOmega_{n} } \right)z^{ - 1} + z^{ - 2} }}{{1 - \left( {2r_{n} \cos \varOmega_{n} } \right)z^{ - 1} + r_{n}^{2} z^{ - 2} }} \hfill \\ \end{gathered}$$

When the N biquad sections of order 2 are cascaded, the overall all-pass filter is of order 2N. The transfer function of the 2Nth order all-pass filter can be found in Nguyen et al. (1994), and the group delay is given by

$$\tau_{c} \left( \omega \right) = \sum\limits_{n = 1}^{N} {\tau_{n} (\omega )} = \sum\limits_{n = 1}^{N} {\left( {\frac{{1 - r_{n}^{2} }}{{1 + r_{n}^{2} - 2r_{n} \cos \left( {\omega - \varOmega_{n} } \right)}} + \frac{{1 - r_{n}^{2} }}{{1 + r_{n}^{2} - 2r_{n} \cos \left( {\omega + \varOmega_{n} } \right)}}} \right)}$$

where τ n (ω) is the sum of two conjugate group delay responses constructing the basic biquad of the all-pass filter.

Discussion of the all-pass filter

There are three key parameters for designing a delay-compensation all-pass filter: The TEC value determines the desired group delay response, whereas the number of biquad sections N and the overlap parameter β can be adjusted to obtain a better fit to the desired response. This subsection studies the filter performance with different N and β designs and different TEC conditions, and the effects of inaccurately estimated TEC values will be addressed in the next section. The filter performance can be evaluated by the mean square error (MSE) of its group delay with respect to the desired group delay,

$$\tau_{\text{MSE}} = \frac{1}{2\pi B}\int_{0}^{2\pi B} {\left( {\tau_{c} \left( \omega \right) - \tau_{\text{comp}} \left( \omega \right)} \right)^{2} d\omega }$$

where B is the signal bandwidth.

A certain number of 2π-area frequency sub-bands are needed to capture the shape of the desired group delay. The more sub-bands are used, the more accurate a fit to the desired group delay is achieved. However, it can be seen from (20) and (21) that the pole radius r gets closer to 1 with N increasing. When N is too large, the poles and zeros can get close enough to the unit circle in the complex plane, leading to instability of the all-pass filter. In addition, a larger N consumes more computational resources. Meanwhile, the parameter β controls the widths of the group delay peak in each sub-band, determines the extent to which successive band group delays overlap, and affects the smoothness of the fitted group delay. A larger β can reduce the ripple of the combined group delay, but when β is close to one, the rapid change of the desired group delay cannot be followed by the wideband biquad sections. Therefore, the design of β and N should provide a trade-off among accuracy, efficiency, cost, and stability.

The curve of the desired ionospheric group delay versus frequency becomes sharper as the TEC increases. Figure 5 presents the variation of the MSE of the fitted group delay with respect to β and N with TEC values of 10, 50, and 100 TECU, respectively. In each subplot, the MSE decreases as N increases. However, this trend becomes unobvious for large N. Additionally, as shown in the second and third panel of Fig. 5, excessively large N leads to instability of the all-pass filter. The change of MSE versus N can be seen more clearly in bottom panel of Fig. 5 with a fixed value of β = 0.85. Another phenomenon is that the lower bound of the MSE of the fitted group delay increases as the TEC increases. Smaller β is expected to improve the MSE for larger TEC, and a range of β ∊ [0.75, 0.9] was seen to provide a favorable trade-off in the three cases. Figure 6 compares the fitted group delays with different β values when N is fixed at 23 and TEC at 50 TECU. A β value of 0.65 (in black) leads to non-negligible ripples of the fitted group delay, whereas a smoother fitted group delay is obtained with a larger β of 0.85 (in blue), but a slightly larger deviation in the low end of frequency band.

Fig. 5
figure 5

MSE of group delay versus N and β with different TECs (top left 10 TECU, top right 50 TECU, bottom left 100 TECU), and MSE of group delay versus N with β = 0.85 (bottom right)

Fig. 6
figure 6

Ideal group delay (red line) and its all-pass filter approximation with β = 0.65 (black line) and with β = 0.85 (blue line)

Design example

Based on the above-detailed analysis, the fit accuracy of the filter depends on the values of N, β, and TEC. For a TEC of 50 TECU, as discussed above, we chose N = 23 and β = 0.85 to construct the delay-compensation all-pass filter.

Figure 7 (top) shows the pole-zero pairs in the z-plane. All of the poles are inside the unit circle, whereas the zeros are outside the unit circle, which guarantees the stability of this all-pass filter. Figure 7 (bottom) illustrates the magnitude response and the group delay response. Note that the magnitude response is within the range of ±9e–9 dB, ideally about 0 dB corresponding to a ratio of unity and thus is negligible for most applications. The group delay presents the opposite characteristic of the ionosphere group delay.

Fig. 7
figure 7

Design of the delay-compensation all-pass filter. Top pole/zero pairs. Middle magnitude response. Bottom group delay response

Figure 8 (top) illustrates the waveforms of the real part of the ideal AltBOC(15,10) baseband signal (in green) and the ionospheric dispersion-deformed signal (in black), whereas Fig. 8 (bottom) shows the waveform after using the all-pass filter to compensate for the group delay (in black). It is clear that the dispersive ionosphere introduces a waveform fluctuation and a corresponding time delay, and both of which are significantly reduced by the filter.

Fig. 8
figure 8

Real part of time domain Galileo E5 signal. Top with 50-TECU ionospheric dispersion. Bottom after using the delay-compensation all-pass filter

Figure 9 compares the correlation functions with/without the ionospheric dispersion in the top panel and after using the delay-compensation all-pass filter in the bottom panel. In Fig. 9, the red lines indicate the ideal correlation function without any ionospheric dispersion. The black line in Fig. 9 (top) shows the correlation peak delay and deformation caused by the ionospheric dispersion. The peak is delayed by about 0.5 chips, and the correlation loss is around 1.64 dB. In addition, the dispersive ionosphere creates the imaginary part in the correlation function as shown by the green line. However, as seen in Fig. 9 (bottom), the correlation function deformation is significantly mitigated by the delay-compensation all-pass filter. The peak delay and the imaginary part are almost completely eliminated, and the correlation loss is reduced to 0.02 dB.

Fig. 9
figure 9

Correlation function of Galileo E5 signal. Top with 50-TECU ionospheric dispersion. Bottom after using delay-compensation all-pass filter

Figure 10 provides the comparison of the code loop lock-point biases caused by the ionospheric dispersion (red solid line) and after utilizing the delay-compensation all-pass filter (black dashed line). Note that the black and red axes have the same span. After applying delay-compensation all-pass filter, the code tracking bias (black dashed line) shows much smaller variation that the red solid line that is without delay compensation. According to Eq. (8), the SCB is reduced from 0.16 to 0.061 m by the all-pass filter.

Fig. 10
figure 10

Lock-point biases. Red with 50-TECU ionospheric dispersion. Black after using delay-compensation all-pass filter

Moreover, the carrier phase tracking bias can be calculated by

$$\Delta \phi \left( {\varepsilon_{m} } \right) = \tan^{ - 1} \left( {\frac{{\text{imag} \left( {\text{CCF} (\varepsilon_{m} )} \right)}}{{\text{real} \left( {\text{CCF} (\varepsilon_{m} )} \right)}}} \right)$$

where ɛ m is the delay where the real part of the complex correlation function reaches its maximum value. When TEC = 50 TECU, the carrier phase bias caused by dispersion is 13.47° and is reduced to 0.22° by utilizing the delay-compensation all-pass filter.

Since the TEC varies geographically and temporally and from one satellite to another, assuming a fixed TEC setting for the all-pass filter will lead to under- or over-compensation of the satellite signal. Figure 11 provides the tracking performance using an all-pass filter with fixed design parameters (TEC = 50 TECU, N = 23, β = 0.85) under the assumption of different TEC values for each dispersed input signal. When the real TEC is exactly 50 TECU, the all-pass filter provides excellent compensation, as discussed above. As shown in the top left panel in Fig. 11, if the real TEC is lower than 50 TECU, the all-pass filter will over-compensate the phase of wideband GNSS signals. However, above a certain TEC level, the all-pass filter still reduces the carrier phase shift. In this case, even if the TEC is as low as 20 TECU, the tracking performance with the given delay compensation is still better than that without delay compensation. When the real TEC is lower than some threshold between 10 TECU and 20 TECU, the over-compensation of the phase by the all-pass filter would make the tracking even worse than that only caused by ionospheric dispersion. On the other hand, for TEC values ranging from 50 TECU up to 200 TECU, the all-pass filter under-compensates the phase distortion and the tracking biases can be reduced. In this case, the tracking bias is positively correlated with the TEC value, increasing as the TEC increases. Generally speaking, one all-pass filter can be designed to reasonably compensate the phase distortion caused by a certain range of TEC values, according to the requirements on receiver tracking accuracy. In this design example, the all-pass filter with a 50 TECU presetting provides appropriate phase compensation for incoming TEC’s ranging from 30 TECU to 70 TECU, with a residual carrier phase shift of <5°, a correlation loss less than 0.7 dB, a residual SCB <0.21 m, and a residual DLL lock-point bias <5 m for a 0.3 chip E-L spacing (noting that this bias includes the residual ionospheric delay due to the TEC error), as shown in the top left, top right, bottom left, and bottom right panel in Fig. 11, respectively. Therefore, multiple parallel channels of all-pass filters in the GNSS receiver can satisfy the phase compensation of any visible satellite, each with a unique corresponding TEC. For instance, the all-pass filters can be set up with a 15 TECU presetting to compensate real TEC’s ranging from 10 to 20 TECU or less. The number of parallel channels needed depends on the range of TEC variation and the tracking accuracy requirements.

Fig. 11
figure 11

Tracking performances versus TEC before (red stars) and after (black squares) using delay-compensation all-pass filter with fixed parameters (TEC = 50 TECU, N = 23, β = 0.85). Top left carrier phase shift. Top right correlation loss. Bottom left S-curve bias. Bottom right lock-point bias


The ionospheric dispersion effects on wideband GNSS signals have been discussed with a focus on the code tracking bias. The simulation results of the AltBOC(15,10) signal show that (1) under a TEC of 100 TECU, the SCB reaches 0.42 m due to the dispersion, and the code loop lock-point bias increases by 0.22 m with a receiver E-L spacing of 0.0667 chips; (2) a dispersion-induced lock-point bias as large as −1.29 m can occur at very narrow correlator spacing for a TEC of 160 TECU; and (3) the SCBs do not simply increase monotonically as the TEC value increases, forming a peak of 1.35 m at around 160 TECU.

A delay-compensation all-pass filter is developed to eliminate the wideband GNSS signal deformations caused by ionospheric dispersion. The filter can be implemented in cascaded biquad form with its pole-zero pairs in the z-plane and the magnitude and group delay response of the all-pass filter determined very efficiently. The MSE between the fitted filter group delay and the desired group delay can be minimized by adjusting the filter order N and the smoothing parameter β according to the estimated TEC value. In the design example for the AltBOC(15,10) signal with a TEC of 50 TECU, the simulation results demonstrate that the designed all-pass filter can effectively compensate the nonlinear group delays caused by the ionospheric dispersion over a wide frequency band. The time domain ripples, correlation loss, and correlation peak deformations are obviously mitigated. More importantly, the code tracking bias and carrier tracking bias are significantly reduced. Future work will focus on improving the accommodation of severely varying TEC values through appropriate receiver configuration and filter algorithm optimization.