Progettiamo i filtri considerando l’aliasing ed il sotto campionamento

filtri digitali

Parlare di filtri oggi vuol dire non riuscire ad essere particolarmente originali. Non è certamente un argomento nuovo ma è sicuramente molto appassionante per tutti coloro che si occupano di elettronica analogica, lavorano con l'audio, soprattutto i puristi del suono che ben conoscono il sotto-campionamento. Senza contare che gestire un filtro è un'operazione ormai quotidiana nell'ambito del marketing e della pubblicità: chi usa Photoshop e lavora su saturazione e bilanciamento dei toni non fa altro che usare filtri digitali. Gli appassionati di videogiochi ben conoscono il fenomeno dell'Aliasing ed hanno imparato a gestirlo con filtri opportuni. Il fatto è che i filtri sono dovunque. Sono analogici e digitali e la loro funzione è vitale e nei sistemi di controllo embedded sono sempre più impiegati. Oggi ve li raccontiamo meglio provando a dare una mano soprattutto chi tra voi sta cominciando adesso.

Ci siamo già occupati di filtri su queste pagine, anche soltanto per fare un semplice esperimento di elettronica analogica.
La verità è che è davvero difficile immaginare un sistema che non abbia bisogno del filtraggio, indipendentemente dallo scopo per cui il sistema è stato progettato. Avete mai provato a pensare quante applicazioni ne richiedono uno? Immaginate che tutte quelle in cui serve fare metering già hanno bisogno di eliminare componenti di errore casuale ma anche sistemiche. Poi ci sono tutte le applicazioni in cui la risposta in frequenza, e quindi il diagramma di Bode ma anche quello di Nyquist, deve essere strettamente controllata. Qui le componenti di rumore giocano un ruolo fondamentale perché alterano la sagomatura spettrale del segnale in ingresso e modificano la struttura dell'uscita prevista.
A seconda del tipo di applicazione, com'è noto, esistono filtri passa alto, passa basso, passa banda ma anche elimina banda e filtri Notch, sicuramente tra i più difficili da progettare vista l'altissima selettività.
(filtro passa-banda)
(filtro passa-alto)
Ci siamo anche occupati di parlare della precisione con la quale possiamo descrivere un filtro. Naturalmente ne esistono di diversi tipi e sono classificati anche in funzione della particolare risposta in frequenza che sono in grado di produrre. Filtri ellittici, di Butterworth, di Bessel, di Chebyshev e così via dicendo, l'elenco è davvero lungo.
(filtro di Bessel del 3° ordine)
(filtro di Butterworth)
(filtri di Butterworth di diverso ordine)
(filtro di Chebyshev del 4° ordine)
Ma non soltanto la risposta in frequenza li caratterizza: possono essere attivi o passivi, a seconda che siano composti di soli elementi dotati di impedenza oppure di componenti, per l'appunto, attivi. Se c'è un blocco che guadagna, oggi realizzato tramite un amplificatore operazionale con una opportuna rete di resistenze, il sistema funzionerà certamente molto meglio perché la risposta in frequenza può essere controllata con più facilità ed efficacia.
Uno dei metodi fondamentali per studiare un sistema di questo tipo è il luogo delle radici che, insieme con i diagrammi di cui abbiamo parlato in precedenza, costituisce uno strumento indispensabile per caratterizzare il funzionamento del sistema anche oltre l'intervallo di frequenza di interesse.
Tutti i filtri, a seconda del numero di poli e zeri di cui la risposta in frequenza è costituita, propongono pendenze e tutti noi sappiamo che un filtro passa basso del prim'ordine propone una risposta in frequenza con una pendenza di 20 dB/decade e che ogni contributo ulteriore comporta un aumento della stessa quantità e pertanto 2 poli significano 40 dB/decade, 3 vogliono dire 60 e così via dicendo.
Con i filtri digitali le cose sono leggermente diverse ma non troppo; essi svolgono il loro compito grazie a calcoli ed algoritmi e pertanto lavorano soltanto su segnali digitali, ovvero digitalizzati e quindi discretizzati, esattamente come abbiamo visto all'interno dell'articolo in cui abbiamo parlato della FFT.
Altre categorie, un altro metodo per differenziarli, ma questo vale soltanto per quelli digitali, per valutare proprio la loro risposta all'impulso. Si tratta, cioè, di filtri FIR, in cui la risposta è "finita", oppure di filtri IIR, che hanno risposta "infinita". La trasformata di Fourier (FFT) fa capitolo a parte.
Altra possibilità sono le capacità comunicate ovvero gli switched capacitor: si tratta di una struttura ibrida che dovrebbe e potrebbe essere molto più appropriatamente chiamata "filtri tempo discreti" piuttosto che digitali. Questa è una sottile differenza che però è fondamentale comprendere: i filtri campionano l'ingresso e quindi lo leggono soltanto ad intervalli regolari ma lavorano su segnali che sono analogici nelle ampiezze e pertanto si può fare il paragone riferendosi alla DTFT piuttosto che alla DFT.

L'Aliasing

D'accordo, fantastico, meraviglioso, direte voi. Ma quindi? A che servono? Cosa fanno davvero? Chi di voi è ancora alle prime armi certamente questa informazione non l'ha avuta perché tutto quel che vi abbiamo spiegato fino a questo momento è una casistica.
Adesso però vediamo a che servono effettivamente, realmente.
Quando vediamo un filtro, magari passa basso, al lavoro, di solito esso precede un ADC, al quale sarà poi demandato il compito di digitalizzare il segnale. D'altronde tutto questo è abbastanza evidente: i segnali provengono dal mondo analogico per poi essere elaborati dai nostri DSP, computer e così via dicendo. Lo scopo dei filtri, come accennavamo e come naturalmente si è capito a questo punto, è quello di limitare la banda utile perché evidentemente non tutta è utile. Questo dipende dal fatto che il mondo analogico per sua stessa natura non è limitato così come non è limitato il generico fenomeno fisico in esame così neanche è limitato un processo aleatorio, al quale tipo di solito si fa riferimento quando ci riferiamo al rumore.
I segnali possono essere periodici oppure privi di periodo: nel primo caso sono naturalmente infiniti nel secondo caso sono comunque infiniti perché il periodo è solo uno ed è infinito, per l'appunto.
E che c'entra l'Aliasing? Per rispondere a questa domanda innanzitutto dobbiamo spiegare di che cosa si tratta.
È un fenomeno il cui nome deriva dalla parola "alias" e che ha diverse manifestazioni evidenti nella vita di tutti i giorni. In linea generale possiamo dire che si tratta della confusione che si verifica nel momento in cui una certa quota parte dello spettro si sovrappone ad un'altra alterando sostanzialmente la percezione o la lettura o l'interpretazione del segnale originale.
Ne esistono diverse manifestazioni evidenti, una delle quali è l'effetto che si verifica nella risonanza magnetica: se l'oggetto che si sta esaminando è di dimensioni superiori rispetto al campo di visuale, l'immagine viene ricostruita con le strutture esterne ripiegate sullo strato esaminato.
Quando si campiona una sinusoide, per esempio, tale fenomeno può verificarsi perché se il numero di campioni non è sufficientemente numeroso (il criterio è quello del teorema di Shannon), la ricostruzione sarà sempre un'onda sinusoidale però di frequenza molto più bassa.
Questi due esempi sono uno pratico e l'altro definito nel dominio temporale.
Prima di andare avanti vi faccio notare una cosa: l'immagine principale di questo articolo è il risultato dell'applicazione di un filtro digitale di funzione "qualsiasi" all'immagine. I colori risultano evidentemente molto alterati rispetto a quelli che ci aspetteremmo proprio per questo.
Nelle frequenze, invece, l'aliasing può presentarsi così:
Nell'operazione che viene chiamata folding, cioè ripiegamento, una certa quota parte dello spettro che si presenta a frequenza multipla della fondamentale si va a sovrapporre alla sua prima replica ed il risultato è che non è possibile effettuare una ricostruzione precisa.
Proprio per questo motivo è necessario filtrare: questa operazione elimina le repliche e lascia, in mera teoria, del tutto inalterate le componenti frequenziali di cui abbiamo bisogno per poter ricostruire correttamente il segnale, a partire dai contributi (campioni) che abbiamo.
Questo vale, a maggior ragione, nel caso in cui, invece del solo segnale, abbiamo anche del rumore.
Considerato che il caso più generale è quello di un processo bianco (cioè definito a tutte le frequenze e costante) e a media nulla, dovete immaginarvi nella figura precedente una linea orizzontale non particolarmente alta, diciamo fino all'altezza del primo tratteggio, costante.
Questo contributo di rumore trasporta potenza ed incide a tutte le frequenze senza distinzione. Quando si riceve non si riceve mai soltanto segnale e quindi quando si trasforma il segnale per ottenerne la trasformata di Fourier non si ottiene solo la trasformata del segnale ma, naturalmente, anche quella del rumore. Quando si va a filtrare uno dei motivi per cui si sceglie di filtrare è proprio eliminare quella componente di rumore che, se anche non ci fossero le repliche spettrali della trasformata del segnale, trasporta comunque una componente di potenza media molto influente.
Inutile dire che lo stesso trattamento che viene riservato al segnale, dunque, viene riservato alla rumore. Supponete di voler filtrare e poi a amplificare, ciò che di solito viene fatto e che è evidente, per esempio, nella struttura dello schematico di questo progetto. Se amplificaste prima di filtrare, il rumore sarebbe amplificato e quindi sarebbe più influente perché la potenza trasportata sarebbe maggiore, peraltro a tutte le frequenze possibili.
Questo vale anche quando il rumore si sovrappone ai campioni del segnale diventato discreto almeno nel tempo e quindi anche nelle frequenze e questo perché sono le ampiezze del segnale ad essere maggiorate dal contributo di rumore.
Il fenomeno delle frequenze fantasma, come viene definito, può essere quindi brillantemente risolto grazie all'utilizzo di un filtro che, come nel caso dimostrato, è di tipo passa basso. A seconda del tipo di segnale che dovreste avere, altre tipologie e sagome spettrali potrebbero essere utilizzate.

Il progetto

Alcune delle immagini che vi abbiamo mostrato fino a questo momento dimostrano come sia fondamentale il progetto del filtro attraverso il controllo dei parametri di cui vi abbiamo parlato. Diciamo che costruire una struttura costituita dall'elemento sensibile, seguita dal filtro e dall'apparato di amplificazione e che termina con un convertitore tutto sommato diventa difficile in funzione del range di frequenze in gioco.
La sezione di acquisizione dei dati del progetto deve essere il risultato di un compromesso tra il sampling rate e l'ordine del filtro che viene richiesto per attenuare (della quantità desiderata, misurata in dB) le frequenze fuori banda.
La complessità del filtro, man mano che l'ordine sale, rende troppo spesso sconveniente il fatto di prendere in considerazione un'architettura per quanto semplice ma di ordine elevato.
Molti progettisti suggeriscono di non superare il quarto ordine e tutto sommato devo dire che, almeno per la maggior parte delle applicazioni, questo effettivamente è un consiglio molto valido perché non ce n'è davvero bisogno.
In particolare, se avete una frequenza di campionamento 10BW (cioè pari a 10 volte la banda) allora potrebbe anche essere sufficiente un filtro del terzo ordine.
Ciò dipende, però, anche criticamente da quello che vogliamo che il filtro faccia in banda.
Le immagini che vi abbiamo mostrato prima vi fanno vedere che buona parte dell'idealità delle maschere dei filtri che possiamo utilizzare prevedono la piattezza in banda, o quanto meno piccole oscillazioni. Ma questo richiede una precisione nella realizzazione che troppo spesso esula dalle nostre reali possibilità.
Questo vuol dire che talune componenti in banda subiranno delle piccole attenuazioni mente altre saranno leggermente amplificate. Tale fenomeno si chiama “ripple”. E giustamente voi volete sapere: a prescindere dal nome, questo è un bene o un male?
Ancora una volta: dipende dall'applicazione. In linea generale quello che vorreste è che il filtro filtrasse solo le componenti fuori alla banda utile non quelle all'interno. Quindi, sempre in linea generale, questo non è un problema non una caratteristica e basta. Se però quello che volete è semplicemente eliminare il rumore, allora questo comportamento potrebbe essere addirittura non rilevante per voi. Questo è il caso in cui quello che vi interessa valutare la potenza del segnale in ingresso piuttosto che l'eventuale ricostruzione di una forma d'onda che volete acquisire e di cui volete disporre per poter effettuare una ricostruzione.
In caso contrario, dovete iniziare seriamente a porvi il problema di come fare per minimizzare questi effetti e tra le scelte possibili, dovete essere pronti a prenderla in considerazione, c'è anche la sostituzione dell'architettura, se si dovesse rendere indispensabile. L'esperienza vi permetterà di non dover mai optare per questa via.
Per fare tutto questo potete utilizzare filtri analogici di tipo passivo oppure attivo oppure ancora le capacità comunicate di cui abbiamo parlato in precedenza.
Vi abbiamo anche fatto un esplicito riferimento ad un articolo in cui la struttura utilizzata è Sallen-Key del secondo ordine con un filtro passa basso ed un filtro passa alto che tagliano dapprima le frequenze più basse, solitamente quelle all'interno dell'intervallo 1-50 oppure 1-100 Hz, e poi quelle più alte, in quel caso quelle superiori alla banda dell'udibile, ovvero, in linea del tutto teorica, oltre i 20 kHz.
Un orecchio di un adulto, però, anche con un buon udito, difficilmente riesce a distinguere qualcosa al di sopra dei 16 kHz. Si tende a considerare questa frequenza come quella effettivamente utile ma naturalmente questo altera solo le equazioni di progetto o meglio i risultati in termini di elementi che poi andate ad inserire nella struttura del filtro ma non altro. Si tratta semplicemente di sostituire all'interno delle equazioni i valori più congeniali.
A questo proposito faccio notare qualcosa che avevo già fatto notare in passato ovvero che: resistori e condensatori non esistono in commercio di valori "qualsiasi". Esistono in commercio resistori e condensatori di valori (tabellati!) altamente specificati. Sono numerosi, sono diversi ma non sono infiniti. Se vogliamo, tanto per rimanere in tema con l'articolo, i valori disponibili sono rappresentati da una variabile discreta.
Questo significa che se il risultato delle equazioni di progetto del filtro di dovesse restituire un valore di capacità pari a 13,637 nF dovrete necessariamente fare i conti col fatto che non esiste un condensatore da 13 nF ma soprattutto che non esiste la possibilità di caratterizzare il condensatore con la precisione dell'ordine del millesimo.
Quindi praticamente siete nella situazione per la quale se sostituite i valori reali rischiate di non trovare i valori di frequenze che vi interessano e quindi di aver progettato un filtro che non filtra la banda che volete voi ma se utilizzate i valori delle frequenze esatte otterrete dei valori di resistenza e capacità che non sono esattamente quelli che potete trovare disponibili in commercio.
Sembra davvero un bel problema, vero?
Detta così, non se ne esce…
E allora che si fa?
La soluzione è: l'esperienza!
Quanto la resistenza si può discostare dal valore calcolato per avvicinarsi, invece, al valore commercialmente disponibile lo potrete scoprire soltanto facendo tante prove diverse ed utilizzando la strumentazione per verificare se tutto sta funzionando per il meglio.
Preparatevi, anche soltanto su questo, a spendere diverso tempo per cercare di capire come fare per risolvere questi problemi perché tutto quello che si deve fare in questo ambito è realizzare delle soluzioni di compromesso che funzionino.
Ma torniamo a noi: stavamo parlando dell'architettura.
La pendenza che abbiamo conferito alla struttura è di 60 dB/decade.
Utilizzare delle resistenze di valore elevato mette al riparo da problemi quali scariche elettrostatiche (ESD) oppure piccolissime variazioni però dall'altro lato aumenta la componente di rumore elettronico che si va a sovrapporre al segnale.
E sì perché noi non abbiamo ancora parlato ma esiste una caratterizzazione della cifra di rumore associata ad una resistenza che dipende:
  • dal valore della resistenza;
  • dalla costante di Boltzman;
  • dalla temperatura;
  • dalla banda del segnale.
Si rimanda al lettore l'approfondimento di questo aspetto.
Tutto questo a che cosa ci serve? Naturalmente a condizionare opportunamente il segnale da mandare in ingresso ad un convertitore ADC, per esempio.
Ce ne siamo occupati qualche tempo fa ma non sono certamente gli unici destinatari. Anche perché filtri Anti-Aliasing (AAF) possono essere anche semplificati tramite semplici reti RC.
In ogni caso, scegliere come digitalizzare il segnale è, ancora una volta, un problema di compromesso tra le performance, la risoluzione, il numero ed il tipo di componenti (anche in relazione alla cifra di rumore equivalente che troveremo), all'affidabilità dell'intero prodotto ed anche al suo costo complessivo.
Quando tutti questi parametri saranno stati presi in considerazione allora il segnale digitale potrà finalmente essere disponibile per le successive elaborazioni.

Il sotto-campionamento

Campionare è un problema di qualità, questo lo abbiamo capito. Ed in linea generale più campioni ottengo della forma d'onda migliore sarà la ricostruzione che riuscirò a farne quando dovrò interpolare i dati in qualche modo.
Il modo più semplice per ricostruire una forma d'onda è rappresentato dalla tecnica del Sample & Hold. Per farlo si utilizza un interpolatore lineare che semplicemente mantiene costante il livello ottenuto fino a quando non ne arriva un nuovo. Cioè sostanzialmente ogni campione viene processato come il precedente solo che ogni campione ha un'ampiezza diversa ed il sistema risponde istantaneamente mantenendo il livello. Accumulare carica è qualcosa che si fa con un condensatore e ancora una volta la rete RC ha un ruolo davvero centrale!
Quanto detto implica che una sinusoide, ad esempio, non verrà descritta con la sua curvatura ma che, tra ogni campione, ci sarà una linea spezzata orizzontale.
La resa complessiva non assomiglia per niente ad una sinusoide.
Meglio cambiare il metodo, allora, non trovate?
Campioniamo di più, cerchiamo di ottenere più campioni. Di più quanti? Il doppio? Tre volte tanto? Cinque? Otto?
Naturalmente la risposta intuitiva sarebbe "il più possibile" ma questo si traduce in dispositivi che costano tantissimo e che magari non c'è neanche bisogno di impiegare perchè il segnale non ha una frequenza tale da richiedere un numero di campioni così elevato da poter fare un'ottima ricostruzione ma magari stiamo parlando di una sinusoide ad 1Hz e quindi mi servono pochissimi campioni nel tempo per poter fare la ricostruzione anche ottima.
Allora questo significa che non dobbiamo prendere di meno? Quanti di meno? La metà?
Naturalmente serve un criterio che queste domande retoriche servono a stimolare la vostra creatività ed il vostro ragionamento (lo ripeto: specie se state iniziando! Sebbene un ripasso faccia tutto meno che male...).
Abbiamo parlato però del criterio di Nyquist, o teorema di Shannon (sappiate che il teorema del campionamento è di Nyquist-Shannon, ecco il perchè di questa apparente ambiguità). È quella, sempre quella la regola generale da seguire!
Campionare ad una frequenza almeno doppia della banda perché se abbiamo una frequenza appena inferiore al doppio anche di una quantità davvero infima, in fase di ricostruzione ci ritroveremo con il problema del ghost (alias)!
E abbiamo già capito che non è proprio una situazione idilliaca.
Ma tutto questo come ci porta a sotto-campionare?
Per alcuni questo rappresenta una palese violazione del teorema di Shannon. La verità è che questo nome è leggermente fuorviante: il teorema in oggetto ha postulato che il sampling rate debba essere, come dicevamo, più grande di almeno il doppio della banda.
Allora supponiamo di avere una portante a frequenza intermedia da 10 MHz in una banda da 3; per fare in modo che il criterio sia rispettato io devo moltiplicare almeno per 2, diciamo 2.5 e pertanto ottengo 7.5 MHz. Qui avremo certamente alias, in particolare i 2.5 MHz delle frequenze più elevate della fondamentale e quelli di frequenza più bassa della prima replica.
Questo, per esempio, è un bel problema di compromesso. Che cosa potete fare per risolverlo?
Per semplicità supponiamo che il mezzo trasmissivo sia vostro ovvero che sia di vostra proprietà e possiate lavorarci come meglio preferite. Non avete autorità di controllo, garanti per la privacy, ministeri vari e così via dicendo a darvi direttive.
Siete solo voi.
Che cosa fareste?
Provate, come esercizio, ad immaginare anche più soluzioni diverse per questa stessa domanda; scoprirete quanto è affascinante tutto questo.
Giusto una piccola osservazione: in questo articolo avete assistito ad un uso piuttosto massiccio di riferimenti a Wikipedia, che è stata utilizzata, sostanzialmente, come repository di immagini. Io non uso Wikipedia in questo modo, di solito, ma al di là del mio personale sostegno morale e materiale, spesso e volentieri mi occupo di consultarla in maniera il più possibile responsabile e critica, correggendo eventuali errori e portando il mio microscopico contributo al miglioramento complessivo dell'intero sito. Anche questo, per me, è Open Source. Penso, spero e mi auguro che tutti noi condividiamo anche questo approccio a questa realtà che, per tutti noi, utenti del web, è davvero una risorsa preziosa!

 

Quello che hai appena letto è un Articolo Premium reso disponibile affinché potessi valutare la qualità dei nostri contenuti!

 

Gli Articoli Tecnici Premium sono infatti riservati agli abbonati e vengono raccolti mensilmente nella nostra rivista digitale EOS-Book in PDF, ePub e mobi.
volantino eos-book1
Vorresti accedere a tutti gli altri Articoli Premium e fare il download degli EOS-Book? Allora valuta la possibilità di sottoscrivere un abbonamento a partire da € 2,95!
Scopri di più

One Response

  1. Emanuele Emanuele 13 dicembre 2013

Leave a Reply

Raspberry Pi 3 GRATIS! (Win10 compatibile)

Fai un abbonamento Platinum (EOS-Book + Firmware), ricevi in OMAGGIO la RASPBERRY 3, inviaci il tuo progetto e OTTIENI IL RIMBORSO