Cum se utilizează un codec audio pentru optimizarea mai simplă a performanței audio în sistemele încorporate

By Jacob Beningo

Contributed By DigiKey's North American Editors

Mulți proiectanți includ codecuri audio în proiectele lor de sisteme încorporate pe bază de pe microcontrolere, în încercarea de a obține sunet de înaltă fidelitate. În acest fel, ei trebuie să își dea seama cum să regleze codecul audio pentru aplicația lor. Fără reglare, este posibil ca aplicația să emită sunete false sau de calitate slabă, chiar dacă există un codec și un difuzor de calitate superioară. Problema este că fiecare difuzor are propriul său răspuns în frecvență și, prin urmare, codecul trebuie reglat în funcție de caracteristicile difuzorului, ținând cont de tipul de sunet care va fi redat și de răspunsul necesar.

Soluția de reglare a sistemului de redare audio nu este utilizarea filtrării hardware, ci utilizarea blocurilor de filtrare digitală ale codecului audio. Fiecare codec dispune de acest bloc pentru a permite dezvoltatorului să filtreze ieșirea folosind filtre trece-sus, trece-jos și trece-bandă. Acest lucru permite reglarea cu atenție și chiar ajustarea răspunsului difuzorului, dacă este necesar.

Acest articol va discuta despre blocurile audio digitale interne care sunt incluse în codecuri, folosind ca exemplu un codec de la AKM Semiconductor. De asemenea, vor fi prezentate câteva sfaturi și trucuri privind modul de reglare a codecului, care vor ajuta dezvoltatorii să accelereze dezvoltarea redării audio, îmbunătățind în același timp calitatea sunetului unui sistem.

Înțelegerea caracteristicilor de răspuns în frecvență ale difuzoarelor

Articolul „Cum se selectează și se utilizează un codec audio și un microcontroler pentru fișierele de feedback audio încorporate” a prezentat elementele de bază pentru selectarea și adăugarea unui codec la un sistem. Următorul pas este utilizarea codecului respectiv pentru a obține cea mai bună ieșire audio posibilă.

Există mai mulți factori diferiți care contribuie la calitatea sunetului care iese dintr-un sistem. Acești factori includ:

  • Carcasa difuzorului
  • Modul în care este montat difuzorul
  • Frecvențele audio care sunt redate
  • Răspunsul în frecvență al difuzorului

După o analiză atentă a acestor factori, un dezvoltator își va da seama în curând că reglarea unui sistem audio este utilă doar atunci când acesta este în starea finală de producție. Desigur, sistemul poate fi reglat cu o placă de circuite imprimate (PCB) și cu difuzorul în afara unei carcase, dar nu trebuie să ne așteptăm ca aceiași parametri de reglare să se aplice atunci când difuzorul este montat și se află în carcasă.

Dacă echipa mecanică a proiectat în mod corespunzător carcasa și suportul sistemului, principala caracteristică pe care dezvoltatorul trebuie să o urmărească îndeaproape este răspunsul în frecvență al difuzorului. Fiecare difuzor are caracteristici și curbe de răspuns diferite. Chiar și difuzoarele cu același număr de catalog vor avea deseori ușoare variații în ceea ce privește răspunsul în frecvență, dar producătorul oferă, de obicei, o curbă tipică de răspuns în frecvență. De exemplu, Figura 1 prezintă curba de răspuns în frecvență pentru un difuzor CUI Devices GC0401K de 8 Ohm (Ω), 1 watt. GC0401K este evaluat pentru frecvențe cuprinse între 390 Hertz (Hz) și 20 kilohertzi (kHz).

Graficul difuzorului GC0401K de 8 Ω, 1 watt de la CUI DevicesFigura 1: difuzorul GC0401K de 8 Ω, 1 watt de la CUI Devices este proiectat pentru frecvențe cuprinse între 390 Hz și 20 kHz. (Sursă imagine: CUI Devices)

De obicei, difuzoarele sunt evaluate pentru regiunea curbei de răspuns în care răspunsul este relativ plat. O privire atentă la Figura 1 arată că răspunsul în frecvență pentru GC0401K începe să se aplatizeze la ~350 Hz și rămâne relativ plat cel puțin până la 9 kHz. Frecvențele înalte au o oarecare scădere, dar sunt, totuși, stabile până la 20 kHz.

Un răspuns de frecvență diferit al difuzorului poate fi observat la modelul GF0668 de la CUI Devices (Figura 2). Acest difuzor este puțin mai mare și poate emite 3 wați. Răspunsul nominal în frecvență este cuprins între 240 Hz și 20 kHz. Acest difuzor poate atinge frecvențe ușor mai joase decât GC0401K, dar rețineți din nou că, în intervalul specificat, curba este relativ plată, cu unele depresiuni și vârfuri.

Graficul de răspuns în frecvență pentru difuzorul GF0668 de 8 Ω, 3 wați de la CUI Devices (faceți clic pentru a mări imaginea)Figura 2: răspunsul în frecvență pentru difuzorul GF0668 de 8 Ω, 3 wați de la CUI Devices arată de ce este evaluat pentru o gamă cuprinsă între 240 Hz și 30 kHz. (Sursă imagine: CUI Devices)

Răspunsul unui ultim difuzor care merită analizat este SP-2804Y de la Soberton Inc. (Figura 3). SP-2804Y este un difuzor de 500 de miliwați (mW) cu o gamă de răspuns în frecvență de la 600 Hz la 8 kHz. Conform legilor fizicii, cu cât difuzorul este mai mic, cu atât mai greu răspunde la frecvențele joase. Acest lucru înseamnă că, dacă dezvoltatorii nu filtrează frecvențele joase și încearcă în schimb să acționeze difuzorul la aceste frecvențe, rezultatul poate fi un sunet neplăcut sau defecte în tonuri care, de altfel, ar suna foarte clar.

De asemenea, observați că există o scădere semnificativă a răspunsului în frecvență în jurul valorii de 10 kHz. Prin urmare, difuzorul este evaluat doar la 8 kHz, chiar dacă, probabil, ar putea fi utilizat până la 20 kHz pentru anumite aplicații.

Graficul de răspuns în frecvență pentru difuzorul SP-2804Y de 8 Ω, 0,5 wați de la Soberton Inc. (faceți clic pentru a mări imaginea)Figura 3: răspunsul în frecvență pentru difuzorul SP-2804Y de 8 Ω, 0,5 wați de la Soberton Inc. arată că este potrivit pentru frecvențe cuprinse între 600 Hz și 8 kHz. Acesta înregistrează o scădere după 10 kHz, dar încă este utilizabil până la 20 kHz pentru anumite aplicații. (Sursă imagine: CUI Devices)

Dacă ne uităm la răspunsul în frecvență al fiecărui difuzor, este clar că este nevoie de un anumit tip de filtrare și reglare, deoarece există anumite frecvențe la care un difuzor nu ar trebui să fie acționat. De exemplu, încercarea de a reda un ton de bas de 4 Hz pe aceste difuzoare ar putea provoca vibrații de lungă durată pe care sunt injectate frecvențe mai înalte, ceea ce ar duce la o distorsionare considerabilă a sunetului.

Disecarea unui bloc de filtrare digitală audio

O metodă care a fost folosită în trecut pentru a elimina frecvențele nedorite este construirea filtrelor hardware până la difuzor. De exemplu, un filtru trece-sus la 500 Hz poate împiedica frecvențele sub 500 Hz să ajungă la difuzor. La celălalt capăt se poate utiliza un filtru trece-jos pentru a elimina orice tonuri audio de peste 15 kHz. Experiența personală a arătat că, uneori, dacă vocea unei femei este folosită cu un difuzor mic, care este eficient la frecvențe mai înalte, difuzorul poate emite un sunet ascuțit. Selectarea cu atenție a frecvențelor poate elimina aceste distorsiuni și poate crea un sunet mai curat.

Deși filtrele hardware externe pot funcționa corect, acestea adaugă costuri și ocupă spațiu suplimentar. Din aceste motive, este mai practic și mai eficient ca sunetul să se regleze folosind blocul de filtrare digitală integrat într-un codec audio.

De exemplu, blocul de filtrare digitală este evidențiat în schema bloc a codecului audio pe 24 de biți AK4637 AKM Semiconductor (Figura 4).

Schema AK4637 AKM Semiconductor, care este un codec audio cu o ieșire mono pentru difuzoare (faceți clic pentru a mări imaginea)Figura 4: AK4637 este un codec audio cu o ieșire mono pentru difuzor care are capacități de redare și înregistrare audio. De asemenea, acesta conține un bloc audio intern care poate fi utilizat pentru filtrarea sunetului de intrare și de ieșire în scopul îmbunătățirii fidelității audio. (Sursă imagine: AKM Semiconductor)

În acest caz, blocul de filtrare digitală conține mai multe funcții de filtrare, care includ:

  • Un filtru trece-sus (HPF2)
  • Un filtru trece-jos (LPF)
  • Un egalizator cu patru benzi (4-Band EQ)
  • Controlul automat al nivelării (ALC)
  • Un egalizator cu o bandă (1 Band EQ)

Nu este necesar ca toate aceste caracteristici să fie activate. Dezvoltatorii pot selecta funcțiile de care au nevoie și pot activa și dezactiva blocul sau pot direcționa microfonul sau redarea audio prin intermediul acestora. Adevărata întrebare în acest moment este cum se calculează și se programează codecul audio?

Cum se calculează și se programează parametrii filtrului digital

În majoritatea aplicațiilor audio, un filtru trece-sus este utilizat pentru a elimina frecvențele joase, iar un filtru trece-jos este utilizat pentru a exclude frecvențele înalte. Un egalizator poate fi utilizat pentru a netezi curba de răspuns în frecvență sau pentru a accentua anumite tonuri. Modul exact în care trebuie selectate aceste setări depășește sfera acestui articol. În schimb, se va analiza modul de calcul și programare a valorilor asociate acestor parametri, folosind AKM AK4637 ca exemplu.

În primul rând, este întotdeauna o idee bună să consultați fișa tehnică. În acest caz, paginile 7 și 8 prezintă harta registrelor, care este foarte importantă pentru codec. La prima vedere ar putea fi intimidantă, având în vedere că piesa are 63 de registre. Cu toate acestea, multe dintre aceste registre controlează blocul audio digital. De exemplu, registrele de la 0x22 la 0x3F controlează egalizatorul. Registrele de la 0x19 la 0x1C controlează filtrul trece-sus, pe când cele de la 0x1D la 0x20 controlează filtrul trece-jos.

De obicei, dezvoltatorii nu pot specifica doar o frecvență care să fie introdusă în codec. În schimb, există o ecuație de filtrare care este utilizată pentru a calcula coeficienții de filtrare, care sunt apoi programați în registrele codecului pentru a crea filtrul la frecvența dorită. De exemplu, pentru a utiliza blocul de filtrare digitală în scopul de a crea un filtru trece-sus la 600 Hz, utilizați Ecuația 1:

Imaginea ecuațiilor necesare pentru calcularea coeficienților unui filtru trece-susFigura 5: se prezintă ecuațiile necesare pentru a calcula coeficienții unui filtru trece-sus pentru blocul de filtrare digitală AK4637. (Sursă imagine: AKM Semiconductor)

Un dezvoltator identifică frecvența de tăiere dorită, fc, care, în acest caz, este de 600 Hz. Frecvența de eșantionare audio, fs, este, de obicei, de 48 kHz, dar poate varia în funcție de aplicație. Aceste valori vor fi apoi incluse în ecuațiile pentru calcularea coeficienților A și B, iar apoi sunt apoi scrise în registrele codecului prin I2C în timpul pornirii. Același proces se utilizează pentru filtrele trece-jos și alte caracteristici ale blocului digital, deși funcțiile de transfer sunt adesea diferite, necesitând utilizarea unui set propriu de ecuații (consultați fișa tehnică).

Sfaturi și trucuri pentru reglarea unui codec audio

Blocurile de filtrare digitală incluse într-un codec audio sunt adesea destul de flexibile și puternice. Chiar și un codec audio ieftin oferă dezvoltatorilor instrumentele necesare pentru a genera un sunet de înaltă fidelitate. Totuși, într-un final, codecul audio este doar o piesă din puzzle. Pentru a regla cu succes un codec audio, există câteva „sfaturi și trucuri” pe care dezvoltatorii ar trebui să le aibă în vedere, cum ar fi:

  • Să se asigure că difuzorul este montat într-o carcasă adecvată pentru aplicație. O cutie de difuzoare proiectată necorespunzător poate distruge cu ușurință un sistem de redare de altfel perfect.
  • Să nu regleze blocurile de filtrare audio ale codecului până când sistemul nu este complet asamblat în configurația sa prevăzută din producție. În caz contrar, parametrii de reglare s-ar putea modifica.
  • Să selecteze intervalul de frecvențe în funcție de sunetul care va fi redat. De exemplu, setările de frecvență pentru muzica de la chitară, pian sau de la o persoană care vorbește vor fi diferite.
  • Să utilizeze blocul de echilibrare digitală pentru a compensa răspunsul în frecvență al difuzorului. Unele frecvențe vor suna în mod natural mai tare și mai clar și este posibil să fie necesară atenuarea lor, în timp ce altele ar putea necesita amplificare.
  • Să utilizeze tonuri de test pentru a evalua răspunsul în frecvență al sistemului. O simplă căutare pe internet va furniza fișiere mp3 pentru o gamă largă de tonuri audio care pot fi utilizate pentru a înțelege răspunsul în frecvență al sistemului de redare audio și modul în care funcționează blocul de filtrare digitală.
  • Să stocheze setările de configurare a blocului de filtrare în memoria flash sau EEPROM, astfel ca acestea să poată fi setate în timpul fabricării pentru a lua în calcul variațiile de la un sistem la altul (în cazul în care acest lucru este important).

Dezvoltatorii care urmează aceste „sfaturi și trucuri” vor descoperi că economisesc destul de mult timp și efort atunci când încearcă să își regleze sistemul de redare audio și garantează că acesta ajunge pe piață cu caracteristicile audio dorite.

Concluzie

Adăugarea unui codec audio la un sistem încorporat nu garantează că acesta va suna bine pentru utilizatorul final. Fiecare sistem de redare audio trebuie să fie reglat cu atenție. Utilizarea filtrelor externe pentru realizarea acestei reglări este posibilă, dar codecurile audio sunt dotate cu funcții de filtrare și echilibrare digitale integrate. După cum s-a arătat, acestea pot fi utilizate pentru a alimenta difuzorul doar cu frecvențele pentru care este cel mai bine adaptat. Prin analizarea și aplicarea cu atenție a setărilor de filtrare, dezvoltatorii pot crea sunetul curat pe care utilizatorii finali îl așteaptă de la dispozitivele lor.

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