REPREZENTAREA DATELOR AUDIO DIGITALE

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Biostatistică aplicată în sănătatea publică
Advertisements

Producerea curentului electric alternativ
Statistica analitica.
Suport de curs Stud. Management economic 28 martie 2009
COMPUNEREA VECTORILOR
Proiect Titlu: Aplicatii ale determinanatilor in geometrie
Fenesan Raluca Cls. : A VII-a A
Ce este un vector ? Un vector este un segment de dreapta orientat
Functia de transfer Fourier Sisteme si semnale
ELEMENTE DE STATISTICA MATEMATICA
Teste neparametrice.
FILTRE AUDIO DIGITALE.
2013 Rezidentiat ORTODONTIE an 1 Modul: Biostatistică Conf. univ. dr
MASURAREA TEMPERATURII
Biostatistică aplicată în sănătatea publică
Informatica industriala
ANALIZA RETELELOR SOCIALE
Curs 21 Pirometrie optica.
Amplificatoare de semnal mic cu tranzistoare
MASURAREA TEMPERATURII
RETELE ELECTRICE Identificarea elementelor unei retele electrice
Prof.Elena Răducanu,Colegiul Naţional Bănăţean,Timişoara
Amplificatoare de semnal mic cu tranzistoare
MĂSURAREA ŞI ANALIZA VIBRAŢIILOR STRUCTURILOR
Anul I - Biologie Titular curs: Conf. dr. Zoiţa BERINDE
Teorema lui Noether (1918) Simetrie Conservare
Rata Daunei - o alta perspectiva -
4. TRANSFORMARI DE IMAGINI 4.1. Introducere
Dioda semiconductoare
TRANSFORMATA FOURIER (INTEGRALA FOURIER).
Informatica industriala
IMBUNATATIREA IMAGINILOR
8. STABILIZATOARE DE TENSIUNE 8. 1
Proiectarea sistemelor digitale
MECANICA este o ramură a fizicii care studiază
,dar totusi suntem diferite?
OPERATII ASUPRA IMAGINILOR (1/4)
Curs 08 Amplificatoare de semnal mic cu tranzistoare
COMPUNEREA VECTORILOR
TEOREMA LUI PITAGORA, teorema catetei si teorema inaltimii
ESANTIONAREA SI CUANTIZAREA IMAGINILOR 1. Introducere
TRANSFORMARILE SIMPLE ALE GAZULUI
H. Hidrostatica H.1. Densitatea. Unități de măsură
UNDE ELECTROMAGNETICE
EFECTE ELECTRONICE IN MOLECULELE COMPUSILOR ORGANICI
Exemple de probleme rezolvate pentru cursul 09 DEEA
Sisteme de achizitii, interfete si instrumentatie virtuala
Divizoare de Putere.
Parametrii de repartiţie “s” (scattering parameters)
Sisteme de ordinul 1 Sisteme si semnale Functia de transfer Fourier
In sistemele clasice, fara convertoare de putere se datoreaza:
Lentile.
Lucrarea 3 – Indici ecometrici
Circuite logice combinaţionale
Curs 6 Sef Luc Dr. Petru A. COTFAS
Informatica industriala
Reflexia şi refracţia undelor mecanice
Miscarea ondulatorie (Unde)
Serban Dana-Maria Grupa: 113B
Familia CMOS Avantaje asupra tehnologiei bipolare:
Aplicatie SL.Dr.ing. Iacob Liviu Scurtu
Aplicatii ale interferentei si difractiei luminii
Aplicaţiile Efectului Joule
FIZICA, CLASA a VII-a Prof. GRAMA ADRIANA
SISTEME AUTOMATE CU EŞANTIONARE
CUPLOARE.
Transfigurarea schemelor bloc functionale
Teoria ciocnirilor si a imprastierii particulelor
APLICAŢII ALE FUNCŢIILOR TRIGONOMETRICE ÎN ELECTROTEHNICĂ CURENTUL ALTERNATIV Mariş Claudia – XI A Negrea Cristian – XI A.
Μεταγράφημα παρουσίασης:

REPREZENTAREA DATELOR AUDIO DIGITALE

Cuprins Unde audio PCM si digitizarea audio Rata de esantionare si aliasing Cuantizarea si eroarea de cuantizare Dithering audio Formarea zgomotului Cuantizare neliniara Analiza de frecventa Analiza statistica

Unde audio Intelegerea undelor de sunet  studiul actiunii acestora asupra microfoanelor. Doua categorii de microfoane: -microfoanele electrodinamice (dinamice) opereaza pe baza unei spirale sau benzi mobile; -microfoanele electrostatice (microfoane cu condensatoare) se bazeaza pe capacitoare care necesita o sursa externa de tensiune. Ambele: modificarile de presiune a aerului actioneaza asupra componentelor microfonului si sunt transformate in unde electrice.

PCM si digitizarea audio PCM (“pulse code modulation”) introdus in 1937 de Alec Reeves de la Intenational Telephone and Telegraph, atunci orientat pe transmiterea semnalelor audio  alternativa la modularea analogica in frecventa si amplitudine: semnalele audio erau esantionate in puncte discrete in timp, fiecare esantion cuantizat si codificat in binar, iar bitii erau transmisi ca impulsuri reprezentand 0 si 1. Fisierele PCM contin date audio digitizate, dar necomprimate. S-au dezvoltat si o serie de alternative cu reducerea cantitatii de informatie (in special in domeniul telefoniei pentru pastrarea largimii de banda). Deoarece amplitudinea vorbirii umane nu se modifica dramatic de la un moment la momentul urmator, se poate reduce dimensiunea fisierului memorand diferentele dintre esantioanele succesive (DPCM – “differential pulse code modulation”). Algoritmul poate fi imbunatatit: nivelul de cuantizare varieaza in concordanta cu caracteristicile de schimbare dinamica a sablonului de vorbire, furnizand rate mai bune de compresie (ADPCM – adaptive differential pulse code modulation).

Pentru memorarea datelor audio digitale este necesar sa se specifice rata de esantionare si adancimea de biti. Rata de esantionare se specifica in Hz, rate obisnuite: -8 kHz mono, pentru telefonie voce; -44.1 kHz stereo doua canale pe 16 biti fiecare canal, pentru sunet de calitate CD; -48 kHz banda audio digitala (DAT – digital audio tape); -96 sau 192 kHz stereo doua canale DVD cu 24 de biti per canal. Se poate utiliza o acuratete mai mare la digitizare (exemplu esantioane pe 32 de biti) pentru prelucrare ulterioara prin program, iar apoi se reduce rezolutia inainte de compresie (exemplu: se pastreaza esantioane pe 16 biti).

Cel mai simplu format de fisier audio PCM, fara compresie este formatul WAVE, un subset al specificatiei RIFF (Resource Interchange File Format) de la Microsoft. Un fisier RIFF incepe cu un header de fisier urmat de o secventa de bucati („chanks”) de date. Un fisier WAVE este adesea un fisier RIFF cu o singura bucata „WAVE” continand doua sub-chunks: „fmt” specificand formatul datelor si „data” cu esantioanele (forma canonica).

Semnificatiile campurilor sunt: Header RIFF: Offset Dim Nume Descriere 4 ChunkID Contine literele „RIFF” in ASCII 0x52494646 big-endian. ChunkSize 36 + SubChunk2Size, sau mai exact 4 + (8 + SubChunk1Size) + (8 + SubChunk2Size). Este dimensiunea fisierului – 8 octeti, campurile ChunkID si ChunkSize. 8 Format Contine literele „WAVE” 0x57415645 big-endian.

Subchunk „fmt”: Offset Dim Nume Descriere 12 4 Subchunk1ID Contine literele „fmt” 0x666d7420 big-endian. 16 Subchunk1Size 16 pentru PCM, dimensiunea restului subchunk-ului. 20 2 AudioFormat PCM=1 (cuantizare liniara), pentru ≠1 anumita compresie. 22 NumChannels Mono = 1, Stereo = 2, etc. 24 SampleRate 8000, 44100, etc. 28 ByteRate == SampleRate * NumChannels * BitsPerSample/8 32 BlockAlign == NumChannels * BitsPerSample/8, numarul de octeti pentru un esantion incluzand toate canalele. 34 BitsPerSample 8 bits = 8, 16 bits = 16, etc. ExtraParamSize Pentru PCM nu exista. X ExtraParams Parametri suplimentari.

Subchunk „data”: Offset Dim Nume Descriere 36 4 Subchunk2ID Contine literele „data”, 0x64617461 big-endian 40 Subchunk2Size == NumSamples * NumChannels * BitsPerSample/8, numar de octeti de date. 44 X Data Datele

Exemplu: primii 72 de octeti dintr-un fisier WAVE (in hexa): 22 56 00 00 88 58 01 00 04 00 10 00 64 61 74 61 00 08 00 00 00 00 00 00 24 17 1e f3 3c 13 3c 14 16 f9 18 f9 34 e7 23 a6 3c f2 24 f2 11 ce 1a 0d Interpretarea:

Observatii: -Ordonarea implicita este little-endian, fisierele cu ordonare big-endian au identificatorul RIFX. -Esatioanele de 8 biti sunt memorate fara semn, cu valori 0->255, iar cele de 16 biti ca intregi cu semn in complement fata de 2, cu valori -32768 -> 32767. -Pot exista subchunk-uri aditionale in stream-ul de date Wave, caz in care exista SubChunkID char[4], SubChunkSize unsigned long si datele.

Rata de esantionare si aliasing Legate de teorema lui Nyquist: doua marimi importante: frecventa Nyquist si rata Nyquist. Fiind data o rata de esantionare, frecventa Nyquist = componenta de fecventa cea mai inalta care poate fi esantionata la acea rata fara aliasing. Pe baza teoremei lui Nyquist, frecenta Nyquist este jumatate din rata de esantionare: fnf = ½ fesant Fiind data o frecventa de esantionat, rata Nyquist = rata cea mai mica de esantionare care va permite reconstructia fidela a semnalului. De asemenea pe baza teoremei lui Nyquist rezulta ca rata Nyquist este dublul frecventei celei mai inalte din semnalul esantionat: fnr = 2 fmax Consecinta importanta: daca un semnal audio este esantionat la o rata inferioara ratei Nyquist, apare fenomenul de aliasing audio => la redare frecventele sunetului original vor fi translatate in alte frecvente si deci nu se va mai auzi la fel cu sunetul original. Practic exista prea putine puncte de esantionare, care prin interpolare sa furnizeze corect forma sinusoidala a undei originale.

Cateva exemple de semnale audio esantionate la diferite frecvente: Semnal de 637 Hz esantionat la 1490 Hz (rata Nyquist fiind 1274 Hz). Nu apare fenomenul de aliasing, iar semnalul este refacut corect.

Semnal de 637 Hz esantionat exact la 1274 Hz, esantioanele fiind plasate exact in punctele de minim si de maxim: semnalul poate fi refacut corect. Daca esantioanele sunt plasate in alte puncte decat maxim si minim, frecventa este refacuta perfect, dar amplitudinea semnalului nu (in caz extrem, cand esantioanele sunt plasate in punctele de 0, se obtine un semnal constant 0).

(Figura 1) Semnal de 637 Hz esantionat la 1000 Hz, furnizeaza o unda aliasing de 363 Hz.

(Figura 2) Semnal de 637 Hz esantionat la 500 Hz, furnizeaza o frecventa aliasing de 137 Hz.

Semnal de 637 Hz esantionat la 400 Hz, furnizeaza o frecventa aliasing de 163 Hz.

Se poate stabili un algoritm pentru calcularea frecvetei de aliasing. algoritm get_frequency /*Input: frecventa undei audio analogice (un singur ton) de esantionat, f _act si frecventa de esantionare, f_samp Output: frecventa undei audio digitizate, f_obs*/ { f_ nf = ½ f _ samp / * f _ nf este frecventa Nyquist*/ /*CASE 1*/ if ( f _ act ≤ f _ nf ) then f _ obs = f _ act /CASE 2*/ else if ( f _ nf < f _ act ≤ f _ samp ) then f _ obs = f _ samp − f _ act

else { INT = f _ act / f _ nf /* impartire intreaga */ REM = f_act mod f _ nf /*CASE 3*/ if (INT par) then f _obs= REM /*CASE 4*/ else if (INT impar) then f _ obs = f _ nf − REM }

Schema de calcul:

Exemple de calcule: Case 2: f _ act = 637 Hz ; f _ samp = 1000 Hz ; => f _ nf = 500 Hz f _ nf < f _ act ≤ f _ samp => f _ obs = f _ samp − f _ act = 363Hz (Figura 1) Case 3: f _ act = 637 Hz ; f _ samp = 500 Hz ; => f _ nf = 250 Hz f _ act > f _ samp INT = f _ act / f _ nf = 637 / 250 = 2 (impartire intreaga) INT par REM = f _ act mod f _ nf = 137 (preia restul impartirii) => f _ obs = REM = 137 Hz (Figura 2)

Case 4: f _ act = 637 Hz ; f _ samp = 400 Hz ; => f _ nf = 200 Hz f _ act > f _ samp INT = f _ act / f _ nf = 637 / 200 = 3 INT impar REM = f _ act mod f _ nf = 37 => f _ obs = f _ nf − REM = 200 − 37 = 163Hz

O reprezentare intuitiva a modului in care functioneaza algoritmul este reprezentata in figura urmatoare, unde f_samp = 1490 Hz este constanta, f_act este intrare (pe abscisa) si f_obs este iesire (pe ordonata).

O reprezentare grafica diferita se poate obtine prin fixarea frecventei sunetului f_act = 1000 Hz, considerand frecventa observata f_obs ca o functie de frecventa de esantionare f_samp. Cat timp f_samp < fNyquist (rata Nyquist = 2xf_act) => f_obs < f_act.

Cuantizarea si eroarea de cuantizare Decibeli. Interval dinamic. Amplitudinea sunetului: determinata la cuantizare si indica intensitatea acestuia. Fenomenul fizic corespunzator este modificarea presiunii aerului prin care se propaga sunetul. Presiunea: masurata in pascali (Pa) sau newton/m2 (N/m2). Presiunea atmosferica normala la nivelul marii = aprox. 105 Pa. Pragul de auzire a sunetului (la 1000 Hz) = variatia fata de presiunea atosferica cu 2•10-5 Pa. Pentru a masura schimbarile de presiune a aerului se poate utiliza decibelul: nu este o unitate absoluta de masura, trebuie sa se precizezez un punct de referinta pentru marimea masurata (decibelul se poate utiliza si in alte domenii, nu numai presiune). Pentru sunet punctul de referinta = presiunea aerului pentru pragul de auzire => se numeste dB_SPL (decibels-sound-pressure-level). Definitie. Fie E amplitudinea presiunii sunetului ce trebuie masurata si E0 nivelul presiunii sunetului la pragul de auzire. Atunci dB_SPL se defineste ca (este esential ca la o marime in dB sa se specifice nivelul punctului de referinta).

Exemplu. Se doreste sa se calculezez in dB nivelul pragului de durere (30 Pa). Se inlocuieste in formula de mai sus: Deci pragul de durere este aprox. 123 dB. Se poate utiliza dB pentru a specifica intensitatea sunetului, utilizand dB_SIL (decibels-sound-intensity-level), definit prin relatia: unde I este intensitatea sunetului de masurat si I0 este intensitatea corespunzatoare pragului de auzire (10-12 W/m2).

Utilizarea dB_SPL este o solutie naturala pentru masurarea amplitudinii sunetului, deoarece scara logaritmica este adaptata auzului uman. In tabela urmatoare sunt date cateva din valorile corespunzatoare unor sunete: Sunet dB_SPL Pragul de auzire Frunze in vant 20 Conversatie 60-70 Ciocan pneumatic 100 Pragul de durere 130 Distrugerea auzului 160

Rata de esantionare insuficienta  aliasing. Utilizarea unui numar prea mic de biti pentru cuantificare  distorsiuni(zgomot de cuantificare). Definitia pentru SQNR (signal-to-quantization-noise-ratio): Acest concept este legat de cel de domeniu dinamic („dynamic range”), definit ca raportul dintre cea mai mica valoare nenula (1) si cea mai mare (2n). Rezulta: Exemplu: un fisier audio digital pe 16 biti are un domeniu dinamic de 96 dB. Domeniul dinamic specifica gama de amplitudini ale sunetului digitizat, diferenta relativa dintre sunetul cel mai puternic si cel mai slab (nu specifica amplitudinile absolute).

O alta definitie pentru decibeli este reprezentata de dBFS (“decibels-full-scale”). Se considera ca punct de referinta amplitudinea audio maxima generata de sistem (acelasi pentru toate fisierele audio). Se atribuie maximului valoarea 0. O unda audio are axa orizontala corespunzatoare - ∞ dBFS, iar deasupra si dedesubtul acesteia valorile progreseaza pana la maxim 0 dBFS.

Definitia dBFS se bazeaza pe masurarea valorilor de amplitudine relative la valoarea maxima posibila. Pentru esantioane de n biti: Definitie. Fie x un esantion audio de n biti in plaja -2n-1 ≤ x ≤ 2n-1 -1. Valoarea lui x ca dBFS este Facand cateva calcule pentru, de exemplu, n=16 se obtin maparile: -32768 -> 0; 10000 -> -10.3; 1 -> -90.3; 0.5 -> -96.3298. Astfel, consistent cu domeniul dinamic, orice amplitudine dintr-un fisier pe 16 biti care este cu mai mult decat 96 dB sub amplitudinea maxima posibila este considerata liniste.

Dithering audio Dithering (tremur, freamat) este o solutie de compensare a erorii de cuantizare, prin adunarea de valori mici aleatoare la esantioane. In procesul de cuantizare se face o rotunjire, cand anumite esantioane de amplitudine mica sunt aproximate cu zero, rezultand intreruperi in cadrul sunetului. Adaugand la fiecare esantion o valoare mica aleatoare (intre 0 si ½ din valoarea minima posibila) se obtine ca unele esantioane mici sa aibe in final valori diferite de zero: acest zgomot este preferat zonelor de discontinuitate a sunetului. Dithering se realizeaza de catre convertoarele A/D inainte de etapa de cuantizare.

In graficul urmator se prezinta semnalul initial, semnalul cuantizat (cu 16 niveluri) si eroarea de cuantizare. De remarcat: suma dintre semnalul cuantizat si semnalul eroare de cuantizare este chiar semnalul initial. Semnalul de eroare este periodic (are perioada semnalului initial) si se aude la redarea sunetului digital ca distorsiune (mai suparatoare chiar decat un zgomot aleator).

La fiecare esantion se aduna o valoare cuprinsa intre -1 si 1, pe baza unei functii de densitate de probabilitate triunghiulara (TPDF – „triangular probability density function”). Evident 0 are cea mai mare probabilitate sa fie adunat la un esantion.

Semnalul cuantificat, semnalul cuantificat cu dithering si semnalul de eroare: Alte functii de dithering sunt: -RPDF („rectangular probability density function”) genereaza aleator valori in intervalul -1 la 1; -PDF Gaussian (functia de densitate de probabilitate este o Gaussiana) creaza un zgomot de fond asemanator de exemplu histerezisului benzii; -dithering colorat produce zgomot de frecvente mai inalte decat poate distinge urechea umana.

Formarea zgomotului Formarea zgomotului („noise shaping”): o alta metoda de compensare a erorii de cuantizare. Nu este chiar dithering, dar se utilizeaza cu acesta. Ideea: redistribuirea erorii de cuantizare astfel incat zgomotul sa fie concentrat in frecventele mai inalte, unde urechea umana este mai putin sensibila. In algoritmii de formare a zgomotului (dezvoltati prima data de Utler in anii 1950) este necesar sa se adune eroarea de cuantizare de la esantionul curent la esantionul urmator inainte ca acesta sa fie cuantizat. Se considera un tablou F de esantioane audio. Se defineste bucla de feedback de ordinul intai pentru formarea zgomotului:

Fie F_in un vector de N esantioane audio pentru care se executa cuantizare, dithering si formarea zgomotului => F_out. Pentru 0≤i≤ N-1 se defineste: F_ini valoarea esantionului i necuantizata; Di este valoarea aleatoare de dithering adunata la esantionul i; Atribuirea F_ini = F_ini + Di + cEi-1 executa dithering si formare zgomot pentru esantionul i; Atribuirea F_outi = └F_ini┘ executa cuantizarea esantionului; Ei este eroarea rezultata din cuantizarea esantionului i dupa dithering si formarea zgomotului. Daca i=-1 atunci Ei=0 altfel Ei=F_ini – F_outi.

Exemplu. Codificarea pe 8 biti, amplitudinile sunetului fiind in interalul: -128 la 128 (dupa cuantizare valorile devin intregi intre -128 la 127). Fie:

Termenul de formare este utilizat deoarece se poate manevra forma zgomotului prin modificarea ecuatiei de calcul, eventual adaugandu-se noi termeni de eroare si modificand coeficientii termenilor de eroare. Ecuatia generala de ordinul n este: De exemplu algoritmul POW-r pentru recuantificarea audio de la 24 biti la 16 biti utilizeaza formula de ordinul 9.

In programele de prelucrare audio: optiunea de a utiliza formarea zgomotului + dithering => reduc efectul negativ al zgomotului, dar in moduri diferite. Distinctie intre zgomot si distorsiune! Distorsiunea este tot un zgmot, dar corelat cu frecventa semnalului. Formarea zgomotului nu face nimic pentru a disocia frecventa zgomotului de semnal, de aceea este bine ca formarea zgomotului sa se utilizeze impreuna cu dithering. Exemplu: semnalul de eroare de cuantizare: a) fara dithering, b) cu dithering si c) cu dithering si formarea zgomotului. (a) (b) (c) Se observa ca ultima solutie duce zgomotul la frecvente inalte. Optiunile de utilizare a dithering-ului si de formare a zgomotului sunt legate de frecventa de esantionare: f < 32 kHz formarea zgomotului s-ar putea sa nu functioneze prea bine (frecventa Nyquist este prea scazuta si chiar in cazul obtinerii unor frecvente mai mari pentru zgomot, acestea vor fi in domeniul audibilitatii umane).

Cuantizare neliniara Codificarea neliniara sau „companding” (schema de codificare necesita compresie si apoi expandare) a rezultat din necesitatea de compresie a semnalelor telefonice pe linii de banda joasa. Etape principale: -semnalul digital pe n biti este recuantizat pe m biti (m<n) printr-o metoda de cuantizare neliniara; -se transmite semnalul; -expandeaza semnalul la n biti la receptie (anumite informatii sunt pierdute, cuantizare cu pierderi) => micsoreaza eroarea pentru semnale de amplitudine mica, in comparatie cu cuantizarea liniara. Baza codificarii neliniare: sistemul auditiv uman percepe mici diferente intre sunete slabe, dar pe masura ce nivelul creste scade abilitatea de percepere a diferentelor => mai multe niveluri de cuantizare pentru nivelurile mici si mai putine pentru niveluri mari => metode de codificare neliniara μ-law si A-law pentru transmisiile telefonice. Schemele de codificare neliniara: utilizate si standardizate de CCITT („Comité Consulatif Internationale de Télégraphique et Téléphonique”). In USA si Japonia se utilizeaza μ-law (se citeste „mu-law”), cu rata de esantionare de 8000 Hz, pe 8 biti, dar atingand 12 biti de domeniu dinamic. In restul lumii se utilizeaza A-law.

Metoda de codificare μ-law este definita de functia: pentru μ=255, x valoarea normalizata a esantionului -1≤x<1 si sign(x)=-1 daca x negativ si sign(x)=1 altfel. Graficul functie μ-law este:

Exemplu. Aplicarea practica a metodei de codificare: esantioane initiale pe 16 biti, in plaja de -32768 -> 32767, iar transmisia semnalului se face pe 8 biti. La receptie se trece din nou pe 16 biti. Etape: -se normalizeaza valorile de intrare, prin impartire la 32768; -se aplica functia m(x) de codificare neliniara (cea din grafic); -calculeaza └128m(x)┘, pentru scalare la 8 biti. Astfel: val.init 16 (pe 16 biti) este scalata 16/32768 si se aplica m(x) => m(16/32768)≈0.02, apoi se scaleaza la 8 biti └128∙0.02)┘=2. Sau, o alta valoare initiala 30037 => 30037/32768 =>m(30037/32768)=0.9844 => └128∙0.9844)┘=125.

Valorile pozitive codificate neliniar, in comparatie cu tehnica de codificare liniara (valorile negative se codifica la fel): Codificare liniara Codificare neliniara Valori esantioane originale 16 biti Valori 8 biti dupa recuantizare liniara (impartire la 256 si rotunjire la c.m.apropiat intreg) Valori 8 biti dupa recuantizare neliniara Numar de valori care se mapeaza in aceeasi valoare 0−255 0-5 6 256−511 1 6-11 512−767 2 12-17 . . . . . 32,000−32,255 125 28,759−30,037 1,279 32,256−32,511 126 30,038−31,373 1,336 32,512−32,767 127 31,374−32,767 1,394

La receptie valorile pe 8 biti sunt decomprimate la 16 biti utilizand functia inversa: pentru μ=255, x valoarea normalizata a esantionului codificat μ-law -1≤x<1 si sign(x)=-1 daca x negativ si sign(x)=1 altfel. Exemplu. Se considera valorile din calculul precedent, unde 16 -> 2 si 30037 -> 125. Astfel: d(2/128)=0.00035, scalare la 16 biti ┌32768∙0.00035┐=11. Cealalta valoare : d(125/128)=0.8776, scalare la 16 biti ┌32768∙0.8776┐=28758. In concluzie valoarea 16 afost receptionata 11, cu eroare de 31%, iar valoarea 30037 a fost receptionata 28758 cu eroare de 4%. Chiar daca erorile la valori mici sunt inca mari, totusi acestea sunt mult mai acceptabile decat daca s-ar fi utilizat o codificare liniara. In tabela urmatoare sunt prezentate erorile rezultate la cuantizarea neliniara in comparatie cu cea liniara pentru diferite valori de amplitudine:

Codificare liniara Codificare neliniara Esantion initial 16 biti Esantion 8 biti dupa compresie Esantion 16 biti dupa decompresie eroarea 1-5 100% 6-11 1 6 26% 12-17 2 12 16% 18-24 3 18 13% 25-31 4 25 10% 127 15 118 7% 128 256 7.8% 383 33% 31 364 4.9% 30,038 117 29,952 0.29% 126 0% 31,373 122 31,232 0.45% 4.2%

Se pot reprezenta erorile in procente pentru codificarea neliniara (a) si pentru cea liniara (b):

ANALIZA DE FRECVENTA Domeniile timp si frecventa Un semnal audio poate fi reprezentat atat in domeniul timp, cat si in domeniul frecventa. In domeniul timp: variatia amplitudinii semnalului in timp (pe axa orizontala este timpul, iar pe axa verticala amplitudinea seamnalului) => cea mai intuitiva solutie de reprezentare a unui semnal unidimensional. In domeniul frecventa: componentele de frecventa ale semnalului (frecventa fundamentala si multipli intregi ai acesteia, frecventele armonice). Exista doua solutii de baza: 1) In reprezentarea analizei de frecventa (analiza de spectru) pe axa orizontala se plaseaza valorile de frecventa, iar pe axa verticala amplitudinile componentelor de frecventele respective. Se ia in considerare un anumit interval de timp pentru care se face analiza de frecventa. Se mai utilizeaza si termenul de energie (reprezentat de aria de sub graficul frecventei). 2) In reprezentarea spectrala (spectrul) pe axa orizontala se plaseaza timpul , pe cea verticala frecventele, iar amplitudinile diferitelor componente spectrale se reprezinta prin culori diferite (de exemplu de la albastru la rosu si chiar pana la alb, pe masura ce amplitudinile cresc).

Seria Fourier Seria Fourier este o reprezentare a unei functii periodice sub forma unei sume infinite de sinusoide: unde ω=2πf, f fiind frecventa fundamentala a semnalului (a nu se confunda cu f(t)). Relatia se mai poate scrie si sub forma: unde a0 este componenta continua (DC – „direct component”), data de relatia: cu T=1/f. fiecare componenta alternativa (AC – „alternating component”) este o sinusoida pura.

Coeficientii acestor componente sunt date de relatiile: pentru -∞ < n < ∞. O alta forma echivalenta de reprezentare a seriei Fourier se bazeaza pe relatia lui Euler: unde e ≈ 2.71828... iar

Transformarea Fourier discreta (DFT) Pentru un semnal audio digitizat fk reprezentat prin N esantioane, se poate defini transformarea Fourier inversa: Deoarece ω=2πf, rezulta ca frecventa fundamentala f este 1/N. Cunoscand amplitudinea fiecarei componente an si bn pentru 0 ≤ n ≤ N-1 se poate reconstitui semnalul initial.

Componenta continua este definita de: (amplitudinea medie), iar componentele AC sunt date de: cu 1 ≤ n ≤ N-1.

Transformarea Fourier directa prelucreaza un vector de esantioane audio si furnizeaza coeficientii sin si cos reprezentand datele din domeniul frecventa, pe baza relatiei: cu 0 ≤ n ≤ N-1.

Se poate defini in continuare magnitudinea componentei n de frecventa: pentru 0 ≤ n ≤ N-1 si faza: Pe baza acestor marimi se poate reprezenta DFT inversa:

Faza este importanta in perceptia sunetului! Legea lui Ohm (1800): faza nu are niciun efect in modul de perceptie a sunetului => un sunet sinusoidal este identic perceput de urechea umana indiferent de faza initiala cu care este transmis. Dar daca se transmit simultan doua sunete de aceeasi frecventa, dar de faze diferite, sunetul perceput va depinde de diferenta de faza. Exemplu: in auditia stereo, doua difuzoare defazate pot genera un sunet suparator. In analiza de imagini, faza este chiar si mai importanta decat in analiza sunetelor, componenta de faza dominand perceptia unei imagini!

Transformarea Fourie rapida (FFT) Transformarea Fourier rapida, FFT – Fast Fourier Transform (1965 Cooley si Tukey) reduce complexitatea de calcul de la O(N2)  O(Nlog2N). Castigul de timp folosind FFT fata de DFT este foarte important! Un fisier de sunet calitate CD stereo: 44100 esantioane / secunda => N foarte mare! Exemple: N=256 => N2/(Nlog2N)= N/(log2N)=256/( log2256)=32 N=1024 => N2/(Nlog2N)= N/(log2N)=1024/( log21024)=102 N=65536 => N2/(Nlog2N)= N/(log2N)=65536( log265536)=4096

In anumite programe de prelucrare audio este necesar sa se aleaga dimensiunea ferestrei FFT. Se considera urmatoarea situatie: -semnalul audio f=440 Hz; -achizitia = 8000 esantioane/s; -fereastra FFT =1024 esantioane => 56.32 cicluri. Sfarsitul unei ferestre se va situa in interiorul unei perioade a semnalului, iar la punerea cap-la-cap a doua perioade succesive apare o discontinuitate => unda care se presupune ca este analizata de FFT nu reprezinta exact frecventa audio reala. FFT interpreteaza aceasta discontinuitate drept componente de frecventa aditionale. Fenomenul se numeste scurgere spectrala („spectral leakage”). Pe masura ce FFT parcurge intreaga forma de unda, de fiecare data cand se face calculul pe o fereastra de 1024 de esantioane, se detecteaza frecvente false (apar in reprezentarea grafica).

Semnal perodic de 440 Hz Analiza de frecventa.

Discontinuitate generata de o fereastra FFT care nu acopera un numar intreg de cicluri. De exemplu, pentru un semnal de 512 Hz, esantionat la rata de 1024 Hz si cu fereastra FFT de 1024 de esantioane, acoperind exact doua cicluri, nu apare fenomenul de scurgere spectrala.

Fenomenul de scurgere spectrala: controlat intr-un program de prelucrare audio prin selectarea unei functii de ferestra („windowing function”). Cele mai utilizate: „triangular”, „Hanning”, „Hamming” si „Blackman”. Deoarece discontinuitatile de faza apar la inceputul si sfarsitul unei ferestre, functia reduce amplitudinea semnalului in aceste doua zone. => frecventele false vor fi mai mici in amplitudine! Aplicarea functiei fereastra: inmultirea semnalului cu functia fereastra.

Cateva functii fereastra:

Functia fereastra Hanning aplicata unui semnal sinusoidal. Graficele functiilor fereastra Functia fereastra Hanning aplicata unui semnal sinusoidal.

Analiza statistica Analiza statistica a unui fisier audio: prelucrarea valorilor esantioanelor in domeniul timp  valorile minima si maxima, amplitudinea de varf din fisier, offset-ul DC, amplitudinea radacina patratica medie (RMS – „root-mean-square”), histograma. Chiar daca offset-ul continuu (DC) nu este perceput la redarea fisierului audio, acesta poate influenta anumite etape de prelucrare, in particular prelucrarile bazate pe trecerile prin zero. Un program de prelucrare audio contine o facilitate de ajustare a offset-ului DC. Amplitudinea radacina patratica medie (referita ca putere RMS sau nivel RMS) este o masura a amplitudinii medii a sunetului pe o perioada data (toata durata sau o parte). Se calculeaza astfel: unde xi este amplitudinea esantionului i si N este numarul de esantioane.

Se poate vedea ecuatia RMS sub forma unde max este valoarea esantionului maxim. Aceasta rezulta din versiunea continua a ecuatiei de mai sus: care aplicata unui sinus pentru k cicluri complete furnizeaza: Puterea RMS minima sau maxima se defineste doar in situatia in care a fost setata dimensiunea unei ferestre de analiza. De exemplu pentru o fereastra de 50 ms, puterea RMS minima este amplitudinea RMS minima pentru toate ferestrele de 50 ms din forma de unda. Amplitudinea RMS medie este media tuturor ferestrelor de dimensiunea specificata.

Histograma audio indica numarul de esantioane de fiecare amplitudine (valoare). Un exemplu de histograma: Exemple de programe de prelucrare a fisierelor audio de esantioane: Audition, Logic, Audacity, si Sound Forge.