Corrección de errores

Voyager 1 ¡Háblame despacio que casi no te oigo!

Recientemente ha aparecido la noticia de que la sonda Voyager 1 ha llegado al espacio interestelar (Como siempre, las noticias vienen de nuestro astro-divulgador de cabecera 🙂 ). Como podéis imaginar, el espacio interestelar está muy lejos, a unas cuantas horas-luz.

Voyager 1. Con sus paneles solares. ¡Oh Wait!

Pero no quería hablar de esto, ya que esto ya se ha tratado en muchos sitios, sino que simplemente, quería llamar la atención sobre cómo es posible que estando tan lejos, sigamos comunicando con ella.

Quiero introducir algunos detalles más «ingenieriles» que me han llamado la atención. Y también destacar, como se ve en la foto anterior, que la Voyager 1 no se alimenta por paneles solares, algo por otra parte lógico, ya que dentro de poco le llegará poca luz del sol ;).

Pero antes de pasar a los detalles que me han llamado la atención solo añadir una cosilla:  ¿Cómo saben que ha salido al espacio interestelar?, pues muy fácil, porque las condiciones externas han cambiado. Y esto ocurrió aproximadamente en agosto del año pasado (2012). Prueba de ello son las siguientes gráficas.

Caída brusca de los iones de baja energía provenientes del Sol. (Fuente Wikipedia)

En la anterior gráfica se puede ver como en agosto de 2012 hay un descenso brusco del número de iones de baja energía que se estaban midiendo hasta la fecha. Pero eso no es todo amigos, pasen a la siguiente gráfica:

Subida más o menos brusca de los iones de alta energía. (Fuente Wikipedia)

En esta segunda gráfica se observa como más o menos por las mismas fechas advertimos un incremento de los iones de alta energía (rayos cósmicos) lo que prueba que la sonda ha salido del nido, ya no está en el medio protegido por la radiación solar. ¡Impresionante! ¿no?

Todo esto gracias a un instrumento que lleva la sonda, y que sigue funcionando 36 años después de su lanzamiento, llamado Cosmic Ray System (CRS).

Pero ahora pasemos a un par de cosas que me han llamado la atención y que quería comentaros.

36 años funcionando. ¿No es mucho tiempo?

Las pilas de la NASA

Como he comentado antes, la Voyager no se alimenta por paneles solares, así que debe llevar unas buenas baterías. Pues tampoco. Las sondas Voyager se alimentan mediante un Generador Termoeléctrico de Radio-isótopos, (RTG- Radioisotope thermoelectric generator). Esta fuente de alimentación se basa en el efecto Seebeck. Este efecto provoca que si tenemos dos uniones entre dos metales con distinta resistencia, y dichas uniones están a distinta temperatura, se produce una diferencia de potencial.

Normalmente este efecto se utiliza para medir temperaturas, como en los termopares, o para enfriar (o calentar) como en las células peltier.

Básicamente lo que se hace es rodear material radiactivo que se calienta por efecto del decaimiento del isótopo, normalmente plutonio-238.

Plutonio-238. Parece caliente ¿verdad? 😉

Este material radioactivo es el que se encarga de calentar una de las uniones del termopar, la otra parte tendrá que refrigerarse, para mantener una diferencia de temperatura elevada.

Este generador tiene una vida muy elevada, ya que el plutonio-238 tiene una vida media de unos 88 años, con lo que aunque la potencia vaya decayendo con el tiempo, se estima que en 2001 la Voyager 1 proporcionaba 315W de los 470W que generaba en el lanzamiento, con lo que aún le queda potencia para un buen rato.

____________________________oOo____________________________

Actualización del 08/10/2013

Nuestro Astro-divulgador de cabecera explica en este post, ¿Por qué las sondas espaciales usan plutonio? y lo explica magistralmente «as usual».

____________________________oOo____________________________

Y estando tan lejos, ¿Cómo es que aún recibimos datos?

Hay que tener en cuenta que es una sonda enviada al espacio en 1977 (y a finales, Septiembre), con lo que la velocidad de transmisión de datos de la que vamos a hablar, es de risa, o escalofriantes, según se mire, porque por ejemplo el Curiosity puede comunicarse directamente con la tierra a unos 32kbits/s, y con la  Mars Reconnaissance Orbiter a unos 2Mbits/s, que no está nada mal, pero muy lejos de las velocidades de comunicación que estamos acostumbrados a escuchar aquí en la tierra.

Pero esto es así por algo. Y es que el espacio exterior es muy duro.

Lo primero que hay que saber es que aquí en la tierra quien se encarga de enviar y recibir señales a las sondas Voyager es la Red del Espacio profundo, o Deep Space Network de la NASA. Esta instalación consta de 3 enormes antenas colocadas en distintos puntos de la tierra. California (E.E.U.U), Madrid (España) y Canberra (Australia). Esta disposición permite un amplio rango de «visión», con lo que una vez la sonda está a más de 30.000 km de la tierra siempre está a la vista de al menos una de las estaciones.

Cobertura de la Red de Espacio Profundo visto desde el polo Norte.

Cobertura de la Red de Espacio Profundo visto desde el polo Norte. Fuente Wikipedia.

Ya en el momento de diseño se previó el deterioro que iban a sufrir las telecomunicaciones, estimándose un descenso del la velocidad de datos de los 7200bps iniciales a los 40bps que tendrá al final de sus días, actualmente la velocidad de transmisión estará sobre los 600bps o menos.

Estos datos se pueden apreciar en la siguiente tabla donde se estima el tiempo de vida de los componentes esenciales para el funcionamiento del sistema de telecomunicaciones. Solamente aclarar que una parte esencial para el sistema de comunicaciones y que quizá no se tenga en mente, es el combustible (Hydracine) para la alimentación de los cohetes, que permiten a la Voyager alinear su antena en dirección a la Tierra. Ya que si no mal nos íbamos a escuchar.

Tiempo de vida y degradación de la capacidad del canal.

Tiempo de vida y degradación de la capacidad del canal.

Las dificultades que se encuentra la señal en su camino entre la Voyager y la Tierra son debidas a la interacción con el plasma, efectos de los planetas, los efectos que introduce nuestra ionosfera, el efecto doppler que hay que corregir… Vamos que lo raro es que seamos capaces de comunicarnos con una sonda tan lejana.

Pero, si podemos comunicarnos es gracias a que a pesar de todas las dificultades hay algoritmos que nos permiten detectar y corregir errores. En el caso de la Voyager utiliza un código de corrección llamado código binario de Golay. Este código añade un bit de redundancia por cada bit de datos, con lo que se dobla la cantidad de datos a enviar. Este código nos permite corregir 3 bit erróneos y detectar hasta 7 bits erróneos. También se dispuso un hardware experimental para implementar la codificación Reed-Solomon, codificación que reduce el número de bits en un 20% en comparación con la codificación de Golay.

La unión de esa baja velocidad y el código de corrección es el que nos hace posible la comunicación con la sonda en los confines del sistema solar.

Hasta aquí esta pequeña presentación de curiosidades, que al menos yo, no conocía.

____________________________oOo____________________________

Actualizado: 21/03/2016

A raíz de un comentario en la entrada he encontrado este mini-documental sobre la estación Robledo de Chavela perteneciente a la red de espacio profundo de la NASA, creo que es interesante así que aquí lo tenéis

____________________________oOo____________________________

¿Nos seguimos leyendo?

@guardiolajavi

 

_________________________________________________________________________________________

Referencias.:

Voyager Telecommunications(PDF)

Tecno-Tapa: Corrección de Errores

¡Una Quinta!

Las cuatro Tecno-Tapas anteriores se centraban un poco más en el hardware, hoy ya pasaremos a los algoritmos de detección y corrección de errores. Estos algoritmos están en la frontera entre el hardware y el software, ya que se pueden implementar tanto por hardware (con electrónica especifica para esto) o por software en lo que podríamos llamar un nivel superior.

Transmisión de datos

Cualquier transmisión de datos puede ser afectada por distintos problemas, interferencias electromagnéticas, errores en los sistemas, con lo que normalmente en cualquier transmisión de datos se implementan algoritmos de detección y/o corrección de errores.

En el sistema más básico, por ejemplo una transmisión serie RS-232, hay que elegir  la velocidad de transmisión, la forma de controlar la transmisión y recepción (protocolo), y también se elige una característica que es la paridad.

¿Qué es eso de la paridad?

La paridad es una forma básica de detección de errores, no podemos hablar de corrección porque como veremos no tiene la capacidad de corregir un posible error.

Imaginemos que queremos transmitir un dato, por ejemplo la letra «a», que está representada en binario por, 01100001.

En la transmisión serie iremos transmitiendo uno a uno cada uno de los bits que forman el dato (la letra «a»), si transmitimos el dato tal cual, es decir, transmitiendo esos 8 bits, no tendremos ninguna forma de comprobar que el dato recibido es correcto.

Para detectar si el dato es correcto o no, tendremos que añadir más información a los datos transmitidos. En el caso de RS-232 se añade un bit más, el llamado bit de paridad. Este bit de paridad consiste en contar el número de «unos» que se han transmitido y en caso de que sea par se añade un «uno» adicional, y en el caso impar un «cero».

De esta forma para transmitir la letra «a» (01100001) finalmente se transmitirá (011000010). Así, en el caso de que se produzca un error en la transmisión, seremos capaces de detectarlo. Supongamos que una interferencia cambia uno de los bits transmitidos. Por ejemplo en el caso de la letra «a», recibimos (011001010), gracias al bit de paridad nos damos cuenta de que ha habido un error en la transmisión.

Si quisiésemos transmitir el dato «01100101» conforme al tipo de paridad que hemos elegido tendríamos que añadirle un 1 al final, ya que el número de unos es par. Como hemos recibido 011001010 sabemos que algo ha ido mal, así podemos pedir al emisor que vuelva a enviar ese dato.

Como vemos esto es una idea genial, pero no tenemos posibilidad de corregir el error en la recepción, y además en el caso de que se produzca dos errores ni siquiera seríamos capaces de detectarlo.

Todos los sistemas de transmisión de datos implementan algún tipo de detección y corrección de errores. Lo que se hace es añadir datos redundantes a los emitidos para que el receptor pueda detectar posibles errores, e incluso corregirlos. Siempre hay un límite a la hora de corregir errores, por eso cada sistema se dice que es capaz de detectar X errores y de corregir X-C errores. Siempre a costa de aumentar el número de datos enviados.

Para esto se utilizan unos polinomios generadores, de forma que se hacen combinaciones más o menos complicadas de los datos emitidos, y matemáticamente se puede inferir en los datos recibidos que bits han podido ser cambiados. Siempre dentro de un límite.

Por último solamente apuntar que esta técnica no solo se aplica en los sistemas de transmisión. También se puede implementar este tipo de corrección de datos en otro tipo de intercambio de información, como por ejemplo las memorias de los microprocesadores. En este último caso se añaden algunos bits al dato almacenado en memoria, de forma que cuando se accede a él, se puede comprobar si ha sido alterado o no.

Hasta aquí una pequeña introducción para saber en que consiste la detección y corrección de errores y tener un ligera idea de cómo se puede realizar.

Nos seguimos leyendo.