Vai alla Home Page About me Courseware Federica Living Library Federica Federica Podstudio Virtual Campus 3D Le Miniguide all'orientamento Gli eBook di Federica La Corte in Rete
 
 
Il Corso Le lezioni del Corso La Cattedra
 
Materiali di approfondimento Risorse Web Il Podcast di questa lezione

Immacolata Ortosecco » 19.Filtri - parte prima


Sommario

  • Parametri e strumenti per caratterizzare i filtri
  • Strumenti per l’analisi e la progettazione di filtri in Matlab: FVtool e FDAtool di Signal Processing toolbox

Filtri: analogici o digitali

Ricordiamo la forma generale per l’equazione alle differenze e la sua H(z)
\sum_{0}^{N}a_{k}y[n-k]=\sum_{0}^{M}b_{k}x[n-k] H(z)=\frac{Y(z)}{X(z)}=\frac{\sum_{k=0}^{M}b_{k}z^{-k}}{1-\sum_{1}^{N}a_{k}z^{-k}}

Coefficienti e Nomi per i filtri

Molti nomi standard per i filtri riflettono il numero ed il tipo di coefficienti a e b presenti nella H(z):

Quando N≠0 ed M=0 il vettore dei coefficienti b, contiene un solo valore, b0. Il filtro, in tal caso, è un sistema a risposta all’impulso infinita (IIR), a tutti poli, ricorsivo detto anche filtro autoregressivo  (AR).
Quando M≠0 ed N = 0 il vettore dei coefficienti a contiene un solo valore, a0. Il filtro è un sistema a risposta all’impulso finita (FIR), a tutti zeri, non ricorsivo, detto anche filtro moving-average (MA).
Se M ed N sono maggiori di zero il filtro è un IIR, con poli e zeri, ricorsivo e viene detto filtro autoregressive moving-average (ARMA).

Il piu semplice filtro numerico ricorsivo: un sistema LTI rappresentato dall’equazione alle differenze y[n]= x[n]+ay[n-1] ottenuta da
\sum_{0}^{N}a_{k}y[n-k]=\sum_{0}^{M}b_{k}x[n-k]
con N=1 ed M= 0, a0 =1 a1 =-a e b0 =1 .

Il più semplice filtro ricorsivo

Il più semplice filtro ricorsivo


I Sistemi Lineari Tempo Invarianti come filtri numerici

Ricordiamo le principali Tipologie di filtri analogici:

  • Butterworth;
  • Chebychev I;
  • Chebychev II;
  • Ellittici.

In generale un sistema LTI modifica lo spettro del segnale di ingresso X(e ) e fornisce un output con spettro Y(e ) = H(e jω ) · X(e ).

H(e ) agisce come una funzione peso (detta anche spectral shaping function) per le diverse componenti in frequenza del segnale.

Useremo “sistemi lineari tempo invarianti ” e “filtri” come sinonimi.

Sistemi LTI come filtri (segue)

I filtri ideali hanno due importanti caratteristiche:

1. hanno guadagno costante (di solito guadagno unitario nella loro banda passante e guadagno zero nella loro banda oscura);

2. hanno risposta in fase lineare.

Infatti se x[n] con componenti in frequenza nel range (ω1 < ω <ω2) ed H(e) tale che:

H(e^{j\omega})=\left\{\begin{array}{ll} Ce^{-j\omega_0}~~\omega_1 < \omega < \omega_2 \\ 0,~~\text{ altrimenti}\end{array}\right
dove C ed n0 sono costanti, allora il segnale di uscita nel dominio della frequenza è tale che:
Y(e^{j\omega})=H(e^{j\omega})X(e^{j\omega})=CX(e^{j\omega})e^{-j\omega n_0}

A lato le risposte in frequenza per i seguenti filtri ideali:

Passa basso (lp): passano inalterate solo le frequenze < ωc.

Passa alto (hp): passano inalterate solo le frequenze>ωc.


Sistemi LTI come filtri (segue)

Applicando le proprietà di time scaling e time shifting della DTFT, si ha, nel dominio del tempo, un corrispondente segnale: y[n]= C x[n-n0]. L’uscita del filtro è semplicemente il segnale di ingresso ritardato e scalato in ampiezza. Un semplice ritardo viene di solito considerato un fatto accettabile e non una distorsione del segnale. Non è una distorsione neanche lo ’scaling’ in ampiezza. Da ciò segue che i filtri ideali hanno una caratteristica in fase di tipo lineare.
\theta(\omega)=-\omega n_{0}
A lato le risposte in frequenza per i seguenti filtri ideali:
Passa banda (bp) passano inalterate solo le frequenze ω: ωa < ω < ωb.

Eliminatore di banda (br) passano inalterate solo le frequenze ω: 0< ωa e le frequenze ω > ωb.


Filtri ideali (segue)

In conclusione possiamo dire che i filtri ideali hanno modulo della H(e) costante nella banda passante, modulo zero in banda oscura e fase lineare.

I filtri ideali non sono fisicamente realizzabili, ma servono come idealizzazione matematica per i filtri pratici.

Il passa basso ideale non è fisicamente realizzabile, infatti ha una risposta all’impulso infinita,
h_{lp}[n]=\frac{sin\omega_{c}\pi n}{\pi n}
tuttavia la sua risposta in frequenza si può approssimare abbastanza bene.

Risposta in frequenza ideale passa basso.

Risposta in frequenza ideale passa basso.

Approssimazione della risposta in frequenza ideale con un filtro digitale progettato con ‘fdatool’.

Approssimazione della risposta in frequenza ideale con un filtro digitale progettato con 'fdatool'.


Analizzare il comportamento di un filtro

Per analizzare il comportamento di un filtro descritto da un’equazione alle differenze
\sum_{0}^{N}a_{k}y[n-k]=\sum_{0}^{M}b_{k}x[n-k]
Nel dominio del tempo abbiamo:

  • la risposta all’impulso;
  • la risposta al gradino.

Nel dominio della frequenza abbiamo:

  • la risposta in frequenza;
  • il ritardo di gruppo;
  • il ritardo di fase.

Per un’analisi complessiva del comportamento di un filtro con parametri come i coefficienti [a ] e [b] delle polinomiali dell’equazione alle differenze, fissati dall’utente, abbiamo, nell’ambiente software matlab-Signal-Processing toolbox: l’nterfaccia grafica fvtool (filter visualization tool).
Per l’analisi ed il progetto, a partire dalle specifiche abbiamo: l’interfaccia grafica di matlab fdatool (filter design and analization tool).

Filtri reali:specifiche nel dominio della frequenza (caso filtro passa basso)

Passa basso specifiche.

Passa basso specifiche.


Specifiche nel dominio della frequenza

Esempio: per un progetto in Matlab di un filtro numerico passa basso occorrono le seguenti specifiche:

  • Fs = frequenza di sampling;
  • Fpass = limite destro della banda passante;
  • Fstop= limite sinistro della banda oscura o stop band e le ampiezze nelle due bande oltre al tipo e all’ordine del filtro.

A lato le specifiche estratte dall’interfaccia grafica Matlab ‘fdatool’.


Filtri come sistemi LTI: risposta all’impulso e risposta al gradino

Ricordiamo che entrambe le risposte sono utili per capire il funzionamento di un filtro.

Con la risposta all’impulso possiamo subito osservare il comportamento nel dominio del tempo guardando l’andamento al crescere del tempo, se va a zero possiamo dire che è stabile. Poi possiamo farne la DTFT per tornare al suo comportamento in frequenza.


Risposta all’impulso di un filtro stabile

Dominio della frequenza e del tempo.

Dominio della frequenza e del tempo.


Filtro precedente e suo diagramma di poli e zeri


Filtro instabile

Utilizzando il progetto precedente , il filtro è stato alterato, reso instabile con l’editing del diagramma poli-zeri con i tasti nel cerchio rosso dell’interfaccia grafica ‘fdatool’.

È ovviamente cambiata anche la risposta in frequenza.

Output dell’interfaccia grafica ‘fdatool’.

Output dell'interfaccia grafica 'fdatool'.


Mostriamo la risposta all’impulso di un filtro non stabile.


Risposta all’impulso di un filtro non stabile (segue)


Filtri come sistemi LTI: risposta all’impulso e risposta al gradino

Risposta al gradino
Tra le due risposte, quella più interessante è la risposta al gradino. Con la risposta al gradino vediamo il comportamento del dispositivo all’applicazione di una variazione del segnale in input. Vediamo se ci sono sovrascillazioni ed in quanto tempo l’uscita si stabilizza in una condizione stazionaria valutando il tempo di salita e il tempo di assestamento o ’settling time’.
I parametri importanti della forma d’onda di risposta al gradino sono:

  • Tempo di salita = tempo impiegato dalla forma d’onda per passare dallo 0.1% al 0.9% del valore finale.
  • Tempo di ritardo = tempo impiegato dalla forma d’onda per passare dal valore zero all 0.5 del valore finale.
  • Sovraelongazione = ampiezza del picco al di sopra del valore finale.
  • Tempo di smorzamento = intervallo di tempo per un ciclo di oscillazione.
  • Tempo di assestamento = tempo impiegato dalla risposta per assestarsi entro ±P% del valore finale . (P è specificato a seconda delle applicazioni).

Esempio grafico di parametri di risposta al gradino (step)


Risposta al gradino (segue)

Facciamo il confronto tra due filtri con le stesse specifiche, ma con tipologia diversa: filtro Butterworth e filtro Ellittico.

A lato sono mostrate le specifiche.
(Per maggiori dettagli sulle tipologie di filtri vedi appendice B di Oppenheim _Schafer- Buck).


Risposte in frequenza per i due filtri passa basso da confrontare


Tempo di salita e settling time a confronto

Il tempo di salita ed il settling time sono diversi per i due filtri: Il tipo Butter, che nel dominio della frequenza ha una banda di transizione molto più ampia di quella del tipo ellittico, ha una risposta allo step migliore sia sotto il profilo del tempo di salita che di quello del settling time.
Ancora una volta verifichiamo che questo comportamento è in relazione con il principio di indeterminazione: una data localizzazione in frequenza (banda di transizione stretta) comporta incertezza nella localizzazione temporale e viceversa.

Risposte allo step a confronto.

Risposte allo step a confronto.


Esaminiamo ora nel dominio del tempo il caso di y[n]= x[n] + a y[n-1]

Data l’equazione alle differenze y[n]= x[n] + a y[n-1] con a=.7 vediamo la risposta di questo filtro
all’impulso e la risposta al gradino.
y[n]=x[n]+.7y[n-1].

Grafici realizzati con le functions Matlab ‘impz’ e ’stepz’ (la risposta all’impulso è la derivata della risposta al gradino).
(Verificare con la function matlab ‘diff’, se s= risposta allo step, diff(s) è la risposta all’impulso a partire dal secondo campione.) In questo caso la risposta allo step è senza oscillazioni e la condizione stazionaria viene raggiunta dopo pochi campioni. (tempo=sample/fs).


Uso di FVTool

Familiarizzarsi con l’interfaccia grafica ‘fvtool‘, esercitarsi dopo aver visionato l’help di ‘fvtool‘ e la documentazione.

Le analisi che seguono sul l comportamento del filtro esempio: y[n]=x[n]+.7y[n-1] sono tutte realizzate con ‘fvtool‘.

Dominio della frequenza – esaminiamo il caso di y[n]= x[n] + a y[n-1]

Per studiare la risposta in frequenza di questo sistema utilizziamo la z-transf e calcoliamo la funzione di trasferimento (system function) H(z).
Y(z)=X(z)+ az-1 Y(z)
$H(z)=\frac{Y(z)}{X(z)}=\frac{1}{1-az^{-1}}$
Esaminiamo la H(z) nel piano z con la function Matlab zplane, se a=.7 i vettori dei coefficienti dell’equazione alle differenze sono:
a=[1 -.7] e b=[1].
In zplane viene mostrata la H(z) con un polo in z=.7 e uno zero in z=0.
La regione di convergenza, l’area tratteggiata in verde, include il cerchio unitario,quindi esiste la trasformata di Fourier e di conseguenza la risposta in frequenza H(e ).
Quest’ultima si può anche intendere come l’intersezione della superfice della H(z) con il cerchio unitario. Per il fatto che Il polo è vicino alle basse frequenze deduciamo che si tratta di un passa basso,anche se è molto lontano dal comportamento di un passa basso ideale.
Il filtro è stabile, perché la ROC include il cerchio unitario.

Piano z.

Piano z.


Risposta in frequenza filtro y[n]=x[n]+.7y[n-1]

A lato la risposta in frequenza del filtro .

Primo grafico Ampiezze , modulo di H(e ), secondo grafico fasi angle di H(e ).

L’asse delle frequenze è normalizzato alla frequenza di Nyquist vedi help di ‘freqz’.

Output di freqz.

Output di freqz.


Ritardo di gruppo = misura della linearità della fase

Abbiamo detto che i filtri ideali hanno una caratteristica in fase di tipo lineare.
$\theta(\omega)=-\omega n_{0}$
La derivata della fase rispetto alla frequenza ha le dimensioni di un ritardo.
Possiamo definire il ritardo del segnale come una funzione della frequenza
$\tau_{g}(\omega)=-\frac{d\theta(\omega)}{d\omega}$

Questo ritardo viene detto anche ritardo di gruppo ed è indice del il ritardo che le componenti del segnale subiscono quando passano dall’input all’output del sistema.
Quando \tau_{g}(\omega) = costante = n0, la fase è lineare.
Ttutte le componenti in frequenza dell’input subiscono lo stesso ritardo.
In altri casi il ritardo di gruppo varia con la frequenza. Questo significa che le varie frequenze componenti il segnale passano attraverso il filtro con tempi diversi.

Il ritardo di gruppo è misurato in campioni. Qui le basse frequenze subiscono il maggiore ritardo, le alte il minore.

Il ritardo di gruppo è misurato in campioni. Qui le basse frequenze subiscono il maggiore ritardo, le alte il minore.


Fvtool per un’analisi completa del nostro esempio y[n]=x[n]+.7y[n-1]. Tutte le analisi in una sola interfaccia grafica

Vedi help di fvtool in matlab signal processing toolbox. Il grafico è relativo al nostro esempio: fvtool([1],[1 -.7]).

Vedi help di fvtool in matlab signal processing toolbox. Il grafico è relativo al nostro esempio: fvtool([1],[1 -.7]).


Esercizi con filtri e visualizzazioni con fvtool


Diagramma di poli e zeri nel dominio z


Coefficienti estratti da fvtool e ritardo di gruppo


I materiali di supporto della lezione

Filtri: Cap. 5 - Discrete Time Signal Processing – Oppenheim, Schafer, Buck.

Cap. 6 - Signals & Systems Oppenheim Willsky (per approfondimenti).

Manuale Matalb Signal Processing Toolbox.

Vedere l'help per come utilizzare le functions: fir1 butter, cheby1, cheby2,ellip per il progetto di vari tipi di filtri.

Familiarizzarsi con l'interfaccia grafica 'fvtool', esercitarsi dopo aver visionato l'help di 'fvtool'e la documentazione.

Function 'filter' per realizzare i filtri nel dominio del tempo.

  • Contenuti protetti da Creative Commons
  • Feed RSS
  • Condividi su FriendFeed
  • Condividi su Facebook
  • Segnala su Twitter
  • Condividi su LinkedIn
Progetto "Campus Virtuale" dell'Università degli Studi di Napoli Federico II, realizzato con il cofinanziamento dell'Unione europea. Asse V - Società dell'informazione - Obiettivo Operativo 5.1 e-Government ed e-Inclusion