19.4 Răspunsul în fază

Există trei tipuri de răspuns în fază pe care un filtru le poate avea: fază zero, fază liniară și fază neliniară. Un exemplu pentru fiecare dintre acestea este prezentat în Figura 19-7. Așa cum se arată în (a), filtrul cu fază zero este caracterizat printr-un răspuns la impuls care este simetric în jurul eșantionului zero. Forma reală nu contează, doar că eșantioanele numerotate negativ reprezintă o imagine oglindă a eșantioanelor numerotate pozitiv. Când se efectuează Transformata Fourier a acestei forme de undă simetrice, faza va fi în întregime zero, așa cum se arată în (b).

Dezavantajul filtrului cu fază zero este acela că necesită utilizarea unor indici negativi, care poate fi un inconvenient să se lucreze cu ei. Filtrul cu fază liniară este o modalitate aproape de acesta. Răspunsul la impuls din (d) este identic cu cel prezentat în (a), cu excepția faptului că a fost deplasat pentru a utiliza numai eșantioane numerotate pozitiv. Răspunsul la impuls este încă simetric între stânga și dreapta; dar, locația simetriei a fost deplasată de la zero. Această deplasare are ca rezultat faza, (e), fiind o linie dreaptă, reprezentând numele: fază liniară. Panta acestei linii drepte este direct proporțională cu valoarea deplasării. Deoarece deplasarea răspunsului la impuls nu produce altceva decât o deplasare identică a semnalului de ieșire, filtrul de fază liniară este echivalent cu filtrul de fază zero în majoritatea scopurilor.

Figura (g) arată un răspuns la impuls care nu este simetric între stânga și dreapta. În mod corespunzător, faza (h) nu este o linie dreaptă. Cu alte cuvinte, are o fază neliniară. Nu confunda termenii: faza neliniară și liniară cu conceptul de liniaritate a sistemului discutat în capitolul 5. Deși ambele utilizează cuvântul liniar, ele nu sunt legate.

De ce are cineva grijă dacă faza este liniară sau nu? Figurile (c), (f) și (i) prezintă răspunsul. Acestea sunt răspunsurile la impuls ale fiecăruia dintre cele trei filtre. Răspunsul la impuls nu este altceva decât un răspuns la treaptă pozitivă, urmat de un răspuns la treaptă negativă. Răspunsul la impuls este utilizat aici pentru că afișează ceea ce se întâmplă cu ambele fronturi în creștere și în scădere dintr-un semnal. Aici este partea importantă: filtrele cu fază zero și cu fază liniară au fronturi stânga și dreapta care arată la fel, în timp ce filtrele cu fază neliniară au fronturi stânga și dreapta care arată diferit. Multe aplicații nu pot tolera fronturi stânga și dreapta care arată diferit. Un exemplu este afișarea unui osciloscop, unde această diferență ar putea fi interpretată greșit ca o caracteristică a semnalului care se măsoară. Un alt exemplu este în prelucrarea video. Vă puteți imagina pornirea televizorului pentru a găsi urechea stângă a actorului tău preferat care arată diferit de urechea dreaptă?

Este ușor să faceți un filtru FIR (Finite Impulse Response) să aibă fază liniară. Acest lucru se datorează faptului că răspunsul la impuls (kernel filtru) este specificat direct în procesul de proiectare. Efectuarea kernelului de filtrare cu simetrie stânga-dreapta este tot ceea ce este necesar. Nu este cazul în cazul filtrelor IIR (recursive), deoarece coeficienții de recurență sunt ceea ce este specificat, nu răspunsul la impuls. Răspunsul impuls al unui filtru recursiv nu este simetric între stânga și dreapta și, prin urmare, are o fază neliniară.

Figura 19-7 Filtre cu faza zero, liniară și neliniară.

Un filtru de fază zero are un răspuns la impuls care are simetrie stânga-dreapta în jurul eșantionului cu număr zero, ca în (a). Acesta rezultă într-un răspuns în frecvență care are o fază compusă în întregime din zerouri, ca în (b). Răspunsurile la impuls de fază zero sunt de dorit din cauză că răspunsurilor lor la treaptă sunt simetrice între sus și jos, făcând să arate la fel fronturile stânga și dreapta ale impulsurilor, cum este arătat în (c). Filtrele cu faza liniară au simetrie stânga-dreapta, dar nu în jurul eșantionului zero, cum este ilustrat în (d). Aceasta rezultă în o fază care este liniară, adică o linie dreaptă, cum se arată în (e). Răspunsul la impuls cu faza liniară, arătat în (f), are toate avantajele răspunsului la impuls de fază zero. În comparație, răspunsurile la impuls ale filtrelor de fază neliniară nu sunt simetrice între stânga și dreapta, ca în (g), și fazele nu sunt o linie dreaptă, ca în (h). Partea rea este că fronturile stânga și dreapta ale răspunsului la impuls nu sunt la fel, ca în (i).

Circuitele electronice analogice au aceeași problemă cu răspunsul în fază. Imaginați-vă un circuit compus din rezistoare și condensatoare care stau pe birou. Dacă intrarea a fost întotdeauna zero, ieșirea va fi întotdeauna zero. Când se aplică un impuls la intrare, condensatorii se încarcă rapid la o anumită valoare și apoi încep să se descarce exponențial prin rezistoare. Răspunsul la impuls (adică semnalul de ieșire) este o combinație a acestor exponențiale scăzătoare. Răspunsul la impuls nu poate fi simetric, deoarece ieșirea a fost zero înainte de impuls, iar scăderea exponențială nu atinge niciodată o valoare zero, din nou. Proiectanții de filtre analogice atacă această problemă cu filtrul Bessel, prezentat în Cap. 3. Filtrul Bessel este proiectat să aibă o fază liniară cât de cât posibilă; dar, este mult sub performanța filtrelor digitale. Abilitatea de a furniza o fază liniară exactă reprezintă un avantaj clar al filtrelor digitale.

Din fericire, există o modalitate simplă de a modifica filtrele recursive pentru a obține o fază zero. Figura 19-8 prezintă un exemplu despre modul în care funcționează acest lucru. Semnalul de intrare care urmează să fie filtrat este arătat în (a). Figura (b) arată semnalul după ce a fost filtrat printr-un filtru low-pass cu un singur pol. Deoarece acesta este un filtru cu fază neliniară, fronturile din stânga și din dreapta nu arată la fel; ele sunt versiuni inversate unul altuia. Așa cum a fost descris anterior, acest filtru recursiv este implementat pornind de la eșantionul 0 și lucrând spre eșantionul 150, calculând fiecare eșantion de-a lungul drumului.

Acum, să presupunem că, în locul mișcării de la eșantionul 0 la eșantionul 150, vom începe la eșantionul 150 și vom merge spre eșantionul 0. Cu alte cuvinte, fiecare eșantion din semnalul de ieșire se calculează din eșantioanele de intrare și de ieșire din dreapta eșantionului pe care se lucrează. Aceasta înseamnă că ecuația de recursiune, Ec. 19-1, este schimbată la:

Ecuația 19-9 Inversa ecuației de recursiune.

Aceasta este aceeași ca ec. 19-1, cu excepția că semnalul este filtrat de la stânga la dreapta, în loc de la dreapta la stânga.

Figura (c) prezintă rezultatul acestei filtrări inverse. Aceasta este analog trecerii unui semnal analogic printr-un circuit electronic RC în timp ce rulează timpul înapoi.

Filtrarea în direcția inversă nu produce nici un beneficiu în sine; semnalul filtrat are în continuare fronturi stânga și dreaptă care nu arată la fel. Magia se întâmplă când sunt combinate filtrarea directă și inversă. Figura (d) rezultă din filtrarea semnalului în direcția înainte și apoi filtrarea din nou în direcția inversă. Voila! Aceasta produce un filtru recursiv cu fază zero. De fapt, orice filtru recursiv poate fi convertit la fază zero cu această tehnică de filtrare bidirecțională. Singura penalitate pentru această performanță îmbunătățită este un factor de doi în timpul de execuție și complexitatea programului.

Figura 19-8 Filtrare recursivă bidirecțională

Un semnal de intrare impuls dreptunghiular este arătat în (a). Figura (b) arată semnalul după ce a fost filtrat cu un filtru low-pass recursiv cu un singur pol, trecând de la stânga-la-dreapta. În (c) semnalul a fost procesat în aceeași manieră, cu excepția mișcării filtrului de la dreapta-la-stânga. Figura (d) arată semnalul după ce a fost filtrat stânga-la-dreapta și apoi dreapta-la-stânga. Orice filtru recursiv poate fi făcut cu fază zero prin utilizarea acestei tehnici.

Cum găsiți răspunsurile la impuls și în frecvență ale filtrului global? Amplitudinea răspunsului în frecvență este aceeași pentru fiecare direcție, în timp ce fazele sunt opuse în semn. Când cele două direcții sunt combinate, amplitudinea devine la pătrat, în timp ce faza se anulează la zero. În domeniul timp, aceasta corespunde convoluției răspunsului inițial la impuls cu o versiune inversată a sa de la stânga-la-dreapta. De exemplu, răspunsul la impuls al unui filtru low-pass cu un singur pol este o exponențială unilaterală. Răspunsul la impuls al filtrului bidirecțional corespunzător este o exponențială unilaterală care scade spre dreapta, în convoluție cu o exponențială unilaterală care scade spre stânga. Trecând prin matematică, aceasta se dovedește a fi o exponențială pe ambele părți care scad atât la stânga cât și la dreapta, cu aceeași constantă de scădere ca și filtrul original.

Unele aplicații au doar o porțiune a semnalului în computer la un anumit moment, cum ar fi sistemele care alimentează în mod alternativ și continuu datele de intrare și ieșire. Filtrarea bidirecțională poate fi utilizată în aceste cazuri prin combinarea ei cu metoda de suprapunere-adăugare descrisă în ultimul capitol. Când ajungeți la întrebarea cât de lung este răspunsul la impuls, nu spuneți "infinit". Dacă faceți acest lucru, va trebui să umpleți fiecare segment de semnal cu un număr infinit de zerouri. Rețineți că răspunsul la impuls poate fi trunchiat atunci când acesta a scăzut sub nivelul de zgomot rotunjit, adică aproximativ 15-20 constante de timp. Fiecare segment va trebui umplut cu zerouri atât pe partea stângă, cât și pe dreapta pentru a permite expansiunea pe durata filtrării bidirecționale.

Secțiunea următoare: Utilizarea numerelor întregi