Hola betas, el articulo de hoy es más un asunto pendiente y muy técnico, hoy quiero contarles que pretendo usar matlab para hacer procesamiento digital de señales, aunque todavía no sé si es posible o que tanto tiempo me va a tomar, en fin he leído bastante sobre el tema y quiero compartirte algunas de mis conclusiones.
Es bien sabido que no me gusta usar matlab, primero que nada porque no me gusta mucho la idea de casarme con un software al que no le veo aplicación en el campo que más me interesa, me refiero al Internet, aunque tengo que admitir que me ha salvado más de una vez, mi resumen de matlab es que es una herramienta necesaria para el aprendizaje de algoritmos complicados de implementar en otros lenguajes, por ejemplo en python.
Esto es lo que vas a aprender
- ¿Se pueden procesar datos con matlab en tiempo real?
- Audio en tiempo real usando matlab
- ¿Cómo adquirir una señal en tiempo real usando matlab?
- Adquisición de voltaje usando arduino y matlab
- Procesamientos de algoritmos pesados con matlab en tiempo real
- Matlab en la industria
- Procesamiento digital de imágenes usando matlab
¿Se pueden procesar datos con matlab en tiempo real?
Si quieres la respuesta rápida, ¡¡¡SÍ!!! Ahora bien, si tienes una pentium IV olvídate del «tiempo real», de las aplicaciones más sencillas que llegue a encontrar es la de graficar un conjunto de datos provenientes de un sensor de temperatura, y por supuesto si sabes un poco de adquisición de datos, sabes muy bien que eso de la temperatura es algo así como el «hola mundo» de cualquier lenguaje de programación. O sea que es sólo el inicio de un camino lleno de tormentas…
Audio en tiempo real usando matlab
Recientemente me pidieron que investigara un poco sobre el procesamiento digital de señales usando matlab, lo primero que hice y lo que siempre recomiendo es ir directamente al sitio web de mathworks, obvio es broma :p, me fui directo a YouTube a buscar algún tutorial, no esperaba encontrar nada de calidad en español, sin embargo encontré un video en donde grafican el audio recién grabado
Parece bastante sencillo de implementar, de momento no puedo ejecutarlo, por alguna razón no puedo hacerlo desde una pc con sistema operativo Linux.
¿Cómo adquirir una señal en tiempo real usando matlab?
Una alternativa, y estoy seguro que es la preferida de los creadores de matlab, es que compres una tarjeta de adquisición de datos, las famosas daq’s son una buena alternativa si te sobran un par de cientos de dólares (un poquito más si vives en latam), sin embargo existen alternativas mucho muy buenas como arduino y raspberry, el primero es el que tiene más documentación, incluso tiene sus propias librerías lo que hace muy sencillo y rápido de implementar.
Debes que tener muy claro que si bien éste tipo de iniciativas se usan en proyectos robustos, si lo que quieres es obtener un performance muy alto deberás buscar otras alternativas.
Adquisición de voltaje usando arduino y matlab
De nuevo mi buen amigo youtube me ayudo a encontrar un tutorial en donde muestran cómo usar arduino y matlab:
Por supuesto el siguiente paso seria aplicar alguna integral o filtro para probar el procesamiento digital de la señal en tiempo real.
Procesamientos de algoritmos pesados con matlab en tiempo real
Graficar sonido y voltaje en tiempo real no me parece una aplicación muy robusta, más bien no deja de ser un proyecto básico de nivel superior para pasar la materia, es por eso que me fui a foros gringos a buscar información sobre la aplicación de algoritmos de machine learning usando matlab. Y me encontré una pregunta bien interesante:
Coursera tiene un curso de machine learning que recomiendo a cualquier persona que quiera aprender sobre aprendizaje automático, en fin, como lo medio comente al principio del post, matlab tiene la restricción de que suele ser muy usado en el campo de la investigación, principalmente para hacer demostraciones, pero es raro ver productos que corran matlab en sus sistema operativo, o por lo menos yo no me he encontrado con ninguno.
Una de las opciones con más documentación en Internet es Python junto con sus librerías, numpy/scipy, scikit-learn y pandas, estos los he usado con raspberry procesando datos en la nube. Otras opciones son Cython, weave, pyrex, swig (nunca los he usado).
Matlab en la industria
No estoy diciendo en ningún momento que matlab sea malo, es necesario usarlo para ahorrar tiempo, es decir que se usa bastante en la etapa de investigación de un proyecto, principalmente para hacer demostraciones, con el objetivo de implementarlo de manera robusta en el futuro, por ejemplo usando un FPGA.
Pensaba hacer un resumen de la siguiente respuesta, sin embargo me parece que es demasiado buena para omitirla
Procesamiento digital de imágenes usando matlab
Por último te presento algunas preguntas que encontré sobre el procesamiento digital de imágenes en tiempo real usando matlab, de nuevo me encontré con algunas respuestas que me parecieron demasiado buenas para omitirlas.
El resumen es que matlab puede ser usado para «simular» el procesamiento en tiempo real, sin embargo al aplicar algoritmos más robustos, por ejemplo transformadas, es muy común ver un retardo en el procesamiento que nos aleja bastante del termino «procesamiento en tiempo real».