viernes, 29 de diciembre de 2006

SETI@Home II

En el post anterior sobre SETI@Home me quedé a punto de contar cómo se graban las señales.

Ya dije que el radiotelescopio utilizado para SETI@Home es el de Arecibo. Es el más grande, y también el más solicitado.

¿Cuáles son las ventajas de ser grande? Burro grande, ande o no ande. Pero en este caso sí que anda.

Hay dos ventajas claras de una parábola grande. La primera es bastante obvia: cuanto mayor sea su tamaño, mayor sensibilidad tiene. Es decir, mejor escucha las señales débiles. En radioastronomía esto es especialmente interesante, ya generalmente todas las señales son muy débiles.

Estos radiotelescopios se usan para oír púlsares (estrellas de neutrones que giran a gran velocidad. Desde tierra se ven fogonazos según giran), nubes de gases interestelares (según su composición, emiten en diferentes frecuencias), estrellas de todo tipo, quásares, etc, etc. Y si hay suerte, algún día escucharán una emisión de una inteligencia extraterrestre. Así que mejor tener buen oído.

La segunda ventaja de una antena grande no es tan obvia. La forma parabólica de la antena se usa como una trompetilla para recibir. Concentra las señales de una dirección en un receptor. Cuanto mayor es la parábola, ya lo he dicho, más escucha. Pero además apunta mejor. Es decir, recibe señales de un punto concreto del espacio, y no de los alrededores.

Cuando miramos por un telescopio de luz, vemos toda una imagen. Si "miramos" por un radiotelescopio veremos sólo un punto, como si en un telescopio de luz tapáramos todo y sólo dejáramos un agujerito en el medio.

Para formar una imagen con un radiotelescopio hay que "barrer" el cielo, es decir, se mueve poco a poco y se va guardando, como haríamos con una pequeña linterna en una habitación grande. Así pueden sacarse imágenes de regiones del cielo.

Cuanto mejor se apunte, más precisión tendrá el mapa. Si se apunta mal, la imagen es borrosa.

Existe una técnica llamada interferometría, capaz de simular una antena grande a partir de muchas pequeñas. Al menos, en lo que a resolución se refiere. Son los conocidos arrays de antenas que pueden verse en algunas películas como Contact.



Pero como en sensibilidad no mejora mucho, para SETI no van tan bien.

Espero haber explicado bien por qué la antena de Arecibo es la mejor que tenemos para buscar señales extraterrestres.

He dicho que la antena está muy solicitada, y hay largas colas de espera para poder usarla. Buscar inteligencia extraterrestre no es muy prioritario, así que no se le concedería mucho tiempo.

Sin embargo, no lo necesita. Se ha ideado un método en el que la antena puede usarse cuando no la usa nadie, es cualquier rato muerto.

Se tiene conectado un receptor de radio siempre en la antena (se pueden poner varios, así que esto no es un problema). Y se graba sólo cuando la antena no se está moviendo, cuando está quieta.

Y si se está quieta, ¿quiere decir que siempre apunta al mismo sitio? Pues no. Si está quieta, en realidad se mueve a la misma velocidad que la Tierra, por tanto, lentamente, barre el cielo. Basta con grabar todo lo que se reciba en esos momentos (que no son pocos) y por supuesto, registrar automáticamente qué parte del cielo está pasando por delante, para tener una referencia.

Esto de aprovechar los ratos libres y no mover la antena, en realidad, es muy conveniente.

He dicho antes que la antena de Arecibo apunta muy bien. Supongamos que hay una señal muy alejada que llega hasta la Tierra. Si la antena, en su movimiento con la Tierra, señala ese punto, lo que se oirá será que poco a poco, a medida que la antena apunta, la señal aumentará. Llegará a un máximo, y poco a poco se "desapuntará" hasta perderla. Si se dibuja la potencia que oímos, se forma una curva llamada campana de Gauss.

Aquí se puede ver esa campana, sacada directamente del software de SETI@Home.


En rojo, la señal recibida (como se ve, muy ruidosa). En blanco, la curva de Gauss que mejor se adapta a la señal recibida.

Puede ocurrir que la antena nunca apunte directamente a la señal. En ese caso, la señal será más débil de lo que podría ser si se mirase directamente. Pero lo importante, que es la forma de la campana, no cambiaría. Como realmente no sabemos cuan fuerte será la señal si algún día se oye, esto no es un problema.

Podemos ver el símil de un barco en el mar que ve un faro. El faro gira con el foco apuntando hacia adelante. Pero el foco no es perfecto, además de apuntar directamente hacia adelante, emite algo de luz a los lados, así que desde lejos se verá una luz que crece, llega a un máximo, y se desvanece.

En el caso de Arecibo, desde que se empieza a oír hasta que se desvanece, pasan 12 segundos.

¿Y qué tiene de bueno esto para SETI? Pues es una herramienta clave para discernir señales extraterrestres, o interferencias en Tierra. Cualquier señal que no siga exactamente la curva de subida y bajada que tiene la antena, no proviene del espacio y puede ser descartada sin miramientos.

Podría darse el caso de que la señal extraterrestre no sea estable, que también varíe. En ese caso, si la variación es aproximadamente igual a la de 12 segundos de Arecibo, probablemente se descartará.

Así pues, los artífices de SETI@Home han podido sacar provecho al problema de no disponer de Arecibo todo lo que les gustaría.

Las señales grabadas se almacenan en cintas magnéticas (sí, en estos tiempos, ya que estamos hablando de varios terabytes, millones de megabytes) y se envían a la universidad de Berkeley. Allí se hacen trocitos pequeños y se mandan a los clientes para que los procesen en sus casas.

Pero esa parte da de sobra para otro post.

viernes, 22 de diciembre de 2006

SETI@Home I

El proyecto SETI@Home (Search for Extraterrestrial Intelligence at Home) es un proyecto de la Universidad de Berkeley cuyo objetivo es coordinar la búsqueda de inteligencia extraterrestre.

Aunque hasta aquí esto pueda parecer sacado de algún programa de Iker Jiménez, en realidad, el proyecto es serio.

No se busca inteligencia al tuntún, sino que buscan un tipo de inteligencia muy concreto: aquél capaz de tener una tecnología que permita enviar señales de radio al espacio.

Nosotros mismos somos una civilización capaz de eso. En realidad, no las mandamos al espacio exterior de forma deliberada. Pero estamos transmitiendo ondas de radio constantemente, y una buena parte acaba perdida en el más allá.

Los focos más potentes de señales de radio enviadas por nosotros son las emisoras de radio y televisión, y también los radares civiles y sobre todo, los militares. Estas señales, aunque destinadas la mayoría a alcanzar la superficie terrestre, se transmiten con muchísima potencia, que atravesando la atmósfera terrestre, se escapa y empieza a viajar.

En caso de que haya una civilización como la nuestra cerca, en teoría podríamos recibir sus señales de radio.

Para recibirlas, se emplean los mayores radiotelescopios existentes. Un radiotelescopio es simplemente una parabólica gigante, o muchas unidas, y una tecnología de recepción y control de los equipos lo más perfecta posible.

En el caso del proyecto SETI@Home, se utiliza el radiotelescopio de Arecibo, el mayor existente. De hecho, es tan grande que está construido en un valle de Puerto Rico, ocupando el valle por completo. La parabólica no se puede mover, y lo que se mueve es el receptor que flota sobre la parábola, donde luego se recogen las señales.



He dicho al principio que el proyecto SETI@Home coordina la búsqueda. Y si ellos sólo coordinan, ¿quién busca realmente? Pues los internautas que voluntariamente quieran hacerlo.

Procesar digitalmente las señales recibidas requiere mucha capacidad de cálculo, horas de CPU. Es decir, el ordenador debe pasarse horas y horas (o años y años) calculando y procesando un trocito pequeño de datos.

Se requiere demasiado tiempo para que un proyecto individual pueda hacerlo. Así que se recurre a pedir ayuda a los navegantes. Puedes instalarte una aplicación que ellos te proporcionan, instalarlo en tu PC y automáticamente la aplicación se conectará al proyecto, cogerá trocitos de datos y se pondrá a analizarlos. Los resultados que calcule se devolverán al servidor, que será el encargado de decidir si has encontrado algo interesante o no.

Sin embargo, se nos presentan muchos problemas con lo que recibimos. Algunos los hemos superado, o al menos, conocemos sus limitaciones. Otros nos pueden jugar una mala pasada. Paso a comentar algunos y cómo solucionarlos o esquivarlos.

  • El espacio está lleno de señales de radio. Éstas se generan de manera natural en los diversos fenómenos astronómicos: radiación de fondo que queda de la creación del universo, quásares lejanos, púlsares, nubes de gases interestelares, estrellas (especialmente nuestro Sol por su proximidad...). La tarea de buscar señales artificiales entre tanto ruido natural no es fácil. Por ello, la búsqueda se limita a señales que no pueden ser generadas de forma natural: ondas continuas, de frecuencia constante.
  • Las señales llegan muy débiles, tras tanto viaje. Se considera que con nuestra tecnología actual, si existiera otro planeta idéntico a la tierra, con la misma civilización, emitiendo las mismas señales, sólo lo oiríamos si estuviera a menos de 50 años luz. No es mucho, así que esperemos que ahí fuera emitan con más potencia.
  • Nuestra atmósfera bloquea parte de las ondas de radio. Contra esto hay dos soluciones: salir fuera de la atmósfera (inviable de momento, los radiotelescopios son enormes) o simplemente, escuchar en la parte que atraviesa la atmósfera, y confiar en que esa zona tampoco se bloquee en el planeta vecino.
  • Hay muchas señales artificiales en la Tierra que pueden confundir. Se ha hecho un intento por parte de organismos internacionales para que una zona de la banda de radio no se utilice nunca, que se limite a fines de radioastronomía. Huelga decir que esto no se respeta, y al final esta banda se usa por países que no firman estos acuerdos o por gobiernos de países que sí lo hacen de boquilla y luego "pasan". Estados Unidos, por ejemplo, ha utilizado estas bandas con fines militares. La única forma de evitar esto es escuchar un mismo punto del cielo en varias ocasiones, y viendo si la señal se repite. El segundo paso es comprobar si otro observatorio en otro lugar del mundo también lo oye. Entonces podría descartarse un origen terrenal.
La clave es el primer punto: se buscan señales de frecuencia constante. Se cree que este tipo de señales no se producen de forma natural, así que si se oyen, hay que prestarlas atención.

No todo son problemas. Afortunadamente, las señales continuas también son las más fáciles de detectar. Existen algoritmos para buscar específicamente estas señales (que se remontan a más de 200 años, con otro uso original que nada tiene que ver con los marcianos).

Este proceso de datos, llamado Transformada rápida de Fourier (FFT), permite pasar del dominio del tiempo al dominio de la frecuencia.

Me explico (para que Lau no se pierda mucho): una señal grabada, normalmente está en el dominio del tiempo. Podemos ver cómo cambia a medida que pasa el tiempo. Ahora sube, ahora baja... por ejemplo, si medimos la temperatura de la casa cada hora y hacemos una gráfica, está en el dominio del tiempo.

Con la FFT se puede pasar al dominio de la frecuencia. Es decir, cómo cambia la señal con la frecuencia. Técnicamente hablando, cómo se reparte la energía en cada frecuencia.

Siguiendo con el ejemplo de las temperaturas. Si tomamos las temperaturas cada hora durante un año, en el dominio de la frecuencia se verá que hay ciclos. Uno clarísimo es cada día. Cada día la temperatura sube, baja, sube, baja... La FFT nos permite encontrar esto: la frecuencia de los cambios.

¿Y qué es una señal de frecuencia fija? Precisamente eso, que cambia con una frecuencia exacta y constante, siempre igual. Y esto es exactamente lo que busca la FFT. Así que si grabamos una señal del espacio y le hacemos la FFT, veremos claramente si hay una señal constante.

Confiamos en las señales constantes porque son el tipo que generamos nosotros. Las emisoras de radio y TV las emiten, aunque me permito comentar que sólo las analógicas, y con matices. Las señales digitales no suelen transmitir señales constantes.

La transformada se llama "rápida", y realmente lo es. Sin embargo, hay que hacerla muchas veces, muchísimas en realidad, por eso un único ordenador no es capaz de hacerlo y se recurre a dividir el trabajo (divide y vencerás).

No me voy a alargar más en este post. Dejo para más adelante los detalles de cómo se graban y procesan las señales, aunque ya aviso que será un poquito más técnico.

Un saludo.

miércoles, 20 de diciembre de 2006

Dos y dos son cuatro, cuatro y dos son seis...

A poco que me conozca la gente, enseguida descubre que soy un poco freak de los ordenadores. Aunque en general se usan como un medio para lograr algo, también pueden ser un fin en sí mismo.

Hay programas de ordenador para hacer prácticamente de todo. Algunos muy sencillos, y otros son herramientas muy complicadas, de una gran potencia. A lo largo de mi vida con los ordenadores (y ya son años) he usado algunos programas más como un fin que como un medio. El objetivo era usar el programa, aprender y experimentar.

Dentro de esos programas, por ejemplo, han estado los de diseño gráfico 3D. Desde el famoso 3D Studio al POV-Ray, pasando por algunos de uso más específico como el Vistapro y el Bryce, ambos para generar paisajes. Quizás hable del POV-Ray en otro post.

También me han gustado los programas más científicos, como las herramientas de simulación y proceso matemático. De este tipo, ha habido algunos que he podido usar durante la carrera, y otros que he visto por mi cuenta. Matlab, Maple, Mathematica, Orcad, PSPICE, etc.

De entre todos, me quedo con el Mathematica.

Con el nombre que tiene, a nadie puede sorprender cuál es su uso principal. Efectivamente, es un programa de matemáticas. En realidad, es algo más. No es sólo de matemáticas, es un completo sistema de programación orientado a matemáticas, o en un sentido más amplio, a resolver problemas.

Yo empecé usarlo allá por 1996, a la vez que empecé la carrera, mitad por curiosidad, mitad para ayudarme con los ejercicios de clase. Por aquel entonces sólo vi la punta de lo que era capaz de hacer, sin meterme en serio. En el último año, ya sin carreras de por medio, es cuando he decidido investigarlo como afición.

Si uno no quiere meterse en profundidad, y le va a dar un uso de "calculadora avanzada", realmente no tiene mucha complicación, cuando se conoce la sintaxis.




Así que paso directamente a la parte con chicha.

Un tema clásico en las asignaturas de programación es programación recursiva frente a iterada. Es un problema que surge cuando queremos repetir una función varias veces para tener el resultado final, y cada resultado intermedio resultado depende del anterior. Al programar iteradamente se parte del inicio hasta llegar al final, y al programar recursivamente, se parte del final y se echa marcha atrás. Cada método tiene sus ventajas, pero no voy a entrar aquí en eso.

Como ejemplo de programación iterada frente a recursiva, siempre se enseña a calcular un número de la secuencia de Fibonacci. ¿Cómo se calcula? Pues es una sucesión en la que cada elemento depende de los dos elementos anteriores. Al programarlo de manera iterada, es muy fácil de calcular. De forma recursiva, es casi trágico.

Por supuesto, en Mathematica se puede programar de las dos formas, pero además, permite una tercera. En algunas secuencias matemáticas, no hay que calcular la sucesión. Es posible hallar lo que se llama "término general". Este término general nos dice cuánto vale un elemento cualquiera de la sucesión, sin calcular los anteriores. No siempre es posible, pero cuando lo es, la ventaja es obvia.

Mathematica es capaz de calcular algunas veces (bastantes) el término general. Y con la sucesión de Fibonacci, puede:



Una vez conocido el término general, calcular cualquier término es inmediato. Por ejemplo, el elemento mil.


Algunas cosas bastante engorrosas pueden hacerse prácticamente del tirón. Por ejemplo, calcular el volumen de la intersección de una esfera con un doble cono:


El área se calcula con:



El Mathematica trabaja con listas como si tal cosa. Matemáticamente, asocia listas de cosas con vectores, y listas de listas con matrices (y a mayor nivel, con tensores).

Sin embargo, las listas pueden ser tanto vectores como elementos de programación, pudiendo usarse para lo que siempre se ha hecho con las listas: guardar datos de todo tipo, recorrerlas, aumentarlas, reducirlas, ordenarlas, buscar elementos...

Los elementos que contienen las listas pueden ser de cualquier tipo. Números, variables, funciones, otras listas... todo vale.

Pero aquí viene una diferencia importante con cualquier otro lenguaje. Las listas, en realidad, son un tipo de dato más. Cada tipo de dato tiene una cabecera, que en cierto modo, son funciones también. Así, una lista es con conjunto de datos que tienen la cabecera List, pero una suma como x+y+z, también es un conjunto de datos (x, y, z) y que tienen la cabecera de suma, Plus. Y estas cabeceras pueden manipularse.

Para quien no haya visto el Mathematica nunca, este párrafo anterior habrá sonado a chino. Pero con un ejemplo, se ve muy rápido lo potente que puede ser.

Tenemos una lista de datos. Queremos sumar sus valores. No hay que ir uno a uno, simplemente, hay que cambiar la cabecera List por Plus.

El cambio de cabecera se puede hacer de tipos que no sean List, por supuesto


Y para terminar este post tan técnico pero tan apasionante (¿a que sí?), comento la última gran diferencia que le da tanta potencia al Mathematica.

El Mathematica es capaz de trabajar con patrones. Estos patrones son cualquier cosa que definamos. Puede ser un patrón de números enteros, de números complejos, de números primos, de símbolos (como las variables), puede ser de expresiones que tengan una cabecera concreta, pueden ser estructuras matemáticas, pueden ser listas...

La mayor utilidad de los patrones es extraer datos de listas, y sobre todo, manipular listas para cambiar un patrón por otro.

Ejemplo práctico: todos sabemos (¿verdad?) que el logaritmo de un producto es la suma de logaritmos. Pues es muy fácil crear una sustitución para realizar este cambio en nuestras expresiones:


La verdad es que me costó mucho cogerle el truco al Mathematica. Para alguien acostumbrado a la programación clásica (que Mathematica también hace), el cambio es bastante lioso, y se tiende a hacer las cosas a la antigua usanza. Sin embargo, estos métodos de programación son increíblemente potentes a la hora de resolver problemas.

Bueno, el post me ha quedado bastante más técnico de lo que pretendía. Me he liado mucho, que es lo que suele pasar cuando algo entusiasma. Prometo que antes de volver a decir nada del Mathematica, escribiré cosas más ligeritas.

Y por supuesto, cualquier duda o consulta, podéis hacerla que para eso son los comentarios :)

Gracias por aguantarme y un saludo.

martes, 19 de diciembre de 2006

¿Y este botón qué hace?

Con este post arranca mi blog. Ciertos amigos me han picado con lo del blog (en realidad me he picado yo solo viendo los suyos) y me he animado a crear y empezar uno.

No me gustaría darle un enfoque tipo diario, sino más bien de artículos u opiniones personales. Es una cosa que requiere tiempo e interés, y está por ver si lo tengo.

He aquí, pues, la inauguración, como mandan los cánones:



Entrando en materia...

Para ayudarme en mis estudios de japonés, y porque soy un poco freak tecnológico, me compré un diccionario electrónico japonés-español-inglés, de la marca Casio.



La verdad es que es una maravilla, y no es comparable con los diccionarios electrónicos de idiomas europeos que pueden verse por los bazares, que son básicamente, listas de conversiones de palabras en varios idiomas.

Estos diccionarios electrónicos japoneses son muy completos. Tienen un gran teclado y una buena pantalla, y no se limita a convertir palabras. En la mayoría de los casos, incluyen ejemplos, formas de uso, acepciones, etc. Además, tienen una buena colección de diccionarios en cada cacharro, para hacer diferentes consultas. Realmente, una gran ayuda.

Sin embargo, para los no japoneses, tienen una pega. Estos diccionarios no están pensados para que los occidentales aprendamos japonés. Su enfoque es para que los japoneses puedan aprender español e inglés (u otros idiomas, según el modelo). Esto se deja ver en varios detalles, como el que las explicaciones en pantalla normalmente sean en japonés, o que el propio manual, bastante extenso, esté íntegramente en japonés.

Otras marcas, como Canon, incluyen una guía rápida en inglés, o la posibilidad de cambiar el idioma de los menús en pantalla. No en Casio, donde diccionario y guía de usuario están en japonés.

Por todo ello, intenté hacer una guía rápida del diccionario en español, que facilite el uso básico del mismo e invite al usuario a que pruebe botones un poco al tuntún. También a que quite el molesto beep que se puede oír al pulsar las teclas.

El manualillo sirve para el diccionario Casio XD-H7500, que es el que tengo. Desde que me lo compré, han salido dos modelos nuevos con español (XD-L7500 y XD-ST7500), que además, hablan y pueden conectarse al PC para subir documentos.

De aquí lo podéis bajar, en formato PDF. Espero que os sea de utilidad y que podáis sacarle partido. Si no os funciona el link, será que lo han borrado. Dejadme un comentario y lo arreglo.

Hasta el próximo post.