Journal of Global Positioning Systems (2004)
Vol. 3, No. 1-2: 106-114
FPGA Implementation of a Single Channel GPS Interference
Mitigation Algorithm
Gabriel Bucco, Matthew Trinkle, Doug Gray and Wai-Ching Cheuk
CRC for Sensor Signal and Inf ormation Processing, Dept of Electrical and Electronic Engineering, University of Adelaide, Adelaide SA,
e-mail: dgray@eleceng.adelaide.edu.au Tel: +618 8303 6425; Fax: +618 8303 4360
Received: 15 Nov 2004 / Accepted: 3 Feb 2005
Abstract. The FPGA (Field-Programmable Gate Array)
implementation of an adaptive filter for narrow band
interference excision in Global Positioning Systems is
described. The algorithm implemented is a delayed LMS
(Least Mean Squares) adaptive algorithm improved by
incorporating a leakage factor, rounding and constant
resetting of the filter weights. This was necessary as the
original adaptive algorithm had stability problems : the
filter weights did not remain fixed, and tended to drift
until they overflowed, causing the filter response to
degrade. Each model was first tested in Simulink,
implemented in VHDL (Verilog Hardware Description
Language) and then downloaded to an FPGA board for
final testing. Experimental measurements of anti-jam
margins we re obt ained.
Key words: Adaptive filtering, FPGA, LMS, GPS,
Interference Mitigation
1 Introduction
Single channel adaptive filtering techniques have been
shown to be an effective technique for mitigating
multiple narrowband interferences to GPS systems
(Robert, 1999, Landry et al., 1997). Since they can be
seamlessly inserted between the existing GPS antenna
and receiver, (Trinkle et al., 2001, Dimos et al., 1995),
they offer a cost effective solution that involves minimum
system disruption. However to become a fully practical
solution the size and power demands of their hardware
implementation should be minimised. FPGAs (Field-
Programmable Gate Arrays) offer the potential for
achieving the goals of small size, weight and power
consumption and in this paper the implementation of an
adaptive filter using an FPGA device is d escribed.
In Section 2 an experimental system, termed mini-
GISMO, is described and an overview of the system
architecture is presented. The use of interpolation and
decimation filters within the FPGA is also described.
The main adaptive algorithm implemented is the delayed
LMS (Least Mean Squares) adaptive algorithm (Haykin,
2002). As discussed in Section 3 this algorithm is well
suited to FPGA implementations. However, particularly
in the presence of strong interferences, the original
adaptive algorithm had stability pro blems (Sethares et al.,
1986), as on convergence, the filter weights did not
remain fixed, and tended to drift until they overflowed,
causing the filter response to degrade. In Section 4 it is
shown that incorporating a leakage term (Nascimento et
al.,1999) and rounding instead of truncating resulted in
the weights remaining near the optimal values. However,
this solution introduced memory effects, which produced
a second null when the interference frequency was
changed. Resetting the weights every second removed
this problem and appeared to have the least stability
effects, as a short pulse in the output every second didn’t
cause any undesirable results in this algorithm. Also, the
bit allocations were optimised to reduce the quantisation
error. By reducing the quan tisation noise power a smaller
leakage factor is required to stabilise the adaptive
algorithm resulting in a slower drift of the weights
towards zero.
Finally, in Section 4.3, experimental results testing the
ability of mini-GISMO to reject interferences whilst
receiving GPS signals are presented.
2 System Description
The mini-GISMO system consisted of two boards : an RF
and a digital board as shown in Figure 1 below.
Bucco et al: FPGA Implementation of a Single Channel GPS Interference Mitigation Algorithm 107
Fig. 1 mini-GISMO
An overview of the complete system is shown in Figure
2. The RF board converts the incoming GPS signal to an
intermediate frequency of 22 MHz before feeding it to an
A/D converter on the FPGA board. The output of the A/D
converter is then passed into the FPGA, where a
decimation filter, adaptive filter and interpolation filter
are implemented. The final output from the interpolation
filter is then passed back out through a D/A converter and
converted b ack up to th e GPS carrier frequ ency of 1.5754
GHz by the RF board.
2.1 Filter Design and Implementation
To avoid expensive and bulky analogue filters with very
sharp transition bands the anti-aliasing filtering was
effected using digital oversampling, i.e., the analogue
signal was sampled at a much higher rate (32MHz) than
twice the GPS signal bandwidth (2MHz). This over-
sampled digital signal was then digitally filtered and sub-
sampled to an 8MHz sampling rate in the decimation
filter. By using a combination of analogue and digital
filtering, sharp transition bands could b e achieved .
2.2 Analo gue Ant i-Aliasi ng Filter
The ADC samples at 32 MHz, and the GPS IF
frequencies range from 21-23 MHz. Thus the frequency
band of interest aliases to 9-11 MHz. The analogue anti-
aliasing band-pass filter is also required to have good
attenuation between 9 and 11 MHz and between 41 and
43 MHz as noise from these bands also aliases into the
final GPS signal bandwidth.
2.3 Decimation Filter
The decimation filter reduces the input sample rate from
the ADC from 32 to 8 MHz by sub-sampling. To avoid
additional aliasing at this stage a further anti-aliasing
filter needs to be implemented. Since the down-converted
GPS spectrum is from 9-11 MHz, the anti-aliasing filter
needs to have good rejection below 7 and above 13 MHz
to avoid aliasing into the decimated GPS bandwidth.
A linear-phase FIR filter design with least-squares error
minimization was used to obtain the coefficients, which
were then normalised to 14 bit signed integers. The
frequency response of the resulting decimation filter is
shown in Figure 3 and a diagram showing the entire
frequency down-conversion scheme is shown in Figure 4.
RF Board Digital
Board
BPF
(21- 23 M H z)
ADC
SR = 32
MHZ
Decimation
Filte
r
Adaptive Filter Interpolation
Filte
r
BPF
(21-23 MHz)
DAC
SR = 32
MHZ
To GPS Receiver
Local
Oscillato
r
BPF
BW=2 MHz
1.527GHz
BPF
Fig. 2 mini-GISMO overview
108 Journal of Global Positioning Systems
2.4 Interpolation Filter
Interpolation is effected by adding 3 zeros between
contiguous samples of the output of the adaptive filter
thus taking the input sample rate of 8 MHz to an output
sample rate of 32 MHz. However this interpolation
introduces unwanted image frequencies and these must be
filtered out. This is achieved by the use of an
interpolation filter, which effectively inverts the effect of
the decimation filter, i.e., it translates the adaptively
filtered GPS signal from base-band to an intermediate
frequency of 10 MHz. The interpolation filter transfer
function and hence filter coefficients are identical to
those of the decimation filter.
2.5 FPGA Filter Implementation
A block diagram showing the interconnections between
the main system blocks in the FPGA are shown in Figure
5. The data is clocked in at a 32 MHz rate, and the
decimation filter creates a Ready signal at a quarter the
input clock rate, or 8 MHz. The output data is clocked by
this signal, i.e., at 8 MHz, and both these signals are used
to drive the adaptive filter module. The data into the
interpolation filter (DIN2) is obtained from the adaptive
filter output, and changes at 8 MHz. The filter itself is
clocked at 32 MHz, which is also the output data rate.
02 4 6 810 12 14 16
-50
-45
-40
-35
-30
-25
-20
-15
-10
-5
0
Frequency (M Hz)
Power (dB)
Decimation Filter Frequency Response
3
2
1
2
2
2
2
4
2
1
0
3
1
1
9
8
1
1
4
GPS
Si
g
nal
Nyquist before
decimation filte
r
Nyquist after
decimation filte
r
Analogue
Filte
r
Decimatio
n filter
alia
alia
DIN2
Decimation
Filter
Module
Adaptive
Filter
Module
Interpolation
Filter
Module
DIN1
DOUT2
RDY1
DOUT1
CL
K
CL
K
Fig. 3 Frequency response of decimation filter
Fig. 4 Frequency conversion scheme
Fig. 5 Main system blocks in the adaptive filter FPGA implementation
Bucco et al: FPGA Implementation of a Single Channel GPS Interference Mitigation Algorithm 109
2.6 FPGA Decimation/Interpolation Filter Testing
The frequency responses of the decimation/interpolation
filter were measured by passing white noise into the
system and measuring the output spectrum. The results
are shown in Figure 6 where the power spectrum of the
input ‘white noise’ is shown in black and the output
spectrum in blue. The input white noise spectrum is
measured after the analogue anti-aliasing filter. The
results show that the filters give at least 15-20 dB of
attenuation from the pa ss-band to the cut-off regions.
Att 20 dB
*
B
Ref-10 dBm
3.1 MHz/Start1 MHzStop32 MHz
*
*
RBW 30 kHz
VBW 300 Hz
SWT 3.5 s
1 AP
IEW
*
2 AP
CLRW
PRN
-110
-100
-90
-80
-70
-60
-50
-40
-30
-20
-10
1
Marker 1 [T1 ]
-49.58 dBm
22.000000000 MHz
2
Delta 2 [T1 ]
-6.01 dB
1.000000000 MHz
3
Delta 3 [T1 ]
-2.95 dB
-1.000000000 MHz
D1 0 dBm
D2 -100 dBm
F1
Date: 28.OCT.2003 09:58:25
Figure 6 Output power of interpolation f ilter when input is w hite noise
A comparison of Figure 3 (theoretical) and Figure 6
(measured) indicate a good agreement, allowing for the
appropriate shifts of the frequency axis, as the attenuation
side lobe levels appear consistent. The insert in Figure 6
shows an expanded view of the frequency response in the
pass-band of the decimation/interpolation filter. Whilst it
shows that the attenuation in the 21-23 MHz pass-band is
quite flat, the attenuation at the edges reaches almost 3dB
on one side, and 5.5dB on the other side, which is a bit
uneven. The response could be improved by adding more
taps, but due to space limitations on the FPGA, the limit
was set to 13 taps.
3 Adaptive Filter
The adaptive filter implemented in the FPGA is the
symmetric delayed LMS adaptive prediction-filtering
algorithm, shown in Figure 7 below. The implementation
of the LMS algorithm for updating the filter weights is a
modified version of the leaky LMS leakage algorithm
that also included periodic re-initialisation of the weights.
3.1 Adaptive Filter FPGA Implementation
The Adaptive Filter was implemented in schematic
VHDL using four main blocks as illustrated in Figure 8.
The following diagram shows these blocks, the
Coefficient Update Block, the Input Signal Delay Block,
the FIR Algorithm Block and the Tree Adder Block.
Each of the modules carries out the following operations
Coefficient Update Block : Updates weights using a
variant of the LMS algorithm and scalings.
Input Signal Delay Block : Delays input signal
according to a 33 tap symmetric FIR filter.
FIR Algorithm Block : Carries out weight vector
multiplications and scalings
Tree Adder Block : Carries out summations
When designing the scaling both truncation and rounding
were investigated.
Input signal spectrum
Output signal spectrum
Att 20 dB
*
CLRW
R
B
Ref-10 dBm
500 kHz/Center22 MHzSpan5 MHz
*
*
RBW 30 kHz
VBW 300 Hz
SWT 1.15 s
1 AP
PRN
-110
-100
-90
-80
-70
-60
-50
-40
-30
-20
-10
1
Marker 1 [T1 ]
-50.93 dBm
22.000000000 MHz
2
Delta 2 [T1 ]
-5.54 dB
1.000000000 MHz
3
Delta 3 [T1 ]
-2.72 dB
-1.000000000 MHz
D1 0 dBm
D2 -100 dBm
F
1
Date: 28.OCT.2003 09:45:09
Pass- band expa nded
110 Journal of Global Positioning Systems
s[k]
x
1(k) xN-1(k)
µ
w
1 w2 wN-1 wN
e[k]
Filter output
Fig. 7 Symmetric Adaptive Prediction Filter
4. Adaptive Filter Development and Testing
The adaptive filter was first tested using a Simulink
model to evaluate the effect of various quantisation
schemes, (Sherwood et al., 1987), convergence times and
weight vector drift. Then the VHDL code was
downloaded onto the FPGA and the experimental system
was evaluated. These results are presented in the
following sections.
4.1 Simulink T e st s
The adaptive filter uses 33 taps and has a sampling rate of
8 MHz, thus the convergence time should be between
10.8µs and 21.7µs for typical interferences. Whilst
Simulink analysis confirmed convergence times of
around 20µs it also confirmed that weight vector drift,
due to finite precision arithmetic, in the standard delayed
LMS algorithm was a serious problem. The drift caused
most of the weights to become very large, thus distorting
the frequency response of the filter. This is illustrated in
Figure 9 below where the transfer function of the
standard delayed LMS adaptive filter is plo tted over a 10
second period.
+
d[k]
y[k]
Z-1 Z-1 Z-1 Z-1 Z-1 Z-1
+
+
+
+
x xx x
+
+
x
LMS update algorithm with leakage
µ
Bucco et al: FPGA Implementation of a Single Channel GPS Interference Mitigation Algorithm 111
Figure 8 Adaptive Filter Module
Figure 9. Effect of weight vecto r drift on transfer fu nc ti on of standard
delayed LMS
The top left corner shows the optimum result, after
convergence, with a relatively flat response and a deep,
narrow notch. Over time, the ripples start to grow, the
notch gets wider and starts to divide, and some of the
ripples start forming secondary notches. This shows the
degradation of the response, as the weights drift during a
period of about 10 seconds. The size of the ripples in the
standard LMS algorithm is also interference to noise
ratio, (INR), dependent. As the INR increases the
adaptive algorithm places less emphasis on maintaining a
flat frequency response. This is illustrated in Figure 10
where the INR for the red curve is 21dB and that for the
blue curve is 30 dB.
01 23 4
-105
-100
-95
-90
-85
-80
-75
-70
-65
-60
Figure 10. Effect of increased INR on ripples
This symbol indicates that a bit
shifter was used. The number inside
represents how many places the bits
are shifted, where + indicates they
are shifted up, and – indicates they
are shifted down.
RESET
WEIGHTS
latch
1
B
E
T
A
2
18
16
16
18
1
latches
The numbers next to the arrow
lines indicate the bus bit width.
The dashed arrow lines indicate
that there are multiple buses
between the modules .
Tree Adder Block
32
18
FIR Algorithm Block
16
RESET
Input Signal Delay Block
1
8
1
Coefficient Update Blo c k
I
N
P
U
T
latch
12
16 16
O
U
T
P
U
T
32
14
14
+
-2
+2
32
+2
16
36
16
16
18
1
8
14
112 Journal of Global Positioning Systems
One way of minimizing weight vector drift investigated
was to use a modified version of the leaky LMS
algorithm. The effect of the leakage term is to eventually
draw the weights towards zero, preventing them from
overflowing. Simulink analysis confirmed this behaviour.
However whilst this approach is good in the short term,
over a long period of several seconds many components
of the weight vectors get drawn to zero, reducing the
effective number of filter taps. Thus although the sharp
null-steering capability is retained, a lumpier frequency
response curve results. This is illu strated below in Figure
11. The behaviour of the leaky algorithm was not found
to be strongly dependent on the INR.
Figure 11. Effect of weight ve c to r drift on transfer funct i on of delayed
LMS with leakage.
Rounding rather than truncation was also investigated and
found to be particularly effective in reducing weight
vector drift. Truncation always pulls the numbers in the
same direction, causing the weights to also start drifting
in the same direction, whereas the random nature of
rounding keeps the weights oscillating around a constant
value. Thus in theory, rounding should mitigate weight
vector drift as it removes the biased nature of truncation.
4.2 FPGA Tests
The leaky adaptive filter code incorporating leakage was
downloaded onto the FPGA board, and an interference
signal with an INR of 21 dB was used. The output of the
mini-GISMO system was input to a spectrum analyser
and spectra were recorded approximately every second.
During the collection period of about 10 mins the
frequency of the interference was varied to check how the
adaptive filter handled a chang ing interference frequen cy.
In the results presented below the logged spectra are
plotted as a colour image with the horizontal axis
representing frequency bins, the vertical axis time and the
intensity is colour coded with the colour bar indicating
strength in dBs.
Figure 12 presents results obtained implementing the
delayed LMS algorithm with leakage. The results show
that although the leakage term has been effective in
reducing weight vector drift thus maintaining cancellation
of the interference, the spectrum still has a number of
deep ripples (red) and rolls off on the right faster (blue)
than on the left. However, the notch appears to be quite
narrow, quickly tracks and effectively knocks out the
interference signal.
Figure 12. FPGA results - d el ay e d LMS with leakage
As discussed in Section 4.1 rounding with no leakage was
particularly effective in reducing weight vector drift
whilst maintaining a flat frequency response. This was
tested using the mini-GISMO system with an interference
whose INR was 30dB. The results, Figure 13, indicate the
output spectrum is flatter than that of Figure 11 but the
filter now exhibits a relatively long memory effect,
maintaining a notch at the previous interference
frequency for some time and only slowly converging to
the new interference frequency. As the INR increased this
memory effect was found to become more prominent.
That is, as the time taken for the notches to combine
increases, the response became less flat and the notch less
sharp.
Figure 13. FPGA results - delayed LMS with rounding
Bucco et al: FPGA Implementation of a Single Channel GPS Interference Mitigation Algorithm 113
4.3 Mini-GISMO Imple mentation and Testing
The investigations detailed in Section 4.2 indicated that
whilst either adding a leakage term and modifying the
quantisation scheme reduced the effect of weight vector
drift, there were disadvantages to both approaches. The
scheme chosen for the final implementation was the
following combination of the above approaches.
(a) A leakage term was used.
(b) The weights were reset to zero every second.
(c) Due to FPGA capacity constraints combined
rounding and leakage was not implemented.
However a detailed analysis of the quantisation
effects of the LMS algorithm was carried out
and an improved bit allocation scheme, which
lowered the quantisation noise due to tru ncation,
was adopted. This reduced the effect of
frequency r esp o nse deteriora t i on o ver time.
A typical example of the power spectrum for two
different INRs is shown in Figure 14.
Figure 14. FPGA results – optimised algorithm
The frequency responses when the interference signal is
at the same frequency but different power levels are
shown. Both interference power levels give a similar
result, apart from a deeper notch for the stronger
interference. The responses are relatively flat, without
any extra ripples or notches forming in the pass-band
region
This adaptive algorithm was download ed onto the PROM
and testing was carried out with mini-GISMO inserted
between an antenna and a small GPS receiver. An
insertion loss of approximately 3dB was measured by
measuring the GPS signal strengths prior to and after
insertion of mini-GISMO. A continuous-wave
interference was added to the antenna output prior to the
mini-GISMO and the output spectrum was logged.
The results for a changing interference frequency of
power –60dBm are illustrated in Figure 15. The spectra
are relatively flat, the notch is quite narrow and is quite
deep. However there is still some residual distortion and
ripple around the notch frequency as seen by the cyan
colouring. This distortion was worse when the
interference frequency was close to the centre of the pass-
band however this did not seem to cause a significant loss
in GPS signal strength as the receiver was still able to
maintain lock on the satellite sign a ls.
Figure 15. mini-GISMO results –interference power of –60dBm
In a separate test the strengths of four GPS signals in the
presence of –60dBm and –70dBm interferences were
recorded as the frequency of the interference was
changed. These results are plotted in Figure 16 below.
Figure 16. Measured GPS signal strengths as int erference frequency was
changed
The GPS signal strengths were averaged and normalised
by the signal strength in the absence of the interference.
These results indicated that the system whilst effectively
cancelling the interference was causing a loss in the GPS
signal strength varying from 0dB at the band edges to –5
dB at the centre of the band. This variation across the
band is probably due to the adaptive filter attempting to
flatten the coloured response across the pass-band caused
by the decimation filter and resulted in an apparent gain
when the interference frequency was at the high end of
the pass-band.
Finally the anti-jam gain of mini-GISMO was measured
by comparing the interference power levels at which an
Interference Power 50 mV rms, 210 mV rms
114 Journal of Global Positioning Systems
unprotected and protected receiver lost lock on the GPS
signals. Without mini-GISMO the GPS receiver lost lo ck
when the interference po wer level was greater than about
–95 to -90dBm whilst with mini-GISMO inserted the
threshold was about –57 dBm indicating that mini-
GISMO provided about 35dB of anti-jam gain.
5 Conclusion s
The single channel delayed LMS ad aptive algorithm is an
effective technique for removing narrow-band interfering
signals from GPS receivers. It can be effectively
implemented using FPGA technology that can be
seamlessly inserted between a GPS antenna and receiver.
Measurements indicate that the experimental mini-
GISMO system can provide around 35dB of anti-jam
gain against such interferences.
Careful design of the delayed LMS algorithm was
required to prevent overflows due to weight vector drift.
Several improvements were tested and the results showed
that incorporating a leakage factor, replacing truncation
by rounding and periodically resetting the weights all
contributed to mitigating this problem. In the final FPGA
implementation resetting the weights every second,
incorporating a leakage factor and careful allocation of
the bit allocations when truncating produc ed good results.
References
Robert S. (1999): The Impact of Interference on Civil GPS.
ION 55th Annual Meeting, June 1999 pp. 821-828
Landry R.; Renard A. (1997) Analysis of Potential Interference
Sources and Assessment of Present Solutions For
GPS/GNSS Receivers, 4th Saint-Petersburg International
Conference on Integrated Navigation Systems, May 1997.
Trinkle M.; Gray D. (2001) GPS Interference Mitigation;
Overview and experimental Results. SatNav 2001, July,
2001.
Dimos G.; Upadhyay T.; Jenkins T. (1995) Low-Cost
Solution to Narrowband GPS Interference Problem
Proc IEEE 1995 Naecon Meeting, vol I pp145-153
May 1995.
Haykin S. (2002) Adaptive Filter Theory 4th Edition, Prentice
Hall.
Sethares W.; Lawrence D.; Johnson C.;, Bitmead R.; (1986)
Parameter Drift in LMS Adaptive Filters IEEE
Transactions on Acoustic, Speech and Signal Processing
Vol. ASSP-34, No 4, August 1986.
Nascimento V.; Sayed A. (1999) Unbiased and Stable
Leakage-Based Adaptive Filter IEEE Transactions on
Signal Processing, Vol. 47, No. 12 December 1999.
Sherwood D.; Bershad N. (1987) Quantization effect in the
Complex LMS Adaptive Algorithm: Linearization Using
Dither-Theory IEEE Transaction on Circuits and System,
Vol. CAS-34, No. 7, July 1987.