Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Regole di trasformazione:
trasformazione Fourier
Tempo-continui
continui Tempo-discreti Vettori
+∞ +∞
Trasformata {
F x (t ) = } ∫ x (t ) e − j 2 π ft
dt F {xn } = XS ( f ) = ∑ xn e − j 2π nft
−∞
X = DFT x
−∞
F −1 {xn } = T ∫ X ( f )e
+∞
{X ( f )} = ∫ X ( t ) e
j 2 π fnT
Antitrasformata F −1 j 2 π ft
df S
df x = IDFT X
−∞ 1/ T
rasformata di sequenze
1.2 – La ricerca di una trasformata
x = ( x1 , x2 , x3 , ..., xn ) →
F
← y = ( y1 , y2 , y3 , ..., yn ) (2)
F −1
Per raggiungere il nostro scopo dobbiamo
d preventivamente crearci delle regole nonché degli
operatori strettamente correlati alla definizione di vettore. Un esempio è quello di traslazione
temporale:
Per sottolineare quest’aspetto scriviamo sempre la quantità n-k tra parentesi tonde; la seguente
scrittura
x( n− k )
indica infatti che n-k è da calcolarsi modulo N:: le due parentesi fanno quindi le veci dell’operatore
dell’
resto .
4
1.3 – Convoluzione
onvoluzione e convoluzione circolare
La convoluzione “classica”, formulata per sequenze infinite, agisce nel seguente modo:
ingresso {xn }n=−∞ risposta impulsiva5 {hn }n=−∞
n =∞ n =∞
+∞
uscita (convoluzione) yn = ∑xh k n− k
= {xn } ∗ {hn }
k =−∞
Coi vettori, nonostante con essi si commetta una forzatura nel definirne la convoluzione, la
definizione è assolutamente analoga:
vettore ingresso x = ( x0 , x1 , x2 , ..., xn−1 )
3 Ad esempio, ipotizzando una traslazione di k = 3 posizioni nel caso di vettori lunghi n = 8, il termine di indice 2 andrebbe a
collocarsi in posizione 2 − 3 = − 1 , cosa chiaramente assurda in quanto gli indici del nostro array vanno da 0 a n‒1.
4 Qualche esempio:
Quella appena effettuata viene chiamata convoluzione circolare e simbolicamente viene così
rappresentata:
yn = xn N hn
(convoluzione circolare di lunghezza N)
La convoluzione circolare non è la convoluzione classica, ma può emularne le peculiarità nelle
macchine funzionanti coi vettori.
La DFT può vantare una comoda rappresentazione matriciale: se, per definizione, poniamo
2π
−j
w≜e N
si ha:
N −1
Xq = ∑ xn w nq
n=0
…
q = N − 1 → XN −1 = x0 + x1w N −1 + x2 w ( ) + ... + xN −1w ( )( )
2 N −1 N −1 N −1
Come si nota abbiamo un sistema lineare avente, come pesi, i termini w. Possiamo perciò formulare
una notazione matriciale:
X0 1 1 1 1 x
1 w w 2
⋯ ⋯ w N −1 0
X
1 x1
2 ( N −1)
X 1 w 2
w 4
⋯ ⋯ w x
2 = 2
⋮ ⋮ ⋮ ⋮ ⋱ ⋮ ⋮
⋮
⋮ ⋮ ⋮ ⋱ ⋮ ⋮
X x
1 w N −1 w ( ) ⋯ ⋯ w ( )( )
2 N −1 N −1 N −1
N −1
N −1
Vettore delle Matrice simmetrica (matrice di Fourier) contenente i pesi Vettore
frequenze del tempo
X = W ⋅ x
Anche per la IDFT può essere scritta in notazione sintetica,
x = W −1 ⋅ X
col non trascurabile vantaggio che è facile calcolare la matrice inversa W −1 in virtù della sua
simmetricità:
1 1 1 1
−1 −2 − ( N − 1)
1 w w ⋯ ⋯ w
w ( )
− −
w −2 w −4
2 N 1
−1 1 1 ⋯ ⋯
W = ⋅
N ⋮ ⋮ ⋮ ⋱ ⋮
⋮ ⋮ ⋮ ⋱ ⋮
− ( N − 1) − 2 ( N − 1) − ( N −1)( N −1)
1 w w ⋯ ⋯ w
Infine, cerchiamo di capire quanto sia onerosa la DFT da dall punto di vista computazionale. Per
effettuarla si richiedono: N moltiplicazioni il tutto per N volte
N ‒ 1 somme N −1
Xq = ∑ xn w nq q = 0, N − 1
n=0
F
Segnale x(t) nel Trasformata X(f) nel
dominio dei tempi dominio delle frequenze
F −1
Come facciamo ad applicare la definizione di trasformata, che prevede un integrale, se non siamo
in grado di conoscere la forma matematica del segnale? Esiste un metodo numerico che permetta,
con una buona approssimazione, di stimare lo spettro di un segnale indipendentemente
dall’esistenza di un’espressione matematica
matemat chiusa per esso? La soluzione a questo problema
viene dalla DFT: prendiamo le funzioni x(t) e X(f) e periodicizziamole, l’una con periodo T e l’altra
con periodo F (l’unico vincolo è che si abbia F ⋅ T = N ∈ ℕ ).
n =∞
Xɶ ( f ) = ∑ X ( f − nF )
n =−∞
Segnale
D
t
2D
2D 2D
T1 T1 T1 t T2 T2 t
In generale, dunque, sarà bene evitare l’aliasing sia nei tempi3 (T grande) che nelle frequenze (F
grande): il rovescio della medaglia sta nel fatto che se T ed F sono scelti opportunamente, e sono
quindi abbastanza grandi, anche N lo sarà e questo porterà ad una maggiore difficoltà
computazionale.
1 La presenza dei termini ∆t e 1/ ∆t (non riscontrabili nelle definizioni) sta nel fatto che i campioni provengono dalle
ripetizioni periodiche dei segnali originari.
2 Come si vede dal grafico la durata è D: essa – ovvero – è intesa come dal tempo zero al termine del segnale, supposto
quest’ultimo di durata “simmetrica” rispetto all’origine del sistema di riferimento nel dominio dei tempi.
3 E se il segnale è troppo lungo o infinitamente duraturo? In tal caso dovremo accontentarci di una stima e accettare la
2.2 - Periodogramma
xT ( t ) ⇒ XT ( f ) ⇒ SX ( f )
DFT periodogramma
Ecco la formula che sta alla base del principio adottato da questo metodo:
1
f +∆f
SX ( f ) = lim XT ( f ) df
1 2
∆f → 0 ∆f
lim
T →∞ T ∫
f
Come si vede, si prende una porzione del dello spettro del segnale a potenza finita (da f a f + ∆f ,
grazie a un filtro) dopodiché si fa un’operazione “al limite” con T sempre più grande (tendente
all’infinito). Questa non è però sufficiente a convergere verso lo spettro di potenza5 SX ( f ) in
quanto, per riuscirci, è necessario fare un altro limite6, questa volta in f. Supponiamo ora (v.
(v nota 4)
che sia accettabile la semplificazione dell’integrale a:
SX ( f ) ≅ XT ( f )
1 2
T
Torniamo alla ricerca di XT ( f ) : dalla nostra
porzione di segnale (lunga T) prendiamo N
T
campioni, distanti ∆t = l’uno dall’altro,
N
stando attenti a non incappare nei soliti
inconvenienti (aliasing).
). Ogni campione può
chiaramente essere individuato in base alla sua
posizione nel tempo
xT ( n∆t ) = xn
e l’insieme completo di campioni può essere posto all’interno di un vettore x. A questo punto, se
usiamo la DFT, otteniamo:
4 Questo, chiaramente, ha l’inconveniente di non da poco di rendere impossibile (con questo metodo) la stima
dell’intero spettro del segnale, ma soltanto quella della porzione troncata.
5 In realtà, giunti a questo punto, stiamo convergendo a quello di energia.
6 Checché se ne dica, i limiti in T e in f non sono invertibili: non possiamo, insomma, scrivere
1
f +∆f
T →∞ T ∆f →0 ∆f ∫ T →∞ T T
f
visto che il limite in T in generale non esiste nel campo delle funzioni ordinarie a causa delle oscillazioni della
funzione 1 X ( f ) 2 provocate dal troncamento sull’asse dei tempi. In più lo dice Chiani, dunque dev’essere vero per
T
T
forza (è l’argomento definitivo).
Xq = ∆t ⋅ DFT {x n }
A questo punto possiamo semplicemente sostituire e scrivere7:
∆t
SX ( q∆f ) ≅ XT ( f ) = ∆t ⋅ DFT {x n } = DFT {x n }
1 2 1 2 2
T T N
periodogramma
Ripetendo queste prove, ma allargando sempre più la finestra, si dimostra la stima diventa man
mano più raffinata.
Il vantaggio del metodo del periodogramma sta
nel fatto che tale algoritmo è estremamente
semplice8 e produce una stima abbastanza
buona9; gli inconvenienti, invece, derivano
dall’impossibilità
all’impossibilità di invertire i limiti10 nella
formula generale vista nella pagina precedente
nonché dall’aver troncato il segnale, scelta che
produce il cosiddetto fenomeno di Gibbs11 (v. figura a destra). Aumentando di molto T, inoltre,
aumentiamo paurosamente la varianza e quindi l’entità di tali piccole oscillazioni
Per aggiustare questi inconvenienti esiste un trucco arguto: si divide il segnale in tanti intervalli
lunghi T (v. figura sottostante), dopodiché d’ognuno di essi si fa la stima dello spettro di potenza
S( ) ( q∆f ) tramite il metodo del periodogramma
k
formata da infiniti termini. Quando si ricostruisce il segnale, se questa serie viene troncata, si ottengono delle
soprelevazione del valore della funzione ricostruita nell'intorno del punto di discontinuità: all'aumentare del numero
delle componenti della serie il valore di picco di detta soprelevazione rimane costante, mentre le oscillazioni
os alle quali
tali soprelevazioni si riferiscono si avvicinano al punto di discontinuità. (da Wikipedia)
1 L ( m)
S ( q∆f ) = ∑ S ( q ∆f )
L m =1
otteniamo un ottimo risultato, tanto migliore quanto più grande è L, ovvero il numero di medie
effettuate.
CAPITOLO 3
Filtri
{x }
n
→ {y }
→ LTI-TD n
Fra le reti LTI vi è l’importante classe delle reti causali, contenente tutte quelle reti per
p le quali
l’uscita non dipende dai valori futuri del segnale d’ingresso . Per le reti causali si ha:
4
hn = 0 se n < 0
La proprietà di causalità è importante in quanto è necessaria affinché il sistema si fisicamente
realizzabile.
3.1 – Realizzazione di
filtri digitali
Inoltre, come si vede anche dallo schema, le linee di ritardo memorizzano gli ultimi M campioni
dell’ingresso e gli ultimi N campioni dell’uscita.
Se ora effettuiamo la trasformata di Fourier:
M −1 N
YS ( f ) = ∑ bk XS ( f ) e − j 2π kfT − ∑ akYS ( f ) e − j 2π kfT
k =0 k =1
M −1
YS ( f ) ∑b e k
− j 2π kfT
HS ( f ) ≜ = k =0
XS ( f ) N
1 + ∑ ak e − j 2π kfT
k =1
Se ak = 0 , per ogni k da 1 a N,, allora non esiste il ramo di retroazione e la struttura diventa di tipo
FIR (Finite Impulse Response); reti come quest’ultima vengono anche dette a risposta impulsiva finita
in quanto, se diamo in ingresso al sistema il segnale impulsivo (delta di Dirac),
Dirac) la risposta risulta
essere la somma – chiaramente finita – di tutti i coefficienti del ramo diretto, come mostrato nella
figura seguente: l’impulso, di valore unitario, “scorre” infatti tutti blocchi
locchi della linea
li di ritardo e,
moltiplicato blocco per blocco per il coefficiente b relativo al moltiplicatore coinvolto, viene
portato al sommatore da ogni ramo verticale.
IN USCITA: yn = b0 + b1 + ... + bM −1
YS ( f ) ∑b e k
− j 2π kfT
= k =0
XS ( f ) N
1 + ∑ ak e − j 2π kfT
k =1
6 Per farlo sono necessari complicati algoritmi,
algoritmi dei quali MATLAB è fortunatamente dotato.
3.2 – Vantaggi e svantaggi dei filtri digitali
FILTRI FIR
☺ Vista l’assenza di anelli di retroazione, sono sempre stabili.
☺ Scegliendo opportunamente (cioè simmetricamente) i coefficienti b siamo
sia sicuri che la fase è
lineare, dunque il filtro risulta essere non distorcente.
distorcent
☺ Implementando un FIR è necessario rappresentare in bit i pesi b: questo significa che
bisognerà quantizzarli, con la conseguente introduzione di un’approssimazione che – in
realtà – non si rivela mai preoccupantemente drammatica. La quantizzazione dei pesi, p
quindi, è facilmente controllabile e non porta inconvenienti rilevanti.
Sono un po’ più dispendiosi rispetto ai filtri IIR e, per mancanza di un anello di retroazione,
meno efficienti rispetto a questi ultimi.
FILTRI IIR
☺ Maggiore efficienza.
☺ La sintesisi può essere effettuata “traducendo” un filtro analogico che soddisfa particolari
requisitii (esistono dei metodi fatti apposta):
apposta) tale passaggio fra analogico e digitale risulta
facile, veloce e indolore.
La stabilità non è sempre verificata: nei casi peggiori può infatti capitare che il filtro prenda
ad oscillare o che l’uscita si saturi.
La quantizzazione dei pesi, a differenza del caso FIR, può portare qualche grattacapo.
Sicuramente si ha che
M −1 M −1
G ( f ) = FS {hn′ } ∈ ℝ
⇒ HS ( f ) = FS {hn′ } e ( )
− j 2π Tf − j 2π Tf
2
= G f e 2
∈ℝ
visto che, per costruzione, la successione {hn′ } è reale e simmetrica rispetto all’origine8.
A questo punto esistono due possibilità:
• se G ( f ) > 0 allora
M −1
arg HS ( f ) = 0 − 2π
Tf ← argomento lineare con la frequenza
2
quindi soddisfiamo la condizione di non distorsione per la fase del filtro. Il parametro
M −1
t0 = T
2
è il ritardo prodotto dal sistema: si nota che esso cresce linearmente col numero M di prese
del filtro;
• se G ( f ) < 0 (filtro invertente)
invertente abbiamo
M −1
arg HS ( f ) = π − 2π
Tf
2
dunque G ( f ) risulta essere un numero reale e negativo.
8 E quindi scatta la proprietà della trasformata di Fourier, che è sicuramente reale per segnali reali e simmetrici.
Variando questi parametri, la funzione di trasferimento H ( f ) del filtro cambia forma9, ma
dobbiamo tuttavia avere un criterio di riferimento in base al quale valutare se tale f.d.t. è idonea al
compito per il quale il filtro è stato progettato10. A tal fine, vengono definite delle maschere come
quella in figura seguente11
Se il modulo della funzione di trasferimento è interamente contenuto all’interno della zona bianca
ritagliata
ata dalla maschera allora il filtro è idoneo allo scopo; in caso contrario sarà invece necessaria
una nuova sintesi dei coefficienti. Come si vede, vi sono alcuni importanti parametri che
concorrono a definire univocamente una maschera di questo tipo:
• la frequenza di taglio ft ;
• la banda di transizione ∆F , entro la quale la f.d.t. deve “degradare” a zero;
• i parametri δ 1 (2 δ 1 = tolleranza in banda passante) e δ 2 (= tolleranza in banda attenuata).
Da questi si possono ricavare altri due importanti parametri:
• il ripple in dB ( = tolleranza in banda passante in dB):
dB)
1 + δ1
RIPPLEdB = 20 log 10
1 − δ1
• l’attenuazione in banda attenuata12:
AS ( dB ) = −20 log 10 δ 2
9 Nel caso si decidesse di farne il plot per vederne la forma, si tenga presente che MATLAB normalizza l’asse delle frequenze
rispetto alla frequenza di campionamento fS .
10 Mettiamo in chiaro fin dall’inizio che la funzione di trasferimento di un filtro ideale è impossibile da ricavare senza un numero
nu
infinito di prese (e dunque non può essere sintetizzata attraverso un filtro reale). Dobbiamo quindi avere un margine di tolleranza
to
entro il quale poterci muovere per ottenere il risultato desiderato.
11 Si riferisce chiaramente ad un filtro passa-basso.
basso.
12 Indica di quando deve calare la H in banda attenuata (rispetto al valore
valore avente in banda passante).
3.5 – Primo metodo per la sintesi dei FIR: metodo delle finestre
n =−∞
k =0
∞ M −1 M −1
∑ hd ( n ) e
− j 2π nF
⇔ ∑b e k
− j 2π kF
n = −∞ 0 k =0
traslazione
troncamento
Quindi abbiamo ricavato il legame fra la risposta impulsiva campionata hd ( n ) del nostro filtro
ideale15 passa-basso
basso e i coefficienti b nel filtro FIR (sempre passa-bassobasso16) che ci piacerebbe
realizzare: in pratica, abbiamo trovato il modo di effettuare una sintesi dei coefficienti17.
13 Nel dominio delle frequenze il ritardo, come al solito, si tradurrà una moltiplicazione per un fasore.
14 Si prendono M campioni del nuovo segnale traslato e troncato (gli estremi della sommatoria sono stati modificati), in modo da
avere abbastanza coefficienti b per progettare il FIR a M prese.
15 Cioè non causale.
18 Alcuni nomi: Hanning, Hamming, Bartlett, Boxcar… Si veda l’help di MATLAB per maggiori informazioni.