Jak wykrywać zagłuszanie GPS: darmowa, powtarzalna metoda
Krótka odpowiedź: nie potrzebujesz dedykowanego sprzętu ani niejawnego źródła danych. Większość odbiorników GNSS oblicza już stosunek sygnału nośnej do szumu (CNR, zapisywany również jako C/N0), czyli wartość określającą, jak czysto odbierany jest sygnał z każdego satelity, a archiwum CDDIS NASA publikuje te dane bezpłatnie z ponad 500 publicznych stacji naziemnych IGS na całym świecie, z opóźnieniem zaledwie kilku minut. Metoda opracowana w 2025 roku na University of Texas at Austin (Clements & Humphreys) wykorzystuje to samo darmowe archiwum do wykrywania rzeczywistych zakłóceń GPS: oblicza różnicę CNR dla każdego satelity względem jego wartości sprzed kilku sekund, uśrednia wynik po wszystkich satelitach śledzonych przez daną stację i wyszukuje zsynchronizowany skok na wielu stacjach oddalonych o setki kilometrów w dokładnie tym samym momencie. Skok zarejestrowany tylko na jednej stacji, bez echa gdziekolwiek indziej, to szum, a nie zagłuszanie. Zbudowaliśmy taki detektor i przetestowaliśmy go na żywo na 27.99 stacjogodzinach rzeczywistych danych z CDDIS z 7 stacji w regionie Morza Bałtyckiego i Europie Środkowej, w tym ze stacji LAMA w Polsce. W naszym oknie pomiarowym panował spokój: 16 odizolowanych anomalii na pojedynczych stacjach, zero zsynchronizowanych zdarzeń wielostacyjnych. Poniżej przedstawiamy pełną metodę, rzeczywiste dane oraz wyjaśnienie, co odróżnia autentyczną detekcję od zbiegu okoliczności.
Dlaczego to teraz istotne
Zakłócenia GPS i GNSS w rejonie Morza Bałtyckiego przestały być niszowym tematem z zakresu walki elektronicznej i trafiły na pierwsze strony gazet. Władze lotnicze i morskie w Polsce, na Litwie i w Finlandii odnotowują gwałtowny wzrost przypadków zagłuszania i spoofingu od 2022 roku, a media, od Defense News po Euronews, opisują telefony, drony i statki tracące pozycję GPS w całym regionie aż do 2026 roku. Piloci śledzą to codziennie na forach branżowych, takich jak OPSGROUP, z kolei publiczna mapa cieplna gpsjam.org agreguje raporty dokładności nawigacji ADS-B ze statków powietrznych w czasie rzeczywistym. To naprawdę przydatne narzędzie operacyjne, ale wnioskuje o zakłóceniach pośrednio, na podstawie zachowania samolotów. Nie odczytuje rzeczywistej jakości sygnału w odbiorniku.
Wpisz dzisiaj w wyszukiwarkę „how to detect GPS jamming”, a wyniki zdominują dostawcy systemów monitoringu floty sprzedający sprzęt, uzupełnieni o generyczne poradniki z cyklu „na co zwrócić uwagę”. Żaden z nich nie pokazuje działającego potoku detekcji opartego na prawdziwych danych. Tę lukę wypełnia niniejszy artykuł: metoda warstwy sygnałowej, zbudowana na danych dostępnych publicznie i bezpłatnie, z kodem oraz rzeczywistymi liczbami zamiast gołosłownych deklaracji.
Metoda: różniczkowanie czasowe stosunku sygnału nośnej do szumu
Stosunek sygnału nośnej do szumu określa, jak silnie odbiornik odbiera sygnał danego satelity względem poziomu szumów tła, wyrażany w dB-Hz. Wartość ta zmienia się naturalnie w zależności od elewacji satelity, jakości anteny i warunków atmosferycznych, co sprawia, że sztywny próg CNR jest kiepskim detektorem zagłuszania: satelita nisko nad horyzontem wygląda podobnie do satelity zagłuszanego. Rozwiązaniem zastosowanym przez Clementsa i Humphreysa jest progowanie różnicy czasowej o krótkim opóźnieniu, co eliminuje powolny, naturalny dryf i pozwala wyizolować szybkie stany przejściowe:
- Różnica dla pojedynczego satelity. Dla każdego śledzonego satelity oblicz ε[k] = CNR[k] − CNR[k−L], przyjmując L równe około 3 sekundy przy częstotliwości próbkowania 1 Hz.
- Statystyka stacji. Uśrednij ε[k] po wszystkich satelitach aktualnie śledzonych przez stację, aby uzyskać pojedynczą wartość stacyjną Λ[k] w każdej epoce.
- Stan bazowy. Przy braku zakłóceń Λ[k] zachowuje się jak szum o zerowej wartości średniej i szerokości charakterystycznej dla danej stacji, zależnej od jej odbiornika i anteny. Wyznacz tę szerokość empirycznie i ustal próg na poziomie określonej liczby odchyleń standardowych.
- Kluczowy wyróżnik: przestrzeń, nie tylko amplituda. Rzeczywiste źródło zakłóceń o dużym zasięgu, np. satelita emitujący niepożądane sygnały RF lub silny nadajnik naziemny, wpływa na wiele rozproszonych geograficznie stacji w tym samym kilkusekundowym oknie. Przekroczenie progu ograniczone do jednej stacji, bez jakiegokolwiek echa na innych oddalonych o setki kilometrów, jest znacznie bardziej prawdopodobnie zjawiskiem lokalnym: wielodrogowością, przeszkodą fizyczną, chwilowym błędem odbiornika lub scyntylacją jonosferyczną, którą każda publikacja wskazuje jako główne źródło fałszywych alarmów.
Co dokładnie uruchomiliśmy
Sceptyk powinien być w stanie to odtworzyć, oto pełny potok przetwarzania.
- Stacje. Siedem stacji IGS high-rate rozproszonych na obszarze około 2000 km w Europie Środkowej i Północnej: LAMA (Lamkówko, Polska), GANP (Ganovce, Słowacja), GOPE (Pecny, Czechy), MAR6 (Mårtsbo, Szwecja), METG (Metsähovi, Finlandia), ONSA (Onsala, Szwecja) oraz WTZR (Wettzell, Niemcy). Stację LAMA wybrano dlatego, że kolejna publikacja tych samych autorów wskazuje na największe odnotowane tam spadki CNR.
- Okno czasowe. 2026-09-29, wtorek, od 07:00 do 11:00 UTC, czyli ostatni pełny dzień roboczy z dostępnymi danymi high-rate w momencie uruchomienia. Godziny robocze wybrano ze względu na to, że cytowana praca wykazała koncentrację zakłóceń właśnie w tym przedziale.
- Pobranie danych. Archiwum RINEX v3 high-rate w NASA CDDIS zorganizowane jest w 15-minutowych blokach. Dostęp przez HTTPS zwrócił błąd 401: logowanie przez Earthdata jest tam obecnie obowiązkowe, co potwierdza zmianę zasad dostępu z czerwca 2025 roku. Anonimowy FTP-SSL zadziałał bez żadnego uwierzytelniania, czyli ten sam dostęp, który CDDIS oferuje od lat:
ftp://gdc.cddis.eosdis.nasa.gov/gnss/data/highrate/<yyyy>/<ddd>/<yy>d/<HH>/. 112 plików 15-minutowych, łącznie 104 MB, dla 7 stacji i 4 godzin. - Przetwarzanie. Pliki to skompresowane algorytmem Hatanaka archiwa RINEX v3. Rozpakowaliśmy je i przeanalizowaliśmy za pomocą otwartoźródłowych bibliotek
georinexorazhatanakaw Pythonie, wyodrębniając pole stosunku nośnej do szumu GPS L1 C/A (S1C) dla każdego satelity w każdej epoce. - Obliczenia. Dokładnie opisana wyżej statystyka Λ[k], L = 3 sekundy, oceniana względem dwóch progów, 5σ i 6σ, w odniesieniu do empirycznego poziomu szumu każdej stacji. Przekroczenie uznaje się za potencjalne zdarzenie wielostacyjne tylko wtedy, gdy wystąpi na więcej niż jednej stacji w oknie 5 sekund.
- Czego nie zrobiliśmy. Nie wysyłaliśmy żadnych żądań do innych serwerów poza publicznym archiwum NASA, nie transmitowaliśmy żadnych sygnałów RF i nie zbieraliśmy danych osobowych. Współrzędne stacji i metadane sprzętowe to publiczne dane infrastruktury IGS, a nie informacje poufne.
Jak w praktyce wygląda 27.99 spokojnych stacjogodzin
LAMA, nasza główna stacja, okazała się najspokojniejsza z całej siódemki. Poziom szumu Λ[k] wyniósł zaledwie 0.124 dB-Hz odchylenia standardowego i nie odnotowano na niej ani jednego przekroczenia progu 5σ lub 6σ w całym 4-godzinnym oknie. Tak wygląda rzeczywiście czysty sygnał, nie linia prosta, lecz prawdziwy szum oscylujący w stabilnym paśmie, ani razu nie wykraczający poza normę.
Na wszystkich siedmiu stacjach widać ten sam obraz przy różnych poziomach szumu. Stacja GANP na Słowacji charakteryzowała się największym szumem, z odchyleniem standardowym 0.219 dB-Hz, i wygenerowała pojedynczy, największy skok w całym zbiorze danych.
| Stacja | Kraj | Poziom szumu (σ, dB-Hz) | Przekroczenia 5σ | Przekroczenia 6σ |
|---|---|---|---|---|
| ONSA (Onsala) | Szwecja | 0.125 | 11 | 2 |
| GANP (Ganovce) | Słowacja | 0.219 | 4 | 2 |
| GOPE (Pecny) | Czechy | 0.187 | 1 | 0 |
| WTZR (Wettzell) | Niemcy | 0.152 | 0 | 0 |
| METG (Metsähovi) | Finlandia | 0.128 | 0 | 0 |
| MAR6 (Mårtsbo) | Szwecja | 0.124 | 0 | 0 |
| LAMA (Lamkówko) | Polska | 0.124 | 0 | 0 |
Podsumowanie: 16 odizolowanych przekroczeń na pojedynczych stacjach przy 5σ, spadających do 4 przy 6σ. Ten spadek jest sam w sobie użyteczną, rzetelną informacją dla każdego, kto kalibruje taki detektor: obniżenie progu o jedno sigma spowodowało w przybliżeniu czterokrotny wzrost liczby fałszywych alarmów, przy czym żaden z nich nie odpowiadał rzeczywistemu zdarzeniu wielostacyjnemu.
Jedyny przypadek na granicy detekcji i dlaczego się nie liczy
Dwadzieścia osiem stacjogodzin rzeczywistego szumu radiowego wygenerowało dokładnie jeden zbieg okoliczności warty przeanalizowania, ponieważ rzetelny artykuł omawia także przypadki graniczne, a nie tylko te jednoznaczne. O godzinie 07:27:38 UTC stacja ONSA przekroczyła swój próg 5σ z wartością +0.656 dB-Hz. Dwie sekundy później, o 07:27:40 UTC, GANP przekroczyła własny próg 5σ z wynikiem −1.2 dB-Hz. Dwie stacje w odstępie pięciu sekund, obie oznaczone jako anomalia: w teorii dokładnie tak wygląda potencjalne zdarzenie wielostacyjne.
Tak jednak nie jest z dwóch powodów, do wychwycenia których zaprojektowano opisaną w pracy weryfikację jednoczesności przestrzennej. Po pierwsze, znak się nie zgadza: rzeczywiste źródło zakłóceń o szerokim zasięgu obniża CNR na każdej stacji, do której dociera, nie zwiększa go na jednej, obniżając na drugiej. Po drugie, amplituda jest niespójna: przekroczenie na stacji ONSA ledwo przekroczyło próg, podczas gdy na GANP było prawie dwukrotnie większe od progu. Przy bardziej rygorystycznym progu 6σ odczyt ze stacji ONSA z 07:27:38 w ogóle nie spełnia kryteriów, a korelacja całkowicie znika. Nawiasem mówiąc, ten skok na GANP stanowi również czytelną ilustrację znanego artefaktu tej metody: rzeczywisty, gwałtowny skok CNR na pojedynczej stacji objawia się w Λ[k] jako dopasowana para dodatnio-ujemna w odstępie dokładnie L sekund, tutaj +1.9 dB-Hz o 07:27:26, a następnie −1.8 dB-Hz o 07:27:29. Taka sekwencja jednoznacznie wskazuje na rzeczywiste, lokalne zdarzenie w odbiorniku lub antenie stacji GANP. Fakt, że zjawisko ograniczyło się wyłącznie do stacji GANP i nie miało żadnego odzwierciedlenia na stacjach GOPE czy LAMA, oddalonych o 300 do 600 km, definitywnie wyklucza wspólną przyczynę fizyczną.
Czego to nie dowodzi
Rzetelne ograniczenia, ponieważ liczba bez zastrzeżeń to tylko marketing.
- Jedno okno, jeden dzień roboczy. Wynik zerowy w ciągu czterech godzin nie mówi nic o innych dniach ani porach. Zbiór danych z cytowanej pracy, obejmujący 7 lat i 165 stacji, wykazał zakłócenia jedynie w niewielkiej części stacjodni, więc spokojne wtorkowe przedpołudnie jest oczekiwanym rezultatem, a nie dowodem na to, że w całym teatrze bałtyckim panuje spokój.
- Ta metoda nadaje się do zdarzeń wielkoobszarowych, a nie pojedynczego lokalnego zagłuszacza. Standardowe archiwum IGS jest przeznaczone dla zsynchronizowanych zjawisk trwających co najmniej kilka sekund, takich jak te wywoływane przez źródła orbitalne lub bardzo silne emitery naziemne. Lokalizacje naziemnych zagłuszaczy w rejonie Bałtyku raportowane przez regionalnych badaczy opierały się na dedykowanych, gęstych sieciach sensorów TDOA, czyli zupełnie innym narzędziu. Ten potok nie wskaże współrzędnych zagłuszacza zainstalowanego na statku.
- Siedem stacji to demonstracja, nie pełny przegląd. Na podstawie tej próby nie wyciągamy wniosków o skali występowania zagłuszania w regionie. Pokazuje ona, że metoda działa kompleksowo na rzeczywistych danych i jak wygląda rzetelny punkt odniesienia.
- Wybór progu to realny kompromis. Nasze dane pokazują to wprost: 16 oznaczonych epok przy 5σ spada do 4 przy 6σ, przy czym w naszym oknie wszystkie i tak były fałszywymi alarmami. Każdy wdrażający tę metodę musi dostosować próg do poziomu szumów własnych stacji.
Jak uruchomić to samodzielnie
Wszystko, co tu opisano, jest dostępne dla każdego za darmo. Wybierz zestaw rozproszonych geograficznie stacji IGS high-rate z aktualnej listy sieci na network.igs.org. Pobierz 15-minutowe bloki RINEX v3 przez anonimowy FTP-SSL z publicznego archiwum CDDIS, bez konieczności posiadania konta. Rozpakuj i przetwórz za pomocą otwartoźródłowych narzędzi, takich jak georinex, wyodrębniając obserwablicę CNR dla interesującej Cię konstelacji i częstotliwości. Oblicz Λ[k] dokładnie według powyższego opisu, wyznacz poziomy szumów własnych stacji i, co kluczowe, nigdy nie traktuj przekroczenia progu na pojedynczej stacji jako potwierdzonej detekcji. Weryfikacja jednoczesności przestrzennej na wielu rozproszonych stacjach pozwala odróżnić chwilowy błąd odbiornika od wiarygodnej detekcji, i to właśnie ten krok pozwolił prawidłowo odrzucić nasz pojedynczy przypadek graniczny.
Dlaczego to ma znaczenie
Wartość tej metody polega na tym, że odczytuje ona stan faktyczny bezpośrednio na poziomie warstwy sygnałowej, z infrastruktury, która nie wymaga ufania pulpitom nawigacyjnym dostawców komercyjnych. Narzędzia takie jak gpsjam.org wykonują wartościową pracę, wnioskując o zakłóceniach na podstawie wtórnych zachowań samolotów i statków. To podejście analizuje przyczynę bardziej bezpośrednio, w danych, które globalna sieć odbiorników klasy geodezyjnej publikuje za darmo, godzina po godzinie, od dziesięcioleci. Takie połączenie, rzetelna akademicka metoda detekcji, publiczne dane bez barier dostępu poza darmowym logowaniem FTP oraz w pełni powtarzalny proces przetwarzania, to rzadkość w obszarze zdominowanym przez oferty handlowe i niejawne źródła. Przeprowadziliśmy tę analizę uczciwie, uzyskując wynik, którego początkowo nie uważaliśmy za najbardziej przydatny: czysty stan bazowy wraz z rzeczywistą liczbą fałszywych alarmów to dokładnie to, co musi poznać każdy wdrażający tę metodę, zanim zaufa jej pierwszemu alertowi.