Sunteți pe pagina 1din 79

FILTRE AUDIO DIGITALE

Cuprins FILTRE AUDIO DIGITALE Tipuri de filtre audio digitale Egalizare Filtre comb, delay, reverb si convolutie Relatia dintre convolutie si transformata Fourier PROIECTAREA FILTRELOR AUDIO Proiectarea filtrelor FIR Transformata Z Diagrame zero-poli si proiectarea filtrelor IIR COMPRESIE AUDIO DIGITALA Metode de compresie bazate pe timp Codificare perceptuala Compresia audio MPEG

FILTRE AUDIO DIGITALE


Tipuri de filtre audio digitale Un filtru audio digital modifica amplitudinea sau faza uneia sau mai multor componente ale unui semnal audio. Filtrele audio digitale se pot clasifica in doua categorii: -filtre cu raspuns finit la impuls (FIR finite-inpulse response); -filtre cu raspuns infinit la impuls (IIR infinite-inpulse response).

Filtrul FIR: fie x(n) un semnal audio digital cu L esantioane, 0nL-1 si y(n) semnalul audio filtrat. Fie h(n) o masca de convolutie operand ca filtru FIR de lungime N. Functia de filtrare FIR este definita:

unde x(n-k) = 0 daca n-k<0, unde reprezinta operatorul de convolutie.

Se obtin iesirile filtrului astfel:

iar pentru:

Operatia poate fi vizualizata sub forma:

Este momentul in care se calculeaza y(4). Vectorul h(n) se numeste masca de convolutie (raspunsul la impuls, filtrul sau nucleul de convolutie), iar componentele sale se numesc "taps" sau "tap wights" (ponderi), numarul lor, L, fiind ordinul filtrului.

Filtrul IIR : fie x(n) un semnal audio digital cu L esantioane, 0nL-1 si y(n) semnalul audio filtrat. Fie h(n) o masca de convolutie operand ca filtru IIR, unde lungimea N este lungimea filtrului inainte, iar M este lungimea filtrului inapoi (reactie). Forma infinita a functiei de filtrare IIR este definita:

unde x(n-k) = 0 daca n-k<0, iar k este teoretic infinit. O forma echivalenta este forma recursiva:

Aplicarea formei recursive conduce la o relatie de tipul:

Avantajul principal al filtrelor IIR este ca permit o taiere abrupta intre frecventele care sunt filtrate si cele care nu sunt filtrate. Filtrele FIR necesita masti mai largi si deci mai multe operatii aritmetice pentru a avea aceeasi eficienta de filtrare. De asemenea FIR necesita mai multa memorie si timp de prelucare. Alt avantaj al IIR este ca aceste filtre se pot proiecta din filtrele corespunzatoare analogice. Filtrele FIR nu au corespondente analogice. Avantajul filtrelor FIR este ca pot fi constranse sa aibe un raspuns liniar de faza (deplasarile de faza ale componentelor de frecventa sunt proportionale cu frecventa). Astfel frecventele armonice sunt deplasate in aceeasi proportie si relatiile dintre armonice nu sunt distorsionate (foarte important in muzica). Alt avantaj al filtrelor FIR este ca nu sunt asa de senzitive la zgomot rezultat din adancimea mica de biti si eroarea de rotunjire.

Raspuns la impuls si frecventa


Masca de convolutie h(n) a unui filtru FIR sau IIR se mai numeste si raspuns la impuls. Impulsul unitar (numit si functia delta), in forma digitala este secventa de esantioane: 1 0 0 0 0 0... (numai valoarea din pozitia 0 este 1, restul valorilor sunt 0). Aplicand relatiile pentru filtrul FIR si filtrul IIR, in ambele cazuri se obtine la iesire chiar h(n). Raspunsul in frecventa este H(z), transformata Fourier a lui h(n). Graficele H(z) pentru cateva filtre ideale:

Filtre utilizate in software de prelucrare digitala audio -filtre de banda: -filtru trece jos; -filtre trece sus; -filtru trece banda; -filtru opreste banda. -filtre IIR (numite si filtre stiintifice): Bessel, Butterworth, Chebyshev1 si Chebyshev2 avand control fin asupra frecventelor si fazelor; -filtre comb: aduna versiuni intarziate ale semnalului la el insusi, rezultand anulari de faza percepute ca ecou; -filtre de convolutie: filtre FIR utilizate pentru adaugarea unui mediu acustic la un fisier de sunet (exemplu: mimarea reverberatiilor unei sali de concert); -egalizator grafic: furnizeaza o reprezentare grafica care permite ajustarea castigului frecventelor in cadrul unui set (array) de benzi; -egalizator parametric: similar cu cel grafic, dar avand control asupra largimii benzilor relativ la locatiile acestora; -crossover: desface un semnal de intrare in mai multe semnale de iesire, fiecare intr-o anumita scara de frecvente, astfel incat fiecare semnal de ieisire sa fie trimis la un difuzor care le poate reda cel mai bine.

Egalizare Egalizarea (EQ equalization) este procesul de marire (boosting) sau micsorare selectiva a unor frecvente din semnalul audio. Se poate aplica in toate etapele de inregistrare, post-procesare sau redare. Trebuie aplicat cu precautie, caci modificarea amplitudinilor relative ale frecventelor poate sa produca un sunet artificial. O solutie simpla de egalizare este oferita de majoritatea aparatelor audio dotate cu butoane de control de ton: banda de joase (bass) este 20-200 Hz, iar banda de inalte (treble) este 4-20 kHz. Exemple de filtre (shelving filters in panta usoara):

Pe axa orizontala sunt frecventele iar pe cea verticala amplificarea 1. Filtrul low-shelf mareste sau micsoreaza amplitudinile frecventelor joase, iar filtrul high-shelf mareste sau micsoreaza amplitudinile frecventelor inalte, in raport cu o frecventa de taiere cutoff frequency, in rest semnalul trece nemodificat (un filtru trece-sus sau trece jos elimina complet anumite componente de frecventa).

Egalizatorul grafic imparte spectrul de frecvente in benzi, permitand controlul amplitudinilor frecventelor in fiecare banda independent. Se poate selecta numarul de benzi, dar in mod normal sunt 10 benzi impartite in octave, nu in frecvente ( doua note, adica frecvente, sunt la distanta de o octava daca frecventa mai mare este dubla fata de cea mai mica). Exemplu: impartire in 20 de benzi, frecventele de start din doua benzi succesive la distanta de octava, deci factor 2 . Astfel frecventa de start a primei benzi 31.5 Hz, atunci a doua banda incepe la frecventa de 31.5*2 44 Hz. Un parametru important este precizia (accuracy), legata de lungimea filtrului utilizat pentru egalizare: se poate utiliza valoare mica pentru frecvente mari, dar valoare mare pentru frecvente mici. Un filtru de lungime mare implica mai multi termeni in ecuatie si conduce la o rezolutie de frecvente mai buna (necesar pentru benzile de frecvente joase care sunt mai inguste), dar creste timpul de calcul.

Egalizatorul parametric este mai flexibil, permitand focalizarea pe benzi individuale de frecvente. Se poate stabili centrul benzii de frecventa si se pot ajusta frecventele. Opereaza numai asupra unei singure benzi la un moment dat. Se bazeaza pe filtre trece-banda si stop-banda. Un filtru trece banda permite trecerea frecventelor din banda si filtrarea frecventelor din afara benzii (ideal frecventele eliminate, dar in realitate acestea sunt doar atenuate). Graficul raspunsului in frecventa:

Se mai numeste si filtru de varf (peaking filter). Inversand graficul se obtine un filtru stop-banda, care daca este ingust se mai numeste si notch filter.

Factorul Q (factor de calitate sau simplu Q) specifica cat de abrupta si de larga este curba (varf sau adancitura). Cu cat factorul Q este mai mare, cu atat este mai mare varful sau adancitura. Factorul Q a fost imprumutat din fizica si masoara rata de disipare a energiei unui sistem oscilant (procesul se mai numeste si damping): este numarul de cicluri necesare pentru ca energia sa scada cu un factor 535 (e2), valoare aleasa pentru a simplifica calculele. In acustica indica rezonanta unor suprafete (suprafetele cu Q mare au rezonanta mai mare), instrumente, difuzoare. Pentru difuzoare factorul Q trebuie sa aibe o valoare corecta, caci un difuzor avand Q prea mare ramane in rezonanta chiar dupa oprirea unui instrument, rezultand sunet artificial sau distorsionat.

Se poate reprezenta grafic modul in care un sistem se afla in rezonanta (pe axa orizontala frecventa si pe axa verticala energia). Asemanator se poate reprezenta un filtru de varf, ca un grafic de raspuns in frecventa, pe abscisa frecventa, iar pe ordonata in loc de amplitudine se reprezinta energia.

Factorul Q se poate defini astfel: dat fiind graficul unui filtru de varf, fie fwidth latimea varfului masurata la un punct in care este din inaltimea varfului si fie fcenter frecventa in mijlocul centrului geometric al varfului (ambele in Hz), factorul Q este: Q = fcenter / fwidth Graficul este pe scara logaritmica, de aceea punctul din varf este punctul de -3 dB. Centrul geometric este media geometrica (min*max) in loc de (min+max)/2. In graficul de raspuns in frecventa (pe ordonata amplitudinea) largimea de banda se masoara in punctul care este 1/ 2 din varf.

Definitia factorului Q in termeni de octave: fie n largimea de banda in octave a unui filtru de varf. Factorul Q este:

Daca se cunoaste factorul Q se poate calcula largimea de banda a unui filtru de varf:

Pentru un egalizator parametric ecuatiile precedente nu sunt esentiale, dar cu cat Q este mai mare, cu atat varful benzii este mai abrupt. De exemplu Q se poate seta in intervalul 0.10 la 10 (0.10 corespunde unui varf plat, iar 10 unui varf foarte abrupt.

Diferite tipuri de filtre (trece-jos, trece-sus, shelving si trece-banda) se pot grupa intr-un singur instrument egalizator, numit egalizator paragrafic. Fiecarui tip de filtru ii corespunde o icoana. Daca se aplica mai multe tipuri de filtre unei singure benzi, acestea se aplica in paralel si nu secvential. Este importanta liniaritatea fazelor, astfel nu se introduc distorsiuni in structura de armonici, frecventele armonice fiind deplasate cu aceeasi valoare. In plus, anumite egalizatoare permit specificarea amplificarii totale (master gain) a semnalului audio dupa prelucrarea EQ. De asemenea se pot controla cantitatile de semal prelucrat (wet ) si nemodificat (dry ). Se poate pastra o copie nemodificata a semnalului, iar dupa prelucrare se pot specifica proportiile de combinare a celor doua.

Filtre comb, delay, reverb si convolutie


Filtrul comb (pieptene) aduna un esantion cu un altul anterior, eliminand anumite frecvente rezonante (ca si cand ar fi pieptanate la intervale regulate de frecventa). Se poate realiza prin filtru FIR nerecursiv sau filtru IIR recursiv. Un filtru simplu nerecursiv este dat de ecuatia: y(n) = x(n) + gx(n-m) unde m este intarzierea in numar de esantioane, iar g1 este amplificarea. Un filtru simplu recursiv este dat de ecuatia: y(n) = x(n) + gy(n-m) unde m este intarzierea in numar de esantioane, iar g<1 este amplificarea. In acest caz un sunet anterior afecteaza din ce in ce mai slab sunetele ulterioare, datorita micsorarii de fiecare data a amplitudinii cu factorul g<1.

Filtrele se pot reprezenta prin diagrame de flux:

z-m simbolizeaza o intarziere de m esantioane in termenul gx(n-m) sau gy(n-m). Filtrele comb realizeaza doar simple efecte de intarziere, caci efectele de ecou si reverberatie se obtin prin utilizarea mai multor tipuri de filtre.

Filtrul trece-tot este adeseori utilizat ca bloc elementar pentru efecte de reverberatie. Se adauga filtrul trece-tot la un lant sau banc de filtre comb. Filtrul trece-tot nu schimba frecventele undei audio ci doar faza. Definitia unui filtru trece-tot simplu: y(n) = -gx(n) + x(n-m) +gy(n-m) unde m este intarzierea in numar de esantioane, iar g<1 este amplificarea. Diagrama de flux:

Se pot obtine diferite efecte de ecou sau reverberatie combinand filtrele precedente in diverse moduri (serie, paralel, imbricat). Unul dintre primele proiecte: Manfred Schroeder:

Efectul de intarziere (delay), implementat cu filtre nerecursive, este mai putin realist, fiind o simpla repetare a sunetului. Se pot seta timpul de intarziere si cantitatile de semnal uscat si semnal ud care se combina. Efectul multi-tap delay combina efectele intarzierilor multiple, un tap (robinet) fiind o singura intarziere. Efectul de ecou (echo) este mai realist, caci este schimbat spectrul semnalului. Se poate utiliza un filtru special astfel incat fazele ecourilor sunt modificate, simuland rate diferite de reflectare a frecventelor diferite. Utilizeaza feedback. Efectul de cor (chorus) preia un singur semnal audio, cel mai adesea voce, si il face sa sune ca voci multiple cantand la unison. Se pot selecta numarul de voci si intarzierile diferitelor copii una fata de cealalta. Frecventele diferitelor voci se pot modifica (persoanele din cor canta la niveluri diferite). Efectul de guler (flange) utilizeaza un filtru comb cu timp de intarziere variabil in timpul redarii sunetului, in intervalul aproximativ 0 la 20 ms. Se pot vizualiza dintii filtrului comb (distanta dintre dinti semnificand intarzierea introdusa) cum se apropie sau se indeparteaza pe masura ce se modifica intarzierea. Sunetul obtinut poate fi descris ca swooshy, warbly (triluri), wah wah. Parametrii selectati: intarzierea initiala si finala si procentul de feedback.

Reverberatia (reverb) este un efect care confera vibratie si culoare sunetului. Poate imbunatati timbrul instrumentelor si al vocii. Poate modifica modul in care se aude un sunet ca si cand ar proveni dintr-un anume spatiu acustic. Se considera in continuare cum se poate simula deplasarea sunetului intr-o sala. Un impuls instantaneu este emis in sala. La urechea unui ascultator sosesc: -sunetul direct de la sursa (nereflectat); -reflexiile de ordinul intai: undele reflectate prima oara de pereti si obiecte. Unghiul de incidenta este egal cu unghiul de reflexie, dar datorita suprafetelor neregulate rezulta unghiuri multiple de reflexie (difuziunea sunetului); -reflexiile de ordinul doi (secundare) provenite din reflectarea reflexiilor de ordinul intai si mai multe din cauza difuziunii. Dupa fiecare reflectare are loc pierdere de energie (descresterea amplitudinilor). Aceata neclaritate (blur) de reflexii este perceputa ca reverberatie.

Implementarea efectelor de reverberatie se face prin doua metode. 1) modelarea spatiului fizic sau a proprietatilor acustice ale unui instrument sau dispozitiv de inregistrare. Pentru incaperi se analizeaza dimensiunile, dispunerea peretilor, obiectele din incapere, materialele de constructie si de decorare, temperatura si umiditatea, numarul persoanelor din incapere. Un parametru important al unui spatiu acustic este timpul de reverberatie (timpul necesar unui sunet pentru a scadea cu 60 dB din nivelul sau original). Pe baza analizei se plaseaza filtre multiple recursive si trece-tot in configuratii seriale, paralele si imbricate. 2) metoda de raspuns la impuls. Intr-o incapere se produce un sunet foarte scurt si puternic (bataie din palme, spargerea unui balon, foc pistol de start) si se inregistreaza cum acest impuls reverbereaza in incapere. Aceasta inregistrare este raspunsul la impuls, deci un filtru, care poate fi introdus intr-o operatie de convolutie cu sunetul asupra caruia se aplica efectul (efectul se mai numeste si reverberatie de convolutie). Pe net se pot gasi numeroase fisiere profesionale cu inregistrari de raspuns la impuls (fisiere IR), simuland reverberatia unei sali de concerte, camere cu ecou, ghitari electrice, etc. Utilizand software adecvat care accepta un fisier IR se poate prelucra orice fisier audio (WAV sau AIFF) pentru adaugarea de efecte de rezonanata.

Relatia dintre convolutie si transformata Fourier Etapele operatiei de filtrare: calculeaza X(z) transformata Fourier a semnalului audio digital x(n); determina specificatiile filtrului; pe baza specificatiilor calculeaza H(z) astfel incat Y(z)=H(z)X(z), iar Y(z) are componentele de frecventa dorite; executa inmultirea H(z)X(z) pentru a obtine Y(z); executa transformarea Fourier inversa a lui Y(z) pentru a obtine y(n), semnalul filtrat in domeniul timp. Partea mai dificila a algoritmului este gasirea lui H(z). Calculul transformatei Fourier este echivalenta ca volum de calcul cu operatia de convolutie in domeniul timp:

Echivalenta celor doua operatii este data de teorema convolutiei:

Fie H(z) transformata Fourier discreta a filtrului de convolutie h(n) si fie X(z) transformata Fourier discreta a semnalului audio digital x(n). Atunci

este echivalenta cu transformata Fourier discreta inversa Y(z), unde Y(z)=H(z)X(z).

Utilizand insa FFT calculul in domeniul frecventa devine mai eficient.

PROIECTAREA FILTRELOR AUDIO


Proiectarea filtrelor FIR

Un filtru in domeniul timp este reprezentat de masca de convolutie h(n), numita si raspuns la impuls. In domeniul frecventa ii corespunde raspunsul in frecventa H(z), care se numeste si functia de transfer. Relatia dintre acestea este data de teorema convolutiei. Pentru a indica raspunsul in frecventa a unui filtru care se proiecteaza se poate utiliza un grafic de raspuns in frecventa. Exemplu: graficul pentru un filtru ideal trece-jos, cu frecventa (viteza) unghiulara de taiere C, frecventa Nyquist si frecventa de esantionare 2.

Se considera frecventa unghiulara normalizata (prin maparea frecventei Nyquist, care este din frecventa de esantionare fsamp, la valoarea ):

unde fC este frecventa de taiere. Deoarece numai frecventele cuprinse intre 0fsamp/2 pot fi digitizate corect, rezulta ca fC este cuprinsa in 0-fsamp/2, deci C. este intre 0- .

Prima etapa: gasirea raspunsului ideal la impuls care corespunde cu raspunsul ideal in frecventa. Se poate calcula ca functiei rectangulare in domeniul frecventa ii corespunde o functie sinusoidala sinc in domeniul timp:

sin( x) pentru x 0 sinc( x) x pentru x 0 1

Matematic, pentru filtrul ideal trece-jos, relatia dintre raspunsul la impuls hideal(n) si raspunsul in frecventa Hideal() este (se utilizeaza o integrala in loc de o suma, caci functia se presupune ca nu este periodica):

Rezulta:

S-a tinut cont de faptul ca Hideal() este 1 pe intervalul de la C la C. De asemenea s-a utilizat regula lui lHpital pentru trecerea la limita cand n0 (sau se poate calcula direct integrala definita pentru n=0).

Asemanator se pot obtine ecuatiile pentru filtrele ideale trece-sus si trece-banda:

Functia sinc obtinuta este infinita, deci si masca de convolutie. Pentru implementare trebuie modificata pentru a obtine o masca de convolutie finita => filtru care nu este ideal. De exemplu pentru un filtru trece-jos real graficul raspunsului in frecventa este:

Pe axa orizontala: frecventa in Hz, iar pe axa verticala fractia (intre 0 si 1) cat sunt atenuate componentele de frecventa. Uneori atenuarea se poate masura si in dB, in acest caz atenuarea este 20log10(aout/ain) dB, unde ain si aout sunt amplitudinile componentelor de frecventa inainte si dupa filtrare. Se observa benzile de trecere, tranzitie si stop, filtrarea nu este totala, ideala, observanduse unde (ripples).

La proiectarea unui filtru real este necesar sa se specifice o serie de parametrii: -pentru un filtru trece-jos frecventa de taiere fC si latimea benzii de tranzitie; -pentru un filtru trece-banda sau stop-banda frecventele care definesc banda (de trecere sau stop) f1 si f2, de asemenea deviatia benzii de trecere sau stop (rata maxima de atenuare in banda datorata rippling-ului).

Metoda fereastra (windowing method) de proiectare a filtrelor FIR: preluarea raspunsului la impuls a filtrului ideal si aplicarea unei ferestre w(n), in scopul de a obtine un raspuns finit la impuls => raspunsul in frecventa nu este ideal, se obtin rippluri. Trebuie cautata o functie fereastra care sa minimizeze aceste rippluri. Cea mai simpla functie fereastra: functia rectangulara (are valoarea 1 intr-un domeniu finit de-a lungul raspunsului infinit la impuls si 0 in rest). Astfel se trunchiaza raspunsul infinit la impuls. Dezavantaj: furnizeaza atenuare limitata in banda de stop. Alte functii fereastra: triunghiulara, Hanning, Hamming si Blackman. La aceste functii trecerea in 0 este mai lina si ripplurile din banda de stop sunt mai scazute. Dezavantaj: banda de tranzitie este mai larga.

In continuare este prezentat un algoritm de proiectare a unui filtru trece-jos (dar pe baza tabelului de raspuns la impuls se poate proiecta oricare alt filtru). Un parametru necesar tuturor filtrelor este ordinul filtrului N (numar de coeficienti), care influenteaza largimea benzii de tranzitie. Presupunand frecventa Nyquist in Hz normalizata la 0.5, iar pe aceasta scara largimea benzii de tranzitie b = 4/N. Valoarea mare a lui N permite o taiere mai abrupta a frecventelor, dar necesita un volum mai mare de calcule.

Algoritm pentru filtru FIR trece-jos.

/*Intrari: f_c, frecventa de taiere a filtrului trece-jos (Hz) f_samp, frecventa de esantionare a semnalului audio de filtrat (Hz) N, ordinul filtrului; se presupune N impar Iesiri: filtru trece-jos FIR sub forma unui vector cu N elemente */ { /*Normalizeaza f_c si _c a.i. =frecventa unghiulara Nyquist */ f_c = f_c/f_samp _c = 2**f_c middle = N/2 /*Impartire intreaga, neglijeaza restul*/ /*Creaza filtrul utilizand functia filtru trece-jos, vezi tabela*/ /*pune o valoare oarecare pentru n = 0 pentru a evita impartire prin 0*/ for n = N/2 to N/2 if (n = 0) ftr(middle) = 1 else fltr(n+middle) = sin(2**f_c*n)/( *n) fltr(middle) = 2*f_c /*Inmulteste elem. din fltr cu o functie fereastra aleasa din tabela (ex: functia Hanning) */ for n = 0 to N-1 fltr(n) = fltr(n) * (0.5 + 0.5*cos((2**n)/N)) }

Nu este cea mai buna metoda de proiectare, dar este intuitiva si se bazeaza pe relatia matematica dintre raspunsurile la impuls si in frecventa. Alte metode: metoda optimala si metoda de esantionare in frecventa. Metoda optimala distribuie in mod egal ripplurile in benzile de trecere si de stop (ripplurile se numesc equiripple). Avantajul metodei de esantionare in frecventa este implementarea nerecursiva si recursiva a filtrelor FIR, conducand la eficienta a calculelor. Un alt aspect important: efectul erorii de cuantizare asupra performantelor filtrelor.

Transformata Z Transformata Z poate fi utilizata in proiectarea filtrelor, permitand reprezentarea convenabila a modului in care frecventele sunt alterate de un filtru si analiza efectelor cuantizarii asupra performantelor filtrelor digitale. Se considera o secventa de valori discrete x(n) cu n = 0, 1, ... Transformata z a secventei este:

unde z este o variabila complexa. Este definitia transformarii unilaterale (n ia valori 0 ), transformarea z completa face suma - +.

Aplicatie. Se considera secventa x(n)=[5, -2, 3, 6, 6], presupunand x(n)=0 pentru n>4. Transformata z este o functie de variabila complexa z: Deoarece z poate fi orice numar complex, se considera z=ei si se obtine pentru 0k<N :

pentru z=ei si =2k/N, care este chiar transformata Fourier discreta, indicele k indicand faptul ca se calculeaza fiecare componenta k de frecventa (suma se calculeaza pentru fiecare componenta de frecventa). Componentele de frecventa sunt egal distantate cu

iar componenta k de frecventa este frecventa:

La calculul transformarii Fourier a lui x(n) se evalueaza X(z) in N puncte specifice din planul complex, aceste puncte reprezentand componente diferite de frecventa si sunt egal distantate pe un cerc unitate.

S-a vazut ca operatia de convolutie in domeniul timp

este echivalenta cu inmultirea in domeniul frecventa Y(z) = H(z) X(z), iar apoi se considera transformarea Fourier inversa a lui Y(z). Exprimarea cu ajutorul transformatei z este mai convenabila matematic caci ajuta la specificarea comportamentului filtrului. Un filtru IIR este definit de convolutia

iar relatia echivalenta ca transformare z este Y(z) = H(z) X(z), din care se poate extrage

H(z) fiind referita ca functia de transfer.

Pe baza acestei relatii se poate defini un filtru IIR: Fie

un filtru IIR si

functia de transfer a filtrului. Atunci:

Diagrame zero-poli si proiectarea filtrelor IIR


Transformata Fourier furnizeaza componentele de frecventa ca numere complexe. Raspunsul in frecventa a unui filtru se poate vizualiza prin reprezentarea H(z) in planul numerelor complexe (pe axa orizontala componenta reala si pe axa verticala componenta imaginara). Se considera un cerc de raza r = 1, in jurul originii, iar punctele de pe cerc corespund numerelor complexe ei, ceea ce rezulta din:

Punctul (cos,sin) corespunde lui cos+isin din planul complex, ceea ce prin formula lui Euler este ei.

Pe acest cerc se evalueaza transformata z pentru fiecare componenta de frecventa. Astfel componenta k de frecventa H(zk) se obtine prin evaluarea transformarii Fourier discrete:

Deaoarece H(z) furnizeaza raspunsul in frecventa, evaluarea lui H(zk) indica cat de mult componenta k de frecventa este atenuata de catre filtru. Se cunoaste ca:

punctele in care Y(z) = 0 se numesc zerourile lui H(z). Punctele in care X(z) = 0 se numesc polii lui H(z). Zerourile si polii lui H(z) se pot plasa pe acelasi grafic, ceea ce permite aflarea modului in care filtrul afecteaza semnalul digital, fara sa se evalueze H(zk) pentru fiecare k. De exemplu se poate afla cum frecventele mai inalte de un anumit punct sunt atenuate, iar cele sub acest punct de taiere raman neschimbate. Chiar daca Y(z) este transformata z a lui y(n)(iesirea filtrului), se poate determina Y(z) algebric.

Filtru FIR. Se considera un exemplu simplu de filtru FIR. Fie h(n) = [1, -0.5], de unde H(z) = 1 0.5z-1. Se amplifica cu z/z, obtinand:

astfel, H(z) are un zero in z=0.5 si un pol in z=0. O alta cale este plecand de la convolutie:

Transformata z are o proprietate (proprietatea de intarziere) prin care transformata z a lui x(n-1) este z-1X(z). In plus, transformata z are si proprietatea de liniaritate (transformata z a doua functii egale sunt egale si transformata z a unei sume este suma transformatelor), astfel incat daca se aplica transformata z ambilor membri ai ecuatiei:

se obtine:

si impartind prin X(z) se obtine:

obtinand acelasi rezultat.

Cunoscand zerourile si polii se pot reprezenta in planul complex in graficul numit diagrama zero-poli, de unde se pot obtine informatii despre raspunsul in frecventa al filtrului. Pentru exemplul precedent rezulta:

Pentru a evalua efectul filtrului se reprezinta fiecare frecventa k pe cerc printr-un punct Pk, unghiul format de Pk, origine si P0 fiind

Deoarece frecventa Nyquist a fost normalizata la , se vor considera numai frecventele intre 0 si , in semicercul superior. Se noteaza dzero distanta dintre Pk si zero-ul filtrului si dpole distanta dintre Pk si polul filtrului (este originea, deci dpole = 1). Raspunsul in frecventa H(z) va fi proportional cu raportul dzero/dpole, adica cu dzero (dpole = 1). Astfel, pe masura ce Pk se deplaseaza de la =0 la =, dzero creste si deci si amplitudinea frecventelor. Rezulta ca acesta este un filtru trece-sus.

Filtru IIR. Se considera filtrul dat de:

care se poate scrie:

Proprietatile de intarziere si liniaritate ale transformarii z furnizeaza:

iar in continuare

De aici zerourile sunt z = 1 si z = -1, iar polii sunt z = 0.8i si z = -0.8i.

Diagrama:

Analiza diagramei este mai dificila, deoarece exista mai multe zerouri si mai multi poli. Este necesar sa se determine cand H(z) creste, deci cand (z+1)(z-1) creste in raport cu (z+0.8)(z-0.8i). Diagrama reprezinta un filtru trece banda, avand frecventele in zona /2 atenuate cel mai putin.

Este posibil sa se proiecteze un filtru pornind de la diagrama zero-poli, plasand zerourile si polii in pozitii convenabile pentru crearea raspunsului dorit in frecventa (merge mai ales pentru filtrele simple).

Cea mai utilizata metoda de proiectare a filtrelor IIR este convertirea filtrelor analogice in filtre digitale echivalente. Metoda se bazeaza pe transformata z si pe transformata echivalenta in domeniul continuu, transformata Laplace. Cele mai utilizate filtre IIR sunt filtrele Bessel, Butterworth, Chebyshev si eliptic.
S-a discutat ca filtrele FIR sunt in general liniare ca faza, deci deplasarea de faza afecteaza in aceeasi maniera toate componentele de frecventa, insemnand ca nu introduc distorsiuni (important in muzica). Pentru filtrele IIR este necesar sa se ia masuri pentru a forta liniaritatea de faza.

Filtrele Bessel asigura cel mai bine raspuns liniar in faza.

Filtrele Butterworth au un raspuns mai slab ca liniaritate a fazei, dar asigura cea mai buna orizontalitate in benzile de trecere si stop (minimizeaza ripplurile). Dezavantaj: regiunea de tranzitie este larga.
Filtrele Chebyshev permit o eliminare mai abrupta a frecventelor decat filtrele Butterworth. Dezavantaje: raspuns de faza mai neliniar si rippluri mai importante. Filtrele eliptice (numite si filtre Cauer) au cea mai slaba liniaritate de faza, dar au cea mai abrupta eliminare a frecventelor relativ la numarul de coeficienti si distributie egala a ripplurilor (equiripple) in benzile de trecere si stop.

COMPRESIA AUDIO DIGITALA


Metode de compresie bazate pe timp S-a discutat despre metode de reducere a dimensiunilor fisierelor audio. Astfel, codificarea neliniara care se bazeaza pe faptul ca sistemul auditiv uman poate sa perceapa mici diferente intre sunete slabe, dar pe masura ce nivelul creste scade abilitatea de percepere a diferentelor. Astfel se utilizeaza mai multe niveluri de cuantizare pentru nivelurile mici si mai putine pentru niveluri mari. Aceste idei stau la baza metodelor de codificare neliniara -law si A-law pentru transmisiile telefonice. De asemenea codul de puls diferential (DPCM) permite micsorarea unui fisier audio, deoarece se inregistreaza diferenta dintre un esantion si esantionul urmator, in loc sa se inregistreaza valoarea actuala a esantionului. Variatii de DPCM includ ADPCM si modulare delta.

Codificarea A-law, codificarea -law, modularea delta si alte variatii PCM sunt metode bazate pe timp. Asta inseamna ca nu este necesar sa se transforme datele in domeniul frecventa pentru a decide unde si cum trebuie eliminate informatii. Acestea nu sunt insa metode de compresie, chiar daca reduc cantitatea de date la inregistrare, fiind considerate metode de conversie. Cele mai eficiente metode de compresie necesita informatii despre spectrul de frecventa al semnalului audio, fiind bazate pe modelare psihoacustica si codificare perceptuala.

Codificare perceptuala Codificarea perceptuala se bazeaza pe o analiza a modului in care urechea si creierul percep sunetele, numita modelare psihoacustica. Sunt exploatate elemente audio pe care urechea umana nu le poate auzi prea bine. Diferitele frecvente sunt percepute intr-o modalitate neliniara. Astfel, de exemplu octava de la middle C (C4) la C5 corespunde frecventelor de la 261.63 Hz la 523.25 Hz, in timp ce octava de la C5 la C6 corespunde frecventelor 523.25 Hz la 1046.50 Hz, insa distanta de la C4 la C5 este perceputa la fel ca distanta de la C5 la C6. Sunetele sunt percepute cel mai bine in gama de la 1000 la 5000 Hz (astfel un sunet de 100 Hz trebuie sa aibe o amplitudine mai mare ca un semnal de 1000 Hz pentru a putea fi perceput la fel, asemanator si pentru frecvente mai mari de 5000 Hz).

Abilitatea urechii de a distinge frecvente diferite scade neliniar de la frecvente mici la frecvente mari (la frecvente mici pot fi distinse sunete care difera doar prin cativa Hz, in timp ce la frecvente mari distanta trebuie sa fie mult mai mare intre frecvente pentru a putea fi distinse). => urechea este impartita in benzi de frecventa, numite benzi critice. Largimea acestor benzi este mai mica la frecvente mici (100 Hz), in timp ce la frecvente mari largimea este mare (4000 Hz). Pentru un interval scurt de timp, frecvente invecinate din aceeasi banda critica produc un efect prin care frecventa cu amplitudinea cea mai mare inhiba (copleseste) celelalte frecvente din banda, fenomen numit mascare.

Fenomenul de benzi critice este cel mai important in codificarea perceptuala, caci permite eliminarea unor frecvente care oricum nu sunt percepute. Se cunoaste ca limita de audibilitate este reprezentata de pragul de audibilitate (threshold of hearing). Cand de exemplu in aceeasi banda critica apar doua frecvente, 500 Hz cu amplitudine mai mica si 400 Hz cu amplitudine mai mare, sunetul de 400 Hz (numit tonalitatea de mascare masking tone) va inhiba sunetul de 500 Hz (frecventa mascata), ceea ce are ca efect ridicarea pragului de audibilitate din banda respectiva (nu se aude nicio frecventa cu amplitudine mai mica), aparand astfel pragul de mascare. Consecinta cea mai importanta este ce frecvetele mascate nu trebuie memorate, caci oricum nu se aud, rezultand astfel o compresie.

Practic, o mica fereastra de timp (numita cadru frame) este deplasata de-a lungul unui fisier audio, iar esantioanele dintr-un cadru sunt comprimate ca o singura unitate. Analiza spectrala imparte fiecare cadru in benzi de frecventa (de obicei 32 benzi), se calculeaza curba de mascare pentru fiecare banda, iar frecventele sub acest prag sunt eliminate. Se determina adancimea cea mai mica de biti astfel incat zgomotul de cuantizare rezultat este sub curba de mascare.

Compresia audio MPEG


MPEG (Motion Picture Experts Group) este o familie de algoritmi de compresie utilizati pentru date audio si video. A fost dezvoltat in mai multe faze: MPEG-1 (1991), MPEG-2 (1994), MPEG-4 (1998) si MPEG-7 (2003), fiecare tintind un aspect diferit al comunicatiei multimedia: -MPEG-1 pentru calitate CD si audio in jocuri video; -MPEG-2 pentru sunete multicanal surround; -MPEG-4 pentru o gama larga de date audio, inclusiv voce, MIDI, sunet high-end, sisteme interactive; -MPEG-7 (numit si Multimedia Content Description) suporta cautare si filtrare a datelor multimedia.

Fiecare faza este impartita in niveluri, Audio Layers I, II si III. Algoritmii de compresie devin mai sofisticati de la nivelul I la nivelul III, nivelul III reusind o compresie mai buna decat nivelul I, dar necesitand un timp de calcul mai mare. Astfel, MPEG-1 Layer I are o rata de compresie 4:1, Layer II 7:1 si Layer III 11:1. Uneori se utilizeaza abrevieri, de exemplu MP3 care este formatul de fisier audio MPEG-1 Audio Layer III. Se poate utiliza pentru compresie o rata de bit constanta (CBR constant bit rate) sau variabila (VBR variable bit rate). VBR permite ca pentru pasaje cu rata dinamica mai mica sa se utilizeze mai putini biti, rezultand un fisier mai mic.

Nivelul audio MPEG si rata de biti se aleg in functie de natura fisierului audio. De exemplu MPEG-1 Layer II (MP2) ofera o calitate mai buna decat MP3, avand o rata mare de biti si intarzieri mici de codare, fiind utilizat in radio digital. MP3 realizeaza o compresie mai buna, rata de biti de 128 sau 192 kb/s generand fisiere de dimensiuni rezonabile, fiind foarte popular pentru fisiere cu muzica pe net. Nivelurile MPEG sunt compatibile inapoi, astfel Layer III poate decoda stream de tip Layer I. De asemenea decoderele MPEG-2 sunt compatibile cu MPEG-1.

Compresia audio MPEG-1 MPEG-1 implementeaza conceptele de baza ale codificarii, care au fost utilizate, cu unele imbunatatiri, in MPEG-2 si AAC (Advanced Audio Coding).

Algorithm MPEG-1_audio /*Intrare: fisier audio in domeniul timp Iesire: acelasi fisier audio, comprimat*/ { Imparte fisierul audio in cadre Pentru fiecare cadru { Aplicand un banc de filtre separa semnalul in benzi de frecventa. Pentru fiecare banda de frecventa { Executa transformarea Fourier pentru a analiza spectrul de frecvente din banda Analizeaza influenta elementelor tonale si nontonale (ex tranzitorii) Analizeaza cat de mult banda de frecvente este influentata de benzile vecine Gaseste pragul de mascare si rap. semnal-masca (SMR signal-to-mask ratio) pentru banda si determina in mod corespunzator adancimea de biti in banda Cuantizeaza esantioanele din banda utilizand adancimea de biti determinata
Aplica codificarea Huffman (optional)

} Creaza un cadru cu un header si esantioanele codificate din toate benzile


} }

Etapele principale ale algoritmului sunt:

1) Imparte fisierul audio in cadre (frames) si analizeaza proprietatile psihoacustice ale fiecarui frame individual. Fiecare cadru acopera o secventa de esantioane dintr-o fereastra mica de timp. Pentru a analiza cum o frecventa mascheaza frecventele vecine este necesar sa se urmareasca esantioanele apropiate in timp. Un cadru poate sa contina 384, 576 sau 1152 de esantioane, in functie de faza si nivelul MPEG. In timpul analizei esantioanelor se plaseaza o fereastra mai larga care este putere a lui 2.

2) Prin aplicarea unui banc de filtre, separa semnalul in benzi de frecventa. Esantioanele se impart in benzi de frecventa pentru ca fiecare banda se va analiza separat. Dupa analiza proprietatilor psihoacustice ale unei benzi se determina numarul potrivit de biti pentru reprezentarea esantioanelor in acea banda. Utilizarea bancului de filtre se numeste subband coding. Considerand n filtre in banc se genereaza n copii ale semnalului, cate o copie fiind trimisa la fiecare filtru. Exemplu: in MPEG-1 n=32. Fiecare filtru lasa sa treaca numai un anumit interval de frecvente. Cantitatea de date nu creste, de exemplu daca 384 de esantioane sunt trimise la 32 de filtre, fiecare filtru va produce 12 esantioane.

Filtrele trece-banda nu sunt ideale, deci benzile de frecventa nu sunt izolate perfect. Graful de raspuns in frecventa nu este ideal, acesta are o panta, numita panta de atenuare (attenuation slope), in consecinta benzile se suprapun putin. Daca nu se ia in considerare aceasta suprapunere, va rezulta aliasing la reconstructia semnalului. Pentru eliminarea aliasing-ului se utilizeaza QMF (quadrature mirror filtering), care face ca panta de atenuare a unei benzi sa fie imaginea in oglinda a pantei de atenuare a benzii precedente, astfel incat frecventele deformate (de aliasing) sa se termine cand semnalul este reconstruit.

In MPEG-1 Layer I si Layer II benzile de frecventa sunt egale ca latime, fara sa coincida cu latimea benzilor critice de la auzul uman (care sunt mai largi cu cresterea frecventei). In MP3 se utilizeaza transformata cosinus discreta modificata (MDCT) pentru a imbunatati rezolutia de frecventa, in special in benzile joase, modeland astfel benzile critice ale auzului uman. De asemenea MP3 utilizeaza cuantizarea neliniara, unde (ca in codificarea -law), intervalele de cuantizare sunt mai largi pentru esantioane cu amplitudine mare.

3) Executa o transformare Fourier pe esantioanele din fiecare banda pentru a analiza spectrul de frecventa a benzii. Este necesar sa se determine marimea componentelor de frecventa din fiecare banda. Se creaza o alta copie a fiecarui cadru, numita sidechain, pentru aplicarea transformarii Fourier. Se utilizeaza o fereastra de 512 sau 1024 esantioane, fereastra care include esantioanele cadrului.

4) Analizeaza influenta elementelor tonale si nontonale din fiecare banda (elementele tonale sunt simple sinusoide, cum sunt frecventele legate de muzica melodica si armonica, iar elementele nontonale sunt tranzitii ca lovirea tobei sau bataia palmelor. Nu este bine sa se mascheze pentru eliminare elementele nontonale, care subliniaza semnalul audio. De asemenea daca elementele nontonale nu sunt comprimate corect pot rezulta efecte nedorite (efecte de clopotei sau pre-ecou). Cu cat fereastra de timp de analiza este mai mare, cu atat este mai buna rezolutia de frecventa, dar mai slaba rezolutia de timp. Efectul rezolutiei slabe de timp este acela ca elemente sonore care apar foarte aproape in timp nu se pot identifica corect unul fata de celalalt. Layer II si Layer III au o fereastra de timp mai mare decat Layer I, asa ca au rezolutie mai buna de timp.

5) Determina cat de mult se intinde influenta fiecarei benzi in benzile vecine de frecvente. Benzile nu sunt tratate izolat, caci poate exista un efect de mascare intre benzi. Se pot aplica functii de intindere determinate empiric.

6) Gaseste pragul de mascare si raportul semnal-masca (SMR signalto-mask ratio) pentru fiecare banda si determina adancimea de bit pentru fiecare banda in mod corespunzator. In fiecare banda o componenta de frecventa de amplitudine mare poate masca alte componente de frecventa. Precizia cu care esantioanele trebuie sa fie reprezentate depinde de raportul dintre esantionul cu amplitudinea cea mai mare supra amplitudinea sub care un esantion nu poate fi auzit, chiar daca este prezent. Este chiar definitia SMR, acest raport determinand cati biti sunt necesari pentru reprezentarea esantioanelor dintr-o banda. Fenomenul de mascare produce cresterea pragului de zgomot intr-o banda. Numarul de biti difera de la banda la banda, in functie de cat de sus este pragul de zgomot. Daca pragul este sus fata de amplitudinea maxima din banda,atunci sunt necesari mai putini biti. Mai putini biti genereaza zgomot suplimentar de cuantizare, dar acesta nu deranjeaza daca este sub pragul de mascare.

In MP3 se utilizeaza bit reservoir. In codificarea cu rata constanta de biti (CBR) toate cadrele au la dispozitie acelasi numar de biti, dar este posibil ca un cadru cu SMR mic sa transfere biti neutilizati unui cadru cu SMR mare. Aceasta nu creste rata de compresie, dar imbunatateste calitatea sunetului redat.

7) Cuantizeaza esantioanele din banda cu numarul potrivit de biti, eventual folosind codificarea Huffman. Unele sabloane de biti apar mai des si pot fi codificate cu mai putini biti decat sabloanele care apar mai rar, pentru care se utilizeaza mai multi biti. MPEG-1 Layer I si Layer II utilizeaza cuantificarea liniara, in timp ce MP3 utilizeaza cuantificarea neliniara. Dupa cuantizare valorile pot fi scalate astfel incat sa se utilizeze scara dinamica completa oferita de adancimea de biti. Factorul de scara trebuie sa se memoreze in cadru. Codificarea stereo se face prin diverse metode de compresie: -joint stereo permite ca un canal sa contina informatiile identice in ambele canale, iar celalalt canal contine diferentele; este o metoda fara pierderi; -intensity stereo inlocuieste canalele stanga si dreapta printr-un singur semnal si un vector continand informatii de directionare, obtinand cea mai mare rata de compresie, dar fiind o metoda cu pierderi; -mid/side stereo coding calculeaza un canal middle ca (left+right)/2 si un canal side (left-right)/2, care se codifica apoi cu mai putini biti, rezultand o deformare de faza mai mica decat la intensity stereo.

Standardul MPEG defineste cum trebuie sa arate un stream comprimat. Semnalul comprimat este impartit in cadre. Un cadru MPEG:

Fiecare cadru incepe cu un cuvant de sincronizare (marcheaza inceputul unui cadru nou). Headr-ul specifica rata de biti, frecventa de esantionare, modul mono sau stereo, etc. CRC (cyclic redundancy check) face verificarea la eroare. Urmeaza numarul de biti utilizati in fiecare banda, apoi factorul de scara din fiecare banda. Cea mai mare parte este reprezentata de esantioane. Se pot adauga extra informatii in format de taguri ID3 (artist, album, versuri, an, link-uri web, etc.).

MPEG-2, AAC si MPEG-4 Standardul audio MPEG-2 este impartit in trei formate: MPEG-2 Multichannel, MPEG-2 LSF (low sampling frecquency) si MPEG-2 AAC (advanced audio coding), primele doua fiind impartite in niveluri. MPEG-2 Multichannel, cum ii arata si numele, poate reprezenta mai multe canale, pana la 5.1 sunet stereo surround, cu trei difuzoare frontale, doua difuzoare spate si un subwoofer pentru tonuri joase (bass). MPEG-2 este compatibil inapoi cu MPEG-1 (fisiere MPEG-1 pot fi redate cu decoder MPEG2). MPEG-2 LSF permite frecvente de esantionare de 16, 22.05 si 24 kHz. Se mai numeste MPEG-2.5. Formatul ofera rezolutie de frecventa mai buna si deci calitate mai buna in fisierul comprimat, daca se poate utiliza rata de esantionare mai mica.

MPEG-2 AAC implementeaza avantajul modelelor pshihoacustice noi si tehnicilor de compresie corespunzatoare. Nu este compatibil inapoi cu MPEG1, fiind referit si ca MPEG-2 NBC (not backward compatible), spre deosebire de MPEG-2 Multichannel referit ca MPEG-2 BC.
AAC permite implementarea a maxim 5.1 canale (sunet surround), comprimand la o rata de 64 kb/s per canal, deci 384 kb/s total. Permite obtinerea unei calitati mai bune decat MPEG-2 Multichannel. Astfel AAC la 96 kb/s se aude mai bine decat MP3 la 128 kb/s. Pentru aceste calitati AAC este utilizat in playere portabile si telefoane mobile.

Modelul psihoacustic AAC include urmatoarele caracteristici: -transformarea cosinus discreta modificata imbunatateste rezolutia de frecventa pe masura ce semnalul este impartit in benzi de frecventa; -formarea zgomotului temporar (TNS temporal noise shaping) ajuta in manevrarea fenomenelor tranzitorii, mutand distorsiunea asociata cu compresia acestora intr-un punct din timp care nu genereaza pre-ecou; -codificarea predictiva imbunatateste compresia prin memorarea diferentei dintre o valoare urmatoare predictata si valoarea actuala (caci decodorul utilizeaza acelasi algoritm de predictie); -nu este necesar sa se memoreze toti factorii de scara, caci factorii consecutivi sunt deseori aceeasi; -pentru compresia informatiei de la canale multiple se utilizeaza o combinatie de codificare intensity si codificare stereo mid/side; Modelul de compresie AAC este caracteristica centrala pentru standardele MPEG-2 si MPEG-4. MPEG-4 este un standard larg pentru video DVD, streaming media, MIDI, obiecte multimedia, conversie text-to-speach, sinteza de sunet score-driven si interactivitate.