Come utilizzare un codec audio per ottimizzare più facilmente le prestazioni audio nei sistemi integrati

Aggiornamento: 8 dicembre 2023

Molti progettisti stanno includendo codec audio nei loro progetti di sistemi embedded basati su microcontrollori nel tentativo di aggiungere audio ad alta fedeltà. In tal modo, devono capire come sintonizzare il codec audio per la loro applicazione. Senza la sintonizzazione, l'applicazione potrebbe risultare piatta o di scarsa qualità, anche con un buon codec e altoparlante. Il problema è che ogni altoparlante ha la propria risposta in frequenza e quindi il codec dovrebbe 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 consiste nell'utilizzare il filtraggio hardware ma, invece, sfruttare i blocchi di filtraggio digitale del codec audio. Ogni codec ha questo blocco per consentire a uno sviluppatore di filtrare l'output utilizzando filtri passa-alto, passa-basso e passa-banda. Ciò consente di sintonizzare con attenzione e persino regolare la risposta dell'altoparlante, se necessario.

Questo articolo discuterà i blocchi audio digitali interni inclusi nei codec, utilizzando un codec di AKM Semiconduttore come esempio. Discuterà anche diversi suggerimenti e trucchi su come ottimizzare il codec che aiuteranno gli sviluppatori ad accelerare lo sviluppo della riproduzione audio migliorando la qualità del suono di un sistema.

Comprensione delle caratteristiche di risposta in frequenza degli altoparlanti

L'articolo "Come selezionare e utilizzare un codec audio e un microcontrollore per file di feedback audio incorporati" ha discusso i fondamenti della selezione e dell'aggiunta di un codec a un sistema. Il passaggio successivo consiste nell'utilizzare quel codec per ottenere il miglior output audio possibile.

Ci sono molti diversi fattori che contribuiscono al modo in cui suonerà l'audio che esce da un sistema. Questi fattori includono:

  • Il recinto dell'oratore
  • Come è montato l'altoparlante
  • Le frequenze audio che vengono riprodotte
  • La risposta in frequenza dell'altoparlante

Dopo un'attenta considerazione di questi fattori, uno sviluppatore si renderà presto conto che la messa a punto di un sistema audio è utile solo quando è nel suo stato di produzione finale. Certo, il sistema può essere sintonizzato con un circuito stampato (scheda pc) e l'altoparlante all'esterno di un alloggiamento, ma non ci si dovrebbe aspettare che gli stessi parametri di sintonizzazione si applichino quando l'altoparlante è montato e all'interno del suo involucro.

Se il team meccanico ha progettato correttamente l'involucro e il supporto del sistema, la caratteristica principale che lo sviluppatore deve osservare da vicino è la risposta in frequenza dell'altoparlante. Ogni altoparlante ha caratteristiche e curve di risposta diverse. Anche altoparlanti con lo stesso numero di parte avranno spesso lievi variazioni nella risposta in frequenza, ma il produttore di solito fornisce una tipica curva di risposta in frequenza. Ad esempio, la Figura 1 mostra la curva di risposta in frequenza per un CUI Devices GC0401K 8 Ohm (Ω), altoparlante da 1 watt. Il GC0401K è classificato per frequenze comprese tra 390 Hertz (Hz) e 20 kilohertz (kHz).

Figura 1: L'altoparlante GC0401K da 8 Ω e 1 watt dei dispositivi CUI è classificato per frequenze comprese tra 390 Hz e 20 kHz. (Fonte immagine: dispositivi CUI)

Gli altoparlanti sono generalmente classificati per la regione della loro curva di risposta in cui la risposta è relativamente piatta. Uno sguardo ravvicinato alla Figura 1 mostra che la risposta in frequenza per GC0401K inizia ad appiattirsi a ~ 350 Hz e rimane relativamente piatta almeno fino a 9 kHz. Le frequenze di fascia alta hanno qualche calo ma sono ancora stabili fino a 20 kHz.

Una diversa risposta in frequenza dell'altoparlante può essere vista in GF0668 di CUI Devices (Figura 2). Questo altoparlante è un po 'più grande e può emettere 3 watt. La valutazione della risposta in frequenza è compresa tra 240 Hz e 20 kHz. Questo altoparlante può raggiungere frequenze leggermente più basse rispetto al GC0401K, ma si noti ancora una volta che all'interno dell'intervallo specificato la curva è relativamente piatta con alcuni minimi e picchi in tutto.

Figura 2: La risposta in frequenza per l'altoparlante da 0668 Ω e 8 watt GF3 di CUI Devices mostra il motivo per cui è classificato per la gamma da 240 Hz a 30 kHz. (Fonte immagine: dispositivi CUI)

Un'ultima risposta del relatore che vale la pena esaminare è SP-2804Y di Soberton Inc. (Figura 3). L'SP-2804Y è un altoparlante da 500 milliwatt (mW) con una gamma di risposta in frequenza da 600 Hz a 8 kHz. Le leggi della fisica assicurano che più piccolo è l'altoparlante, più duro è il tempo che ha a disposizione per rispondere alle frequenze più basse. Ciò significa che se gli sviluppatori non filtrano le frequenze più basse e invece provano a guidare l'altoparlante a quelle frequenze, il risultato può essere un suono nodoso o difetti nei toni che altrimenti suonerebbero cristallini.

Si noti che c'è anche un calo significativo nella risposta in frequenza intorno ai 10 kHz. Pertanto, l'altoparlante è valutato solo a 8 kHz anche se probabilmente potrebbe essere utilizzato fino a 20 kHz per alcune applicazioni.

Figura 3: La risposta in frequenza per l'altoparlante SP-2804Y da 8 Ω e 0.5 watt di Soberton Inc. mostra che è adatto a frequenze da 600 Hz a 8 kHz. Ha un calo dopo 10 kHz ma è ancora utilizzabile fino a 20 kHz per alcune applicazioni. (Fonte immagine: dispositivi CUI)

Guardando la risposta in frequenza di ogni altoparlante, è chiaro che è necessario un qualche tipo di filtraggio e sintonizzazione poiché ci sono alcune frequenze alle quali un altoparlante non dovrebbe essere pilotato. Ad esempio, provare a trasmettere un tono dei bassi a 4 Hz su questi altoparlanti potrebbe causare vibrazioni di lunga durata su cui vengono iniettate le frequenze più alte, con conseguente distorsione del suono.

Sezionare un blocco filtro digitale audio

Un metodo che è stato utilizzato in passato per sintonizzare le frequenze indesiderate è costruire filtri hardware che portano all'altoparlante. Ad esempio, un filtro passa-alto a 500 Hz può impedire alle frequenze inferiori a 500 Hz di arrivare all'altoparlante. All'altra estremità, è possibile utilizzare un filtro passa-basso per rimuovere i toni audio superiori a 15 kHz. L'esperienza personale ha dimostrato che a volte se la voce di una donna viene utilizzata con un piccolo altoparlante efficiente alle frequenze più alte, l'altoparlante può esibire un suono acuto. La selezione attenta delle frequenze può rimuovere queste distorsioni e creare un audio dal suono più pulito.

Sebbene i filtri hardware esterni possano svolgere il lavoro, aggiungono costi e occupano spazio aggiuntivo. Per questi motivi, è più pratico ed efficiente sintonizzare l'audio utilizzando il blocco del filtro digitale integrato in un codec audio.

Ad esempio, lo schema a blocchi per AKM Semiconduttore Il codec audio AK4637 a 24 bit ha il blocco del filtro digitale evidenziato (Figura 4).

Figura 4: AK4637 è un codec audio con un'uscita altoparlante mono che ha 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 per migliorare la fedeltà audio. (Fonte immagine: AKM Semiconductor)

Il blocco del filtro digitale in questo caso contiene diverse capacità di filtraggio che includono:

  • Un filtro passa-alto (HPF2)
  • Un filtro passa basso (LPF)
  • Un equalizzatore a quattro bande (EQ a 4 bande)
  • Controllo automatico del livellamento (ALC)
  • Un equalizzatore a una banda (EQ a 1 banda)

Queste funzionalità non devono essere tutte abilitate. Gli sviluppatori possono selezionare le funzionalità di cui hanno bisogno e abilitare e disabilitare il blocco o indirizzare il microfono o riprodurre l'audio attraverso di esse. La vera domanda in questo frangente è come calcolare e programmare il codec audio?

Come calcolare e programmare i parametri del filtro digitale

Nella maggior parte delle applicazioni audio, viene utilizzato un filtro passa-alto per rimuovere le frequenze più basse e un filtro passa-basso viene utilizzato per escludere le frequenze più alte. È possibile utilizzare un equalizzatore per appianare la curva di risposta in frequenza o per enfatizzare determinati toni. Il modo in cui devono essere selezionate esattamente queste impostazioni va oltre lo scopo di questo articolo. Verrà invece esaminato come calcolare e programmare i valori associati a questi parametri utilizzando AKM AK4637 come esempio.

Innanzitutto, è sempre una buona idea rivedere la scheda tecnica. Le pagine 7 e 8 in questo caso mostrano l'importantissima mappa dei registri per il codec. Un primo sguardo potrebbe intimidire dato che la parte ha 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 da 0x1D a 0x20 controllano il filtro passa-basso.

Gli sviluppatori di solito non possono semplicemente specificare una frequenza da inserire nel codec. Invece, c'è un'equazione del filtro che viene utilizzata per calcolare i coefficienti del filtro, che vengono quindi programmati nei registri del codec per creare il filtro alla frequenza desiderata. Ad esempio, per utilizzare il blocco del filtro digitale per creare un filtro passa-alto a 600 Hz, utilizzare l'equazione 1:

Figura 5: Vengono mostrate le equazioni necessarie per calcolare i coefficienti per un filtro passa-alto per il blocco filtro digitale AK4637. (Fonte immagine: AKM Semiconductor)

Uno sviluppatore identificherebbe la frequenza di taglio desiderata, fc, che in questo caso è 600 Hz. La frequenza di campionamento audio, fs, è tipicamente di 48 kHz, ma può variare in base all'applicazione. Questi valori verrebbero quindi inseriti nelle equazioni per il calcolo dei coefficienti A e B. Questi valori vengono quindi scritti nei registri del codec su I2C durante l'avvio. Lo stesso processo verrebbe utilizzato per i filtri passa-basso e altre funzionalità del blocco digitale, sebbene le funzioni di trasferimento siano spesso diverse e richiedano l'utilizzo del proprio set di equazioni (fare riferimento alla scheda tecnica).

Suggerimenti e trucchi per la messa a punto di un codec audio

I blocchi di filtri digitali 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à. Alla fine della giornata, però, il codec audio è solo un pezzo del puzzle. Per mettere a punto con successo un codec audio, ci sono diversi "suggerimenti e trucchi" che gli sviluppatori dovrebbero tenere a mente, come:

  • Assicurarsi che l'altoparlante sia montato in una custodia appropriata per l'applicazione. Una cassa dell'altoparlante progettata in modo improprio può facilmente rovinare un sistema di riproduzione altrimenti perfetto.
  • Non sintonizzare i blocchi del filtro audio del codec fino a quando il sistema non è completamente assemblato nella configurazione dell'intento di produzione. I parametri di sintonizzazione potrebbero altrimenti cambiare.
  • Seleziona l'intervallo di frequenza in base all'audio che verrà riprodotto. Ad esempio, le impostazioni di frequenza per la musica di una chitarra, di un pianoforte o di qualcuno che parla saranno tutte diverse.
  • Utilizzare il blocco del bilanciamento digitale per compensare la risposta in frequenza dell'altoparlante. Alcune frequenze suoneranno naturalmente più forti e chiare e potrebbe essere necessario attenuarle, mentre altre potrebbero dover essere amplificate.
  • Utilizzare i toni di prova per valutare la risposta in frequenza del sistema. Una semplice ricerca su Internet fornirà file mp3 per un'ampia gamma di toni audio che possono essere utilizzati per comprendere la risposta in frequenza del sistema di riproduzione audio e come funziona il blocco del filtro digitale.
  • Memorizzare le impostazioni di configurazione del blocco del filtro in flash o EEPROM in modo che possano essere impostate durante la produzione per tenere conto delle variazioni da sistema a sistema (se ciò è preoccupante).

Gli sviluppatori che seguono questi "suggerimenti e trucchi" scopriranno che risparmiano un bel po 'di tempo e fatica quando tentano di mettere a punto il loro sistema di riproduzione audio e si assicurano che arrivi sul mercato con le caratteristiche audio previste.

Conclusione

L'aggiunta di un codec audio a un sistema embedded non garantisce che suonerà bene per l'utente finale. Ogni sistema di riproduzione audio deve essere attentamente sintonizzato. È possibile utilizzare filtri esterni per ottenere questa sintonizzazione, ma i codec audio sono dotati di filtraggio digitale e capacità di bilanciamento integrate. Come mostrato, questi possono essere utilizzati per alimentare l'altoparlante solo le frequenze per le quali è più adatto. Con un'attenta analisi e applicazione delle impostazioni del filtro, gli sviluppatori possono creare l'audio dal suono pulito che gli utenti finali si aspettano dai propri dispositivi.