14.1 Principiile filtrelor

Filtrele digitale sunt o parte foarte importantă a DSP. De fapt, performanța lor extraordinară este unul dintre motivele-cheie pentru care DSP a devenit atât de populară. Filtrele au două utilizări: separarea semnalului și restaurarea semnalului. Separarea semnalului este necesară atunci când un semnal a fost contaminat cu interferențe, zgomot sau alte semnale. De exemplu, imaginați-vă un dispozitiv pentru măsurarea activității electrice a inimii unui bebeluș (EKG) încă în uter. Semnalul brut va fi probabil corupt de respirația și bătăile inimii mamei. Un filtru poate fi folosit pentru a separa aceste semnale, astfel încât acestea să poată fi analizate individual.

Restaurarea semnalului este utilizată atunci când un semnal a fost distorsionat într-un fel. De exemplu, o înregistrare audio realizată cu echipamente necorespunzătoare poate fi filtrată pentru a reprezenta mai bine sunetul așa cum a avut loc. Un alt exemplu este deblurarea unei imagini obținute cu o lentilă necorespunzător concentrată sau o cameră neclară.

Aceste probleme pot fi atacate cu filtre analogice sau digitale. Care e mai bun? Filtrele analogice sunt ieftine, rapide și au o gamă dinamică mare atât în ​​amplitudine, cât și în frecvență. Filtrele digitale, în comparație, sunt mult superioare în ceea ce privește nivelul de performanță care poate fi atins. De exemplu, un filtru digital trece-jos prezentat în capitolul 16 are un câștig de 1 +/- 0,0002 de la DC la 1000 Hz și un câștig mai mic de 0,0002 pentru frecvențe peste 1001 Hz. Întreaga tranziție are loc în numai 1 Hz. Nu aștepta asta de la un circuit de amplificator operațional! Filtrele digitale pot obține de mii de ori performanțe mai bune decât filtrele analogice. Aceasta face o diferență dramatică în modul în care sunt abordate problemele de filtrare. Cu filtre analogice, accentul se pune pe manevrarea limitărilor electronicii, cum ar fi acuratețea și stabilitatea rezistoarelor și condensatoarelor. În comparație, filtrele digitale sunt atât de bune încât performanța filtrului este frecvent ignorată. Accentul se îndreaptă spre limitările semnalelor și aspectele teoretice privind prelucrarea acestora.

Este comun în DSP să spunem că semnalele de intrare și ieșire ale unui filtru sunt în domeniul timp. Acest lucru se datorează faptului că semnalele sunt de obicei create prin eșantionare la intervale regulate de timp. Dar nu este singura modalitate de a avea loc eșantionarea. Cea de-a doua modalitate cea mai comună de eșantionare este la intervale egale în spațiu. De exemplu, imaginați citirea simultană dintr-o serie de senzori de deformație montați la distanțe de un centimetru de-a lungul unei aripi de aeronavă. Multe alte domenii sunt posibile; totuși, timpul și spațiul sunt de departe cele mai comune. Când vedeți termenul domeniu timp în DSP, amintiți-vă că acesta se poate referi de fapt la eșantioane prelevate în timp, sau poate fi o referire generală la orice domeniu în care sunt luate eșantioane.

După cum se arată în figura 14-1, fiecare filtru liniar are un răspuns la impuls, un răspuns la treaptă și un răspuns în frecvență. Fiecare dintre aceste răspunsuri conține informații complete despre filtru, dar într-o altă formă. Dacă unul dintre cele trei este specificat, celelalte două sunt fixe și pot fi calculate direct. Toate trei reprezentări sunt importante, deoarece descriu modul în care filtrul va reacționa în condiții diferite.

Cea mai simplă modalitate de a implementa un filtru digital este prin convoluția semnalului de intrare cu răspunsul la impuls al filtrului digital. Toate filtrele liniare posibile pot fi făcute în acest mod. (Acest lucru ar trebui să fie evident. Dacă nu, probabil că nu aveți baza pentru a înțelege această secțiune privind proiectarea filtrului. Încercați să revedeți secțiunea anterioară privind principiile DSP). Atunci când răspunsul la impuls este folosit în acest fel, proiectanții de filtre îi dau un nume special: kernel-ul filtrului (nucleul).

Există și un alt mod de a face filtre digitale, numit recursivitate. Când un filtru este implementat prin convoluție, fiecare eșantion din ieșire este calculat prin ponderarea eșantioanelor din intrare și adunarea lor împreună. Filtrele recursive sunt o extensie a acestui fapt, utilizând valorile calculate anterior de la ieșire, în afară de punctele de intrare. În loc să folosească un kernel de filtru, filtrele recursive sunt definite de un set de coeficienți de recursivitate. Această metodă va fi discutată în detaliu în capitolul 19. Pentru moment, important este că toate filtrele liniare au un răspuns la impuls, chiar dacă nu îl utilizați pentru implementarea filtrului. Pentru a găsi răspunsul la impuls al unui filtru recursiv, pur și simplu introduceți un impuls și vedeți ce rezultă. Răspunsurile la impuls ale filtrelor recursive sunt compuse din sinusoide care decad exponențial în amplitudine. În principiu, acest lucru face ca răspunsurile la impuls să fie infinit de lungi. Totuși, amplitudinea scade în cele din urmă sub zgomotul de rotunjire al sistemului, iar restul eșantioanelor poate fi ignorat. Din cauza acestei caracteristici, filtrele recursive sunt numite și filtre "Infinite Impulse Response" sau IIR. În comparație, filtrele efectuate prin convoluție se numesc filtre Finite Impulse Response sau FIR.

Figura 14-1 Parametrii filtrului.

Fiecare filtru liniar are un răspuns la impuls, un răspuns la treaptă și un răspuns în frecvență. Răspunsul la treaptă (b) poate fi găsit prin integrarea discretă a răspunsului la impuls (a). Răspunsul în frecvență poate fi găsit din răspunsul la impuls utilizând Transformata Fourier Rapidă (FFT) și poate fi afișat fie pe o scală liniară (c), fie în decibeli (d).

După cum știți, răspunsul la impuls este ieșirea unui sistem atunci când intrarea este un impuls. În acest mod, răspunsul la treaptă este ieșirea atunci când intrarea este o treaptă (numit și front și deci răspuns la front). Deoarece treapta este integrala impulsului, răspunsul la treaptă este integrala răspunsului la impuls. Acest lucru oferă două modalități de a găsi răspunsul la treaptă: (1) introduceți o formă de undă treaptă în filtru și vedeți ce rezultă sau (2) integrați răspunsul la impuls. (Pentru a fi corect din punct de vedere matematic: integrarea este utilizată cu semnale continue, în timp ce integrarea discretă, adică o running sum, este utilizată cu semnale discrete). Răspunsul în frecvență poate fi găsit prin aplicarea DFT (folosind algoritmul FFT) răspunsului la impuls. Acest lucru va fi revăzut mai târziu în acest capitol. Răspunsul în frecvență poate fi reprezentat pe o axă verticală liniară, cum ar fi în (c) sau pe o scală logaritmică (decibeli), așa cum se arată în (d). Scala liniară este cea mai bună pentru a arăta ripplu și roll-off ale benzii de trecere, în timp ce scala decibel este necesară pentru a indica atenuarea benzii de oprire.

Un bel (în onoarea lui Alexander Graham Bell) înseamnă că puterea este schimbată cu un factor de zece. De exemplu, un circuit electronic care are 3 beli de amplificare produce un semnal de ieșire de 10 × 10 × 10 = 1000 ori puterea intrării. Un decibel (dB) este o zecime dintr-un bel. Prin urmare, valorile în decibeli: -20dB, -10dB, 0dB, 10dB & 20dB, înseamnă rapoartele de putere: 0,01; 0,1; 1; 10; respectiv 100. Cu alte cuvinte, fiecare zece decibeli înseamnă că puterea s-a schimbat cu un factor de zece.

De obicei, doriți să lucrați cu amplitudinea unui semnal, nu cu puterea lui. De exemplu, imaginați-vă un amplificator cu câștig de 20 dB. Prin definiție, aceasta înseamnă că puterea semnalului a crescut cu un factor de 100. Deoarece amplitudinea este proporțională cu rădăcina pătrată a puterii, amplitudinea ieșirii este de 10 ori mai mare decât amplitudinea intrării. În timp ce 20 dB înseamnă un factor de 100 de putere, înseamnă doar un factor de 10 în amplitudine. Fiecare douăzeci de decibeli înseamnă că amplitudinea s-a schimbat cu un factor de zece. În forma ecuației:

Ecuația 14-1 Definiția decibelilor.

Decibelii sunt o modalitate de exprimare a raportului dintre două semnale. Raportul puterilor (P1 și P2) utilizează o ecuație diferită de raportul amplitudinilor (A1 și A2).

Ecuațiile de mai sus utilizează logaritmul de bază 10; totuși, multe limbaje de calculator oferă doar o funcție pentru logaritmul de bază e (log natural, scris logex sau ln x). Log natural poate fi utilizat prin modificarea ecuațiilor de mai sus: dB = 4,342945 loge (P2/P1) și dB = 8,685890 loge (A2/A1).

Deoarece decibelii reprezintă o modalitate de a exprima raportul dintre două semnale, ele sunt ideale pentru a descrie câștigul unui sistem, adică raportul dintre semnalul de ieșire și semnalul de intrare. Dar, inginerii folosesc decibelii și pentru a specifica amplitudinea (sau puterea) unui singur semnal, prin referirea la un anumit standard. De exemplu, termenul: dBV înseamnă că semnalul este referit la un semnal de 1 Vrms. De asemenea, dBm indică un semnal de referință care produce 1 mW într-o sarcină de 600 ohmi (aproximativ 0,78 Vrms).

Dacă nu înțelegeți nimic despre decibeli, amintiți-vă două lucruri: În primul rând, -3dB înseamnă că amplitudinea este redusă la 0,707 (și puterea este, prin urmare, redusă la 0,5). În al doilea rând, memorați următoarele conversii între decibeli și rapoartele de amplitudine: