Documentos de Académico
Documentos de Profesional
Documentos de Cultura
FACULTAD DE INGENIERÍA
C ARRERA DE E SPECIALIZACIÓN EN S ISTEMAS
E MBEBIDOS
Autor:
Ing. Gastón Alfredo Vallasciani
Director:
Mg. Ing. Facundo Larosa (UTN-FRH, FIUBA)
Co-director:
Dr. Ing. Pablo Gomez (FIUBA)
Jurados:
Mg. Ing. Pablo Ridolfi (UTN-FRBA, FIUBA)
Mg. Ing. Gonzalo Sanchez (Fuerza Aérea, FIUBA)
Mg. Ing. Iván Andrés León Vásquez (FIUBA)
Este trabajo fue realizado en la Ciudad Autónoma de Buenos Aires, entre febrero
de 2019 y diciembre de 2019.
III
Resumen
Agradecimientos
Índice general
Resumen III
1. Introducción General 1
1.1. Procesadores de audio . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2. Motivación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3. Objetivos y alcance . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2. Introducción Específica 5
2.1. Descripción del equipo . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2. Señal de radio FM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.3. Digitalización de una señal de audio . . . . . . . . . . . . . . . . . . 8
2.4. Patrones de diseño . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.5. Filtros FIR aplicados a procesamiento de audio . . . . . . . . . . . . 10
2.6. Compresores de audio . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.7. Tecnologías empleadas en este trabajo . . . . . . . . . . . . . . . . . 13
2.7.1. Hardware utilizado: EDU-CIAA-NXP . . . . . . . . . . . . . 13
2.7.2. Audacity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.7.3. MATLAB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.7.4. KiCad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.8. Requerimientos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3. Diseño e Implementación 17
3.1. Metodología de trabajo . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.1.1. Gestión del proyecto en Github . . . . . . . . . . . . . . . . . 17
3.1.2. Documentación . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.2. Firmware de procesamiento de Audio . . . . . . . . . . . . . . . . . 20
3.2.1. Máquina de estados del procesador de audio . . . . . . . . . 20
3.2.2. Adquisición y generación de audio . . . . . . . . . . . . . . . 21
Implementación ping-pong buffer . . . . . . . . . . . . . . . . 21
Implementación del patrón de diseño . . . . . . . . . . . . . 24
3.2.3. Implementación de filtros para procesamiento de audio . . . 25
Filtro pasabajos 15 kHz . . . . . . . . . . . . . . . . . . . . . 25
Filtro crossover . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.2.4. Compresor de audio . . . . . . . . . . . . . . . . . . . . . . . 29
3.3. Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.3.1. Análisis de los circuitos más importantes . . . . . . . . . . . 31
3.3.2. Diseño de circuito impreso . . . . . . . . . . . . . . . . . . . 32
3.4. Interfaz de usuario . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4. Ensayos y Resultados 37
4.1. Adquisición y generación de audio . . . . . . . . . . . . . . . . . . . 37
4.2. Filtros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.3. Compresor de audio . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
VIII
5. Conclusiones 47
5.1. Trabajo realizado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
5.2. Próximos pasos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Bibliografía 49
IX
Índice de figuras
4.4. Entrada comparada con salida del procesador de audio con tono
de 1 kHz. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.5. Entrada comparada con salida del procesador de audio con tono
de 10 kHz. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.6. Entrada comparada con salida del procesador de audio con tono
de 14 kHz. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.7. Entrada comparada con salida del procesador de audio con tono
de 19 kHz. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.8. Tono de 5 kHz generado con Audacity para test de compresor de
audio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.9. Medición del tiempo de ataque sobre la señal procesada por el
compresor de audio. . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
4.10. Medición del tiempo de relajación sobre la señal procesada por el
compresor de audio. . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
4.11. Banco de pruebas del ensayo integrador. . . . . . . . . . . . . . . . . 45
4.12. Lectura del osciloscopio resultante del ensayo integrador. . . . . . . 45
XI
Índice de Tablas
Capítulo 1
Introducción General
1
https://www.orban.com/optimodfm-8700i
2
http://m31electronica.com/
1.2. Motivación 3
1.2. Motivación
Capítulo 2
Introducción Específica
En acústica, los filtros poseen una frecuencia central de ganancia constante du-
rante una octava o fracción de octava y luego comienzan a atenuar la amplitud
con una pendiente que es generalmente de 6 dB/oct, 12 dB/oct o 18 dB/oct. Al
procesar una señal de audio mediante un filtro, se introduce un desplazamien-
to de fase que puede ser interpretado como un retardo, es decir, que la salida se
encuentra retrasada en tiempo con respecto a la entrada. En general, el retardo
es diferente para las distintas frecuencias, por lo tanto, cuando se tiene una se-
ñal que se encuentra compuesta por muchas frecuencias, a la salida del filtro ésta
puede verse afectada en fase, y de esta forma llega desfasada al oyente.
Los retardos de interés son el retardo de fase y el retardo de grupo. Éstos son una
medida de la linealidad de un filtro, lo ideal es que el filtro sea de fase lineal de
forma que todas las frecuencias presenten un retardo constante [2].
2.6. Compresores de audio 11
En los procesadores de audio los filtros son utilizados para limitar el ancho de
banda de la señal de audio de entrada a 15 kHz. Además, los filtros son utiliza-
dos para implementar el filtro crossover de división de bandas y para mejorar la
relación señal a ruido a la salida del procesador.
Los filtros FIR (Finite Impulse Response, Respuesta Finita al Impulso) poseen la ca-
racterística de tener una respuesta al impulso de duración limitada en el tiempo
y su salida depende únicamente de la señal de entrada. A su vez, tienen la po-
sibilidad de tener fase lineal si su respuesta al impulso es simétrica. El hecho de
que la fase sea lineal implica que el filtro no distorsiona la señal en la banda de
paso. Ésta es la característica principal para su aplicación para el procesamiento
de audio.
En la figura 2.6 se presenta la estructura genérica de un filtro FIR. En ésta se ob-
serva que en su implementación sólo se utilizan muestras retardadas de la señal
de entrada. Además, como se puede observar, este tipo de filtros al ser realizados
de forma no recursiva son intrínsecamente estables a diferencia de los filtros IIR
(Infinite Impulse Response, Respuesta Infinita al Impulso) [8].
Para este trabajo se implementaron filtros del tipo Parks Mcclellan debido a que
este tipo de filtros minimiza el error en la banda de paso y en la banda de stop.
2.7.2. Audacity
1
http://www.proyecto-ciaa.com.ar/devwiki/doku.php?id=desarrollo:edu-ciaa:edu-ciaa-nxp
14 Capítulo 2. Introducción Específica
2.7.3. MATLAB
2.7.4. KiCad
2.8. Requerimientos
Capítulo 3
Diseño e Implementación
En esta sección se describe el uso del control de versiones para realizar la gestión
del desarrollo y la documentación del trabajo.
1
https://github.com
18 Capítulo 3. Diseño e Implementación
tiene una versión estable del proyecto. El modelo de gestión de ramas utilizado
se presenta en la figura 3.1.
A partir de la rama master se generan las versiones nuevas del equipo. La versión
del equipo tiene la nomenclatura Y.X donde Y representa el número de versión y
X la revisión por bug.
Si se debe corregir un bug importante se abre nuevamente una rama del tipo de-
velop, se corrige y se realiza un merge a la rama master, luego se debe cerrar una
versión del tipo Y.(X+1).
En el desarrollo de este trabajo se generaron las ramas: developFilter, develop-
FilterOnline, developFilterOffline, developCompressor, developCompressorOf-
fline, developBandsProcessing, developUserInterface.
Algunas de las ramas mencionadas se presentan en la figura 3.2.
3.1.2. Documentación
2
https://github.com/gastonvallasciani/procesadorDeAudio/wiki
20 Capítulo 3. Diseño e Implementación
Mediante estos parámetros se obtuvo un filtro FIR de orden 21, cuyos coeficientes
son los siguientes: -423, 279, 910, -660, 658, 489, -1707, 2557, -1636, -2467, 19183,
19183, -2467, -1636, 2557, -1707, 489, 658, -660, 910, 279, -423.
La respuesta en frecuencia del filtro diseñado se presenta en la figura 3.7. En ésta
se observa que en la frecuencia de 19 kHz el filtro atenúa 60 dB a la señal de
entrada, condición necesaria para transmitir una señal de audio por medio de un
transmisor de FM.
Filtro crossover
El filtro crossover fue diseñado mediante dos filtros: un filtro FIR pasabajos y un
filtro FIR pasaaltos. Éstos fueron diseñados mediante la herramienta fdatool de
MATLAB.
Para el diseño del filtro pasabajos se configuraron los siguientes parámetros.
Design method: equiripple (Parks Mcclellan).
Filter order: minimum order.
Fs: 44100 Hz.
Fpass: 2000 Hz.
Fstop: 8000 Hz.
Apass: 1 dB.
Astop: 40 dB.
28 Capítulo 3. Diseño e Implementación
A su vez, para el diseño del filtro pasaaltos se configuraron los siguientes pará-
metros.
Design method: equiripple (Parks Mcclellan).
Filter order: minimum order.
Fs: 44100 Hz.
Fpass: 8000 Hz.
Fstop: 2000 Hz.
Apass: 1 dB.
Astop: 40 dB.
Una vez diseñados, se obtuvo un filtro de orden 10 para el filtro pasabajos y un fil-
tro de orden 9 para el filtro pasaaltos. Los coeficientes obtenidos de ambos filtros
son los siguientes:
Coeficientes filtro FIR pasabajos: 507, 1926, 3513, 5342, 6418, 6418, 5342,
3513, 1926, 507.
Coeficientes filtro FIR pasaaltos: 1474, 66, -1879, -4740, -7322, 24408, -7322,
-4740, -1879, 66, 1474.
En la figura 3.12 se presenta la respuesta en amplitud de ambos filtros en un mis-
mo gráfico. En ésta se observa que el cruce de la respuesta en frecuencia de ambos
filtros se produce en 5 kHz aproximadamente. A esta frecuencia se subdivide la
banda de 15 kHz en dos bandas independientes. Una banda se encuentra com-
prendida en el rango de 0 a 5 kHz, mientras que la otra banda se encuentra en el
rango de frecuencias de 5 kHz a 15 kHz.
En la figura 3.13 se presenta la respuesta en fase de ambos filtros. Como se puede
observar ambos filtros poseen una respuesta en fase lineal en la banda de paso.
Por último, al igual que el filtro pasabajos de 15 kHz, los filtros que forman parte
del crossover poseen retardo en fase nulo, mientras que el retardo de grupo es un
valor constante.
3.2. Firmware de procesamiento de Audio 29
3.3. Hardware
Capítulo 4
Ensayos y Resultados
En esta sección se exponen los ensayos que se llevaron a cabo a lo largo del desa-
rrollo del trabajo y los resultados obtenidos a partir de los mismos. Cada módulo
de firmware implementado fue ensayado de forma unitaria, y además, se realizó
un test integral del funcionamiento del equipo.
4.2. Filtros
Para realizar el test unitario de cada uno de los filtros diseñados para el procesa-
dor de audio se armó un banco de pruebas. El banco de pruebas armado utilizó
los siguientes instrumentos:
PC con software Audacity.
Osciloscopio UNI-T UTD2102CEX, 100 MHz, 1 GS/s.
El diagrama en bloques del banco de pruebas de filtros se presenta en la figura 4.3.
En ésta se observa que una PC se encuentra conectada a la entrada del procesador
de audio. Por medio de la PC y utilizando el software Audacity se generaron los
tonos puros necesarios para realizar las pruebas sobre los filtros. A su vez, a la
salida del procesador se conectó un parlante. Por último, se conectó el canal 1
del osciloscopio a la entrada del procesador y el canal 2 a la salida. Para este test,
en el procesador de audio se implementó únicamente la adquisición de audio, la
generación de audio y el algoritmo de procesamiento del filtro estudiado.
Para efectuar el test del filtro pasabajos con frecuencia de corte de 15 kHz se inyec-
taron tonos puros de 1, 10, 14 y 19 kHz. De esta forma, se inyectaron cuatro tonos
que se encuentran en el rango de frecuencias de la banda de paso del filtro y un
tono que se encuentra al inicio de la banda de stop. No se tomó una mayor can-
tidad de tonos dentro de la banda de stop ya que al generar tonos de frecuencias
mayores a 20 kHz la salida de audio de la PC se volvió inestable imposibilitando
la medición.
Una vez inyectados los tonos puros, se midió y se comparó por medio del osci-
loscopio la entrada y la salida del procesador de audio. De esta forma, se verificó
la respuesta en magnitud del filtró diseñado en la subsección 3.2.3. Las lecturas
obtenidas del osciloscopio al ingresar los tonos de entrada se observan en las fi-
guras 4.4, 4.5, 4.6 y 4.7. En éstas se presenta en amarillo la señal de entrada al
procesador y en azul la señal de salida.
En la figura 4.4 se observa que no hay variación entre entrada y salida. Ésto se
condice con las características del filtro diseñado en la subsección 3.2.3.
En la figura 4.5, al igual que en la figura 4.4 no se observa una variación de mag-
nitud significativa.
En la figura 4.6 se observa una variación entre la entrada y la salida. Esta se debe
en primer lugar al error que se produce al muestrear el tono con una cantidad
40 Capítulo 4. Ensayos y Resultados
Los filtros que forman parte del filtro crossover fueron probados, de forma inde-
pendiente, con la misma metodología aplicada para el filtro pasabajos de 15 kHz.
Se corroboró un comportamiento adecuado de los mismos que se condice con los
filtros diseñados en la subsección 3.2.3.
42 Capítulo 4. Ensayos y Resultados
Como se puede observar en la figura 4.8 la amplitud del tono aumenta luego de
un tiempo. De esta forma se forzó el “gatillado” del compresor de audio.
Luego, se midió la salida del compresor de audio mediante el osciloscopio. En la
figura 4.9 se presenta la medición del tiempo de ataque sobre la señal procesada
por el compresor de audio, mientras que en la figura 4.10 se presenta la medición
del tiempo de relajación.
En la figura 4.9 se observa que el compresor de audio no actúa hasta que se pro-
duce el “gatillado”. Luego, comienza la compresión de la señal de entrada hasta
un nivel de compresión máxima. El nivel de compresión máxima se encuentra
dado por la ecuación 3.1. La compresión se produce durante el tiempo de ata-
que que es igual a 30 ms. El tiempo de ataque medido en la figura 4.9 es igual al
configurado como parámetro del compresor de audio.
En la figura 4.10 se observa que luego de la compresión de la señal de entrada, se
produce la descompresión controlada hasta el nivel original de la señal de entra-
da. La descompresión se produce por un tiempo de 30 ms. El tiempo de relajación
medido en la figura 4.10 es igual al configurado como parámetro del compresor
de audio.
El funcionamiento del compresor se condice con el funcionamiento del compre-
sor presentado en la subsección 3.2.4. El compresor de audio no actúa hasta que
4.4. Ensayo integrador 43
Se realizó el test integrador del equipo. Para éste se utilizó el procesador de au-
dio con la totalidad de los módulos de firmware. La salida de audio de la PC se
conectó a la entrada del procesador de audio. Además, se conectó el osciloscopio
entre la entrada y la salida del procesador. En la figura 4.11 se presenta el banco
de pruebas montado.
En primer lugar se midió la latencia del equipo. La medición fue realizada por
firmware contando la cantidad de ciclos de reloj que conlleva ejecutar el ciclo
completo entre adquisición y generación de audio. La cantidad resultante de ci-
clos de reloj fue de 7100944. Este valor es equivalente a 34,8 ms y resulta superior
a la latencia del equipo ORBAN presentado en la tabla 1.1.
Luego, se inyectó música para ajustar los parámetros del equipo. Los paráme-
tros configurados para el compresor de audio del simetrizador de picos son los
siguientes:
Umbral: 700.
Relación de compresión: 2.
Tiempo de ataque: 25 ms.
Tiempo de relajación: 250 ms.
44 Capítulo 4. Ensayos y Resultados
A su vez, los parámetros configurados para los compresores rápidos fueron los
siguientes:
Umbral: 750.
Relación de compresión: 2.
Tiempo de ataque: 3 ms.
Tiempo de relajación: 30 ms.
Por último, el umbral del clipper fue configurado en 800.
En la figura 4.12 se presenta una imagen cualitativa de la lectura del osciloscopio
con la configuración descripta final del equipo. En el canal 1, en azul, se visualiza
la salida del equipo, mientras que en el canal 2, en amarillo, se visualiza la entrada
de audio del equipo. En la figura 4.12 se observa que la salida fue amplificada con
respecto en la entrada. Esto se condice con el estado de amplificación de la FSM
general del procesador de audio de la figura figura 3.4.
Capítulo 5
Conclusiones
Por lo tanto, se concluye que se cumplió con los objetivos planteados al principio
del trabajo. Se desarrollaron y probaron los principales módulos que componen
al equipo y se aplicaron los conocimientos aprendidos durante la Carrera de Es-
pecialización por parte del autor.
Para poder llevar este producto al mercado resulta imprescindible reconocer que
modificaciones y mejoras deben ser llevadas a cabo sobre el equipo. En la próxima
etapa del trabajo se debe hacer hincapié en los siguientes aspectos:
Diseñar, implementar y fabricar un PCB dedicado al equipo. Este PCB debe
poseer un DAC de audio, un ADC de audio y un display color para realizar
la configuración del equipo.
La adquisición de audio debe realizarse con una frecuencia de 96 kHz y 16
bit de resolución.
La generación de audio debe realizarse con una frecuencia de 96 kHz y 16
bit de resolución.
Analizar y seleccionar un circuito de reconstrucción de la señal analógica
para la señal de audio.
Se debe medir la distorsión armónica a la salida del equipo durante el pro-
cesamiento de audio.
49
Bibliografía
[1] Audacity. Free, open source, cross-platform audio software. Disponible: Mayo
2000. URL: https://www.audacityteam.org.
[2] FEDERICO Bocco, FRANCISCO Giana y P Ramos. «Procesadores de
audio: filtros, generalidades». En: Departamento de ingeniería electrónica.
Catedra fundamentos de acústica y electroacústica. Universidad Tecnológica
Nacional, Argentina (2011).
[3] Oscar Bonello. «Procesado psicoacústico de audio para la transmisión de
alta calidad en FM Estéreo». En: ().
[4] Comisión Nacional de Comunicaciones CNC. Resolución N ◦ 142/96. 1996.
[5] L. Gilberto D. Fernández I. Sánchez. Compresores de audio. Disponible: junio
2011.
[6] Bruce Powel Douglass. Design patterns for embedded systems in C: an
embedded software engineering toolkit. Elsevier, 2010.
[7] F. Larosa. Patrones de diseño. UTN Haedo.
[8] Helenca Duxans Barrobés Marta Ruiz Costa-jussá. Diseño y análisis de filtros
en procesamiento de audio.
[9] MATLAB. R2019b. Disponible: 2019-03-20. URL:
https://la.mathworks.com/products/matlab.html.
[10] NXP. LPC435x/3x/2x/1x, Product data sheet. Disponible: 15 March 2016.
[11] Proyecto CIAA. Computadora Industrial Abierta Argentina. Disponible:
2016-06-25. 2014. URL:
http://proyecto-ciaa.com.ar/devwiki/doku.php?id=start.
[12] Steven Smith. Digital signal processing: a practical guide for engineers and
scientists. Elsevier, 2013.
[13] Tomás RobiscoP. Los males del audio digital: Jitter, aliasing, errores de
cuantización. Disponible: Enero 2016. URL:
http://www.ispmusica.com/tecnologia-musical/didactica-estudio-de-
grabacion/1898-los-males-del-audio-digital-jitter-aliasing-errores-de-
cuantizacion.html.