19.1 Metoda recursivă

Pentru a începe discuția despre filtrele recursive, imaginați-vă că trebuie să extrageți informații de la un semnal, x[ ]. Nevoia este atât de mare încât angajați un profesor de matematică experimentat pentru a procesa datele. Sarcina profesorului este de a filtra x[ ] pentru a produce y[ ], care, sperăm, conține informațiile de interes. Profesorul își începe lucrarea de calculare al fiecărui punct în y[ ] în funcție de un algoritm care este închis ermetic în creierul său supradezvoltat. La un moment dat, apare cel mai nefericit eveniment. Profesorul începe să bolborăsească despre singularități analitice și transformări fracționare și alte demoni din coșmarul unui matematician. Este clar că profesorul și-a pierdut mințile. Te uiți cu neliniște cum profesorul și algoritmul său sunt luați de mai mulți bărbați în haine albe.

Vă revizuiți frenetic notele profesorului pentru a găsi algoritmul pe care îl folosea. Veți constata că el a finalizat calculul punctelor y[0] ... y [27] și era pe punctul de a începe pe punctul y[28]. După cum se arată în figura 19-1, vom lăsa variabila n să reprezinte punctul care se calculează în prezent. Aceasta înseamnă că y[n] este eșantionul 28 în semnalul de ieșire, y[n - 1] este eșantionul 27, y[n - 2] este eșantionul 26, etc. În mod similar x[n] este punctul 28 din semnalul de intrare, x[n- 1] este punctul 27, etc. Pentru a înțelege algoritmul utilizat, ne întrebăm: "Ce informații au fost disponibile profesorului pentru a calcula y[n], eșantionul pe care se lucrează acum?"

Cea mai evidentă sursă de informație este semnalul de intrare, adică valorile: x[n], x[n - 1], x[n - 2], .... Profesorul ar fi putut multiplica fiecare punct din semnalul de intrare cu un coeficient și adăugând produsele împreună:

Ar trebui să recunoașteți că nu este nimic mai mult decât simpla convoluție, cu coeficienții: a0, a1, a2, …, care formează kernelul de convoluție. Dacă aceasta ar fi fost tot ce profesorul făcea, nu era nevoie de această poveste sau de acest capitol. Totuși, există o altă sursă de informație la care profesorul a avut acces: valorile calculate anterior ale semnalului de ieșire, păstrate în: y[n - 1], y[n - 2], y[n - 3], .... Folosind aceste informații suplimentare, algoritmul ar avea forma:

Ecuația 19-1 Ecuația de recursiune.

În această ecuație, x[ ] este semnal de intrare, y[ ] este semnal de ieșire iar a și b sunt coeficienți.

În cuvinte, fiecare punct al semnalului de ieșire se găsește prin înmulțirea valorilor din semnalul de intrare cu coeficienții "a", înmulțirea valorilor calculate anterior din semnalul de ieșire cu coeficienții "b" și adunarea produselor împreună. Observați că nu există o valoare pentru b0 , deoarece aceasta corespunde eșantionului care a fost calculat. Ecuația 19-1 este numită ecuația de recursiune, iar filtrele care o folosesc sunt numite filtre recursive. Valorile "a" și "b" care definesc filtrul sunt numite coeficienții de recurență. În practica actuală, pot fi utilizați nu mai mult de aproximativ o duzină de coeficienți de recurență sau filtrul devine instabil (adică, ieșirea crește continuu sau oscilează). Tabelul 19-1 prezintă un exemplu de program pentru filtru recursiv.

Filtrele recursive sunt utile deoarece acestea depășesc o convoluție mai lungă. De exemplu, ia în considerare ce se întâmplă atunci când o funcție delta este trecută printr-un filtru recursiv. Ieșirea este răspunsul la impuls al filtrului și va fi de obicei o oscilație sinusoidală care descrește exponențial. Datorită acestui răspuns la impuls de lungime infinită, filtrele recursive sunt adesea numite filtre cu răspuns infinit la impuls (IIR). De fapt, filtrele recursive fac convoluția semnalul de intrare cu un kernel de filtru foarte lung, deși sunt implicați doar câțiva coeficienți.

Figura 19-1 Notația filtrului recursiv
Eșantionul de ieșire de calculat y[n] este determinat de valorile din semnalul de intrare x[n], x[n-1], x[n-2], ... precum și de valorile calculate anterior în semnalul de ieșire y[n-1], y[n-2], y[n-3], ... .Aceste figuri sunt arătate pentru n = 28.

Relația dintre coeficienții de recurență și răspunsul filtrului este dată de o tehnică matematică numită transformata-z , subiectul capitolului 31. De exemplu, transformata-z poate fi folosită pentru sarcini precum: conversia între coeficienții de recursiune și răspunsul în frecvență, combinând etajele în cascadă și paralele într-un singur filtru, proiectând sisteme recursive care imită filtre analogice etc. Din păcate, transformata-z este foarte matematică și mai complicată decât sunt dispuși majoritatea utilizatorilor DSP să facă față. Acesta este domeniul celor care se specializează în DSP.

Există trei modalități de a găsi coeficienții de recurență fără a trebui să înțelegeți transformata-z. În primul rând, acest capitol oferă ecuații de proiectare pentru mai multe tipuri de filtre recursive simple. În al doilea rând, capitolul 20 furnizează un program de calculator "carte de bucate" pentru proiectarea celor mai sofisticate filtre Chebyshev low-pass și high-pass. În al treilea rând, Capitolul 26 descrie o metodă iterativă pentru proiectarea filtrelor recursive cu un răspuns arbitrar în frecvență.

Figura 19-2 Filtru low-pass cu un singur pol

Filtrele recursive digitale pot mima filtre analogice compuse din rezistoare și condensatoare. Așa cum se arată în acest exemplu, un singur filtru recursiv low-pass netezește frontul unei intrări treaptă, întocmai ca un filtru RC electronic.

Secțiunea următoare: Filtre recursive cu un singur pol