Cómo detectar jamming de GPS: un método gratuito y reproducible
Respuesta corta: no necesita hardware propietario ni un feed clasificado. La mayoría de los receptores GNSS ya calculan la relación portadora-ruido (CNR, también escrita C/N0), un valor que describe con qué claridad reciben cada satélite, y el archivo CDDIS de la NASA publica ese dato de forma gratuita desde más de 500 estaciones terrestres públicas del IGS en todo el mundo, actualizado en cuestión de minutos. Un método de 2025 de la University of Texas at Austin (Clements & Humphreys) explota este mismo archivo gratuito para detectar interferencias reales de GPS: diferenciar el CNR de cada satélite respecto a sí mismo unos segundos antes, promediar entre todos los satélites que rastrea una estación y buscar un pico sincronizado en múltiples estaciones a cientos de kilómetros de distancia en el mismo instante. Un pico en una sola estación, sin réplica en ninguna otra parte, es ruido, no jamming. Construimos este detector y lo ejecutamos en vivo contra 27.99 horas-estación de datos reales de CDDIS en 7 estaciones en el Báltico y Europa Central, incluida LAMA en Polonia. Nuestra ventana estuvo tranquila: 16 anomalías aisladas en una sola estación, cero eventos multiestación sincronizados. A continuación se detalla el método completo, los datos reales y qué diferencia una detección auténtica de una coincidencia.
Por qué esto importa ahora
Las interferencias de GPS y GNSS en la región del mar Báltico han pasado de ser un tema especializado de guerra electrónica a ser noticia de portada. Las autoridades aeronáuticas y marítimas de Polonia, Lituania y Finlandia han reportado un fuerte aumento de jamming y spoofing desde 2022, y medios desde Defense News hasta Euronews han cubierto cómo teléfonos, drones y barcos pierden la posición GPS en toda la región hasta 2026. Los pilotos lo siguen a diario en foros comunitarios como OPSGROUP; un mapa de calor público, gpsjam.org, consolida los informes de precisión de navegación ADS-B de las aeronaves en un mapa en tiempo real. Es una herramienta operativa genuinamente útil, pero infiere las interferencias de manera indirecta, a partir del comportamiento de las aeronaves. No lee la calidad real de la señal en el receptor.
Si busca hoy "cómo detectar jamming de GPS", los resultados son casi en su totalidad proveedores de seguimiento de flotas que venden hardware, acompañados de listas genéricas de "señales a vigilar". Ninguno muestra un pipeline de detección real ejecutándose sobre datos reales. Ese es el vacío que cubre esta publicación: un método a nivel de señal, basado en datos que cualquiera puede descargar gratis, con el código y las cifras reales expuestos en lugar de simplemente afirmados.
El método: diferencias temporales en la relación portadora-ruido
La relación portadora-ruido describe con qué potencia un receptor capta la señal de un satélite determinado en relación con el suelo de ruido de fondo, en dB-Hz. Varía de forma natural con la elevación del satélite, la calidad de la antena y las condiciones atmosféricas, lo que hace que un umbral de CNR en bruto sea un mal detector de jamming: un satélite bajo cerca del horizonte se parece a uno afectado por interferencias. La solución utilizada por Clements y Humphreys consiste en aplicar el umbral a la diferencia temporal de corto intervalo en su lugar, lo que cancela la deriva lenta y natural, y aísla los transitorios rápidos:
- Diferencia por satélite. Para cada satélite rastreado, calcule ε[k] = CNR[k] − CNR[k−L], con L en torno a 3 segundos a una tasa de muestreo de 1 Hz.
- Estadístico por estación. Promedie ε[k] entre todos los satélites que la estación rastrea actualmente, para obtener un único valor por estación Λ[k] en cada época.
- La línea base. En un día tranquilo, Λ[k] se comporta como ruido de media cero con una amplitud específica para cada estación, determinada por su propio receptor y antena. Ajuste esa amplitud de forma empírica y defina un umbral a un determinado número de desviaciones estándar por encima.
- El discriminador real: el espacio, no solo la amplitud. Una fuente genuina de interferencia de área amplia, sea un satélite con fugas de RF o un potente emisor terrestre, afecta a múltiples estaciones dispersas geográficamente dentro de la misma ventana de pocos segundos. La superación de un umbral limitada a una sola estación, sin réplica en ninguna otra a cientos de kilómetros de distancia, es con mucha mayor probabilidad algo local: trayectos múltiples (multipath), una obstrucción física, un fallo momentáneo del receptor o centelleo ionosférico, que todos los artículos consultados señalan como el principal riesgo de falsos positivos.
Lo que ejecutamos realmente
Cualquier escéptico debería ser capaz de reproducir esto, así que aquí está el pipeline completo.
- Estaciones. Siete estaciones de alta frecuencia del IGS distribuidas a lo largo de unos 2,000 km en Europa Central y del Norte: LAMA (Lamkówko, Polonia), GANP (Ganovce, Eslovaquia), GOPE (Pecny, Chequia), MAR6 (Mårtsbo, Suecia), METG (Metsähovi, Finlandia), ONSA (Onsala, Suecia) y WTZR (Wettzell, Alemania). Se eligió LAMA porque el trabajo de seguimiento del artículo citado reporta allí sus mayores caídas de CNR registradas.
- Ventana temporal. 2026-09-29, un martes, de 07:00 a 11:00 UTC, el día laborable completo más reciente con datos de alta frecuencia disponibles en el momento de la ejecución. Se eligió el horario comercial porque el artículo citado observó que las interferencias se concentraban en esas horas.
- La descarga. El archivo RINEX v3 de alta frecuencia del CDDIS de la NASA está organizado en bloques de 15 minutos. El acceso por HTTPS devolvió un 401 directo: el inicio de sesión en Earthdata ahora es obligatorio allí, lo que confirma un cambio de acceso introducido en junio de 2025. El FTP-SSL anónimo funcionó sin autenticación alguna, el mismo acceso que CDDIS ha ofrecido durante años:
ftp://gdc.cddis.eosdis.nasa.gov/gnss/data/highrate/<yyyy>/<ddd>/<yy>d/<HH>/. 112 archivos de quince minutos, 104 MB en total, para las 7 estaciones y 4 horas. - El parseo. Los archivos son RINEX v3 comprimidos con Hatanaka. Los descomprimimos y parseamos con las librerías de código abierto de Python
georinexyhatanaka, extrayendo el campo de portadora-ruido de GPS L1 C/A (S1C) por satélite y por época. - El cálculo. Exactamente el estadístico Λ[k] descrito anteriormente, L = 3 segundos, evaluado en dos umbrales, 5σ y 6σ, frente al suelo de ruido empírico de cada estación. Una superación de umbral cuenta como evento candidato multiestación solo si ocurre en más de una estación dentro de una ventana de 5 segundos.
- Lo que no hicimos. No solicitamos nada a ningún host que no fuera el propio archivo público de la NASA, no transmitimos RF y no recopilamos datos personales. Las coordenadas de las estaciones y los metadatos de los equipos son registros públicos de infraestructura del IGS, no información privada.
Cómo se ven realmente 27.99 horas-estación en calma
LAMA, nuestra estación de referencia, fue la más tranquila de las siete. Su suelo de ruido Λ[k] midió solo 0.124 dB-Hz de desviación estándar y no produjo ninguna superación de umbral ni a 5σ ni a 6σ a lo largo de toda la ventana de cuatro horas. Así se ve una señal genuinamente limpia, no una línea plana, sino ruido real oscilando dentro de una banda controlada, sin salir de ella en ningún momento.
En las siete estaciones se observa el mismo patrón con distintos niveles de ruido. GANP en Eslovaquia fue la más ruidosa, con 0.219 dB-Hz de desviación estándar, y produjo el mayor pico individual registrado en todo el conjunto de datos.
| Estación | País | Suelo de ruido (σ, dB-Hz) | Superaciones a 5σ | Superaciones a 6σ |
|---|---|---|---|---|
| ONSA (Onsala) | Suecia | 0.125 | 11 | 2 |
| GANP (Ganovce) | Eslovaquia | 0.219 | 4 | 2 |
| GOPE (Pecny) | Chequia | 0.187 | 1 | 0 |
| WTZR (Wettzell) | Alemania | 0.152 | 0 | 0 |
| METG (Metsähovi) | Finlandia | 0.128 | 0 | 0 |
| MAR6 (Mårtsbo) | Suecia | 0.124 | 0 | 0 |
| LAMA (Lamkówko) | Polonia | 0.124 | 0 | 0 |
Totales: 16 superaciones aisladas en una sola estación a 5σ, que se reducen a 4 a 6σ. Esa reducción es en sí misma un dato útil y transparente para cualquiera que calibre un detector como este: relajar el umbral en una sigma multiplicó aproximadamente por cuatro nuestra tasa de falsas alarmas, sin que ninguno de los dos grupos correspondiera a un evento multiestación real.
El único casi acierto, y por qué no cuenta
Veintiocho horas-estación de ruido de RF del mundo real produjeron exactamente una coincidencia que merece la pena examinar, porque un artículo riguroso muestra los casos límite, no solo los impecables. A las 07:27:38 UTC, ONSA superó su umbral de 5σ con +0.656 dB-Hz. Dos segundos después, a las 07:27:40 UTC, GANP superó su propio umbral de 5σ con −1.2 dB-Hz. Dos estaciones, con cinco segundos de diferencia, ambas marcadas: sobre el papel, exactamente el perfil de un evento multiestación candidato.
No lo es, por dos razones que la propia comprobación de simultaneidad espacial del artículo está diseñada para detectar. Primero, el signo es incorrecto: una fuente real de interferencias de área amplia reduce el CNR en cada estación que alcanza, no lo sube en una y lo baja en otra. Segundo, la magnitud no coincide: el registro de ONSA apenas superó su umbral mientras que el de GANP casi duplicó el suyo. Con el umbral más estricto de 6σ, la lectura de ONSA a las 07:27:38 ya no califica en absoluto, y la coincidencia desaparece por completo. Ese pico de GANP, dicho sea de paso, es también un claro ejemplo de un artefacto conocido de este método: un escalón instantáneo real en el CNR de una estación aparece en Λ[k] como un par emparejado positivo-negativo exactamente a L segundos de distancia, aquí +1.9 dB-Hz a las 07:27:26 seguido de −1.8 dB-Hz a las 07:27:29. Ese emparejamiento es sintomático de un evento real y local en el receptor o la antena de GANP. El hecho de que se mantuviera confinado únicamente a GANP, sin réplica alguna en GOPE o LAMA a entre 300 y 600 km de distancia, es exactamente lo que descarta una causa física compartida.
Lo que esto no demuestra
Límites honestos, porque una cifra sin sus salvedades es puro marketing.
- Una sola ventana, un solo día laborable. Un resultado nulo a lo largo de cuatro horas no dice nada sobre otros días u horarios. El conjunto de datos de 7 años y 165 estaciones del artículo citado detectó interferencias solo en una minoría de días-estación, por lo que un martes por la tarde tranquilo es un resultado previsible, no una prueba de que el escenario báltico esté en calma en general.
- Este método es adecuado para eventos de área amplia, no para un jammer local aislado. El archivo estándar del IGS está pensado para fenómenos sincronizados de más de varios segundos, del tipo que produce una fuente espacial o un emisor muy potente. Las localizaciones de jammers terrestres en el Báltico reportadas por investigadores regionales utilizaron matrices densas de sensores TDOA diseñadas específicamente, un instrumento completamente diferente. Este pipeline no le proporcionará las coordenadas de un jammer en un barco.
- Siete estaciones son una demostración, no un censo. No hacemos ninguna afirmación sobre la prevalencia regional del jamming a partir de esta muestra. Demuestra que el método funciona de extremo a extremo con datos reales y enseña cómo es una línea base real y transparente.
- La elección del umbral implica un balance real. Nuestros propios datos lo muestran directamente: 16 épocas marcadas a 5σ se reducen a 4 a 6σ, siendo todas ellas falsas alarmas en cualquier caso dentro de nuestra ventana. Cualquiera que despliegue esto debe ajustar ese umbral frente al suelo de ruido de su propia estación.
Cómo ejecutar esto usted mismo
Todo lo aquí expuesto está a disposición de cualquiera de forma gratuita. Elija un conjunto de estaciones de alta frecuencia del IGS dispersas geográficamente de la lista actual de la red en network.igs.org. Descargue bloques RINEX v3 de 15 minutos mediante FTP-SSL anónimo desde el archivo público de CDDIS, sin necesidad de cuenta. Descomprima y parsee con herramientas de código abierto como georinex, extrayendo el observable CNR para su constelación y frecuencia de interés. Calcule Λ[k] exactamente como se describió anteriormente, ajuste el suelo de ruido de sus propias estaciones y, fundamentalmente, nunca considere una superación de umbral en una sola estación como una detección por sí sola. La comprobación de simultaneidad espacial entre estaciones dispersas es lo que convierte un fallo momentáneo del receptor en una afirmación defendible, y es también el paso que descartó correctamente nuestro único casi acierto.
Por qué esto importa
El valor de un método como este radica en que lee la realidad del terreno en la capa de señal, a partir de una infraestructura en la que nadie depende del panel de control de un proveedor. gpsjam.org y herramientas similares hacen un trabajo valioso deduciendo interferencias a partir del comportamiento derivado de aviones y barcos. Este enfoque lee la causa de forma más directa, en datos que una red global de receptores de grado geodésico ya publica de forma gratuita, hora tras hora, y lo viene haciendo desde hace décadas. Esa combinación, un método de detección académico real, datos públicos sin más barreras de acceso que una conexión FTP libre y un pipeline totalmente reproducible, es inusual en un sector dominado por páginas de ventas de fabricantes y feeds clasificados. Lo ejecutamos con total transparencia, incluyendo el resultado que no esperábamos que fuera la parte más útil: una línea base limpia, acompañada de cifras reales de falsas alarmas, es exactamente lo que cualquiera que implemente este método necesita saber antes de confiar en su primera alerta.