Redare digitală – Reducerea costului, nu însă a calităţii audio

by donpedro

Reducerea costului fără reducerea calităţii redării audio este o provocare căreia trebuie să-i facă faţă proiectanţii majorităţii staţiilor de docare şi a altor dispozitive şi accesorii audio digitale.
Dar este o provocare ce poate fi depăşită prin utilizarea puterii de procesare a MCU pe 32 de biţi sau a controlerelor de semnal digital (DSC) pe 16biţi la conversia vitezei de eşantionare şi a unui convertor analog-digital economic şi de înaltă calitate pentru reglarea vitezei de eşantionare în scopul minimizării diferenţelor de ceas USB. Această combinaţie poate ajuta la reducerea costurilor, menţinând însă calitatea audio.

de Jayanth Madapura
Inginer principal de aplicaţii
Divizia de Microcontrolere de înaltă Performanţă
Microchip Technology Inc.

Sistemele audio digitale constau dintr-o staţie de docare şi un dispozitiv audio: datele audio stereo seriale trimise de la sursa audio digitală prin interfaţa USB a staţiei, sunt recepţionate şi ghidate către un convertor digital-analog (DAC) la o viteză de eşantionare stabilită. Figura 1 descrie componentele: un canal de intrare de date serial; deserializator; circuit de reglare a vitezei de eşantionare; DAC cu filtrare a ieşirii şi nivelul de ieşire audio de putere.
Nu toate sursele audio digitale utilizează aceeaşi viteză de eşantionare, astfel că docul adaptează tipic frecvenţa de eşantionare la sursă, sau converteşte datele eşantionate într-o viteză de date uzuală. Prima provocare este de aceea realizarea conversiei vitezei de eşantionare cu un cost minim, fără a degrada însă calitatea audio. Tipic, proiectanţii au utilizat un circuit dedicat pentru conversie sau un DAC audio performant ce integrează bucle complexe de blocare a fazei pentru a asigura viteze de eşantionare flexibile pentru comunicarea stabilă a datelor audio eşantionate.
Totuşi, de vreme ce USB-ul oferă o interfaţă de comunicare convenabilă pentru transferul datelor audio, instabilitatea USB produce o pierdere fină a calităţii audio, aceasta însemnând că, suplimentar vitezei de eşantionare, convertorul trebuie de asemenea să diminueze instabilitatea USB.

Înţelegerea semnalului audio digital


Semnalul audio analogic este convertit în format digital, prin eşantionarea semnalului analogic la o frecvenţă ce este de cel puţin două ori mai mare decât a componentei de cea mai înaltă frecvenţă din semnalul analogic, sau Nyquist. Un semnal audio de la 0 la 20kHz poate de aceea fi eşantionat la o viteză de date de 44,1kHz, care este viteza de transfer Nyquist potrivită, astfel încât semnalul să poată fi reconstruit fără probleme de bandă atunci când este convertit din nou în domeniul analogic. Suplimentar vitezei de eşantionare, proiectanţii au trebuit să decidă când rezoluţia conversiei să fie un cuvânt pe 16 biţi sau un cuvânt de 24 de biţi. Pentru fişiere audio pentru CD, standardul este o rezoluţie de 16-biţi cu o viteză de eşantionare de 44,1kHz. Cu toate acestea, există opţiuni de înaltă performanţă pentru audiofili, precum codarea datelor cu o rezoluţie de 24 de biţi şi creşterea vitezei de eşantionare la 96kHz.
Pentru profesionişti, fişierele audio sunt codate la o rezoluţie de 24 de biţi pe eşantion, ceea ce oferă suficient spaţiu atunci când semnalul audio este mixat şi manipulat de studioul de înregistrări pentru crearea master-ului.

Figura 1: Diagrama bloc a unei staţii de docare audio tipică sau accesoriu de dispozitiv.

Alegerea rezoluţiei permite proiectanţilor să facă un echilibru între calitatea sunetului şi mărimea fişierului, chiar şi atunci când este aplicată o compresie. Rezoluţii mari oferă o calitate audio ridicată, dar înseamnă o dimensiune ridicată a fişierului stocat. De exemplu, un fişier audio stereo de 4 minute cu frecvenţă de 44,1kHz şi rezoluţie de 16 biţi, necesită o dimensiune a fişierului de aproximativ 42 Mbyte. Dacă rezoluţia este redusă, va fi necesar mai puţin spaţiu de stocare.
Cu o rezoluţie de 12 biţi, fişierul audio scade la aproximativ 30 Mbyte, dar cu preţul unei scăderi a calităţii audio.
Interfaţa USB este capabilă de trimitere de semnal audio de înaltă calitate şi este foarte cunoscută printre numeroşii utilizatori de dispozitive audio. Cu uşurinţa sa universală de utilizare, interfaţa USB poate transfera semnal audio de înaltă rezoluţie şi viteză de eşantionare ridicată cu instabilitate neglijabilă, atunci când este utilizată o interfaţă audio flexibilă.
Transferul de date iso-sincron este utilizat pentru trimitere de date audio către şi de la o sursă la viteză constantă în timp real. Pachetele de date audio stereo, cu dimensiunea guvernată de viteza de eşantionare a semnalului audio, sunt transferate ca parte a cadrelor USB la fiecare 1ms la legătura de maximă viteză USB.
USB audio furnizează de asemenea control pentru caracteristici precum volum, ton, amplificare, egalizatoare etc.

Calitate vs. cost


Diferenţa dintre viteza de biţi şi viteza de eşantionare însemnă că hardware-ul din sistemul de redare sau doc trebuie să fie capabil să gestioneze fluxurile de date cu diferite viteze. Pentru a face acest lucru, proiectantul are 3 opţiuni: sistemul trebuie să utilizeze un convertor DAC cu blocare de fază, mai complex, şi de aceea mai scump pentru fiecare viteză de eşantionare şi să-l regleze pentru fiecare opţiune de redare; sau să utilizeze un CI extern de conversie a vitezei de eşantionare, cu DAC economic; sau să convertească toate fluxurile într-o viteză de eşantionare standard şi viteză de biţi utilizând un algoritm ce rulează pe un microcontroler (MCU). Acest flux poate fi gestionat apoi de un DAC economic. Figura 2 prezintă aceste opţiuni.

Figura 2: Opţiuni de redare: schimbul cost vs. performanţă.

Aceste soluţii sunt utilizate de mulţi proiectanţi de sisteme de redare. Într-un scenariu, un proiectant achiziţionează o soluţie SRC şi DAC pentru a face conversia vitezei de eşantionare şi un DAC pentru redare. O soluţie alternativă combină un CI SRC cu un DAC economic. Această soluţie este optimizată pentru un raport semnal-zgomot ridicat, putere redusă şi instabilitate minimă, însă cipul SRC se adaugă costului sistemului. O altă alternativă este de a utiliza un DAC audio mai scump ce conţine circuite de blocare de fază şi filtre de comutaţie pentru a gestiona semnalele de ceas astfel încât să se poată realiza conversia pe fiecare flux de date cu viteze de eşantionare diferite.
Chiar dacă toate aceste abordări sunt viabile, ele necesită fie un cip suplimentar, fie un DAC de cost mai ridicat. Însă, prin utilizarea unui microcontroler relativ puternic pe 32 de biţi sau a unui controler de semnal digital pe 16 biţi (DSC) ce poate furniza nivele de performanţă de la 40 la 80 MIPS, proiectanţii pot elimina necesitatea unui cip de conversie extern. Acest lucru se datorează faptului că MCU pe 32 de biţi sau DSC pe 16 biţi sunt capabile de conversie a vitezei de eşantionare pe cip, fără a compromite calitatea audio. De vreme ce viteza de eşantionare de ieşire SRC este constantă, poate fi utilizat un convertor digital – analog pe 24 de biţi economic şi de înaltă calitate. Numeroase sisteme utilizează un MCU integrat pe 8 sau 16 biţi pentru gestionarea tuturor funcţiilor de operare auxiliară, precum comunicarea prin interfaţă USB, controlul ecranului, controlul butoanelor, controlul volumului şi managementul interfeţelor.

Figura 3: MCU PIC32 cu miez de procesor MIPS gestionează conversia vitezei de eşantionare şi funcţiile de operare auxiliare.

MCU-urile PIC32 şi DSC-urile dsPIC33 de înaltă performanţă de la Microchip pot fi utilizate pentru a realiza conversia vitezei de eşantionare (SRC) pe cip şi pot de asemenea să realizeze toate funcţiile auxiliare ale sistemului, precum şi ale interfeţelor acestuia. De exemplu, prin utilizarea unui MCU de înaltă performanţă, conversia vitezei de eşantionare poate fi realizată cu păstrarea calităţii audio, de vreme ce calculele intermediare sunt pe 32 de biţi. Toate deteriorările datorate trunchierilor valorilor calculate sunt astfel evitate. DSC-urile dsPIC33E şi MCU-urile PIC32 prezentate în figura 3, oferă o serie de resurse pe cip, precum memorie nevolatilă Flash, memorie statică RAM şi periferice, pentru a permite proiectanţilor să utilizeze cea mai potrivită variantă pentru sistemele lor. Unele dispozitive oferă de asemenea un consum energetic redus pentru utilizarea în aplicaţii sensibile energetic.

Utilizarea unui MCU pentru conversia vitezei de eşantionare
Conversia vitezei de eşantionare poate fi obţinută pentru vitezele de eşantionare audio uzuale prin utilizarea algoritmului SRC pentru a converti date audio în timp real eşantionate la 44,1kHz sau 32 kHz într-o viteză de eşantionare de 48kHz. Pentru a se potrivi cu viteza de cadre USB, dimensiunea cadrului de date de intrare audio este un interval de 1ms, cu 64 de eşantioane stereo pentru intrare de 32kHz, sau 88 sau 90 eşantioane stereo pentru intrare de 44,1kHz. Ieşirea constă din 96 de eşantioane stereo pe 1ms. Într-un bloc tipic SRC, datele audio de intrare trec printr-un dispozitiv up-sample sau un nivel de interpolare. Semnalul trece apoi printr-un filtru trece jos anti-aliasing, urmat de un down-sample sau nivel de decimare.
În figura 4 este reprezentat un circuit de conversie a vitezei de eşantionare simplificat. Presupunând o conversie de la 32kHz la 48kHz, cu un factor al conversiei de 3:2, se creşte viteza de eşantionare a intrării cu un factor de 3 (up-sample), urmează apoi un filtru FIR cu rol de netezire a semnalului. Este aplicat un factor de 3 semnalului netezit pentru a compensa pierderile cauzate de inserările zerourilor. Semnalul intermediar rezultat este apoi trecut într-o viteză de eşantionare mai joasă (down-sample) cu un factor de 2 pentru a obţine semnalul audio la viteza de eşantionare de 48 kHz. Deoarece reducerea vitezei de eşantionare creează redundanţe în filtrarea eşantioanelor decimate, se poate renunţa la filtrarea acestor eşantioane. Această formă simplificată de tehnică de filtrare poli-fază îmbunătăţeşte viteza SRC.

Figura 4: Circuit de conversie a vitezei de eşantionare simplificat.

Pentru o conversie a vitezei de eşantionare de la 44,1kHz la 48kHz unde factorul de conversie este de 160:147, blocurile de procesare sunt după cum urmează: viteza de eşantionare de intrare este ridicată cu un factor de 2 prin inserarea unui 0 după fiecare eşantion de intrare şi apoi aplicat un filtru FIR pentru a netezi semnalul. Este aplicat apoi un factor de amplificare de 2 semnalului netezit pentru a compensa pierderile cauzate de inserările zerourilor. Este apoi utilizată o interpolare polinomială pentru a reduce fiecare secvenţă de 147 de eşantioane la 88,2 kHz, la 80 de eşantioane la 48 kHz. Aceasta asigură că viteza de eşantionare a datelor audio de ieşire este de 48kHz. Filtrarea poli-fază este de asemenea utilizată în acest mod pentru a reduce redundanţa. Sarcina de procesare globală este dominată de filtrare, cu un echilibru între lungimea filtrului şi calitatea ieşirilor.
Biblioteca de programe a Microchip include un algoritm de conversie a vitezei de eşantionare (SRC) gratuit, ce oferă un bun SNR şi necesită în jur de 30 MIPS de lăţime de bandă a procesorului, 6KB de Flash şi 1,5KB de RAM.

Atenuarea dereglărilor de ceas USB


O rezervă de toleranţă şi o limită a frecvenţei de ceas pe USB este inclusă în specificaţiile USB pentru a obţine imunitate la interferenţe radio. Ceasul USB cu rezerva de toleranţă permisă conduce la reducerea calității audio dacă există dereglări ale ceasului USB. Fluxul de eşantioane în timp real trebuie să sosească la intervale de timp precise şi regulate astfel încât DAC să poată converti eşantioanele digitale în semnal analogic cu o viteză constantă la care este configurat. Ceasul DAC ce aşteaptă şi recepţionează eşantioanele audio la o viteză de eşantionare particulară nu trebuie să piardă niciun eşantion. Pentru ascultător, un eşantion lipsă devine un click uşor, deoarece DAC eşuează în a genera o reprezentare precisă a semnalului audio. Pe un MCU sau microprocesor cu modul USB integrat, ceasul USB are drept sursă un ceas independent precum un PLL pe cip cu oscilator cu cristal extern la o valoare specifică.
De vreme ce ceasul nu are drept sursă interfaţa USB, nepotrivirile de ceas introduc un decalaj în buffer, ce cauzează click-uri, după cum se poate vedea în figura 5.
Un răspuns simplu la problema nepotrivirilor de ceas este de a utiliza un bun ASRC (Asynchronous Sample Rate Converter), unde viteza de eşantionare de intrare este estimată cu atenuarea instabilităţii, iar filtrele interne sunt dinamic reglate pentru o nouă viteză de eşantionare. Echilibrul aici este că un ASRC bun este foarte scump, iar sistemul are încă nevoie de un DAC pentru conversie analogică.

Figura 5: Instabilitatea de ceas are ca efect nepotriviri în DAC, rezultând click-uri sonore.

O soluţie alternativă, care este şi eficientă şi economică, este de a înmagazina pachetele audio USB şi de a regla ceasurile DAC utilizând un mecanism de feedback pentru a preveni nepotrivirile. Mecanismul de feedback monitorizează nivelul buffer-ului şi se asigură că stă într-un domeniu acceptabil, furnizând o calitate cel puţin similară, dacă nu chiar mai bună decât în cazul unui ASRC scump.
O opţiune este de a utiliza un DAC cu un PLL, care să permită reglarea fracţională a vitezei de eşantionare pe baza feedback-ului cu privire la nivelul bufferului. Această soluţie este relativ mai puţin scumpă decât un cip ASRC. MCU-urile PIC32 şu DSC-urile dsPIC33E au un sistem de ceas PLL flexibil independent, şi un PLL de ceas USB cu surse de ceas independente. USB PLL poate utiliza un ceas extern pentru a obţine exact cei 48MHz necesari în USB. Ceasul sistemului poate fi obţinut din ceasul FRC (Fast RC). Pe dispozitivele PIC32 şi dsPIC33E, ceasul FRC este reglabil şi poate fi configurat pentru a regla ceasurile DAC. Acest lucru previne nepotrivirile, menţinând o viteză de eşantionare acceptabilă DAC cu o variaţie de 0.2%. Dintre cele trei soluţii posibile, aceasta este soluţia cea mai economică, păstrând în acelaşi timp şi un consum redus.

Concluzie

Echilibrul dintre cost şi calitatea audio în docuri sau accesorii poate fi gestionat prin adaptarea vitezei de eşantionare a sursei sau conversia fluxului de date în viteză de eşantionare comună. Nepotrivirile legate de ceasul USB trebuie de asemenea să fie rezolvate prin reglarea vitezei de eşantionare pentru prevenirea problemelor legate de buffer. Prin utilizarea unui MCU pentru conversia vitezei de eşantionare şi reglarea acesteia, numărul de cipuri externe necesare poate fi redus pentru minimizarea costului sistemului şi menţinerea calităţii ridicate a redării audio.
Un MCU pe 32 de biţi sau un DSC pe 16 biţi, precum PIC32 şi dsPIC33E, pot realiza conversia vitezei de eşantionare precum şi interfaţarea cu DAC economic de înaltă calitate, ce poate regla viteza de eşantionare pentru rezolvarea problemelor legate de ceasul USB. Aceste MCU şi DSC oferă o gamă de caracteristici pe cip ce oferă flexibilitatea de gestionare a echilibrului de menţinere a calităţii ridicate audio combinat cu consum energetic redus şi cost minim posibil al sistemului.

www.microchip.com

Adaugă un comentariu