Algoritm de Compresie a Semnalelor Audio Prin Tehnica Decimarii In Frecventa
Introducere
Lucrarea de față își propune să realizeze un algoritm de compresie a semnalelor audio. Din metodele de compresie care există și care au fost enumerate și dezvoltate într-unul din capitolele lucrării a fost aleasă pentru a fi dezvoltată cea cu decimare în frecvență.
Scopul acestei lucrări îl constituie evidențierea avantajelor și dezavantajelor utilizării unei asemenea tehnici atât din punct de vedere cantitativ cât și din punct de vedere al calității semnalelor obținute.
Lucrarea cuprinde două părți: o parte teoretică și o parte soft.
Partea teoretică e structurată în 5 capitole după cum urmează:
În capitolul 1 sunt prezentate noțiuni despre semnale și despre sistemele de achiziție, prelucrare și memorare a semnalelor audio.
Un aspect important menționat în primul capitol este legat de eșantionarea și filtrarea semnalelor, cuprinzând și o trecere în revistă a teoremei lui Shannon, și modurile în care este stocata informația audio în calculator.
Pentru o mai bună înțelegere, în capitolul 1.3 sunt menționate tipurile de fișiere sub forma cărora se găsesc semnalele audio.
În cel de-al doilea capitol intitulat ’Metode de compresie’, sunt prezentate patru dintre cele mai reprezentative metode de compresie: decimarea în frecvență, codarea perceptuală, comutarea ferestrelor și tehnologia AC3 sau Dolby Digital.
Pentru alegerea unei metode de compresie eficientă este necesară cunoașterea modului de percepție a semnalelor audio de către urechea umană, subiect dezvoltat în capitolul 2.1. Indiscutabil, cel mai bun format de compresie, care nu va avea prea curând înlocuitor este formatul MP3, în cadrul căruia comprimarea sunetului constă în eliminarea unor elemente pe care urechea umană le percepe mai slab sau deloc. Acest standard este dezvoltat în capitolul 2.3, unde sunt amintiți și câțiva concurenți, algoritmi, care deși sunt mai eficienți decât Mp3, nu au căpătat popularitatea lui.
Capitolul 3 este o îmbinare între partea teoretică și cea soft a lucrării, prezentând proiectarea și simularea metodei de compresie cu decimare în frecvență. Cuprinde o descriere a algoritmului proiectat în limbajul Matlab 6.0, și detaliat în anexele 1 și 2.
În capitolul 4 sunt trecute rezultatele experimentale, rezultate care ne ajută să tragem o concluzie cu privire la cea mai buna metodă de compresie și cel mai bun pas de decimare utilizat în algoritmul nostru care să ne conducă la un rezultat convenabil constând într-un semnal acceptabil atât calitativ cât și cantitativ. Nu ne interesează un semnal redus ca mărime foarte mult dacă calitativ nu păstrează din semnalul inițial decât foarte puține elemente.
În capitolul 5 sunt prezentate aspecte privind calculul prețului de cost și fiabilitatea software.
Partea a doua a lucrării prezintă programul scris în limbajul Matlab, versiunea 6, și cuprinde:
Fișierul Fourier.m si Fourier_decim.m în care este prelucrat un semnal complex, suma mai multor semnale, aplicandu-i-se transformata Fourier directă și cea inversă, după care semnalul, reprezentat în domeniul frecvență este supus tehnicii de decimare;
Fișierul audio.m si audio_decim.m în care, este supus operațiilor de mai sus un semnal real, mai întâi vorbire și apoi melodie.
În finalul lucrării sunt trecute anexele care, cuprind programele realizate în Matlab.
Capitolul 1
Sisteme de achiziție, prelucrare și memorare a semnalelor audio
1. 1 Generalități. Clasificări.
1 1.1 Noțiunea de semnal
Există în lumea înconjurătoare o mare varietate de semnale: semnalele luminoase emanate de diverse surse de lumină (corpuri cerești, materiale incandescente sau fosforescente), semnalele acustice eliberate de aproape orice proces fizic, semnalele nervoase emise de creierul uman către organele corpului în vederea efectuării diverselor acțiuni, semnalele radio emise de posturile de radio și televiziune, sateliți de comunicație, sonare, radare, semnale electrice emise pe cablu, cum ar fi semnalul telefonic, semnalele optice emise pe fibrele optice etc.
Un semnal poate fi definit ca o entitate purtătoare de informații cu privire la prezența sau evoluția unui sistem fizic. El poate fi privit ca un model al informației. Din acest model, prin studierea parametrilor acestuia precum și prin prisma cunoștințelor care există despre el, poate fi obținută informația.
Pentru descrierea și manipularea semnalelor, un semnal poate fi reprezentat matematic ca o funcție f(x), f : D -> C, unde D (domeniul) respectiv C (codomeniul) pot fi domenii continue sau discrete, cu sau fără semnificație fizică, având una sau mai multe dimensiuni.
Câteva exemple de semnale și reprezentarea matematică a acestora :
– semnalul electric U = f(t); (U – tensiunea electrică, t – timpul)
– semnalul acustic P = f(t); (P – presiunea acustică care apasă timpanul sau membrana microfonului, t – timpul)
semnalul înregistrat pe bandă magnetică B = f(x); (B – inducția magnetică, x – poziția capului de citire pe bandă)
imaginea video statică (R,G,B) = f(X,Y), (R,G,B – cele 3 componente ale culorii unui pixel, X,Y – coordonatele pixelului)
– imaginea video dinamică (R,G,B) = f(X,Y,t), (R,G,B,X,Y – la fel ca mai sus, t – timpul)
De asemenea, chiar dacă majoritatea semnalelor sunt de natură non-electrică, este posibilă în majoritatea cazurilor modelarea mărimilor caracteristice unui semnal dat în mărimi electrice, cum ar fi tensiunea sau curentul, astfel încât concentrarea discuțiilor pe semnale electrice nu limitează valabilitatea acestora (a discuțiilor) și pe alte tipuri de semnale.
Informațiile conținute de semnale pot fi evidente sau latente, însoțite de alte date nesemnificative sau de zgomot. Prelucrarea semnalelor (signal processing) este procesul de transformare a funcției semnal în scopul extragerii sau pentru mărirea cantității de informații pe care le conține.
În domeniul prelucrării semnalelor există două tipuri de probleme:
Problemele de analiză, constând în evaluarea răspunsului sistemului de prelucrare a semnalelor la o intrare sau la o clasă de intrări dară. În această categorie intră prelucrarea semnalelor în vederea extragerii informațiilor din sau despre ele
Probleme de sinteză, care se referă la proiectarea sau specificarea sistemelor de prelucrare astfel încât să producă răspunsul dorit la o intrare dată
1.1.2 Sisteme de achiziție de date
Sistemele de achiziție de date sunt sisteme complexe de supraveghere a unor procese în care intervin, de regulă, mai multe mărimi fizice. Ele realizează prelevarea, prin intermediul unor traductoare adecvate, de semnale analogice sau numerice (în funcție de natura traductorului), în scopul memorării, transmiterii sau prelucrării informației achiziționate.
Memorarea poate fi făcuta direct sau după prelucrarea datelor, pe intervale de timp mai lungi, medii sau scurte.
Transmiterea datelor e necesar a fi făcută pe distanțe mai lungi sau mai scurte.
Prelucrarea informației poate consta în operații simple (comparări), până la prelucrări matematice complicate (integrări, diferențieri, medieri, calcul de transformate Fourier, etc.). Scopul prelucrării diferă de la caz la caz: comanda unui proces (industrial, militar, de cercetare), sau numai informare asupra evoluției procesului prin vizualizarea datelor.
Operația cea mai importanta este conversia analog – numerică, realizată cu unul sau mai multe circuite. În funcție de tipul aplicației mai pot fi necesare și alte circuite analogice de prelucrare.
Configurația și tipurile de circuite utilizate într-un sistem de achiziție de date – SAD – depind de o serie de factori:
rezoluția și precizia cu care se cere realizarea conversiei A/N;
numărul de canale analogice investigate;
frecvența de eșantionare pe fiecare canal;
capacitatea sistemului de prelucrare în timp real a datelor;
necesitatea condiționării (adaptării) semnalului analogic de intrare.
Datele achiziționate pot fi:
analogice (tensiuni, curenți – continue sau alternative) și reprezintă, de regulă, ieșirile unor traductoare ce supraveghează mărimile care intervin în procesul condus;
numerice, provenind de la traductoare cu ieșire numerică sau de la alte echipamente implicate în desfășurarea procesului.
SAD va fi prevăzut, deci, cu un număr corespunzător de intrări adecvate acestor date:
intrări analogice;
intrări numerice.
Altă operație frecvent întâlnita în SAD este eșantionarea și memorarea temporară a eșantioanelor prelevate. Frecventa de eșantionare se stabilește în funcție de:
spectrul de frecvență al semnalelor de intrare;
viteza de lucru a convertorului A/N;
precizia impusă procesului de prelucrare.
O frecvență minimă și care permite determinarea parametrilor statistici ai semnalului este dublul frecvenței maxime din spectrul acestui semnal. Dacă se cere ca eșantioanele prelevate să reprezinte cu suficientă precizie un semnal continuu de la intrare, fără a mai calcula valori intermediare eșantioanelor prelevate, frecvența de eșantionare trebuie să fie de cel puțin 8…10 ori mai mare decât frecvența celei mai înalte armonici. Perioada de eșantionare nu poate fi mai mică decât timpul de conversie. Înaintea eșantionării, semnalele analogice sunt supuse unor operații de adaptare cu sistemul de prelucrare, numite generic condiționare. Acestea pot fi:
amplificare/atenuare cu câștig programabil;
amplificare cu izolare galvanică;
comutarea automată a intervalelor de măsurare;
compresie logaritmică;
filtrare;
conversie tensiune – frecvență;
conversie curent – tensiune.
Clasificări ale sistemelor de achiziție de date:
1. După condițiile de mediu în care lucrează:
sisteme destinate unor medii favorabile (laborator);
SAD destinate utilizării în condiții grele de lucru (echipamente militare, instalații telecomandate, anumite procese industriale, etc.).
2. După numărul de canale supravegheate:
monocanal, cu una din variantele:
numai circuite pentru conversia directă a semnalului;
preamplificator urmat de circuitele de conversie;
preamplificator, circuite de eșantionare și memorare, urmate de circuite de conversie;
preamplificator, circuite de condiționare a semnalului, și una din variantele anterioare.
SAD multi- canal în una din variantele:
cu multiplexarea ieșirilor unor convertoare analog- numerice, fiecare convertor corespunzând unui canal;
cu multiplexarea intrărilor circuitelor de eșantionare- memorare (S/H- sample and hold- engleza);
sisteme de achiziție destinate multiplexării semnalelor de nivel scăzut.
1. 2 Eșantionarea și filtrarea semnalelor. Modurile de stocare a informației audio in calculator
1.2.1 Eșantionarea și filtrarea semnalelor
Un semnal f(t) poate fi numit semnal analogic sau semnal continuu în timp dacă este definit pentru toate valorile variabilei continue t.
Dacă, în schimb, semnalul respectiv este definit doar pentru valori discrete ale variabilei t, atunci el poate fi numit semnal discret în timp sau semnal analogic eșantionat.
Dacă în plus față de a fi discret în timp, valoarea unui semnal poate lua la un moment arbitrar de timp doar anumite valori într-un domeniu discret, și fiecare din aceste valori poate fi reprezentată matematic printr-un cod (de ex. cel binar), atunci se poate spune că semnalul respectiv este un semnal digital.
Pentru ca un semnal analogic să poată fi acceptat spre prelucrare de un sistem digital, el trebuie în prealabil convertit de la formatul analogic la cel digital. Echipamentul care efectuează această operație se numește convertor analog-digital (CAD, sau DAC – Digital to Analog Converter).
Conversia A/D este un proces care implică trei operații:
– eșantionarea, care transformă semnalul analogic x(t) într-un semnal analogic eșantionat x(nT), caracterizat prin variații ale valorii sale doar la momente discrete de timp
– cuantizarea, operație prin care semnalul analogic eșantionat este cuantizat în amplitiudine, alocându-i-se o valoare dintr-un set finit de valori discrete (se obține semnalul xq(nT)). Cuantizarea este un proces ireversibil, valopravegheate:
monocanal, cu una din variantele:
numai circuite pentru conversia directă a semnalului;
preamplificator urmat de circuitele de conversie;
preamplificator, circuite de eșantionare și memorare, urmate de circuite de conversie;
preamplificator, circuite de condiționare a semnalului, și una din variantele anterioare.
SAD multi- canal în una din variantele:
cu multiplexarea ieșirilor unor convertoare analog- numerice, fiecare convertor corespunzând unui canal;
cu multiplexarea intrărilor circuitelor de eșantionare- memorare (S/H- sample and hold- engleza);
sisteme de achiziție destinate multiplexării semnalelor de nivel scăzut.
1. 2 Eșantionarea și filtrarea semnalelor. Modurile de stocare a informației audio in calculator
1.2.1 Eșantionarea și filtrarea semnalelor
Un semnal f(t) poate fi numit semnal analogic sau semnal continuu în timp dacă este definit pentru toate valorile variabilei continue t.
Dacă, în schimb, semnalul respectiv este definit doar pentru valori discrete ale variabilei t, atunci el poate fi numit semnal discret în timp sau semnal analogic eșantionat.
Dacă în plus față de a fi discret în timp, valoarea unui semnal poate lua la un moment arbitrar de timp doar anumite valori într-un domeniu discret, și fiecare din aceste valori poate fi reprezentată matematic printr-un cod (de ex. cel binar), atunci se poate spune că semnalul respectiv este un semnal digital.
Pentru ca un semnal analogic să poată fi acceptat spre prelucrare de un sistem digital, el trebuie în prealabil convertit de la formatul analogic la cel digital. Echipamentul care efectuează această operație se numește convertor analog-digital (CAD, sau DAC – Digital to Analog Converter).
Conversia A/D este un proces care implică trei operații:
– eșantionarea, care transformă semnalul analogic x(t) într-un semnal analogic eșantionat x(nT), caracterizat prin variații ale valorii sale doar la momente discrete de timp
– cuantizarea, operație prin care semnalul analogic eșantionat este cuantizat în amplitiudine, alocându-i-se o valoare dintr-un set finit de valori discrete (se obține semnalul xq(nT)). Cuantizarea este un proces ireversibil, valorile inițiale ale eșantioanelor nemaiputând fi recuperate din semnalul cuantizat, decât cu o anumită eroare (eroarea de cuantizare)
– codarea, care constă în atribuirea unui cod binar fiecărui eșantion din semnalul cuantizat. Semnalul digital obținut va fi notat în continuare cu xd(t).
Blocurile care efectuează cele trei operații implicate în conversia A/D se numesc eșantionor, cuantizor, respectiv codor. (figura 1.1).
Figura 1.1 Schema bloc principală a convertorului A/D
În structura convertoarelor analog-digitale, nu întotdeauna cele trei module funcționale pot fi proiectate separat , motiv pentru care schema din figura 1.1 este mai degrabă funcțională decât structurală. Pe de altă parte, această separare funcțională ușurează procesul de analiză.
1. Procesul de eșantionare. Semnalul analogic, x(t), este eșantionat discretizând timpul cu o perioadă de eșantionare Te. Elementul care realizează această operație este reprezentat printr-un întrerupător cu funcționare ciclică, având perioada Te (figura 1.2). La ieșirea elementului E (de eșantionare) se obține semnalul eșantionat, adică șirul {x(iTe}, i= 0,1,2,3….
x(t) E x*(t) x(iTe)
Te
Figura 1.2 Element de eșantionare
Reprezentarea semnalului x(t) doar prin valori ale sale la momente discrete de timp implică riscul ca evenimente care apar între două momente consecutive de eșantionare să fie pierdute.
Ca urmare a operației de eșantionare apare ca evidentă necesitatea stabilirii condițiilor în care un semnal continuu poate fi complet definit prin eșantioanele sale, cu alte cuvinte, condițiile în care acesta poate fi refăcut fără nici o pierdere de informații din aceste eșantioane.
În acest sens, există teorema eșantionării a lui Shannon, care stabilește că o funcție s(t) de bandă limitată F (nu conține componente spectrale peste frecvența F hertzi), este complet definită de eșantioanele sale echidistante, prelevate cu o frecvență de cel puțin W=2F hertzi.
Teorema lui Shannon se poate enunța într-o manieră echivalentă:
Un semnal x(t) al cărui spectru este limitat superior de către frecvența ωM=2*π*fM este complet determinat de seria de valori x(kTe), dacă Te≤1/2*fM. În acest caz, procesul de eșantionare nu induce nici o pierdere de informație.
Figura 1.3 Eșantionarea unui semnal analogic
2. Procesul de cuantificare. Pentru pasul de eșantionare s-a considerat până acum că eșantioanele pot fi reprezentate exact, indiferent de valoarea acestora. Având în vedere însă scopul primordial al operației de conversie analog-digitală, și anume acela de a introduce semnalul într-un sistem de prelucrare digital, această presupunere nu este tocmai conformă cu realitatea, sistemele digitale neputând prelucra semnale cu valori într-un domeniu continuu.
Prin cuantizare, fiecărui eșantion i se alocă o valoare dintr-un set finit de valori. Se alege un pas de cuantizare ( distanța dintre două nivele consecutive de cuantizare este numit pas de cuantizare ), , astfel încât rezultatul cuantificării să fie un număr întreg, q, iar produsul q* să fie cel mai apropiat de amplitudinea cuantificată. Dacă pasul de cuantizare este constant, atunci cuantizarea este uniformă, în caz contrar cuantizarea fiind neuniformă. În cazul cuantizării uniforme, nivelul semnalului de la ieșirea cuantizorului este multiplu al pasului de cuantizare, în tip ce la cuantizarea neuniformă nivelul semnalului de ieșire este o funcție monotonă de întregi care pot avea orice valoare. Majoritatea convertoarelor A/D lucrează cu cuantizare uniformă.
La ieșirea CAN se obține un șir de valori numerice, care sunt prelucrate prin mijloace software.
Semnalul eșantionat este definit numai la momentele discrete kTe. În consecința se pot adopta notațiile:
x(kTe)=xk=x(k)
3. Codarea. Codarea este etapa de alocare a unui număr finit de biți fiecărui nivel de reprezentare, deci fiecărui eșantion al semnalului. Această operație se execută conform unui anumit cod binar folosit pentru reprezentarea digitală a datelor. Convertoarele A/D utilizează codarea simplă, considerând simbolurile echiprobabile. Ca atare, convertoarele A/D respectiv D/A folosesc coduri uniforme simple. Pentru mărimi pozitive se folosesc coduri unipolare (fără semn), iar pentru cele cu semn se folosesc coduri bipolare (cu semn).
1.2.2 Transformata Fourier a semnalelor discrete
Transformata Fourier a unui semnal discret x[n] este o funcție X : RC, definită de :
X()=x[n]e-jn .
Se va nota X()=TF(x[n]). Transformata Fourier este o funcție periodică cu perioada 2 și de aceea este suficientă studierea transformatei Fourier a unui semnal doar în intervalul [-,]. Nu orice semnal x[n] are o transformată Fourier definită pe întreg intervalul [-,], deoarece seria poate fi și divergentă. O condiție suficientă de convergență este ca semnalul x[n] să fie absolut sumabil și în consecință X() va exista pentru orice . Transformata Fourier este utilă atunci când dorim să analizam spectrul unui semnal. Relația de mai sus poate fi utilizată pentru evaluarea spectrului în orice punct [0,2]. Totuși un mod de calcul mai eficient, prin care se obține spectrul doar în N puncte echidistante, se bazează pe transformata Fourier discretă.
Transformata Fourier rapidă ( FFT- Fast Fourier Transform) este numele generic pentru o clasă de algoritmi rapizi de calcul al transformatei Fourier discrete(TFD), pentru semnale cu suport finit. Numele de FFT provine din complexitatea de operații aritmetice necesare calcului TFD al unui semnal cu N eșantioane.
Transformata Fourier inversă (IFFT), care asociază unei funcții X() semnalul x[n]( a cărui transformata Fourier este X()) este:
x[n]=
Forma transformatei Fourier inversă sugerează semnificația transformatei Fourier a unui semnal: X(), [-,], reprezintă conținutul în frecvență al semnalului x[n]. Funcția complexa X() este numită spectrul semnalului x[n]; este amplitudinea (magnitudinea) spectrului, iar argX() este faza spectrului. De asemenea, este denumita densitate de energie spectrală.
Vom nota cu TFDN(.) transformata Fourier discretă a unui semnal cu suport de lungime N si vom prezenta mai jos doi algoritmi de tip FFT, bazați pe ideea de decimare, adică de reducere a calculului TFDN(.) la calculul unor TFD de lungime mai mică. Pentru simplitate se va considera doar cazul practic în care N este o putere a lui 2. În acest caz decimarea este de fapt înjumătățire iar calculul TFDN(.) se reduce de fapt la calculul a două transformări TFDN/2(.). Ideea esențială este de a aplica recursiv procedeul de decimare pentru calculul fiecărei TFD de lungime mai mică.
Cele două metode esențiale de decimare sunt:
Decimarea în timp
Decimarea în frecvență
Decimarea în timp
Spargerea calculului TFDN(x[n]), unde x[n] este un semnal cu suport 0: N-1, iar N este putere a lui 2, se face profitând de următoarea separare a relației de definiție:
X[k] == += =+
=+
Pornind de la definiția transformatei Fourier discrete separăm suma în două sume, una corespunzând indicilor pari, cealaltă celor impari. În cea de-a treia relație se exprimă formal separarea prin substituția n=2m, m=0:N/2-1, în prima sumă, și n=2m+1, m=0:N/2-1, în a doua. Trecerea la ultima relație se bazează pe relația evidentă
= e= e=
Din relațiile de mai sus rezultă că TFDN(x[n]) se calculează ca suma a două transformări Fourier discrete a unor semnale cu suport 0:N/2-1, formate din eșantioane pare, respectiv impare, ale semnalului x[n]. Cheia reducerii numărului de operații în algoritmul FFT este utilizarea recursivă a modului de calcul prezentat mai sus pentru calculul fiecărei TFD de lungime mai mică. Așadar se folosesc apeluri recursive pană se ajunge la TFD de lungime 1 când transformata este identică cu semnalul inițial.
Decimarea în frecvență
Calcului transformatei Fourier rapide prin decimarea în frecvență folosește o idee asemănătoare celei folosite pentru decimarea în timp. Dacă la decimarea în timp semnalul x[n] se separă într-o parte pară și una impară, acum separarea se face în transformata Fourier discreta X[k]. Considerând mai întâi indicii pari, k=2l, l=0:N/2-1, se poate scrie:
X[2l] = = +=
=
În linia a doua s-au separat primii N/2 termeni din sumă de ultimii N/2 (făcând substituția nn+N/2), iar în linia a treia am dat factori comuni și am profitat de egalitatea evidentă =1. S-a obținut în final egalitatea:
X[2l] = TFDN/2(x[n]+x[n+N/2], l=0:N/2-1
deci am exprimat jumătatea pară a transformatei X[k] printr-o TFD de lungime N/2 a semnalului u[n]=x[n]+x[n+N/2] obținut din semnalul inițial x[n]. Pentru indicii impari scriem în mod analog:
X[2l+1] = =+
=+
=
1.2.3 Modurile de stocare a informației audio:
Pentru manipularea sunetelor, calculatorul are de rezolvat următoarea problemă: el lucrează intern cu semnale digitale, discrete, iar exteriorul – cu semnale electrice – și neelectrice- analogice. Semnalele electrice ce transportă sunetul, provenite de la un microfon sau acceptate de un difuzor, nu fac nici ele excepție.
Pentru rezolvarea acestei probleme se ocupă o ramură a științei și tehnicii aflată la granița dintre calculatoare și electronică: achiziția și prelucrarea numerică a semnalelor. Rezolvarea constă în conversia analog-numerică și numeric-analogică a semnalelor. Conversia digital-analogică transformă un cod binar într-un semnal analogic de amplitudine proporțională, pe o durată dată de timp. Operația se realizează cu ajutorul unor circuite specializate – convertoarele digital-analogice.
Conversia analog-digitală reprezintă operația reciprocă, și anume cea de transformare a unui semnal analogic în valori binare proporționale cu amplitudinea semnalului la momente de timp bine stabilite
Mărimea fizică corespunzătoare inversului perioadei de eșantionare (te) se numește rată de eșantionare, și pentru a se putea converti corect (fără pierderi sau ambiguitati) un semnal oarecare, va trebui respectata așa-numita "Teorema lui Nyquist": "Rata cu care se va eșantiona un semnal analogic va trebui să fie cel puțin de două ori mai mare decât frecvența maximă a respectivului semnal".
Comparativ cu majoritatea tipurilor de date numerice, cu excepția celor video, ratele de transfer de date asociate informației audio digitale necomprimate, sunt substanțiale. De aceea, compresia informației audio digitale permite manipularea și stocarea mult mai eficientă a sunetului cu ajutorul calculatorului.
O familie de tehnici de compresie digitală a sunetului este dezvoltată în jurul modulației impulsurilor în cod (PCM în limba engleză). Inițial se codifică fiecare eșantion pe un anumit număr de biți (8 în standardele telefonice PCM), însă în acest fel pentru o bandă de 4KHz (frecvența de eșantionare 8KHz) debitul necesar este de 64 Kbps. Pentru a reduce acest debit s-a trecut la DPCM (Differential Pulse Code Modulation) în care se codifică diferența între două eșantioane succesive pe un număr mai mic de biți. Obținerea unui factor de compresie și mai ridicat a impus eliminarea redundanței în mai mare măsură, utilizând corelația între mai multe eșantioane. Astfel s-a dezvoltat ADPCM (Adaptive DPCM) care codifică diferența între fiecare eșantion și un estimator calculat pe baza coeficienților funcției de autocorelație. Termenul de "Adaptiv" este datorat calculului dinamic al funcției de autocorelație într-o fereastră (un număr limitat de eșantioane înaintea eșantionului curent) și reajustării coeficienților de predicție în funcție de acest calcul.
Deși canalele și rețelele de capacitate mare au devenit ușor accesibile, codarea la rate de bit joase a semnalelor audio și-au păstrat importanța. Principalele motivații pentru codarea la rate de bit reduse sunt minimizarea costurilor de transmisie sau realizarea stocării eficiente și cerința de a se transmite pe canale de capacitate limitată, cum ar fi canalele radio mobile. În plus se poate spune că avem nevoie să distribuim capacitatea unui canal pentru diferite servicii cum ar fi voce, audio, date, grafica și imagini, în servicii integrate de rețea și să folosim codări cu viteze variabile în rețele orientate pe pachete.
Principalele medii de stocare a informației audio sunt cuprinse în următorul tabel:
Pe un CD sau pe o casetă audio digitală, semnalele cu o bandă între 10 si 20000Hz sunt stocate cu o rezoluție de 16biti/esantion. La o rată de eșantionare de 44.1kHz, stereo, rezultă o rată de bit netă de 44.1*2*16=1411.2 kbps. CD-ul necesită un surplus semnificativ de biți pentru o codare liniară a șirurilor uniforme, de lungime limitată (runlength-limited line code) care transpune informația din 8 biți în 14 biți pentru sistemul de sincronizare și de corecție a erorilor, rezultând o reprezentare de 49 de biți pentru fiecare eșantion audio de 16 biți. De aici, rata stereo de bit totală este 1.41*49/16=4.32 biți/ eșantion
În domeniul reducerii ratelor de bit, activitățile ISO/MPEG s-au îndreptat inițial către codarea informației audio-vizuale pentru mediile de stocare digitală, cum ar fi discurile magneto-optice, benzile digitale audio, CD-urile read-only și cele interactive.
Un al doilea exemplu de stocare digitală cu compresie audio este MiniDiscul optic sau magneto-optic Sony, de 64mm, care folosește algoritmul de compresie cu transformare adaptivă (ATRAC= Adaptive Transform Acoustic Coding) care operează la 292 kbps pentru stereo. Un al treilea exemplu sunt sistemele de redare audio solid- state cu date comprimate stocate în memorii EPROM, sau cartele inteligente (smart card). Un prototip recent de sistem este Silicon Audio Player al firmei NEC, care utilizează un decodor MPEG-1 pe un singur cip și oferă 24 de minute stereo la rata de bit recomandată de 192kbps.
I. 3. Tipuri de fișiere audio
Sunetele sunt stocate în sistemul de calcul sub formă de fișiere audio. Din punct de vedere istoric, fiecare tip de calculator utiliza propriul format de fișier pentru memorarea informației audio. Totuși, multe din acele formate au fost mai generale, unele devenind, în zilele noastre, pseudo-standarde, datorită răspândirii lor.
1.3.1 Tipuri de fișiere audio- detalii
Există două categorii de formate de fișiere audio:
formate explicite- care includ informații utile și diverși parametri ai sunetului incorporat;
formate primare- în care toți parametrii sunt prestabiliți.
1. Formatele explicite de fișiere audio. Antetul acestui tip de fișiere conține parametrii operației de eșantionare și informații referitoare la tipul codificării datelor audio ce urmează. În următorul tabel este prezentată o scurtă trecere în revistă a celor mai populare astfel de formate de fișiere audio:
Înregistrarea sunetului se va concretiza într-un fișier în care datele sunt organizate după un anumit format propriu respectivului tip de fișier. Pentru sistemul Windows, formatul de fișier cel mai răspândit este WAV, care însă poate fi de mai multe tipuri, depinzând de modalitatea de stocare si codare a informației. Metoda clasică de stocare este cea folosită si pentru stocarea datelor muzicale pe CD-urile audio obișnuite, si anume Linear Pulse Code Modulation. În acest format, pe un CD clasic (650 MB) încap 76 de minute de muzică stereofonică (două canale). Această limită de 76 de minute se spune că a fost impusă de proiectanții inițiali ai sistemului Compact Disc, companiile Philips si Sony, pentru a putea cuprinde integral simfonia a noua a lui Beethoven.
Între timp tehnologia a mai evoluat si datorită progreselor făcute de unitățile de citire si scriere a CD-urilor, durata maximă a unui CD audio a crescut la 80 de minute (720 MB). În rândurile ce urmează sunt prezentate pe scurt câteva dintre cele mai folosite formate audio împreună cu o scurtă descriere si cu extensia fișierului.
Windows PCM (WAV): tip de fișier în care datele sunt organizate conform specificațiilor RIFF. Semnalul este codat PCM si nu este compresat.
Specificările standard Microsoft pentru fișiere .wav (standard Microsoft) recomandă utilizarea a trei frecvențe de eșantionare (11, 025 KHz, 22,050 KHz și 44,1 KHz) a unei mărimi a eșantioanelor de 4, 8 sau 16 biți și utilizarea a unu/două canale. Pe lângă aceste informații, în antetul fișierelor .wav există informații legate de tipul codec-ului (în general firma și identificatorul).
Microsoft ADPCM (WAV): format adoptat de Microsoft în care datele sunt compresate adaptiv (ADPCM = Adaptive Delta Pulse Code Modulation) la 4 biți per canal. La încărcarea fișierului, cei 4 biți sunt expandați la 16, refăcându-se astfel semnalul original. Acest format este folosit la redarea datelor audio ale formatului CD-I (CD Interactive), un format folosit de Philips la începutul anilor 90 ce permite o redare întrețesută a sunetului cu imagini grafice sau video pentru a asigura sincronizarea. Formatul CD-I nu mai este folosit la ora actuală, formatul de fișier însă a supraviețuit.
Sound Blaster Voice File (VOC): format dezvoltat de firma Creative, producătoarea plăcilor de sunet Soundblaster. Formatul suportă doar o rezoluție de 8 biți, mono până la 44,1 Khz, iar stereo până la 22 kHz, fiind conceput pentru stocarea informațiilor vocale.
Next/Sun PCM(AU,SND): formate mai vechi proprii sistemelor de calcul Next si Sun, care însă pot apărea si în Windows. Reprezentarea datelor este tot de tip PCM, compresia fiind de la 16 la 8 biți.
Real Audio (RA,RAM): format conceput pentru un flux continuu de date audio cu o rată constantă, adoptat de firma Real pentru transmisiile de date audio prin Internet. Dispune de diverse rate de transfer (12 kbps, 24 kbps, 36 kbps etc.) în format mono sau stereo. Folosit de majoritatea posturilor de radio ce emit în direct pe Internet.
MPEG Layer I & II (MPx): fișiere codate după considerente psihoacustice ce la ora actuală oferă un maxim de comprimare la o calitate bună a sunetului.
2. Formate fixe de fișiere audio. Acest tip de fișiere nu conțin nici un fel de antet, formatul datelor încorporate fiind fix și prestabilit. Câteva exemple de formate fixe sunt prezentate în tabelul următor:
Pentru interceptarea și interpretarea sunetelor, omul a fost dotat cu un senzor specializat (numit ”ureche”) dar multiplicat cu doi și plasat strategic: simetric, de o parte și de alta a axei de simetrie a corpului, la peste un metru și ceva deasupra pământului, în imediata vecinătate a organului central de prelucrare a informațiilor. Această configurație atribuie sistemului auditiv o calitate în plus: capacitatea de a localiza sursa sunetului.
Sistemele audio se pot clasifica în sisteme audio monofonice (”mono”) și sisteme audio stereofonice (”stereo”).
1.3.2 Sistemul audio monofonic si stereofonic
1. Sistemul audio monofonic definește configurația cu o singură sursă de sunet (figura 8). În cazul echipamentului audio, monofonia înseamnă un singur canal audio și un singur difuzor(figura 1.4).
Schema de principiu a unui sistem audio cu un singur canal cuprinde:
– un circuit de preamplificare, care preia ca intrare un semnal electric provenit de la un microfon, de la un instrument muzical electric (chitara electrică, orgă electrică, etc.) sau de la un dispozitiv electronic de tip înregistrare/redare. Microfonul este un dispozitiv care transformă undele acustice în semnal electric cu caracteristicile de amplitudine și frecventă proporționale cu cele ale sunetului- un traductor, cu alte cuvinte. Principiul de funcționare al microfonului capacitiv se bazează pe conversia energiei undei sonore incidente în energie mecanică prin intermediul unei membrane elastice foarte fine (diafragma). De membrană este fixat capătul mobil al unui condensator variabil care convertește oscilațiile mecanice ale membranei în oscilații electrice.
– circuitul de amplificare, care în majoritatea cazurilor oferă două posibilități de ajustare: ”volum”- mărește/micșorează amplitudinea semnalului electric care va produce sunetul, controlând astfel intensitatea undei sonore rezultate și ”tonalitate”- influențează acuitatea sunetului rezultat, lăsând să treacă doar o bandă limitată din totalul frecventelor ce compun sunetul original (joase, medii, înalte, etc.).
– difuzorul- dispozitivul care transformă semnalul electric în undă sonoră. Ca principiu de funcționare, difuzorul folosește un electromagnet a cărui bobină este fixată de o membrană elastică. Când prin spirele electromagnetului circulă semnal electric ce reprezintă un anumit sunet, bobina antrenează membrana care la rândul ei antrenează aerul din incinta acustică, producându-se sunetul dorit.
Difuzor medii
Difuzor înalte
Difuzor basi
Figura 1.4 Sistemul audio monofonic
În configurația mono, ascultătorul nu beneficiază de avantajul dispunerii simetrice a receptorilor (urechilor), nici de faptul că sunt o pereche (la fel de bine s-ar recepta doar cu o singură ureche). Ascultătorul poate intui direcția sursei de sunet și –ceva mai greu- distanța până la aceasta.
2. Sistemul audio stereofonic (”stereo”) definește configurațiile cu mai mult de o sursă de sunet, și deci cu mai mult de un canal audio- uzual două (figura 1.5).
Configurația stereo impune în primul rând condiția ca boxele difuzoare să fie de aceeași capacitate acustică și să se afle la distanțe egale față de ascultător. Sistemele stereo exploatează din plin autonomia audio a omului. Ascultătorul nu mai percepe sursa de sunet ca fiind boxele de difuzoare, ci chiar sursele originale. De asemenea, se creează senzația de adâncime, de spațiu sonor. Dacă sistemul este bine calibrat, sunetul stereo dă ascultătorului senzația că se află chiar la fața locului unde s-a înregistrat, de exemplu, concertul ascultat. Stereofonia permite crearea de diverse efecte sonore, senzația de deplasare, etc.
Figura 1.5 Sistemul audio- stereofonic
Bibliografie
Compresia semnalelor, Autor: Nikil Jayant, Editura Teora, 2001, București
Semnale, circuite și sisteme- Partea I Analiza semnalelor, Autori- Emil Ceanga, Iulian Munteanu, Antoneta Bratcu, Mihai Culea
Curs de Compresia și securitatea datelor, Autor- Aiordachioaie Dorel
Semnale și sisteme – Aplicații in filtrarea semnalelor, Autori: Adelaida Mateescu, Neculai Dumitriu, Lucian Stanciu
Prelucrarea semnalului vocal, Autor: Mircea GIURGIU
Inginerie Software, Autor: Cornelia Istode Novac, Editura Tehnica, Bucuresti, 1999
http://vega.unitbv.ro/~popescu/mm/sunet.html
http://dsplabs.utt.ro/~micha/publications/pdfs/MultimediaSunet.pdf
http://psig.go.ro/PS_Cap5.doc
http://www.eed.usv.ro/lab/e202/proiect/cata_ia/files/avipro.htm
http://www.usm.md/do/do_rom/Tema1%20Mijloace%20multimedia.htm#AUDIO
http://www.comm.pub.ro/test/curs/pns/cursuri/capitolul1.pdf
http://www.schur.pub.ro/
http://www.euro.ubbcluj.ro/~alina/cursuri/internet-teorie/10-1.htm
http://www.svedu.ro/curs/informatica_ddanciulescu.pdf
http://www.svedu.ro/eucebs/itc/ghid_dictionar.pdf
http://hermes.etc.utt.ro/cercetare/teze.html
http://www.soundslogical.com/support/mpacks/documentation/english/documentparts/wavinfo.html#TopOfPage
=== Anexa 1 ===
Anexa 1
Fourier.m
clc; clear;clf;
T = 1;
for fs = 8000,
ts=1/fs;
N=1024;
t = 0:ts:T;
x = 30*sin(2*pi*50*t)+20*sin(2*pi*100*t)+10*sin(2*pi*150*t)+5*sin(2*pi*200*t);
xmax = max(max(abs(x)));
x = x./xmax;
figure(1);
subplot(311), plot(t,x), title('Semnalul original x'),xlabel('Timp(secunde)');
subplot(312), plot(t(1:1000),x(1:1000)), title('Semnalul original x (ZOOM)'),xlabel('Timp(secunde)');
X = fft(x,N);
%densitatea spectrala de putere pentru X.
Pxx = X.*conj(X)./ N;
f = fs/N *(0:N/2-1);%se formeaza o axa a frecventelor
subplot(313), plot(f(1:50),Pxx(1:50)), title('Densitate spectrala de putere pentru X'),
xlabel('Frecventa (Hz)'),
pause;
figure(2);
A_noise = 0.2; % se raporteaza la valoarea 1….;
%se adaugă un zgomot la semnalul nostru si se obține semnalul y;
y = x + A_noise*randn(size(t));
subplot(311), plot(t,y), title('Semnalul cu zgomot y'), xlabel('Timp(secunde)');
subplot(312), plot(t(1:1000), y(1:1000)), title('Semnalul cu zgomot y(ZOOM)'),xlabel('Timp(secunde)');
Y = fft(y,N);
%densitatea spectrala de putere.
Pyy = Y.*conj(Y)./N;
f = fs/N*(0:N/2-1);
subplot(313), plot(f(1:50),Pyy(1:50)), title('Densitate spectrala de putere pentru pentru semnalul cu zgomot Y'), …
xlabel('Frecventa (Hz)'), pause
figure(3);
ix = ifft(X,N); ix=real(ix);
it = (0:(length(ix)-1))*ts;
subplot(211), plot(it,x(1:length(it)),'b', it,ix(1:length(it)),'r');
title('IFFT pentru X'), xlabel('Timp (secunde)')
iy=ifft(Y,N); iy=real(iy);
subplot(212), plot(it,y(1:length(it)),'b', it,iy(1:length(it)),'r');
title('IFFT pentru Y'); xlabel('Timp (secunde)'),
end;
save Fourier2.mat
Fourier_decim.m
load Fourier2.mat;
figure(4);
n=N;
J=[];
for pasdec =[10 8 6 4 2] ,
Xdec = zeros(size(X));
for i=1:pasdec:length(X),Xdec(i)=X(i);end;
f=f(1:125);
figure(4)
subplot(311), stem(f,abs(X(1:length(f))),'b');title('Spectru de amplitudine pentru X'),xlabel('Frecventa(Hz)');
subplot(312), stem(f,abs(Xdec(1:length(f))),'r');title('Spectru de amplitudine pentru Xdec'),xlabel('Frecventa(Hz)');
subplot(313), stem(f,abs(X(1:length(f))),'b');
hold on;stem(f,abs(Xdec(1:length(f))),'r');title('Spectrul de amplitudine pentru X si Xdec'),xlabel('Frecventa(Hz)');
figure(5);
subplot(311), stem(f(1:75),abs(X(1:75)),'b');title('Spectru de amplitudine pentru X(ZOOM)'),xlabel('Frecventa(Hz)');
subplot(312), stem(f(1:75),abs(Xdec(1:75)),'r');title('Spectru de amplitudine pentru Xdec(ZOOM)'),xlabel('Frecventa(Hz)');
subplot(313), stem(f(1:75),abs(X(1:75)),'b');
hold on;stem(f(1:75),abs(Xdec(1:75)),'r');title('Spectrul de amplitudine pentru X si Xdec'),xlabel('Frecventa(Hz)');
figure(6);
ix = ifft(X,N); ix=real(ix);
ixdec = ifft(Xdec,N); ixdec=real(ixdec);
it = (0:(length(ix)-1))*ts;
subplot(311), plot(it,ix(1:length(it)),'b');title('IFFT pentru X'),xlabel('Timp(secunde)');
subplot(312), plot(it,ixdec(1:length(it)),'r'); title('IFFT pentru Xdec'),xlabel('Timp(secunde)');
subplot(313),plot(it,ix(1:length(it)),'b', it,ixdec(1:length(it)),'r');
title('IFFT pentru X si Xdec'), xlabel('Timp (secunde)')
J =[J sum((ix-ixdec).^2)./N];
pause;
end;
figure(7);
bar([10 8 6 4 2] ,J), title('Criteriul de aproximare J'), xlabel('Pas de decimare');
Rezultate experimentale
În continuare sunt prezentate figurile ce rezultă în urma rulării programului :
Pentru prima parte a programului figurile evidențiază faptul că în urma aplicării transformatei Fourier inverse asupra unui semnal reprezentat în domeniul frecvență ( după ce am aplicat transformata Fourier directă asupra semnalului nearmonic, suma mai multor semnale armonice), ceea ce obținem trebuie să corespundă și să fie identic cu semnalul original.
Pentru a doua parte a programului sunt prezentate figurile ce rezultă în urma rulării programului cu pasul de decimare 6.
În figura 1, este reprezentat semnalul original x, semnalul original x pe un domeniu de timp mai mic și densitatea spectrală de putere pentru acest semnal.
În figura 2, apare semnalul cu zgomot y, precum și densitatea spectrală de putere pentru acesta.
În a treia figură, figura 3, sunt reprezentate semnalele rezultate în urma aplicării transformatei Fourier inverse asupra semnalelor X și Y.
Figura 1
Figura 2
Figura 3
În urma rulării cu pas de decimare 6 se obțin următoarele figuri:
Figura 4
Figura 5
Figura 6
În figura 4 și 5 este reprezentat spectru de amplitudine pentru X și Xdec, în prima figură, pe tot domeniul, în a doua doar pe o porțiune din domeniul de frecvență.
În figura 6 sunt reprezentate semnalele x și ix, adică semnalele obținute în urma aplicării transformatei Fourier inverse asupra lui X, respectiv Xdec, observându-se diferențele care apar în urma decimării.
Criteriul de aproximare este reprezentat în figura 7, pentru pașii de decimare 2, 4, 6, 8, 10.
Figura 7
=== anexa 2 ===
Anexa 2
audio.m
clc; clear;clf;
ver_set = {'vorbire', 'melodie'};
%ver = 'vorbire';
ver = 'melodie';
switch ver,
case 'melodie', file = 'drums.wav';
case 'vorbire', file = 'wavewarp.wav';
end;
N=1024;
n=N;
T = 1;
for fs = 8000,
ts=1/fs;
%compression = 'wavewarp';
compression = 'drums';
[xs,fs,nbits]=wavread(file);
%info=wavinfo(file);
[m,m1] = size(xs);
if (m1 == 2), % stereo
x1=xs(:,1); x2=xs(:,2); x=(x1+x2)/2;
else
x = xs; %mono
end;
N=length(x); ts=1/fs; t=0:ts:(N-1)*ts;
figure(1);
subplot(211), plot(t,x),grid, title('Semnalul original x'), xlabel('Timp (secunde)');
X = fft(x,N);
%densitatea spectrala de putere pentru X.
Pxx = X.*conj(X)./ N;
f = fs/N *(0:N/2-1); %se formeaza o axa a frecventelor
%df=fs/N;
subplot(223), plot(f,Pxx(1:length(f))),grid,
title('Densitate spectrala de putere pentru X'),
xlabel('Frecventa (Hz)'),
subplot(224), plot(f(1:4000),Pxx(1:4000)),grid,
title('Densitate spectrala de putere pentru X(Zoom)'),
xlabel('Frecventa (Hz)'),
figure(2);
ix = ifft(X,N); ix=real(ix);
it = (0:(length(ix)-1))*ts;
subplot(211), plot(t, x(1:length(t)),'b') ,grid; title('Semnalul original x'),xlabel('Timp(secunde)')
subplot(212), plot(it,ix(1:length(it)),'r'), grid; title('Semnalul ix = IFFT pentru X'), xlabel('Timp (secunde)');
pause;
end;
save Fourier2.mat
audio_decim.m
load Fourier2.mat
n=N;
J=[];
for pasdec=[10 8 6 4 2];
Xdec=zeros(size(X));
for i=1:pasdec:length(X), Xdec(i)=X(i); end;
f=f(1:5000)
figure(3);
subplot(211), stem(f,abs(X(1:length(f))),'b');title('Spectrul de amplitudine pentru X'),xlabel('Frecventa(Hz)');grid;
subplot(212), stem(f,abs(Xdec(1:length(f))),'r');title('Spectrul de amplitudine pentru Xdec'), xlabel('Frecventa(Hz)');grid;
figure(4);
subplot(211), stem(f(20:150),abs(X(20:150)),'b');title('Spectrul de amplitudine pentru X(ZOOM)'),xlabel('Frecventa(Hz)');grid;
subplot(212), stem(f(20:150),abs(Xdec(20:150)),'r');title('Spectrul de amplitudine pentru Xdec(ZOOM)'), xlabel('Frecventa(Hz)');grid;
figure(5);
subplot(211), stem(f,abs(X(1:length(f))),'b');
hold on;stem(f,abs(Xdec(1:length(f))),'r');title('Spectrul de amplitudine pentru X si Xdec'), xlabel('Frecventa(Hz)');grid;
subplot(212), stem(f(1:200),abs(X(1:200)),'b');
hold on;stem(f(1:200),abs(Xdec(1:200)),'r');title('Spectrul de amplitudine pentru X si Xdec(ZOOM)'), xlabel('Frecventa(Hz)');grid;
ix=ifft(X, N), ix=real(ix);
ixdec=ifft(Xdec, N), ixdec=real(ixdec);
it = (0:(length(ix)-1))*ts;
figure(6);
subplot(221), plot(it,ix(1:length(it)),'b');title('IFFT pentru X'), xlabel('Timp(secunde)'), grid;
subplot(223), plot(it(1:10000),ix(1:10000),'b'), title('IFFT pentru X(ZOOM)'), xlabel('Timp(secunde)'),grid,
subplot(222), plot(it,ixdec(1:length(it)),'r'); title('IFFT pentru Xdec'),xlabel('Timp(secunde)'), grid;
subplot(224), plot(it(1:10000),ixdec(1:10000),'r'), title('IFFT pentru Xdec(ZOOM)'),xlabel('Timp(secunde)'), grid;
figure(7);
subplot(211),plot(it,ix(1:length(it)),'b', it,ixdec(1:length(it)),'r'), title('IFFT pentru X si Xdec'), xlabel('Timp (secunde)'), grid,
subplot(212),plot(it(1:16000),ix(1:16000),'b',it(1:16000),ixdec(1:16000),'r'),title('IFFT pentru X si Xdec (ZOOM) '), xlabel('Timp (secunde)'), grid,
J =[J sum((ix-ixdec).^2)./N];
end;
figure(8);
bar([10 8 6 4 2], J), title('Criteriul de aproximare J'), xlabel('Pas de decimare');
%din vectorul Xdec se pastreaza doar componentele diferite de zero, adica toate in afara de cele care au fost facute zero din pas in pas;
%se reface Xdec prin reducerea numarului de esantioane;
i=find(Xdec~=0);
n1 = length(i);
Xdec1 = Xdec(i);
figure(9);
subplot(311), stem(f(20:150),abs(X(20:150)),'b');title('Spectrul de amplitudine pentru X'),xlabel('Frecventa(Hz)');grid;
subplot(312), stem(f(20:150),abs(Xdec(20:150)),'b');title('Spectrul de amplitudine pentru Xdec'), xlabel('Frecventa(Hz)');grid;
df=fs/n1; %ecartul in frecventa
f = df *(0:n1/2-1); %axa frecventei
subplot(313), stem(f(20:100),abs(Xdec1(20:100)),'r');title('Spectrul de amplitudine pentru Xdec1'), xlabel('Frecventa(Hz)');grid;
ixdec1=ifft(Xdec1,n1), ixdec1=real(ixdec1);
dt=ts*n1; %ecartul in timp
itdec=ts*(0:n1-1); %axa timpului
%se calculeaza rata de compresie
switch ver,
case 'melodie', marime_pe_hard = 230000; %Bytes
case 'vorbire', marime_pe_hard= 449000;
end;
marime_intrare=N*16/8
dim_header=marime_intrare-marime_pe_hard
marime_iesire=N/pasdec*2
rata_compresie=marime_intrare/(dim_header+marime_iesire)
file = strcat(compression,'_compr_',ver, '.wav');
wavwrite(ixdec1,fs,file);
=== Capitolul 2-Metode de compresie ===
Capitolul 2
Metode de compresie
Compresia semnalelor de date este o parte integrantă a teoriei informației. În particular, domeniul teoriei ratei de distorsiuni se ocupă de diferite probleme calitative ale codării fără pierderi și cu pierderi, folosind conceptul de entropie a sursei de proces.
Compresia semnalelor a constituit, de asemenea, un subiect principal al procesării vorbirii și imaginilor. Codarea, sinteza și recunoașterea sunt trei domenii cheie de interes în procesarea semnalelor audio vizuale. În cadrul codării, scopul este de a obține o reprezentare digitală compactă a semnalului pentru economia transmisiei sau a stocării. O atenție deosebită în sinteza se dă creării semnalelor corespunzătoare vorbirii sau informației vizuale, pornind mai degrabă de la text decât de la vorbirea umană sau de la o imagine reală, ca în cazul codării. Utilizatorul informațiilor audio- vizuale codate sau sintetizate este omul. Pentru recunoaștere, atenția se îndreaptă asupra intelegerii de către mașină (calculator) a conținutului informației din cadrul semnalului, de obicei pentru a ajuta la îndeplinirea unor sarcini. Fiecare dintre aceste domenii ale procesării semnalelor audio- vizuale sunt în sinergie cu alte domenii. Astfel, de exemplu, codarea și sinteza sunt folosite pentru a construi înregistratoare digitale pe bandă pentru sisteme care răspund la voce; sinteza și recunoașterea asigură sisteme de intercomunicare pentru mașini controlate prin voce; iar recunoașterea și codarea dau informații suplimentare intr-o codare cu o rata de bit foarte redusă.
Cei patru parametri fundamentali ai codării semnalelor sunt calitatea semnalului, rata de bit, întârzierea de procesare și complexitatea implementării.
Rata de bit se exprimă în general în biți pe secundă sau în biți pe eșantion. Numărul de biți pe secundă este pur și simplu produsul dintre rata de eșantionare (măsurata în Hertzi sau în pixeli pe secundă) și numărul mediu de biți pe eșantion, utilizat în sistemul de cuatizare al codorului.
Calitatea semnalului. Dat fiind că judecătorul final al sistemului de compresie al semnalului este observatorul uman, calitatea semnalului audio- vizual este descrisă cel mai bine pe baza unor criterii subiective. Este larg acceptată o scară cu cinci trepte a calității semnalelor, la care se adaugă uneori măsurători de inteligibilitate. Măsurarea subiectivă a calității vorbirii sau a imaginii într-o manieră repetabilă și consecventă este o chestiune dificilă. Măsurătorile calității compozite ale unui semnal audio- vizual reprezintă o problemă cel puțin la fel de dificilă.
Întârzierea procesării este suma întârzierilor care apar în procesele de codare și decodare. La codare, întârzierea este introdusă în procesul de stocare tampon a datelor pentru a fi analizate în vederea reducerii redundanței iar la decodare, întârzierile sunt introduse de operații bazate pe blocuri, cum ar fi transformările inverse și de operații ca interpolarea, pentru a mări frecvența cadrelor în cazul imaginilor.
Complexitatea este măsurată atât prin procesele aritmetice necesare algoritmului (de obicei măsurate în ’mips’ – milioane de instrucțiuni pe secundă), cât și prin cerințele de memorie (măsurate de obicei în kiloocteți de ROM sau RAM). Folosirea mips ca măsură a complexității este în mod particular adecvată pentru implementări de uz general, sau pentru calculatoare. Complexitatea este un parametru important de performantă din cel puțin două motive: nevoia de a minimiza costul și cerința de minimizare a puterii disipate.
2.1 Enumerarea și descrierea unor metode de compresie
Între codarea vorbirii și a semnalului audio exista atât diferențe cât și asemănări. Diferențele constau în faptul că, spre deosebire de codarea vorbirii, codarea audio implică rate de eșantionare mai mari, o rezoluție în amplitudine mai bună, gamă dinamica mare, variații mari în spectrul de putere, reprezentare stereo și multicanal, deci, în concluzie, calitate mai bună. Pentru arhivarea și stocarea semnalelor audio se folosesc rate de eșantionare mai mari și rezoluții de amplitudine de 24biti/eșantion nu folosesc compresia cu pierdere de informație. Pe de altă parte, vorbirea poate fi codată foarte eficient datorită folosirii unui model de producere a sunetului, pe când semnalele audio nu pot dispune de așa ceva. Codarea vorbirii și codarea audio sunt similare în sensul ca ambele se bazează pe proprietățile percepției audio umane (vezi 2.2).
Pentru compresia semnalelor audio se folosesc algoritmi care au la bază patru tehnologii: codarea perceptuală, decimarea în frecvență (frequency- domain coding), comutarea ferestrelor (window switching) și cea mai nouă metodă, pe care o vom descrie prima este tehnologia AC3 sau Dolby Digital.
Compresia surselor audio va fi denumită, în continuare, din motive de simplitate, codare. Schema de bază pentru un sistem de transmisiune audio cu codare-decodare este prezentată în figura 2.1. Semnalul analogic este eșantionat și codat într-o secvență de simboluri binare. Această secvență este transmisă sau memorată. Pentru refacerea informației de bază, se aplică transformarea de decodare. Ultima transformare se referă la refacerea semnalului audio de urechea umană.
Figura 2.1 – Sistemul de bază pentru un sistem codec-audio
Schema de bază a unui codor-decodor audio, bazat pe model, este prezentată în figura 2.2. Se remarcă existenta a doua piese de bază la partea de codare:
Un bloc pentru transformarea semnalului într-o reprezentare care modelează precis sursa;
Un model care modelează acusto-fiziologic (psihoacustic, în engleză) aparatul auditiv. Acesta furnizează o aproximare a mecanismelor de percepție ale urechii umane.
Cele două blocuri (transformări) determină mărimea reducerii ce poate fi obținută prin procesul de codare.
Figura 2.2 – Structura de bază a unui codor – decodor audio
În etajul de reprezentare al semnalului are loc reducerea redundanței semnalului. În codarea vorbirii, un model fizic al tractului vocal este folosit pentru definirea parametrilor vorbirii. Acești parametrii, împreună cu informația reziduală, sunt codați. În timp ce aceasta tehnică permite obținerea unor rapoarte de compresie foarte mari, nu este foarte eficientă cu semnale muzicale pentru că este foarte dificil să se modeleze bine toate sursele posibile de muzică.
În codarea audio, reprezentarea din domeniul timp a semnalului este tipic transformată într-o reprezentare timp-frecvență cu ajutorul unui filtru banc (cascadă de filtre). În acest caz, ieșirile din domeniul frecvență ale bancului de filtre furnizează reprezentarea primară a semnalului. Această organizare este prezentată în figura 2.3.
Urechea umană realizează o analiză Fourier echivalentă cu un bank (lanț) de filtre, unde transformarea frecvențelor de lucru în „lucru mecanic” are loc în membrana basilară. Spectrele de putere nu sunt reprezentate pe o scară liniara a frecvențelor, ci pe benzi de frecvența limitate, denumite benzi critice.
Sistemul auditiv poate fi descris ca un banc de filtre trece bandă, a căror caracteristică amplitudine – frecvență se suprapun. Filtrele au banda de ordinul 50-100 Hz pentru frecvențe mai mici de 500 Hz și de până la 5000 Hz pentru semnale de frecvență mai mare. În gama audio, se pot defini astfel 26 benzi critice acoperind intervalul de frecvență de până la 24 KHz.
Figura 2.3 – Folosirea bancului de filtre pentru analiză și sinteză
Ipoteza generală este că semnalele audio sunt cvasi-staționare, deci, o corespondență în domeniul frecvență rezultă într-o reprezentare a semnalului care este mai eficientă decât PCM directă. Cu cât fereastra de analiză este mai mare cu atât presupunerea este mai bună. În general, se face un compromis între o codare de eficiență înaltă, dată de un bank de filtre cu înaltă rezoluție, obținută în etajul de reprezentare a semnalului și costul memoriei/întârzierii necesară întregului sistem de codare. Cercetările din domeniul rezoluției spectrale au arătat că o alegere bună pentru o rezoluție de frecvență este de 20 Hz ce corespunde unei rezoluții în domeniul timp de 25ms.
Bancuri de filtre variante în timp sunt des utilizate pentru a evita împrăștierea zgomotului de cuantizare în timp în semnalul reconstituit. Aceste metode permit bancului de filtre să se adapteze la o rezoluție de timp mărita, tipic egala cu 5ms, în prezența unui tranzient (impuls).
2.1.1 Tehnologia de compresie AC3
În compact-discurile audio, înregistrarea semnalului se face prin preluarea câte unui eșantion de sunet pe 16 biți, iar redarea, în sistem stereo, se face cu două eșantioane simultan la o frecvență de 44,1 kHz. Printr-o simpla înmulțire rezultă că ar fi nevoie de 1,41 Mbiți de memorie de stocare pentru fiecare secundă de semnal audio. Pentru aplicații cu lățime de bandă sau capacitate de stocare limitată, transmiterea unui număr mai mare de două canale audio în format CD este ineficientă. Astfel a fost conceput un algoritm de compresie audio care permite o transmisie de înaltă calitate pe mai multe canale, denumit AC-3 sau Dolby Digital. Tehnologia AC-3 este folosită în televiziunea de înaltă definiție (HDTV), în sistemele de tip home-theater sau movie-theater se poate codifica semnal audio cu până la șase canale: dreapta, stânga, centru, surround-dreapta, surround-stânga și efecte de frecvență joasă (similare cu un subwoofer). Această configurație este considerată a fi de 5,1 canale, deoarece efectele de frecvențe joase necesită mult mai putină lățime de bandă decât celelalte căi. Pentru transmisia pe cele 5,1 canale, AC-3 necesită numai 384 Kb/s.
AC-3 este capabil să reducă numărul de biți folosit pentru reprezentarea semnalului audio printr-o schemă de compresie și rejecție. Rejecția constă în faptul că o parte din informația conținută în semnalul audio original este omisă din versiunea sa comprimată, astfel încât semnalul nu este reconstruit cu exactitate. Pentru a alege informația care poate fi eliminată, algoritmul se bazează pe principiile psihoacusticii (percepția umana a sunetului). De exemplu, sunetele care nu pot fi auzite de urechea umană sunt eliminate fără a pierde prea mult din calitatea semnalului redat. De asemenea, unul dintre fenomenele psihoacusticii care stă la baza AC-3 este legat de modul în care urechea umană „aude” diferite frecvențe. Dacă sunetul este separat în frecvențele sale constitutive, acele armonici cu energie relativ scăzută aflate în apropierea altora cu energie semnificativ mai mare sunt mascate de acestea din urmă și nu sunt percepute. Mai mult, AC-3 folosește efectul mascării temporale, prin care un sunet puternic maschează sunetele mai slabe care îl preced sau îl succed.
Tehnic, prin algoritmul AC-3, semnalul de intrare este transformat din domeniul timpului în domeniul frecvențelor înainte de a fi comprimat. Algoritmul de transformare cuprinde o serie de operații de multiplicare-acumulare (MAC), generând o serie de coeficienți ce reprezintă contribuția energetică relativă a fiecărei armonici la semnalul preluat. Acești coeficienți sunt codificați pe un număr variabil de biți. Pentru frecvențele psihoacustic mascate, algoritmul alocă un număr mic (sau zero) de biți, frecvențele dominante vor fi reprezentate pe un număr mai mare de biți. Decodorul va trebui, prin urmare, să primească în afară de coeficienți și modul în care aceștia au fost codificați. Coeficienții de ieșire sunt reprezentați prin blocuri de numere in virgulă mobilă, pentru a păstra digital fidelitatea semnalului. Formatul de tip „block-floating-point” permite extinderea dinamicii unui procesor de virgulă fixă prin examinarea unui grup (bloc) de numere și determinarea celui mai apropiat exponent care poate fi asociat cu întreg grupul. Odată determinate, mantisele sunt reprezentate folosind schema de alocare variabilă a biților, iar exponenții sunt reprezentați cu un număr fix de biți.
Fiecare bit din fluxul de biți este folosit pentru a maximiza compresia. Uneori, două sau mai multe mantise de valori mici pot fi grupate într-un singur cuvânt de cod. Datorită numeroaselor trucuri aplicate compresiei de date, la nivelul decodorului sunt implementate programe de analiză decizională pentru descifrarea informației. De exemplu, software-ul trebuie să determine dacă un cuvânt conține una sau mai multe mantise și să înceapă decodarea corespunzătoare.
Codarea include transformarea în domeniul frecvențelor, determinarea alocării biților folosind analiza spectrală și modelarea psihoacustică, urmate de transferul în flux de biți. La nivelul decodorului, sarcinile sunt similare dar efectuate în ordine inversă: „despachetarea” fluxului de biți, decodarea coeficienților spectrului de frecvență folosind informația despre modul de alocare a biților și convertirea semnalului înapoi în domeniul timpului. Decodorul trebuie totodată să combine mai multe canale într-unul sau două, dacă numărul boxelor este mai mic de șase (așa cum se întâmplă în sistemele audio particulare). Aceste sisteme includ de obicei numai decodorul, întrucât rolul lor este de a reda semnalele audio deja codate.
2.1.2. Codarea perceptuală
Cuantizarea numerică pe un număr mare de biți conservă formele de undă, în sensul că semnalul de la ieșire este apropiat de semnalul de la intrare, ca formă de undă. Diferența formelor de undă, de la ieșire și de la intrare constituie criteriul eroare pentru proiectarea circuitului de cuantizare.
Când cuantizarea se realizează cu număr mic de biți (număr mic de simboluri binare), în proiectarea codorului trebuie să se includă informație despre producerea și percepția semnalelor audio, astfel încât semnalul de ieșire poate să difere mult de semnalul de intrare, însă efectul acestora asupra urechii umane să fie același.
În principiu, un algoritm de codare eficientă a sursei va:
îndepărta componentele redundante ale sursei de semnal prin exploatarea corelațiilor dintre eșantioane.
îndepărta componentele care nu sunt percepute de urechea umană. Irelevanța se manifesta ca o amplitudine ne-necesară sau ca o rezoluție în frecvență. Porțiunile de semnal care sunt mascate nu trebuie transmise.
În figura 2.4 se prezintă structura unui codor bazat pe percepția urechii care folosește mascarea auditivă. Procesul de codare este controlat de SMR ca și curba de frecvență, din care rezoluția în amplitudine necesară (numărul de nivele de cuantizare) în fiecare bandă de frecvență este determinată. În mod practic, SMR se calculează dintr-o analiză spectrală în 1024 puncte al blocului audio de codat.
Obs: Mecanismul de mascare audio este unul parțial, în sensul că este determinat pentru surse staționare și mono-ton. Din acest motiv, valorile rezultate din calculul distorsiunii abia perceptibile se consideră cu rezervă. În fapt, modelul perceptual din standardul MPEG-audio nu este standardizat fiind deschis îmbunătățirilor.
Figura 2.4 – Diagrama bloc a codorului bazat pe percepție
2.1.3. Decimarea în frecvență ( codarea domeniului de frecvență)
În domeniul frecvență se poate defini redundanța ca fiind o caracteristică spectrală ascuțită (ne-plată) pe termen scurt a sursei de semnal. Irelevanța înseamnă componente spectrale cu amplitudine mai mică decât pragul psihoacustic. Cele două trăsături (redundanta și irelevanța) sunt folosite pentru a reduce cantitatea de simboluri în raport cu PCM. Acest lucru se obține prin împărțirea spectrului sursei în benzi de frecvență pentru a genera componente spectrale necorelate și prin cuantizarea acestor componente separat. Se folosesc două categorii de codare:
Codarea transformării (TC=transform coding);
Codarea sub-benzii (SBC=subband coding).
Diferențele dintre cele două categorii sunt de ordin istoric. Amândouă utilizează o analiză filterbank în codor pentru a descompune semnalul de ieșire în componente spectrale sub-eșantionate. Componentele spectrale se numesc eșantioane subbandă (subband samples) dacă bancul de filtre are o rezoluție mică; în caz contrar se numesc linii spectrale sau coeficienți de transformare. Aceste componente spectrale sunt recombinate în decodor prin sinteza filtrului bank.
În SBC, sursa de semnal este supusă unei analize filterbank constând din M filtre trece bandă care sunt continue în frecvențe astfel încât mulțimea semnalelor subbandă poate fi recombinat aditiv pentru a produce semnalul original sau o versiune apropiată a acestuia. Fiecare ieșire a filtrului este decimată la limită (adică eșantionată la dublul benzii nominale) cu un factor egal cu M, numărul de filtre trece bandă. Această decimare rezultă într-un număr de eșantioane subbandă ce le egalează pe acelea din semnalul original. În receptor, rata de eșantionare a fiecărei subbenzi este crescută la cea a sursei de semnal prin completarea la un număr apropiat cu eșantioane zero. Semnalele subbandă interpolate apar la ieșirile FTB ale filtrului de sinteză. Procesul de eșantionare poate introduce distorsiune de eșantionare (aliasing distorsion) din cauza suprapunerii subbenzilor. Dacă se folosesc filtre perfecte, (filtre dublu-bandă în cuadratură sau filtre polifazice), termenii aliasing sunt eliminați și suma ieșirilor filtrelor trece bandă este egală cu semnalul de intrare, în absența cuantizarii.
În TC, un bloc de eșantioane de intrare este transformat liniar cu o transformată discretă într-un set de aproape-necorelați coeficienți de transformare. Acești coeficienți sunt cuantizați și transmiși în formă numerică spre decodor. În decodor are loc transformarea inversă, refăcând semnalul în domeniul timp. În absența erorilor de cuantizare sinteza furnizează o reconstrucție exactă. Transformări tipice sunt: transformata Fourier discretă, transformata cosinus discretă (DFT), sau transformata cosinus discretă modificată (MDCT). MDCT (Modified DCT) se bazează pe o suprapunere de 50% a filtrelor succesive de analiză. Efectul constă în obținerea unui câștig mai mare și a unui răspuns al filtrelor individuale mai bun. S-a menționat că decodorul bazat pe transformata inversă poate fi privit ca un filtru bank; răspunsul la impuls al filtrelor trece bandă componente este egal cu secvența transformărilor de bază. Răspunsul la impuls al filtrului bank de analiză este versiunea inversată în timp.
2.1.4 Comutarea/ schimbarea ferestrelor (window switching)
Necesitatea rezultă din dorința folosirii efectului de pre-mascare pentru a anula pre-ecourile care apar la trecerea bruscă de la un domeniu liniștit la unul foarte „zgomotos”. Efectul de pre-mascare poate fi aplicat numai dacă lungimea blocului supus analizei este mic. Pe de altă parte, pentru minimizarea erorilor de cuantizare se dorește folosirea unui bloc mare, ca număr de eșantioane. Lungimile blocurilor sunt cuprinse între 64 si 1024 de eșantioane. Blocurile mici se folosesc numai în perioadele de ne-staționaritate ale semnalului, altfel codorul schimbă mărimea blocului la una maximă. Selecția mărimii blocurilor trebuie realizată pe baza unei operații de analiza a caracteristicilor blocului curent de codare. În figura 2.5 se prezintă principiul schimbării ferestrei. Dacă fereastra conține N=1024 atunci pre-ecourile sunt vizibile(audibile) în timp ce un bloc cu N=256 va reduce aceste efecte.
Figura 2.5 – Efectul comutării ferestrelor
2. 2 Mecanismele percepției audio la om
Sunetul este probabil cel mai elocvent element al unui proiect multimedia, fie că este o voce explicând o diagramă, un fundal muzical sau diverse efecte speciale sonore. O aplicație complexă fără sunet este la ora actuală la fel de stranie ca și un televizor alb-negru. O parte audio de calitate poate constitui diferența între o prezentare sau un proiect multimedia de calitate și unul mai puțin reușit.
Considerente de acustică. Atunci când o parte mobilã a unui dispozitiv (de exemplu membrana unui difuzor) se mișcă, se generează unde de presiune, propagându-se într-un mod similar cu undele care se produc pe suprafața apei aruncând o piatră într-un lac. Diferențele de presiune sunt transformate de către urechea umană în impulsuri electrice prelucrate ulterior de creier și percepute de noi și sunete variind în amplitudine (presiunea undelor), frecvență și tonalitate.
Toate aceste caracteristici ale sunetului pot fi percepute și cu o singură ureche, pentru localizarea spațială a sunetelor este însă nevoie de ambele urechi. Pentru sunete provenite din lateral, creierul folosește diferențele de timp și intensitate percepute de cele două urechi și calculează poziția sunetului. Când surse sonore identice sunt amplasate în stânga și în dreapta, creierul interpretează sunetul ca venind din spațiul gol dintre cele două surse pentru că fiecare ureche recepționează același semnal. Sunetul stereofonic nu este de fapt decât duplicarea unei surse sonore pentru două difuzoare – stânga și dreapta, diversele efecte stereofonice suprapunându-se peste semnale și creând astfel impresia că sunetul "se mișcă".
În mod uzual gama de frecvențe ce poate fi percepută de o ureche umană normală este de 20 Hz – 20 kHz, cu abateri în funcție de intensitatea sonoră conform cu graficul din figura alăturată. Restul intervalului de frecvențe este împărțit în infrasunete (sunete cu frecvența mai mică de 20 Hz, care nu pot fi auzite, dar pot fi simțite fizic de către organism, fiind în unele cazuri chiar dăunătoare sănătății) și ultrasunete (sunete cu frecvența mai mare de 20 kHz). După cum se poate vedea și din grafic, sensibilitatea maximă a urechii este între 1 și 5 kHz, scăzând destul de rapid pentru frecvențe prea mici sau prea mari.
Volumul (intensitatea) unui sunet este măsurat în decibeli (dB), constituind diferența între intensitatea respectivului sunet și o valoare de referință (0 dB) pe o scală logaritmică. Dacă puterea sunetului este mărita de patru ori, creșterea este doar de 6 dB, iar pentru o mărire de o sută de ori creșterea este de 20 dB. A fost aleasă o scală logaritmică și nu una liniară deoarece și caracteristica urechii umane este una logaritmică, lucru demonstrabil prin percepția intervalelor muzicale. De exemplu, intervalul dintre 100 și 200 Hz este perceput ca o octavă, la fel ca și intervalul între 1000 și 2000 Hz.
Sunetul poate fi în unele cazuri mai mult simțit decât auzit. De exemplu, studiile au arătat că omul nu mai este în stare să se concentreze la locul de muncă dacă sunetele de acolo depășesc pragul de 90 dB, iar dacă nivelul sonor este mai mare de 80 dB nu se poate face înțeles dacã vorbește la telefon. În aceeași notă, o serie de studii de peste ocean au arătat că un generator de zgomot la 45 dB instalat într-o casă nu este sesizat de către vecini. Dacă însă se crește volumul sonor la 50 – 60 dB, lucrurile încep să se schimbe.
Spre deosebire de imagini care poartă cantitatea cea mai mare de informație dintre toate mediile de comunicare, sunetul are calitatea de a fi cea mai expresivă și mai subtilă cale de a transmite informație. Având acces direct la sufletul uman, spre deosebire de imagini și text, care sunt filtrate întâi de creier, sunetul poate induce omului în modul cel mai rapid și eficient, o larga paletă de stări sufletești. Clasificând cele trei medii importante după efortul de atenție cerut omului pentru receptarea informațiilor purtate de acestea, pe primul loc se vor afla textele – solicitând cel mai mult capacitatea de concentrare și atenția, apoi urmează imaginile, și pe ultimul loc se situează sunetul, acesta fiind uneori capabil de a transmite informație sau de a induce diferite stări emoționale chiar fără a solicita deloc atenția (cum ar fi cazul muzicii ambientale).
Sunetul reprezintă o serie alternativă de modificări ale presiunii aerului, care se propagă sub formă de unde sferice concentrice. Detectarea sunetului se face măsurând și convertind variațiile de presiune ale aerului la o anumită locație dată. Fiind o undă elastică ce se propagă prin aer cu o viteză medie de aproximativ 344 m pe secundă, sunetul are proprietățile clasice ale undelor: reflecția, refracția, difracția, rezonanța, etc.
Acuitatea sunetului. În limbajul comun diferențiem sunetele ca fiind "înalte" sau "joase". Din punct de vedere tehnic, această proprietate poartă denumirea de frecvență și descrie cate vibrații pe secundă prezintă respectivul sunet. Frecvența se măsoară în "cicli pe secundă" sau Hz -Hertz".
Urechea umană poate percepe sunetele cu frecvența mai mare de 20-30 Hz și mai mică de 16000-18000 Hz. În mod interesant, abilitatea umană de a localiza sursa de sunet scade odată cu scăderea frecvenței. Cu alte cuvinte, pentru un sunet de frecvență joasă – de exemplu uruitul unei explozii, este greu de localizat sursa acestuia, pentru unul de frecvența înaltă, cum ar fi vocea unui om, localizarea făcându-se relativ ușor.
Timbrul sunetului. Cea mai pură formă de sunet este reprezentată de o undă periodică sinusoidală. Deși teoretic unda sinusoidală este cel mai simplu tip de undă, în practică este foarte dificil de obținut. Cel mai mult se apropie de ideal sunetul generat de diapazon.
Marea majoritate a sunetelor întâlnite în realitate sunt compuse din mai multe astfel de sinusoide de diferite frecvențe, denumite componente armonice. Acestea se caracterizează prin faptul că frecvențele lor sunt multiple de o frecvență comună, denumită fundamentala sunetului respectiv. O notă cantată de un instrument muzical nu este un sunet pur. Toate suprafețele implicate în producerea sunetului respectiv realizează vibrații multiple pe perioada emiterii sunetului. Astfel apar armonicele care compun sunetul, fundamentala acestora fiind însăși nota ce se dorește cantată. Diferența dintre sunetele emise de două instrumente care cântă aceeași nota se numește tonalitate sau timbru. Dacã intensitatea si frecvența unui sunet sunt niște mărimi fizice clare și măsurabile, nu același lucru se poate spune despre tonalitate ("pitch" în limba englezã) care este o caracteristicã complexã și subiectivã a sunetului, depinzând de frecvențã și intensitate, dar și de forma undei sonore.
Intensitatea sunetului. Reprezintă magnitudinea vibrațiilor aerului datorate sunetului și este în directă dependentă de amplitudinile componentelor sale sinusoidale. Uzual, intensitatea se exprimă în decibeli (dB)v – o fracție logaritmică dintre sunetul de referința cu intensitatea 0 dB și sunetul măsurat. Cum scala de măsura este logaritmică, unei creșteri, de exemplu, cu 3dB îi corespunde dublarea intensității sunetului. Operația de creștere a intensității sunetului poartă denumirea de amplificare audio.
2.3 Standardul MP3
MP3 este prescurtarea de la Moving Picture Experts Group (MPEG), Audio Layer 3 și este un format de compresie care reduce dimensiunea unui fișier audio, fără a exista o pierdere foarte mare de calitate (discutabil). O compresie standard MP3 va reduce dimensiunea fișierului cu până la 10 ori. Astfel, o piesă copiată de pe un CD audio, care are o dimensiune de 44 de MB, poate ajunge în urma compresiei la 4MB.
De câțiva ani, MP3 a devenit un standard pentru muzica în format digital. Inițial conceput pentru a asigura coloana sonoră a filmelor în format MPEG, MP3 a ajuns la stadiul de popularitate întâlnit astăzi doar prin răspândirea Internet-ului.
Practic, diferențele dintre formatul clasic WAV și cel comprimat MP3 constă în primul rând în dimensiunea mai mică a fișierului, dar și în scăderea mai mult sau mai puțin sesizabilă a calității sunetului. Dacă este folosit un encoder capabil, chiar dacă folosim același bitrate (cantitatea de informație pe unitatea de spațiu), putem obține un sunet mai clar și mai curat decât în cazul utilizării unui encoder slab.
Tehnic vorbind, comprimarea sunetului consta în eliminarea unor elemente pe care urechea umană le percepe mai slab sau deloc. Această "aproximare" generează efecte neplăcute, care pot fi totuși ignorate într-o anumită măsură.
Bitrate-ul clasic este cel de 128 kbit/sec, adică 128/8=16 KB/s. Astfel pentru un minut de muzică este necesar aproximativ 1 MB de spațiu pe disc, mult mai puțin decât cei circa 10 MB ocupați de sunetul necomprimat (WAV). Însă dezavantajul constă într-o calitate inferioară, motiv pentru care se recomandă encodarea fișierelor în acest format la un bitrate mai mare sau egal cu 160. La 192 kbit/sec, spațiul ocupat este cu 50% mai mare, dar calitatea sunetului emis este simțitor îmbunătățită. Bitrate-urile mici determină apariția unui fenomen neplăcut, cunoscut sub numele de aliasing, materializat printr-un sunet neclar. Pentru a compensa acest neajuns, encoderele filtrează frecvențele înalte, fapt care poate genera o scădere a calității din alt punct de vedere. De exemplu, la un bitrate foarte mic (cum ar fi cel de 56 kbit/s), aliasing-ul este insesizabil, dar sunt redate doar frecvențele medii și joase, fapt care deteriorează sunetul în mare măsură.
Standardul MPEG cunoaște trei etape de evoluție și anume:
MPEG-1: ”Coding for Moving Pictures and Associated Audio for Digital Storage Media at up to about 1.5 Mbps”; este un standard internațional (ISS- 11172/octombrie 1992);
MPEG-2: ” Generic Coding of Moving Pictures and Associated Audio”; este un standard internațional (ISS- 13818/ noiembrie 1994);
MPEG-4: ” Very Low Bitrate Audio- Visual Coding”; este în faza de lucru, prima lista de propuneri fiind deschisă la 1 octombrie 1995;
MPEG-3 a fost o propunere dar în cele din urmă specificațiile au fuzionat cu MEG-2;
MPEG-1 si 2 sunt constituite din 4 părți principale (structura fiind aceeași pentru ambele standarde).
Motivul pentru care MP3 a devenit standardul audio pe web s-a datorat faptului că deținătorii patentului pentru MP3 au permis, tuturor celor interesați să creeze un decodor sau un player, în mod gratuit, pentru el. Alt avantaj al formatului este și acela că nu prezintă posibilitatea introducerii de setări de securitate, așa că milioane de asemenea fișiere sunt transmise zilnic pe web. Faptul ca fișierele sunt de dimensiune redusă, permițând inclusiv transmiterea lor pe e-mail, a fost iarăși un factor care a contribuit la dezvoltarea sa.
Acest format se pretează foarte bine la streaming-ul audio, transmisia live pe Internet. Deși aici formatele proprietare Real Audio de la Real Networks și Windows Media fac lege pe Internet, MP3-ul devine o alternativă demnă de luat în considerare.
Cu toate îmbunătățirile aduse în ultimul timp formatului MP3, calitatea acestuia rămâne limitată. Iar acest lucru se observă cel mai bine în momentul în care întâlnim în cadrul unei melodii ruperi bruște de ritm. MP3-ul nu reușește să urmeze exact linia melodică, având o oarecare întârziere. Pentru o ureche formată, acest lucru poate fi supărător. Pentru depășirea acestui neajuns au apărut concurenții, alți algoritmi pentru compresia de sunet, mai performanți decât MP3, printre care se remarcă WMA, VQF si OGG, dar care nu au căpătat popularitatea lui MP3. Cel mai important este WMA, standardul promovat cu mare reclamă de către Microsoft, care a încercat chiar să elimine suportul de MP3 din Windows XP pentru a-și promova propriul produs. Avantajul său e clar: calitate mai bună.
Formatul wma- este creat de Microsoft. În cadrul acestui format pot fi introduse informații de copyright, precum și informații despre structura internă a calculatorului, astfel încât melodiile codate în acest format nu pot fi rulate pe alte echipamente;
Formatul Vqf – a cărui suport a fost sistat, din păcate. Oricum, pe internet se mai găsesc fișiere care să ajute la crearea unui fișier vqf. Rezultatul va fi un fișier cu dimensiune mai mică decât a unui MP3, la aceleași bitrate. Calitatea sunetului este mai bună;
Formatul Ogg- acest format este în continuă dezvoltare și este unul din cei mai serioși candidați la coroana de rege a MP3- ului. Este dezvoltat de comunitatea open-source, deci este gratuit. Dimensiunea fișierelor este mai redusă decât în cazul formatului MP3, iar calitatea sunetului este mai bună. Se pare ca are o problemă cu sunetele de frecvență joasă;
Formatul Mpc- este denumit și mpeg plus; acest format a fost dezvoltat de Andree Buschmann și se pare că fișierul rezultat este cel mai bun din punct de vedere calitativ dintre toate formatele.
Totuși, timpul a demonstrat că rareori standardele concurente pot depăși un standard deja impus printre utilizatori, mai ales în cazul lui MP3, care a devenit un element indispensabil oricărui utilizator de PC.
=== Capitolul 3-Proiectare si implementare ===
Capitolul 3
Proiectarea și simularea metodei de compresie cu
decimare în frecvență
În vederea proiectării și simulării metodei de compresie cu decimare în frecvență, au fost prezentate mai întâi câteva noțiuni teoretice referitoare la transformata Fourier discretă cât și despre decimarea în timp și în frecvență aplicate unui semnal, în cadrul capitolului 1.2.1.
3.1 Proiectare și implementare software
Ipoteza problemei constă în următoarele:
Se consideră un semnal nearmonic, suma a patru semnale armonice de diferite amplitudini, cu banda de frecvență de 10 KHz:
x=30*sin(2*pi*50*t)+20*sin(2*pi*100*t)+10*sin(2*pi*150*t) +5*sin(2*pi*200*t)
Se proiectează algoritmul de compresie cu decimare în frecvență în Matlab6
Implementarea software cuprinde două părți principale astfel:
În prima parte a programului se parcurg următorii pași:
Pornind de la o frecvență de eșantionare, fs, de 8000, o perioadă T de 1s, un număr de eșantioane N = 1024 și o perioadă de eșantionare ts = 1/fs, se reprezintă semnalul x(t);
Pentru acest semnal, cu ajutorul instrucțiunii din Matlab X=fft(x, N) vom calcula transformata Fourier rapidă a semnalului
Se va calcula spectrul de putere pentru transformata Fourier a semnalului x, și se va reprezenta, trecând astfel din domeniul timp în domeniul frecvență, inițializând și o axă a frecvențelor
La semnalul inițial, x, se adaugă un zgomot, obținându-se semnalul y. Pentru acest semnal vom repeta pașii enumerați mai sus
Pentru cele două semnale X si Y, obținute după transformările Fourier aplicate semnalelor inițiale x si y, vom face operația inversă și anume transformata Fourier inversă (IFFT), și vom obține semnalele ix si iy care trebuie să corespundă în reprezentările grafice cu semnalele inițiale
B. În a doua parte a algoritmului, pentru diferiți pași de decimare începând cu 2 până la 10, luați din doi în doi, pași de decimare care nu pot depăși o valoare egală cu raportul , se va analiza forma spectrului de amplitudini pentru semnalul X în comparație cu semnalul decimat Xdec.
Principiul metodei de decimare în frecvență constă în următoarele: pornind de la spectrul semnalului reprezentat în frecvență, X, spectru semnalului decimat Xdec va păstra acele eșantioane ale semnalului X, luate din 2 în 2, din 4 in 4, etc., în funcție de pasul de decimare ales, restul eșantioanelor devenind zero.
Pentru X si Xdec obținut se aplică transformata Fourier inversă, și se reprezintă grafic
Se calculează un criteriu de aproximare J = ; reprezentarea grafică a acestui criteriu ne arată diferența între semnalul inițial și cel decimat. La acest punct vom observa care dintre pașii de decimare este mai avantajos pentru a fi folosit în algoritmul de decimare atât din punct de vedere cantitativ cât și calitativ.
Pentru semnalele reale se parcurg aceiași pași, plus încă câțiva necesari prelucrării unor astfel de semnale:
Vom considera două cazuri și anume: cazul în care prelucrăm un semnal de tip „vorbire” și cazul în care prelucrăm un semnal de tip „melodie”, toate acestea în scopul de a evidenția diferențele care pot apărea între diferitele tipuri de semnale audio.
Programul începe prin apelarea funcției wavwrite, necesară pentru citirea de pe hard a fișierului wav și prin testarea fișierului, adică verificarea dacă avem de a face cu un fișier mono sau un fișier stereo. Pentru exemplificare am ales un fișier mono, care este desfășurat ,deci, pe 1 canal. Informațiile despre header-ul acestor fișiere se pot obține prin instrucțiunea info=waveinfo(file), unde câmpul ’file’ conține numele fișierului wav. În rest, în prima parte a programului, toți pașii sunt identici, cu deosebirea că nu am considerat și cazul în care se adaugă un zgomot semnalului inițial.
În a doua parte a programului apar următoarele modificări: din semnalul obținut în urma decimării, Xdec, care de fapt este reprezentat sub forma unui vector, păstram doar eșantioanele diferite de zero, deci numărul eșantioanelor se va reduce de atâtea ori de câte ori arată pasul de decimare. Obținem semnalul Xdec1. Pentru comparație, vom reprezenta în aceiași figură spectrele semnalelor X, Xdec, Xdec1. Se calculează, de asemenea și rata de compresie.
Pentru o mai bună înțelegere a algoritmului sunt făcute schemele logice de mai jos constând în figura 3.1.1 și figura 3.1.2 pentru suma de semnale armonice și figura 3.2.1 și 3.2.2 pentru semnalele reale audio constând în „vorbire” și „melodie”.
Figura 3.1.1
Figura 3.1.2
Figura 3.2.1
Figura 3.2.2
=== Capitolul 4 Rezultate experimentale ===
Capitolul 4
Rezultate experimentale
În acest capitol vom considera semnale audio reale pe care le vom comprima utilizand algoritmii proiectați în capitolul 3. Semnalele audio pe care le vom folosi sunt fișiere de tip WAV.
Fișierele cu extensia Wav sunt formate de fișiere utilizate pentru stocarea informațiilor de tip sonor ce nu pot fi descompuse într-o suită de instrumente , de exemplu o melodie care cuprinde și o parte vocală sau zgomote înregistrate cu ajutorul unui microfon din mediul înconjurător. Fișierele de acest format au dimensiuni impresionante, un minut de înregistrare de o calitate peste medie putând depăși 10 MB. Acest format a devenit învechit și este pe cale de a fi înlocuit cu formatul MP3. Alte detalii despre aceste tipuri de semnale au fost amintite și în capitolul 1. 3.
În anexa 2 este prezentat programul audio.m și audio_dec.m, descris și explicat în capitolul 3.
Informațiile despre header-ul fișierelor wav folosite le obținem în urma rulării instrucțiunii info=wavinfo(file), atât înainte de compresie cât și după. Pentru semnalele inițiale avem următoarele informații:
Pentru „vorbire” (fișierul wavewarp.wav de 5 secunde)
info = FormatTag: 1 (codul formatului, corespunzator formatelor PCM)
FormatDescription: 'Microsoft WAVE_FORMAT_PCM'
NumberOfChannels: 1 (numărul de canale)
SampleRate: 44100 ( frecvența de eșantionare)
AvBytesPerSec: 88200 (egala cu Sample Rate* Block Align)
BlockAlign: 2 ( egal cu ContainerBits*NumberOfChannels/8)
BitsPerSample: 16 (biți pe eșantion)
ContainerBytes: 2
ContainerBits: 16
SamplesPerChannel: 229280 (eșantioane pe canal)
Pentru „melodie”(fișierul drums.wav de 3 secunde)
info = FormatTag: 1
FormatDescription: 'Microsoft WAVE_FORMAT_PCM'
NumberOfChannels: 1
SampleRate: 44100
AvBytesPerSec: 88200
BlockAlign: 2
BitsPerSample: 16
ContainerBytes: 2
ContainerBits: 16
SamplesPerChannel: 132933
În urma rulării fișierului audio.m se obțin o serie de figuri, reprezentând formele pe care le iau semnalele citite de pe hard, melodia și vorbirea, în urma modificărilor efectuate asupra lor, după cum urmează:
În figura 4.1.1 este reprezentat semnalul original x, semnal audio citit de pe hard, un fișier de 5 secunde, wavewarp.wav, tip „vorbire”. În urma aplicării transformatei Fourier asupra semnalului reprezentat în domeniul timp, se obține reprezentarea în domeniul frecvență și astfel se poate calcula cu ajutorul funcției Pxx = X.*conj(X)./ N densitatea spectrala de putere pentru semnalul X.
Semnalul obținut în urma aplicării transformatei Fourier este supus transformatei Fourier inverse prin ix = ifft(X,N); ix=real(ix), și se obține semnalul ix, care, trebuie să coincidă cu semnalul original x. În figura 4.1.2 este arătat acest lucru.
Figura 4.1.1
Figura 4.1.2
Pentru semnalul de tip „melodie”, se citește de pe hard fișierul drums.wav iar formele semnalului se pot vedea în figurile 4.2.1 și 4.2.2.
Figura 4.2.1
Figura 4.2.2
4.1 Rezultate experimentale pentru decimarea în frecvență pentru semnalul real de tip „vorbire” cu pașii de decimare 2, respectiv 10
Algoritmul de decimare a semnalului este desfășurat în cea de-a doua parte a programului, după cum am prezentat și în capitolul 3.
Fișierul audio_dec.m cuprinde tehnica de decimare cu diferiți pași. În urma rulării acestui fișier se obțin mai multe figuri, din care, în cadrul lucrării, vom prezenta doar figurile rezultate în urma rulării programului cu pașii de decimare 2, respectiv 10.
Pentru semnalul de tip „vorbire” și pasul de decimare 2 se obțin următoarele figuri:
Figurile 4.3.1.1 si 4.3.1. prezintă spectrul de amplitudine pentru semnalele X respectiv Xdec, reprezentate în domeniul frecvență. Se observă că, la semnalul Xdec, din semnalul original nu rămân decât N/2 eșantioane, adică cele luate din doi in doi, cât este pasul de decimare, celelalte devenind 0. Pentru a se observa mai bine am făcut o reprezentare pe domeniul de frecvență de la 10 Hz la 40 Hz..
Figura 4.3.1.1
Figura 4.3.1.2
În urma aplicării transformatelor Fourier inverse semnalelor X și Xdec se obțin semnalele ix, respectiv ixdec, reprezentate în figura 4.3.2.
figura 4.3.2
Pentru observarea diferențelor existente între semnalul inițial și cel decimat, am făcut și o reprezentare a celor două semnale suprapuse, în figura 4.3.3.
Figura 4.3.3
Figura 4.3.4
În figura 4.3.4 sunt reprezentate, pentru comparație spectrele semnalelor X, Xdec și Xdec1, pe domeniul 10Hz, 40 Hz.
În urma compresiei cu pasul de decimare 2, a fișierului wavewarp.wav se obțin următoarele informații cu privire la semnalul comprimat:
info = FormatTag: 1
FormatDescription: 'Microsoft WAVE_FORMAT_PCM'
NumberOfChannels: 1
SampleRate: 22050
AvBytesPerSec: 44100
BlockAlign: 2
BitsPerSample: 16
ContainerBytes: 2
ContainerBits: 16
SamplesPerChannel: 114640
În urma rulării secvenței de program de mai jos se obține rata de compresie 1.9199
Tot pentru fișierul de tip „vorbire”, rulăm programul și pentru pasul de decimare 10 și obținem figurile 4.4.1.1 si 4.4.1.2.
În figura 4.4.1.2, în care se reprezintă spectrul de amplitudine pentru semnalele X și Xdec, pe domeniul de observație de la 40 la 85 Hz, se vede că spectrul pentru Xdec păstrează din spectrul semnalului X doar eșantioanele corespunzătoare pasului de decimare, adică cele luate din 10 in 10, celelalte devenind 0.
switch ver,
case 'melodie', marime_pe_hard = 230000;%bytes
case 'vorbire', marime_pe_hard= 449000;
end;
marime_intrare=N*16/8
dim_header=marime_intrare-marime_pe_hard
marime_iesire=n1*16/8
rata_compresie=marime_intrare/(dim_header+marime_iesire)
Figura 4.4.1.1
Figura 4.4.1.2
Figura 4.4.2
Figura 4.4.3
În figura 4.4.4 sunt reprezentate spectrele semnalelor X, Xdec, Xdec1.
Figura 4.4.4
În urma compresie cu pas de decimare 10 se obțin următoarele informații pentru semnalul comprimat:
info = FormatTag: 1
FormatDescription: 'Microsoft WAVE_FORMAT_PCM'
NumberOfChannels: 1
SampleRate: 4410
AvBytesPerSec: 8820
BlockAlign: 2
BitsPerSample: 16
ContainerBytes: 2
ContainerBits: 16
SamplesPerChannel: 22928
Folosind aceste informații se obține rata de compresie 8.2749.
Se observă că, cu pasul de decimare 10 compresia este mult mai mare decât cu pasul 2, mărimea este mai mică dar și calitatea mult mai slabă.
În ultima figura, 4.4.5, pentru semnalul de tip „vorbire”, este reprezentată eroarea medie pătratică, sub forma unui criteriu de aproximare J, calculat în cadrul programului cu instrucțiunea J =[J sum((ix-ixdec).^2)./N], care arată diferențele care apar între semnale în urma decimării, din care deducem, care pas de decimare duce la o compresie mai mare dar o calitate mai slaba sau invers, compresie mai mică, dar calitate mai bună.
Figura 4.4.5
4.2 Rezultate experimentale pentru decimarea în frecvență pentru semnalul real de tip „melodie” cu pașii de decimare 2, respectiv 10
Pentru semnalul de tip „melodie” și pasul de decimare 2 se obțin următoarele figuri:
Figura 4.5.2
Figura 4.5.3
Figura 4.5.1.1, respectiv 4.5.1.2 reprezintă spectrele de amplitudine pentru X și Xdec.
În urma aplicării transformatei Fourier inverse asupra semnalelor X si Xdec se obțin semnalele ix, respectiv ixdec, reprezentate în figura 4.5.2. Diferențele între semnalul original si cel decimat se observă în figura 4.5.3, în care cele două sunt suprapuse .
Figure 4.5.4
Diferențele între spectrele semnalelor X, Xdec, Xdec1 se văd in figura 4.5.4
În urma compresiei cu pas de decimare 2, a fișierului drums.wav, de tip „melodie”, se obțin următoarele informații pentru fișierul comprimat:
info = FormatTag: 1
FormatDescription: 'Microsoft WAVE_FORMAT_PCM'
NumberOfChannels: 1
SampleRate: 22050
AvBytesPerSec: 44100
BlockAlign: 2
BitsPerSample: 16
ContainerBytes: 2
ContainerBits: 16
SamplesPerChannel: 66467
Se obține rata de compresie 1.5750
Pentru același semnal, dar cu pas de decimare 10 se obțin următoarele figuri:
Figurile 4.6.2.1 si 4.6.2.2 reprezintă spectru de amplitudine.
Figura 4.6.2.1
Figura 4.6.2.2
Figura 4.6.2
Figura 4.6.3 arată diferențele mari care apar cu căt crește mai mult pasul de decimare.
Figura 4.6.3
În figura 4.6.4 sunt reprezentate spectrele semnalelor X, Xdec, Xdec1 pentru pasul de decimare 10.
Figura 4.6.4
Figura 4.6.5
În ultima figura, 4.6.5, pentru semnalul de tip „melodie”, este reprezentată eroarea medie pătratică, sub forma unui criteriu de aproximare J, figură ce rezultă in urma rulării programului cu toți pașii de decimare scriși sub forma unui vector.
După compresia cu pas de decimare 10, semnalul comprimat are următoarele caracteristici:
info = FormatTag: 1
FormatDescription: 'Microsoft WAVE_FORMAT_PCM'
NumberOfChannels: 1
SampleRate: 4410
AvBytesPerSec: 8820
BlockAlign: 2
BitsPerSample: 16
ContainerBytes: 2
ContainerBits: 16
SamplesPerChannel: 13294
Rata de compresie devine în acest caz: 4.2570
Din testările făcute se poate concluziona:
Pentru un semnal de tip „vorbire” compresia se poate face cu o rată mai mare decât în cazul semnalului audio de tip „melodie”. De asemenea cu cât crește pasul de decimare, cu atât crește și rata de compresie, dar, evident, și calitatea scade. Deci, cele două caracteristici: calitate și rată de compresie, variază invers proporțional.
=== Capitolul 5-Calcul economic si fiabilitate software ===
Capitolul 5
Calculul economic și aspecte privind fiabilitatea software
5.1 Calculul economic
Costul de producție este o categorie economică legată de existența producției de mărfuri, de procesul de formare a valorii și de prețuri. Calculul economic reprezintă un calcul foarte amănunțit al costului de producție al programelor respective.
Între costul de producție și prețul de vânzare există deosebiri atât cantitative, cât și calitative. Astfel prețul este mai mare decât costul de producție incluzând în plus și profitul. Deosebirea calitativă este că, în timp ce prețul asigură mijloacele necesare producției lărgite, costul de producție asigură doar recuperarea cheltuielilor de producție.
Mărimea costului de producție exprimă toate cheltuielile cu mijloacele de producție și plata salariilor, cheltuieli ce se efectuează pentru producerea și desfacerea bunurilor de materiale.
Reducerea costului de producție înseamnă micșorarea cheltuielilor pe unitatea de produs și este o necesitate obiectivă impusă de creșterea rentabilității, sporirea profitului și a productivității muncii.
Diminuarea costului de producție se poate face pe mai multe căi:
Prin reducerea costului materialelor;
Prin utilizarea eficientă a capitalului fix;
Prin creșterea productivității muncii;
Prin reducerea cheltuielilor administrativ – gospodărești.
La efectuarea calculului economic se poate ține cont și de o serie de costuri, cum ar fi:
Costul fix se referă la cheltuieli independente de volumul producției (chirii, amortizarea mașinilor, a clădirilor, etc.);
Costul variabil se modifică odată cu modificarea volumului de producție;
Costul marginal exprimă sporul de cheltuieli necesare pentru obținerea unei unități suplimentare de produs;
Costul cercetării științifice este dat de cheltuielile pentru cercetarea propriu – zisă și pentru aplicarea în practică a rezultatelor activității de cercetare- -proiectare în vederea realizării prototipului;
Costul tehnologic se caracterizează prin individualizarea cheltuielilor directe și a unei părți însemnate din cheltuielile indirecte, în special cu întreținerea și folosirea utilajelor.
Prețul este o funcție de cerere și ofertă, care ia în considerație și calitatea mărfii. Orice produs este definit de caracteristici calitative care îi definesc o anume performanță în utilizare și care îi pot oferi produsului o valoare crescută de piață. În general, un client este dispus să plătească un preț mai mare chiar în cazul unei competiții dacă se oferă și alte servicii, precum:
asistență tehnică
instruire personal
asigurare piese de schimb, documentații,
asigurare service, după punere în funcțiune
– oferirea de garanții avantajoase atât pentru demonstrarea parametrilor cât și pentru fiabilitatea sau durata de viață a produsului.
Costul de implementare a proiectului
Obiectul proiectului este de a realiza compresia unui semnal audio prin tehnica decimării în frecvență.
Valoarea globală a proiectului este dată de relația:
Ccost p. = Cdirecte + Cindirecte
unde:
Cdirecte reprezintă manopera de proiectare propriu zisă.
Cindirecte reprezintă cheltuielile suplimentare, ce includ activități de cercetare, muncă de documentare, tehnoredactarea proiectului și alte cheltuieli indirecte la nivelul sectorului sau institutului de proiectare.
Calculul cheltuielilor directe
Manopera pentru activitatea de proiectare
Fond salarii = n ore tarifatex tarif = 500 x40.000 = 20.000.000
tarif = costul unei ore de proiectare stabilit între institut și client pe o perioadă determinată
Calculul ratei de amortizare a calculatorului
Prețul unui calculator PENTIUM este de 700 USD
La cursul de schimb a dolarului, la data de 10.06.2005
1 USD = 29.533 lei
Pcost calcul = 700 USD x 29.533 lei / USD = 20.673.100 lei
Alegând o durată de amortizare a calculatorului de 2 ani, pe o variantă accelerată de recuperare a cheltuielilor de investiții, se obține o cotă de amortizare:
iar la nivelul unei axe:
Energia electrică consumată
Pc – puterea electrică consumată de unitatea centrală
Pd – puterea consumată de monitor
P = Pc + Pd = 250 + 150 = 400 W
La un preț energiei electrice pentru consumator casnic rezultă W = 0.400 KW x 40 h x 3015 lei / Kwh = 48.240 lei
Valoarea cheltuielilor directe rezultă :
Cdirecte = Cah x nr.ore + W + Fond salarii= 5.384 lei / h x 500 h + 48.240 + 20.000.000 = 22.740.240 lei
Calculul cheltuielilor indirecte
Cheltuielile indirecte se referă la orele de documentare, eventual cercetare, accesul la Internet, tehnoredactare, costuri aferente testării programului soft, cheltuieli indirecte pentru conducere și administrative ale institutului etc.
În continuare în calcul se iau următoarele componente mai importante de cheltuieli indirecte:
Cdoc – costul necesar procurării și aprofundării documentației;
Cdoc = 50 ore x 35.200 lei / ora = 1.760.000 lei
Ctehnoredactare = 500 x 1000 + 300.000 = 800.000 lei
(S-a apreciat că necesarul este de 500 foi hârtie format A4 și un cartuș cu toner pentru imprimantă)
Cnet – costul efectiv al accesului pe Internet
Cnet = 12 USD / luna x 29.533 lei / USD = 354.396 lei
Cindirecte = 1.760.000 + 800.000 + 354.396 = 2.914.396 lei
Din însumarea costurilor calculate, rezultă:
Ccost. p = 22.740.240 + 2.914.396 = 25.654.636 lei
În concluzie, se poate spune că valoarea proiectului realizat este de aproximativ 25.654.636lei.
5.2 Fiabilitatea software
Fiabilitatea software reprezintă capacitatea sistemului de răspunde cerințelor utilizatorului, în conformitate cu specificațiile sale de proiectare.
În mod curent, testarea este principala tehnică care dă certitudinea că software-ul lucrează corect.
Încă din faza stabilirii cerințelor și specificațiilor trebuie să se impună nivelul de fiabilitate al sistemului ca un compromis între prețul de cost și consecințele defectărilor. Astfel un produs software conceput pentru cercetări spațiale cu participare umană trebuie să aibă o fiabilitate mai mare decât unul pentru jocuri pe calculator. Este necesar deci ca produsele software să se înscrie în anumite clase de fiabilitate. Clasele de fiabilitate sunt următoarele:
Foarte scăzută (very low). Acest nivel se prescrie atunci când defectarea are ca singură consecință inconvenientul producătorului de a înlătura o neregulă în program. Asemenea situație intervine, de regulă, în cazul modelelor demonstrative și a simulărilor;
Scăzuta (low). Acest nivel corespunde în cazurile în care defectarea implică o pierdere mică, ușor de recuperat, pentru beneficiar. Sistemele utilizate în predicție pe termen lung sunt exemple tipice
Nominală (nominal). Acest nivel corespunde cazului când defectarea implică o pierdere moderată pentru beneficiar, dar remedierea situației nu este prea costisitoare. Sistemul de gestionare a stocurilor sau sistemele informaționale de conducere sunt exemple tipice pentru aceasta clasă de fiabilitate;
Ridicată (high). În acest caz, efectele defectării pot implica o pierdere financiară mare sau un inconvenient major pentru factorul uman. Exemple tipice sunt sistemele bancare și cele ale distribuției energiei electrice;
Foarte ridicată (very high). Efectele defectării pot consta în pierderi de vieți omenești . Cazul tipic îl constituie sistemul de control al reactoarelor nucleare .
În funcție de nivelul de fiabilitate prescris , se poate prescrie efortul necesar care trebuie făcut în fiecare etapă a realizării produsului.
Ingineria se străduiește nu numai să creeze și să îmbunătățească noi produse, ci să le producă cu costuri eficiente.
Un cost major în software este stabilirea, depistarea defectului. Multe studii arată că prețul pentru găsirea și stabilirea defectelor software pot varia dramatic în funcție de timpul scurs pană la găsirea lor.
Ținând cont de faptul că există costuri relative mai mari decât 100 la 1, un beneficiu major al practicilor inginerești este de a reduce costul și varietatea reluărilor. Cele mai multe evaluări ale calității software se face de-a lungul activităților de testare.
Criteriile utilizate pentru a judeca când s-a încheiat testarea sistemelor software sunt foarte largi și adesea subiective. Din cauza unei variații largi în ceea ce privește luarea în considerare a acestora în aprecierea calității software, firma Hewlett- Packard a creat un set de criterii de măsurare a calității. Propunerea lor este de a certifica produsele software realizate și gata de livrare.
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Algoritm de Compresie a Semnalelor Audio Prin Tehnica Decimarii In Frecventa (ID: 161091)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
