3.4 Filtre analogice pentru conversia datelor

Figura 3-7 prezintă o diagramă bloc a unui sistem DSP, așa cum o dorește teorema eșantionării. Înainte de a întâlni convertorul analogic-digital, semnalul de intrare este procesat cu un filtru electronic trece-jos pentru a elimina toate frecvențele de deasupra frecvenței Nyquist (jumătate din rata de eșantionare). Acest lucru se face pentru a preveni aliasingul în timpul eșantionării și este denumit în mod corespunzător un filtru antialias. În celălalt capăt, semnalul digitizat este trecut printr-un convertor digital-analogic și un alt filtru trece-jos setat la frecvența Nyquist. Acest filtru de ieșire este denumit filtru de reconstrucție și poate include creșterea frecvenței descrisă anterior. Din păcate, există o problemă serioasă cu acest model simplu: limitările filtrelor electronice pot fi la fel de proaste ca și problemele pe care încearcă să le împiedice.

Intrare Intrare analogică Intrare Ieșire Ieșire Ieșire analogică filtrată digitizată digitizată analogică S/H analogică

Figura 3-7

Filtre electronice analogice utilizate pentru a respecta teorema eșantionării.

Filtrul electronic plasat înaintea unui ADC este un filtru antialias. El este utilizat pentru a elimina componentele de frecvență mai sus de o jumătate din rata de eșantionare care ar introduce alias pe durata eșantionării. Filtrul electronic plasat după un DAC este un filtru de reconstrucție. El elimină, de asemenea, frecvențele de mai sus de rata Nyquist și poate include o corecție pentru zeroth-order hold.

Dacă aveți un interes major în software, probabil că vă gândiți că nu aveți nevoie să citiți această secțiune. Greșit! Chiar dacă ați promis că nu veți atinge niciodată un osciloscop, o înțelegere a proprietăților filtrelor analogice este importantă pentru succesul DSP. În primul rând, caracteristicile fiecărui semnal digital pe care îl întâlniți depinde de tipul de filtru antialias utilizat atunci când a fost achiziționat. Dacă nu înțelegeți natura filtrului antialias, nu puteți înțelege natura semnalului digital. În al doilea rând, viitorul DSP-ului este să înlocuiască hardware cu software. De exemplu, tehnicile multirate prezentate mai târziu în acest capitol reduc nevoia de filtre antialias și de reconstrucție prin trucuri de software. Dacă nu înțelegeți hardware-ul, nu puteți crea un software care să-l înlocuiască. În al treilea rând, o mare parte din DSP este legată de schema filtrului digital. O strategie comună este să începeți cu un filtru analogic echivalent și să îl convertiți în software. Capitolele ulterioare presupun că aveți cunoștințe de bază despre tehnicile de filtrare analogică.

Trei tipuri de filtre analogice sunt frecvent utilizate: Chebyshev, Butterworth și Bessel (numit și filtru Thompson). Fiecare dintre acestea este proiectat pentru a optimiza un parametru de performanță diferit. Complexitatea fiecărui filtru poate fi ajustată prin selectarea numărului de poli, un termen matematic care va fi discutat în capitolele ulterioare. Cu cât mai mulți poli intr-un filtru, cu atât mai multă electronică necesită și cu atât mai bine funcționează. Fiecare dintre aceste denumiri descrie ceea ce face filtrul, nu un aranjament particular de rezistoare și condensatoare. De exemplu, un filtru Bessel cu șase poli poate fi implementat cu mai multe tipuri diferite de circuite, toate având aceleași caracteristici generale. Pentru scopurile DSP, caracteristicile acestor filtre sunt mai importante decât modul în care sunt construite. Cu toate acestea, vom începe cu un segment scurt privind proiectarea electronică a acestor filtre pentru a oferi un cadru global.

Figura 3-8 prezintă un bloc de bază comun pentru schema filtrului analogic, circuitul Sallen-Key modificat. Acesta este numit după autorii unei lucrări din anii 1950 care descrie tehnica. Circuitul arătat este un filtru trece-jos cu doi poli care poate fi configurat ca oricare dintre cele trei tipuri de bază. Tabelul 3-1 furnizează informațiile necesare pentru a selecta rezistoarele și condensatoarele corespunzătoare. De exemplu, pentru a proiecta un filtru Butterworth de 1 kHz, 2 poli, Tabelul 3-1 furnizează parametrii: k1 = 0,1592 și k2= 0,586. Selectând arbitrar R1 = 10K și C = 0,01uF (valori comune pentru circuite A.O.), R și Rf pot fi calculate ca 15,95 K și 5,86 K, respectiv. Se rotunjesc aceste două valori la cele mai apropiate rezistoare standard de 1%, rezultând R = 15,8 K și Rf = 5,90 K. Toate componentele trebuie să fie de 1% precizie sau mai bună.

Figura 3-8

Circuitul Sallen-Key, un bloc de bază pentru schema filtrului activ.

Circuitul arătat implementează un filtru trece-jos cu 2 poli. Filtrele de ordin mai mare (mai mulți poli) pot fi formate prin etaje legate în cascadă. Găsiți k1 și k2 din tabelul 3-1, selectați arbitrar R1 și C (încercați 10K și 0,01 uF) și apoi calculați R și Rf din ecuațiile figurii. Parametrul fc este frecvența cut-off a filtrului, în hertz.

Tabelul 3-1

Parametrii pentru proiectarea filtrelor Bessel, Butterworth și Chebyshev (ripplu 6%) (stage = etaj)

Utilizarea unui A.O. particular nu este critică, atâta timp cât frecvența de câștig unitar este de 30 până la 100 de ori mai mare decât frecvența cutoff a filtrului. Aceasta este o cerință ușoară atâta timp cât frecvența cutoff a filtrului este sub 100 kHz.

Filtrele de patru, șase și opt poli sunt formate prin legarea în cascadă a 2,3 și respectiv 4 din aceste circuite. De exemplu, Fig. 3-9 prezintă schema unui filtru Bessel cu 6 poli creat prin legarea în cascadă a trei etaje. Fiecare etaj are valori diferite pentru k1 și k2 așa cum se prevede în tabelul 3-1, rezultând diferite rezistoare și condensatoare utilizate. Aveți nevoie de un filtru trece-sus? Schimbați doar componentele R și C în circuite (lăsând Rf și R1 singur).

Figura 3-9

Un filtru Bessel cu șase poli, format prin legarea în cascadă a trei circuite Sallen-Key. Acesta este un filtru trece-jos cu o frecvență cut-off de 1 kHz.

Acest tip de circuit este foarte comun pentru producția de mici cantități și pentru aplicații de cercetare și dezvoltare; totuși, producția serioasă necesită ca filtrul să fie realizat ca un circuit integrat. Problema este că este dificil să faci rezistoare direct în siliciu. Răspunsul este filtrul cu condensator comutat. Figura 3-10 ilustrează funcționarea sa prin compararea cu o rețea RC simplă. Dacă o funcție treaptă este introdusă într-un filtru trece-jos RC, ieșirea crește exponențial până când se egalează cu intrarea. Tensiunea pe condensator nu se schimbă instantaneu, deoarece rezistența restricționează fluxul de sarcină electrică.

Filtrul cu condensator comutat funcționează prin înlocuirea rețelei rezistor-condensator de bază cu două condensatoare și un comutator electronic. Condensatorul nou adăugat este mult mai mic decât valoarea condensatorului deja existent, să zicem 1% din valoarea acestuia. Comutatorul conectează alternativ condensatorul mic între intrare și ieșire la o frecvență foarte înaltă, de obicei de 100 de ori mai rapid decât frecvența cutoff a filtrului. Când comutatorul este conectat la intrare, condensatorul mic se încarcă rapid la orice tensiune se află în prezent pe intrare. Când comutatorul este conectat la ieșire, sarcina de pe condensatorul mic este transferată la condensatorul mare. Într-un rezistor, rata transferului de sarcină este determinată de rezistența sa. Într-un circuit cu condensator comutat, viteza transferului de sarcină este determinată de valoarea condensatorului mic și de frecvența de comutare. Aceasta are ca rezultat o caracteristică foarte utilă a filtrelor cu condensator comutat: frecvența de cutoff a filtrului este direct proporțională cu frecvența de ceas utilizată pentru a acționa comutatorul. Acest lucru face ca filtrul cu condensator comutat să fie ideal pentru sistemele de achiziție a datelor care funcționează cu mai mult de o rată de eșantionare. Acestea sunt dispozitive ușor de utilizat; plătiți zece dolari și aveți performanța unui filtru cu opt poli în interiorul unui singur IC cu 8 pini.

Rezistor-Condensator

Condensator comutat

Figura 3-10 Funcționare unui filtru cu condensator comutat.

Filtrele cu condensator comutat utilizează comutatoare și condensatoare pentru a mima rezistoare. Cum se vede în răspunsurile treaptă echivalente, două condensatoare și un comutator pot realiza aceeași funcție ca o rețea rezistor-condensator.

Acum, pentru partea importantă: caracteristicile celor trei tipuri de filtre clasice. Primul parametru de performanță pe care dorim să îl explorăm este forma frecvenței cutoff. Un filtru low-pass este proiectat pentru a bloca toate frecvențele de deasupra frecvenței cutoff (stop-band=banda de oprire), în timp ce trec toate frecvențele de mai jos (passband = banda de trecere). Figura 3-11 prezintă răspunsul în frecvență al acestor trei filtre pe o scală logaritmică (dB). Aceste grafice sunt arătate pentru filtre cu o frecvență cutoff de un hertz, dar ele pot fi scalate direct la orice frecvență cutoff pe care trebuie să o utilizați. Cum filtrează aceste filtre? Chebyshev este clar cel mai bun, Butterworth este mai rău, iar Bessel este absolut groaznic! După cum probabil ați presupus, aceasta este ceea ce Chebyshev este proiectat să facă, roll-off (scăderea amplitudinii) cât mai rapid posibil.

Din păcate, chiar și un Chebyshev cu 8 poli nu este la fel de bun ca ce ați dori pentru un filtru antialias. De exemplu, imaginați-vă o eșantionare de 12 biți la 10.000 de eșantioane pe secundă. Teorema eșantionării dictează că orice frecvență de peste 5 kHz va produce alias, ceea ce doriți să evitați. Cu puțină ghicire, decideți că toate frecvențele de peste 5 kHz trebuie să fie reduse în amplitudine cu un factor de 100, asigurându-vă că orice frecvențe de alias vor avea o amplitudine mai mică de un procent. Privind fig. 3-11c, veți găsi că un filtru Chebyshev cu 8 poli, cu o frecvență cutoff de 1 hertz, nu atinge o atenuare (reducerea semnalului) de 100 până la aproximativ 1,35 hertzi. Scalând aceasta pentru exemplu, frecvența cutoff a filtrului trebuie să fie setată la 3,7 kHz, astfel încât orice peste 5 kHz să aibă atenuarea dorită. Aceasta rezultă într-o bandă de trecere între 3,7 kHz și 5 kHz risipită pe roll-off-ul neadecvat al filtrului analogic.

Un punct subtil: factorul de atenuare de 100 în acest exemplu este probabil suficient chiar dacă există 4096 trepte în 12 biți. Din fig. 3-4, 5100 hertzi vor fi alias la 4900 hertzi, 6000 hertzi vor fi alias la 4000 herți, etc. Nu-ți pasă ce amplitudini ale semnalelor sunt între 5000 și 6300 hertzi, pentru că ele sunt alias în regiunea inutilizabilă între 3700 hertzi și 5000 de hertzi. Pentru ca o frecvență să fie alias în banda de trecere a filtrului (0 la 3,7 kHz), aceasta trebuie să fie mai mare de 6300 hertzi sau de 1,7 ori frecvența cutoff a filtrului de 3700 hertzi. Așa cum se arată în fig. 3-11c, atenuarea oferită de un filtru Chebyshev cu 8 poli, la 1,7 ori frecvența cutoff, este de aproximativ 1300, mult mai adecvată decât 100 cu care am început analiza. Morala acestei povestiri: În majoritatea sistemelor, banda de frecvență cuprinsă între aprox. 0,4 și 0,5 din frecvența de eșantionare este o zonă de deșeuri inutilizabilă de roll-off-ul filtrului și semnale alias. Acesta este un rezultat direct al limitărilor filtrelor analogice.

Răspunsul în frecvență al filtrului perfect trece-jos este plat pe întreaga bandă de trecere. Toate filtrele arată excelent în acest sens în figura 3-11, dar numai pentru că axa verticală este afișată pe o scală logaritmică. O altă poveste este spusă atunci când graficele sunt convertite la o scală liniară verticală, așa cum se arată în figura 3-12. Ripplul de pass-band poate fi văzut acum în filtrul Chebyshev (variații valide în amplitudinea frecvențelor trecute). De fapt, filtrul Chebyshev obține roll-off excelent, permițând acest ripplu passband. Atunci când este permis mai mult ripplu passband într-un filtru, se poate realiza un roll-off mai rapid. Toate filtrele Chebyshev proiectate folosind tabelul 3-1 au un ripplu al benzii de trecere de aproximativ 6% (0,5 dB), un compromis bun și o alegere comună. O schemă similară, filtrul eliptic, permite ripplu atât în ​​banda de trecere, cât și în banda de oprire. Deși este mai greu de proiectat, filtrele eliptice pot realiza un compromis chiar mai bun între roll-off și ripplu benzii de trecere.

Scală log

Figura 3-11

Răspunsul în frecvență a trei filtre pe o scală logaritmică.
Filtrul Chebyshev are roll-off cel mai ascuțit.

Scală liniară

Figura 3-12

Răspunsul în frecvență a celor trei filtre pe o scală liniară.
Filtrul Butterworth oferă cea mai plată bandă de trecere.

În comparație, filtrul Butterworth este optimizat pentru a oferi cea mai abruptă roll-off posibilă fără a permite ripplu în banda de trecere. Acesta este numit în mod obișnuit filtru plat maxim și este identic cu un Chebyshev conceput pentru ripplu zero al banzii de trecere. Filtrul Bessel nu are ripplu în banda de trecere, dar roll-off este mult mai rău decât la Butterworth.

Ultimul parametru de evaluat este răspunsul la treaptă, modul în care filtrul răspunde când intrarea se schimbă rapid de la o valoare la alta. Figura 3-13 prezintă răspunsul treaptă al fiecăruia dintre cele trei filtre. Axa orizontală este arătată pentru filtre cu o frecvență cut-off de 1 hertz, dar poate fi scalată (invers) pentru frecvențe cutoff mai mari. De exemplu, o frecvență cutoff de 1000 Hz ar arăta un răspuns treaptă în milisecunde, mai degrabă decât secunde. Filtrele Butterworth și Chebyshev depășesc (overshoot) și prezintă ringing (oscilații care scad încet în amplitudine). În comparație, filtrul Bessel nu are nici una din aceste probleme urâte.

Figura 3.13 Răspunsul treaptă a celor trei filtre.

Timpii arătați pe axa orizontală corespund unei frecvențe cut-off de un hertz. Bessel este filtrul optim când overshoot și ringing trebuie minimizate.

Figura 3-14 Răspunsul la impuls al filtrelor Bessel și Chebyshev.

O proprietate cheie a filtrului Bessel este că fronturile de creștere și scădere la ieșirea filtrului sunt similare. In jargon de domeniu, aceasta se numește fază liniară. Figura (b) arată rezultatul trecerii unui impuls din (a) printr-un filtru Bessel cu 4 poli. Ambele fronturi sunt netezite în manieră similară. Figura (c) arată rezultatul trecerii (a) printr-un filtru Chebyshev cu 4 poli. Fontul din stânga oscilează pe partea de sus, în timp ce frontul din dreapta oscilează pe partea de jos. Multe aplicații nu pot tolera această distorsiune.

Figura 3-14 ilustrează în continuare această caracteristică foarte favorabilă a filtrului Bessel. Figura (a) prezintă o formă de undă pulsată, care poate fi văzută ca o treaptă de creștere, urmată de o treaptă de cădere. Figurile (b) și (c) arată modul în care această formă de undă ar apărea după filtrele Bessel și Chebyshev, respectiv. Dacă acesta ar fi un semnal video, de exemplu, distorsiunea introdusă de filtrul Chebyshev ar fi devastatoare! Overshoot ar schimba luminozitatea marginilor obiectelor comparativ cu centrele lor. Mai rău, partea stângă a obiectelor ar arăta luminoasă, în timp ce partea dreaptă a obiectelor ar părea întunecată. Multe aplicații nu pot tolera performanțe slabe în răspunsul la treaptă. Acesta este locul unde filtrul Bessel strălucește; fără overshoot și fronturi simetrice.

Secțiunea următoare: Selectarea filtrului antialias