GPS-jamming detecteren: een gratis, reproduceerbare methode
Kort antwoord: je hebt geen propriëtaire hardware of een gerubriceerde feed nodig. De meeste GNSS-ontvangers berekenen al de carrier-to-noise ratio (CNR, ook geschreven als C/N0), een getal dat beschrijft hoe zuiver ze elke satelliet ontvangen, en NASA's CDDIS-archief publiceert die waarde gratis voor meer dan 500 publieke IGS-grondstations wereldwijd, binnen enkele minuten bijgewerkt. Een methode uit 2025 van de University of Texas at Austin (Clements & Humphreys) gebruikt datzelfde gratis archief om daadwerkelijke GPS-interferentie op te sporen: bereken het verschil tussen de CNR van elke satelliet en die van zichzelf enkele seconden eerder, middel dit over alle satellieten die een station volgt, en let op een synchrone piek bij meerdere stations honderden kilometers uit elkaar op exact hetzelfde moment. Een piek bij slechts één station, zonder echo elders, is ruis, geen jamming. We hebben deze detector gebouwd en live getest tegen 27.99 station-uren aan echte CDDIS-data over 7 stations in het Oostzeegebied en Centraal-Europa, waaronder LAMA in Polen. Ons tijdvenster was rustig: 16 geïsoleerde anomalieën bij individuele stations, nul synchrone multi-stationgebeurtenissen. Hieronder vind je de volledige methode, de echte data en wat een daadwerkelijke detectie onderscheidt van toeval.
Waarom dit nu belangrijk is
GPS- en GNSS-interferentie in het Oostzeegebied is van een niche electronic-warfare-onderwerp uitgegroeid tot voorpaginanieuws. Luchtvaart- en maritieme autoriteiten in Polen, Litouwen en Finland melden sinds 2022 een sterke toename in jamming en spoofing, en nieuwsmedia van Defense News tot Euronews hebben bericht over telefoons, drones en schepen die hun GPS-fix verloren in de regio tot in 2026. Piloten houden het dagelijks bij op communityfora zoals OPSGROUP; een openbare heatmap, gpsjam.org, verzamelt ADS-B-navigatienauwkeurigheidsrapporten van vliegtuigen op een live kaart. Dat is een bijzonder nuttig operationeel hulpmiddel, maar het leidt interferentie indirect af uit het gedrag van vliegtuigen. Het leest niet de daadwerkelijke signaalkwaliteit van de ontvanger uit.
Wie vandaag zoekt naar "how to detect GPS jamming", vindt vrijwel uitsluitend leveranciers van fleet-trackers die hardware verkopen, vergezeld van generieke lijstjes met signalen om op te letten. Geen van hen toont een echte detectiepijplijn die op echte data draait. Dat is het gat dat dit artikel vult: een methode op de signaallaag, gebaseerd op data die iedereen gratis kan downloaden, waarbij de code en de werkelijke cijfers worden getoond in plaats van slechts beweerd.
De methode: time-differenced carrier-to-noise ratio
Carrier-to-noise ratio beschrijft in dB-Hz hoe sterk een ontvanger het signaal van een bepaalde satelliet waarneemt ten opzichte van de achtergrondruisvloer. Dit varieert van nature met de satellietelevatie, antennekwaliteit en atmosferische omstandigheden, waardoor een ruwe CNR-drempelwaarde een slechte jammingdetector is: een lage satelliet nabij de horizon lijkt op een gejamde satelliet. De oplossing van Clements en Humphreys is om in plaats daarvan een drempelwaarde toe te passen op het short-lag tijdsverschil, wat langzame, natuurlijke drift elimineert en snelle overgangen isoleert:
- Verschil per satelliet. Bereken voor elke gevolgde satelliet ε[k] = CNR[k] − CNR[k−L], met L rond de 3 seconden bij een bemonsteringsfrequentie van 1 Hz.
- Stationstatistiek. Middel ε[k] over alle satellieten die het station op dat moment volgt, om een enkele waarde Λ[k] per station te verkrijgen voor elke epoch.
- De nulreferentie. Op een rustige dag gedraagt Λ[k] zich als ruis met een gemiddelde van nul en een stationspecifieke spreiding, bepaald door de ontvanger en antenne van dat station. Bepaal die spreiding empirisch en stel een drempelwaarde in op een aantal standaarddeviaties daarboven.
- De echte discriminator: ruimte, niet alleen amplitude. Een daadwerkelijke bron van grootschalige interferentie, een satelliet die RF lekt of een krachtige grondzender, raakt meerdere, geografisch verspreide stations binnen hetzelfde tijdsvenster van enkele seconden. Een drempeloverschrijding die beperkt blijft tot één station, zonder echo bij een ander station honderden kilometers verderop, is veel waarschijnlijker lokaal: multipath, een fysieke obstructie, een hapering van de ontvanger of ionosferische scintillatie, wat in elk artikel dat we lazen wordt aangemerkt als het grootste risico op fout-positieven.
Wat we daadwerkelijk hebben uitgevoerd
Een scepticus moet dit kunnen nabouwen, dus hier is de volledige pijplijn.
- Stations. Zeven IGS-high-rate-stations verspreid over ongeveer 2.000 km door Centraal- en Noord-Europa: LAMA (Lamkówko, Polen), GANP (Ganovce, Slowakije), GOPE (Pecny, Tsjechië), MAR6 (Mårtsbo, Zweden), METG (Metsähovi, Finland), ONSA (Onsala, Zweden) en WTZR (Wettzell, Duitsland). LAMA werd gekozen omdat het vervolgonderzoek van het geciteerde artikel daar de grootste geregistreerde CNR-dalingen rapporteert.
- Tijdsvenster. 2026-09-29, een dinsdag, 07:00 tot 11:00 UTC, de meest recente volledige werkdag met beschikbare high-rate-data op het moment van uitvoeren. Er is gekozen voor kantooruren omdat het geciteerde artikel vaststelde dat interferentie zich daarin concentreert.
- Het ophalen van de data. Het high-rate RINEX v3-archief van NASA CDDIS is georganiseerd in blokken van 15 minuten. Toegang via HTTPS gaf resoluut een 401 terug: een Earthdata-login is daar nu verplicht, wat een toegangswijziging uit juni 2025 bevestigt. Anonieme FTP-SSL werkte zonder enige authenticatie, dezelfde toegang die CDDIS al jaren biedt:
ftp://gdc.cddis.eosdis.nasa.gov/gnss/data/highrate/<yyyy>/<ddd>/<yy>d/<HH>/. 112 kwartierbestanden, 104 MB in totaal, over de 7 stations en 4 uur. - Het parsen. De bestanden zijn Hatanaka-gecomprimeerd RINEX v3. We hebben gedecomprimeerd en geparst met de opensource
georinexenhatanakaPython-libraries, waarbij we het GPS L1 C/A carrier-to-noise-veld (S1C) per satelliet per epoch hebben geëxtraheerd. - De wiskunde. Exact de Λ[k]-statistiek van hierboven, L = 3 seconden, geëvalueerd op twee drempelwaarden, 5σ en 6σ, afgezet tegen de eigen empirische ruisvloer van elk station. Een overschrijding telt alleen als kandidaat voor een multi-stationgebeurtenis als deze zich voordoet bij meer dan één station binnen een tijdvenster van 5 seconden.
- Wat we niet hebben gedaan. We hebben bij geen enkele host data opgevraagd behalve bij het publieke archief van NASA zelf, geen RF uitgezonden en geen persoonsgegevens verzameld. Coördinaten van stations en apparatuurmetadata zijn openbare IGS-infrastructuurgegevens, geen privé-informatie.
Hoe 27.99 rustige station-uren er in werkelijkheid uitzien
LAMA, ons belangrijkste station, was het rustigste van de zeven. De Λ[k]-ruisvloer mat een standaarddeviatie van slechts 0.124 dB-Hz, en produceerde nul drempeloverschrijdingen bij zowel 5σ als 6σ over het volledige tijdvenster van vier uur. Dit is hoe een echt schoon signaal eruitziet: geen vlakke lijn, maar echte ruis die binnen een nette bandbreedte beweegt en daar geen enkele keer buiten treedt.
Over alle zeven stations heen is hetzelfde beeld te zien bij verschillende ruisniveaus. GANP in Slowakije vertoonde de meeste ruis, met een standaarddeviatie van 0.219 dB-Hz, en produceerde de grootste individuele piek die we in de hele dataset hebben geregistreerd.
| Station | Land | Ruisvloer (σ, dB-Hz) | 5σ-overschrijdingen | 6σ-overschrijdingen |
|---|---|---|---|---|
| ONSA (Onsala) | Zweden | 0.125 | 11 | 2 |
| GANP (Ganovce) | Slowakije | 0.219 | 4 | 2 |
| GOPE (Pecny) | Tsjechië | 0.187 | 1 | 0 |
| WTZR (Wettzell) | Duitsland | 0.152 | 0 | 0 |
| METG (Metsähovi) | Finland | 0.128 | 0 | 0 |
| MAR6 (Mårtsbo) | Zweden | 0.124 | 0 | 0 |
| LAMA (Lamkówko) | Polen | 0.124 | 0 | 0 |
Totalen: 16 geïsoleerde overschrijdingen bij een enkel station op 5σ, wat terugvalt naar 4 op 6σ. Die daling is op zichzelf een nuttig, eerlijk meetpunt voor iedereen die een dergelijke detector afstelt: het versoepelen van de drempelwaarde met één sigma verviervoudigde ruwweg ons aantal valse meldingen, waarbij geen van beide sets overeenkwam met een echte multi-stationgebeurtenis.
De ene near-miss, en waarom deze niet telt
Achtentwintig station-uren aan reële RF-ruis leverden precies één toevalligheid op die het bespreken waard is, want een geloofwaardig artikel toont juist ook de randgevallen, niet alleen de zuivere data. Om 07:27:38 UTC overschreed ONSA zijn 5σ-drempelwaarde bij +0.656 dB-Hz. Twee seconden later, om 07:27:40 UTC, overschreed GANP zijn eigen 5σ-drempelwaarde bij −1.2 dB-Hz. Twee stations binnen vijf seconden, beide getriggerd: op papier exact het profiel van een mogelijke multi-stationgebeurtenis.
Dat is het niet, om twee redenen die de ruimtelijke gelijktijdigheidscontrole van het onderzoek juist moet onderscheppen. Ten eerste klopt het voorteken niet: een echte grootschalige storingsbron verlaagt de CNR bij elk station dat het bereikt, het verhoogt het niet bij het ene en verlaagt het bij het andere. Ten tweede komt de magnitude niet overeen: de overschrijding bij ONSA kwam nauwelijks boven de drempelwaarde uit, terwijl die van GANP ongeveer twee keer zo groot was als de eigen drempel. Bij de striktere 6σ-drempelwaarde kwalificeert de meting van ONSA om 07:27:38 helemaal niet meer, en verdwijnt het toeval volledig. Die piek bij GANP is overigens ook een duidelijke illustratie van een bekend artefact van deze methode: een daadwerkelijke abrupte sprong in de CNR van één station verschijnt in Λ[k] als een passend positief-negatief paar met precies L seconden ertussen, hier +1.9 dB-Hz om 07:27:26 gevolgd door −1.8 dB-Hz om 07:27:29. Die combinatie is typerend voor een reële, lokale gebeurtenis bij de ontvanger of antenne van GANP. Dat dit beperkt bleef tot alleen GANP, zonder enige echo bij GOPE of LAMA op 300 tot 600 km afstand, sluit een gedeelde fysieke oorzaak definitief uit.
Wat dit niet bewijst
Eerlijke kanttekeningen, want een getal zonder nuances is slechts marketing.
- Één tijdvenster, één werkdag. Een nulresultaat over vier uur zegt niets over andere dagen of tijdstippen. De 7-jarige dataset van 165 stations uit het geciteerde artikel detecteerde interferentie op een minderheid van de station-dagen, dus een rustige dinsdagmiddag is een verwacht resultaat, geen bewijs dat de Baltische regio in het algemeen rustig is.
- Deze methode is geschikt voor grootschalige gebeurtenissen, niet voor een enkele lokale jammer. Het standaard IGS-archief is ontworpen voor synchrone fenomenen van meerdere seconden of langer, het type dat een satellietbron of een zeer krachtige zender op de grond veroorzaakt. De lokalisaties van grondjammers in het Oostzeegebied waar regionale onderzoekers over rapporteerden, maakten gebruik van speciaal gebouwde, fijnmazige TDOA-sensorarrays, een compleet ander instrument. Deze pijplijn levert je niet de coördinaten op van een jammer op een schip.
- Zeven stations is een demonstratie, geen volledige inventarisatie. We doen op basis van deze steekproef geen uitspraken over de prevalentie van regionale jamming. Het toont aan dat de methode end-to-end werkt op echte data en laat zien hoe een eerlijke baseline eruitziet.
- De keuze van de drempelwaarde is een echte afweging. Onze eigen data laat dit direct zien: 16 gemarkeerde epochs bij 5σ dalen naar 4 bij 6σ, die in ons tijdvenster in beide gevallen allemaal valse alarmen bleken. Iedereen die dit inzet, moet die drempelwaarde afstemmen op de ruisvloer van het eigen station.
Hoe je dit zelf uitvoert
Alles hier is voor iedereen gratis beschikbaar. Kies een set geografisch verspreide IGS-high-rate-stations uit de actuele netwerklijst op network.igs.org. Haal RINEX v3-blokken van 15 minuten op via anonieme FTP-SSL uit het publieke archief van CDDIS, zonder dat een account nodig is. Decomprimeer en parse met opensource-tools zoals georinex, waarbij je het CNR-observabel extraheert voor de gewenste constellatie en frequentie. Bereken Λ[k] exact zoals hierboven beschreven, bepaal de ruisvloer van je eigen stations en beschouw, cruciaal, een overschrijding bij één station nooit op zichzelf als een detectie. De controle op ruimtelijke gelijktijdigheid over verspreide stations is wat een hapering van de ontvanger verandert in een verdedigbare claim, en het is ook de stap die onze ene near-miss terecht terzijde schoof.
Waarom dit ertoe doet
De waarde van een methode als deze is dat het de ground truth uitleest op de signaallaag, vanuit infrastructuur waarvoor niemand blind hoeft te vertrouwen op het dashboard van een leverancier. gpsjam.org en vergelijkbare tools leveren waardevol werk door interferentie af te leiden uit hoe vliegtuigen en schepen downstream reageren. Deze aanpak leest de oorzaak directer af, in data dat een wereldwijd netwerk van geodetische ontvangers al decennialang gratis publiceert, uur na uur. Die combinatie, een reële academische detectiemethode, publieke data zonder toegangsdrempels afgezien van een gratis FTP-login, en een volledig reproduceerbare pijplijn, is zeldzaam in een domein dat anders wordt gedomineerd door verkooppagina's van leveranciers en gerubriceerde feeds. We hebben dit integer uitgevoerd, inclusief het resultaat waarvan we niet hadden verwacht dat het het nuttigste deel zou zijn: een schone baseline, gekoppeld aan reële aantallen fout-positieven, is precies wat iedereen die deze methode implementeert moet weten voordat hij de eerste waarschuwing vertrouwt.