Now what's tomorrow's challenge?
APN-014 Rev 1 November 15, 1997
THE CSMOOTH COMMAND - PRELIMINARY
INTRODUCTION
The purpose of this paper is to provide insight regarding the effects of the CSMOOTH command
on the operation of a NovAtel GPS receiver. The CSMOOTH command is designed to allow the
user to control the degree to which carrier phase smoothing is applied to the pseudorange
measurements of the receiver.
Carrier phase smoothing is a process within a GPS receiver that combines the absolute but noisy
pseudorange measurements with the accurate but ambiguous carrier phase measurements to
obtain a good solution without the noise inherent in pseudorange tracking. Basically, a phase
smoothing filter will start with raw pseudorange measurements to establish absolute position.
Progressively, more weight will be placed on the carrier phase information and less on the raw
pseudorange data to provide a smoothed pseudorange output. The term smoothingdescribes
how the high frequency noise is eliminated from the pseudorange measurements (thereby
smoothing out a plot of the range residuals).
It would appear to make sense, then, to apply as much carrier smoothing as possible in order to
eliminate the inherent code noise (including multi-path). Unfortunately, increased carrier
smoothing can have negative effects on the GPS receiver performance. Combining measurement
data from two sources (pseudorange and carrier phase) affects the dynamic response of the
receiver and can lead to significant errors in the presence of increased of ionospheric activity.
The CSMOOTH value is given in units of seconds/cycle (inverse of bandwidth) and has factory
default setting of 20. The range of the value is 20 to 1000 inclusive. The remainder of this paper
will illustrate the significant effects that changing the CSMOOTH value can have on several
aspects of the GPS receiver performance. It is important to remember that the CSMOOTH
command is intended for specific applications only and its use may not improve the general
performance of the receiver.
GPS RECEIVER TRACKING
In order to understand the concepts that are described within the text of this paper, it may help to
highlight basic GPS receiver principles. Tracking of the GPS code signal is accomplished using a
feedback control system called a Delay Lock Loop (hereinafter called a DLL). Carrier phase
smoothing of the code measurements (pseudoranges) is accomplished by introducing data from
the carrier tracking loops into the code tracking system. The degree to which either the DLL or
2 of 7
the carrier phase information controls the code tracking system, and thus the amount of carrier
smoothing applied to the pseudoranges, can be modified using the CSMOOTH command.
The CSMOOTH value is inversely proportional to the bandwidth of the DLL in the GPS receiver.
Changing this value will affect several characteristics of how the code is tracked. There are
advantages and disadvantages to high and low CSMOOTH values. Several considerations will be
discussed here:
The attenuation of low frequency noise (multi-path) in pseudorange measurements,
The effect of time constants on the correlation of phase and code observations,
The rate of pulling-inof the code tracking loop (step response),
The effect of ionospheric divergence on carrier smoothed pseudorange (ramp response).
Once again, the purpose of carrier smoothing is to reduce high frequency noise inherent in the
pseudorange measurements. Increasing the CSMOOTH value will effectively decrease the size of
the DLL bandwidth and attenuate lower frequency noise such as multi-path. Although this is
generally an advantage, it is necessary to understand the adverse effects of decreasing the DLL
bandwidth on the code filter performance. The following sections provide some detailed
information regarding each of the considerations listed above.
LOOP FILTER RESPONSE
The default CSMOOTH value for all NovAtel GPS receivers is 20. Figure 1 illustrates the
response of the code loop filter to different frequencies. The critical points on the response graph
consist of the 3dB and 10dB points of attenuation.
Figure 1
All signals with a period above the 3dB point will be tracked by the loop. Any signals with a
period below the 10dB point are essentially eliminated from the loop. With a CSMOOTH setting
of 20, only high frequency noise is filtered out. Assuming a typical period of 1000 seconds, multi-
path signals will be tracked by the DLL and degrade the output pseudoranges.
Loop Filter Response For CSMOOTH = 20
-20
-19
-18
-17
-16
-15
-14
-13
-12
-11
-10
-9
-8
-7
-6
-5
-4
-3
-2
-1
0
0 10 20 30 40 50 60 70 80 90 100 110 120
Input Multi-path Period (s)
Attenuation (dB)
< 3 db Pass Band
MP signals with period greater than
30 s will be tracked by the DLL
> 10 dB Block Band
MP signals with period smaller than 10 s will
be essentially filtered out and not tracked by
the DLL
3 of 7
As the CSMOOTH value is increased, more weight is placed on the phase loop information in the
code tracking control system (which is immune to code multi-path). Figure 2 shows the loop
filter response for four different CSMOOTH values. The narrow DLL bandwidth associated with
the higher CSMOOTH values will effectively attenuate lower frequency noise.
Figure 2
Figure 3 provides a simple illustration of the critical points in the DLL for different CSMOOTH
values. It is clear that very high CSMOOTH values are necessary to effectively attenuate low
frequency noise such as code multi-path. This is an advantage of increased carrier smoothing.
Figure 3
Figure 3 also indicates the time constant of the loop for different values of CSMOOTH.
Although the pseudo-range measurements are independent of each other, there can be a lot of
correlation between the phase measurements and the pseudo-ranges when the data from the two
sources is combined in the carrier smoothing process. This dependence is an important
consideration when the carrier data and pseudo-range information are to be used together in some
application (in post-processing software, for example). The time constant of the loop and the
sampling interval of the data dictate the degree of this correlation. In order to maintain
independent phase and code measurements between epochs, the data interval should be no greater
Loop Filter Response For CSMOOTH Values
-20
-19
-18
-17
-16
-15
-14
-13
-12
-11
-10
-9
-8
-7
-6
-5
-4
-3
-2
-1
0
0 500 1000 1500 2000 2500 3000
Input Multi-path Period (s)
Attenuation (dB)
20
100
500
1000
Critical Points in DLL
0
200
400
600
800
1000
1200
1400
1600
0 100 200 300 400 500 600 700 800 900 1000
CSMOOTH value
Input Multi-path Period (s)
3dB Period (s) 10dB Period (s) Time Const
3dB Period
10dB Period
Time Constant
4 of 7
than about 3 time constants. Obviously, high CSMOOTH values, and therefore longer time
constants, will decrease the maximum sampling rate that may be used to acquire independent data.
LOOP STEP RESPONSE
Since the CSMOOTH command essentially changes the bandwidth of the DLL, it will significantly
impact the dynamic nature of the loop. One measure of these characteristics is the ability of the
loop to respond to a step function in the signal. This type of response is important in the pulling-
inof (fixing on) the GPS code signal. Figure 4 illustrates the step response of the DLL with the
default CSMOOTH setting of 20. The shape of the curve describes the response of a first order
filter. It is important to note how well the filter will track the step. The ERROR line represents
the difference between the current measured pseudorange and the actual value.
Figure 4
It is desirable for the DLL to be responsive to these step functions. Figure 5 plots the filter
response of different CSMOOTH values for a 1-meter step. It is obvious that an increase in
CSMOOTH value yields a dramatic decrease in response to the step function. This illustration is
characteristic of a feedback loop when the bandwidth is reduced.
Figure 5
Step Response For
Different CSMOOTH Values
1m step
0
0.2
0.4
0.6
0.8
1
1.2
0 100 200 300 400 500 600 700 800 900 1000
Time (s)
Range (m)
20
100
500
1000
Step Response
CSMOOTH=20
1 m step
0
0.2
0.4
0.6
0.8
1
1.2
0 5 10 15 20 25 30
Time (s)
Range (m)
Step (m) psr (m) Error (m)
Tracking Error
Pseudo-range
Ramp
5 of 7
Large CSMOOTH values, although useful for filtering out low frequency noise, will yield a
sluggish code filter and may degrade lock-on, tracking, and re-acquisition. The above figures
illustrate the ability of the loop to respond to a constant step function. It is also necessary to
analyze how changes in the CSMOOTH value will affect the ramp response of the loop. This is
relevant in the context of the ionospheric interference encountered by GPS signals.
LOOP RAMP RESPONSE
When the GPS signal travels through the ionosphere, it is affected in two ways. The modulated
part of the signal (the code) is delayed momentarily while the phase of the carrier wave is
advanced. The code delay will distort the pseudorange measurements. As a result, the
pseudorange measurements and carrier phase derived measurements will tend to diverge over
time. Since carrier smoothed data is constructed based on both code and phase derived ranges,
this divergence between the two will cause problems. By analyzing the ability of the feedback
control system to track a ramp rather than a step, it is possible to characterize the response of the
loop to this divergence. Once again, the response is highly affected by the bandwidth of the DLL
and therefore the CSMOOTH value.
Figure 6
Figure 6 illustrates the nature of range divergence between code and carrier measurements as a
satellite moves across the sky. The high frequency noise represents the code noise that is
mitigated by the carrier smoothing technique. Superimposed on the actual graph is a best-fit
polynomial that approximates the divergence. Tracking the divergence is most difficult when the
slope of this graph is greatest (i.e. at the beginning and end of the plot). To investigate the worst
case ramp response of the loop it is necessary to estimate the slope of the graph in these critical
areas. Figures 7 and 8 demonstrate this procedure.
Plot of Code Minus Carrier
-10
-9
-8
-7
-6
-5
-4
-3
-2
-1
0
1
2
180000 185000 190000 195000 200000 205000
GPS Time (s)
Range (m)
Divergence Poly. (Divergence)
6 of 7
The beginning and end of the code-minus-carrier plot are estimated with a linear equation. The
beginning of the plot represents the greatest rate of divergence (thus the worst case scenario) and
will be examined in more detail.
Figure 7 Figure 8
Figure 9 demonstrates the response of the code-tracking loop to the ramp shown above in figure
7 for the default CSMOOTH value of 20. It is important to note the offset between the measured
range value and the ramp. The ERROR line on the graph displays this value and tends toward an
error of 1.5 centimeters which, in this case, is well below typical receiver noise (which is shown
by the high frequency oscillation in figure 6). As the slope of the ramp decreases, so does the
tracking offset error.
Figure 9
Increasing the value of the CSMOOTH will increase the tracking offset error. Figure 10 shows
the ramp response for different values of CSMOOTH. The offset error quickly becomes
significant as the CSMOOTH value is increased beyond 100. Once again, these plots are based
on a relatively high rate of divergence to illustrate a worst case scenario. This magnitude of error
can be encountered when tracking satellites that are low on the horizon or during periods of high
ionospheric activity.
Code Minus Carrier
Start Slope
y = -0.003x + 534.3
-2
-1.5
-1
-0.5
0
0.5
1
180900 181000 181100 181200 181300 181400 181500 181600
GPS Time (s)
Range (m)
Divergence Linear (Divergence)
Code Minus Carrier
End Slope
y = 0.0011x - 233.47
-6.5
-6
-5.5
-5
-4.5
-4
-3.5
203400 203500 203600 203700 203800 203900 204000 204100
GPS Time (s)
Range (m)
Divergence Linear (Divergence)
Ramp Responce CSMOOTH=20
Ramp Rate 0.003 m/s
0
0.01
0.02
0.03
0.04
0.05
0.06
0.07
0.08
0 5 10 15 20 25
Time (s)
Range (m)
Ramp (m) Psr (m) Error (m)
Ramp
Pseudo-range
Error
7 of 7
Figure 10
CONCLUSIONS
To summarize, the primary reason for applying carrier smoothing to the measured pseudoranges
is to mitigate the high frequency noise inherent in all code measurements. It was illustrated above
that adding more carrier smoothing by increasing the CSMOOTH value would filter out lower
frequency noise, including some multi-path frequencies.
The adverse effects of higher CSMOOTH values on some performance aspects of the receiver
were also demonstrated. Specifically, the time constant of the tracking loop is directly
proportional to the CSMOOTH value and will affect the degree of dependence between the
carrier phase and pseudo-range information. Phase and code Data collected at a sampling rate
greater than about 3 time constants of the loop will be correlated (the greater the sampling rate,
the greater the correlation). This correlation is not relevant if only positions are logged from the
receiver, but is an important consideration if the data is combined in some other process such as
post-mission carrier smoothing. It was shown that a narrow bandwidth in a feedback loop will
impede the ability of the loop to track step functions. Steps in the pseudorange will be
encountered during initial lock-on of the satellite and when working in an environment conducive
to multi-path. A low CSMOOTH value will allow the receiver to effectively adapt to these
situations.
Also, increased carrier smoothing may cause problems when satellite signals are strongly affected
by the ionosphere. As seen in figure 6, the rate of divergence between the pseudoranges and
phase-derived ranges is greatest when the satellite is low in the sky since the GPS signal must
travel through a much thickerionosphere. The tracking error of the receiver will be greatest at
these times when a lot of carrier smoothing is implemented. In addition, changing periods of
ionospheric activity (diurnal changes and the 11-year cycle) will influence the impact of large
CSMOOTH values. It is important to realize that the advantages of carrier smoothing do not
come without some trade-off in receiver performance. The factory default CSMOOTH value of
20 was selected as an optimal compromise of the considerations outlined in this paper. For the
majority of applications, this default value should be appropriate. However, the flexibility exists
to adjust the parameter for specific applications by users who are familiar with the consequences.
Ramp Response For Different CSMOOTH Values
Ramp Rate 0.003 m/s
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0 50 100 150 200 250 300 350 400 450 500
Time (s)
Range (m)
CS=100
CS=500
CS=1000
Ramp