Brevi cenni sulla teoria dei Filtri Digitali Enrico Cosimi Adattato da: C. Roads (ed.), The computer music tutorial, The MIT Press, Cambridge, MA., 1996.
1
FILTRI DIGITALI
Mappa di Navigazione 2
Caratteristiche principali nella valutazione di un filtro digitale:
• comportamento nel dominio delle frequenze;
• comportamento nel dominio del tempo (IR);
• l’unione dei due comportamenti forma la convoluzione;
• comportamento nel dominio della fase; 3
Convenzioni nella rappresentazione matematica di un filtro digitale
• • • •
l’ingresso attuale del filtro è indicato con x[n]; l’uscita attuale è indicata con y[n]; valori precedenti a quello attuale in ingresso sono indicati con x[n – m]; in cui m è il numero dei samples di delay impostati; valori precedenti a quello attuale in uscita sono indicati con y[n – m].
4
Low Pass Filter
y[n] = (0.5 x x[n]) + (0.5 x x[n -1]) 5
Ovvero: • • • • • •
la media di valore tra il sample corrente e quello ricevuto in precedenza tende ad eliminare i cambiamenti più repentini nel segnale passante, cioè le armoniche più acute; aumentando il numero di sample delay, aumenta l’attenuazione delle frequenze acute, ovvero si abbassa la cutoff frequency; un filtro passa basso implementato nel dominio digitale applica la media di valore (moving-average) tra il sample corrente e quello ricevuto in precedenza; successivamente, per limitare i rischi di overload, il risultato ottenuto è diviso per 2; dal momento che l’uscita del filtro dipende solo ed esclusivamente dal segnale in ingresso, il filtro è detto non recursivo, cioè privo di retroazione feedback; il percorso seguito dal segnale in ingresso dopo essere stato sdoppiato è verso l’uscita, cioè in avanti: questo lo fa rientrare nella tecnica feedforward, propria della convoluzione; come vedremo in seguito, se il percorso sdoppiato avesso puntato verso l’ingresso cioè all’indietro, si sarebbe parlato di feedback, proprio della recursione; dal momento che il Δ sottrae sottrae solo un campione, il filtro è detto del primo ordine; così come nel dominio analogico gli ordini di un filtro dipendono dal numero delle celle RC (resistor-capacitor), nel filtro digitale gli ordini di appartenenza sono definiti dalla distanza espressa in sample tra campione corrente e campione più ritardato, cioè la lunghezza del massimo delay misurato in sample determina l’ordine del filtro; dal momento che il filtro in questione è già stato considerato come non recursivo, rientra nella categoria dei filtri a risposta finita di impulsi, cioè finite impulse response, cioè FIR, contrapposta a infinite impulse response cioè IIR.
6
High Pass Filter
y[n] = (0.5 x x[n]) – (0.5 x x[n -1]) 7
Second Order Band Reject y[n] = (0.5 x x[n]) + (0.5 x x[n -2])
Second Order Band Pass y[n] = (0.5 x x[n]) - (0.5 x x[n -2])
8
Sostituzione dei coefficienti di filtraggio •
Per rendere più flessibili le due equazioni, si possono sostituire i coefficienti di filtraggio 0.5 con le variabili a0 e a1;
• • • • •
LOW PASS LOW PASS
y[n] = (0.5 x x[n]) + (0.5 x x[n -1]) diventa: y[n] = (a0 x x[n]) + (a1 x x[n -1])
HIGH PASS HIGH PASS
y[n] = (0.5 x x[n]) – (0.5 x x[n -1]) diventa: y[n] = (a0 x x[n]) – (a1 x x[n -1])
Dove a0 indica il segnale in ingresso non sottoposto a ritardo e a1 indica un ritardo pari ad un sample. Cambiando il valore dei coefficienti, varia la risposta in frequenza del filtro, come vedremo tra poco secondo la logica fc = SR / an.
9
Filtro FIR Finite Impulse Response y[n] = (a0 x x[n]) ± (a1 x x[n -1]) ± (a2 x x[n -2]) ± … (ai x x[n –i]) 10
Ovvero: •
se il segno precedentemente indicato dalla freccia rossa è positivo, il filtro lavora in modalità Low Pass; se il segno è negativo, il filtro lavora in modalità High Pass;
•
Il filtro finite impulse response FIR è, di fatto, una linea di ritardo che agisce sul segnale in ingresso ritardandolo per un numero finito i di campioni corrispondente alla quantità degli stadi di trattamento, cioè alla lunghezza della linea di ritardo stessa; una volta raggiunta la fine della linea di ritardo, il processo ha termine per il campione in esame ed ha inizio per quello successivo;
•
dal momento che l’uscita del filtro dipende solo ed esclusivamente dal segnale in ingresso, il filtro è detto non recursivo, cioè privo di retroazione feedback;
•
modificando i coefficienti, si può variare la cutoff frequency in misura pari alla sampling rate divisa il numero degli stadi di trattamento;
•
se la sampling rate del filtro FIR è pari a 44.100 kHz e il filtro FIR possiede 10 stadi, la frequenza di taglio sarà pari a 4410 Hz;
•
se si aumenta il numero degli stadi si migliora la selettività del filtro, ma si tassa maggiormente la CPU.
11
Filtro Low Pass IIR ETA (Infinite Impulse Response Exponential Time Average)
y[n] = (0.5 x x[n]) + (0.5 x y[n – 1])
12
Ovvero: •
La differenza con il comportamento FIR visto in precedenza è indicata dal termine y[n – 1]. La recursività in feedback del filtro IIR è proprio individuata dalla y: il segnale da sommare (Low Pass) o da sottrarre (High Pass) è preso dall’uscita del filtro e non dal segnale in ingresso come in precedenza.
•
il segnale in ingresso x[n] è moltiplicato per il coefficiente di filtraggio 0.5 (cioè viene diviso per due) e poi procede verso il sommatore con segno positivo (indicatore della logica Low Pass) che si trova immediatamente a monte dell’uscita y[n];
•
prima di abbandonare il filtro, il segnale in uscita viene prelevato mediante smistamento e la nuova linea di percorso è sottoposta ad un trattamento Δ che sottrae un campione alla sequenza dei valori, cioè prende in esame il campione precedente a quello considerato attuale [n – 1];
•
anche il risultato della sottrazione viene moltiplicato per il coefficiente di filtraggio 0.5 (cioè viene diviso a metà) e poi – nel punto di somma con segno positivo - viene sommato al segnale diretto concludendo il feedback loop recursivo.
13
•
Se, seguendo C. Roads, si sostituiscono i coefficienti di filtraggio con le costanti a e b, partendo da:
• • • •
y[n] = (0.5 x x[n]) + (0.5 x y[n – 1])
• •
si ottiene: y[n] = (a x x[n]) + (b x y[n – 1]) Convenzionalmente, il coefficiente b modifica la quantità di segnale lasciato passare in feedback; aumentando b, la fc si abbassa; se il valore di b supera la soglia di 1.0, il filtro diventa instabile, raggiungendo facilmente la distorsione.
14
b
a -
Filtro IIR ETA High Pass y[n] = (a x x[n]) - (b x y[n – 1])
15
feedback
feed forward
Filtro IIR ETA 2nd Order Band Pass y[n] = (a0 x x[n]) + (a1 x x[n – 1]) + (a2 x x[n – 2]) - (b1 x y[n – 1]) - (b2 x y[n – 2])
16
• •
Il filtro IIR second order section Band Pass è molto diffuso per la realizzazione di equalizzatori grafici e parametrici. Il suo funzionamento si basa sulla presenza simultanea di un percorso feedback ed uno feed forward estratti dal percorso principale input – output;
•
il filtro utilizza due stadi di ritardo per ciascuno dei due circuiti, il primo ritarda la lettura dei campioni di [n-1] cioè di un campione, il secondo di [n-2] cioè di due campioni.
•
Combinando insieme diverse unità circuitali, è possibile creare strutture più complesse e, azzerando determinati coefficienti, è possibile ottenere anche i comportamenti Low Pass e High Pass.
• • •
il coefficiente a governa la quantità di segnale inviata al percorso feedforward, il coefficiente b governa la quantità di segnale inviata al percorso feedback; ricordiamo che il percorso feedforward produce avvallamenti (notches) e quello feedback produce picchi (peaks) nello spettro del segnale passante.
• • • •
Lavorando solo con a0 ed a1 si ottiene il comportamento Low Pass. Lavorando solo con a0 ed a2 si ottiene il comportamento Band Reject. Lavorando solo con a0 ed b1 si ottiene il comportamento High Pass. Lavorando solo con a0 ed b2 si ottiene il comportamento Band Pass.
17
Filtri FIR e IIR: pregi e difetti •
Pregi FIR: facilità di progettazione, linearità ed assenza di distorsione, stabilità in assenza di recursione.
•
Difetti FIR: pesantezza sulla CPU, migliaia di stadi da implementare simultaneamente, non prevedono l’auto oscillazione.
•
Pregi IIR: grande efficienza, sensibili risparmi sulla CPU, vanno in auto oscillazione.
•
Difetti IIR: sensibili alla distorsione di fase, soggetti all’auto oscillazione in presenza di transienti (ringing), dispersione delle frequenze in corrispondenza dei transienti, con conseguente suono più aspro di quello ottenibile con i FIR.
18
Filtri Comb FIR Positive Summing y[n] = x[n] + x[n – D]
19
•
Un filtro Comb FIR divide il segnale in ingresso in due percorsi e processa uno dei due mediante un delay di dimensione variabile (comunque espressa in sample) prima di risommarli insieme.
•
Quando i due segnali si sommano insieme il filtro rientra nella categoria definita dei positive summing comb filter.
•
Questa struttura risulta molto simile al FIR Low Pass visto in precedenza, ma il delay D è significativamente più lungo di quello utilizzato nell’altro tipo di circuito.
•
L’effetto tipico del Comb Filter risulta dalla cancellazione e dal rinforzo di fase generato dalla sovrapposizione tra segnale diretto e copia ritardata.
20
• • •
Lo spettro risultante avrà il primo picco a:
•
Ad esempio, se SR = 44100 Hz, D = 44 samples, si ottiene:
• • • • • • •
f = 1/44 x 44100 = 0,0227 x 44100 f1 = 1002,27 Hz f2 = 2004,54 Hz f3 = 3006,81 Hz f4 = 4009,09 Hz f5 = 5011,36 Hz
•
f = 1/D x SR laddove D è il delay espresso in sample e SR è ovviamente la sampling rate del sistema; i picchi successivi cadranno simmetricamente a 2f, 3f, 4f, 5f eccetera.
Se la lunghezza del delay D è significativa, nello spettro risultante si ottengono picchi estremamente ravvicinati tra loro e quindi poco significativi all’orecchio; se invece il delay è particolarmente contenuto, i picchi risultano più distanziati ed ampi, cioè maggiormente evidenti all’orecchio.
21
x[n-D] x
-
y
Filtri Comb FIR Negative Summing y[n] = x[n] - x[n – D]
22
•
In questo caso, il primo notch coinciderà con 0 Hz ed i notches successivi avranno frequenza f, 2f, 3f, 4f.
•
Questo tipo di filtro a pettine inevitabilmente indebolisce la fondamentale e le sue armoniche;
•
Il segnale risultante sarà rinforzato da picchi centrati su f/2, 3f/2, 5f/2 eccetera.
23
b x[n-D] x
a
y
Filtro Comb IIR y[n] = (a x x[n]) + (b x x[n – D])
24
•
I coefficienti a e b permettono di scalare il segnale in un range variabile tra 0 e 1.
•
La resonance del filtro varierà sensibilmente in base al valore assunto da b, seguendo un andamento timbrico più pronunciato che non nella precedente modalità FIR.
•
Ovviamente, come nel dominio analogico, se b è troppo elevato, il filtro andrà in saturazione numerica, cioè in distorsione.
25
•
Lo schema riproduce la risposta in frequenza del fitro Comb IIR all’interno di un sistema frequenza / ampiezza; si confronti questo andamento grafico con quello precedentemente osservato per il filtro Comb FIR.
•
In questo caso, la maggior selettività dei picchi risonanti rendono più significativo, dal punto di vista musicale, l’incremento di ampiezza della risonanza.
26
Filtri All Pass
y[n] = (-g x x[n]) + x[n – D] + (g x x[n])
27
•
Il filtro All Pass procura uno spostamento di fase variabile con la frequenza ovvero, ritarda in percentuali minime variabili con la frequenza il segnale passante, causandone la dispersione.
• •
Il segnale in ingresso x[n] viene suddiviso in due tronconi, il primo dei quali raggiunge una linea di ritardo D, superata la quale, prosegue poi verso l’uscita. Il secondo troncone, diretto, viene sottoposto alla moltiplicazione di un coefficiente –g che ne scala l’ampiezza; successivamente, i due segnali diretto e ritardato, vengono addizionati in un punto di somma.
•
Semplificando, la struttura del filtro All Pass è composta dall’impiego simultaneo di un circuito Comb Filter IIR feedback ed un circuito Comb Filter FIR; l’inversione di segnale nel coefficiente –g cancella le caratteristiche spettrali del filtro a pettine, lasciando intatte le caratteristiche di delay.
•
Il comportamento del filtro All Pass è identificabile mediante turnover frequency, che indica la frequenza in cui lo spostamento di fase raggiunge i 180°, e mediante transition width, cioè la banda di frequenze contenute all’interno degli spostamenti di fase espressi con 90° e 270°; il secondo parametro è assimilabile alla Q espressa per un filtro passa banda.
28
29