6.7 Răspunsul tranzitoriu al filtrului IIR

Ați văzut că ieșirea unui filtru general IIR este dată de

unde Nx este numărul coeficienților forward, Ny este numărul de coeficienți reverse și ao se presupune a fi egal cu 1. Considerați un filtru de ordin secundar unde Nx = Ny = 2. Ecuația de diferențe corespunzătoare este:

Pentru a calcula ieșirea curentă (la i-lea moment) a filtrului, trebuie să știți ultimele două ieșiri (la momentele (i-1) și (i-2)), precum și intrarea curentă (la i-lea moment) și ultimele două intrări (la momentele (i-1) și (i-2)).

Acum, presupuneți că tocmai ați început procesul de filtrare luând primul eșantion de date de intrare. Dar, momentan nu aveți încă intrările anterioare (x[i-1] și x[i-2]) sau ieșirile anterioare (y[i-1] și y[i-2]). Deci, în mod implicit, aceste valori sunt presupuse a fi zero.

Când obțineți cel de-al doilea eșantion de date, aveți deja intrarea anterioară (x[i-1]) și ieșirea anterioară (y[i-1]) pe care ați calculat-o din primul eșantion, dar încă nu x[i-2] și y[i-2]. Din nou, în mod implicit, acestea se presupun a fi zero. Numai după ce începem procesarea celui de-al treilea eșantion de date de intrare, toți termenii din partea dreaptă a ecuației (5) de mai sus au valorile calculate anterior. Astfel, există o anumită cantitate de întârziere înaintea căreia există valori calculate pentru toți termenii de pe RHS (right-hand side) ai ecuației cu diferențe care descrie filtrul. Ieșirea filtrului în acest interval de timp este tranzitorie și este cunoscută ca răspunsul tranzitoriu. Pentru filtrele low-pass și high-pass implementate în biblioteca LabVIEW/BridgeVIEW Analysis, durata răspunsului tranzitoriu sau întârzierea este egală cu ordinul filtrului. Pentru filtre bandpass și bandstop, această întârziere este 2*ordin.

Filtrele IIR din biblioteca de analiză conțin următoarele proprietăți.

• Indicii negativi rezultând din ecuația (4) se presupun a fi zero la prima apelare a VI-ului.

• Deoarece se presupune că starea inițială a filtrului este zero (indici negativi), apare o tranziție proporțională cu ordinul filtrului înainte ca filtrul să atingă starea stabilă. Durata răspunsului tranzitoriu sau întârzierea, pentru filtrele low-pass și high-pass este egală cu ordinul filtrului: întârziere = ordin.

• Durata răspunsului tranzitoriu pentru filtrele bandpass și bandstop este de două ori mai mare decât ordinul filtrului:întârziere = 2*ordin.

Deci, de fiecare dată când se apelează unul dintre VI-urile filtru, acest tranzitoriu apare la ieșire. Puteți elimina acest răspuns tranzitoriu pe apeluri succesive, permițând state memory a VI-ului. Pentru a activa state memory, setați comanda init/cont a VI-ului la TRUE (filtrare continuă). Veți vedea cum să faceți acest lucru într-un exercițiu ulterior.

  • Numărul de elemente din secvența filtrată este egal cu numărul de elemente din secvența de intrare.

  • Filtrul păstrează valorile interne ale stării filtrului după finalizarea filtrării.

Exercițiul 6-4

Obiectiv: Pentru a vedea diferența dintre răspunsul filtrului cu și fără permiterea state memory.

1. Deschideți Low Pass Filter VI din Lvspcex.llb.

2. Rulați VI-ul cu valorile afișate pe panoul frontal de mai sus, dar cu ordin = 7. (Nu vă faceți griji pentru controlul init/ cont (init: F) pentru moment.)

Observați Sine Waveform graph superior, care arată două trasee.

Traseul punctat alb este semnalul combinat, în timp ce traseul cu linie plină de culoare verde este semnalul filtrat.

3. Modificați ordinul filtrului la 10 și executați VI-ul. Observați primele câteva valori ale traseului care corespund semnalului filtrat.

4. Schimbați ordinul filtrului la 15, 20 și 25 și executați VI-ul. De fiecare dată, observați tranziția care apare la începutul traseului corespunzător semnalului filtrat. Această tranziție poate fi eliminată după prima apelare către VI prin activarea state memory. Aceasta se face prin setarea controlului init/cont al VI-lui la TRUE. Setarea acestui control la TRUE este echivalentă cu filtrarea continuă și, cu excepția primului apel către VI, fiecare apel succesiv nu va avea tranziție.

5. Acum, conectați un control Boolean, așa cum este prezentat în diagramă, la intrarea init/cont a Butterworth Filter VI.

6. Cu comanda init/cont (init: F) setată la OFF și order = 15, executați VI-ul de mai multe ori. Observați prezența tranziției la începutul semnalului filtrat de fiecare dată când rulează VI-ul.

7. Acum, setați comanda init/cont (init: F) pe ON și rulați VI-ul de mai multe ori. Observați că tranziția este prezentă doar pentru prima dată când este rulat VI-ul. La apelurile succesive la VI, tranziția nu mai există.

8. Când terminați, salvați VI-ul.

Sfârșitul exercițiului 6-4

6.8. Caracteristicile filtrelor FIR