6.6 Filtre IIR

Ați văzut că filtrele cu răspuns infinit la impuls (IIR) sunt filtre digitale a căror ieșire este calculată prin adunarea unei sume ponderate a valorilor de ieșire anterioare cu o sumă ponderată a valorilor de intrare trecute și curente. Numind valorile de intrare cu x[.] și valorile de ieșire cu y[.], ecuația generală cu diferențe finite caracterizând filtrele IIR este

unde Nx este numărul de coeficienți direcți (b[k]) și Ny este numărul de coeficienți inverși (a[j]). Eșantionul de ieșire la indexul i al eșantionului prezent este suma intrărilor prezente și trecute scalate (x[i] și x[i-k] când j ≠ 0) și ieșirile anterioare scalate (y[i-j]). De obicei, Nx este egal cu Ny și această valoare este cunoscută ca ordinul filtrului.

Notă: În toate filtrele IIR implementate în LabVIEW/BridgeVIEW, coeficientul a0 este 1.

Filtre IIR practice

Un ordin inferior reduce operațiile aritmetice și, prin urmare, reduce eroarea de calcul. O problemă cu filtrarea de ordin superior este faptul că vă confruntați rapid cu erori de precizie la ordine mult mai mari decât 20-30. Acesta este motivul principal pentru implementările în "cascadă" față de forma "directă".

Consultați Manualul de referință pentru VI-uri Analiză pentru mai multe detalii despre implementările în formă de cascadă. Se recomandă ca ordinele 1-20 să fie rezonabile, 30 fiind o limită superioară. Un ordin superior înseamnă mai mulți coeficienți de filtru și, prin urmare, un timp de procesare mai lung.

Răspunsul la impuls al filtrului descris în ecuația (3) este de lungime infinită pentru coeficienți nenuli. În aplicațiile practice ale filtrelor, totuși, răspunsul la impuls al filtrelor stabile IIR scade aproape de zero într-un număr finit de eșantioane.

În practică, răspunsul în frecvență al filtrelor diferă de cel al filtrelor ideale. În funcție de forma răspunsului în frecvență, filtrele IIR pot fi clasificate în

    • Filtre Butterworth

    • Filtre Chebyshev

    • Filtre Chebyshev II sau Chebyshev inverse

    • Filtre eliptice sau Cauer

Caracteristicile fiecărui tip de filtru sunt descrise mai jos.

Filtre Butterworth

Un filtru Butterworth nu are ripplu nici în banda de trecere, nici în banda de oprire. Din cauza lipsei de ripplu, este cunoscut ca filtru maxim plat. Răspunsul său în frecvență este caracterizat de un răspuns neted la toate frecvențele.

Următoarea ilustrație prezintă răspunsul unui filtru Butterworth low-pass de diferite ordine - scalarea axei x este în termeni de f/ fNyquist, în timp ce axa y este scalată astfel încât câștigul benzii de trecere este unitar.

Regiunea în care ieșirea filtrului este egală cu 1 (sau foarte aproape de 1) este banda de trecere a filtrului. Regiunea în care ieșirea este 0 (sau aproape de 0) este banda de oprire. Regiunea dintre banda de trecere și banda de oprire unde ieșirea se schimbă treptat de la 1 la 0 este regiunea de tranziție.

Avantajul filtrelor Butterworth este un răspuns în frecvență neted, monoton descrescător, în regiunea de tranziție. După cum se vede din figură, cu cât este mai mare ordinul filtrului, cu atât este mai abruptă regiunea de tranziție.

Filtre Chebyshev

Răspunsul în frecvență al filtrelor Butterworth nu este întotdeauna o aproximare bună a răspunsului filtrului ideal datorită pantei rolloff lente între banda de trecere (porțiunea de interes în spectru) și banda de oprire (partea nedorită a spectrului). Pe de altă parte, filtrele Chebyshev au o regiune de tranziție mai mică decât un filtru Butterworth de același ordin. Dar, acest lucru se realizează în detrimentul ripplului în banda de trecere. Folosind LabVIEW sau BridgeVIEW, puteți specifica valoarea maximă a ripplului (în dB) în banda de trecere pentru un filtru Chebyshev. Caracteristicile de răspuns în frecvență ale filtrelor Chebyshev au un răspuns de magnitudine echiripple (toate ripplurile au aceeași magnitudine) în banda de trecere, răspunsul în magnitudine scăzând monoton în banda de oprire și o rolloff mai ascuțită în regiunea de tranziție, în comparație cu filtrele Butterworth de același ordin.

Graficul următor prezintă răspunsul unui filtru low-pass Chebyshev de ordine diferite. În acest caz, scalarea axei y este în decibeli. Încă o dată, rețineți că înclinarea regiunii de tranziție crește cu creșterea ordinului. De asemenea, numărul de rippluri în banda de trecere crește cu creșterea ordinului.

Avantajul filtrelor Chebyshev asupra filtrelor Butterworth este trecerea mai clară între bandă de trecere și bandă de oprire cu un filtru de ordin inferior. Așa cum am menționat mai înainte, aceasta produce erori absolute mai mici și viteze de execuție mai ridicate.

Filtre Chebyshev II sau Chebyshev inverse

Filtrele Chebyshev II, cunoscute și sub numele de Chebyshev inverse sau Chebyshev de tip II, sunt similare cu filtrele Chebyshev, cu excepția faptului că filtrele Chebyshev II au rippluri în banda de oprire (spre deosebire de banda de trecere) și sunt maxim plate în banda de trecere (spre deosebire de stopband). Pentru filtrele Chebyshev II, puteți specifica cantitatea de atenuare (în dB) din banda de oprire. Caracteristicile de răspuns în frecvență ale filtrelor Chebyshev II sunt răspunsul în magnitudine echiripple în banda de oprire, răspunsul în magnitudine descrescător monoton în banda de trecere și o rolloff mai abruptă decât filtrele Butterworth de același ordin. Următorul grafic descrie răspunsul unui filtru low-pass Chebyshev II de ordine diferite.

Avantajul filtrelor Chebyshev II asupra filtrelor Butterworth este acela că filtrele Chebyshev II oferă o tranziție mai clară între banda de trecere și banda de oprire cu un filtru de ordin inferior. Această diferență corespunde la o eroare absolută mai mică și vitezei de execuție mai ridicate. Un avantaj al filtrelor Chebyshev II asupra filtrelor obișnuite Chebyshev este că filtrele Chebyshev II au rippluri în banda de oprire în locul benzii de trecere.

Filtre eliptice

Ați văzut că filtrele Chebyshev (tip I sau II) au o regiune de tranziție mai ascuțită decât un filtru Butterworth de același ordin. Acest lucru se datorează faptului că acestea permit rippluri în banda de trecere (tip I) sau banda de oprire (tip II). Filtrele eliptice distribuie ripplurile atât pe banda de trecere, cât și pe banda de oprire.

Equiripplurile în banda de trecere și banda de oprire caracterizează răspunsul în magnitudine al filtrelor eliptice. Prin urmare, în comparație cu același ordin al filtrelor Butterworth sau Chebyshev, forma eliptică oferă tranziția cea mai clară între banda de trecere și banda de oprire. Din acest motiv, filtrele eliptice sunt destul de populare în aplicațiile în care sunt necesare benzi de tranziție scurte și unde ripplurile pot fi tolerate. Graficul următor descrie răspunsul unui filtru eliptic low pass de ordine diferite. Scalarea axei x este în termeni de f/fNyquist, în timp ce axa y este scalată astfel încât câștigul în banda de trecere este unitar.

Observați marginea de tranziție ascuțită pentru filtrele eliptice chiar de ordine joase. Pentru filtrele eliptice, puteți specifica cantitatea de ripplu (în dB) din banda de trecere, precum și atenuarea (în dB) în banda de oprire.

Comparație filtre IIR

O comparație a răspunsurilor în frecvență low-pass pentru cele patru modele diferite de filtre IIR, toate având același ordin (cinci), este prezentată în figura de mai jos.

Filtrul eliptic are cea mai îngustă regiune de tranziție, în timp ce filtrul Butterworth are cea mai largă.

Următorul tabel compară tipurile de filtre.

VI-urile filtre digitale LabVIEW și BridgeVIEW gestionează intern toate aspectele de proiectare, calcule, gestionarea memoriei și filtrarea efectivă a datelor și sunt transparente pentru utilizator. Nu este nevoie să fii expert în filtre digitale sau teoria filtrelor digitale pentru a procesa datele. Tot ce trebuie să faceți este să specificați parametrii de control, cum ar fi ordinul filtrului, frecvențele cutoff, cantitatea de ripplu și atenuarea în stopband.

Cum decid ce filtru să utilizez?

Acum că ați văzut diferitele tipuri de filtre și caracteristicile acestora, se pune întrebarea cu privire la tipul de filtru care este cel mai potrivit pentru aplicația dvs. În general, unii dintre factorii care influențează alegerea unui filtru adecvat sunt dacă aveți nevoie de fază liniară, dacă puteți tolera ripplu și dacă este necesară o bandă îngustă de tranziție. Următoarea schemă flux este de așteptat să servească drept îndrumare pentru selectarea filtrului corect.

Rețineți că, în practică, poate fi necesar să experimentați mai multe opțiuni diferite înainte de a găsi în cele din urmă cea mai bună opțiune.

Exercițiul 6-1

Obiectiv: să filtreze eșantioanele de date care constau din zgomot de înaltă frecvență, cât și din semnal sinusoidal.

În acest exercițiu, combinați o undă sinus generată de Sine Pattern VI cu zgomot de înaltă frecvență. (Zgomotul de înaltă frecvență este obținut prin filtrare high-pass a zgomotului alb uniform cu un filtru Butterworth.) Semnalul combinat este apoi filtrat low-pass printr-un alt filtru Butterworth pentru a extrage unda sinusoidală.

1. Deschideți un VI nou și construiți panoul frontal așa cum este arătat mai sus.

A. Selectați un digital control din paleta Numeric și etichetați-l cu Frequency.

b. Selectați Vertical Slide din paleta Numeric și etichetați-l Cut-Off Frequency.

c. Selectați alt Vertical Slide din paleta Numeric și etichetați-l Filter Order.

d. Selectați un Waveform Graph din paleta Graf pentru afișarea semnalului zgomotos și un alt Waveform Graph pentru a afișa semnalul original.

2. Construiți diagrama bloc după cum se arată mai jos.

Sine Pattern VI (Functions » Analysis » Signal Generation subpalette) generează o undă sinus a frecvenței dorite.

Uniform White Noise VI (Functions » Analysis » Signal Generation subpalette) generează zgomot alb uniform care este adăugat la semnalul sinusoidal.

Butterworth Filter VI (Functions » Analysis » Filters subpalette) filtrează high-pass zgomotul.

Rețineți că generați 10 cicluri de undă sinus și există 1000 de eșantioane. De asemenea, frecvența de eșantionare la VI-ul Butterworth Filter din partea dreaptă este specificată la 1000 Hz. Deci, efectiv generați un semnal de 10 Hz.

3. Comutați înapoi pe panoul frontal. Selectați frecvența de 10 Hz, o frecvență cut-off de 25 Hz și un ordin de filtru de 5. Rulați VI-ul.

4. Reduceți ordinul filtrului la 4, 3 și 2 și observați diferența în semnalul filtrat. Explicați ce se întâmplă atunci când micșorați ordinul filtrului.

În special, observați forma de undă filtrată. La început, există o regiune "plată". Lungimea acestei regiuni depinde de ordinul filtrului. Secțiunea 6.7 discută acest lucru în continuare.

5. Când ați terminat, salvați VI-ul ca Extract the Sine Wave.vi în biblioteca Lvspcex.llb.

6. Închideți VI-ul.

Sfârșitul exercițiului 6-1

Exercițiul 6-2

Obiectiv: Compararea caracteristicilor de răspuns în frecvență ale diferitelor filtre IIR.

1. Deschideți filtrul IIR Filter Design VI din biblioteca Lvspcex.llb.

Panoul frontal oferă posibilitatea de a alege diferite tipuri de filtre.

Controlul Filter Design selectează unul dintre cele patru modele diferite de filtre: Butterworth, Chebyshev, Chebyshev Type II sau Elliptic.

Controlul Filter Type selectează unul din patru tipuri diferite de filtre: high-pass, low-pass, bandpass, sau bandstop.

Controlul Display selectează afișarea răspunsului în magnitudine (magnitudinea răspunsului în frecvență) liniară, sau logaritmică.

2. Diagrama bloc este prezentată mai jos.

După cum se vede în diagrama bloc, rețineți că răspunsul în frecvență este obținut prin aplicarea unui impuls la intrarea unui filtru și calculând transformata Fourier a ieșirii.

Impulse Pattern VI (Functions » Analysis » Signal Generation subpalette) generează un impuls care este dat filtrului selectat. Numărul de puncte de eșantionare este egal cu 1024.

Real FFT VI (Functions » Analysis » Digital Signal Processing subpalette) calculează transformata Fourier a ieșirii filtrului.

Array Subset VI (Functions » Array subpalette) selectează 513 puncte FFT din 1024, pentru a genera un spectru unilateral.

Complex to Polar VI (Functions » Numeric » Complex subpalette) convertește ieșirea complexă a Real FFT VI la reprezentarea sa polară (magnitudine și fază). Magnitudinea poate fi apoi reprezentată grafic în scale dB, sau liniară.

În mod normal, faza afișată este limitată între -π și +π. Deci, chiar dacă faza se află în afara intervalului -π și +π, este "înfășurată" în jur pentru a se afla între aceste valori. Unwrap Phase VI (Functions » Analysis » Digital Signal Processing subpalette) este utilizat pentru a "desface" faza la adevărata ei valoare, chiar dacă valoarea absolută a ei depășește π.

3. Selectați Filter Design de tip Butterworth, Filter Type = Low-pass, Ripple = 10, Attenuation = 40, Order = 4, Display = Logarithmic, sampling rate = 1000, Lower Cut-Off Frequency = 100 și Higher Cut-Off Frequency = 300. Rulați VI-ul.

4. Creșteți ordinul filtrului la 5, 10, 15 și 20 și notați diferența în răspunsurile de magnitudine și fază. În special, ce schimbări se observă în regiunea de tranziție?

5. Păstrați ordinul filtrului fixat la 5 și schimbați Filter Design pentru a selecta diferite filtre IIR. Rețineți modificările în traseele mărimii și fazei. Pentru un ordin dat filtrului, care dintre cele patru filtre diferite are cea mai mică regiune de tranziție?

6. Când ați terminat, opriți VI-ul făcând clic pe butonul STOP din colțul din dreapta jos.

7. Închideți VI-ul. Nu salvați nicio modificare.

Sfârșitul exercițiului 6-2

Exercițiul 6-3 (opțional)

OBIECTIV: Utilizarea un filtru digital pentru a elimina frecvențele nedorite.

În acest exercițiu, veți aduna două unde sinus de frecvențe diferite și apoi filtrați forma de undă rezultată folosind un filtru low-pass Butterworth pentru a obține numai una dintre undele sinus.

1. Deschideți Low Pass Filter VI din biblioteca Lvspcex.llb. Acest VI prezintă modul de proiectare a unui filtru low-pass Butterworth pentru a elimina un semnal de 10 Hz dintr-un semnal de 2 Hz.

Panoul frontal

Numărul de eșantioane care urmează a fi generate și frecvența de eșantionare sunt controlate de controalele samples și, respectiv, sampling frequency.

Amplitudinea și frecvența celor două unde sinus pot fi controlate de comenzile amplitude 1, amplitude 2, frequency 1, și frequency 2 pe panoul frontal.

Controlul cutoff freq:fl controlează frecvența cutoff a filtrului low-pass, al cărui ordin este ajustat de comanda order.

2. Examinați diagrama bloc.

Sine Wave VI generează cele două unde sinusoidale.

Amplitude and Phase Spectrum VI determină spectrul de amplitudine și de fază al ieșirii semnalului filtrat. În acest exercițiu, vă interesează doar spectrul de amplitudine.

Inversul frecvenței de eșantionare dă intervalul de timp, Δt, între eșantioane.

Amintiți-vă că distanța dintre frecvențe Δf este obținută prin împărțirea frecvenței de eșantionare la numărul de eșantioane.

Cele două unde sinus combinate au frecvențe de 10 Hz și 2 Hz. Pentru a le separa, trebuie să setați frecvența cutoff a filtrului low-pass undeva între aceste două valori.

3. Păstrați controlul cutoff freq:fl la 7 Hz, executați VI-ul. Observați că amplitudinea semnalului de 2 Hz este mult mai mare decât cea a semnalului de 10 Hz.

4. Reduceți ordinul filtrului la 5 și executați VI-ul. Repetați cu un ordin de 3. Ce observi despre amplitudinile spectrului?

5. Măriți ordinul la 12 și executați VI-ul. Observați amplitudinile spectrului. Explicați ce se întâmplă.

6. Când ați terminat, închideți VI-ul. Nu salvați nicio modificare.

Sfârșitul exercițiului 6-3

6.7. Răspunsul tranzitoriu al filtrelor IIR