Come usare un codec audio per ottimizzare in modo semplice le prestazioni audio nei sistemi embedded
Contributo di Editori nordamericani di DigiKey
2021-02-17
Molti progettisti stanno includendo codec audio nei sistemi embedded basati su microcontroller, nel tentativo di aggiungere audio ad alta fedeltà. Così facendo, devono capire come sintonizzare il codec audio per la loro applicazione. Senza sintonizzazione, l'applicazione può risultare in un suono piatto o di scarsa qualità, anche con un buon codec e un buon altoparlante. Il problema è che ogni altoparlante ha una propria risposta in frequenza e quindi il codec deve essere sintonizzato sulle caratteristiche dell'altoparlante, tenendo presente il tipo di audio che verrà riprodotto e la risposta richiesta.
La soluzione per sintonizzare il sistema di riproduzione audio non si trova nel filtraggio hardware, bensì bisogna sfruttare i blocchi di filtraggio digitale del codec audio. Ogni codec ha un blocco di questo tipo per permettere allo sviluppatore di filtrare l'uscita mediante filtri passa-alto, passa-basso e passa-banda. Ciò permette di sintonizzare accuratamente la risposta dell'altoparlante e persino di regolarla, se necessario.
Questo articolo discuterà i blocchi audio digitali interni inclusi nei codec, usando come esempio un codec di AKM Semiconductor. Fornirà anche diversi suggerimenti su come sintonizzare il codec per aiutare gli sviluppatori ad accelerare lo sviluppo della riproduzione audio migliorando la qualità del suono di un sistema.
Conoscere le caratteristiche della risposta in frequenza degli altoparlanti
L'articolo "Come selezionare e utilizzare un codec audio e un microcontroller per i file di riscontro audio integrati" ha discusso i principi base della selezione e dell'aggiunta di un codec a un sistema. Il passo successivo è quello di usare quel codec per generare la miglior uscita audio possibile.
Diversi fattori contribuiscono alla qualità sonora dell'audio prodotto da un sistema. Questi includono:
- L'involucro dell'altoparlante
- Il sistema di montaggio dell'altoparlante
- Le frequenze audio riprodotte
- La risposta in frequenza dell'altoparlante
Dopo un'attenta considerazione di questi fattori, uno sviluppatore si renderà presto conto che la sintonizzazione di un sistema audio è utile solo nella fase finale di produzione. Certo, il sistema può essere sintonizzato con una scheda a circuiti stampati e un altoparlante non contenuto in un alloggiamento, ma non ci si dovrebbe aspettare che quegli stessi parametri si applicheranno quando l'altoparlante è montato all'interno dell'alloggiamento.
Se il team meccanico ha progettato correttamente l'involucro e il supporto del sistema, la caratteristica principale che lo sviluppatore deve controllare attentamente è la risposta in frequenza dell'altoparlante. Ogni altoparlante ha caratteristiche e curve di risposta diverse. Anche gli altoparlanti rispondenti al medesimo codice componente spesso hanno minime variazioni nella risposta in frequenza; il produttore di solito fornisce una curva tipica della risposta in frequenza. Ad esempio, la Figura 1 mostra la curva di risposta in frequenza di un altoparlante GC0401K da 8 Ω e 1 W di CUI Devices. GC0401K è classificato per frequenze tra 390 Hz e 20 kHz.
Figura 1: L'altoparlante da 8 Ω, 1 W GC0401K di CUI Devices è classificato per frequenze tra 390 Hz e 20 kHz. (Immagine per gentile concessione di CUI Devices)
Gli altoparlanti sono tipicamente classificati in base alla regione della loro curva di risposta, dove la risposta è relativamente piatta. Uno sguardo attento alla Figura 1 mostra che la risposta in frequenza del modello GC0401K inizia ad appiattirsi a ~350 Hz e rimane relativamente piatta fino ad almeno 9 kHz. Le alte frequenze hanno una lieve discesa ma rimangono stabili fino a 20 kHz.
Una diversa risposta in frequenza dell'altoparlante si ha nel modello GF0668 di CUI Devices (Figura 2). Questo altoparlante è un po' più grande e può generare 3 W. La risposta in frequenza è compresa tra 240 Hz e 20 kHz. Questo altoparlante può raggiungere frequenze leggermente inferiori rispetto al modello GC0401K, ma si noti ancora una volta che all'interno del campo specificato la curva è relativamente piatta con alcuni avvallamenti e picchi.
Figura 2: La risposta in frequenza dell'altoparlante da 8 Ω e 3 W GF0668 di CUI Devices mostra il motivo per cui è classificato per il campo da 240 Hz a 30 kHz. (Immagine per gentile concessione di CUI Devices)
Un ultimo esempio di altoparlante che vale la pena guardare è SP-2804Y di Soberton Inc. (Figura 3). SP-2804Y è un altoparlante da 500 mW con un campo di risposta in frequenza da 600 Hz a 8 kHz. Le leggi della fisica assicurano che più piccolo è l'altoparlante, più difficile è rispondere alle frequenze più basse. Ciò significa che se gli sviluppatori non filtrano le frequenze più basse e cercano invece di pilotare l'altoparlante a quelle frequenze. Il risultato può essere un audio dal suono gracchiante o difetti nei toni che altrimenti sarebbero cristallini.
Si noti anche il calo significativo nella risposta in frequenza intorno ai 10 kHz. Pertanto, l'altoparlante è classificato solo a 8 kHz anche se probabilmente potrebbe essere usato fino a 20 kHz per alcune applicazioni.
Figura 3: La risposta in frequenza dell'altoparlante da 8 Ω, 0,5 W SP-2804Y di Soberton Inc. mostra che è adatto a frequenze da 600 Hz a 8 kHz. Presenta un calo dopo i 10 kHz ma è comunque utilizzabile fino a 20 kHz per alcune applicazioni. (Immagine per gentile concessione di CUI Devices)
Guardando la risposta in frequenza di ogni altoparlante, è chiaro che necessitino di filtraggio e sintonizzazione, poiché ci sono alcune frequenze alle quali non dovrebbe mai arrivare. Ad esempio, pilotare un tono basso di 4 Hz su questi altoparlanti potrebbe causare vibrazioni di lunga durata che inietterebbero frequenze più alte, con conseguente distorsione del suono.
Dissezione di un blocco filtro digitale audio
Un metodo usato in passato per sintonizzare le frequenze indesiderate è stato quello di costruire filtri hardware per l'altoparlante. Ad esempio, un filtro passa-alto a 500 Hz può impedire alle frequenze sotto i 500 Hz di arrivare all'altoparlante. D'altro canto, un filtro passa-basso può essere utilizzato per rimuovere qualsiasi tono audio sopra i 15 kHz. L'esperienza personale ha dimostrato che a volte una voce femminile su un piccolo altoparlante efficiente alle alte frequenze può generare un suono metallico acuto. La selezione accurata delle frequenze può rimuovere queste distorsioni e creare un audio più pulito.
Mentre i filtri hardware esterni possono farlo, aumentano costi e lo spazio. Per questo è più pratico ed efficiente sintonizzare l'audio usando un blocco filtro digitale integrato in un codec audio.
Ad esempio, il diagramma a blocchi del codec audio AK4637 a 24 bit di AKM Semiconductor evidenzia il blocco filtro digitale (Figura 4).
Figura 4: AK4637 è un codec audio con un'uscita altoparlante mono con capacità di riproduzione e registrazione audio. Contiene anche un blocco audio interno che può essere utilizzato per filtrare l'audio in entrata e in uscita e migliorarne la fedeltà. (Immagine per gentile concessione di AKM Semiconductor)
Il blocco filtro digitale in questo caso offre diverse capacità di filtraggio tra cui:
- Un filtro passa-alto (HPF2)
- Un filtro passa-basso (LPF)
- Un equalizzatore a quattro bande (4-Band EQ)
- Controllo automatico del livello (ALC)
- Un equalizzatore a una banda (1-Band EQ)
Queste caratteristiche non devono essere tutte abilitate. Gli sviluppatori possono selezionare le caratteristiche necessarie e attivare/disattivare il blocco o instradarvi il microfono o l'audio di riproduzione. La vera domanda in questo caso è: come calcolare e programmare il codec audio?
Come calcolare e programmare i parametri del filtro digitale
Nella maggior parte delle applicazioni audio, un filtro passa-alto serve per rimuovere le frequenze più basse e un filtro passa-basso per escludere le frequenze più alte. Un equalizzatore può essere utilizzato per livellare la curva di risposta in frequenza o per enfatizzare certi toni. Come selezionare esattamente queste impostazioni va oltre lo scopo di questo articolo. Si vedrà invece come calcolare e programmare i valori associati a questi parametri usando come esempio il modello AK4637 di AKM.
Per prima cosa, è sempre una buona idea studiare la scheda tecnica. Le pagine 7 e 8 in questo caso mostrano l'importantissima mappa dei registri del codec. Un primo sguardo potrebbe spiazzare, dato che contiene 63 registri. Tuttavia, molti di questi registri controllano il blocco audio digitale. Ad esempio, i registri da 0x22 a 0x3F controllano l'equalizzatore. I registri da 0x19 a 0x1C controllano il filtro passa-alto, mentre quelli da 0x1D a 0x20 controllano il filtro passa-basso.
Gli sviluppatori di solito non possono semplicemente specificare una frequenza da inserire nel codec. Esiste invece un'equazione di filtraggio utilizzata per calcolare i coefficienti del filtro, che sono poi programmati nei registri del codec per creare il filtro alla frequenza desiderata. Ad esempio, per usare il blocco filtro digitale per creare un filtro passa-alto a 600 Hz, si usa l'equazione 1:
Figura 5: Le equazioni necessarie per calcolare i coefficienti di un filtro passa-alto per il blocco filtro digitale AK4637. (Immagine per gentile concessione di AKM Semiconductor)
Uno sviluppatore identificherebbe la frequenza di taglio desiderata, fc, che in questo caso è 600 Hz. La frequenza di campionamento audio, fs, è tipicamente 48 kHz, ma può dipendere dall'applicazione. Questi valori verrebbero poi inseriti nelle equazioni per il calcolo dei coefficienti A e B. Questi valori vengono poi scritti nei registri del codec tramite I2C durante l'avvio. Lo stesso processo verrebbe utilizzato per i filtri passa-basso e altre caratteristiche del blocco digitale, anche se le funzioni di trasferimento sono spesso diverse e richiedono un proprio set di equazioni (vedere la scheda tecnica).
Suggerimenti per la sintonizzazione di un codec audio
I blocchi filtro digitale inclusi in un codec audio sono spesso abbastanza flessibili e potenti. Anche un codec audio a basso costo fornisce agli sviluppatori gli strumenti necessari per generare audio ad alta fedeltà. A conti fatti però, il codec audio è solo un pezzo del puzzle. Per sintonizzare un codec audio, gli sviluppatori devono tenere a mente alcuni consigli, ad esempio:
- Assicurarsi che l'altoparlante sia montato in un involucro appropriato per l'applicazione. Una cassa acustica progettata male può rovinare un sistema di riproduzione altrimenti perfetto.
- Non sintonizzare i blocchi filtro audio del codec finché il sistema non sia completamente assemblato nella sua configurazione di produzione. I parametri di regolazione potrebbero cambiare.
- Selezionare il campo di frequenza in base all'audio che verrà riprodotto. Ad esempio, le impostazioni di frequenza per la musica prodotto da una chitarra, un pianoforte o da qualcuno che parla saranno tutte diverse.
- Usare il blocco di bilanciamento digitale per compensare la risposta in frequenza dell'altoparlante. Alcune frequenze saranno naturalmente più forti e chiare e potrebbero aver bisogno di essere attenuate, mentre altre potrebbero aver bisogno di essere amplificate.
- Usare i toni di prova per valutare la risposta in frequenza del sistema. Una semplice ricerca su Internet fornirà file mp3 per una vasta gamma di toni audio da utilizzare per capire la risposta in frequenza del sistema di riproduzione audio e come funziona il blocco filtro digitale.
- Memorizzare le impostazioni di configurazione del blocco di filtraggio in flash o EEPROM in modo che possano essere impostate durante la produzione, per tener conto delle variazioni da sistema a sistema (se questo è un problema).
Gli sviluppatori che seguono questi consigli potrebbero risparmiare un bel po' di tempo quando cercano di sintonizzare il loro sistema di riproduzione audio e ne garantiranno il lancio sul mercato con le caratteristiche audio previste.
Conclusione
Aggiungere un codec audio a un sistema embedded non garantisce la qualità audio all'utente finale. Ogni sistema di riproduzione audio deve essere sintonizzato con cura. È possibile utilizzare filtri esterni per la sintonizzazione, ma i codec audio sono dotati di capacità di filtraggio e bilanciamento digitale incorporate. Come mostrato, queste possono essere utilizzate per dare all'altoparlante solo le frequenze per le quali è più adatto. Con un'attenta analisi e applicazione delle impostazioni dei filtri, gli sviluppatori possono creare l'audio pulito che gli utenti finali si aspettano dai loro dispositivi.
Esonero della responsabilità: le opinioni, le convinzioni e i punti di vista espressi dai vari autori e/o dai partecipanti al forum su questo sito Web non riflettono necessariamente le opinioni, le convinzioni e i punti di vista di DigiKey o le sue politiche.



