Filtri numerici (14)
L'acquisizione di un segnale in forma numerica, cioè di N campionamenti nel periodo di osservazione P [1] ), è la base di qualsiasi elaborazione che si voglia compiere sul segnale stesso.
Nel caso di effettiva conversione da segnale analogico in digitale, questa può essere influenzata da disturbi o da errori di approssimazione, sia dei sensori di rilevazione, sia dei convertitori A/D, che tendono a falsare i singoli valori acquisiti.
Una delle più semplici forme di elaborazione di questi dati è certamente la media temporale, che tende all'appiattimento (smoothing) delle brusche variazioni che possono essere presenti nei campionamenti contigui.
Un esempio molto intuitivo è la rilevazione giornaliera del peso corporeo durante una dieta: più che ogni singolo valore ha importanza l'andamento medio su un certo periodo prefissato, diciamo una settimana.
Questo valore medio è dato, giorno per giorno, dalla somma degli ultimi 7 valori, ovviamente divisa per 7.
All' n-esimo giorno (per n>7) si ha : yn = (xn+xn-1+.........+xn-6) / 7 , dove gli x sono i singoli valori rilevati rispettivamente il giorno n, il giorno precedente n-1, e così via.
La yn è anche chiamata media mobile (moving average) proprio perchè varia ad ogni campionamento in funzione dei valori precedenti.
Generalizzando il calcolo
possiamo scrivere: per m =
0.....(M-1)
m
yn = S hm· x(n-m)
In generale però potremmo assegnare ad hm valori diversi in funzione di m, purchè si rispetti il vincolo Shm=1 , per non falsare il valor medio. Si ha allora una media pesata.
Nell'esempio precedente si è posto M=7 e hm = 1/M, cioè un fattore costante.
La Fig. 14.1 illustra graficamente l'esempio nell'ipotesi di un peso iniziale di 76.5 Kg con un andamento in diminuizione di 0.015 Kg/giorno ed una incertezza di misura entro 0.5 Kg.
La figura riporta anche il caso di M=28, cioè una media mobile su 4 settimane, da cui risulta più evidente la linearità della diminuizione nonostante il disturbo' nelle misure.

La struttura di calcolo richiesta dalla media mobile si può rappresentare come in Fig.14.2, dove ciascun blocco rappresenta un ritardo equivalente al tempo di campionamento DT e ciascun cerchietto rappresenta la moltiplicazione del campionamento x con il corrispondente coefficiente h.

L'espressione di calcolo della media mobile è la stessa vista alla fine del capitolo 6, dove è stato definito il prodotto di convoluzione di due segnali a(t) e b(t) , con la sola sostituzione della sommatoria all'integrale.
Quindi la media mobile può essere vista come un caso particolarmente semplice di convoluzione in cui tutti i coefficienti h sono non solo costanti, ma anche uguali tra loro (=1/M, dove M è il numero di termini della media).
Nel caso più generale della media pesata, i coefficienti h sono costanti diverse tra loro, ed attribuendo a queste i valori ricavati dall'antitrasformazione di Fourier di una funzione di trasferimeno H si può simulare il comportamento di tale funzione.
La Fig. 14.3 illustra questo concetto, considerando come funzione H una semplice costante di tempo.
Il segnale d'ingresso x è un impulso di ampiezza 1 fra P/2 e 3P/2, essendo P=0.1 sec. L'elevato numero di campionamenti, N=128, consente anche un elevato numero
di coefficienti (fino a 64), in modo da poter considerare praticamente continui
i grafici dei due segnali rispettivamente
x d'ingresso e y
d'uscita.
Si osservi che si è mantenuto a
zero il segnale d'ingresso per un tempo necessario (P/2) ad iniziare la media
con valori precedenti sicuramente nulli, e che i valori d'uscita devono essere
divisi per la sommatoria dei coefficienti. Con queste premesse è ora
possibile dare un'interpretazione intuitiva del prodotto di convoluzione: ciascun valore d'uscita è la somma
di M prodotti
fra i campionamenti d'ingresso precedenti e dei coefficienti che
esprimono il comportamento del circuito Più precisamente, sapendo che la
funzione di trasferimento rappresenta lo spettro dell'impulso unitario d (vedi fine capitolo 6), ciascun valore
d'uscita può essere visto come la somma delle azioni di M impulsi.
La Fig. 14.4 mostra l'andamento (amplificato) del segnale d'uscita
corrispondente ad un singolo impulso d'ingresso nella stesse condizioni di Fig. 14.3. Se in istanti di tempo successivi
si presentano altri impulsi, l'effetto totale non può essere che la somma dei
valori, istante per istante, derivanti dalla sovrapposizione degli effetti di
tutti gli impulsi precedenti. Questo è il significato fisico del prodotto di
convoluzione, dove gli impulsi unitari sono moltiplicati per l'effettiva
ampiezza dei singoli campionamenti del segnale d'ingresso. Il numero di termini M da considerare in ciascuna somma dipende
ovviamente dalla rapidità con cui il
transitorio di ciascun impulso si esaurisce. In pratica occorre stabilire
quando diventa trascurabile il coefficiente h. Negli esempi delle
figure precedenti si è tenuto conto di tutti
gli N/2 coefficienti
ricavabili direttamente
dall'applicazione della FFT. Ciò va a vantaggio della
precisione ma a scapito del tempo di calcolo. Si è già detto che una funzione
di trasferimento costituita da una costante di tempo è una delle più semplici
forme di filtraggio passa-basso, quindi l'esempio della Fig. 14.3 può
essere visto come il calcolo di un filtro che lascia passare quasi inalterate
le frequenze basse ed attenua quelle alte, riducendone l'ampiezza in funzione
del valore della frequenza stessa. Poichè nell'esempio la costante
di tempo è T=0.005 sec, la
cosiddetta frequenza di taglio, cioè quella che convenzionalmente divide le
frequenze basse dalle alte è ft = 1/2·p·T @ 32
Hz. La Fig. 14.5 rappresenta l'andamento del modulo della funzione di
trasferimento H prima nella forma più
usuale di diagramma logaritmico di Bode e poi in forma di spettro di frequenze,
cioè come un diagramma lineare.
Nel diagramma di Bode la
frequenza di taglio corrisponde a quella che presenta un'attenuazione di 3 dB (linea tratteggiata), che equivale
nello spettro ad un'attenuazione di
0.708 (linea tratteggiata nel
secondo diagramma). Tutte le frequenze la cui
ampiezza sta al disopra di questi valori si considerano non-attenuate
(frequenze passanti o banda passante),
le altre viceversa si considerano attenuate (frequenze bloccate). Risulta evidente che un filtro di
questo tipo è piuttosto grossolano e molto distante dalle caratteristiche di un
filtro passa-basso ideale. Ricordando l'esempio della Fig. 6.2, si può vedere il filtro ideale
come una funzione di trasferimento H a forma rettangolare, calcolare con FFT lo spettro X del segnale d'ingresso,
ricavare Y = H·X ed infine antitrasformare con IFFT, per ottenere l'andamento nel
tempo del segnale d'uscita y. Quindi ad ogni periodo di
osservazione P si dovrebbe procedere
alla trasformazione del segnale d'ingresso in spettro, al prodotto di ciascuna
frequenza di questo con i corrispondenti
valori di frequenza del filtro, ed infine all'antitrasformazione dalle
frequenze al tempo. La Fig. 14.6a esemplifica
questa procedura con un filtro passa-basso
avente frequenza di taglio ft = 10 Hz, considerando un segnale
d'ingresso a 5 Hz con terza armonica. Limitando lo spettro di frequenza
a K
= 64 Hz (cioè assumendo che il
segnale non abbia in pratica componenti
superiori alla ventina di Hz perchè sarebbero campionati troppo scarsamente e
comunqe necessariamente inferiori ai 32
Hz della frequenza di Nyquist) e scegliendo un periodo d'osservazione P = 1 sec ( che comporta uno spettro di
frequenze discrete distanziate di 1 Hz) è facile seguire il calcolo ed è intuitivo il risultato rappresentato
dall'ultimo grafico della figura nel quale il segnale d'ingresso x
è a tratti e quello d'uscita y a gradini. Ovviamente il filtro azzera la
terza armonica lasciando inalterata in ampiezza la sola fondamentale. Si noti che la caratteristica del
filtro risulta trapezia anzichè rettangolare, e che la pendenza della
transizione fra frequenze passanti e quelle bloccate dipende dalla scelta del
periodo P. Si può allora dire che il
filtro è quasi-ideale'.
L'alternativa a questo procedimento di moltiplicazione nel
dominio delle frequenze è, come accennato alla fine del capitolo 6, la convoluzione dei corrispondenti segnali
nel tempo. Quindi antitrasformando la funzione di
trasferimento di un
filtro ideale si ottengono i valori h =
IFFT(H) da utilizzare nella convoluzione con i campionamenti del segnale
d'ingresso. Poichè si suppone la caratteristica del filtro invariabile nel tempo, è sufficiente una sola
antitrasformazione eseguita in sede di progetto, per ricavare i coefficienti h del filtro. Una volta ricavati gli N coefficienti (dove N è come al solito il numero di campionamenti nel periodo
d'osservazione P), questi devono essere moltiplicati per
i corrispondenti campionamenti del segnale d'ingresso ed infine sommati questi
prodotti per ottenere un singolo valore d'uscita. In altre parole, ciascun
valore yn
all'istante tn è ricavato
dalla sommatoria di N prodotti fra i coefficienti hm ed i campionamenti xn-m precedenti
all'istante tn , il che è esattamente la struttura di calcolo riportata nella Fig. 14.2, con la sola osservazione che il numero M degli stadi coincide con il numero N
dei campionamenti nel periodo d'osservazione. La Fig. 14.6b rappresenta il
calcolo con l'utilizzo della convoluzione dello stesso filtro passa-basso
ideale e dello stesso segnale, in alternativa al procedimento della Fig. 14.6a e naturalmente i risultati
coincidono. L'osservazione importante è che
pur con uno spettro così limitato in frequenza (K=64) si hanno N=128 coefficienti, quindi una somma di 128 moltiplicazioni per ogni valore
d'uscita. Per poter realizzare questo
filtro in modo che operi in tempo reale
su un segnale d'ingresso fisico, occorre prevedere un dispositivo che esegua
tutte le operazioni in un tempo inferiore all'intervallo di campionamento, cioè nel caso in esame inferiore a Dt = P/N @ 7.8 ms. Risulta chiaro che questo metodo non può essere applicato
praticamente ove lo spettro di
frequenze debba essere allargato: già per frequenze industriali (50 Hz
e sue armoniche) il numero di coefficienti e quindi di
moltiplicazioni sarebbe dell'ordine di
migliaia , mentre gli intervalli di campionamento si ridurrebbero a decimi di
millisecondo. Nel prossimo capitolo verranno esaminati i criteri di progetto
che consentono un compromesso fra
limitazioni nel numero di coefficienti e prestazioni del filtro. I circuiti basati sul criterio
della media pesata ora visti, sono noti nella letteratura tecnica come filtri non-ricorsivi, in
contrapposizione ai filtri ricorsivi che verranno illustrati nel capitolo
16. Data la loro caratteristica di risposta'
che tende a zero nel tempo se eccitati con un singolo impulso (si
veda la Fig. 14.4), questi filtri sono anche indicati con la sigla FIR (Finite
Impulse-Response). Fra le particolarità di questo
tipo di filtri vanno sottolineate le seguenti : - non esistono esatti equivalenti analogici -sono intrinsecamente stabili, nel senso di non possono
produrre auto-oscillazioni -presentano uno sfasamento
lineare con la frequenza, quindi compensabile [1]D'ora in poi con P verrà denotato il periodo
d'osservazione, anzichè il periodo di
ripetizione del segnale
elaborato. [2]Non si confonda questo peso', che è un puro
coefficiente, con i valori x
di peso corporeo' dell'esempio
precedente Progettazione dei filtri non-ricorsivi (15) Come si è visto nel capitolo precedente, il progetto di un filtro non-ricorsivo è facilmente ottenibile dall’antitrasformazione di Fourier dello spettro del filtro desiderato, ma si è anche visto che questo comporterebbe numeri di coefficienti molto elevati, quindi tempi di calcolo inaccettabili. Volendo ad esempio utilizzare il procedimento della Fig. 14.7 per il calcolo di un filtro ‘quasi-ideale’ a 100 Hz anzichè a 10 Hz, è chiaro che si dovrebbe scegliere come massima frequenza dello spettro base almeno fK = 512 ( K=512 se il periodo di osservazione è P=1 sec) il che comporta un numero di coefficienti (e di moltiplicazioni) N = 1024. Si pone quindi il problema di esaminare gli effetti di una riduzione nel numero di coefficienti, fermo restando le condizioni di campionamento (cioè i valori dell’intervallo d’osservazione P , che determina il passo fra le singole frequenze dello spettro,nonchè di K ,quindi N, che in definitiva determinano l’intervallo di campionamento DT = P/N). La Fig. 15.1 mostra tali effetti su un filtro passa-basso a 100 Hz. In tale figura si crea uno spettro rettangolare H (ampiezza 1 per tutte le frequenze <100 Hz e 0 per quelle >100 Hz) e si ricavano i coefficienti h con l’antitrasformazione IFFT . Considerando uno spettro di 512 frequenze si ottengono 1024 coefficienti (in realtà solo 512 sono significativi e gli altri sono speculari). Per meglio mostrare tale specularità, si è proceduto alla traslazione dello spettro (h1, riferito allo zero, cioè fra -N/2 e +N/2 o, indifferentemente, riferito a N/2, fra 0 e N). Se per la ricostruzione del filtro si utilizza solo una parte M dei coefficienti (si effettua cioè un troncamento, ponendo a zero i coefficienti esterni al tratto -M/2 e +M/2) si ottiene una caratteristica meno netta e che presenta oscillazioni (ringing) del segnale d’uscita. Queste sono note nella letteratura tecnica come oscillazioni di Gibbs e sono duali nella frequenza a quelle che si rilevano ricostruendo un impulso rettangolare nel tempo con un troncamento di frequenze dello spettro. Si può anche vedere questo fatto come risultato della convoluzione in frequenza della funzione di trasferimento ideale con la trasformazione dell’intervallo rettangolare nel tempo (quindi del tipo sen(x)/x ), equivalente agli M coefficienti effettivamente considerati . Nell’esempio in Fig. 15.1, avendo assunto K=512 e P=1 sec, si ha N=1024, Df =1 Hz e DT@0.977 ms. La ricostruzione della caratteristica del filtro (spettro di frequenza) risultante dal troncamento si ottiene ovviamente con la trasformazione FFT della serie ridotta degli M coefficienti. La figura mostra graficamente sia l’andamento dei coefficienti, sia la caratteristica del filtro nei casi di M=15, =60, =250 e =1024, per evidenzare la diversa influenza delle oscillazioni di Gibbs e la diversa ‘pendenza’ della transizione fra frequenze passanti e frequenze bloccate. Ovviamente l’ultimo caso rappresenta il filtro ‘quasi-ideale’.
Le oscillazioni di Gibbs rilevate nei casi di troncamento possono essere attenuate con l’utilizzo di forme di finestre come quelle viste al capitolo 11. La Fig. 15.2 illustra infatti una possibile procedura di progetto di questo tipo di filtro, passa-basso a 100 Hz, con 32 coefficienti (invece che 1024) e l’utilizzo di una finestra di Hamming per lo smorzamnento delle oscillazioni nella caratteristica in frequenza. Per maggior chiarezza, oltre agli spettri in frequenza del filtro senza e con smorzamento, vengono indicati anche i relativi diagrammi di Bode, cioè in scale logaritmiche, che mettono meglio in risalto il diverso effetto di attenuazione delle alte frequenze. A dimostrazione dell’effetto di filtraggio risultante, la figura riporta anche il caso ormai più volte utilizzato (Fig. 1.2 e Fig. 6.2) di un segnale sinusoidale a 50 Hz con terza armonica applicato come ingresso al filtro. Il segnale d’uscita risulta pertanto la convoluzione dei coefficienti hlp (low-pass) del filtro prima calcolati con i singoli campionamenti x del segnale d’ingresso. L’ultimo grafico di tale figura riporta sia questo segnale d’ingresso (a tratti) sia quello d’uscita (a gradini) dal filtro, che ovviamente è la sola sinusoide a 50 Hz. A chiarimento della procedura seguita se ne evidenziano alcuni aspetti: - dopo aver definito la caratteristica ideale H, si ricavano i coefficienti h del filtro quasi-ideale. Avendo scelto K=512 il numero di questi è N=1024, come già detto. - riferendo i coefficienti a N/2 si ricava la nuova serie h1 - scegliendo M (=32) si devono azzerare tutti i coefficienti fra 0 ed (N-M)/2 nonchè quelli fra (N+M)/2 ed N-1, ottenendone la serie h2. Da questa si può ricavare la nuova caratteristica del filtro H2. - riferendo i coefficienti all’indice m = 0....M si ottiene la serie h3. Si noti che in realtà il numero dei coefficienti diventa M+1, per rispettare la simmetria rispetto al valore centrale. - a questa serie viene applicata la finestra di Hamming, ottenendo finalmente la serie dei coefficienti hlp. - per ottenere la caratteristica finale del filtro HLP, occorre però ricostruire la serie completa di N valori, cioè h4. L’effetto di smorzamento sui coefficienti laterali e di conseguenza nello spettro (che non presenta più oscillazioni) è evidente nei rispettivi grafici. - per la prova del filtro si genera una sinusoide a 50 Hz con terza armonica (x) e si esegue una convoluzione con i coefficienti di questo. - per ridurre al minimo il tempo richiesto nella simulazione al calcolo della convoluzione, si limita questa ad un intervallo temporale di 40 ms, il che equivale a due cicli del segnale d’ingresso. L’inizio della convoluzione si è posto alla metà del periodo P, il che permette la scelta di M sino ad un massimo di N/2 coefficienti.
Fig. 15.2 - Progetto di un filtro passa-basso a 100 Hz con 32 coefficienti e sua applicazione ad un segnale a 50 Hz con terza armonica. - i singoli valori del segnale d’uscita y sono il risultato della convoluzione, divisa per la somma S dei coefficienti. Il segnale d’uscita che appare nell’ultimo grafico presenta uno notevole sfasamento rispetto al segnale d’ingresso: è questo l’effetto della convoluzione che comporta un ritardo pari alla metà del tempo corrispondente all’acquisizione degli M valori di campionamento. Tale tempo è quindi (M/2)·DT , cioè (M/2)·P/N , ed è un tempo fisso che incide perciò sullo sfasamento di ogni singola frequenza in modo proporzionale al singolo valore. Nel caso dell’esempio di Fig. 15.2 questo tempo assume un valore di circa 16 ms, quindi per la sinusoide a 50 Hz, con un periodo di 20 ms, lo sfasamento equivale ad 8/10 di 360°, cioè 288°. Va evidenziato che la procedura di progetto della Fig. 15.2 è del tutto generale per i filtri passa-basso, il che significa che, disponendo del Mathcadâ è possibile utilizzarla per il progetto di qualsiasi filtro passa-basso, purchè vengano opportunamente impostati i parametri relativi. Va tuttavia segnalato che la procedura indicata, pur essendo valida per la progettazione, è più adatta a scopi didattici che a progetti veramente professionali. Il motivo è che la sua applicazione pratica richiede una serie di tentativi per la ricerca dei parametri che risolvano al meglio il problema, mentre esistono programmi di progettazione al calcolatore che ricavano direttamente le soluzioni ottime. Naturalmente ciò richiede la disponibilità di tali programmi e generalmente anche ambienti di sviluppo molto sofisticati. Con tale premessa, vengono presentate qui di seguito le analoghe procedure per il calcolo degli altri tipi di filtri. La Fig. 15.3 costituisce una procedura di progetto di filtro passa-alto. Nell’esempio vengono ricavati gli M coefficienti hhp (high-pass) del filtro per la convoluzione con il segnale d’ingresso. Dopo aver fissato la caratteristica del filtro quasi-ideale H, si ricavano con l’antitrasformazione IFFT i coefficienti h, che vengono poi centrati rispetto alla metà del periodo (hc). Stabilito il numero di coefficienti da considerare (M=60) si estraggono i coefficienti centrali, moltiplicati per i termini della finestra di Hamming, ottenendo i coefficienti cercati hhp. Per ricostruire lo spettro di frequenze effettivo occorre azzerare i coefficienti fra 0 e (M-N)/2 nonchè fra (M+N)/2 e N-1 ed infine trasformare con FFT . Lo spettro risulta privo di oscillazioni grazie appunto all’uso della finestra di Hamming. La figura è completata dall’ esempio della solita forma d’onda a 50 Hz con terza armonica. La convoluzione fra i coefficienti hhp ed i campionamenti x , limitata a 0.1 sec per ridurre il tempo di calcolo, produce il segnale y d’uscita dal filtro che ovviamente è la sola terza armonica a 150 Hz. Il grafico a gradini mette in risalto il campionamento ogni DT = P/N @ 0.976 ms. Similmente, la Fig. 15.4 rappresenta una procedura di progetto per un filtro passa-banda. Volendo mantenere l’applicazione nel campo delle frequenze industriali fino alla quinta armonica, occorre maggiorare in questo caso la definizione e perciò si è previsto K = 1024 il che, lasciando invariato P = 1 sec, comporta un campionamento di N = 2048 punti, cioè un campionamento ogni circa mezzo millisecondo. Fig. 15.4a - Progetto di filtro non-ricorsivo passa-banda. Anche il mumero di coefficienti M utilizzati per la convoluzione è stato elevato a 128. Malgrado ciò, il comportamento del filtro, che è illustrato nella Fig. 15.4b, è evidentemente approssimato, anche se risponde pienamente allo scopo di estrarre la sola terza armonica da un segnale d’ingresso x a 50 Hz con terza e quinta armonica La linea tratteggiata dell’ultimo diagramma rappresenta infatti lo spettro passante del filtro che, come si vede, lascia inalterata la sola terza armonica (150 Hz) azzerando invece sia la fondamentale (50 Hz) che la quinta (250 Hz).
Fig. 15.4b - Verifica del filtro passa-banda progettato in Fig.15.4a. Non viene dato un esempio di progetto per il filtro arresta-banda (band-stop), data l’ovvietà della procedura, potendosi sommare gli effetti di un passa-alto e di un passa-basso. Fig. 14.3 - Media pesata con coefficienti ricavati
dall'antitrasformazione di una funzione di trasferimento ad una costante di
tempo.
Fig. 14.4 - Segnale d'uscita corrispondente ad un
impulso in ingresso di una funzione di trasferimento ad una costante di tempo.
Fig. 14.5 - Confronto di rappresentazioni della
funzione di trasferimento utilizzata nella Fig. 14.3
Fig. 14.6a - Studio di un filtro passa-basso ideale con
procedura di calcolo nel campo delle frequenze. [commento audio]
Fig. 14.6b - Studio di un filtro passa-basso utilizzando
la convoluzione (continuazione della Fig.14.6a).
[commento audio]
Fig. 15.1 - Calcolo dei coefficienti di un filtro ideale passa-basso e sua ricostruzione con troncamento nel numero dei coefficienti.