procesador de audio digital para radios fmlaboratorios.fi.uba.ar/lse/tesis/lse-fiuba-trabajo... ·...

61
UNIVERSIDAD DE BUENOS AIRES FACULTAD DE INGENIERÍA C ARRERA DE E SPECIALIZACIÓN EN S ISTEMAS E MBEBIDOS MEMORIA DEL T RABAJO F INAL Procesador de audio digital para radios FM 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.

Upload: others

Post on 04-Aug-2021

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Procesador de audio digital para radios FMlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo... · El procesador de au-dio digital se encuentra representado por el bloque amarillo,

UNIVERSIDAD DE BUENOS AIRES

FACULTAD DE INGENIERÍA

CARRERA DE ESPECIALIZACIÓN EN SISTEMAS

EMBEBIDOS

MEMORIA DEL TRABAJO FINAL

Procesador de audio digital para radiosFM

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 febrerode 2019 y diciembre de 2019.

Page 2: Procesador de audio digital para radios FMlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo... · El procesador de au-dio digital se encuentra representado por el bloque amarillo,
Page 3: Procesador de audio digital para radios FMlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo... · El procesador de au-dio digital se encuentra representado por el bloque amarillo,

III

Resumen

En esta memoria se presenta el desarrollo de un procesador de audio digital dedos bandas. Este trabajo fue desarrollado para ser utilizado por radio emisoras

FM, de acuerdo con la Resolución No 142 SC/96 de la ENACOM.

Para la implementación se utilizó la plataforma EDU-CIAA-NXP junto a unaplaca de circuito impreso que fue desarrollada específicamente para cumplir los

requerimientos de este trabajo. La programación fue realizada de maneramodular y se utilizaron patrones de diseño para realizar abstracción de

hardware, además de máquinas de estado para el desarrollo de los módulos defirmware. Durante el desarrollo se realizaron tareas de diseño de alto nivel en

MATLAB y se realizó la gestión del trabajo y la documentación mediante Github.

Page 4: Procesador de audio digital para radios FMlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo... · El procesador de au-dio digital se encuentra representado por el bloque amarillo,
Page 5: Procesador de audio digital para radios FMlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo... · El procesador de au-dio digital se encuentra representado por el bloque amarillo,

V

Agradecimientos

Por medio de la escritura de esta memoria concluye una etapa de aprendizaje ycrecimiento personal llevada a cabo mediante la Carrera de Especialización enSistemas Embebidos.

Una etapa muy linda y muy exigente que implico muchas horas de trabajo ypocas horas de sueño. Todo este esfuerzo no fue en vano, el día de hoy tengola suerte de poder ejercer mi actividad profesional full time en el desarrollo desistemas embebidos.

Todo esto no hubiera sido posible sin el apoyo y el aporte de varias personas.

Por ello, quisiera agradecer,

Al Mg. Ing. Facundo Larosa y al Dr. Ing. Pablo Gomez por su dirección y aportespara llevar adelante este trabajo.

A mis padres, por su guía constante y por alentarme a seguir creciendo comoprofesional día a día.

A mi hermana, Francia, por ayudarme a realizar algunas imágenes de esta me-moria.

Al diseñador industrial Alan Smirnoff por diseñar el acrílico para la presentaciónde este trabajo.

A mi novia Nuria, por su apoyo constante y por tolerar mis momentos de abs-tracción mental cuando me enfoco en un proyecto nuevo. Además, sin duda, eldiseño de mis presentaciones no sería tan satisfactorio sin su intervención.

A todos ellos, simplemente gracias.

Page 6: Procesador de audio digital para radios FMlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo... · El procesador de au-dio digital se encuentra representado por el bloque amarillo,
Page 7: Procesador de audio digital para radios FMlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo... · El procesador de au-dio digital se encuentra representado por el bloque amarillo,

VII

Índice general

Resumen III

1. Introducción General 11.1. Procesadores de audio . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2. Motivación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.3. Objetivos y alcance . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2. Introducción Específica 52.1. Descripción del equipo . . . . . . . . . . . . . . . . . . . . . . . . . . 52.2. Señal de radio FM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.3. Digitalización de una señal de audio . . . . . . . . . . . . . . . . . . 82.4. Patrones de diseño . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.5. Filtros FIR aplicados a procesamiento de audio . . . . . . . . . . . . 102.6. Compresores de audio . . . . . . . . . . . . . . . . . . . . . . . . . . 112.7. Tecnologías empleadas en este trabajo . . . . . . . . . . . . . . . . . 13

2.7.1. Hardware utilizado: EDU-CIAA-NXP . . . . . . . . . . . . . 132.7.2. Audacity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132.7.3. MATLAB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142.7.4. KiCad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.8. Requerimientos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

3. Diseño e Implementación 173.1. Metodología de trabajo . . . . . . . . . . . . . . . . . . . . . . . . . . 17

3.1.1. Gestión del proyecto en Github . . . . . . . . . . . . . . . . . 173.1.2. Documentación . . . . . . . . . . . . . . . . . . . . . . . . . . 18

3.2. Firmware de procesamiento de Audio . . . . . . . . . . . . . . . . . 203.2.1. Máquina de estados del procesador de audio . . . . . . . . . 203.2.2. Adquisición y generación de audio . . . . . . . . . . . . . . . 21

Implementación ping-pong buffer . . . . . . . . . . . . . . . . 21Implementación del patrón de diseño . . . . . . . . . . . . . 24

3.2.3. Implementación de filtros para procesamiento de audio . . . 25Filtro pasabajos 15 kHz . . . . . . . . . . . . . . . . . . . . . 25Filtro crossover . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

3.2.4. Compresor de audio . . . . . . . . . . . . . . . . . . . . . . . 293.3. Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

3.3.1. Análisis de los circuitos más importantes . . . . . . . . . . . 313.3.2. Diseño de circuito impreso . . . . . . . . . . . . . . . . . . . 32

3.4. Interfaz de usuario . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

4. Ensayos y Resultados 374.1. Adquisición y generación de audio . . . . . . . . . . . . . . . . . . . 374.2. Filtros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394.3. Compresor de audio . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

Page 8: Procesador de audio digital para radios FMlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo... · El procesador de au-dio digital se encuentra representado por el bloque amarillo,

VIII

4.4. Ensayo integrador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434.5. Resumen de los resultados . . . . . . . . . . . . . . . . . . . . . . . . 44

5. Conclusiones 475.1. Trabajo realizado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475.2. Próximos pasos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

Bibliografía 49

Page 9: Procesador de audio digital para radios FMlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo... · El procesador de au-dio digital se encuentra representado por el bloque amarillo,

IX

Índice de figuras

1.1. Procesador de audio digital ORBAN1. . . . . . . . . . . . . . . . . . 21.2. Procesador de audio digital M312. . . . . . . . . . . . . . . . . . . . 21.3. Diagrama general del equipo. . . . . . . . . . . . . . . . . . . . . . . 3

2.1. Diagrama en bloques del equipo. . . . . . . . . . . . . . . . . . . . . 62.2. Espectro de radiodifusión. . . . . . . . . . . . . . . . . . . . . . . . . 72.3. Señal de FM. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.4. Digitalización de una señal analógica. . . . . . . . . . . . . . . . . . 92.5. Patrón de diseño utilizado. . . . . . . . . . . . . . . . . . . . . . . . . 102.6. Diagrama general filtro FIR. . . . . . . . . . . . . . . . . . . . . . . . 112.7. Diagrama general del compresor VCA. . . . . . . . . . . . . . . . . 122.8. Respuesta temporal del compresor de audio. . . . . . . . . . . . . . 122.9. Plataforma de desarrollo EDU-CIAA-NXP3. . . . . . . . . . . . . . . 132.10. Entorno de desarrollo, Audacity. . . . . . . . . . . . . . . . . . . . . 142.11. Entorno de desarrollo, MATLAB. . . . . . . . . . . . . . . . . . . . . 142.12. Entorno de desarrollo, KiCad. . . . . . . . . . . . . . . . . . . . . . . 15

3.1. Modelo de gestión de ramas utilizado. . . . . . . . . . . . . . . . . . 183.2. Ramas generadas durante el desarrollo del trabajo. . . . . . . . . . . 193.3. Wiki de github. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193.4. Máquina de estados del procesador de audio. . . . . . . . . . . . . . 203.5. Sistema de adquisición y generación de audio. . . . . . . . . . . . . 223.6. Diagrama de flujo del ping-pong buffer. . . . . . . . . . . . . . . . . . 233.7. Respuesta en magnitud del filtro diseñado. . . . . . . . . . . . . . . 263.8. Respuesta en fase del filtro diseñado. . . . . . . . . . . . . . . . . . . 263.9. Retardo de grupo del filtro diseñado. . . . . . . . . . . . . . . . . . . 273.10. Retardo de fase del filtro diseñado. . . . . . . . . . . . . . . . . . . . 273.11. Retardo de fase del filtro diseñado. . . . . . . . . . . . . . . . . . . . 283.12. Respuesta en magnitud de los filtros diseñados. . . . . . . . . . . . 293.13. Respuesta en fase de los filtros diseñados. . . . . . . . . . . . . . . . 293.14. FSM del compresor de audio. . . . . . . . . . . . . . . . . . . . . . . 303.15. Circuito de acondicionamiento de la señal para la adquisición de

audio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323.16. Circuito de generación de audio por medio del DAC. . . . . . . . . 333.17. Circuito de manejo de leds para interfaz de usuario. . . . . . . . . . 333.18. Modelo 3D PCB desarrollado. . . . . . . . . . . . . . . . . . . . . . . 343.19. PCB fabricado con componentes montados. . . . . . . . . . . . . . . 353.20. Ubicación de los componentes de la interfaz de usuario. . . . . . . . 36

4.1. Medición de latencia mediante osciloscopio. . . . . . . . . . . . . . 384.2. Medición de distorsión armónica mediante analizador de espectro. 384.3. Banco de pruebas de filtros. . . . . . . . . . . . . . . . . . . . . . . . 39

Page 10: Procesador de audio digital para radios FMlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo... · El procesador de au-dio digital se encuentra representado por el bloque amarillo,

X

4.4. Entrada comparada con salida del procesador de audio con tonode 1 kHz. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

4.5. Entrada comparada con salida del procesador de audio con tonode 10 kHz. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

4.6. Entrada comparada con salida del procesador de audio con tonode 14 kHz. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

4.7. Entrada comparada con salida del procesador de audio con tonode 19 kHz. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

4.8. Tono de 5 kHz generado con Audacity para test de compresor deaudio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

4.9. Medición del tiempo de ataque sobre la señal procesada por elcompresor de audio. . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

4.10. Medición del tiempo de relajación sobre la señal procesada por elcompresor de audio. . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

4.11. Banco de pruebas del ensayo integrador. . . . . . . . . . . . . . . . . 454.12. Lectura del osciloscopio resultante del ensayo integrador. . . . . . . 45

Page 11: Procesador de audio digital para radios FMlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo... · El procesador de au-dio digital se encuentra representado por el bloque amarillo,

XI

Índice de Tablas

1.1. Comparación entre OPTIMOD-FM 8700i y MK3. . . . . . . . . . . . 2

4.1. Tabla de conformidad de los requerimientos. . . . . . . . . . . . . . 46

Page 12: Procesador de audio digital para radios FMlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo... · El procesador de au-dio digital se encuentra representado por el bloque amarillo,
Page 13: Procesador de audio digital para radios FMlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo... · El procesador de au-dio digital se encuentra representado por el bloque amarillo,

1

Capítulo 1

Introducción General

En este capítulo se presenta una breve introducción a los procesadores de audio,la situación mundial en cuanto a su desarrollo, y la situación nacional. Por último,se expresa la motivación para desarrollar este proyecto y los objetivos y alcancedel mismo.

1.1. Procesadores de audio

Un procesador de audio es un equipo que modifica los parámetros de una señalde audio, tales como su rango dinámico y su relación señal a ruido. Además,permite filtrar el contenido armónico indeseado y ecualizar las distintas bandasde frecuencia según sea requerido por el operador.

El procesamiento de audio puede ser realizado de forma digital o analógica. Sibien ambas posibilidades se encuentran disponibles en el mercado y brindan unprocesamiento adecuado, el procesamiento digital tiene como ventaja la reduc-ción sustancial de componentes. Esto produce una reducción en los costos conrespecto a procesadores analógicos. También permite realizar actualizaciones so-bre el equipo con mayor facilidad y simplificar en gran medida la calibración enfábrica y la puesta en marcha del equipo.

Este trabajo se encuentra enfocado principalmente en procesadores de audio apli-cados a radiodifusión ya que se pretende que, una vez logrado el funcionamientodeseado, se comercialice en ese rubro.

Los procesadores de audio para FM (Frecuencia Modulada), toman la señal deaudio proveniente de una consola presente en un estudio de radio, la procesany entregan la señal procesada al transmisor de FM. El transmisor de FM tomala señal de audio procesada y la transmite en la banda de FM que se encuentracomprendida en el rango de 89,7 MHz a 108 MHz.

Actualmente, a nivel internacional existen grandes fabricantes de procesadoresde audio tales como ORBAN u OMNIA. En la figura 1.1 se presenta un procesa-dor de audio digital ORBAN modelo OPTIMOD-FM 8700i.

En Argentina, uno de los principales fabricantes de procesadores de audio ytransmisores para FM es la empresa M31 electrónica S.R.L. Esta empresa fabri-ca procesadores de audio basados principalmente en circuitos combinacionales y

Page 14: Procesador de audio digital para radios FMlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo... · El procesador de au-dio digital se encuentra representado por el bloque amarillo,

2 Capítulo 1. Introducción General

FIGURA 1.1: Procesador de audio digital ORBAN1.

tecnología analógica. En la figura 1.2 se presenta el procesador de audio digitalmodelo MK3 fabricado por M31 Electrónica.

FIGURA 1.2: Procesador de audio digital M312.

En la tabla 1.1 se presenta una comparación entre el procesador ORBAN modeloOPTIMOD-FM 8700i y el procesador de M31 Electrónica modelo MK3.

TABLA 1.1: Tabla comparativa entre OPTIMOD-FM 8700i y MK3

Fabricante ORBAN M31 Electrónica

Modelo OPTIMOD-FM 8700i MK3Tecnología DSP AnalógicaEntrada de audio Analógica y digital AnalógicaFrecuencia de muestreo 32, 44,1, 48, 88,2 y 96 kHz NoLatencia Entre 3.7 ms y 20 ms según ajustes NoSalida de audio Analógica y digital AnalogicaNúmero de bandas 5 bandas y 2 bandas 3 bandasStreaming Sí NoControl remoto por TCP/IP Sí NoIndicaciones para operador Display Indicadores ledPuesta en marcha Simple Compleja

Si se analiza la tabla 1.1, resulta interesante ver la frecuencia de muestreo y lacantidad de bandas sobre las cuales realiza el procesamiento cada equipo. La fre-cuencia de muestreo mientras más alta sea menos ruido introducirá en la digitali-zación de la señal de audio. El procesador MK3 no posee frecuencia de muestreo

1https://www.orban.com/optimodfm-8700i2http://m31electronica.com/

Page 15: Procesador de audio digital para radios FMlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo... · El procesador de au-dio digital se encuentra representado por el bloque amarillo,

1.2. Motivación 3

ya que es un dispositivo basado en tecnología analógica. El número de bandassobre la cual se procesa la señal permite sectorizar el procesamiento según cadabanda y por lo tanto mejorar la calidad de audio según la cantidad de bandassobre las cuales trabaja el dispositivo.

El equipo desarrollado en este trabajo posee una frecuencia de muestreo de 44,1kHz y realiza el procesamiento de audio sobre 2 bandas.

Un diagrama general del trabajo se presenta en la figura 1.3. El procesador de au-dio digital se encuentra representado por el bloque amarillo, mientras que en losbloques color azul se encuentra representado el ambiente con el cual interactúa elprocesador. En la entrada del procesador se encuentra la consola del estudio deradio que entrega la señal analógica al procesador. En la salida del procesador seencuentran encerrados en un recuadro de líneas punteadas los dos sistemas desalida: el de radio online y el sistema transmisor de radio FM.

FIGURA 1.3: Diagrama general del equipo.

1.2. Motivación

Dada la experiencia que el autor desarrolló a lo largo de dos años en la indus-tria de los transmisores de AM y FM como ingeniero de desarrollo de nuevosproductos en M31 electrónica S.R.L. adquirió un gran interés por las tecnologíasinvolucradas en la industria de la radiodifusión. En la empresa el autor trabajó enel diseño e implementación de un equipo excitador de FM que se encargaba dela sintonización para la transmisión de FM. Una vez logrado ese proyecto surgióel interés por el procesador de audio. Este proyecto trata sobre el procesamientodigital de señales con un microcontrolador, un tema de gran interés para el autorde este documento.

Page 16: Procesador de audio digital para radios FMlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo... · El procesador de au-dio digital se encuentra representado por el bloque amarillo,

4 Capítulo 1. Introducción General

En cuanto al desarrollo, resulta interesante trabajar con esta clase de equipos yaque implica la aplicacion de técnicas para el procesamiento de grandes volúme-nes de datos y técnicas para la optimización de tiempos de procesamiento.

1.3. Objetivos y alcance

Teniendo en cuenta los costos de equipos de fabricantes extranjeros y la tecnolo-gía de los procesadores fabricados actualmente en Argentina, el objetivo principalde este proyecto es abrir las puertas al desarrollo en nuestro país de un procesa-dor digital de fácil fabricación, puesta en marcha y bajo costo. Además, un equipobasado en un procesador permite modularizar el desarrollo lo que agrega versa-tilidad en la incorporación de nuevas funcionalidades sin necesidad de realizarun rediseño total del hardware. Ésto, a su vez, reduce en gran medida los tiemposde desarrollo.

El trabajo realizado forma parte de un proyecto más amplio que implica el desa-rrollo de un procesador de audio digital que permita enviar la señal procesadapor medio de radiofrecuencia para radios FM o por streaming para radios online.

El alcance de este proyecto abarcó el diseño y la implementación de un primerprototipo del procesador de audio digital con salida al transmisor de FM. El pro-totipo implicó el desarrollo del hardware necesario para adquisición y el firmwa-re de los principales módulos del procesador.

Page 17: Procesador de audio digital para radios FMlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo... · El procesador de au-dio digital se encuentra representado por el bloque amarillo,

5

Capítulo 2

Introducción Específica

En este capítulo se aborda la descripción teórica de las técnicas y las funcionali-dades de procesamiento de audio implementadas, las tecnologías de hardware ysoftware utilizadas y los requerimientos del proyecto.

2.1. Descripción del equipo

Como se menciona en la sección 1.3, este proyecto comprende el diseño e imple-mentación de un equipo que permite realizar el procesamiento de audio prove-niente de un estudio de radio y enviarlo al transmisor de FM.

En la figura 2.1 se presenta un diagrama de bloques de la estructura del procesa-dor de audio digital implementado en este trabajo. La topología del procesadorcomprende una serie de bloques conectados en cascada. Esto se debe a que elprocesador ejecuta procesamientos secuenciales sobre la señal de entrada y luegola inyecta en el transmisor de FM [3].

En la figura 2.1 se distinguen bloques de tres colores diferentes. En los bloquesde color azul se encuentran representadas las conexiones externas al procesadorde audio. Los bloques denominados “Audio canal izquierdo” y “Audio canal de-recho” representan la señal de entrada al dispositivo, mientras que el bloque de-nominado “Transmisor de FM” representa el equipo transmisor sobre el cual elprocesador inyecta la señal de audio procesada. El bloque verde representa elhardware desarrollado en el procesador de audio para realizar el acondiciona-miento de la señal para su posterior digitalización. El conjunto de bloques decolor naranja representa el procesamiento de audio realizado por firmware.

A continuación, se describe cada uno de los bloques que componen al procesadorde audio según su funcionalidad:

1. ADC (Analog to Digital Converter, Conversor Analógico Digital): Se encar-ga de digitalizar la señal de audio a una frecuencia de 44,1 kHz con unaresolución de 10 bits.

2. Filtro de entrada: filtra la señal digitalizada para limitar el contenido espec-tral a 15 kHz.

3. Simetrizador de picos: comprime la señal de audio con un compresor lento.

4. Filtros de bandas: efectúa la separación de la señal de entrada en dos bandasde frecuencias.

Page 18: Procesador de audio digital para radios FMlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo... · El procesador de au-dio digital se encuentra representado por el bloque amarillo,

6 Capítulo 2. Introducción Específica

FIGURA 2.1: Diagrama en bloques del equipo.

5. Compresión rápida: realiza una compresión rápida sobre ambas bandas.

6. Suma de bandas: reconstruye la señal de audio realizando la suma de ban-das.

7. Clipper: recorta la señal de audio reconstruida cuando su amplitud superaun nivel predefinido.

8. DAC (Digital to Analog Converter, Conversor Digital Analógico): Genera laseñal de audio analógica a partir de la señal de audio digital a una frecuen-cia de 44,1 kHz con un resolución de 10 bits.

Page 19: Procesador de audio digital para radios FMlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo... · El procesador de au-dio digital se encuentra representado por el bloque amarillo,

2.2. Señal de radio FM 7

2.2. Señal de radio FM

La banda de radio de FM se encuentra comprendida en el rango de 88 a 108MHz. Las estaciones de FM tienen asignadas frecuencias centrales empezandoen 88,1 MHz, con una separación de 200 kHz. Estas estaciones de FM tienen unadesviación máxima de su frecuencia central de 75 kHz. De esta forma, se dejanbandas de guarda superior e inferior de 25 kHz para minimizar la interacción conlas bandas de frecuencias adyacentes.

Debido a la división de la banda de FM para la transmisión de FM estéreo, ellímite de frecuencia para la transmisión de la música es de 15 kHz. Esto permitela transmisión de señal de alta fidelidad. En la figura 2.2 se presenta el espectrode radiodifusión.

FIGURA 2.2: Espectro de radiodifusión.

La frecuencia de la portadora se encuentra modulada con la señal suma de loscanales izquierdo y derecho, y por la señal diferencia de 38 kHz con portadorasuprimida. Además, se agrega en el codificador estéreo la señal piloto en 19 kHz.Dicha señal es utilizada para la decodificación en la recepción de la señal de FM.La señal descripta se presenta en la figura 2.3.

En Argentina, el espectro de radiofrecuencia se encuentra regulado por el EnteNacional de Comunicaciones, también denominado ENACOM. El equipo trans-misor de FM debe cumplir con la Resolución No142 SC/96 denominado Regla-mento General del Servicio de Radiodifusión Sonora Por Modulación de Frecuen-cia. Esta resolución establece que el contenido armónico de audio debe estar con-tenido entre 50 Hz y 15 kHz, por ello se limitó el mismo mediante un filtro FIRpasabajos con frecuencia de corte en 15 kHz [4].

Page 20: Procesador de audio digital para radios FMlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo... · El procesador de au-dio digital se encuentra representado por el bloque amarillo,

8 Capítulo 2. Introducción Específica

FIGURA 2.3: Señal de FM.

2.3. Digitalización de una señal de audio

El equipo desarrollado en este trabajo implementa distintos filtros y comprimeseñales de audio. La señal de audio es una señal sonora capturada por un trans-ductor de presión que convierte ondas sonoras en señales analógicas.

Las principales características de este tipo de señales en el dominio temporal son:valor pico, rango dinámico, potencia y relación señal a ruido. El rango dinámicoindica la relación entre la amplitud máxima de la señal y la amplitud mínima porencima del nivel de ruido. La relación señal a ruido es el cociente entre la poten-cia de la señal y la potencia de ruido. En el dominio de la frecuencia caracterizana este tipo de señales el ancho de banda, la frecuencia fundamental y la distor-sión armónica. Una señal de audio posee un ancho de banda que se encuentracomprendido en el rango audible de frecuencias de 20 a 20 kHz [12].

Los principales parámetros para la digitalización de una señal de audio analógicason la frecuencia de muestreo y la resolución. Los valores usuales para estos dosparámetros son para la frecuencia de muestreo 44,1 kHz en adelante, mientrasque la resolución puede tomar valores de 8 bits, 10 bits, 16 bits o 24 bits paraaudio de alta calidad.

Cuando se digitaliza una señal analógica se debe tomar en cuenta el teorema deNyquist. Este teorema especifica que para digitalizar una señal analógica y pos-teriormente poder reconstruirla como la señal original se debe muestrear comomínimo con una frecuencia del doble de la frecuencia máxima de la señal quese quiere digitalizar. Si se tiene en cuenta que la señal de audio posee un anchode banda de 20 kHz, la frecuencia de muestreo mínima debe ser de 44 kHz. Elproceso de digitalización de una señal analógica se presenta en la figura 2.4.

En todo sonido complejo, como el que produce un instrumento de cuerda, lasfrecuencias que se generan pueden ser superiores a 20 kHz. Cuando se digitalizaun sonido que contiene frecuencias superiores a las que puede codificar el ADC,se produce el fenómeno llamado aliasing. Este fenómeno introduce frecuenciasnuevas que no estaban presentes en la señal original lo que aumenta la distorsión.

Otro problema inherente al sistema de digitalización se produce por el procesode cuantificación. Éste resulta de igualar los niveles de las muestras de amplitud

Page 21: Procesador de audio digital para radios FMlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo... · El procesador de au-dio digital se encuentra representado por el bloque amarillo,

2.4. Patrones de diseño 9

FIGURA 2.4: Digitalización de una señal analógica.

continua a los niveles de cuantificación más próximos. En este caso se introducenredondeos constantes que añaden distorsión. Esta distorsión es especialmente au-dible y degrada la calidad del sonido de manera muy notoria. A este problema selo denomina error de cuantificación. Este tipo de error no se produce únicamentedurante la digitalización sino que también se produce en cualquier operación quese realice sobre una señal de audio digital [13].

El teorema de Nyquist, el fenómeno de aliasing y el error de cuantificación fuerontomados en cuenta durante el desarrollo de este trabajo.

2.4. Patrones de diseño

Un patrón de diseño, en ingeniería de software, es una solución general reutili-zable que es aplicable a un problema que ocurre comúnmente durante la etapade diseño del software. Un patrón no se puede transformar directamente en có-digo, sino que es una descripción o plantilla sobre cómo se puede resolver unproblema, el cual puede aplicarse en diferentes situaciones. Los patrones son unaformalización de buenas prácticas de diseño de software. Los patrones permitenabstraer la implementación de software, lo que permite generar código reutiliza-ble. Si bien son técnicas de programación aplicadas a software existen clases depatrones para sistemas embebidos [6].

Page 22: Procesador de audio digital para radios FMlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo... · El procesador de au-dio digital se encuentra representado por el bloque amarillo,

10 Capítulo 2. Introducción Específica

En este trabajo se implementó un patrón de diseño de hardware. La función delpatrón de diseño utilizado es crear un elemento de software responsable de ac-ceder a un elemento de hardware y encapsular la implementación de códigos ydatos del mismo. El patrón utiliza una clase para encapsular todos los accesosal dispositivo de hardware, independientemente de su interfaz física. Además,el patrón publica servicios que permiten escribir y leer valores desde y hacia elequipo, así como inicializar, configurar y cerrar el mismo. De esta forma, el pa-trón de diseño provee una interfaz independiente de la interfaz específica delhardware, lo cual promueve una fácil modificación en caso de que el equipo o suimplementación cambie. El patrón de diseño de hardware propone implementarlas funciones que se presentan en la figura 2.5. En ésta se puede observar queel cliente utiliza las función pública initialize() para inicializar el módulo, confi-gure() para configurarlo, disable() para deshabilitarlo y access() y mutate() paraintercambiar datos con las funciones privadas unmarshal() y marshal() que pro-veen la abstracción de hardware y generan la portabilidad que provee este tipode patrón [7].

FIGURA 2.5: Patrón de diseño utilizado.

2.5. Filtros FIR aplicados a procesamiento de audio

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 amplitudcon una pendiente que es generalmente de 6 dB/oct, 12 dB/oct o 18 dB/oct. Alprocesar 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 seencuentra retrasada en tiempo con respecto a la entrada. En general, el retardoes 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 éstapuede 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 unamedida de la linealidad de un filtro, lo ideal es que el filtro sea de fase lineal deforma que todas las frecuencias presenten un retardo constante [2].

Page 23: Procesador de audio digital para radios FMlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo... · El procesador de au-dio digital se encuentra representado por el bloque amarillo,

2.6. Compresores de audio 11

En los procesadores de audio los filtros son utilizados para limitar el ancho debanda 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 larelació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 tiempoy 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 deque la fase sea lineal implica que el filtro no distorsiona la señal en la banda depaso. Ésta es la característica principal para su aplicación para el procesamientode 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ñalde entrada. Además, como se puede observar, este tipo de filtros al ser realizadosde forma no recursiva son intrínsecamente estables a diferencia de los filtros IIR(Infinite Impulse Response, Respuesta Infinita al Impulso) [8].

FIGURA 2.6: Diagrama general filtro FIR.

Para este trabajo se implementaron filtros del tipo Parks Mcclellan debido a queeste tipo de filtros minimiza el error en la banda de paso y en la banda de stop.

2.6. Compresores de audio

Los compresores de audio son utilizados para modificar el rango dinámico dela señal de audio. En este trabajo se implementó un compresor digital tipo VCA(Voltage Controlled Amplifier, Amplificador Controlado por Voltaje) basado en de-tección de picos. En la figura 2.7 se presenta un diagrama simplificado del com-presor implementado.

El compresor se compone principalmente de un detector de nivel, un control deganancia y un amplificador controlado por voltaje. Su funcionamiento consisteen comparar periódicamente la señal de entrada con un valor de tensión deter-minado, al cual se lo denomina umbral; mientras este valor no es superado, elcompresor no actúa, es decir, la ganancia del VCA siempre es igual a la unidad.Caso contrario, cuando el valor de entrada supera el valor umbral el VCA actúay comprime la señal según la relación de compresión del compresor.

Page 24: Procesador de audio digital para radios FMlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo... · El procesador de au-dio digital se encuentra representado por el bloque amarillo,

12 Capítulo 2. Introducción Específica

FIGURA 2.7: Diagrama general del compresor VCA.

El compresor tiene los siguientes parámetros configurables:

Umbral: como fue explicado anteriormente es el valor de tensión a partirdel cual actúa el compresor. Esta acción se denomina “gatillado”.

Relación de compresión: es una medida de cuánto comprime el compresor.

Tiempo de ataque (ta): es el tiempo que tarda en comprimir hasta el máximovalor de salida fijado por la relación de compresión luego del gatillado.

Tiempo de relajación (tr): es el tiempo de vuelta al estado de reposo delcompresor luego de finalizado el tiempo de ataque.

Los distintos parámetros temporales permiten incorporar los cambios gradualesde la ganancia. Ésto se logra a través de una envolvente que tarda un determinadotiempo en actuar hasta lograr la compresión fijada por la relación de compresión.En la figura 2.8 se observa como el procesador opera de manera gradual hastalograr el control cuando se ingresa una señal continua con una amplitud mayoral umbral. Igualmente sucede al retirar la compresión, se produce una descom-presión suave y controlada [5].

FIGURA 2.8: Respuesta temporal del compresor de audio.

Page 25: Procesador de audio digital para radios FMlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo... · El procesador de au-dio digital se encuentra representado por el bloque amarillo,

2.7. Tecnologías empleadas en este trabajo 13

2.7. Tecnologías empleadas en este trabajo

A continuación se presentan las herramientas de hardware y software utilizadasdurante el desarrollo de este trabajo.

2.7.1. Hardware utilizado: EDU-CIAA-NXP

Para el desarrollo del trabajo se utilizó la plataforma EDU-CIAA-NXP, una he-rramienta diseñada como parte del proyecto CIAA con el objetivo de proveer deuna plataforma de desarrollo moderna y económica a los docentes y estudiantesen cursos de sistemas embebidos [11].

La EDU-CIAA-NXP posee integrado el microcontrolador LPC4337. Éste es unmicrocontrolador con arquitectura ARM basada en un núcleo M4 y un núcleo M0.Esta plataforma fue utilizada durante la Carrera de Especialización en SistemasEmbebidos. Además, posee dos ADC y un DAC con una resolución de 10 bits, y laposibilidad de configurar su frecuencia de adquisición y generación en 44,1 kHzrespectivamente. Estas características hicieron que se la considere apropiada parael desarrollo del trabajo. En la figura 2.9 se presenta la herramienta de desarrolloEDU-CIAA-NXP.

FIGURA 2.9: Plataforma de desarrollo EDU-CIAA-NXP1.

2.7.2. Audacity

Audacity es una herramienta de software de grabación y edición de audio, mul-tiplataforma, de libre uso y de código abierto. Permite grabar y reproducir audio,y a su vez, permite exportar audio en formatos WAV, AIFF y MP3. Hoy en día esuno de los programas gratuitos de edición de audio más fiable y más avanzadopara dicho fin [1].

Esta herramienta de software ofrece las posibilidades básicas de recortar, copiar ypegar segmentos de señales de audio, pero además, permite trabajar varias pistasa la vez, mezclarlas o aplicar diversos filtros y efectos sobre las señales. Estascaracterísticas hacen que esta herramienta sea ideal para trabajar en el desarrollo,por ejemplo, para generar tonos puros y combinarlos. De esta forma, se eliminóla necesidad de un generador de audio durante el desarrollo. En la figura 2.10 sepresenta el entorno de desarrollo del software Audacity.

1http://www.proyecto-ciaa.com.ar/devwiki/doku.php?id=desarrollo:edu-ciaa:edu-ciaa-nxp

Page 26: Procesador de audio digital para radios FMlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo... · El procesador de au-dio digital se encuentra representado por el bloque amarillo,

14 Capítulo 2. Introducción Específica

FIGURA 2.10: Entorno de desarrollo, Audacity.

2.7.3. MATLAB

MATLAB es una herramienta de software matemático que ofrece un entorno dedesarrollo integrado con un lenguaje de programación propio, el lenguaje m [9].

Esta herramienta fue utilizada a lo largo del desarrollo del trabajo para realizartareas de alto nivel. Con MATLAB, se caracterizaron y se diseñaron los filtrosFIR implementados mediante firmware. A su vez, MATLAB fue utilizado paraimplementar tonos puros y para realizar el análisis de los resultados de los testsrealizados sobre los módulos desarrollados. En la figura 2.11 se presenta la herra-mienta de software MATLAB.

FIGURA 2.11: Entorno de desarrollo, MATLAB.

Page 27: Procesador de audio digital para radios FMlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo... · El procesador de au-dio digital se encuentra representado por el bloque amarillo,

2.8. Requerimientos 15

2.7.4. KiCad

KiCad es un paquete de software libre que se utiliza para la automatización dediseño electrónico. Permite el diseño de esquemáticos para circuitos electrónicosy facilita su conversión a PCB (Printed Circuit Board, Placa de Circuito Impreso).

Esta herramienta fue utilizada en el trabajo para llevar a cabo el diseño y la imple-mentación del esquemático, el PCB y la documentación de fabricación del hard-ware desarrollado. En la figura 2.12 se presenta la herramienta de software KiCad.

FIGURA 2.12: Entorno de desarrollo, KiCad.

2.8. Requerimientos

A continuación se presentan los requerimientos asociados a este trabajo.

1. Grupo de requerimientos asociados con la adquisición de audio.

a) El procesador de audio debe adquirir canal derecho e izquierdo delaudio proveniente de una consola o en su defecto de un micrófono.

b) Se debe adquirir con una frecuencia mínima de 44,1 kHz con una reso-lución mínima de 10 bits.

2. Grupo de requerimientos asociados con el procesamiento del audio adqui-rido.

a) El procesador debe filtrar canal izquierdo y canal derecho en 2 bandascada uno.

b) El procesador debe realizar una compresión rápida sobre cada bandade los dos canales.

c) El procesador debe reconstruir los canales derecho e izquierdo a partirde las bandas.

3. Grupo de requerimientos asociados con la generación de audio procesado.

Page 28: Procesador de audio digital para radios FMlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo... · El procesador de au-dio digital se encuentra representado por el bloque amarillo,

16 Capítulo 2. Introducción Específica

a) Se deben reconstruir las señales de audio procesadas por el microcon-trolador del canal derecho y del canal izquierdo.

b) Las señales de audio se deben reconstruir por medio de un DAC deaudio.

4. Grupo de requerimientos asociados al prototipo.

a) Mediante un interruptor se debe encender la alimentación del equipo.

b) Mediante un pulsador se debe iniciar y finalizar el procesamiento deaudio sin quitarle la alimentación al equipo.

c) Un led debe indicar que el equipo se encuentra encendido.

d) Un led debe indicar que el equipo se encuentra procesando audio.

e) Se deben utilizar tres leds como indicadores de magnitud de nivel detensión de entrada.

Page 29: Procesador de audio digital para radios FMlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo... · El procesador de au-dio digital se encuentra representado por el bloque amarillo,

17

Capítulo 3

Diseño e Implementación

En este capítulo se presenta la gestión del trabajo con el controlador de versiones,el diseño e implementación del hardware desarrollado y el diseño e implementa-ción de los distintos módulos de firmware que componen al procesador de audio.

3.1. Metodología de trabajo

En esta sección se describe el uso del control de versiones para realizar la gestióndel desarrollo y la documentación del trabajo.

3.1.1. Gestión del proyecto en Github

Para realizar el control de versiones y la gestión del trabajo se eligió utilizar elcontrolador de versiones Github1. Se realizó la elección de Github en lugar desus competidores ya que fue utilizado durante la Carrera de Especialización enSistemas Embebidos. Además, es utilizado por el autor de esta memoria para suactividad profesional. De esta forma, todo lo aprendido para este trabajo puedeser aprovechado para la actividad profesional y viceversa.

Se puede ingresar al repositorio del trabajo mediante la url: https://github.com/gastonvallasciani/procesadorDeAudio.

Github brindó al desarrollo del trabajo de un sistema de control de versionesGIT. Como modelo de gestión de ramas se utilizó el criterio que se describe acontinuación. Como rama principal se utiliza la rama master. Cuando es necesa-rio implementar una funcionalidad nueva se genera una rama del tipo developcon la nomenclatura "developNombreFuncionalidad". Una vez implementada lanueva funcionalidad se genera, a partir de la rama develop, una rama del tipo de-velopOffline con la nomenclatura "developNombreFuncionalidadOffline". En estarama se realizan testeos a partir de un módulo de firmware implementado paradicho fin. Una vez finalizado el testeo offline se realiza un merge a la rama del tipodevelop y se elimina la rama developOffline. Luego se genera una rama del tipo de-velopOnline con la nomenclatura "developNombreFuncionalidadOnline". En estarama se realiza un testeo con una entrada externa al dispositivo. Una vez efec-tuado este testeo se realiza un merge a la rama develop y se elimina la rama deltipo developOnline. Una vez hecho esto se hace un merge de la rama develop a larama master y se elimina la rama develop. De esta forma, la rama master siempre

1https://github.com

Page 30: Procesador de audio digital para radios FMlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo... · El procesador de au-dio digital se encuentra representado por el bloque amarillo,

18 Capítulo 3. Diseño e Implementación

tiene una versión estable del proyecto. El modelo de gestión de ramas utilizadose presenta en la figura 3.1.

FIGURA 3.1: Modelo de gestión de ramas utilizado.

A partir de la rama master se generan las versiones nuevas del equipo. La versióndel equipo tiene la nomenclatura Y.X donde Y representa el número de versión yX 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 unaversió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

Normalmente, cuando se realiza un desarrollo, el proyecto se almacena en unsistema de control de versiones mientras que la documentación se aloja en unacomputadora o en algún otro dispositivo. Al estar el proyecto de firmware y ladocumentación por separado, es posible que ésta se pierda. Por lo tanto, resultade interés realizar la documentación en conjunto con el proyecto de firmware.

Page 31: Procesador de audio digital para radios FMlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo... · El procesador de au-dio digital se encuentra representado por el bloque amarillo,

3.1. Metodología de trabajo 19

FIGURA 3.2: Ramas generadas durante el desarrollo del trabajo.

Mediante el archivo README.md se realizó un seguimiento del trabajo. En éstese actualizaron problemas o cambios importantes realizados en distintos momen-tos del desarrollo, con su fecha. A su vez, se utilizó la wiki que provee Github paradocumentar los aspectos técnicos del trabajo2. La implementación de la wiki sepresenta en la figura 3.3.

FIGURA 3.3: Wiki de github.

2https://github.com/gastonvallasciani/procesadorDeAudio/wiki

Page 32: Procesador de audio digital para radios FMlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo... · El procesador de au-dio digital se encuentra representado por el bloque amarillo,

20 Capítulo 3. Diseño e Implementación

3.2. Firmware de procesamiento de Audio

En esta sección se describe el diseño y la implementación del firmware para efec-tuar el procesamiento de audio que implementa el equipo desarrollado.

3.2.1. Máquina de estados del procesador de audio

El procesador de audio ejecuta procesos de forma secuencial. Cada proceso debehaber finalizado antes de ejecutar el siguiente. Teniendo en cuenta este modo defuncionamiento se implementó un despachador de procesos por medio de unaFSM (Finite State Machine, Máquina de Estados Finitos). La transición de estadosocurre cuando finaliza el procesamiento del vector de datos de entrada.

Los estados correspondientes a la FSM implementada se presentan en la figura3.4.

FIGURA 3.4: Máquina de estados del procesador de audio.

La funcionalidad de cada uno de los estados de la FSM del procesador de audioes la siguiente:

Level detector: estado de detección de nivel de entrada utilizado en la interfazde usuario para realizar la indicación de nivel mediante las luces led decolor rojo, amarillo y verde.

Audio processing delay: estado que implementa un retardo para sincronizarla adquisición de la señal de audio con la generación de audio.

Gain control: estado que implementa una ganancia sobre la señal de entrada.

LPF 15 kHz filter: estado que implementa un filtro FIR pasabajos con unafrecuencia de corte de 15 kHz.

Page 33: Procesador de audio digital para radios FMlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo... · El procesador de au-dio digital se encuentra representado por el bloque amarillo,

3.2. Firmware de procesamiento de Audio 21

Peak symmetrizer: estado que implementa el simetrizador de picos. Éste esimplementado por medio de un compresor lento.

Band split: estado que ejecuta la división de la señal de audio de entradaen dos bandas mediante un filtro crossover implementado con un filtro FIRpasabajos y un filtro FIR pasaaltos cuya frecuencia de encuentro es de 5kHz.

Fast compressor: estado que implementa un compresor rápido sobre las ban-das.

Sum bands: estado que implementa la función de suma de bandas.

Clipper: recorta la señal de audio reconstruida cuando su amplitud superaun nivel predefinido.

3.2.2. Adquisición y generación de audio

Para realizar la adquisición y generación de audio se utilizó un ADC y un DACpertenecientes al microcontrolador LPC4337 presente en la EDU-CIAA NXP. Estemicrocontrolador posee un DAC de resolución de 10 bits con soporte DMA yuna velocidad de conversión máxima de 400 kHz. Además posee dos ADC deresolución de 10 bits, con soporte DMA, velocidad de conversión máxima de 400kHz y permite seleccionar hasta 8 canales por ADC [10].

Para realizar la adquisición de audio se utilizó el ADC 0 multiplexado al canal 3del microcontrolador. Éste se configuró con una frecuencia de adquisición de 400kHz, una resolución de 10 bits y se temporizó la adquisición mediante el TIMER0 para adquirir a una frecuencia de 44,1 kHz.

Para realizar la generación de audio se utilizó el DAC configurado con una fre-cuencia de adquisición de 400 kHz, una resolución de 10 bits y se temporizó lageneración mediante el TIMER 1 para generar la señal con la frecuencia de ad-quisición.

Debido a la alta frecuencia de muestreo y por lo tanto al gran volumen de datosadquiridos, resultó necesario utilizar una técnica para adquirir, procesar y gene-rar audio de forma sincronizada. Para ello se utilizó la técnica de Double Bufferingo más comúnmente llamado ping-pong buffer.

Un diagrama del sistema de adquisición y generación utilizado se presenta en lafigura 3.5. En verde se observan los periféricos utilizados del microcontrolador,en azul los drivers de los patrones de diseño implementados y los driver de lasinterrupciones de los timers utilizados y en rojo la implementación del ping-pongbuffer.

Implementación ping-pong buffer

La implementación del ping-pong buffer consiste en utilizar un buffer para adquirirdatos y otro buffer para procesar datos simultáneamente. Al buffer de adquisiciónse lo denomina background buffer mientras que al buffer de procesamiento se lodenomina active buffer.

Page 34: Procesador de audio digital para radios FMlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo... · El procesador de au-dio digital se encuentra representado por el bloque amarillo,

22 Capítulo 3. Diseño e Implementación

FIGURA 3.5: Sistema de adquisición y generación de audio.

El background buffer se actualiza mediante el CANAL 0 del ADC. La carga delmismo se encuentra temporizada y efectuada mediante la interrupción de des-borde del TIMER 0.

Cuando finaliza el procesamiento de datos se copia el vector de datos procesadoal vector de salida o vector de generación de audio.

Luego, una vez que el background buffer se llena, se realiza el intercambio entreel background buffer y el active buffer. Entonces el background buffer comienza acargar datos nuevamente y el procesamiento comienza en el active buffer con elnuevo vector de datos.

La generación de audio debe finalizar al instante que finaliza el procesamientode datos. De esta forma la generación de audio se efectúa de forma continua. Enla figura 3.6 se presenta un diagrama de flujo del funcionamiento del ping-pongbuffer.

Page 35: Procesador de audio digital para radios FMlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo... · El procesador de au-dio digital se encuentra representado por el bloque amarillo,

3.2. Firmware de procesamiento de Audio 23

FIGURA 3.6: Diagrama de flujo del ping-pong buffer.

Page 36: Procesador de audio digital para radios FMlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo... · El procesador de au-dio digital se encuentra representado por el bloque amarillo,

24 Capítulo 3. Diseño e Implementación

Implementación del patrón de diseño

Para realizar la abstracción de hardware sobre el DAC y el ADC, se utilizó el pa-trón de diseño Hardware Proxy Pattern. De esta forma, se separararon los bloquesde procesamiento de audio de la adquisición y la generación.

Para el ADC, el patrón de diseño se implementó en el código mediante el móduloADC_hardwareProxy.

En el módulo ADC_hardwareProxy se implementaron funciones presentes en elalgoritmo 3.1:

1

2 void a d c I n i t i a l i z e (LPC_ADC_T ∗ channel ) ;3

4 void adcConfigurat ion (LPC_ADC_T ∗channel , adcHardwareProxyConfigMode_tmode ,ADC_CHANNEL_T adcMultiplexedChannel , u i n t 3 2 _ t adcSampleRate ,u i n t 8 _ t r e s o l u t i o n ) ;

5

6 void adcDisable (LPC_ADC_T ∗ channel ) ;7

8 void adcSet (LPC_ADC_T ∗channel , ADC_CHANNEL_T adcMultiplexedChannel ,u i n t 3 2 _ t sampleRate , u i n t 8 _ t r e s o l u t i o n , u i n t 8 _ t a c t i o n ) ;

9

10 u i n t 8 _ t adcReadData (LPC_ADC_T ∗channel , adcHardwareProxyConfigMode_tmode ,ADC_CHANNEL_T adcMultiplexedChannel , u i n t 1 6 _ t ∗adcData ) ;

ALGORITMO 3.1: Funciones implementadas del móduloADC_hardwareProxy

El funcionamiento de las funciones implementadas es el siguiente:

adcInitialize(): cumple la función de initialize() , inicializa el canal del ADC.

adcConfiguration(): cumple la función de configure(), configura el modode funcionamiento, el canal multiplexado, la frecuencia de muestreo y laresolución.

adcDisable(): cumple la función de disable(), deshabilita el canal del ADC.

adcSet(): cumple la función de mutate(), y se utiliza para modificar el modode funcionamiento, el canal multiplexado, la frecuencia de muestreo o laresolución.

adcReadData(): cumple la función de access(), adquiere del ADC el valordigitalizado por el mismo.

A su vez, para el DAC, el patrón de diseño se implementó en el código medianteel módulo DAC_hardwareProxy.

Page 37: Procesador de audio digital para radios FMlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo... · El procesador de au-dio digital se encuentra representado por el bloque amarillo,

3.2. Firmware de procesamiento de Audio 25

En el módulo DAC_hardwareProxy se implementaron las funciones presentes enel algoritmo 3.2.

1

2 void DACHARDWAREPROXY_initialize ( void ) ;3

4 void DACHARDWAREPROXY_config( void ) ;5

6 void DACHARDWAREPROXY_disable( void ) ;7

8 u i n t 8 _ t DACHARDWAREPROXY_marshal( void ) ;9

10 u i n t 8 _ t DACPROXYCLIENT_mutate( u i n t 1 6 _ t data ) ;

ALGORITMO 3.2: Funciones implementadas del móduloDAC_hardwareProxy

El funcionamiento de las funciones implementadas es el siguiente:

DACHARDWAREPROXY_initialize(): cumple la función de initialize() , ini-cializa el canal del DAC.

DACHARDWAREPROXY_config(): cumple la función de configure(), con-figura la operación DMA.

DACHARDWAREPROXY_disable(): cumple la función de disable(), desha-bilita el canal del DAC.

DACHARDWAREPROXY_marshal(): cumplen la función de marshal(), ac-tualiza el valor en un buffer circular interno del driver.

DACPROXYCLIENT_mutate(): cumple la función de mutate(), actualiza elvalor generado por el DAC a partir del buffer circular.

3.2.3. Implementación de filtros para procesamiento de audio

Filtro pasabajos 15 kHz

Para el desarrollo de los filtros utilizados en el equipo se utilizó la herramientafdatool (filter design and analysis tool) de MATLAB.

En primer lugar se diseñó un filtro FIR pasabajos. Para ello se configuró la herra-mienta fdatool con los siguientes parámetros:

Design method: equiripple (Parks Mcclellan).

Filter order: minimum order.

Fs: 44100 Hz.

Fpass: 15 kHz.

Fstop: 19 kHz.

Apass: 1 dB.

Astop: 60 dB.

Page 38: Procesador de audio digital para radios FMlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo... · El procesador de au-dio digital se encuentra representado por el bloque amarillo,

26 Capítulo 3. Diseño e Implementación

Mediante estos parámetros se obtuvo un filtro FIR de orden 21, cuyos coeficientesson 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 éstase observa que en la frecuencia de 19 kHz el filtro atenúa 60 dB a la señal deentrada, condición necesaria para transmitir una señal de audio por medio de untransmisor de FM.

FIGURA 3.7: Respuesta en magnitud del filtro diseñado.

La respuesta en fase del filtro diseñado se presenta en la figura 3.8. En ésta seobserva que el filtro diseñado posee fase lineal en la banda de paso.

FIGURA 3.8: Respuesta en fase del filtro diseñado.

A su vez, en la figura 3.9 se presenta el retardo de grupo y en la 3.10 se presentael retardo en fase. En éstas se observa que el filtro diseñado posee un retardo degrupo constante y un retardo de fase igual a cero. Esto implica que la señal no seencuentra retardada en fase a la salida del filtro. Por lo tanto, el filtro no introducedistorsión a la señal de entrada.

Por último, en la figura 3.11 se presenta la respuesta al escalón del filtro diseñado.Ésta caracteriza completamente al filtro diseñado.

Page 39: Procesador de audio digital para radios FMlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo... · El procesador de au-dio digital se encuentra representado por el bloque amarillo,

3.2. Firmware de procesamiento de Audio 27

FIGURA 3.9: Retardo de grupo del filtro diseñado.

FIGURA 3.10: Retardo de fase del filtro diseñado.

Filtro crossover

El filtro crossover fue diseñado mediante dos filtros: un filtro FIR pasabajos y unfiltro FIR pasaaltos. Éstos fueron diseñados mediante la herramienta fdatool deMATLAB.

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.

Page 40: Procesador de audio digital para radios FMlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo... · El procesador de au-dio digital se encuentra representado por el bloque amarillo,

28 Capítulo 3. Diseño e Implementación

FIGURA 3.11: Retardo de fase del filtro diseñado.

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 filtrosson 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 ambosfiltros se produce en 5 kHz aproximadamente. A esta frecuencia se subdivide labanda 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 elrango de frecuencias de 5 kHz a 15 kHz.

En la figura 3.13 se presenta la respuesta en fase de ambos filtros. Como se puedeobservar 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 partedel crossover poseen retardo en fase nulo, mientras que el retardo de grupo es unvalor constante.

Page 41: Procesador de audio digital para radios FMlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo... · El procesador de au-dio digital se encuentra representado por el bloque amarillo,

3.2. Firmware de procesamiento de Audio 29

FIGURA 3.12: Respuesta en magnitud de los filtros diseñados.

FIGURA 3.13: Respuesta en fase de los filtros diseñados.

3.2.4. Compresor de audio

Se implementó un driver de alto nivel que se encarga de efectuar la operación decompresión. En este driver se implementaron cuatro parámetros configurables:

El umbral.

La relación de compresión.

El tiempo de ataque.

El tiempo de relajación.

El compresor de audio fue implementado mediante una FSM. Esta FSM se en-cuentra conformada por tres estados: “DISABLE_STATE”, “ATTACK_STATE” yel estado “RELEASE_STATE”. La FSM implementada se presenta en la figura3.14.

Page 42: Procesador de audio digital para radios FMlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo... · El procesador de au-dio digital se encuentra representado por el bloque amarillo,

30 Capítulo 3. Diseño e Implementación

FIGURA 3.14: FSM del compresor de audio.

El funcionamiento de los estados de la FSM del compresor de audio se describe acontinuación.

DISABLE_STATE: es el estado de reposo. Mientras que el nivel de entradano supere q el nivel umbral, el compresor no actúa. Una vez que el nivelde entrada supera el valor umbral se produce el “gatillado” y se produce latransición al estado ATTACK_STATE.

ATTACK_STATE: se efectúa la compresión de la señal de entrada de formagradual hasta alcanzar la compresión máxima. El tiempo de duración dela compresión de la señal se encuentra limitado por el tiempo de ataque.Cuando se ingresa en el estado se inicia la cuenta de tiempo en la que seencuentra en el estado ATTACK_STATE, cuando se alcanza el tiempo deataque se efectúa la transición al estado RELEASE_STATE.

RELEASE_STATE: se efectúa la descompresión controlada de la señal par-tiendo de la compresión máxima. El tiempo de duración de la descompre-sión del nivel de entrada se encuentra limitado por el tiempo de relajación.Cuando se ingresa en el estado se inicia la cuenta de tiempo en la que seencuentra en el estado RELEASE_STATE, cuando se alcanza el tiempo derelajación se efectúa la transición de estados al estado DISABLE_STATE.

La compresión máxima depende del nivel de entrada, el umbral y la relaciónde compresión. Se calcula cada vez que se efectúa el “gatillado” en el DISA-BLE_STATE. El cálculo se efectúa según la ecuación 3.1.

compresion maxima =nivel de entrada− umbral

relacion de compresion+ umbral (3.1)

Page 43: Procesador de audio digital para radios FMlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo... · El procesador de au-dio digital se encuentra representado por el bloque amarillo,

3.3. Hardware 31

El compresor de audio lento se configuró con un tiempo de ataque de 25 ms y untiempo de relajación de 250 ms. Además se configuró la relación de compresión en2 y el umbral en 700. El umbral es equivalente a 1,13 V a la entrada del ADC. Parael compresor de audio rápido se configuró con un tiempo de ataque de 3 ms y untiempo de relajación de 30 ms. A su vez, se configuró la relación de compresiónen 2 y el umbral en 750. El umbral es equivalente a 1,21 V a la entrada del ADC.

3.3. Hardware

3.3.1. Análisis de los circuitos más importantes

Para realizar la adquisición de audio fue necesario implementar el circuito deacondicionamiento de señal que se presenta en la figura 3.15.

El circuito de la figura 3.15 implementa un mezclador de audio con amplificación.A este circuito se le ingresa con el canal derecho e izquierdo de una señal deaudio proveniente de una consola o un micrófono en INRCHM y en INLCHM,respectivamente.

A estas señales de audio se las atenua mediante los divisores resistivos conforma-dos por R16 con R18 y R17 con R19. Luego su contenido de continua es filtradomediante los capacitores C9 y C10.

Debido a que el ADC sólo puede adquirir señales positivas, fue necesario sumarun offset de continua a la señal de audio entrante. Ésto se implementó mediantelas resistencias R13, R14 y la resistencia variable R15. A través de la resistenciaR15 el operador puede ajustar el offset durante el proceso de puesta en marchadel equipo.

En el pin 3 del amplificador operacional U2A se realiza la suma del canal izquier-do, canal derecho y el offset de continua. Luego, la señal resultante es inyectadaen el amplificador operacional sobre el cual se implementa una configuración noinversora, conformada por R20 y R36.

Además se agregó el jumper CH3ADC a la salida del amplificador U2A. Éstejumper permite al operador separar la etapa de acondicionamiento del micro-controlador durante el proceso de puesta en marcha. De esta forma se protegeal microcontrolador de posibles aumentos de tensión inesperados en su entradaADC.

Para la generación de audio se implementó el circuito de la figura 3.16. En estecircuito se implementó un filtro pasaaltos con una frecuencia de corte de 100 Hz.El filtro es utilizado para eliminar el nivel de continua de la señal de audio gene-rada por el DAC del uC. No se incluyó el circuito de reconstrucción ya que fuedejado para una etapa posterior del trabajo porque es un circuito analógico quedebe ser analizado de forma unitaria.

Por último, para utilizar en conjunto con la interfaz de usuario se agregaron tresled cuyo circuito se presenta en la figura 3.17. Estos led son activados por mediode las salidas digitales GPIO4, GPIO5 y GPIO6 del microcontrolador presente enla EDU-CIAA NXP.

Page 44: Procesador de audio digital para radios FMlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo... · El procesador de au-dio digital se encuentra representado por el bloque amarillo,

32 Capítulo 3. Diseño e Implementación

FIGURA 3.15: Circuito de acondicionamiento de la señal para laadquisición de audio.

3.3.2. Diseño de circuito impreso

Los circuitos implementados en la subsección 3.3.1 fueron implementados me-diante un PCB (Printed Circuit Board, Placa de circuito impreso).

El PCB y el esquemático fueron diseñados haciendo uso del software kiCad. ElPCB fue desarrollado a modo de poncho para ser montado sobre la EDU-CIAANXP. A éste se le dio el nombre de "Poncho procesador de audio 3". Para realizareste diseño se tuvieron en cuenta los siguientes aspectos:

Accesibilidad a los conectores de entrada y salida del procesador.

Cercanía de capacitores de filtrado a los pines de alimentación de los circui-tos integrados.

Visualización de los leds de la EDU-CIAA NXP.

3https://github.com/gastonvallasciani/CESE-6Co2018_PCB

Page 45: Procesador de audio digital para radios FMlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo... · El procesador de au-dio digital se encuentra representado por el bloque amarillo,

3.4. Interfaz de usuario 33

FIGURA 3.16: Circuito de generación de audio por medio delDAC.

FIGURA 3.17: Circuito de manejo de leds para interfaz de usuario.

Orden en la ubicación de los componentes.

Puesta en marcha del equipo.

El modelo 3D del poncho desarrollado se presenta en la figura 3.18.

El PCB fue fabricado en Argentina por la empresa Ernesto MAYER SA y la mon-tura de componentes fue realizada por el autor de esta memoria. La implementa-ción final con los componentes montados se presenta en la figura 3.19.

3.4. Interfaz de usuario

Para que el operador interactúe con el procesador de audio se implementó unainterfaz de usuario por medio de la tecla TEC1, un interruptor y los leds LED1,LED2, LED 3, D2 y el LEDR.

Una vez que se enciende el procesador de audio, el procesamiento de audio se en-cuentra deshabilitado. D2 se encuentra apagado, LEDR se encuentra encendido,LED1 se encuentra encendido, LED2 se encuentra apagado y LED3 se encuentraapagado. Cuando LEDR se encuentra encendido indica que el equipo se encuen-tra en funcionamiento.

Page 46: Procesador de audio digital para radios FMlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo... · El procesador de au-dio digital se encuentra representado por el bloque amarillo,

34 Capítulo 3. Diseño e Implementación

FIGURA 3.18: Modelo 3D PCB desarrollado.

Page 47: Procesador de audio digital para radios FMlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo... · El procesador de au-dio digital se encuentra representado por el bloque amarillo,

3.4. Interfaz de usuario 35

FIGURA 3.19: PCB fabricado con componentes montados.

Para iniciar el procesamiento de audio se utiliza el pulsador TEC1 presente en laplaca EDU-CIAA NXP. Para que la ejecución de la acción de pulsado sea inde-pendiente de la dinámica secuencial de ejecución de instrucciones del programase utilizó la interrupción de cambio de nivel. Esta interrupción se configuró paraque detecte el flanco descendente generado cuando se presiona el pulsador TEC1.

Una vez pulsado TEC1 se enciende el led D2 que indica que el equipo se encuen-tra procesando audio. Si se desea finalizar el procesamiento de audio se debepulsar nuevamente TEC1. Una vez finalizado el procesamiento de audio el ledD2 se apaga.

Los leds LED1, LED2 y LED3 son utilizados para indicar en qué rango se encuen-tra el nivel de entrada. El detector de nivel es quién se encarga de sensar el nivelde entrada y cuando éste es menor a 341 se enciende el LED3 y se apagan LED1 yLED2, cuando se encuentra entre 341 y 682 se enciende LED2 y se apagan LED1 yLED3 y cuando es superior 682 y menor a 1023 a se enciende el LED1 y se apaganLED1 y LED3.

El detector de nivel se encuentra en funcionamiento todo el tiempo que el equipose encuentre encendido. Ésto se debe a que el detector de nivel se utiliza paraajustar el nivel de entrada durante la calibración del equipo. Además, al aplicarse

Page 48: Procesador de audio digital para radios FMlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo... · El procesador de au-dio digital se encuentra representado por el bloque amarillo,

36 Capítulo 3. Diseño e Implementación

el detector de nivel sobre cada muestra adquirida y teniendo en cuenta que elequipo adquiere con una frecuencia de 44,1 kHz, los tres led funcionan como unvúmetro de tres niveles. Esto es debido a que según se evalué el nivel de entradade las muestras adquiridas, se actuará sobre los leds produciendo un encendidoaudio rítmico de los mismos.

La ubicación de los componentes que forman parte de la interfaz de usuario sepresenta en la figura 3.20. En ésta se observa el pulsador TEC1 en un recuadroamarillo, los leds LED1, LED2 y LED3 en un recuadro verde y el led LEDR enun recuadro rosa. El led D2 se encuentra ubicado en el poncho de la figura 3.19presente en la subsección 3.3.1.

FIGURA 3.20: Ubicación de los componentes de la interfaz deusuario.

Page 49: Procesador de audio digital para radios FMlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo... · El procesador de au-dio digital se encuentra representado por el bloque amarillo,

37

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ódulode firmware implementado fue ensayado de forma unitaria, y además, se realizóun test integral del funcionamiento del equipo.

4.1. Adquisición y generación de audio

Para llevar a cabo este test se utilizaron los siguientes instrumentos:

Generador de audio: GW Instek GAG-810. Rango de frecuencia de 10 Hz a1 MHz.

Osciloscopio: GW Instek GDS-1102A-U.

Analizador de espectros: USB-SA44B - 4.4 GHz. Signal Hound.

Este test fue realizado para caracterizar el ADC y el DAC utilizados en el trabajo.Para ello se midió la latencia que existe entre la adquisición y la generación deaudio y la distorsión armónica que introduce el DAC al reconstruir la señal deaudio.

Para realizar el test unitario de adquisición y generación de audio se armó uncircuito de acondicionamiento de señal sobre una protoboard. Por medio de éstese sumó un nivel de continua a un tono puro generado por el generador de audio.El circuito acondicionador fue conectado al Canal 0 del ADC. El circuito montadopara realizar este test es el que se presenta en la figura 3.15.

Durante el test se inyectó al circuito acondicionador de señal un tono puro defrecuencia 15 kHz y amplitud 3 V. Se utilizó una velocidad de conversión y gene-ración de 44,1 kHz. Luego, se midió la señal reconstruida sobre la salida del DACcon un osciloscopio. De esta forma, se obtuvo la lectura del osciloscopio que sepresenta en la figura 4.1. En ésta se observa en azul la señal inyectada, mientrasque en amarillo se presenta la señal de salida del equipo.

En la figura 4.1 se observa que existe una latencia entre adquisición y generaciónde 12 uS. Además, se observa que la señal de salida difiere en gran medida y esescalonada con respecto a la señal de entrada. Ésto es debido a que se muestrea yse reconstruye la señal de entrada con una frecuencia 3 veces mayor con respectoa la frecuencia del tono inyectado. Esto produce que se tomen pocas muestras porperiodo de la señal de entrada, perdiendo información de la misma y generandodiferencias al reconstruirla.

Page 50: Procesador de audio digital para radios FMlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo... · El procesador de au-dio digital se encuentra representado por el bloque amarillo,

38 Capítulo 4. Ensayos y Resultados

FIGURA 4.1: Medición de latencia mediante osciloscopio.

Luego, se midió la salida del DAC con el analizador de espectro y se obtuvo lalectura que se presenta en la figura 4.2.

FIGURA 4.2: Medición de distorsión armónica mediante analiza-dor de espectro.

En la figura 4.2 se observa que entre la componente fundamental y la tercer ar-mónica hay una diferencia de 54,4 dB. Por lo tanto, piso de ruido se encuentralimitado por la tercer armónica y establece el piso de ruido mínimo que posee elequipo.

Page 51: Procesador de audio digital para radios FMlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo... · El procesador de au-dio digital se encuentra representado por el bloque amarillo,

4.2. Filtros 39

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 procesadorde audio. Por medio de la PC y utilizando el software Audacity se generaron lostonos puros necesarios para realizar las pruebas sobre los filtros. A su vez, a lasalida del procesador se conectó un parlante. Por último, se conectó el canal 1del 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, lageneración de audio y el algoritmo de procesamiento del filtro estudiado.

FIGURA 4.3: Banco de pruebas de filtros.

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 tonosque se encuentran en el rango de frecuencias de la banda de paso del filtro y untono 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 frecuenciasmayores a 20 kHz la salida de audio de la PC se volvió inestable imposibilitandola 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 lecturasobtenidas 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 alprocesador 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 secondice 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 debeen primer lugar al error que se produce al muestrear el tono con una cantidad

Page 52: Procesador de audio digital para radios FMlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo... · El procesador de au-dio digital se encuentra representado por el bloque amarillo,

40 Capítulo 4. Ensayos y Resultados

FIGURA 4.4: Entrada comparada con salida del procesador de au-dio con tono de 1 kHz.

FIGURA 4.5: Entrada comparada con salida del procesador de au-dio con tono de 10 kHz.

de muestras pequeña por periodo. En segundo lugar se debe a que al codificarse debieron truncar los coeficientes del filtro diseñado originalmente para pasarde números flotantes a enteros. Además, se observa que la señal de salida se en-cuentra montada sobre una señal de baja frecuencia. Esta frecuencia es un efectoindeseado del muestreo introducido por el osciloscopio.

Por último, en la figura 4.7 se observa la respuesta en magnitud del filtro en labanda de stop. En ésta se observa que la señal de entrada fue atenuada en granmedida por parte del filtro. De esta forma, se corrobora que el filtro posee el com-portamiento esperado.

Page 53: Procesador de audio digital para radios FMlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo... · El procesador de au-dio digital se encuentra representado por el bloque amarillo,

4.2. Filtros 41

FIGURA 4.6: Entrada comparada con salida del procesador de au-dio con tono de 14 kHz.

FIGURA 4.7: Entrada comparada con salida del procesador de au-dio con tono de 19 kHz.

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 losfiltros diseñados en la subsección 3.2.3.

Page 54: Procesador de audio digital para radios FMlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo... · El procesador de au-dio digital se encuentra representado por el bloque amarillo,

42 Capítulo 4. Ensayos y Resultados

4.3. Compresor de audio

Para realizar el test unitario del módulo de compresión de audio se implementóel mismo banco de pruebas que en la sección 4.2.

En el procesador de audio se implementó únicamente la adquisición de audio, lageneración de audio y el algoritmo de compresión de audio.

Para llevar a cabo el test se configuró un compresor de audio con los siguientesparámetros:

Umbral: 600.

Relación de compresión: 2.

Tiempo de ataque: 30 ms.

Tiempo de relajación: 30 ms.

Una vez configurado el compresor de audio, se inyectó un tono puro de 5 kHz enla entrada del procesador de audio. El tono inyectado se presenta en la figura 4.8.

FIGURA 4.8: Tono de 5 kHz generado con Audacity para test decompresor de audio.

Como se puede observar en la figura 4.8 la amplitud del tono aumenta luego deun 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 lafigura 4.9 se presenta la medición del tiempo de ataque sobre la señal procesadapor el compresor de audio, mientras que en la figura 4.10 se presenta la medicióndel 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 hastaun nivel de compresión máxima. El nivel de compresión máxima se encuentradado 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 alconfigurado 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, seproduce 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ónmedido en la figura 4.10 es igual al configurado como parámetro del compresorde 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

Page 55: Procesador de audio digital para radios FMlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo... · El procesador de au-dio digital se encuentra representado por el bloque amarillo,

4.4. Ensayo integrador 43

FIGURA 4.9: Medición del tiempo de ataque sobre la señal proce-sada por el compresor de audio.

el nivel de entrada supera el nivel umbral, entonces se produce el “gatillado”.Luego, la señal de entrada es comprimida durante el tiempo de ataque hasta elnivel de compresión máxima. Por último, la señal es descomprimida de formacontrolada por el tiempo de relajación hasta su nivel original.

4.4. Ensayo integrador

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 seconectó a la entrada del procesador de audio. Además, se conectó el osciloscopioentre la entrada y la salida del procesador. En la figura 4.11 se presenta el bancode pruebas montado.

En primer lugar se midió la latencia del equipo. La medición fue realizada porfirmware contando la cantidad de ciclos de reloj que conlleva ejecutar el ciclocompleto 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 superiora 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 lossiguientes:

Umbral: 700.

Relación de compresión: 2.

Tiempo de ataque: 25 ms.

Tiempo de relajación: 250 ms.

Page 56: Procesador de audio digital para radios FMlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo... · El procesador de au-dio digital se encuentra representado por el bloque amarillo,

44 Capítulo 4. Ensayos y Resultados

FIGURA 4.10: Medición del tiempo de relajación sobre la señalprocesada por el compresor de audio.

A su vez, los parámetros configurados para los compresores rápidos fueron lossiguientes:

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 osciloscopiocon la configuración descripta final del equipo. En el canal 1, en azul, se visualizala salida del equipo, mientras que en el canal 2, en amarillo, se visualiza la entradade audio del equipo. En la figura 4.12 se observa que la salida fue amplificada conrespecto en la entrada. Esto se condice con el estado de amplificación de la FSMgeneral del procesador de audio de la figura figura 3.4.

4.5. Resumen de los resultados

A continuación en la tabla 4.1 se muestra una lista de los requerimientos inicialesy su grado de conformidad. Los requerimientos que se encuentran incompletosfueron pospuestos para la siguiente etapa del proyecto.

Page 57: Procesador de audio digital para radios FMlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo... · El procesador de au-dio digital se encuentra representado por el bloque amarillo,

4.5. Resumen de los resultados 45

FIGURA 4.11: Banco de pruebas del ensayo integrador.

FIGURA 4.12: Lectura del osciloscopio resultante del ensayo inte-grador.

Page 58: Procesador de audio digital para radios FMlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo... · El procesador de au-dio digital se encuentra representado por el bloque amarillo,

46 Capítulo 4. Ensayos y Resultados

TABLA 4.1: Tabla de conformidad de los requerimientos.

Req Conformidad Observaciones

R1.a Completa -R1.b Completa -R2.a Parcial Actualmente se adquieren sumados los dos canales.R2.b Completa -R2.c Completa -R3.a Completa -R3.b Incompleta Se dejó para la siguiente etapa del proyecto.R4.a Completa -R4.b Completa -R4.c Completa -R4.d Completa -R4.e Completa -

Page 59: Procesador de audio digital para radios FMlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo... · El procesador de au-dio digital se encuentra representado por el bloque amarillo,

47

Capítulo 5

Conclusiones

En este capítulo se realiza una conclusión general sobre el trabajo realizado y sedetallan los pasos a seguir en el futuro.

5.1. Trabajo realizado

En la presente memoria se documentó el desarrollo del prototipo de un procesa-dor de audio digital para radio emisoras FM.

Los requerimientos planteados al principio del trabajo fueron llevados a caboen su mayoría, exceptuando aquellos que fueron pospuestos para una segundaetapa. Estos requerimientos son el 3.b y el 2.a.

Para el desarrollo de este trabajo se utilizaron técnicas y conceptos aprendidos du-rante las distintas materias de la Especialización en Sistemas Embebidos (CESE).A continuación se resaltan los contenidos que mayor relevancia tuvieron para eldesarrollo de este trabajo:

Se utilizaron conocimientos sobre la Arquitectura ARM Cortex M para laprogramación de la plataforma EDU-CIAA NXP y el uso de los periféricos.

Se utilizaron buenas prácticas de programación de Lenguaje C para micro-controladores y periféricos. Se escribieron comentarios en las declaracionesde funciones. Se utilizaron constantes en mayúsculas, y además se utilizó elformato camelCase para poner nombres significativos a funciones y varia-bles. De esta forma, se obtuvo un código más modular, legible y reutilizable.

Mediante una FSM se implementó un sistema operativo tipo apropiativoque se encarga de ejecutar de forma ordenada y secuencial los procesos quelleva adelante el equipo. Además, se utilizaron otras máquinas de estadopara llevar a cabo las distintas funcionalidades del equipo.

Se diseñó, implementó y fabricó un poncho procesador de audio que inter-conectado con la EDU-CIAA NXP conforma el hardware del equipo.

Se realizó la gestión del trabajo mediante un control de versiones, que re-sultó fundamental para almacenar en todo momento del desarrollo una ver-sión estable del trabajo.

Se realizaron test unitarios sobre las funciones complejas. De esta forma, seprobaron de forma aislada los filtros diseñados, el módulo de compresoresde audio y la adquisición y generación de audio reduciendo los tiempos dedesarrollo.

Page 60: Procesador de audio digital para radios FMlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo... · El procesador de au-dio digital se encuentra representado por el bloque amarillo,

48 Capítulo 5. Conclusiones

Por lo tanto, se concluye que se cumplió con los objetivos planteados al principiodel trabajo. Se desarrollaron y probaron los principales módulos que componenal equipo y se aplicaron los conocimientos aprendidos durante la Carrera de Es-pecialización por parte del autor.

5.2. Próximos pasos

Para poder llevar este producto al mercado resulta imprescindible reconocer quemodificaciones y mejoras deben ser llevadas a cabo sobre el equipo. En la próximaetapa del trabajo se debe hacer hincapié en los siguientes aspectos:

Diseñar, implementar y fabricar un PCB dedicado al equipo. Este PCB debeposeer un DAC de audio, un ADC de audio y un display color para realizarla configuración del equipo.

La adquisición de audio debe realizarse con una frecuencia de 96 kHz y 16bit de resolución.

La generación de audio debe realizarse con una frecuencia de 96 kHz y 16bit de resolución.

Analizar y seleccionar un circuito de reconstrucción de la señal analógicapara la señal de audio.

Se debe medir la distorsión armónica a la salida del equipo durante el pro-cesamiento de audio.

Page 61: Procesador de audio digital para radios FMlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo... · El procesador de au-dio digital se encuentra representado por el bloque amarillo,

49

Bibliografía

[1] Audacity. Free, open source, cross-platform audio software. Disponible: Mayo2000. URL: https://www.audacityteam.org.

[2] FEDERICO Bocco, FRANCISCO Giana y P Ramos. «Procesadores deaudio: filtros, generalidades». En: Departamento de ingeniería electrónica.Catedra fundamentos de acústica y electroacústica. Universidad TecnológicaNacional, Argentina (2011).

[3] Oscar Bonello. «Procesado psicoacústico de audio para la transmisión dealta 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 andscientists. Elsevier, 2013.

[13] Tomás RobiscoP. Los males del audio digital: Jitter, aliasing, errores decuantizació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.