¿Qué hardware de la nave espacial Voyager realizó la codificación de datos transmitidos de una manera tan complicada? ¿Usó la decodificación terrestre "un gran monstruo llenando un estante"?

La ahora famosa respuesta a ¿Cómo se relaciona el apilamiento de naranjas en 24 dimensiones con la recepción y decodificación de señales de los Voyagers? Vale la pena detenerse ahora aquí y volver y leer primero.

¡Bienvenido de nuevo! El comentario de @NgPh debajo de la pregunta enlaza con Codificación de canales: El camino hacia la capacidad del canal , que también vale la pena leer. Dice:

E. Implementaciones de código Reed-Solomon

La primera aplicación importante de los códigos RS fue como códigos externos en sistemas de codificación concatenados para comunicaciones en el espacio profundo. Para la misión Voyager de 1977, el Laboratorio de Propulsión a Chorro (JPL) usó un código RS (255, 223, 33) con corrección de 16 errores sobre F 256 como un código externo, con un código interno convolucional de tasa 1/2 y 64 estados (consulte también la Sección IV-D). El decodificador RS utilizó hardware de propósito especial para la decodificación y fue capaz de funcionar hasta aproximadamente 1 Mb/s [27]. Este sistema de codificación convolucional/RS concatenado se convirtió en un estándar de la NASA.

1980 vio la primera aplicación comercial importante de códigos RS en el estándar de disco compacto (CD). Este sistema usaba dos códigos RS cortos sobre F 256 , a saber (32, 28, 5) y (28, 24, 5) códigos RS, y operados a tasas de bits del orden de 4 Mb/s [28]. Todos los sistemas de almacenamiento magnético de audio y video posteriores han utilizado códigos RS para la corrección de errores, en la actualidad a tasas mucho más altas.

[...] Linkabit Corp. fue fundada por Irwin Jacobs, Len Kleinrock y Andy Viterbi en 1968 como una empresa de consultoría. En 1969, Jerry Heller fue contratado como el primer empleado de tiempo completo de Linkabit. Poco después, Linkabit construyó un prototipo de decodificador de algoritmo Viterbi de 64 estados ("un gran monstruo que llena un rack" [60]), capaz de funcionar a 2 Mb/s [61].

  • [27]: RW McEliece y L. Swanson, "Los códigos Reed-Solomon y la exploración del sistema solar", en Códigos Reed-Solomon y sus aplicaciones (SB Wicker y VK Bhargava, eds.), págs. 25–40. Piscataway, Nueva Jersey: IEEE Press, 1994.
  • [28]:KAS Immink, “Reed-Solomon codes and the compact disc”, en Reed-Solomon Codes and Their Applications (SB Wicker y VK Bhargava, eds.), págs. 41–59. Piscataway, Nueva Jersey: IEEE Press, 1994.
  • [60]:D. Morton, "Andrew Viterbi, ingeniero eléctrico: una historia oral", IEEE History Center, Rutgers U., New Brunswick, NJ, octubre de 1999
  • [61]: JA Heller e IM Jacobs, "Descodificación de Viterbi para comunicaciones espaciales y satelitales", IEEE Trans. común Tecnología, vol. COM–19, págs. 835–848, octubre de 1971.

Pregunta: ¿Qué hardware de la nave espacial Voyager realizó la codificación de datos transmitidos de una manera tan complicada? ¿Usó la decodificación terrestre "un gran monstruo llenando un estante"?

Estoy interesado en ver y/o leer sobre el hardware (y el software si es posible) que implementó la codificación a bordo de la nave espacial Voyager y el que implementó la decodificación en tierra. A bordo de los Voyagers, ¿era una computadora diminuta y un buen código, o la codificación se realizó con una implementación de hardware?

Podría dedicar más tiempo a investigarlo más tarde, pero creo que la respuesta a la pregunta 2 puede provenir de lo que es un MCD en la sección 4.3 de DESCANSO Design and Performance Summary Series, Voyager Telecommunications, (2002) :
Se incluyó un codificador de hardware Reed-Solomon en Voyager, aunque el software no se incluyó en el lanzamiento, pero según esta página, no existe ni se pudo encontrar ninguna imagen. Sin embargo, tiene un diseño del codificador RS. meh.com/forum/topics/construyendo-el-avión-en-el-camino-arriba
@blobbymcblobby ese parece ser el comienzo de la respuesta, ¡gracias por el excelente enlace!
Demasiado corto para ser una respuesta: no es complicado, al menos en el lado de la nave espacial. La codificación es fácil. Es la decodificación que no es tan fácil. Esta no es una buena pregunta.
@DavidHammen "¿Qué hardware..." es una gran pregunta. La forma en que codifica el hardware me parece complicada, así que quiero ver el hardware de codificación real para ver si también se ve complicado , o si resulta ser bastante simple, y si la codificación se realiza con hardware o con software. . Es una gran pregunta, esperando ver la respuesta.

Respuestas (2)

Aunque queda por ver qué hay en la Voyager, el Estudio de rendimiento de la decodificación de Viterbi en relación con las comunicaciones espaciales 1 brinda una descripción de dicho sistema implementado en la Tierra para la estación terrestre:

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

No es el prototipo, es la versión final.

El prototipo puede haber requerido alrededor de 4 a 8 veces el volumen. No es un verdadero monstruo, sino que llena un estante de la mitad a la altura completa. (32 a 64 pulgadas, 0,8 a 1,6 m)

El codificador de la nave espacial Voyager era un circuito digital pequeño y simple, construido con un registro de desplazamiento de 12 bits y algo de lógica.

El registro de desplazamiento de 12 bits se construyó a partir de 3 registros de desplazamiento con 4 bits cada uno que requieren 3 chips DIL con 16 pines.

La lógica se construyó con 6 medios sumadores. Un medio sumador necesita dos puertas AND, una puerta OR y un inversor. Cada puerta con dos entradas. Usando chips con 4 puertas, necesitamos tres chips con puertas Y, dos chips con puertas OR y un chip con seis inversores.

Así que solo obtuvimos nueve chips DIP pequeños para el codificador.

Agregaré un esquema de bloques más tarde.


1 Linkabit Corporation, I. M Jacobs y JA Heller, 31 de agosto de 1971 Informe técnico final sobre el Contrato No. DAAB07-71-C-0148 (AD 738213)

¡Gracias! Este sistema estaría en tierra para recibir, ¿también se usaría para transmitir? Presumiblemente, el codificador de las Voyagers era mucho más pequeño y se fabricó antes del lanzamiento; también será genial encontrar información al respecto.
@uhoh Incluso en las décadas de 1970 y 1980, la codificación no requería "un gran estante de llenado de monstruos". La nave espacial Voyager no necesitaba "un gran estante de llenado de monstruos" para hacer la codificación. La codificación es mucho más simple que la decodificación. Ese "gran estante de llenado de monstruos" era necesario en el suelo para decodificar el enlace descendente codificado de alta velocidad de los Voyagers. Hoy en día, un FPGA pequeño hará el truco, pero no los tenían en los años 70/80.
@uhoh Otra distinción importante: el enlace ascendente a los Voyagers era increíblemente pequeño en comparación con el enlace descendente de ellos. Si bien los Voyagers tenían un poder de cómputo limitado, tenían mucho tiempo para decodificar el enlace ascendente. Si el enlace ascendente no se decodificó correctamente, los vehículos podrían haber pedido una rehacer. La nave espacial Voyager no necesitaba un "gran estante de llenado de monstruos" para la decodificación.
@DavidHammen Verifique nuevamente la redacción de la pregunta. He tratado el hardware en Voyager por separado del hardware en tierra. Solo estoy alentando a Uwe a abordar la parte de Voyager ahora.
@uhoh Quizás estoy confundido por tu pregunta. Hay dos asimetrías clave aquí que no pareces reconocer. (1) La codificación es mucho más fácil desde el punto de vista computacional que la decodificación. (2) El enlace descendente era muchos órdenes de magnitud mayor que el enlace ascendente.
@DavidHammen No entiendo qué es lo que te hace pensar que no aprecio eso. No hay nada en absoluto en la pregunta que sugiera que esas cosas podrían ser ciertas. Simplemente no parece que no reconozca esas cosas. La pregunta está escrita para permitir que se publique una respuesta. No hay absolutamente nada en la escritura de preguntas de Stack Exchange que requiera que no sepas algo para poder preguntarlo. La función de la pregunta es establecer una respuesta. La función de la respuesta es principalmente para informar a los futuros lectores.

El codificador RS es similar a los codificadores Golay y Hamming (basado en registro de desplazamiento). Por ejemplo, este recurso proporciona un diagrama esquemático.

En principio, es tan "simple" como los codificadores binarios (bits de control calculados a partir de bits de información). La principal diferencia (y complicación) es que las sumas y multiplicaciones ahora operan en bytes (comprobación de bytes calculados a partir de bytes de información), siguiendo reglas especiales en objetos matemáticos exóticos llamados "campos de Galois". El conjunto de 256 bytes forma un "campo", un conjunto finito en el que se pueden realizar todas las operaciones como con los números reales (sumas, multiplicaciones, divisiones, logaritmos,..), excepto que los resultados de estas operaciones se limitan al conjunto finito (Evariste Galois, un brillante matemático francés los introdujo en el siglo XIX. Murió a los 21 años, en un duelo). Con suficiente memoria, todas estas operaciones exóticas podrían calcularse previamente y almacenarse en tablas de consulta.

Los codificadores RS en las naves espaciales Voyager están basados ​​en hardware, ya que las computadoras a bordo en ese momento no podían tener suficiente memoria para las tablas de búsqueda (ver Construyendo el avión en el camino hacia arriba ).

El código RS generalmente se usa en combinación con un Código Convolucional (CC). La combinación es lo que se llama un Código Concatenado. Para obtener más información, CCSDS Telemetry Channel Coding (Histórico) .

¿El codificador Golay (una palabra de 24 bits asignada a cada palabra de 12 bits) tampoco era una tabla de búsqueda? Como tal, requeriría 4096 * 24 bits o alrededor de 12,3 kbytes.
@uhoh, los codificadores de todos los códigos BINARIOS (Golay, CC, Hamming, BCH, ..) se pueden implementar con unos pocos flip-flops. Entonces, probablemente también estén basados ​​​​en HW. Lo que supuso un reto para los ingenieros de la NASA (JPL) fue el codificador RS. Esa es quizás la razón por la que solo la Voyager 2 tenía la capacidad RS (consulte). Por cierto, de los 24 bits de la palabra clave de Golay, 12 bits son los bits de información. Entonces, en un enfoque de tabla de búsqueda de "fuerza bruta" para Golay, necesita la mitad de su memoria computada.
¡Es un milagro! tal vez varias docenas de chanclas? Entonces, ¿las 4096 palabras de 24 bits que están más alejadas entre sí (mi comprensión limitada) pueden contener 0-4095 como la primera mitad?
@uhoh, para ser honesto, nunca implementé ningún código en FPGA para brindarle una cantidad exacta de flip-flops para un codificador Golay. La conclusión general es: es un registro de desplazamiento de retroalimentación. Introduces tus 12 bits de información y (¡milagro!) el registro contiene tus 11 bits de control. Luego agregue un bit de paridad general. La palabra clave: 12 bits de información + 11 comprobaciones de Golay + 1 comprobación de paridad. Tome cualquier par de estas palabras clave, diferirán en al menos 8 posiciones. Tome CUALQUIER mensaje de 24 bits, habrá 1 palabra clave que difiere en un máximo de 3 lugares => empaquetamiento de esfera perfecto.
Ah... entiendo... Iré y pensaré en esto por un buen rato; Todavía estoy luchando en 3D .
@uhoh, un milagro matemático: tome el conjunto de todas las posibilidades de 24 bits. Tome las 4096 palabras clave del código Golay. Dibuje "esferas" de "distancia de Hamming" d = 3 centradas en cada una de estas palabras clave de Golay. Estas 4096 esferas llenan todo el conjunto. Con la distancia euclidiana en un espacio real de dimensión n, R^n, puedes obtener ese resultado solo con n=1. Con n = 3, lo mejor que puede empacar aún deja ~ 26% de espacio vacío (conjetura de Kepler, 1611, demostrada formalmente en 1998)
mi cerebro está aquí hoy ¿Son las "palabras clave" los 12 bits agregados o los 24? Todavía estoy tratando de entender cómo se trata de un espacio de 24 dimensiones y cómo la solución contiene de 0 a 4095 en los "bits significativos más bajos".
@uhoh, una palabra clave tiene n=24 bits. Pertenece a un "libro de códigos", un subconjunto del "espacio" n-dim. Si su mensaje tiene k bits de información, se le permiten (nk) bits de verificación. Por ejemplo, un código de verificación de paridad tiene un libro de códigos de la mitad del tamaño del espacio n (k=n-1), y cualquier par de palabras de código difieren en al menos 2 lugares. Cualquier libro de códigos tal que cualquier par de palabras de código difiera en al menos (2t+1) lugares, puede corregir errores t. También desea que su libro de códigos sea lo más grande posible (=> empacar las esferas t). El orden de los bits de información y verificación depende de usted para elegir (y estar de acuerdo con el lado Rx). La convención habitual es los bits de información primero.