
GNSS Solutions • July/August 2015
Can you list all the properties of the carriersmoothing filter?GNSS Solutions” is a regular column featuring questions and answers about technical aspects of GNSS. Readers are invited to send their questions to the columnist, Dr. Mark Petovello, Department of Geomatics Engineering, University of Calgary, who will find experts to answer them. mark.petovello@ucalgary.ca
Share via: Slashdot Technorati Twitter Facebook Q: Can you list all the properties of the carriersmoothing filter? A: Carriersmoothing filters, also known as Hatch filters, are commonly used to reduce (“smooth”) the noise and multipath errors in pseudorange measurements by exploiting the highprecision relative distance information from carrier phase measurements. However, carriersmoothing filters operate on more than just noise and multipath, and this article summarizes the response of such filters to all relevant inputs. The GNSS carriersmoothing filter is governed by the following finite difference equation Equation (1) (see inset photo, above right, for article equations) for n>0 where r_{sm}[n] is the filter output at the nth epoch, whereas r_{c}[n] and r_{p}[n] are the code and phase pseudoranges, respectively. For the initial condition when n = 0, r_{sm}[n]= r_{c}[n]. In this article we will analyze the case in which parameter M, which relates to the bandwidth of the filter (larger M gives more smoothing), is constant. Figure 1 (for all figures and tables, please see the photo at the top of this article) shows a block diagram of the carriersmoothing system. We use the following fundamental signals: the impulse signal δ[n]=1 for n = 0 and 0 for n ≠ 0, and the step signal u[n]=1 for n ≥ 0 and 0 for n < 0. The output of the block with transfer function z^{1} is x[n1] when the input is x[n]. Taking into account the main errors, the code pseudorange can be written as r_{c}[n] = r[n] + c_{S}[n] + c_{R}[n] + T[n] + I[n] + w_{c}[n] (2) where r[n] is the true range between the satellite and the GNSS receiver, c_{S}[n] is the error due to the bias of the satellite clock, c_{R}[n] is the error due to the bias of the receiver clock, T[n] is the error due to the troposphere delay, I[n] is the error due to the ionosphere delay, w_{c}[n] is the noise due to the receiver DLL (delay locked loop) jitter due to thermal noise and noiselike multipath. All the quantities are measured in meters. The phase pseudorange can be written as r_{p}[n] = r[n] + c_{S}[n] + c_{R}[n] + T[n] + I[n] + N[n]λ + w_{p}[n] (3) where N[n] is the integer ambiguity, λ is the wavelength, and w_{p}[n] is the noise due to the receiver PLL (phase locked loop) jitter plus the effect of multipath. The integer ambiguity should be constant N[n]=N_{0} during the satellite visibility, but we consider here that cycle slips may occur and therefore the integer ambiguity becomes a timevarying signal. In general, the product of the carrier wavelength and the integer ambiguity, λN[n], can be written as Equation (4) where n_{k} > 0 is the discretetime at which the kth cycle slip event occurs, d_{k} the number of cycles in the slip (integer, positive or negative), N_{c.s.} is the number of cycle slip events in the observation time. Parameter N_{0} is the value of N[n] at n = 0, which can be set equal to zero, since it cancels out in (1) for n>0. Both pseudoranges have a common term s[n] = r[n] + c_{s}[n] + c_{R}[n] + T[n]. They also have the term I[n] with opposite sign, and each one has its own noise component (w_{p}[n] and w_{c}[n]), which are statistically independent. In the following sections, we analyze the outputs of the carriersmoothing system when one and only one of the various components is present. The total system output is then given by the sum of all the individual outputs, thanks to the system’s linearity. Tables 1–3 list all the relevant formulas and figures. Transfer functions are identified as H_{x}(z) (z complex number), impulse responses as h_{x}[n] (n integer), step responses as u_{x}[n] where x specifies the considered component. In the tables, H_{x}(f) is defined as H_{x}(f) = H_{x}(e^{j}^{2πf}) where f is the normalized frequency; the true frequency is f´ = f / T (in hertz) where T is the time interval between two subsequent epochs.
Common Component Equation (5) The second subsystem is instead an infinite impulse response (IIR) filter with the following transfer function Equation (6) and thus, the transfer function and impulse response of the entire system with input s[n] are, respectively, H_{s}(z) = H_{FIR}(z)H_{IIR}(z) =1, h_{s}[n] = δ[n] (7) as also reported in (20) and (21) of Table 1. Thus, we have r_{sm,s}[n] = s[n] * h_{s}[n] = s[n], which means that the true range, the troposphere delay, and the terms due to the clock bias are present without alterations at the output of the filter.
Initial Condition Equation (8) with E_{i.c.} being the total energy of h_{i.c.}[n] for n → ∞. The impulse response reaches 98 percent of its total energy after approximately 2M samples. We can therefore state that, according to the 98 percent criterion, the transient ends at the discrete time 2M.
Cycle Slip Equation (9) The figure on the right of (31) in Table 2 shows the step response for M=30 and 100: as M increases, the coefficient gets closer to 1, and the duration of r_{sm,c.s}[n] increases. Using the 98 percent criterion, the transient is over 2M samples after the occurrence of the cycle slip.
Ionosphere Component Equation (10) while the second filter is again the same IIR filter of Figure 2 described by equation (6). Therefore, the transfer function for the ionosphere component I[n] is H_{ion}_{o}(z) = H_{FIR,ion}_{o}(z)H_{IIR}(z), given in (22) of Table 1. Equation (25) in Table 1 gives the corresponding impulse response h_{iono}[n], with plots for M=30 and 100 on its right. Then the carriersmoothing filter output due to the ionosphere can be written as r_{sm}_{,I}[n] = I[n]*h_{iono}[n] (11) which unfortunately does not provide much information; so, some approximations are necessary. Filter H_{ion}_{o}(z) has a zero, (M1)/(M2), and a pole, (M1)/M, very close to each other. The system then tends to behave as an allpass filter, as shown in the figure on the right of (23) in Table 1, where the modulus of the transfer function H_{ion}_{o}(f) = H_{ion}_{o}(exp(j2πf)) is plotted versus the normalized frequency f. The group delay of the system is defined as Equation (12) where φ_{iono}(f) is the phase of H_{ion}_{o}(f), shown in the figure on the right of (24) in Table 1. We can show that, for small values of f, Equation (13) having defined a=(M1)/(M2) and b=(M1)/M. In nominal conditions, the ionosphere component I[n] changes slowly, which means that its bandwidth is very small, and we can approximate the transfer function in the frequency domain as H_{ion}_{o}(f) ⋍ M_{iono} exp[−j2πτ_{i} f] where M_{iono} = 1 is the magnitude of H_{ion}_{o}(f) at f = 0, and τ_{i} is the group delay θ_{iono}(f) at f = 0: Equation (14) Then, for a sufficiently slow ionosphere component I[n], the output of the carriersmoothing filter is approximately equal to r_{sm,I}[n] I[n  2(M1)] with a delay τ_{i} = 2(M1), which decreases as M decreases.
Noise Components Equation (15) Code Pseudorange Noise. Code pseudorange noise generates an output process r_{sm,c.n.}[n] which is obtained by using w_{c}[n] as input of the filter with impulse response h_{c}[n]= h_{IIR}[n]/M. Using (15) and the total energy (obtained from (8) for n → ∞) we get the output variance σ^{2}_{c,out}: Equation (16) where σ_{c}^{2} is the variance of w_{c}[n]. The figure on the right of (32) in Table 3 shows how σ^{2}_{c,out} decreases to zero as M increases. This is the “smoothing” aspect of the filter. Phase Pseudorange Noise. Phase pseudorange noise generates an output process r_{sm,p.n.}[n] which is obtained by using w_{p}[n] as input of the filter with impulse response h_{p}[n] = (M1){h_{IIR}[n]h_{IIR}[n1]/M}, which can be written as follows: Equation (17) where σ_{p}^{2} is the variance of w_{p}[n]. The figure on the right of (33) in Table 3 shows how σ^{2}_{p,out} increases with M with an asymptotic value equal to σ_{p}^{2}, which means that the system tends to behave as an allpass filter as M increases (although since σ_{p} is typically much smaller than σ_{c}, this is not a major concern).
Summary of the Results r_{sm}[n] = s[n] + r_{sm,i.c}[n] + r_{sm,c.s}_{.}[n] + r_{sm,c.n.}[n] + r_{sm,p.s}[n] + r_{sm,I}[n] (18) Table 1 lists the results valid for the common and ionosphere components s[n] and I[n]. Table 2 refers to effects due to the initial condition and the cycle slips. Table 3 summarizes the results obtained for the noise and multipath inputs w_{c}[n] and w_{p}[n]. On the one hand, we see that larger values of M decrease the output noise variance due to code pseudorange, but on the other hand these larger values increase the duration of transients in the presence of cycle slips; so, a compromise must be found. The total noise variance at the output of the carriersmoothing filter is Equation (19) With this value of M, the noise variance at the output of the smoothing filter is equal to 2σ_{p}^{2} and the transient durations are reasonably short. However, if cycle slips are frequent, then transients are the dominating error and M should be chosen, taking into consideration the probability and magnitude of undetectable cycle slips. Copyright © 2018 Gibbons Media & Research LLC, all rights reserved. 
