Como usar um codec de áudio para otimizar mais facilmente o desempenho de áudio em sistemas embarcados

By Jacob Beningo

Contributed By DigiKey's North American Editors

Muitos projetistas estão incluindo codecs de áudio em seus projetos de sistemas embarcados baseados em microcontrolador em um esforço para agregar alta-fidelidade de áudio. Ao fazer isso, eles devem descobrir como afinar o codec de áudio para sua aplicação. Sem a afinação, a aplicação pode ficar tocando em tom mais baixo ou com qualidade ruim, mesmo com um bom codec e alto-falante. O problema é que todo alto-falante possui sua própria resposta de frequência e, portanto, o codec deve ser afinado às características do alto-falante, tendo em mente o tipo de áudio que será tocado e a resposta necessária.

A solução para a afinação do sistema de reprodução de áudio não é usar filtragem de hardware mas, em vez disso, aproveitar os próprios blocos de filtragem digital do codec de áudio. Todo codec possui este bloco para permitir que um desenvolvedor filtre a saída usando filtros passa-alta, passa-baixa e passa-faixa. Isto permite que a resposta do alto-falante seja cuidadosamente afinada e até mesmo ajustada, conforme necessário.

Este artigo discutirá os blocos internos de áudio digital que estão inclusos nos codecs, usando um codec da AKM Semiconductor como exemplo. Ele também discutirá várias dicas e truques sobre como afinar o codec que ajudará os desenvolvedores a acelerar seu desenvolvimento de reprodução de áudio, enquanto melhora uma qualidade de som do sistema.

Entendendo as características de resposta de frequência do alto-falante

O artigo “Como selecionar e usar um codec de áudio e microcontrolador para arquivos de resposta de áudio embarcado” discutiu os fundamentos da seleção e adição de um codec a um sistema. O próximo passo é usar aquele codec para obter a melhor saída de áudio possível.

Existem vários fatores diferentes que contribuem para a forma como o áudio que sai de um sistema soará. Estes fatores incluem:

  • A caixa do alto-falante
  • Como o alto-falante é montado
  • As frequências de áudio que estão sendo tocadas
  • A resposta de frequência do alto-falante

Após a consideração cuidadosa desses fatores, um desenvolvedor perceberá cedo que a afinação de um sistema de áudio é útil somente quando está no seu estado final de produção. Claro, o sistema pode ser afinado com uma placa de circuito impresso (PCI) e o alto-falante fora de uma caixa, mas não deve esperar que os mesmos parâmetros de afinação sejam aplicados quando ele estiver montado dentro da caixa.

Se a equipe de mecânicos projetou adequadamente a caixa e montagem do sistema, a característica principal que o desenvolvedor precisa observar de perto é a resposta de frequência do alto-falante. Todo alto-falante possui curvas de resposta e características diferentes. Até os alto-falantes com o mesmo número de peça, muitas vezes possuem pequenas variações na resposta de frequência, mas o fabricante normalmente fornece uma curva típica da resposta de frequência. Por exemplo, a figura 1 mostra a curva da resposta de frequência para um CUI Devices GC0401K de 8 Ohm (Ω), alto-falante de 1 watt. O GC0401K é dimensionado para frequências entre 390 Hz e 20 kHz.

Gráfico do GC0401K de 8 Ω da CUI Devices, alto-falante de 1 wattFigura 1: o GC0401K de 8 Ω da CUI Devices, alto-falante de 1 watt é dimensionado para frequências entre 390 Hz e 20 kHz.  (Fonte da imagem: CUI Devices)

Normalmente, os alto-falantes são dimensionados para a região onde a curva de resposta é relativamente plana. Ao olhar em detalhes, a figura 1 mostra que a resposta de frequência para o GC0401K começa num patamar em 350 Hz e fica relativamente plana em no mínimo até 9 kHz. As frequências finais mais altas possuem alguma queda, mas ainda permanecem estáveis até 20 kHz.

A resposta de frequência de um alto-falante diferente pode ser vista no GF0668 da CUI Devices (figura 2). Este alto-falante é um pouco maior e pode produzir 3 watts. O dimensionamento da resposta de frequência está entre 240 Hz e 20 kHz. Este alto-falante pode atingir frequências um pouco mais baixas do que o GC0401K, mas observe novamente que a curva é relativamente plana com algumas baixas e picos do começo ao fim.

Gráfico da resposta de frequência para o GF0668 de 8 Ω da CUI Devices, alto-falante de 3 watts (clique para ampliar)Figura 2: a resposta de frequência do alto-falante GF0668 de 8 Ω da CUI Devices, e 3 watts, mostra por que está dimensionado para a faixa de 240 Hz a 30 kHz. (Fonte da imagem: CUI Devices)

Uma última resposta de alto-falante que merece ser olhada é da Soberton Inc., o SP-2804Y (figura 3). O SP-2804Y é um alto-falante de 500 mW com uma faixa da resposta de frequência de 600 Hz a 8 kHz. As leis da física garantem que quanto menor o alto-falante, mais difícil é a resposta em frequências mais baixas. Isto significa que se os desenvolvedores não filtrarem as frequências mais baixas, deixando o alto-falante exposto a essas frequências, o resultado pode ser um áudio de som desagradável ou defeitos nos tons que, de outra forma, soariam nítidos.

Observe que há uma queda significativa na resposta de frequência perto de 10 kHz. Logo, o alto-falante foi dimensionado apenas até 8 kHz, embora provavelmente poderia ser usado até 20 kHz para algumas aplicações.

Gráfico da resposta de frequência para o SP-2804Y de 8 Ω da Soberton Inc., alto-falante de 0,5 watt (clique para ampliar)Figura 3: a resposta de frequência do alto-falante SP-2804Y de 8 Ω da Soberton Inc., e 0,5 watts, mostra que está adequado para frequências de 600 Hz a 8 kHz. Ele possui uma queda após 10 kHz, mas ainda é usável a 20 kHz para algumas aplicações. (Fonte da imagem: CUI Devices)

Olhando para cada resposta de frequência dos alto-falantes, está claro que precisam ser feitos alguns tipos de filtragem e afinação, pois há algumas frequências para as quais um alto-falante não deve ser alimentado. Por exemplo, tentar tocar um tom grave de 4 Hz nestes alto-falantes poderia causar vibrações de longa duração sobre as quais frequências mais altas estão inseridas, levando a muitas distorções de som.

Dissecando um bloco de filtro digital de áudio

Um método que foi usado no passado para afinar frequências indesejáveis é construir filtros de hardware que conduzem até o alto-falante. Por exemplo, um filtro passa-alta a 500 Hz pode evitar que frequências abaixo de 500 Hz cheguem ao alto-falante. Por outro lado, um filtro passa-baixa pode ser usado para remover todos os tons de áudio acima de 15 kHz. A experiência pessoal mostra que algumas vezes se uma voz feminina for usada num pequeno alto-falante, que é eficiente a frequências mais altas, o alto-falante pode exibir uma vibração aguda. A seleção cuidadosa de frequências pode remover essas distorções e criar um som mais limpo.

Embora os filtros externos de hardware possam fazer o trabalho, eles acrescentam custo e ocupam espaço adicional. Por esses motivos, é mais prático e eficiente afinar o áudio usando o bloco de filtro digital construído dentro de um codec de áudio.

Por exemplo, o diagrama de blocos para o codec de áudio AK4637 de 24 bits da AKM Semiconductor possui um bloco de filtro digital destacado (figura 4).

Diagrama do AK4637 da AKM Semiconductor é um codec de áudio com uma saída mono de alto-falante (clique para ampliar)Figura 4: o AK4637 é um codec de áudio com uma saída mono de alto-falante que possui capacidade de gravação e reprodução de áudio. Ele contém também um bloco interno de áudio, o qual pode ser usado para filtrar áudios que chegam e saem para melhorar a fidelidade. (Fonte da imagem: AKM semicondutor)

O bloco do filtro digital neste caso contém vários recursos de filtragem diferentes, que inclui:

  • Um filtro passa-alta (HPF2)
  • Um filtro passa-baixa (LPF)
  • Um equalizador de quatro bandas (4-Band EQ)
  • Controle de nivelamento automático (ALC)
  • Um equalizador de uma banda (1 Band EQ)

Esses recursos não precisam estar todos habilitados. Os desenvolvedores podem selecionar quais recursos precisam e habilitar/desabilitar o bloco ou rotear o microfone ou áudio de reprodução através deles. A dúvida pertinente nesta conjuntura é como calcular e programar o codec de áudio?

Como calcular e programar os parâmetros do filtro digital

Em muitas aplicações de áudio, um filtro passa-alta é usado para eliminar frequências mais baixas e um filtro passa-baixa para excluir frequências mais altas. Um equalizador pode ser usado para suavizar a curva da resposta de frequência ou dar ênfase a determinados tons. Como exatamente estas configurações devem ser selecionadas está além do escopo deste artigo. Em vez disso, ele examinará em como calcular e programar os valores que estão associados com esses parâmetros, usando o AKM AK4637 como exemplo.

Primeiro, sempre é uma boa ideia revisar a ficha técnica. As páginas 7 e 8, neste caso, mostram o mapa de todos os registradores mais importantes para o codec. A primeira olhada pode ser intimidadora, visto que a peça possui 63 registradores. No entanto, muitos destes registradores controlam o bloco digital de áudio. Por exemplo, os registradores 0x22 até 0x3F controlam o equalizador. Os registradores 0x19 até 0x1C controlam o filtro passa-alta, enquanto que o 0x1D até 0x20 controlam o filtro passa-baixa.

Normalmente, os desenvolvedores não podem especificar apenas uma frequência para inserir no codec. Em vez disso, há uma equação do filtro que é usada para calcular os coeficientes do filtro, que são programados dentro dos registradores do codec para criar o filtro na frequência desejada. Por exemplo, para usar o bloco de filtro digital para criar um filtro passa-alta em 600 Hz, use a equação 1:

Imagem das equações necessárias para calcular os coeficientes para um filtro passa-altaFigura 5: são mostradas as equações necessárias para calcular os coeficientes para um filtro passa-alta do bloco de filtro digital AK4637. (Fonte da imagem: AKM semicondutor)

Um desenvolvedor identificaria a frequência de corte desejada, fc, que neste caso é 600 Hz. A frequência de amostragem de áudio, fs, normalmente é 48 kHz, mas pode variar com base na aplicação. Em seguida, esses valores seriam substituídos nas equações para calcular os coeficientes A e B. Esses últimos, por sua vez, seriam escritos nos registradores do codec através de I2C durante a inicialização. O mesmo processo seria usado para os filtros passa-baixa e outros recursos do bloco digital, embora as funções de transferência são muitas vezes diferentes, sendo necessário o uso de um conjunto de suas próprias equações (consulte a ficha técnica).

Dicas e truques para afinação de um codec de áudio

Geralmente, os blocos de filtro digital incluídos num codec de áudio são bastante flexíveis e poderosos. Até mesmo um codec de áudio de baixo custo fornece aos desenvolvedores as ferramentas necessárias para gerar áudio de alta-fidelidade. Porém, no final do dia, o codec de áudio é apenas uma peça do quebra-cabeça. Para afinar com sucesso um codec de áudio, existem várias “dicas e truques” que os desenvolvedores devem ter em mente como:

  • Assegure que o alto-falante esteja montado em uma caixa adequada para a aplicação. Uma caixa de alto-falante mal projetada pode facilmente arruinar um sistema de reprodução perfeito.
  • Não afine os blocos de filtro de áudio do codec até que o sistema esteja totalmente montado em sua configuração pretendida de produção. Caso contrário, os parâmetros de afinação poderiam mudar.
  • Selecione a faixa de frequência baseada no áudio que será tocado. Por exemplo, as configurações de frequência para música de uma guitarra, piano ou fala de uma pessoa são todas diferentes.
  • Use o bloco de balanço digital para compensar a resposta de frequência do alto-falante. Algumas frequências soarão naturalmente mais altas e claras, podendo ser atenuadas, enquanto que outras podem ser amplificadas conforme a necessidade.
  • Use tons de teste para avaliar a resposta de frequência do sistema. Uma busca simples na internet fornecerá arquivos mp3 para uma vasta diversidade de tons de áudio, os quais podem ser usados para saber a resposta de frequência do sistema de reprodução de áudio, além de como o bloco de filtro digital está trabalhando.
  • Armazene as definições de configuração do bloco de filtro em flash ou EEPROM, assim elas podem ser utilizadas durante a fabricação para levar em conta as variações de sistema para sistema (se isso for uma preocupação).

Os desenvolvedores que seguem essas “dicas e truques” descobrirão que economizam um pouco de tempo e sofrimento ao tentar afinar o sistema de reprodução de áudio e garantir que chegue ao mercado com as características de áudio pretendidas.

Conclusão

Agregar um codec de áudio a um sistema embarcado não garante um bom som ao usuário final. Cada sistema de reprodução de áudio precisa ser afinado de forma cuidadosa. É possível usar filtros externos para chegar a esta afinação, mas os codecs de áudio vêm com recursos de balanço e filtragem digital integrados. Conforme mostrado, eles podem ser usados para alimentar o alto-falante somente nas frequências para as quais são mais adequados. Com análise cuidadosa e aplicações das configurações do filtro, os desenvolvedores podem criar um áudio limpo que os usuários esperam ouvir desses dispositivos.

DigiKey logo

Disclaimer: The opinions, beliefs, and viewpoints expressed by the various authors and/or forum participants on this website do not necessarily reflect the opinions, beliefs, and viewpoints of DigiKey or official policies of DigiKey.

About this author

Image of Jacob Beningo

Jacob Beningo

Jacob Beningo is an embedded software consultant. He has published more than 200 articles on embedded software development techniques, is a sought-after speaker and technical trainer, and holds three degrees, including a Masters of Engineering from the University of Michigan.

About this publisher

DigiKey's North American Editors