¿Se pueden usar mensajes ADS-B DF-17 con un resto distinto de cero después de la verificación de CRC?

Por diversión, he estado usando AirSPy SDR (Software Defined Radio) para recibir y decodificar paquetes ADS-B, principalmente mensajes DF-11 y DF-17.

El código está escrito en C++ y funciona razonablemente bien. Realiza procesamiento/demodulación de IQ, extracción de paquetes, verificación de CRC, etc. Como salida, genera cadenas de mensajes con formato AVR que luego se sirven a través de una interfaz basada en Listen Socket/Socket. Luego uso Virtual Radar como cliente para decodificar y mostrar los datos.

Con respecto a los paquetes DF-17 y DF-11, actualmente solo estoy reenviando los que tienen una ID de interrogador de cero, los llamados "scutters no solicitados". es decir, paquetes completos que tienen un resto cero después de CRCing.

También recibo / decodifico muchos paquetes que tienen ID de interrogador distintas de cero.

¿Puedo usar esto para algo útil?

En otras palabras, ¿podría extraer información útil, posiciones, velocidades, etc.? Si es así, podría volver a escribirlos como mensajes DF-17 no solicitados y pasarlos a Virtual Radar.

Estoy investigando esto lo mejor que puedo, pero actualmente me estoy ahogando en especificaciones y documentación, ya que parece haber mucho de eso.

Disculpas si no he usado algo de la jerga, solo llevo una semana en mi proyecto.

Bienvenido a Aviation.SE Max.

Respuestas (2)

Los mensajes con formato de enlace descendente 17 son, como usted sabe, mensajes ADS-B que no requieren interrogación. Como tal, la identificación del interrogador será cero.

Con frecuencia verá que, después de aplicar la comprobación de CRC, el resto de CRC es distinto de cero. Esto es causado por la corrupción del mensaje ADS-B entre el transmisor (ver nota) y el receptor. Esto se debe en parte a que las transmisiones de varias aeronaves no están sincronizadas, por lo que pueden superponerse y volverse difíciles de desenredar. Esta superposición se llama distorsión.

Dado que tiene información de IQ disponible, es posible que pueda descifrar mensajes superpuestos con cierto éxito. Además, puede intentar corregir errores utilizando el algoritmo CRC. Por lo general, se pueden corregir hasta dos bits maliciosos, más que eso se vuelve difícil.

Para mejorar el rendimiento de la corrección de errores de CRC, puede volver a utilizar la información del muestreo de IQ, otorgando a cada bit un valor de confianza basado en la forma de los datos de radio recibidos.

Si no puede corregir los bits de error (es decir, tiene un resto distinto de cero después de la corrección), debe considerar ese mensaje ADS-B como inútil.


Nota: hay un par de aviones que vuelan con transpondedores maliciosos que transmiten mensajes DF-17 basura con un resto distinto de cero. Se eliminarán gradualmente en los próximos dos años.

¡Ooops, presiona regresar demasiado pronto! Encontré la documentación un poco confusa. Me dio a entender que la identificación del interrogador podría ser cualquier número válido y que el paquete era una respuesta. Tiene sentido que siempre sea cero. Ya estoy corrigiendo errores de 1 o 2 bits con buen éxito en mensajes que CRC a cero. También planeo tratar de detectar bits sospechosos para mejorar la eficiencia de la corrección de errores, a través de los datos de IQ y los estados de codificación de Manchester ilegales. Esto parece una estrategia razonable y no debería ser demasiado difícil de implementar....

De acuerdo con lo que pude encontrar en el Anexo 10, se supone que los mensajes DF-17 siempre tienen cero ID de interrogador, por lo que si obtiene alguno de los que no pasan la verificación de paridad, deben haber sido distorsionados.

Por otro lado, los mensajes DF-11 a menudo se enviarán con una ID de interrogador distinta de cero. Como se especifica, la ID del interrogador después de eliminar el CRC siempre estará entre 0x000001 y 0x00005F; puede usar eso para retener cierta cantidad de distinción entre un mensaje ilegible y una respuesta de llamada general legítima.

Si esto es útil es un asunto diferente, ya que DF-11 básicamente no le dice nada, excepto que hay un avión con tal o cual dirección de 24 bits en algún lugar a la vista de su antena. Pero si también recibe señales espontáneas de posición de la misma aeronave, supongo que podría divertirse construyendo un mapa de dónde en su área de cobertura se pueden escuchar interrogaciones de instalaciones de radar particulares.

¡Gracias! Curiosamente, alrededor del 50% de los mensajes DF-11 CRC a cero. ¿Debería rechazarlos? Construyo una tabla de direcciones OACI válidas para ayudar a filtrar los otros tipos de DF recibidos. Comenzaré a tener en cuenta el rango de 0x0x1 a 0x5F como sugieres.
@MaxvanDaalen: Ah, pasé por alto algo. El squitter DF-11 se usa para TCAS, por lo que debería esperar obtener aquellos con cero IID.
Bien, ¡gracias por la actualización!