Elaborazione numerica dei segnali/Progetto di filtri IIR

Da testwiki.
Vai alla navigazione Vai alla ricerca

Template:Elaborazione numerica dei segnali L'approccio più comune per affrontare il progetto di filtri IIR consiste nel convertire un filtro analogico di funzione di trasferimento Ha(s) in un filtro numerico di funzione di trasferimento H(z) che garantisca le specifiche richieste. Le conversioni devono preservare la causalità e la stabilità del filtro stesso.

  1. Si definiscono i requisiti di progetto del filtro analogico passa-basso.
  2. Si genera la risposta in frequenza Ha(s) del filtro analogico tramite approssimazione con modelli analogici standard (come il filtro di Butterworth).
  3. Si applica la trasformazione bilineare per passare dal tempo continuo al tempo discreto, trovando la risposta in frequenza H(z) del filtro numerico.
  4. Si trasforma lo spettro passa-basso in uno spettro passa-alto o passa-banda.

Prototipo di filtro analogico

Il progetto di un filtro IIR richiede la sintesi di un filtro analogico con funzione di trasferimento Ha(s):

Ha(s)={ha(t)}=+ha(t)estdt

dove s=σ+jΩ=σ+j2πfa. Siccome il filtro dev'essere fisicamente realizzabile, la sua risposta all'impulso ha(t) è causale e la sua risposta in frequenza Ha(s) è unilatera:

Ha+(s)=0+ha(t)estdt

L'insieme dei valori di σ={s} per cui l'integrale in Ha(s) converge è definita regione di convergenza della trasformata di Laplace. Per sistemi causali, la regione di convergenza della trasformata di Laplace è costituita dal semipiano complesso alla destra di una retta verticale. Se σ=0, la regione di convergenza è il semipiano complesso destro:

Ha(jΩ)={ha(t)}=+ha(t)ejΩtdt=Ha(s)|s=jΩ

Maschera delle specifiche

CIAO

Il filtro ideale non è fisicamente realizzabile → le specifiche di progetto devono imporre delle tolleranze della risposta in frequenza Ha(jΩ) del filtro analogico rispetto al filtro ideale:

  • l'oscillazione massima in banda passante 2δ1, idealmente nulla;
  • l'oscillazione massima in banda attenuata δ2, idealmente nulla;
  • la banda di transizione ΩsΩp, idealmente nulla.

Spesso le specifiche di progetto dei filtri vengono date in termini della funzione di trasferimento in modulo, normalizzata rispetto al valore massimo ed espressa in scala logaritmica:

10log10(|Ha(jΩ)|max{|Ha(jΩ)|})2=20log10|Ha(jΩ)|max{|Ha(jΩ)|}

con parametri:

  • ripple in banda passante, idealmente nullo:
    Rp=20log101δ11+δ1
  • attenuazione in banda attenuata, idealmente infinita:
    As=20log10δ21+δ1

Distribuzione di poli e zeri

Le specifiche del filtro analogico sono tipicamente fornite in termini del suo spettro di energia |Ha(s)|2:

|Ha(s)|2=|Ha(σ+jΩ)|2=Ha(σ+jΩ)Ha*(σ+jΩ)=

Siccome un filtro fisicamente realizzabile ha una risposta all'impulso ha(t) reale, e quindi tutti i poli e gli zeri sono reali o a coppie complesse coniugate (quindi simmetrici rispetto all'asse reale):

=Ha(σ+jΩ)Ha(σjΩ)=Ha(s)Ha(s)

L'obiettivo del progetto consiste nell'assegnare metà dei poli a Ha(s) e l'altra metà a Ha(s).

Un filtro causale e stabile ha tutti i poli nel semipiano di sinistra (σ<0) → i poli di Ha(s), che sono simmetrici rispetto all'asse reale, devono giacere tutti nel semipiano di sinistra. Ha(s) ha gli stessi zeri e poli di Ha(s) ma ribaltati rispetto all'asse immaginario.

Filtro di Butterworth

CIAO

Il filtro di Butterworth passa-basso di ordine N è un prototipo di filtro analogico:

|Ha(jΩ)|2=11+(ΩΩc)2N

dove la pulsazione di taglio Ωc è contenuta all'interno della banda di transizione:

ΩpΩcΩs
Proprietà

La risposta in frequenza in modulo |H(jΩ)| è:

  • quasi piatta sia in banda passante sia in banda attenuata;
  • una funzione sempre decrescente della variabile jΩ;
  • al crescere dell'ordine N si avvicina sempre di più all'idealità;
  • nell'origine (Ω=0) è sempre pari a 1:
    |Ha(0)|2=1
  • alla frequenza di taglio (Ω=Ωc) è sempre pari a 12:
    |Ha(jΩc)|2=12

Distribuzione dei poli

CIAO

Il filtro di Butterworth non ha zeri, ma solo poli, che sono posizionati in modo equispaziato lungo la circonferenza di raggio Ωc nel piano s:

pk=ΩcejkπNejπ(N+1)2Nk=0,1,,2N1

Template:Cassetto

Progetto del filtro

Il progetto del filtro consiste nel ricavare l'ordine N e la pulsazione di taglio Ωc partendo dalle specifiche, ossia dai valori di Ωp, Ωs, p e As:

{N=log1010Rp10110As1012log10ΩpΩsΩc=Ωp10Rp1012N=Ωs10As1012N

Template:Cassetto

L'ordine N dev'essere un numero intero → si approssima all'intero superiore in modo da soddisfare le specifiche per eccesso:

N=log1010Rp10110As1012log10ΩpΩs

Se avviene questa approssimazione, però, i valori di Ωc non sono univoci:

Ωp10Rp1012NΩs10As1012N
  • la scelta del valore per Ωp produce un filtro più vicino a 0 in banda attenuata;[1]
  • la scelta del valore per Ωs produce un filtro più vicino a 1 in banda passante.[1]

Le specifiche sono soddisfatte per qualunque Ωc scelto tra questi due valori → conviene scegliere il valore medio come compromesso.

Tecnica della trasformazione bilineare

La trasformazione bilineare consente di ottenere un filtro numerico H(z) partendo da un filtro analogico Ha(s):

H(z)=Ha(s=2Tc1z11+z1)

Template:Cassetto

CIAO

Esiste una corrispondenza biunivoca tra i punti del piano s e i punti del piano z:

  • l'asse immaginario jΩ nel piano complesso s corrisponde alla circonferenza di raggio unitario nel piano complesso z;
  • le pulsazioni complesse σ<0 sono mappate all'interno del cerchio di raggio unitario;
  • le pulsazioni complesse con σ>0 sono mappate all'esterno del cerchio di raggio unitario.

Template:Cassetto

Un filtro causale è stabile se:

  • tutti i poli di Ha(s) appartengono al semipiano sinistro nel piano complesso s;
  • tutti i poli di H(z) appartengono al cerchio di raggio unitario nel piano complesso z.

La trasformazione bilineare impone la seguente relazione tra la risposta in frequenza analogica Ha(jΩ) e la risposta in frequenza numerica H(ejω):

{H(ej2πf)=Ha(j2πfa=j2Tctan(πf))H(ejω)=Ha(jΩ=j2Tctanω2)

Template:Cassetto

fa=1πTctan(πf)

I valori che la funzione Ha(j2πfa) assume sull'asse immaginario fa sono mappati sull'intervallo [12Tc;12Tc] mediante la relazione non lineare:

{f=1πarctan(πfaTc)ω=2arctanΩTc2

Il filtro numerico ricavato è molto approssimato al filtro analogico per bassi valori di faTc, mentre differisce tanto più ci si allontana dalla linearità. Se la frequenza analogica fa data è alta, è possibile aumentare la frequenza di campionamento fc per migliorare l'approssimazione del filtro numerico.

La trasformazione bilineare non introduce aliasing.

Trasformazioni spettrali tra diverse tipologie di filtro

Tramite le seguenti trasformazioni spettrali è possibile ricavare, a partire da un filtro con pulsazione di taglio ωt, un filtro di diversa tipologia con pulsazione di taglio ω^t e stessi parametri di progetto ωp, ωs, AS e Rp:

Tipo di filtro desiderato Trasformazione spettrale
G(z1)=±p=1nz1αp1αpz1,|αp|<1
Passa-basso z1=z^1α1αz^1,α=sinωtω^t2sinωt+ω^t2
Passa-alto z1=z^1+α1+αz^1,α=cosωt+ω^t2cosωtω^t2

La trasformazione di un filtro causale e stabile deve portare a un filtro causale e stabile:

  • l'interno del cerchio unitario si deve mappare in se stesso;
  • i poli all'interno del cerchio di raggio unitario devono rimanere all'interno.

Note

  1. 1,0 1,1 in scala lineare