miércoles, 9 de septiembre de 2009

Hay ruidos... y ruidos(II)

Todavía no voy a desvelar el misterio panteado en mi entrada anterior "Hay ruidos y ruidos (I)". Antes de resolver el aparente misterio quiero incidir un poco más en el tema del ruido.

Shannon demostró de forma elegante la capacidad de un canal con ruido gaussiano. La ecuación establece una capacidad de información en bits/segundo (unidades de información por segundo). Desgraciadamente Shannon no concluye la forma de conseguir esa capacidad. En cualquier sistema real, esta capacidad está algo o mucho por debajo de este límite.

Lo primero que hay que saber es que la información en bits por segundo no tiene que ver con la velocidad de comunicación en bauds (aunque en algunos modos pueda coincidir o aproximarse mucho, en otros son valores totalmente diferentes). Por ejemplo, es posible comunicar a 400 bauds (bauds es la velocidad en símbolos por segundo) para obtener finalmente valores tan dispersos de información como 20 bits/segundo o 40000 bits/segundo. Intuitivamente, y sin acudir a la ecuación de Shannon, podemos pensar que para el primer caso se podrá hacer con relaciones señal/ruido más bajas que para el segundo.

Para el primer caso, bastará con que la información correspondiente a un bit se distribuya en varios símbolos, mientras que para el segundo un símbolo deberá proporcionar más de un bit. Los sistemas de comprobación (CRC...) y corrección de errores (Hamming, Reed Solomon, Viterbi...) añaden símbolos que NO contienen información pero hacen el mensaje más largo en número de símbolos. Esto permite reducir la probabilidad de error respecto a un mensaje sin codificación en iguales condiciones de relación señal/ruido.

Sistemas como el GPS llevan esto al límite. Para transmitir 50 bits/segundo emplean una velocidad algo superior a 1 Mbaud. Esto permite recibir la señal cuando su nivel de energía es menor que el ruido de fondo presente. Es lo que se denomina espectro expandido.

Todas estas técnicas no están en contra de la teoría establecida por Shannon. Técnicas similares se emplean en comunicaciones del espacio profundo o a nivel de aficionado en comunicaciones EME (rebote lunar). Es como hacerse entender gritando más (mejor relación señal ruido) o hablando más bajo pero mucho más despacio, marcando la pronunciación de cada letra o repitiendo lo mismo varias veces (sistema redundante). En los dos casos se invierte la misma cantidad de energía, en el primero con más potencia en menos tiempo, y en el segundo con menos potencia durante más tiempo. Por lo tanto, el resultado debe ser similar.

Si se pregunta qué tiene que ver esto con la paradoja de la eliminación de ruido en la recepción de voz... ¡lo siento! pero tendrá que seguir esperando. Mientras tanto vaya pensando en el concepto de redundancia. Cuando se repite algo que ya sabemos, no se aporta información.

lunes, 7 de septiembre de 2009

Homenaje al libro

Era una simple cuestión de tiempo. Tras unas decenas de años dedicados al desarrollo de lo que ahora se llaman sistemas "empotrados" y que yo llamaba simplemente sistemas basados en microcontrolador (¡sí! yo trabajé con dispositivos MCS48) ha llegado el momento de dar un gran salto.

A medida que se fue disponiendo de nuevos procesadores con características más avanzadas, la petición de mayores funcionalidades para los diseños era un hecho inevitable. Sin embargo, quizá por los dispositivos que me tocó en suerte desarrollar, nunca tuve necesidad de afrontar diseños que no se puedieran abordar desde el punto de vista de "un solo hombre y desde cero".

Ciertamente, tuve que adoptar algunas estrategias para mejorar mi rendimiento, como el uso de compiladores de lenguaje "C", la modularización del trabajo, el aprovechamiento de lo escrito previamente... pero simpre fue posible mantener la filosofía.

Estos últimos años, mi trabajo me ha separado de la labor pura de desarrollo ¿Será el principio de Peter? pero en mis escasos ratos libres no puedo dejar de pensar en que algún día terminaré esa máquina revolucionaria que me dará la satisfacción del ingeniero (Ver página 173). En algunas entradas previas ya he hecho mención a mis devaneos más recientes en este sentido.

Para ello, he tenido que adaptar mi mentalidad. Parece que no se pueden diseñar máquinas que no tengan pantalla a color táctil con gráficos en movimiento y sonido. El indicador luminos, el zumbador y los interruptores han pasado a la historia.

Así que, tras muchas dudas, decidí que debía dar un gran salto, e informarme a fondo de esa cosa que llaman "embedded linux", que pone de forma inmediata a disposición del desarrollador de "equipos electrónicos basados en microprocesador" el trabajo de decenas de miles de horas de excelentes programadores.

Una cosa es decirlo así, y otra cosa es aplicarlo en la práctica. El comienzo de búsqueda de información, como en muchas ocasiones, comenzó en la red. La red está llena de información, pero extraer la que es realmente de interés y distinguir entre la válida, la regular, la mala e incluso la malintencionada (por cierto muy abundantes éstas dos últimas) es otra cosa.

Como en otras ocasiones he procedido del modo habitual: Leer mucho, extraer información para ir rechazando la inútil o inválida, seguir leyendo más y seguir extrayendo. Hasta que llegué a un punto en el que las numerosísimas dudas se iban resolviendo con lentutud, tras horas de búsqueda y filtraje de información. En ese momento me vino la inspiración. Me acordé de algo que hacía antes de que existiese internet. Buscar libros sobre el tema en una librería. Con lo que ya había aprendido, seguro que sería capaz de apreciar qué libros contienen información útil.
Así lo hice. Una visita a una librería técnica, unas horas de ojeo, y salí de allí con unos cuantos libros.

Ahora invierto más tiempo leyendo y consultando los libros que buscando información en internet y cuando hago esto último la búsqueda es más fácil, dirigiéndose de forma directa a fuentes de mayor fiabilidad.

Poco a poco voy logrando mi propósito de conocer el medio en el que me voy a mover en el próximo futuro. Y he dado el gran salto gracias a los buenos libros. Alguien que leí hace tiempo pero que no recuerdo dijo que escribía libros proque creía que el mejor modo de aprender sobre un tema era escribir un libro sobre él. Debemos agradecer a quienes aún siguen escribiendo con la intención de aprender y transmitirnos lo aprendido.

jueves, 3 de septiembre de 2009

Hay ruidos... y ruidos (I)

Ya estamos de vuelta de vacaciones. Han actuado como un filtro atenuador que ha atenuado el exceso de ruido que tenía en mi cabeza. Pero creo que al mismo tiempo ha reducido de forma similar el nivel de información. Esperemos recuperar la información sin aumentar el ruido.

Y hablando de ruido ¿Hasta qué punto el proceso digital de señales es capaz de eliminar el ruido?. Para ello, en primer lugar debemos aclarar qué es el ruido.

Desde un punto de vista puramente teórico es toda forma de energía que no contine información útil. Desde un punto de vista práctico esta definición también parece aceptable. Si, por ejemplo, estamos escuchando una transmisión en nuestro equipo de onda corta y alguien se pone a transmitir en la misma frecuencia, evidentemente aunque se transmite información, para nuestra recepción es puro y simple ruido. Si estamos en un bar lleno de gente conversando el resto de las conversaciones contienen información pero es ruido en nuestra conversación.
Pero la generada por humanos no es la única fuente de ruido. Tenemos también el propio ruido de los equipos, debido a sus componentes (En los equipos SDR ese ruido se manifiesta debido a la precisión de la conversión A/D y del cálculo posterior), el ruido térmico, el ruido atmosférico en formas muy varidas...
El ruido que NO SE PUEDE ELIMINAR es el ruido aleatorio. Por su propia definición, el ruido aleatorio es imprevisible, y por lo tanto es imposible contrarrestarlo. A esta categoría pertenecen el ruido térmico y parte del ruido atmosférico. Otros ruidos, sin embargo, son más previsibles. Supongamos que es nuestra escucha de una emisión aparece, debido a la "carga" de un transmisor, un tono, o debido a un mal filtraje un zumbido. Estos ruidos son "previsibles" y es posible eliminarlos.
Desde luego, si el ruido está dentro del ancho de banda de nuestra señal, al eliminar el ruido eliminaremos también parte de la señal, pero aún así el resultado es una mejora de la relación S/N (la cantidad de energía con información respecto a la cantidad de energía con ruido) lo que redunda en una mejora de la recepción.
¡Pero yo he visto y escuchado sistemas que mejoran la calidad de la voz eliminando el sonido de "lluvia" de fondo!. ¿No es caso ruido aleatorio?. Pues sí, es ruido aleatorio. Pero no pienso desdecirme de mi afirmación anterior respecto a la imposibilidad de eliminarlo. Seguiremos hablando de ruido y aclararemos esta paradoja.