nov 19 2011

¿Por qué un CD tiene esa capacidad, y no otra?

A raíz de una interesante conversación sobre muestreo de señales que mantuve con Agustín terminé de encajar las piezas de un asunto que lleva mucho tiempo interesándome: el porqué de la capacidad de los CD-ROM. Ya que para comprender la explicación es preciso conocer algunos conceptos, los iré intercalando conforme vaya haciendo los cálculos.

Por un lado, la frecuencia máxima que puede captar el oído humano es de, aproximadamente, 20kHz. Por dejar un poco más de margen, a la hora de grabar un sonido la frecuencia se extiende hasta los 22kHz. Es decir, que en un mp3 existen sonidos que no somos capaces de oír, pero nuestro perro sí.

22 kHz = 22000 Hz

Según el teorema de muestreo de Nyquist-Shannon, fundamental en las telecomunicaciones, a la hora de muestrear una señal (esto es, tomar valores de la señal) es necesario que la frecuencia de muestreo sea el doble que la de la onda a reconstruir. Es decir, que si queremos muestrear una onda de 100Hz, la frecuencia de muestreo ha de ser de al menos 200Hz.

22000 Hz * 2 = 44000 Hz

El siguiente paso al del muestreo es el de la cuantificación y codificación, o conversión de los valores continuos en valores discretos. Básicamente, este proceso consiste en atribuir a cada valor medido un valor finito. Por poner una analogía, se trataría de algo similar a lo que ocurre con los colores: si bien en el arcoiris existen infinidad de colores, cuando queremos expresar esos conceptos empleamos el lenguaje, que asigna a cada color, con cierta precisión, una palabra. Pues bien, con el muestro del Audio para CD ocurre lo mismo: se codifica en 16 bits o, lo que es lo mismo, existirían 216 colores diferentes de los que se podría hablar por medio del lenguaje.

44000 Hz * 16 bits = 704000 bits/s

Sin embargo, estamos considerando una única medición, cuando sabemos que los CD tienen audio en estéreo. Por lo tanto, en realidad se están realizando dos mediciones, una por cada canal (“altavoces” izquierdo y derecho).

704000 bits / s * 2 = 1408000 bits/s

Un byte son 8 bits, por lo que tras efectuar la siguiente operación obtendremos los bytes que ocupa un archivo de audio por cada segundo. Podríamos continuar sin esta división, pero por razones de comodidad es conveniente.

1408000 bits/s  /  8 = 176000 bytes/s

Ya que la cifra sigue siendo bastante elevada, procedemos a dividir la cantidad obtenida por 1000 para pasarlo a kilobytes / segundo. Algunos diréis que hay que dividir entre 1024, pero en ese caso estaríamos hallando los kibibytes. Son valores muy similares, pero la diferencia es significativa.

176000 bytes/s / 1000 = 176 kB/s

La siguiente operación sirve para hallar cuántos kilobytes son necesarios por cada minuto de grabación.

176 kB/s * 60 = 10560 kB/min

Aquí viene un punto interesante: un CD de audio tiene una capacidad máxima de grabación de 74 minutos, un número para nada estándar. ¿A qué se debe esto? Pues bien, originariamente el CD se enfocó a un público culto con cierto nivel adquisitivo que tendría preferencia por las obras de música clásica. Una de las piezas más trascendentales y, a la vez, de mayor duración de toda la historia de la música es la Novena Sinfonía de Beethoven. La interpretación más larga de esta obra tuvo una duración de 74 minutos, por lo que la elección de esta cifra tuvo un sentido simbólico a la par que práctico: una hora y cuarto supuso un aumento importante respecto del cassette estándar, y fue un reclamo para el comprador potencial que, como se ha dicho, tendría afición a los clásicos.

10560 kB/min * 74 min = 781440 kB

Finalmente, sólo resta obtener los megabytes por medio de otra división, para así obtener el valor que se corresponde con el que aparece en esta tabla.

781440 kB / 1000 = 781.4 MB

Y de este modo hemos obtenido la capacidad máxima de un CD-ROM, o lo que ocuparía un archivo .wav de 74 minutos en nuestro disco duro.


oct 10 2011

Breve resumen de mis últimas semanas

Lo sé, la forma en que voy a comenzar esta entrada ya está muy trillada (más de lo que debería), pero realmente es lo que ha ocurrido: estas últimas semanas he estado bastante ocupado, y apenas he tenido tiempo para escribir. Hay varias cosas acerca de las que os voy a hablar que necesitarían una entrada propia, pero si lo hiciera así estaría hasta dentro de un par de meses redactando. Dicho esto, allá van las buenas nuevas:

Empecemos con lo friki. El fin de semana del 17 y 18 de septiembre se celebraron las XV Jornaícas del manga y anime de Zaragoza. Aunque no me apasionan los cómics japoneses, el ambiente que hay es fantástico: la mayoría de la gente va disfrazada de algún personaje de una serie o videojuego (a esto se le conoce como cosplay), así que por no desentonar me llevé mi ya famosa “camiseta del altavoz” y un gorro de Yoshi. Además de pasar un buen rato con algunos amigos de la asociación que organizó este evento estuve cogiendo ideas para mi cosplay de Sauron (el Señor de los Anillos). Hace unos meses os hablé de este peculiar disfraz que estaba haciendo, aunque acababa de comenzarlo y no lo tenía nada claro. Sin embargo, a día de hoy me queda una hora de trabajo en el yelmo, y a finales de la semana que viene quiero tener terminado el resto de la armadura. Para que veáis que no os engaño, os dejo con esta foto:

Pasando a cosas algo más serias, el sábado 24 fui a Madrid con Pepe a la OSHWCon, un congreso de hardware libre, electrónica y robótica. La intención original era ir a alguna charla, ya que se trataban temas interesantes. No obstante, pensamos que podríamos aprovechar la ocasión para enseñar el Osciloduino a un público más selecto. Dicho y hecho: adaptamos una fuente de alimentación para que suministrase la tensión requerida por nuestro invento, y salimos hacia la capital del Reino con un pequeño laboratorio que conseguimos meter en una maleta (para que os hagáis una idea, si hubiese pretendido viajar con eso a Estados Unidos, aún estarían interrogándome). Tras un cómodo viaje en AVE y un cuarto de hora de taxi llegamos al centro de FP que acogía el evento, a un minuto de que diera comienzo la primera charla, que versaba sobre impresión 3D. Después fuimos a la llamada “zona de cacharreo”, una sala en la que aquellos que tenían alguna creación podían enseñarla al que estuviera interesado. Allí conocí a bastante gente, aunque con algunos de los cuales ya había entablado contacto por Twitter. Allí sacamos el Osciloduino, el portátil, el generador de ondas, la fuente de alimentación, la documentación y los panfletos, y esperamos a que fuese llegando gente. Mientras tanto los chicos de Complubot nos estuvieron enseñando el Arduino Lottie Lemon, que hasta unas horas después no se presentaría oficialmente en España. En cuanto a nuestra Tengo que decir que nos esperábamos que llamase la atención, pero poco más. En absoluto creímos que pudiese pasar lo que pasó: a los que se acercaron les encantó, se quedaron alucinados por nuestra pequeña caja de puros con pantalla. Varias personas hicieron fotos o vídeos con el osciloscopio como protagonista y, aunque es algo anterior, Bricogeek publicó una entrada sobre él.

Tras este pequeño momento de crecimiento del ego fuimos a otra charla, algo más técnica, sobre FPGAs (hasta entonces nunca había oído hablar de ellas) que me resultó bastante interesante, aunque de momento superan mis conocimientos. Como ya era mediodía, fuimos a comer a un bar cercano y regresamos a tiempo para la tercera charla, esta vez sobre robótica y educación, a cargo del responsable de Complubot. Iba con la idea de enterarme de cómo montar (por última vez) un club de robótica en el colegio, pero no dijeron nada que no supiera. De todos modos, en el turno de preguntas pregunté al ponente qué se podría hacer para que los alumnos de Bachillerato se interesaran por el tema, y su respuesta fue tajante: “matarlos a todos”.

A continuación volvimos a la zona de cacharreo para aprovechar los últimos minutos antes de la siguiente charla. Como no teníamos mucho tiempo, decidimos que lo mejor sería sacar sólo el Osciloduino, y enseñarlo sin encenderlo. Pues bien, acabamos teniendo que montar el garito rodeados de unas 15 personas, todos impresionados por nuestro prototipo. Incluso a David Cuartielles, el co-fundador de Arduino, le encantó. Muy ilusionados por la acogida recibida, fuimos a la última charla, esta vez de David, en la que habló sobre Arduino en general. Cuando terminó, nos despedimos de toda la gente nueva que habíamos conocido, y nos fuimos a coger un taxi para volver a Zaragoza. Sin embargo, cuando estábamos ya en la calle, un chico nos persiguió para pedirnos ¡que fuésemos a la Carlos III de Madrid a hablar sobre el osciloscopio! Como podréis imaginar, todo esto ha hecho mella en nosotros, y hemos decidido lanzarnos al antes hipotético segundo prototipo. Para diciembre esperamos que esté listo, pero eso es otro tema y de momento es confidencial.

Por otro lado, la semana pasada me operaron, y es por eso por lo que no he podido escribir durante los últimos días. Aprovecho para deciros que me toca pasar por quirófano de nuevo la semana que viene, así que estaré otros tantos días sin publicar mucho, pero no os preocupéis, no es nada grave.

Y así es como debería quedar

Y así es como debería quedar

Y finalmente, os anuncio que he conseguido montar en mi colegio un grupo de “robótica” (por designarlo con algún nombre), aunque me temo que será bastante efímero No obstante, estoy plenamente convencido de que nuestro primer proyecto, una impresora 3D, estará acabado a tiempo antes de Navidades. Somos pocos (de momento, tres y nuestro profesor), aunque todos echamos ganas, que al final es lo que cuenta. El modelo que hemos elegido es la RepRap Prusa Mendel, principalmente porque es la más barata y la más rápida de construir. De momento no hay nada claro, salvo que ya hemos comprado toda la electrónica, pero en cuanto tenga más detalles os informaré.

En general, eso es todo en lo que ando metido ahora. Tengo alguna que otra entrada en el horno, pero supongo que las dejaré para después de las Fiestas del Pilar, ya que necesito documentarme para terminarlas.


sep 18 2011

Truco para recordar lo que se ha soñado

No me lo he leído todavía, pero debe de ser una maravilla

Que todos soñamos es un hecho. Sin embargo, muchos de nosotros no recordamos la mayoría de nuestros sueños, ya sea porque nunca lo hacemos o porque no coincide la hora del despertador con una fase REM.

Pues bien, desde hace unas semanas estoy probando una técnica que descubrí por casualidad que sirve para recordar los sueños. Era la típica noche de verano en que no hace mucho calor, así que decidí no abrir la cama. Pero conforme fueron pasando las horas, la temperatura bajó, y alrededor de las 6a.m. me desperté, miré el reloj y me tapé. A lo largo de las noches siguientes hice lo mismo, hasta que me percaté de algo muy curioso: siempre que me despertaba a mitad de noche era en medio de un sueño, el cual recordaba vívidamente. El pequeño problema era que luego me volvía a dormir y por la mañana lo había olvidado, pero sí que recordaba el hecho de que había tenido el sueño.

Basándome en todo esto, he perfeccionado la técnica hasta conseguir recordar todos los detalles de los sueños que tengo. El procedimiento es bien sencillo: en cuanto me despierto porque tengo frío me encuentro con el sueño metido dentro de la cabeza, así que cojo una libreta que tengo al lado de la cama y apunto las ideas principales. Luego abro la cama, me meto dentro, y sigo durmiendo. Al día siguiente puede que recuerde parte del sueño, o no, pero ya no importa porque está a buen recaudo.

¿Esto a qué se debe? Si queréis que os sea sincero, no tengo ni idea. No obstante, tengo una teoría: según el artículo de la Wikipedia sobre la fase REM,

la temperatura corporal no está bien regulada y se aproxima a la temperatura ambiente.

Si de las 5 a las 7 de la mañana es cuando comienza a hacer fresco, basta con que entremos en fase REM para que la temperatura corporal descienda hasta un punto en que nos despertamos. Y como es en la fase REM en la que se producen las ensoñaciones más elaboradas, siempre nos despertaremos en mitad de un sueño.

Que tengamos ganas de tomar apuntes en mitad de la noche es otro tema.


sep 13 2011

Al otro lado de las TIC

A lo largo del curso pasado mi hermano y sus amigos trabajaron en una web, Al otro lado de las TIC, que presentaron al Premio Internacional Educared (en el cual resultaron vencedores el año pasado, y yo el anterior). Un trabajo impresionante que recopila una serie de entrevistas a profesores, alumnos y personas destacadas dentro del mundo de las TIC en las que se tratan temas como las aplicaciones que se pueden emplear en el aula, el uso que se debe hacer de ellas, el papel actual de las TIC en la enseñanza… Desgraciadamente, a pesar de que todos pensábamos que iban a llevarse un premio, esta vez no han tenido suerte. Aún les queda un par de años para volver a intentarlo, pero como se dice siempre, “lo importante es participar”. Y aunque parezca una coletilla que ya no tenga mucho significado, realmente en este tipo de concursos lo que realmente vale la pena es lo que se aprende por el camino: hace un par de años, aunque no gané este mismo concurso, consideré que el esfuerzo valió la pena por todo lo que habíamos hecho. Supongo que por algo dirán que lo importante no es llegar, sino el camino.

¡Os dejo con un vídeo introductorio que hicieron, y desde aquí les doy mi enhorabuena!


sep 2 2011

Programa en C que calcula raíces cúbicas

Un par de días antes de que mis vacaciones en los Pirineos finalizaran, mi padre me explicó cómo resolver raíces cúbicas a mano empleando un curioso método que consiste en descomposición en sucesivas raíces cuadradas. Para que nos entendamos:

3√a = a^(1/3) = a^(4/12) = a^(1/12) * a^(3/12) = a^(1/12) * a^(1/4) = √(√(a)) * a^(1/12)

De este modo, y realizando el mismo procedimiento sucesivamente (en este caso, habría que volver a hacerlo con el elemento a^(1/12) ), nos iremos aproximando cada vez más y más al resultado real. Cuanto mayor sea el denominador de la potencia que no podemos calcular a mano, más se aproximará el valor del elemento a 1, y mejor será la estimación.

El código está basado en este principio, así como en una sucesión en la que reparé al realizar los cálculos a mano. En algún sitio hay un pequeño fallo que subsané sumando 2 a una variable, pero no tuve las ganas suficientes de rastrearlo a lo largo de las más de 10 carillas que rellené pensando en esto.

Y aquí está el código, yo lo he compilado empleando gcc en Ubuntu, pero para gustos, colores:


ago 17 2011

Contact, de Carl Sagan

Hacía meses que no leía un libro de esos que no puedes cerrar hasta que llegas a la última página. Contact no sólo consigue eso, sino que además es profundo (algo que otros autores que logran mantener la tensión hasta el final no consiguen). Me ha enganchado tanto, que ayer superé por completo la pereza que da leer en inglés (me lo compré en USA) y acabé leyendo 250 páginas casi sin interrupción.
Se trata de una novela de ciencia ficción, sí, pero no es el típico relato de “Humanidad encuentra vida inteligente extraterrestre y…”: Sagan hace hincapié en muchos aspectos de este tema tan habitual en este género que normalmente se tratan muy por encima, si es que se llegan a considerar. Especialmente interesante me ha resultado la “batalla” entre Ciencia y religión que se da a lo largo de todo el libro: aunque la mayoría de ideas no me resultaban desconocidas, la forma en que se entrelazan me ha hecho pensar bastante (de hecho, esta noche únicamente he soñado con Contact).

No os voy a destripar más el libro, así que lo único que puedo decir es que lo recomiendo a todos aquellos que disfruten de la buena ciencia ficción. Y para los que no estén muy versados en el género, no os asustéis: el tiempo interno de la obra está situado en la década de los 90, y la trama es realista, por lo que no hay diferencias abismales con una novela de ficción habitual.