feed icon Ambos idiomas / Both languages
(es|en)

Interferencia de los SMS
No se si alguna vez escucharon los ruidos tipo "tucu tuc tucu tuc" que hacen los celulares cuando están cerca de micrófonos o parlantes... Bueno, el otro día estaba probando un algoritmo que estoy haciendo para el google summer of code (que requiere procesar voz en tiempo real, por lo que estaba con un headset con microfóno abierto) cuando me llegó un SMS al móvil que estaba a un par de metros mío y pude ver trenes de pulsos casi perfectos en el osciloscopio que monitoreaba la entrada de audio!!!

Se puede ver una captura de esto aca: "Catching (phone) SMS pulse train with CLAM..."

Era un tema que ya lo venia charlando con varios amigos, pero nadie (ni yo) me daba una explicación completa (y satisfactoria) del fenómeno.

Y dado que este hecho me resultó sumamente curioso y que ya un par de veces habia efectuado búsquedas en google sobre esto sin demasiado éxito, re-pregunté a varios e incluso postié en listas de mails y en mi blog sobre audio tratando de resolver lo que ya en este punto era casi un misterio para mí.

Un amigo de la facu, Andrés Kasulin, le echo un poco de luz al asunto con unos comentarios que me hizo e incluso encontró referencias sobre esto en un artículo de wikipedia.

Me dijo
que parece ser interferencia de radiofrecuencia producida por el teléfono, filtrada por el sistema formado por el micrófono, cable, los conectores y el osciloscopio y que solo se ve un pulso cuadrado porque la frecuencia de la portadora es mucho más alta que la de corte del filtro (tal vez alrededor de 10^5 veces más).

Del artículo de wikipedia rescataría que comenta que esto normalmente ocurre cuando equipos de audio, televisores o computadoras están cerca del campo del aparato GSM, y la señal de radiofrecuencia es lo suficientemente fuerte como para que los amplificadores de estado sólido de los equipos de audio funcionen como detectores. Los ruidos en si provienen de la portadora de la señal TDMA y que esta forma de RFI (interferencia electromagnética) puede ser combatida o eliminada usando protecciones adicionales o capacitores de bypass, aunque el costo elevado de esto hace muy difícil que normalmente se justifique.

[ add comment ]   |  [ 0 trackbacks ]   |  permalink  |  related link
DSPrelated.com revamped
I knew this site because reunites a lot of dsp mailing-lists (mostly yahoo groups) and even comp.dsp usenet group. It's nice to see the new site design, fully web 2.0.

News include a (big) list of employers of DSP workers and a job opening section. Also a rating system that allows you to easily rate books and resources simply by clicking on the stars.

Seems social-networking and web 2.0 is reaching all fields (I'm also thinking in LinkedIn)

Check it out, I think it deserves a look.

[ add comment ]   |  [ 0 trackbacks ]   |  permalink
Programación, dsp, audio y música
Este lunes empiezo con el google summer of code, un programa destinado a sustentar el Software Libre y el Código Abierto promocionado por Google. Mi proyecto esta relacionado con transformaciones espectrales en tiempo real para el framework CLAM, para más información sobre esto consultar esta página: GSoC2007: "Real-time spectral transformations".

De paso aviso que de ahora en más todos los artículos que escriba sobre cosas relacionadas con audio y música van a estar en esta dirección: http://audiores.uint8.com.ar/blog y en este blog va a aparecer poco sobre estos temas (algún que otro post duplicado tomado del blog mencionado o lo que cuelgue en la sección "proyectos")

Otras cosas relacionadas con el audio que recomiendo/colaboro:

CLAM: completo framework multiplataforma Software Libre para trabajar con el audio en general y música. Entre otras cosas permite el prototipado rápido de aplicaciones mediante herramientas visuales de control de flujo.

Musix GNU+Linux: distribución para hacer música y trabajar con audio y multimedia en general orientada al usuario.

Grupo Buena Señal: grupo / lista de correo en español que trata temas sobre programación y procesamiento de señales aplicados al audio y la música.

[ add comment ]   |  [ 0 trackbacks ]   |  permalink
Compilando en forma distribuida
Cuando el proyecto en el que uno trabaja empieza a crecer y tener muchos archivos, compilar todo desde cero (o recompilar una parte grande) puede tardarse un buen rato.

También ocurre que es algo común trabajar en ambientes que cuenten con varias computadoras conectadas en red y que raramente se están aprovechando al 100% todo el tiempo.

Teniendo todo esto en cuenta es posible aprovecharse de soluciones como distcc que es un programa (que además es software libre!) para compilar en forma distribuida código C, C++, Objective C y Objective C++ entre varias computadoras de una red.

Es simple de instalar y usar, y generalmente es mucho más rápido que una compilación local. No necesita que las máquinas compartan el sistema de archivos ni tener clocks sincronizados, ni tener las mismas librerias o instalados los mismos headers. Incluso las máquinas pueden tener instalados diferentes sistemas operativos.

En mi caso alcanzó con instalar el paquete distcc y configurar el archivo "/etc/default/distcc" de esta forma:
STARTDISTCC="true" # esto es para que se cargue al inicio
 
ALLOWEDNETS="192.168.1.0/24 127.0.0.1" # networks/hosts que podrán\
conectarse al demonio
 
LISTENER="" # en que interfaz deberia "escuchar" distcc
 
Nota: Dejar el valor que viene por defecto para la variable LISTENER me trajo problemas.

Y setear la variable de entorno:
export DISTCC_HOSTS='localhost maquina1 maquina 2 maquina3'
Luego compilamos con "distcc g++ loquesea" o sobrescribimos la variable de entorno "CC".

para iniciar/detener el servicio:
sudo /etc/init.d/distcc start
sudo /etc/init.d/distcc stop
sudo /etc/init.d/distcc restart
Para ver como va todo (y de paso tener algo con que entretenerse cuando uno espera que termine ;-)) esta distccmon-gnome, que es un "monitor" del demonio distcc y sus clientes distribuidos. Muestra el progreso de las tareas, archivos compilandose, etc.




También esta ccache que es otra herramienta pensada para reducir el tiempo de compilación "cacheando" las "salidas" desde la misma entrada, por lo tanto, la próxima vez la misma compilación puede omitirse. Se basa en el hecho de que en muchos casos se compila el mismo código fuente constantemente.


[ 1 comment ] ( 54 views )   |  [ 0 trackbacks ]   |  permalink
Agregando menús al blog
Tomando como ejemplo " Crear menus de navegación en CSS usando listas " logré agregarle menús a este theme del blog. Básicamente se trata de una lista con links, presentada de forma horizontal y con sus propiedades definidas vía CSS.

Por ejemplo:
<ul id="menu">
<li><a href="item1.html">item1</a></li>
<li><a href="item2.php">item2</a></li>
<li><a href="item3.html">item3</a></li>
</ul>

Lo que hice fue agregarlo en el archivo .php que genera el layout básico del theme para que lo muestre en todas las páginas. También deshabilité los links de la derecha (que no se leian bien y estaban apiñados, razón por la cual queria las "pestañas").

y agregué en el CSS:
ul#menu {  
list-style:none;
margin:0;
padding:0;
}
ul#menu li {
margin:2px;
padding:0;
float:left;
}
ul#menu li a {
display:block;
width:100px;
padding:4px 0;
text-decoration:none;
text-align:center;
font-size:11px;
font-weight: bold;
color:#472727;
background-color:#E6E6D8;
}
ul#menu li a:hover {
color:#99CC00;
background-color:#003366;
}

Me gusta muchísimo más asi, la interfaz queda mucho más limpia y clara.
Tech Tags:


[ add comment ]   |  [ 0 trackbacks ]   |  permalink  |  related link

<<First <Back | 1 | 2 | 3 | 4 | 5 | 6 | 7 | Next> Last>>