Cómo utilizar un códec de audio para optimizar más fácilmente el rendimiento del audio en los sistemas integrados

Por Jacob Beningo

Colaboración de Editores de DigiKey de América del Norte

Muchos diseñadores están incluyendo códecs de audio en sus diseños de sistemas embebidos basados en microcontroladores en un esfuerzo por añadir audio de alta fidelidad. Para ello, tienen que averiguar cómo afinar el códec de audio para su aplicación. Si no se afina, la aplicación puede quedar con un sonido plano o de mala calidad, incluso con un buen códec y altavoz. El problema es que cada altavoz tiene su propia respuesta en frecuencia, por lo que el códec debe ajustarse a las características del altavoz, teniendo en cuenta el tipo de audio que se reproducirá y la respuesta requerida.

La solución para ajustar el sistema de reproducción de audio no es utilizar el filtrado por hardware, sino aprovechar los bloques de filtrado digital propios del códec de audio. Todos los códecs disponen de este bloque para que el desarrollador pueda filtrar la salida mediante filtros de paso alto, paso bajo y paso de banda. Esto permite afinar la respuesta del altavoz e incluso ajustarla, según sea necesario.

En este artículo se analizan los bloques de audio digital internos que se incluyen en los códecs, utilizando como ejemplo un códec de AKM Semiconductor. También se comentarán varios consejos y trucos para ajustar el códec que ayudarán a los desarrolladores a acelerar el desarrollo de la reproducción de audio al tiempo que mejoran la calidad del sonido del sistema.

Comprender las características de la respuesta en frecuencia de los altavoces

El artículo "Cómo seleccionar y utilizar un códec de audio y un microcontrolador para los archivos de retroalimentación de audio incrustados" analizaba los fundamentos de la selección y adición de un códec a un sistema. El siguiente paso es utilizar ese códec para obtener la mejor salida de audio posible.

Hay varios factores diferentes que contribuyen a cómo sonará el audio que sale de un sistema. Estos factores incluyen:

  • El recinto del altavoz
  • Cómo se monta el altavoz
  • Las frecuencias de audio que se reproducen
  • La respuesta en frecuencia del altavoz

Tras considerar detenidamente estos factores, un desarrollador pronto se dará cuenta de que el ajuste de un sistema de audio sólo es útil cuando está en su estado final de producción. Claro que el sistema puede ajustarse con una placa de circuito impreso (pc board) y el altavoz fuera de una carcasa, pero no hay que esperar que esos mismos parámetros de ajuste se apliquen cuando el altavoz está montado y dentro de su carcasa.

Si el equipo mecánico ha diseñado correctamente la caja y el soporte del sistema, la principal característica que el desarrollador debe vigilar de cerca es la respuesta en frecuencia del altavoz. Cada altavoz tiene características y curvas de respuesta diferentes. Incluso los altavoces con la misma referencia suelen tener ligeras variaciones en la respuesta en frecuencia, pero el fabricante suele proporcionar una curva de respuesta en frecuencia típica. Por ejemplo, la Figura 1 muestra la curva de respuesta en frecuencia de un altavoz CUI Devices GC0401K de 8 Ohm (Ω) y 1 vatio. El GC0401K está preparado para frecuencias entre 390 Hertz (Hz) y 20 kilohertz (kHz).

Gráfico del altavoz GC0401K de 8 Ω y 1 vatio de CUI DevicesFigura 1: El altavoz GC0401K de 8 Ω y 1 vatio de CUI Devices está preparado para frecuencias entre 390 Hz y 20 kHz. (Fuente de la imagen: CUI Devices)

Los altavoces suelen clasificarse por la región de su curva de respuesta en la que es relativamente plana. Si se observa detenidamente la figura 1, se observa que la respuesta en frecuencia del GC0401K empieza a aplanarse a unos 350 Hz y se mantiene relativamente plana al menos hasta los 9 kHz. Las frecuencias altas tienen cierta caída, pero siguen siendo estables hasta los 20 kHz.

En el GF0668 de CUI Devices (Figura 2) se puede observar una respuesta en frecuencia del altavoz diferente. Este altavoz es un poco más grande y puede emitir 3 vatios. La respuesta en frecuencia está comprendida entre 240 Hz y 20 kHz. Este altavoz puede alcanzar frecuencias ligeramente más bajas que el GC0401K, pero tenga en cuenta de nuevo que, dentro del rango especificado, la curva es relativamente plana, con algunos mínimos y máximos.

Gráfico de la respuesta en frecuencia del altavoz GF0668 de 8 Ω y 3 vatios de CUI Devices (haga clic para ampliar)Figura 2: La respuesta en frecuencia del altavoz GF0668 de 8 Ω y 3 vatios de CUI Devices muestra por qué está clasificado para el rango de 240 Hz a 30 kHz. (Fuente de la imagen: CUI Devices)

Una última respuesta de altavoz que merece la pena examinar es la SP-2804Y de Soberton Inc. El SP-2804Y es un altavoz de 500 milivatios (mW) con un rango de respuesta en frecuencia de 600 Hz a 8 kHz. Las leyes de la física aseguran que cuanto más pequeño sea el altavoz, más difícil será que responda a las frecuencias más bajas. Esto significa que si los desarrolladores no filtran las frecuencias más bajas y en su lugar intentan conducir el altavoz a esas frecuencias, el resultado puede ser un audio de sonido desagradable o defectos en tonos que de otro modo sonarían con claridad.

Obsérvese que también hay una caída significativa en la respuesta en frecuencia en torno a los 10 kHz. Por lo tanto, el altavoz sólo está clasificado para 8 kHz, aunque probablemente podría utilizarse hasta 20 kHz para algunas aplicaciones.

Gráfico de la respuesta en frecuencia del altavoz SP-2804Y de 8 Ω y 0.5 vatios de Soberton IncFigura 3: La respuesta en frecuencia del altavoz SP-2804Y de 8 Ω y 0,5 vatios de Soberton Inc. muestra que es adecuado para frecuencias de 600 Hz a 8 kHz. Tiene una caída después de 10 kHz, pero sigue siendo utilizable hasta 20 kHz para algunas aplicaciones. (Fuente de la imagen: CUI Devices)

Si observamos la respuesta en frecuencia de cada altavoz, está claro que es necesario realizar algún tipo de filtrado y ajuste, ya que hay algunas frecuencias a las que un altavoz no debería funcionar. Por ejemplo, tratar de conducir un tono de bajo de 4 Hz en estos altavoces podría causar vibraciones de larga duración sobre las que se inyectan frecuencias más altas, lo que resulta en mucha distorsión del sonido.

Disección de un bloque de filtro digital de audio

Un método que se ha utilizado en el pasado para sintonizar las frecuencias no deseadas es construir filtros de hardware que llegan hasta el altavoz. Por ejemplo, un filtro de paso alto a 500 Hz puede impedir que las frecuencias inferiores a 500 Hz lleguen al altavoz. En el otro extremo, se puede utilizar un filtro de paso bajo para eliminar cualquier tono de audio por encima de 15 kHz. La experiencia personal ha demostrado que, a veces, si se utiliza la voz de una mujer con un altavoz pequeño que es eficiente en las frecuencias más altas, el altavoz puede mostrar un tono agudo. La selección cuidadosa de las frecuencias puede eliminar estas distorsiones y crear un sonido más limpio.

Aunque los filtros de hardware externos pueden hacer el trabajo, añaden costo y ocupan espacio adicional. Por estas razones, es más práctico y eficaz sintonizar el audio utilizando el bloque de filtro digital incorporado en un códec de audio.

Por ejemplo, el diagrama de bloques del códec de audio de 24 bits AKM Semiconductor AK4637 tiene el bloque de filtro digital resaltado (Figura 4).

El diagrama del AKM Semiconductor AK4637 es un códec de audio con una salida de altavoz mono (haga clic para ampliar)Figura 4: El AK4637 es un códec de audio con una salida de altavoz mono que tiene capacidades de reproducción y grabación de audio. También contiene un bloque de audio interno que puede utilizarse para filtrar el audio entrante y saliente para mejorar la fidelidad de audio. (Fuente de la imagen: AKM Semiconductor)

En este caso, el bloque de filtrado digital contiene varias capacidades de filtrado diferentes que incluyen:

  • Un filtro de paso alto (HPF2)
  • Un filtro de paso bajo (LPF)
  • Un ecualizador de cuatro bandas (4-Band EQ)
  • Control automático de nivelación (ALC)
  • Un ecualizador de una banda (1 Band EQ)

No es necesario activar todas estas funciones. Los desarrolladores pueden seleccionar las funciones que necesitan y habilitar y deshabilitar el bloqueo o dirigir el micrófono o el audio de reproducción a través de ellas. La verdadera pregunta en este momento es cómo calcular y programar el códec de audio.

Cómo calcular y programar los parámetros del filtro digital

En la mayoría de las aplicaciones de audio, se utiliza un filtro de paso alto para eliminar las frecuencias más bajas y un filtro de paso bajo para excluir las frecuencias más altas. Se puede utilizar un ecualizador para suavizar la curva de respuesta en frecuencia o para enfatizar ciertos tonos. El modo en que deben seleccionarse exactamente estos ajustes está fuera del alcance de este artículo. En su lugar, se verá cómo calcular y programar los valores que están asociados a estos parámetros utilizando el AKM AK4637 como ejemplo.

En primer lugar, siempre es una buena idea revisar la hoja de datos. En este caso, las páginas 7 y 8 muestran el importantísimo mapa de registros del códec. Un primer vistazo puede resultar intimidante, dado que la pieza tiene 63 registros. Sin embargo, muchos de estos registros controlan el bloque de audio digital. Por ejemplo, los registros 0x22 a 0x3F controlan el ecualizador. Los registros 0x19 a 0x1C controlan el filtro de paso alto, mientras que los 0x1D a 0x20 controlan el filtro de paso bajo.

Por lo general, los desarrolladores no pueden limitarse a especificar una frecuencia para introducirla en el códec. En su lugar, hay una ecuación de filtro que se utiliza para calcular los coeficientes del filtro, que luego se programan en los registros del códec para crear el filtro en la frecuencia deseada. Por ejemplo, para utilizar el bloque de filtro digital para crear un filtro de paso alto a 600 Hz, utilice la ecuación 1:

Imagen de las ecuaciones necesarias para calcular los coeficientes de un filtro paso altoFigura 5: Se muestran las ecuaciones necesarias para calcular los coeficientes de un filtro pasa alto para el bloque de filtro digital AK4637. (Fuente de la imagen: AKM Semiconductor)

Un desarrollador identificaría la frecuencia de corte deseada, fc, que en este caso es de 600 Hz. La frecuencia de muestreo de audio, fs, suele ser de 48 kHz, pero puede variar en función de la aplicación. Estos valores se colocan en las ecuaciones para calcular los coeficientes A y B. Estos valores se escriben en los registros del códec a través de I2C durante el arranque. El mismo proceso se utilizaría para los filtros de paso bajo y otras características del bloque digital, aunque las funciones de transferencia suelen ser diferentes, lo que requiere el uso de su propio conjunto de ecuaciones (consulte la hoja de datos).

Consejos y trucos para afinar un códec de audio

Los bloques de filtros digitales incluidos en un códec de audio suelen ser bastante flexibles y potentes. Incluso un códec de audio de bajo coste proporciona a los desarrolladores las herramientas necesarias para generar audio de alta fidelidad. Sin embargo, a fin de cuentas, el códec de audio es solo una pieza del rompecabezas. Para ajustar con éxito un códec de audio, hay varios "consejos y trucos" que los desarrolladores deben tener en cuenta, como por ejemplo

  • Asegúrese de que el altavoz está montado en una caja apropiada para la aplicación. Una caja acústica mal diseñada puede arruinar fácilmente un sistema de reproducción por lo demás perfecto.
  • No ajuste los bloques de filtro de audio del códec hasta que el sistema esté completamente montado en su configuración de intención de producción. De lo contrario, los parámetros de ajuste podrían cambiar.
  • Seleccione la gama de frecuencias en función del audio que se reproducirá. Por ejemplo, los ajustes de frecuencia para la música de una guitarra, un piano o alguien que habla serán todos diferentes.
  • Utiliza el bloque de balance digital para compensar la respuesta en frecuencia del altavoz. Algunas frecuencias son naturalmente más altas y claras y pueden necesitar ser atenuadas, mientras que otras pueden necesitar ser amplificadas.
  • Utilice tonos de prueba para evaluar la respuesta en frecuencia del sistema. Una simple búsqueda en Internet proporcionará archivos mp3 para una amplia gama de tonos de audio que pueden utilizarse para comprender la respuesta en frecuencia del sistema de reproducción de audio y cómo funciona el bloque de filtros digitales.
  • Almacenar los ajustes de configuración del bloque de filtrado en la memoria flash o EEPROM para que puedan ajustarse durante la fabricación para tener en cuenta las variaciones de un sistema a otro (si eso es lo que interesa).

Los desarrolladores que sigan estos "consejos y trucos" descubrirán que se ahorran bastante tiempo y disgustos al intentar ajustar su sistema de reproducción de audio, y se aseguran de que llega al mercado con las características de audio previstas.

Conclusión:

Añadir un códec de audio a un sistema embebido no garantiza que el usuario final lo escuche bien. Todo sistema de reproducción de audio debe ser cuidadosamente ajustado. Es posible utilizar filtros externos para lograr este ajuste, pero los códecs de audio vienen con capacidades de filtrado y balance digital incorporadas. Como se ha mostrado, pueden utilizarse para alimentar el altavoz sólo con las frecuencias para las que es más adecuado. Con un análisis cuidadoso y la aplicación de los ajustes de los filtros, los desarrolladores pueden crear el sonido limpio que los usuarios finales esperan de sus dispositivos.

DigiKey logo

Descargo de responsabilidad: Las opiniones, creencias y puntos de vista expresados por los autores o participantes del foro de este sitio web no reflejan necesariamente las opiniones, las creencias y los puntos de vista de DigiKey o de las políticas oficiales de DigiKey.

Información sobre el autor

Image of Jacob Beningo

Jacob Beningo

Jacob Beningo es un consultor de software integrado que actualmente trabaja con clientes en más de una docena de países para transformar drásticamente sus negocios mejorando la calidad del producto, el costo y el tiempo de comercialización. Ha publicado más de 200 artículos sobre técnicas de desarrollo de software embebido, es un conferenciante y entrenador técnico muy solicitado y tiene tres títulos que incluyen una Maestría en Ingeniería de la Universidad de Michigan. No dude en ponerse en contacto con él en jacob@beningo.com, en su sitio web www.beningo.com, y suscríbase a su boletín mensual Embedded Bytes Newsletter.

Información sobre la editorial

Editores de DigiKey de América del Norte