Sei sulla pagina 1di 120

Elaborazione numerica dei

segnali multimediali

Nicola Sparnacci
Ravenna, 1 febbraio 2017

ii

Superbia in proelio.
Orgoglio in battaglia.

Indice

1 Segnali a tempo-discreto
1.1 Ripasso di segnali tempo-discreti (o sequenze) . . . . . . . . .
1.1.1 Rappresentazione spettrale delle sequenze . . . . . . .
1.1.2 Propriet della DTFT . . . . . . . . . . . . . . . . . .
2 Strumenti matematici
2.1 Trasformata Z . . . . . . . . . . . . . . . .
2.1.1 Esempi . . . . . . . . . . . . . . . .
2.1.2 Classificazione regioni di convergenza
2.1.3 Propriet della trasformata Z . . . .
2.1.4 Antitrasformata Z . . . . . . . . . .
3 Sistemi lineari tempo-invarianti
3.1 Stabilit . . . . . . . . . . . . . . . .
3.2 Causalit . . . . . . . . . . . . . . .
3.3 Funzione di trasferimento LTI tempo
3.4 Analogie fra analogico e digitale . . .
3.5 Note sui filtri IIR . . . . . . . . . . .
4 Campionamento
4.1 Conversione digitale-analogico . . . .
4.2 Campionamento passa-banda . . . .
4.2.1 Ricostruzione passa-banda . .
4.2.2 Digital Up-Conversion (DUC)
4.3 Quantizzazione . . . . . . . . . . . .
4.4 Noise Shaping . . . . . . . . . . . . .
4.4.1 Sovracampionamento . . . . .
4.4.2 Noise Shaping con filtri IIR .
iii

.
.
.
.
.

. . . . .
. . . . .
discreto
. . . . .
. . . . .

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.
.

1
1
3
4

.
.
.
.
.

7
7
7
11
13
16

.
.
.
.
.

21
21
22
26
26
29

.
.
.
.
.
.
.
.

31
31
34
37
37
38
41
41
42

iv
5 Filtri digitali
5.1 Strutture di filtraggio digitale . . . . . .
5.1.1 Grafo di flusso di segnale . . . .
5.1.2 Forma diretta di tipo 2 . . . . . .
5.1.3 Forme in cascata . . . . . . . . .
5.1.4 Forma in parallelo . . . . . . . .
5.1.5 Forme Trasposte . . . . . . . . .
5.1.6 Forme Specifiche dei FIR . . . .
5.2 Strumenti per il calcolo digitale . . . . .
5.2.1 Fast Fourier Transform (FFT) . .
5.2.2 Traslazione circolare . . . . . . .
5.2.3 Convoluzione circolare . . . . . .
5.3 Progetto di filtri . . . . . . . . . . . . .
5.3.1 Formulazione delle specifiche . .
5.3.2 Sintesi del filtro FIR . . . . . . .
5.3.3 Sintesi del filtro IIR . . . . . . .
5.4 Sistemi multi-rate . . . . . . . . . . . . .
5.4.1 Decimazione . . . . . . . . . . . .
5.4.2 Interpolazione . . . . . . . . . . .
5.5 Filtraggio adattativo . . . . . . . . . . .
5.5.1 Algoritmo MSE . . . . . . . . . .
5.5.2 Algoritmo LSM . . . . . . . . . .
5.5.3 Applicazioni filtraggio adattativo

INDICE

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

A Formula dei residui

45
45
45
46
46
48
49
49
53
53
55
57
63
63
64
70
79
79
81
84
84
86
88
97

B Tipologie di filtri FIR


98
B.1 Tipo I: prese dispari, coefficienti simmetrici . . . . . . . . . . 98
B.2 Tipo III: prese dispari, coefficienti antisimmetrici . . . . . . . 99
B.3 Tipo IV: prese pari, coefficienti antisimmetrici . . . . . . . . . 100
C Approfondimento Matlab
C.1 Studio delle funzioni di trasferimento . . . . . . . . .
C.1.1 Calcolo dei fratti semplici tramite Matlab . .
C.1.2 Graficare poli e zeri tramite Matlab . . . . .
C.2 Implementazione filtri su Matlab . . . . . . . . . . .
C.2.1 Calcolo della funzione di trasferimento . . . .
C.2.2 Progetto filtro . . . . . . . . . . . . . . . . . .
C.2.3 Campionamento passa-banda GSM in Matlab
C.2.4 Grafico di Vaughan su Matlab . . . . . . . . .
C.3 Quantizzazione in Matlab . . . . . . . . . . . . . . .
C.3.1 Errore di quantizzazione in Matlab . . . . . .
C.3.2 Quantizzazione brano audio . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

103
103
103
103
104
104
105
107
107
109
109
111

Capitolo

Segnali a tempo-discreto
1.1

Ripasso di segnali tempo-discreti (o sequenze)

Una sequenza pu essere espressa con una serie di valori, in generale complessi, xn , dove n lindice, utilizzando la notazione {xn }+
. Nel seguito le
sequenze verranno rappresentate con una notazione semplificata, omettendo
le parentesi e il dominio della sequenza che verr specificato solo quando
necessario. Se i coefficienti xn sono reali, la sequenza pu essere rappresentata mediante un grafico composto da linee indicanti lampiezza della
sequenza corrispondente al valore n esimo. Esistono delle sequenze di
base, rappresentate in figura 1.2:
campione unitario: dato dallequazione
(
1, n = 0
n =
0, altrove.

(1.1)

gradino unitario:
un =

(
1, n 0

(1.2)

0, altrove.

esponenziale: an rappresentabile graficamente se a coefficienti reali.


x0

x1

x2

x3
x4

x1
1

n
0

Figura 1.1: Esempio sequenza reale


1

CAPITOLO 1. SEGNALI A TEMPO-DISCRETO

n
1

n
1

(a) Impulso unitario

(b) Gradino unitario

1
0

n
1

(c) Esponenziale con coefficienti reali e


a>0

(d) Esponenziale con coefficienti reali e


a<0

Figura 1.2: Sequenze base


Si definisce energia della sequenza:
+
X

E=

|xn |2 .

(1.3)

n=

Se E < + si dice che la sequenza ad energia finita. Se questa condizione


non si verifica, si definisce la potenza:
N
X
1
|xn |2 =< |xn |2 >
N 2N + 1

P = lim

(1.4)

n=N

e se c convergenza allora la sequenza a potenza finita. Per la sequenza


pu essere anche aleratoria e in questo caso il valor medio temporale si trasforma in valor medio statistico. Nel caso particolare di sequenza aleatoria
stazionaria ed ergodica, le due medie coincidono:
E[|xn |2 ] =< |xn |2 > .

(1.5)

Si pu definire la funzione di autocorrelazione per segnali ad energia finita:


Rx (k) =

+
X

xn xnk

(1.6)

n=

mentre se a potenza finita:


+N
X
1
Rx (k) = lim
xn xnk =< xn xnk > .
N + 2N + 1
n=N

(1.7)

1.1. RIPASSO DI SEGNALI TEMPO-DISCRETI (O SEQUENZE)

XS (f )

f
T1

1
T

(a) Ripetizione periodica in frequenza


X(F )

F
1

(b) Ripetizione periodica in frequenza normalizzata

Figura 1.3: Ripetizione periodica in frequenza


Entrambe, sono delle sequenze in k con simmetria Hermitiana. Il valore
massimo ha valore massimo in k = 0 e per tale valore si ottiene il valore di
potenza della sequenza:
Rx (0) =< xn xn >= P.

1.1.1

(1.8)

Rappresentazione spettrale delle sequenze

Dalla definizione di trasformata di Fourier per segnali a energia finita continui:


Z
X(f ) =
x(t)ej2f t dt
(1.9)

e discretizzando il segnale, per t = nT con n numero intero, si definisce la


DTFT (Discrete-Time Fourier Transform):
XS (f ) =

+
X

xn ej2f nT ,

con T passo di campionamento.

(1.10)

n=

Per le sequenze in esame, la serie sar sempre convergente. Inoltre, il risultato


sar sempre periodico nelle frequenze a causa dellesponenziale che, da fasore,
ruota nella circonferenza e compie dei giri attorno al punto di partenza. Da
notare che T non per forza un tempo. Infatti, semplicemente il passo di
campionamento che potrebbe anche essere, ad esempio, spaziale. Per dare
una definizione che non tenga conto del passo T , in modo da rendere pi

CAPITOLO 1. SEGNALI A TEMPO-DISCRETO

generale la trasformata, si definisce la frequenza normalizzata F = f T =


f /fs . In questo modo la trasformata diventa:
+
X

X(F ) =

xn ej2nF .

(1.11)

n=

Rappresentando lo spettro, il periodo di ripetizione sar 1 a causa della normalizzazione delle frequenze. Una rappresentazione grafica della ripetizione
periodica mostrata in figura 1.3.

1.1.2

Propriet della DTFT

Nel seguito si user la notazione con frequenze normalizzate, quindi le propriet, come gli altri risultati, possono essere ottenuti sostituendo F = f T .
Le propriet della DTFT sono:
Simmetria Hermitiana: se ci sono delle sequenze reali allora
X(F ) = X (F ).

(1.12)

Ritardo: se una sequenza {xn } ha trasformata X(F ) allora la stessa


sequenza ritardata di k campioni ha per trasformata
xnk X(F )ej2kF .

(1.13)

Convoluzione:
la convoluzione viene definita come {xn } {yn } =
P
x
y
e
facendo
la trasformata di Fourier
k
nk
k
Z(F ) = X(F )Y (F ).

(1.14)

Per segnali a potenza finita la trasformata DTFT non converge quindi


sono non trasformabili. Se per se ne calcola la funzione di autocorrelazione:
Rx (k) =< xn xnk >, sequenza deterministica
Rx (k) = E[xn xnk ],

sequenza aleatoria

si ottiene che queste nuove sequenze in k sono a energia finita quindi Ftrasformabili. La DTFT di queste sequenze danno la densit spettrale di
potenza:
+
X
Sx (F ) =
Rx (k)ej2F k .
(1.15)
k=

Anche queste densit spettrale di potenza sono periodiche in frequenza. Dallo spettro del segnale, se si integra, si ottiene la potenza. Esiste una propriet
analoga per le sequenze se la si integra su un solo periodo:
Z 1/2
Sx (F ) dF = P.
(1.16)
1/2

1.1. RIPASSO DI SEGNALI TEMPO-DISCRETI (O SEQUENZE)

Dimostrazione.
Z

1/2

+
X

j2kF

Rx (k)e

1/2 k=

+ Z
X

dF =

1/2

Rx (k)ej2kF dF =

k= 1/2

1/2

ej2kF dF.

Rx (k)
1/2

k=

Risolvendo lintegrale, nel caso in cui k = 0, si ottiene come risultato 1 per


via dellesponente nullo, mentre nel caso in cui k 6= 0 risulta:
Z

1/2

j2kF

1/2

Resta solo Rx (0) = P .

ej2kF dF
=
j2k


1/2
=
1/2

ejk ejk
= 0.
j2k

CAPITOLO 1. SEGNALI A TEMPO-DISCRETO

Capitolo

Strumenti matematici
2.1

Trasformata Z

Servir per avere una rappresentazione per segnali non F-trasformabili come,
ad esempio, la rampa a tempo discreto. La trasformata di Laplace pu essere
ricondotta a quella di Fourier:
Z +
Z +
mettendo s=j2f
st
X(s) =
x(t)e dt X(f ) =
x(t)ej2f t dt.

se esiste F -trasf.

Si cerca di fare lo stesso per il discreto, passando dalla trasformata di Fourier


alla trasformata Z. Si definisce trasformata Z bilatera come:
X(z) =

+
X

xn z n .

(2.1)

n=

In questo modo si riescono a trasformare alcuni segnali non F-trasformabili


sostituendo z al fasore di Fourier, cos che si possa stare sul piano complesso
invece che nel cerchio unitario. Quindi, per passare da una trasformata
allaltra basta mettere z nel cerchio unitario, cio:
ej2nf T

z=ej2f T

z n

ma lo si pu fare solo se esistono entrambe.

2.1.1

Esempi

Esempio. Gradino unitario. Del seguente segnale si calcoler prima la


trasformata di Fourier poi la trasformata Z.
(
1, n 0
xn = un =
0, altrove.
7

CAPITOLO 2. STRUMENTI MATEMATICI

Im{z}

Im{z}

Re{z}

Re{z}

(b) Spazio trasformata Z

(a) Spazio trasformata di Fourier

Figura 2.1: Spazio dei poli delle trasformate


Calcolando la trasformata di Fourier del segnale in figura 1.2b:
US (F ) =

un e

j2F n

n=

+
X

j2F n

n=0

+
X

qn,

q = ej2F

n=0

se e solo se |q| < 1, la serie geometrica converge a:


+
X
n=0

qn =

1
1q

ma il modulo del fasore q = ej2F n esattamente 1 e non permette la convergenza della serie. Quindi la trasformata di Fourier non esiste. Passando
alla trasformata Z:
U (z) =

+
X
n=

un z n =

+
X
n=0

z n =

+
X
1
zn

n=0

posso avere convergenza solo se | z1 | < 1 |z| > 1 quindi la trasformata


esiste solo in questa regione. Essendo un numero complesso, nel piano z
posso graficare la regione di convergenza, come mostrato in figura 2.2, dove
si vede che il modulo |z| deve essere strettamente maggiore del disco di raggio
1. Larea in cui esiste la trasformata detta regione di convergenza o ROC
(Region of convergence). Adesso possibile calcolare la trasformata al di
fuori del cerchio:
1
z
U (z) =
1 = z 1.
1 z
Al risultato va aggiunto la ROC in cui esiste il risultato. Da notare che il
risultato una funzione in z razionale fratta: non un caso, tutte le sequenze

2.1. TRASFORMATA Z

9
Im{z}

Re{z}

Figura 2.2: Regione di convergenza: in rosso c la zona vietata mentre in


azzurro quella accettata. Vengono riportati sia il polo (in z=1) che lo zero
(in z=0).
in esame saranno di questo tipo. Si possono distinguere poli e zeri:
(
z = 0, c uno zero in 0
z
U (z) =
z 1 z 1 = 0 z = 1 c un polo in 1.
normale che i poli si trovino allesterno della regione di convergenza perch il polo associato al denominatore nullo, quindi alla divergenza della
trasformata. I poli non appartengono alla ROC.
Esempio. Gradino unitario anticausale. La sequenza mostrata in figura
2.3 ha valori:
(
0,
n0
xn = un1 =
1, n < 0
e si procede calcolando la trasformata Z applicando la definizione:
U 0 (z) =

1
X

xn z n =

n=

z n =

n=

+
X

zn = 1

n=1

Figura 2.3: Gradino anticausale

+
X
n=0

zn

10

CAPITOLO 2. STRUMENTI MATEMATICI


Im{z}

Re{z}

Figura 2.4: Gradino anticausale. Si disegna in rosso la zona vietata mentre


in azzurro quella accettata. Vengono riportati sia il polo (in z=1) che lo
zero (in z=0).
quindi converge se |z| < 1. In questa regione si calcola la trasformata:
1
z
1
=
=
1
1z
1z
z1
che la stessa del gradino unitario causale ma cambia la ROC: la trasformata
Z univoca solo nella regione di convergenza quindi per identificare un
segnale necessario conoscere la regione di convergenza e il valore della
trasformata. La regione di convergenza del gradino anticausale mostrata
in figura 2.4.
U 0 (z) = 1

Esempio. Esponenziale monolatero. Dato il segnale xn = an un di figura


2.5, si calcola la trasformata Z per poi tornare a quella di Fourier:
+
+  n
X
X
a
n n
X(z) =
a z =
z
n=0

n=0

la serie converge solo se |z| > |a|. Allinterno della ROC calcolo:
X(z) =

1
1

a
z

z
1
=
.
za
1 az 1

n
1

Figura 2.5: Esponenziale monolatero per 0 < a < 1

2.1. TRASFORMATA Z

11

Questo caso degenera in U (z) del caso del gradino unitario con a = 1, con
stessa trasformata e stessa ROC. La trasformata di Fourier esiste se il
cerchio unitario compreso nella regione di convergenza. Quindi, nel caso
in cui |a| < 1 si pu calcolare la trasformata di Fourier:
z = ej2F ,

ROC che comprenda il cerchio.

Esempio. Esponenziale monolatero anticausale. Si ottiene la stessa trasformata ma ROC complementare. Si pu dimostrare che questa
complementarit di regione di convergenza di segnali vale in generale!

2.1.2

Classificazione regioni di convergenza

Nellipotesi che le sequenza abbiano trasformata Z rappresentabile come


rapporto di polinomi del tipo:
X(z) =

N (z)
D(z)

allora dimostrabile che le regioni di convergenza possibili sono quattro.


Nello specifico, le possibilit sono:
1. se xn a durata limitata, la serie converge sempre perch la somma di
un numero finito di elementi sempre finita. Allora la ROC tutto
C:
n2
X
xn z n ROC = C.
n=n1

2. se xn monolatera destra larea di convergenza oltre il cerchio di


raggio R, dipendente dalla sequenza:
+
X

xn z n ROC = {|z| > R}.

n=n1

3. se xn monolatera sinistra larea di convergenza interno al cerchio


di raggio R, dipendente dalla sequenza:
n2
X

xn z n ROC = {|z| < R}.

n=

4. se xn bilatera larea di convergenza lanello dato dal raggio superiore


R+ e quello inferiore di raggio R :
+
X

xn z n ROC = {R < |z| < R+ }.

n=

Per avere unidea grafica riferirsi a figura 2.6, dove vengono evidenziati in
ordine i casi trattati.

12

CAPITOLO 2. STRUMENTI MATEMATICI

Im{z}

Im{z}

Re{z}

(a) Sequenza a durata limitata.

Im{z}

Re{z}

(b) Sequenza monolatera destra.

Im{z}
R+
R

Re{z}

(c) Sequenza monolatera sinistra.

Re{z}

(d) Sequenza bilatera.

Figura 2.6: Classificazione delle regioni di convergenza.

2.1. TRASFORMATA Z

13

n
0

Figura 2.7: Sequenza xn = an un bn un1 con 0 < a < 1 e 0 < b < 1.

2.1.3

Propriet della trasformata Z

linearit: presi due segnali trasformabili xn X(z), ROCx e yn


Y (z), ROCy allora
sn = axn + byn S(z) = aX(z) + bY (z),
ROCs = ROCx ROCy

(2.2)

dove la regione di convergenza dove entrambe sono valide (quindi


lintersezione). Ad esempio, per fare la trasformata di xn = an un
bn un1 di figura 2.7, si calcola:
z
z
X(z) = Z[an un ] + Z[bn un1 ] =
+
| {z } |
{z
} za zb
z
,
za
ROC=|z|>a

z
,
zb
ROC=|z|<b

devo verificare che ROCx = {|z| > a}{|z| < b} quindi se |b| |a| non
esiste la trasformata, altrimenti vale il risultato di X(z) e la regione di
convergenza diventa ROCx = |b| < |z| < |a|.
moltiplicazione per un esponenziale o cambio di scala: data la sequenza
trasformabile xn X(z), ROCx = {R < |z| < R+ }, la sequenza
an xn ha trasformata
 
z
n
a xn X
,
a
(2.3)

+
ROCx = {|a|R < |z| < |a|R }.
Dimostrazione.
+
X

a xn z

+
X

 n
z
=
xn
a

che converge solo se | az < 1| da cui la ROCx .


traslazione temporale: data la sequenza trasformabile xn X(z),
ROCx la trasformata del segnale yn = xnk vale
yn X(z)z k ,
ROCy = ROCx

(2.4)

14

CAPITOLO 2. STRUMENTI MATEMATICI


dove k lentit della traslazione e la regione di convergenza non
cambia.
Dimostrazione.
+
X

xnk z

+
X

n=

xm z

(m+k)

=z

+
X

m=

xm z m = X(z)z k .

m=

{z

X(z)

moltiplicazione di una rampa: data la sequenza trasformabile xn


X(z), ROCx la trasformata del segnale yn = nxn vale
yn = nxn Y (z) = z

d
X(z),
dz

(2.5)

ROCy = ROCx .
Dimostrazione.
 X

+
+
+
X
X
d n
d
n
xn z
=
xn (n)z n1 =
xn z =
dz n=
dz
n=
n=
+
X

z 1

nxn z n = z 1 Y (z).

n=

{z
yn

Inoltre, derivare una serie non altera le sue propriet di convergenza


quindi non viene modificata la ROC.
convoluzione: date due sequenze xn X(z), ROCx e yn Y (z),
ROCy , la convoluzione ha trasformata
xn yn X(z)Y (z),

(2.6)

ROC = ROCx ROCy .


Dimostrazione.
+
X

(xn yn )z


XX
=
(xk ynk ) z n =
n

n=



XX
X
X X
xk z k Y (z) =
(xk ynk ) z n =
xk
ynk z n =
k

|
= X(z)Y (z).

{z

Traslazione

2.1. TRASFORMATA Z

15

Propriet

Trasformata

ROC

Linearit

S(z) = aX(z) + bY (z)


 
z
S(z) = X
a

ROCs = ROCx ROCy

Esponenziale (Cambio scala)


Traslazione temporale
Moltiplicazione rampa
Convoluzione

S(z) = X(z)z k
d
X(z)
dz
S(z) = X(z)Y (z)
S(z) = z

ROCs = |a|R < |z| < |a|R+


ROCs = ROCx
ROCs = ROCx
ROCs = ROCx ROCy

Tabella 2.1: Tabella riassuntiva delle propriet della trasformata Z


Esempio. Utilizzo delle propriet. Calcolare la trasformata Z di xn =
nan un .
Con la definizione, lo svolgimento di questo esempio molto complicata, quindi conviene utilizzare le propriet della trasformata. Si conosce la
trasformata di an un e la propriet della rampa quindi:




d
d
z
1 n
Y (z) = z
Z [a un ] = z
=
dz
dz z a
az
az 1
zaz
=
=
.
= z
(z a)2
(z a)2
(1 az 1 )2
La scrittura in forma polinomiale con z 1 per convenzione ma il calcolo dei
poli e degli zeri va fatto nella forma solita con le z.
Come mostrato in figura 2.8, la sequenza presenta un polo doppio in a
e uno zero in 0. Quindi, moltiplicando una rampa ad un esponenziale, si
ottiene sempre un polo doppio e ogni volta che lo trovo posso immaginare
che che sia questa sequenza a creare il polo doppio. La regione di convergenza
la stessa di an un perch la rampa non incide sulla ROC.
Im{z}

Re{z}
a

Figura 2.8: Disposizione dei poli e dello zero di xn = nan un

16

CAPITOLO 2. STRUMENTI MATEMATICI

2.1.4

Antitrasformata Z

Per calcolare lantitrasformata Z ci sono tre possibilit:


1. applicazione diretta della definizione tramite lintegrale curvilineo.
2. metodo della Direct Inspection (o Antitrasformazione Diretta).
3. sviluppo in fratti semplici (pi usata).
Nel seguito verranno analizzati gli ultimi due, poich il primo metodo non
quasi mai utilizzato.
Antitrasformazione diretta
Si spiega tramite un esempio: data la trasformata
X(z) =

(1 z 2 )2
1 13 z 1

calcolare la sequenza xn causale che la genera (questo corrisponde a richiedere


una sequenza monolatera e negli esercizi pu essere data in alternativa alla
regione di convergenza). Si prova a sviluppare il quadrato del binomio:
(1 z 2 )2
1 2z 2 + z 4
1
2z 2
z 4
=
=

+
.
1 13 z 1
1 13 z 1
1 13 z 1 1 31 z 1 1 31 z 1
Si sfrutta al linearit per trasformare singolarmente ogni frazione. La trasformata del primo termine quella della sequenza an un (e non an un
visto che si cerca quella causale) con a = 1/3 e posso vedere gli altri termini
come trasformate di questo stesso segnale con dei ritardi:
1
1 13 z 1
| {z
}

Trasf. di an un

2z 2
1 13 z 1
| {z
}

Trasf. di an un con ritardo 2

z 4
1 13 z 1
| {z
}

Trasf. di an un con ritardo 4

quindi la sequenza :
 n
 n2
 n4
1
1
1
xn =
un 2
un2 +
un4
3
3
3
Metodo dei fratti semplici
Nellipotesi di trasformate razionali fratte, si usa la regola pi generale dei
fratti semplici. In generale, una trasformata razionale :
X(z) =

b0 + b1 z 1 + b2 z 2 + + bm z m
.
a0 + a1 z 1 + a2 z 2 + + an z n

(2.7)

2.1. TRASFORMATA Z

17

Il primo passaggio quello di raccogliere i coefficienti a0 e b0 :


b0
X(z) =
a0

b1 1 b2 2
bm m
z + z + +
z
b0
b0
b0
=
bn n
a1 1 a2 2
1 + z + z + + z
a0
a0
a0

1+

(2.8)

b0 1 + b01 z 1 + b02 z 2 + + b0m z m


.
a0 1 + a01 z 1 + a02 z 2 + + a0n z n

Successivamente si calcolano i poli e si pu riscrivere il rapporto come prodotto di monomi:


X(z) =

b0 (1 z1 z 1 )(1 z2 z 2 ) (1 zM z M )
a0 (1 p1 z 1 )(1 p2 z 2 ) (1 pN z N )

(2.9)

e tramite i fratti semplici si pu sempre scrivere:


X(z) =

M N
b0 X
cl z l
a0
l=0
|
{z
}

Quoziente dei polinomi

K mk
Rki
b0 X X
+
a0
(1 pk z 1 )i
k=1 i=1
|
{z
}

(2.10)

Resto

di ogni fratto semplice si pu calcolare lantitrasformata con una tabella


delle trasformate notevoli e utilizzando le propriet della trasformata Z.
Applicando la linearit:


M N
K mk
b0 X
b0 X X
1
1 l
1
xn =
cl Z [z ] +
Rki Z
a0
a0
(1 pk z 1 )i

(2.11)

k=1 i=1

l=0

poi il ritardo:


M N
K mk
b0 X
b0 X X
1
1
xn =
cl nl +
Rki Z
.
a0
a0
(1 pk z 1 )i

(2.12)

k=1 i=1

l=0

A questo punto si guarda la antitrasformata restante da tabella 2.2: se si ha


un polo doppio in un filtro mi devo aspettare che sia dato da una rampa che
moltiplica un esponenziale.
Nel caso con poli singoli e distinti, con M < N , lequazione si riduce a:
N
b0 X
Rk
X(z) =
a0
1 pk z 1

con


Rk = (1 pk z 1 )X(z) z=p

(2.13)

k=1

quindi:
xn =

N
X
k=1

Rk Z


1
.
1 pk z 1

(2.14)

18

CAPITOLO 2. STRUMENTI MATEMATICI


i
1

Antitrasformata


1
1
Z
1p z 1

Z 1

Sequenza causale

Sequenza anticausale

pnk un

pnk un1

(n + 1)pnk un

(n + 1)pnk un1

1
(1pk z 1 )2

Tabella 2.2: Tabella delle antitrasformate


Esempio. Antitrasformata tramite fratti semplici. Data


2 z 1
1
X(z) =
,
ROC = |z| >
3
3 74 z 1 + 14 z 2
calcolare lantitrasformata.
Non c quoziente perch il grado del denominatore pi basso di quello
del numeratore (N > M ). Per calcolare i poli e gli zeri, porto fuori i valori
costanti dei due polinomi per portare alla forma corretta il rapporto. Quindi
si raccoglie 2 al numeratore e 3 al denominatore:
X(z) =

1 21 z 1
2

7 1
1 2 .
3 1 12
z + 12
z

Quando si calcolano i poli, si deve riportare z in potenze positive, moltiplicando per lesponente pi alto (in questo caso si moltiplica per z 2 ):


1
1

z
=
, z2 = 0
z
z

2
2
z 2 12 z
2
X(z) = 2
7
1
3 z 12
z + 12

z 2 7 z + 1 p1 = 1 , p2 = 1
12
12
3
4
si trovano due poli e due zeri. Posso riscrivere X(z) con i coefficienti Rk :
X(z) =

1 12 z 1
2
R1
R2

=

+
.
1
1
1
1
1
1
3 1 3z
1 4z
1 3z
1 14 z 1

Applicando la formula (2.13) dei residui , si calcola il residuo associato a


ciascun polo:


1 12 z 1
1 1  2
4

R1 = 1 z

=

1
1
1
1
3
3 (1 3 z )(1 4 z ) z= 1
3
3


 2
1 12 z 1
1



R2 = 1 z 1
= 2.
4
3 1 31 z 1 1 41 z 1 z= 1
4

2.1. TRASFORMATA Z

19

Si ottenuto che:
1
1
4
+2
,
X(z) =
3 1 31 z 1
1 14 z 1


ROC =

e tramite le antitrasformate notevoli si ottiene:


 
 n
4 1 n
1
xn =
un + 2
un .
3 3
4

1
|z| >
3

20

CAPITOLO 2. STRUMENTI MATEMATICI

Capitolo

Sistemi lineari tempo-invarianti


Un sistema di questo tipo un sistema tempo discreto caratterizzato da:
linearit: date due costanti a, b e due sequenze xn , yn
T [axn + byn ] = aT [xn ] + bT [yn ].

(3.1)

tempo-invarianza: se si comporta allo stesso modo anche in istanti di


tempo diversi
T [xnk ] = ynk .
(3.2)
Dando in ingresso a questo tipo di sistema un impulso unitario, si ottiene in
uscita quella che si definisce come risposta impulsiva del sistema hn , molto
pi semplice che lanalogo continuo a causa della semplicit di realizzazione
dellimpulso unitario rispetto la Delta di Dirac. La risposta impulsiva una
caratteristica del sistema:
+
X

yn = xn hn =

xk hnk = hn xn =

k=

3.1

+
X

hk xnk .

(3.3)

k=

Stabilit

Si dice che un sistema stabile I.L.U.L. se ad un segnale dingresso limitato


in ampiezza corrisponde un segnale limitato in uscita:
|xn | N = |yn | M.

xn

LT I

yn

(a)

(3.4)

LT I
(b)

Figura 3.1: Schema di un sistema LTI


21

hn

22

CAPITOLO 3. SISTEMI LINEARI TEMPO-INVARIANTI

Teorema. Se un sistema LTI, allora stabile I.L.U.L. se e solo se la sua


risposta impulsiva modulo sommabile:
I.L.U.L.

+
X

|hk | < +.

(3.5)

k=

Dimostrazione sufficienza. Ipotizzo ingresso limitato |xk | N e vado a


calcolare luscita:


+
+
+
X

X
X


|yn | =
xk hnk
|xk | |hnk |
N |hnk | =


k=
+
X

=N

|hnk | = N

3.2

k=

|hm |.

m=

k=

sufficiente che

k=
+
X

P+

m= |hm |

< + per affermare che luscita finita.

Causalit

Se luscita funzione dellingresso solo per valori passati:


yn = T [xk |nk ].

(3.6)

Nel caso LTI equivale a dire che hn = 0 per n < 0. Allora si ha:
yn = xn hn =

+
X

hk xnk =

k=0

n
X

hk xnk .

(3.7)

k=

Esercizio. Dato un sistema tempo discreto LTI con risposta impulsiva


(
an ,
n0
hn =
0,
altrove.
1. stabile?
Si dimostra tramite la stabilit I.L.U.L. :
+
X
n=

|an un | =

+
X

|an |

n=0

che converge se |a| < 1.


2. Calcolare la risposta del sistema con xn = un unN .
Il segnale che viene assegnato una sorta di rettangolo discreto che
vale:
(
1,
k [0, N 1]
xn =
0,
altrove.

3.2. CAUSALIT

23

hk

n
1

(a) Risposta impulsiva

hkn

n
n + 1n + 2n + 3n + 4n + 5

(b) Risposta impulsiva traslata di n

hnk

n 5n 4n 3n 2n 1

(c) Risposta impulsiva capovolta per valutare n k

Figura 3.2: Risposte impulsive nel calcolo della convoluzione

24

CAPITOLO 3. SISTEMI LINEARI TEMPO-INVARIANTI

xn , hk

n
N 1

(a) Caso con n < 0: non c nessuna sovrapposizione, il risultato della


convoluzione nullo.

xn , hk

n
N 1

(b) Caso con 0 n N 1: le due sequenze iniziano a sovrapporsi quindi la


convoluzione cresce allaumentare di n.

xn , hk

n
0

N 1

(c) Caso con n > N 1: i campioni della risposta impulsiva con valore pi alto si
trovano dove non c la sequenza, quindi la convoluzione decresce al crescere di n
fino ad annullarsi.

Figura 3.3: Calcolo grafico della convoluzione

3.2. CAUSALIT

25

Per calcolare luscita si pu calcolare la convoluzione:


yn =

N
1
X

xn hnk .

k=0

dove la costante n e la variabile k. Per comodit possibile disegnare le varie risposte impulsive, come in figura 3.2. Successivamente
si devono sommare tutti i campioni con k [0, N 1].
per n < 0, non c sovrapposizione di sequenza dingresso e la
risposta impulsiva in uscita ci sar yn = 0;
per 0 n N 1, ci sono dei campioni sovrapposti e facendo la
convoluzione in [0, n] si ottiene:
yn =

n
X

hnk =

k=0

n
X

nk

=a

k=0

e sfruttando la serie notevole


yn = a n

Pn

k=0 q

n
X

ak

k=0
n

1q n+1
1q

diventa:

1 an+1
an a1
=
1 a1
1 a1

ovvero un esponenziale crescente.


per n > N 1, restano solo i contributi meno intensi della risposta
impulsiva perch la sequenza in ingresso termina a N quindi vanno
considerati solo i valori in [0, N + 1]:
yn =

N
1
X

hnk =

k=0

N
1
X
k=0

ank = an

N
1
X

ak = an

k=0

1 aN
1 a1

si ottiene una costante che moltiplica un esponenziale decrescente.


Per avere unidea grafica riferirsi alle figure 3.2 e 3.3. Il risultato
complessivo quello riportato in figura 3.4, molto simile ad una
carica-scarica RC nel mondo analogico. Quindi, ad una risposta
t
1 RC
impulsiva analogica h(t) = RC
e
corrisponde in digitale hn =
an un .
yn

n
Figura 3.4: Sequenza duscita

26

3.3

CAPITOLO 3. SISTEMI LINEARI TEMPO-INVARIANTI

Funzione di trasferimento LTI tempo discreto

Se la sequenza xn F-trasformabile:
XS (f ) YS (f ) = XS (f )FS [{hn }] = XS (f )HS (f )

(3.8)

mentre se non trasformabile:


X(z) Y (z) = X(z)Z[{hn }] = X(z)H(z)

(3.9)

dove rispettivamente HS (f ) e H(z) sono le funzioni di trasferimento del


sistema. Si pu fare il passaggio dalluna allaltra (se esiste la trasformata
di Fourier) facendo:
HS (f ) = H(z = ej2F ).
(3.10)
Infine, per segnali a potenza finita con densit spettrale di potenza GX (f )
si pu scrivere:
GY (f ) = GX (f )|HS (f )|2 .
(3.11)
Dalla definizione di stabilit I.L.U.L. si arriva ad un teorema:
Teorema. Per un sistema causale c stabilit I.L.U.L. se tutti i poli pk si
trovano allinterno della circonferenza unitaria:
LTI causale, stabile I.L.U.L. |pk | < 1.

(3.12)

Dimostrazione. Si prende una z0 tale che |z0 | = 1, ovvero che si trovi nella
circonferenza unitaria e calcolo il modulo della trasformata:
+
+
+
X
X n X

|H(z0 )| =
|z0n | |hn | =
z0 hn
|hn |
| {z }
n=0

n=0

=1

n=0

quindi se la serie converge, c stabilit I.L.U.L.


Questo teorema si spiega anche per i ragionamenti gi fatti sulle regioni
di convergenza della trasformata Z: trattandosi di segnali causali (sequenze
monolatere destre) le ROC sono fuori dal cerchio. Ad esempio, i poli di
figura 3.5 garantiscono la stabilit I.L.U.L. del sistema.

3.4

Analogie fra analogico e digitale

Lanalogico caratterizzato sempre da unequazione differenziale del tipo:


X
i

ai

X dj
di
y(t)
=
bj j x(t)
dti
dt
j

(3.13)

3.4. ANALOGIE FRA ANALOGICO E DIGITALE

27

Im{z}

Re{z}

Figura 3.5: Esempio di poli che garantiscono la stabilit.


e si possono fare le trasformate di Laplace e di Steinmetz. Nel digitale una
vasta classe di sistemi tempo discreti sono descritti da:
N
X

ar ynr =

r=0

M
X

bk xnk

(3.14)

k=0

detta equazione alle differenze finite. Si studieranno sistemi che sono esprimibili in questultimo modo. Lequazione si pu riscrivere come:
a0 yn =

M
X

bk xnk

ar ynr

(3.15)

r=1

k=0

dove spesso viene presa a0 = 1.


contributi, rispettivamente:

N
X

Luscita al termine n dato da due

la retroazione detta AR o Auto Regressive.


la storia passata dellingresso fino a n detta MA o Moving Average,
perch media pesata degli ingressi precedenti.
Applicando la trasformata Z:
Y (z) =

M
X

bk Z[xnk ]

k=0

N
X

ar Z[ynr ]

(3.16)

ar Y (z)z r

(3.17)

r=1

per la propriet del ritardo:


Y (z) =

M
X
k=0

bk X(z)z k

N
X
r=1

28

CAPITOLO 3. SISTEMI LINEARI TEMPO-INVARIANTI


z 1

xn
b0

z 1
b1

z 1
bM

b2

yn
aN

a2

z 1

a1

z 1

z 1

Figura 3.6: Schema a blocchi di un filtro IIR


xn

z 1

z 1

b0

z 1

b1

b2

b3
yn

Figura 3.7: Schema a blocchi di un filtro FIR


da cui deriva:
M
X

Y (z)
=
X(z)

bk z k

k=0
N
X

1+

= H(z)

(3.18)

ar z r

r=1

dove si vede che la funzione di trasferimento un rapporto di polinomi.


Esprimendo questo risultato in un diagramma a blocchi si ottiene lo schema
di figura 3.6, dove la parte superiore la Moving Average mentre quella
inferiore la parte dedicata alla Auto Regressive. Tutto quello che serve
sono tre blocchi: ritardatore, moltiplicatore, sommatore. Lo schema di figura
3.6 detto filtro IIR (Infinite Impulsive Response). Se si toglie il ramo
di retroazione si ottiene quello che si chiama filtro FIR (Finite Impulsive
Response), caratterizzato dalle equazioni:

yn =

M
X

bk xnk

k=0
M

Y (z) X
H(z) =
=
bk z k
X(z)
k=0

(3.19)

3.5. NOTE SUI FILTRI IIR

29

e viene mostrato lo schema a blocchi in figura 3.7. I filtri FIR hanno il


vantaggio di
essere sempre stabili,
essere a fase lineare se la risposta impulsiva simmetrica,
avere risposta impulsiva finita e semplice.
mentre la stabilit non garantita per lIIR a causa della retroazione.
Dimostrazione della stabilit. Si prende la funzione di trasferimento e la si
moltiplica e divide per z M :
M
zM X
b0 z M + b1 z M 1 + + bM
H(z) = M
bk z k =
z
zM
k=0

che da M poli nellorigine, allinterno del cerchio unitario, quindi stabile.


Inoltre ci sono anche M zeri sparsi per tutto il piano complesso.
Dimostrazione della risposta impulsiva finita. Dal circuito, si mette in ingresso limpulso unitario e resta solo il termine che non viene ritardato,
quindi b0 . Al clock successivo, limpulso unitario si propagato e resta solo
b1 e cos via fino bM . La risposta impulsiva quindi:
hn = {b0 , b1 , b2 , , bM , 0, 0, 0, }.
La risposta finita dopo bM . Tutti i coefficienti sono progettabili, quindi
si pu avere una risposta impulsiva scelta a piacere, cosa non fattibile nel
mondo analogico.

3.5

Note sui filtri IIR

Si studia il filtro IIR ad un polo, il pi semplice realizzabile. Esso ha uscita


data da:
yn = xn a1 yn1 Y (z) = X(z) a1 Y (z)z 1
Y (z)
1
H(z) =
=
X(z)
1 + a1 z 1

(3.20)

dove si vede che il polo p1 = a1 , perci modificando a1 possibile spostare


il polo. Con un polo possibile creare i seguenti filtri:
passa-alto, se il polo positivo;
passa-basso, se il polo negativo.

30

CAPITOLO 3. SISTEMI LINEARI TEMPO-INVARIANTI


1
1+a1 z 1

xn

yn

1
1+a1 z 1

Figura 3.8: Filtri IIR in parallelo


Per implementare un filtro passa-banda si deve utilizzare un filtro IIR a due
poli, realizzabile tramite il parallelo di due filtri del primo ordine, come in
figura 3.8. Facendo i calcoli delle rispettive H(z) sommate, si ottiene:
H(z) =

1
1
1 + a1 z 1 + a1 z 1 + 1
+
=
1 + a1 z 1 1 + a1 z 1
1 + a1 z 1 + a1 z 1 + |a1 |2 z 2

2 + 2Re{a1 }z 1
=
1 + 2Re{a1 }z 1 + |a1 |2 z 2

(3.21)

dove chiaro che si sono eliminati i termini complessi. In generale a1 C


ma la funzione di trasferimento ha solo coefficienti reali. Il singolo IIR ha
coefficienti complessi mentre il doppio IIR li ha reali solo se le coppie sono
complesse e coniugate.

Capitolo

Campionamento
Per passare da analogico a digitale si deve eseguire unoperazione di campionamento come in figura 4.1. Per campionare non obbligatorio utilizzare
una quantizzazione ad intervalli costanti, ma possibile scegliere intervalli
pi precisi intorno ad un certo punto ed intervalli pi morbidi altrove, come
si vedr in sezione 4.3. Nelle frequenze si ha la ripetizione periodica quindi,
nel caso discreto, si ha:


1X
k
XS (f ) =
X f
(4.1)
T
T
k

e per evitare che ci sia il fenomeno dellaliasing, si deve campionare a frequenze fs 2fm dove fm la banda del segnale. Questa condizione sufficiente
ma non necessaria, ci sono dei modi per evitare che ci sia aliasing anche
campionando a frequenza pi basse.

4.1

Conversione digitale-analogico

Per campionare ci sono due modalit: approccio matematico o approccio


circuitale.
Approccio matematico
Lapproccio matematico ipotizza che il segnale x(t) abbia struttura del tipo:
X
x(t) =
xn g(t nT )
(4.2)
n

x(t)

xn = x(nT ),

Campionatore

Figura 4.1: Blocco campionatore


31

T = 1
fs

32

CAPITOLO 4. CAMPIONAMENTO
X(f ), XS (f )

X(f

k
T)

X(f +

fs

fm

fm

k
T)

fs

Figura 4.2: Esempio di funzione G(f ) che elimina le ripetizioni periodiche


dove ogni campione pesato dalla funzione g(t). Pu essere riscritta come:
x(t) =

xn g(t nT ) = {xn } g(t) XS (f ) G(f )


F

(4.3)

e utilizzando la relazione 4.1 di XS (f ) si ottiene:


X(f ) =



G(f ) X
k
X f
.
T
T

(4.4)

Affinch X(f ) sia uguale alla ripetizione in X(f 0), serve una sorta di filtro
che elimini tutte le ripetizioni periodiche. Allora G(f ) una maschera che
deve essere costante dove c il segnale e nullo altrove, in modo da eliminare
le ripetizioni periodiche. Un esempio di funzione, tra le infinite possibili, pu
essere quella di figura 4.2, dove si presa:




T, f fs , fs
2 2
G(f ) =
(4.5)

0, altrove.
Se si va ad antitrasformare questa funzione:
g(t) = F 1 [G(f )] = sinc(t fs )

(4.6)



dove si usata la propriet F F[x(t)] = x(t) quindi x(t) = F[G(f )] =
T fs sinc(tfs ) e per simmetria, nel caso di segnale reale, si elimina il meno.
Quello che si ottenuto :
x(t) =

X
n

t nT
xn sinc
T


(4.7)

detta formula dinterpolazione. Supponendo di usare la formula per cercare


ad un certo istante x(t) della curva supposta nota, si dovrebbero calcolare gli
infiniti contributi per avere il valore a quellistante. Un approccio potrebbe

4.1. CONVERSIONE DIGITALE-ANALOGICO

33

essere quello di troncare la serie dove i contributi della sinc sono quasi nulli
ovvero:
x(t) =

N
X
n=N



t nT
, con N che deve essere mobile.
xn sinc
T

(4.8)

Un altra soluzione quella di sovracampionare x(t) a fs >> 2fm . In questo


caso non conviene prendere G(f ) a rettangolo, ma sensato prendere una
funzione complicata nelle frequenze ma semplice nel tempo, che dove deve
essere realizzata. Ad esempio:
 
2 f
G(f ) = T sinc
(4.9)
fs
che si annulla a multipli di fs e fa in modo approssimato quello che si faceva
prima: elimina le ripetizioni, poste a multipli di fs , ed circa costante nella
banda del segnale. Antitrasformando, si ottiene una g(t) di forma triangolare
e la formula diventa:



X
t

nT
x(t)
xn triang
(4.10)
=
T
n=
e questa formula detta interpolazione lineare o first order hold. semplice
perch se si cerca il valore in un certo punto sufficiente calcolare lequazione
del segmento fra due punti e l dentro guardare il valore cercato. Ci sono altre
alternative che sono di complessit intermedia fra prima e seconda formula
come linterpolazione al terzo ordine (Cubics-Planes).
Approccio circuitale
Utilizzando questo approccio, la conversione digitale-analogico avviene secondo lo schema a blocchi di figura 4.3 e va ricordato che in uscita il segnale
affetto da un errore di quantizzazione. Alluscita del blocco P.A.M. c:
s(t) =

xn g(t nT ).

(4.11)

n=

dove g(t) deve essere generata elettricamente quindi deve essere facilmente
realizzabile. Considerando una generica funzione a rettangolo, si deve tenere conto della durata dellimpulso : pi questo valore diventa piccolo pi
xn

Decoder

P.A.M.

Passa-Basso

Equalizzatore

x(t)

Figura 4.3: Schema a blocchi conversione digitale-analogico circuitale

34

CAPITOLO 4. CAMPIONAMENTO

diventa complesso il circuito per realizzare g(t). Facendo la trasformata:




G(f ) X
k
S(f ) = XS (f ) G(f ) =
.
(4.12)
X f
T
T
k

A questo punto vanno eliminate le ripetizioni periodiche col filtro passabasso, ma va fatto analogico quindi molto complicato da realizzare con
qualit accettabile. Dopo il filtro quello che dovrebbe restare, a meno di non
idealit, :
G(f )
S 0 (f ) =
X(f ).
(4.13)
T
Siccome quello che si cerca solo X(f ), si deve eliminare il fattore moltiplicativo e questa operazione svolta dallequalizzatore che ha in frequenza:
HEq (f ) =

T
.
G(f )

(4.14)

Se la funzione g(t) un rettangolo, la sua trasformata sar una sinc e HEq


avr dei punti in cui andr allinfinito. Le divergenze devono verificarsi al
di fuori della banda del segnale in modo tale da non alterare linformazione.
Se si spostassero gli asintoti molto lontano dal segnale, avrei una banda
quasi piatta a causa della sinc molto dilatata, ma questo comporterebbe
fare dei rettangoli sempre pi piccoli portando un aumento della complessit
del circuito che realizza g(t).
Un approccio pi efficiente per lequalizzazione quello di spostare lequalizzatore a monte del blocco P.A.M., dove si ancora nel campo del
digitale, utilizzando un filtro FIR. Questo porta ad una pre-distorsione che
andr a bilanciare la distorsione del modulatore ottenendo il segnale x(t).

4.2

Campionamento passa-banda

Il campionamento passa-banda una tecnica utilizzata per campionare segnali passa-banda che sfrutta le ripetizioni periodiche del segnale in frequenza. Infatti, dal segnale passa-banda, campionando ad opportune frequenze,
si ottengono ripetizioni periodiche del segnale in banda base che saranno
utilizzate nel processing. Il vantaggio principale che questo tipo di campionamento permette di ottenere lo stesso risultato della tecnica standard
ma ad una frequenza di lavoro molto pi bassa della frequenza teoricamente
minima di Nyquist.
Si prenda ad esempio figura 4.4, dove si mostra una serie di segnali a
bande diverse che vengono campionati tutti alla stessa frequenza fs . Questo
campionamento porta ad avere ripetizioni periodiche del segnale in multipli
di fs . Il primo segnale in banda base e viene campionato alla sua frequenza
di Nyquist, evitando il fenomeno dellaliasing. Il secondo segnale passabanda tra fs /2 e fs e viene campionato alla frequenza fs che secondo Nyquist

4.2. CAMPIONAMENTO PASSA-BANDA

35

m=1

m=2

m=3

m=4

f
3f2s

fs

f2s

fs
2

fs

Figura 4.4: Campionamento passa-banda a fs

3f2s

36

CAPITOLO 4. CAMPIONAMENTO

non garantisce limmunit da aliasing. Andando a creare le ripetizioni


perioP
diche negli slot multipli di fs si ottiene il segnale XS (f ) = T1 k X(f Tk )
dove si vede che in banda base c il segnale rosso in una versione speculare rispetto lorigine. Facendo gli stessi ragionamenti per il terzo e quarto
segnale si capisce che, anche per bande maggiori, possibile continuare a
campionare a fs ottenendo lo stesso soddisfacente risultato, perch le ripetizioni periodiche si vanno a posizionare attorno allorigine delle frequenze,
come se fosse stato campionato utilizzando il teorema di Shannon. Il vantaggio evidente: prendendo come esempio il quarto segnale, esso ha banda
2fs , con frequenza di Nyquist a 4fs , ma si campionato a fs , ovvero ad un
quarto della frequenza.
Matematicamente, preso x(t) di tipo passa-banda con f [f1 , f2 ], affinch cada in uno slot di fs /2 deve verificarsi:
f1 (m 1)

fs
2

f2 m

fs
2

(4.15)

il ch significa:
2f2
2f1
fs
m
m1

(4.16)

e questo lintervallo di frequenze che garantisce che non ci sia aliasing. Per,
si deve verificare che esista una fs che soddisfa la condizione, controllando
che il termine a sinistra sia minore di quello a destra:


2f2
2f1
f2

m
.
(4.17)
m
m1
f2 f1
Queste due condizioni devono verificarsi in coppia e m deve essere lintero
minore pi grande del rapporto. Lultima disuguaglianza dice anche qual
il valore massimo di m. La minima frequenza di campionamento data da:
fsmin =

2f2
2f2
=  .
f2
max(m)
B

(4.18)

Esempio. GSM. Prendendo frequenza f0 = 900MHz e B ' 270KHz si ha


frequenza di Nyquist:
fShannon 2 900 106 ' 1.8Gs/s
mentre col campionamento passa-banda:
2f2
fsmin =   ' 540Ks/s
f2
B

4.2. CAMPIONAMENTO PASSA-BANDA

37

che circa due volte la banda del segnale e circa 3600 volte minore della
frequenza minima del teorema di Shannon. Nel caso particolare in cui f2 /B
fosse un intero, si otterrebbe fsmin = 2B e questo giustificato dal fatto
che linformazione non dipende dalla frequenza a cui si trova ma dalla forma donda dello spettro. Invece, nel caso particolare f2 = B si torna alla
vecchia formula fsmin = 2fs , quindi questo nuovo modo di campionare
unestensione pi generale del teorema di Shannon classico.
Da notare che impossibile campionare alla frequenza minima perch
lintervallo di frequenza strettissimo e facilmente si sbaglier.

4.2.1

Ricostruzione passa-banda

La ricostruzione passa-banda utilizza sempre lo schema di decodifica di figura


4.3 con leccezione di avere un filtro passa-banda invece del passa-basso. Per
questo filtro necessario che la banda passante sia molto pi ampia rispetto
quella del passa-basso quindi necessario che 1/ , punto dove si annulla la
sinc, sia oltre f2 . Questo significa che sono necessari impulsi rettangolari
pi stretti, pi complessi da realizzare. Per evitare questo inconveniente,
possibile andare a filtrare una delle ripetizioni periodiche invece del segnale
originale e andare a modulare successivamente alla giusta frequenza.

4.2.2

Digital Up-Conversion (DUC)

In analogico per portare un segnale ad una frequenza pi alta si deve utilizzare un circuito con oscillatore che pu essere complicato se si vuole una
frequenza molto precisa.
Convertendo in digitale campionando passa-banda con un semplice sample and hold, si hanno tutte le ripetizioni periodiche e questo pu essere
sfruttato come un vantaggio. Infatti, prendendo un filtro passa-banda a frequenza maggiore di quella del segnale possibile filtrare le ripetizioni non
dinteresse (compreso il segnale originale) e mantenere il clone a frequenza
desiderata. Questo processo molto efficace, ma c linconveniente del filtro
che per frequenze molto alte deve avere 1/ molto piccolo, ovvero una maggiore difficolt di realizzazione. Per una corretta conversione di frequenza si
deve anche considerare lo slot di frequenza, che deve essere dispari per non
avere il segnale speculare.
Riassumendo, la conversione in salita di frequenza tramite campionamento passa-banda utile quando la frequenza non molto alta a causa della
realizzabilit del filtro, mentre per alte frequenze si usa il metodo analogico.
In alcune applicazioni sono utilizzati entrambi nello stesso circuito.

38

CAPITOLO 4. CAMPIONAMENTO

x
n

-M

x
n

M
3q

M
3q

2q
q
q/2

2q
q
-q

q/2
-q

-M

xn
M

-q

xn
M

-2q

-2q

-3q

-3q

-M

-M

(a) Numero di livelli dispari

(b) Numero di livelli pari

Figura 4.5: Grafici di quantizzazione: in tratteggiato la curva ideale

4.3

Quantizzazione

Il quantizzatore un blocco non lineare senza memoria che porta il segnale


continuo in una rappresentazione discreta in livelli finiti. Si definisce dinamica lintervallo [M, M ] nel quale il quantizzatore lavora, L il numero di
livelli e q = 2M/L il passo di quantizzazione.
Ci sono varie modalit di quantizzazione:
uniforme, dove tutti i livelli hanno range di valori uguale. Possono
dividersi ulteriormente in
schema a livelli dispari, come in figura 4.5a, detto silenziato perch
per ingressi piccoli luscita a livello 0.
schema a livelli pari, come in figura 4.5b, che non ha il livello 0,
detto non silenziato.
non uniforme;
ottima o Lloyd-Max.
Quantizzazione uniforme
Partendo dal caso uniforme, si definisce errore di quantizzazione:
en = xn x
n

x
n = xn e n

(4.19)

che scritto nel secondo modo prende il nome di rumore di quantizzazione ed


mostrato in figura 4.6a. Lerrore massimo di q/2 e si trova esattamente
a multipli interi di q/2 mentre si annulla a multipli di q. Oltre al fondoscala M lerrore cresce illimitatamente perch i livelli sono finiti mentre il

4.3. QUANTIZZAZIONE

39
en

q/2
M

xn
M
q/2

(a) Errore di quantizzazione

P (en )
1
q

2q

q
2

en

(b) Distribuzione di probabilit di en


nellintervallo [ 2q , 2q ]

Figura 4.6: Errore o rumore di quantizzazione


segnale in crescita. Ricapitolando, se xn [M, M ] lerrore limitato
en 2q = M
L , quindi un alto numero di livelli abbassa lerrore. Allinterno
della dinamica, si chiama errore granulare mentre se si va oltre viene definito
rumore di saturazione o clipping.
La dinamica deve essere adatta al segnale da quantizzare e a volte capita
di trovare un amplificatore con guadagno variabile (AGC) prima del convertitore ADC, che stima la dinamica del segnale e lo adatta a quello del
quantizzatore:
se la dinamica alta, applica unattenuazione fino ad avere il valore
massimo del segnale a M ;
se la dinamica bassa, applica unamplificazione fino ad avere valor
massimo M .
Se lampiezza del segnale porta informazione, lAGC deve comunicare agli
stadi successivi che ha modulato lampiezza per evitare di perdere informazione.
In generale, se Xn aleatorio, anche en aleatorio e serve conoscere
la statistica: se L abbastanza grande la densit di probabilit di en
distribuita uniformemente nellintervallo [ 2q , 2q ], vedere figura 4.6b. Quindi
lo spettro del rumore bianco e non dipende dalla frequenza.

40

CAPITOLO 4. CAMPIONAMENTO
La potenza del rumore di quantizzazione vale:
Z
2
2
e2n Pen (en ) den =
Pen = E[en ] =< en >=

Z
=

q
2

2q


e3n q/2

1
1
e2n den =
q
q 3

q/2

q3 q3
+
2
8 = q .
= 8
3q
12

(4.20)

Si definisce SQNR (Signal to Quantization Noise Ratio) come:


SQN R =

E[x2n ]
Px
E[x2n ]
E[x2n ] 2
=
=
12
=
3L .
Pe
E[e2n ]
q2
M2

(4.21)

Si definisce, inoltre, il fattore di cresta come:


FC =

M2
E[x2n ]

(4.22)

che dice quanto pi il segnale vicino alla dinamica di quantizzazione: se


FC ' 1 il segnale vicino alla dinamica, se FC >> 1 allora xn piccolo.
Sostituendo il fattore di cresta nell SQN R si ottiene:
SQN R =

3L2
FC

(4.23)

che migliore quando FC = 1, quando il segnale dingresso ha dinamica


giusta. Passando ai decibel:
SQN R(dB) = 10 log10 SQN R = 10 log10 3 +20 log10 L FC (dB)
| {z }

(4.24)

=4.77db

inoltre, L =

2m

quindi:
SQN R(dB) = 4.77 + 20m log10 2 FC (dB)
= 4.77 + 6m FC (dB).

(4.25)

Dallultima equazione si vede che lSQN R buono se FC ' 1, ovvero se la


dinamica del segnale si adatta a quella del quantizzatore, e se aumenta m,
ovvero il numero di bit per campione, lSQN R si alza di 6dB (o 4 in lineare)
per singolo bit aggiunto.
Quantizzazione non uniforme
In questa quantizzazione il passo non costante, ma cresce allontanandosi
dallorigine, cos che i valori attorno allorigine abbiano un numero maggiore
di livelli, quindi un risoluzione maggiore, evitando cos di associare a piccoli
valori di segnale il campione corrispondente allo zero. Questo metodo utile
quando si vuole evitare di usare lamplificatore a guadagno variabile per
adattare la dinamica. Dove il segnale grande, q grande mentre dove xn
piccolo anche q piccolo, quindi si pi sensibili.

4.4. NOISE SHAPING

41
SX (f )

S (f )
f
fs

fm

fm

fs

(a) Campionamento a fs = 2fm


SX (f )

S (f )
f
fs

f2s

fm

fm

fs
2

fs

(b) Campionamento a fs = N 2fm

Figura 4.7: Rumore in caso di sovracampionamento


Quantizzazione Lloyd-Max
Ci sono dei casi in cui nota a priori la statistica. Si potrebbe pensare
di quantizzare in modi diversi in base alla probabilit: in corrispondenza
di valori pi probabili si prende un passo di quantizzazione pi piccolo per
avere grande precisione, mentre si prende un passo pi grande per valori
meno probabili.

4.4
4.4.1

Noise Shaping
Sovracampionamento

Prendendo ad esempio figura 4.7, si calcolano le potenze dei rispettivi rumori


di quantizzazione. Partendo da figura 4.7a, dove si campiona a fs = 2fm ,
calcolando la potenza nellintervallo [ f2s , f2s ] si ha:
Z

fs
=fm
2

f2s =fm

S (f ) df = S 2fm =

q2
12

(4.26)

dove lultima relazione quella che si era calcolato in precedenza. Prendendo


figura 4.7b, dove il campionamento fatto a fs = N 2fm , con N fattore di
sovracampionamento definito da:
N=

fs
.
2fm

(4.27)

42

CAPITOLO 4. CAMPIONAMENTO

Allargando lintervallo di frequenze ed essendo la potenza del rumore distribuita in modo uniforme, si ha che S0 < S e calcolando la potenza:
Z

fs
2

f2s

S0 (f ) df = S0 fs =

q2
12

(4.28)

dove vale ancora lultima relazione poich non dipendente dalla frequenza di
campionamento. Le aree del rumore devono essere equivalenti in entrambi i
casi:
2fm
S
S 2fm = S0 fs S0 = S
=
.
(4.29)
fs
N
Il rumore viene schiacciato perch deve occupare la stessa area e questo
un grande vantaggio perch il rumore critico quello che si sovrappone al
segnale, mentre per quello fuori banda possibile mettere dei filtri digitali che
lo eliminano. Il sovracampionamento riduce il rumore di quantizzazione di
un fattore N , indice di sovracampionamento. Questo "modellare" il rumore
detto noise shaping.
In presenza di sovracampionamento:
SQN R(N ) = SQN R N
SQN R

(N )

(dB) = SQN R(dB) + 10 log10 N

(4.30)
(4.31)

che pu essere riscritto come:


SQN R(N ) (dB) = 4.77 FC (dB) + 6m + 10 log10 N =


10
= 4.77 FC (dB) + 6 m +
log10 N .
6

(4.32)

Studiando i fattori allinterno della parentesi ci sono m, il numero di bit


utilizzati, e 10
6 log N , i bit equivalenti aggiunti dal sovracampionamento e
filtraggio. Ad esempio, se N = 4 allora 10
6 log N ' 1 ed come aver aggiunto
un bit al quantizzatore senza averlo effettivamente fatto.

4.4.2

Noise Shaping con filtri IIR

sempre possibile sostituire il blocco della quantizzazione della figura 4.8a,


sottointendendo che il segnale e lerrore siano scorrelati, come un blocco
sommatore del segnale e lerrore come riportato in figura 4.8b. Calcolando
luscita sfruttando la sovrapposizione degli effetti:

X(z) = X(z)
= 0 X(z)
= E(z)
1
X(z)
1 z 1
z 1

X(z) = E(z) = 0 X(z)


=
X(z)
1 z 1

E(z) = X(z)
= 0 X(z)
=

4.4. NOISE SHAPING


xn

43
1
1z 1

x
n

z 1
(a) Schema a blocchi con quantizzatore

en
xn

1
1z 1

x
n

z 1
(b) Schema a blocchi con equivalente del
quantizzatore

Figura 4.8: Schema a blocchi del noise shaping del primo ordine
e unendo gli effetti si ottiene:


1
1

X(z) X(z)z
X(z)
= E(z) +
1 z 1
z 1
X(z)

X(z)
+ X(z)
= E(z) +
1
1z
1 z 1

(4.33)

X(z)
= (1 z 1 )E(z) + X(z).
Dalla formula ricavata, si capisce che in questo modo lerrore passa tramite
il filtro IIR a due prese mentre X(z) passa inalterato. Passando a Fourier
con z = ej2F :


j2F

X(F ) = 1 e
E(F ) + X(F )
(4.34)
e passando alla densit di potenza del segnale aleatorio:
2



j2F

SX (F ) = 1 e
Se (F ) + SX (F ).

(4.35)

Il filtro "colora" il rumore bianco dovuto allerrore di quantizzazione e lascia


inalterato il segnale contenente linformazione. Figura 4.9 mostra che utilizzando lo schema tradizionale la potenza del rumore cade nella banda del
segnale (figura 4.9a), mentre se si usa il noise shaping la potenza di rumore
molto minore in banda e molto maggiore altrove, dove non da problemi
(figura 4.9b).

44

CAPITOLO 4. CAMPIONAMENTO

S (f )
f
f2s

fm

fm

fs
2

(a) Senza noise shaping

S
2

S 1 ej2F

f
f2s

fm

fm

fs
2

(b) Con noise shaping

Figura 4.9: Effetto del noise shaping

Capitolo

Filtri digitali
5.1
5.1.1

Strutture di filtraggio digitale


Grafo di flusso di segnale

I filtri hanno 3 elementi: sommatore, moltiplicatore e linea di ritardo. Per


trovare un modo pi compatto per graficare e per appoggiarsi alla teoria
dei grafi si usa un nuovo modo di rappresentare. Per un filtro IIR del terzo ordine, ad esempio, si ottiene il grafo di figura 5.1 e si ha funzione di
trasferimento:
3
X
bk z k
H(z) =

k=0
3
X

1+

(5.1)

ak z k

k=1

Ma la forma del grafo pu non essere la migliore implementazione del filtro


perch nella pratica ci sono esigenze diverse come ad esempio la limitazione
di memoria, la rappresentazione dei numeri reali in numeri quantizzati in
z 1

xn
b0

z 1
b1

z 1
b3

b2

yn
a3
z 1

a2

a1

z 1

z 1

Figura 5.1: Grafo di un filtro IIR


45

46

CAPITOLO 5. FILTRI DIGITALI

virgola fissa (perdita di precisione) o problema dei moltiplicatori nelle FPGA.


Per questo esistono vari tipi di struttura dei filtri IIR/FIR:
forma diretta,
tipo 1;
tipo 2;
forma in cascata,
forma in parallelo.
Per i filtri FIR, in realt, non ci sono le forme in parallelo e di tipo 2, ma ha
delle forme specifiche:
forma a fase lineare,
forma in parallelo.
Partendo da ogni forma si pu trasporre il grafo per ottenere altre forme
dette forme trasposte.

5.1.2

Forma diretta di tipo 2

Prendendo ad esempio il filtro IIR di tipo 1 di ordine 3 in figura 5.2a, si


lavora sul grafo per ottenere una struttura diversa che ai morsetti si comporti
come il filtro di partenza. Per giungere ad una nuova forma, detta di tipo
2, si seguono i passaggi mostrati in figura 5.2. Quello che si ottiene un
filtro composto da una sola linea di memoria (o ritardo) quindi un vantaggio
in termini di registri da utilizzare nellimplementazione, necessitando della
met della memoria della diretta tipo 1. Inoltre, anche pi immune al
campionamento dei coefficienti. Per il FIR non ha senso arrivare a questa
forma perch si tornerebbe alla struttura iniziale.

5.1.3

Forme in cascata

Questa forma la si ottiene in maniera pi veloce manipolando la funzione


di trasferimento e non il grafo, anche se le due cose alla fine si equivalgono
essendo due rappresentazioni diverse di uno stesso oggetto. Dalla funzione
di trasferimento:
M
X

H(z) =

bk z k

k=0
N
X

1+

k=1

=
ak z k

(1 z0 z 1 )(1 z1 z 1 ) (1 zM z 1 )
.
(1 p1 z 1 )(1 p2 z 1 ) (1 pN z 1 )

(5.2)

5.1. STRUTTURE DI FILTRAGGIO DIGITALE


xn

b0

b1

a1

b2

a2

b3

a3

47

yn

z 1

z 1

z 1

z 1

z 1

z 1

(a) Filtro di partenza di tipo 1.


xn

b0

b1

a1

b2

a2

b3

a3

z 1

yn
z 1

z 1

z 1

z 1

z 1

(b) Step 1: si divide il ramo sommatore


in due rami paralleli e si ottengono due
filtri in cascata.
b0

xn
z 1

yn

z 1

a1

b1
z 1 z 1

a2

a3

b2
z 1 z 1
b3

(c) Step 2: il filtro complessivo il


prodotto dei filtri parziali e gode della
propriet commutativa e possono essere
scambiati.
b0

xn

yn

z 1
a1

b1

a2

z 1
b2

a3

z 1
b3

(d) Step 3: si hanno due linee di


ritardo applicate allo stesso
segnale quindi se ne usa solo una.

Figura 5.2: Passaggi per arrivare alla forma diretta di tipo 2

48

CAPITOLO 5. FILTRI DIGITALI

Questultimo risultato pu essere interpretato come il prodotto di molti filtri


in cascata. Ad esempio, semplificando e ipotizzando che M = N si ha:
H(z) =

(1 z0 z 1 ) (1 z1 z 1 )
(1 zN z 1 )

.
(1 p0 z 1 ) (1 p1 z 1 )
(1 pN z 1 )
|
{z
} |
{z
}
|
{z
}
H1 (z)

H2 (z)

(5.3)

HN (z)

Questo modo di rappresentare il filtro iniziale H(z), equivale ad avere N


filtri IIR del primo ordine in cascata che nel complesso hanno lo stesso
comportamento del filtro originale.
Non c vantaggio sulla memoria, ma scomponendo in pi filtri di difficolt minore, si isolano i problemi di un filtro. Ad esempio, un filtro di ordine
20 instabile molto complesso da rendere stabile rispetto 20 filtri di ordine
1. Oltre a questo, c la possibilit di mettere in cascata pi filtri per ottenere una funzione di trasferimento pi performante rispetto al singolo stadio:
migliora la selettivit e si possono combinare i vantaggi di forme diverse.
La presenza di poli complessi, per alcune architetture pu risultare problematico a livello implementativo perch si raddoppia la complessit del
progetto. Per, se il polinomio ak a coefficienti reali, i poli saranno sempre
complessi e coniugati a coppie e si pu usare un trucco: ipotizzando p0 , p1 e
z0 , z1 complessi coniugati, prendo un filtro IIR del secondo ordine:
H(z) =

(1 z0 z 1 )(1 z0 z 1 )
1 + z0 z0 z 2 z0 z 1 z0 z 1
=
(1 p0 z 1 )(1 p0 z 1 )
1 + p0 p0 z 2 p0 z 1 p0 z 1
2Re(z0 )

z }| {
1 + |z0 |2 z 2 (z0 + z0 ) z 1
1 2Re(z0 )z 1 + |z0 |2 z 2
=
=
1 + |p0 |2 z 2 (p0 + p0 ) z 1
1 2Re(p0 )z 1 + |p0 |2 z 2
| {z }

(5.4)

2Re(p0 )

dove tutti i termini sono tornati ad essere reali. Quando ci sono dei poli complessi coniugati conviene utilizzare un filtro del secondo ordine per eliminare
i valori complessi e risparmiare in complessit di moltiplicazioni.
La forma in cascata utilizzabile per tutte le strutture di filtro digitale,
infatti potrebbe essere fatto in forma diretta di tipo 2, di tipo 1 o altre.

5.1.4

Forma in parallelo

Prendendo la funzione di trasferimento e risolvendola coi fratti semplici, si


ottiene che il quoziente equivale ad un filtro FIR a cui si somma il resto
formato da filtri IIR. Ad esempio:
H(z) =

M
N
X

cl z

l=0

{z

FIR

N
X

Rk
.
1 pk z 1
k=0
{z
}
|

IIR del primo ordine

(5.5)

5.1. STRUTTURE DI FILTRAGGIO DIGITALE

49

Il FIR potrebbe non esserci qualora il denominatore abbia grado maggiore


del numeratore.

5.1.5

Forme Trasposte

Per un filtro IIR/FIR in una certa forma, possibile fare delle trasformazioni
per arrivare ad una nuova forma, detta trasposta. Dalla teoria dei grafi, si
sfrutta un teorema:
Teorema della trasposizione. Invertendo ingresso e uscita, il verso di
tutti i segnali, scambiando i nodi passivi in sommatori e viceversa, la funzione
di trasferimento ai morsetti resta la stessa.
Questa struttura trasposta risulta pi robusta alla quantizzazione dei
coefficienti b, cio resiste di pi alloverflow delle somme e delle moltiplicazioni, molto utile soprattutto per implementare i filtri in calcolatori con
bassa capacit di calcolo.

5.1.6

Forme Specifiche dei FIR

Come gi accennato, esistono la forma diretta di tipo 1, la forma in cascata


come per ogni filtro digitale, in pi per ci sono le strutture a fase lineare e
la forma per campionamento in frequenza.
Forma a fase lineare
Il FIR ha:
H(z) =

M
1
X

bk z

j2F

H(F ) = H(z = e

k=0

)=

M
1
X

bk ej2kF .

(5.6)

k=0

La propriet della fase lineare, unica dei FIR, ottenuta se:


H(F ) a fase lineare bk = bM 1k ,

k = 0, 1, ..., M 1

(5.7)

ovvero si deve avere una certa simmetria nei coefficienti. Se si ha numero


di prese pari, i coefficienti sono speculari rispetto i due centrali mentre se
il numero dispari la simmetria rispetto al campione centrale. Si deve
scegliere se utilizzare la forma col + o col ma vietato utilizzarli in modo
alternato. Per vedere qualche esempio di coefficienti per ottenere una fase
lineare, guardare figura 5.3.
Dimostrazione della fase lineare per FIR tipo II
Da figura 5.3, si capisce che ci sono quattro possibili combinazioni scegliendo M pari o dispari e scegliendo se usare la simmetria o lantisimmetria.
Prendendo ad esempio il FIR di tipo II con M pari e coefficienti simmetrici,

50

CAPITOLO 5. FILTRI DIGITALI


b0

b4
b1

b0

b3

b5
b2

b2

b3
n

n
b1

(a) Tipo I con M = 5, usando il +. I


coefficienti sono simmetrici: b0 = b4 e
b1 = b3

b4

(b) Tipo II con M = 6, usando il +. I


coefficienti sono simmetrici: b0 = b5 ,
b1 = b4 e b2 = b3

b0

b0

b1

b4

b2

b2

b1

b3

b3
b5

b4
(c) Tipo III con M = 5, usando il . I
coefficienti sono antisimmetrici:
b0 = b4 e b1 = b3

(d) Tipo IV con M = 6, usando il . I


coefficienti sono antisimmetrici:
b0 = b5 , b1 = b4 e b2 = b3

Figura 5.3: Esempi di coefficienti per FIR a fase lineare


si va a dimostrare che la fase lineare. Si parte prendendo la funzione di
trasferimento del filtro FIR e si va a separare la sommatoria dividendo a
met il vettore dei coefficienti:
H(z) =

M
1
X

M/21

bk z

k=0

bk z

M
1
X

k=0

bk z k

k=M/2

introducendo le relazioni di simmetria bk = bM 1k :


H(z) =

M
1
X

M/21

bk z

k=0

bk z

k=0

M
1
X

bM 1k z k

k=M/2

applicando il cambio di variabile n = M 1 k agli estremi resta:


M
M
n=
1
2
2
k =M 1n=0
k=

e sostituendo nellequazione precedente:


M/21

H(z) =

M/21

bk z

k=0

M/21

bk z

n=0

+nM +1

X
k=0

Si vorrebbe avere z x + z x , allora si raccoglie z


M/21

H(z) = z

M21

X
k=0


bk z k + z kM +1 .

M 1
2



k+ M21
+k M21
bk z
+z
.

5.1. STRUTTURE DI FILTRAGGIO DIGITALE

51

Numero positivo

F
Numero negativo

Figura 5.4: Fase lineare FIR


Passando alla frequenza e sfruttando la formula del coseno di Eulero:
M/21
j2F M21

H(F ) = e

X
k=0
M/21

j2F M21

=e

X
k=0


bk e
|

j2F (k M21 )

j2F (k M21 )

+e
{z

2 cos(2F (k M21 ))

M 1
2bk cos 2F k
2


=



e calcolando largomento del risultato ottenuto si ricava:


  

M 1
0
.
+
arg[H(F )] = 2F

2
Si vede che se il numero reale positivo, allora la fase lineare, mentre se
il coefficiente negativo, si pu pensare di avere un filtro a fase lineare e un
amplificatore invertente in cascata (filtro a fase lineare generalizzato), come
mostrato in figura 5.4. La pendenza 2f t0 , dove t0 il ritardo introdotto
dal filtro che vale:
M 1
t0 = T
.
2
Perci il ritardo non dato dalla catena di ritardo del filtro, come si potrebbe
pensare, bens dalla formula di cui sopra, in particolare dalla met dellordine
del filtro. Per filtri di questo tipo si dimostra che H(0) 6= 0, quindi in
continua c un guadagno e non potr mai essere usato come passa-alto:
M/21

F = 0 H(0) =

2bk 6= 0.

k=0

A frequenza normalizzata F = 12 (in f2s ), il filtro ha un coseno con argomento


multipli di /2 quindi si pu dire che H( 12 ) = 0 indipendentemente dai bk ,
altra riprova che non sar mai un passa-alto.

52

CAPITOLO 5. FILTRI DIGITALI


Simmetria

Antisimmetria

Dispari

Tipo 1
H(0) 6= 0, H( 12 ) = 0
Passa-basso

Tipo 3
H(0) = 0, H( 12 ) = 0
Passa-banda

Pari

Tipo 2
H( 12 ) = 0
No passa-alto

Tipo 4
H(0) = 0, H( 12 ) 6= 0
No passa-basso

Tabella 5.1: Tipologie configurazioni FIR


Ogni altro possibile FIR con numero pari/dispari e coefficienti simmetrici/antisimmetrici riportato in tabella 5.1 e dimostrato in appendice B. Da
notare che tutti i filtri in tabella hanno lo stesso numero di prese e passare
da una configurazione allaltra non comporta nessun costo, basta lavorare
sul valore dei coefficienti. Lo svantaggio che si hanno la met dei gradi di
libert nella scelta dei coefficienti perch fissati i primi M/2 i restanti sono
vincolati.

5.2. STRUMENTI PER IL CALCOLO DIGITALE

5.2
5.2.1

53

Strumenti per il calcolo digitale


Fast Fourier Transform (FFT)

La definizione della DTFT (Discrete-time Fourier Transform)


XS (F ) =

xn ej2F n

(5.8)

n=

ha il difetto della variabile in uscita continua che non facilmente memorizzabile, quindi non efficace da rappresentare. Dato un vettore si vorrebbe
avere una trasformata che dia come risultato una sequenza discreta della
lunghezza della sequenza dingresso e che sia invertibile.
Dato un vettore x = x0 , x1 , . . . , xN 1 , si definisce DFT (Discrete Fourier
Transform):
N
1
X
Xq =
xn ej2nq/N
(5.9)
n=0

ed dimostrabile che esiste una funzione inversa chiamata IDFT definita da:
xn =

N 1
1 X
Xq ej2nq/N .
N

(5.10)

q=0

Calcolando la DFT per valori di q = 0, 1, 2, ..., N 1 si ottengono:


q = 0 X0 = x0 + x1 + x2 + ... + xN 1
q = 1 X0 = x0 + x1 W + x2 W 2 + ... + xN 1 W N 1
q = 2 X0 = x0 + x1 W 2 + x2 W 4 + ... + xN 1 W 2(N 1)
..
.
q = N 1 XN 1 = x0 + x1 W N 1 + x2 W 2(N 1) + ... + xN 1 W (N 1)

dove W = ej2/N . Questo sistema di equazioni pu essere rappresentato in


forma matriciale:

1
1
1
1
...
1
X1
x1
2
3
N 1
1 W

W
W
.
.
.
W
X2


6
2(N 1) x2

1 W 2 W 4
W
.
.
.
W
=

..
..
.
. ..
..
..
..
..
..
.

.
.
.
.
.
XN 1
xN 1
N
2N
3N
(N
1)(N
1)
1 W
W
W
... W
| {z }
| {z }
{z
}
|
x
X
F

dove si vede che la DFT corrisponde al prodotto matrice-vettore:


X =F x

(5.11)

54

CAPITOLO 5. FILTRI DIGITALI

mentre IDFT data dal prodotto della vettore trasformato-matrice inversa.


La matrice F gode della propriet che la sua inversa data dallinverso di
ogni componente della matrice:

x=F

X,

1
1
1
1
=

N ..
.
1

1
W
1
W2

1
W2
1
W4

1
WN

1
W 2N

..
.

..
.

1
W3
1
W6

..
.

...
...
...
..
.

1
1
W N 1
1
W 2(N 1)

1
W 3N

...

1
W (N 1)(N 1)

..
.

Per la DFT servono N 2 moltiplicazioni e N (N 1) somme (solitamente trascurate perch il problema dato dalle moltiplicazioni). La complessit del
calcolo cresce esponenzialmente e, solitamente, il vettore x molto grande.
Ad esempio, se x ha dimensione 104 , allora le moltiplicazioni saranno 108
che richiedono molto tempo per essere calcolate. Questa elevata complessit
ha portato allo studio di metodi per velocizzare e semplificare la DFT fino
ad arrivare alla FFT (Fast Fourier Transform). Di questo algoritmo ci sono
molte versioni, tutte con complessit intorno alle N2 log2 N2 moltiplicazioni e
tutti richiedono di utilizzare lunghezze di x che siano potenze di 2.

Legame fra DFT e DTFT


Prendendo un vettore x di lunghezza N , le trasformate valgono:

XS (F ) =

Xq =

N
1
X

xn ej2nF

n=0
N
1
X

xn ej2nq/N .

n=0

Andando a scrivere F = q/N le equazioni sono esattamente le stesse quindi


la DTFT, per multipli di F = q/N , equivalente alla DFT. Imponendo

XS (F ), Xq

F
Figura 5.5: Relazione DTFT e DFT

5.2. STRUMENTI PER IL CALCOLO DIGITALE

x0

x1

x0
x2

x3
3

x4
4

x1

x0
x2

x4
n

(a) Sequenza originale

55

x3
4

x3
n

(b) Sequenza traslata di un


campione

x1

x2

x4
1

(c) Sequenza traslata di


due campioni

Figura 5.6: Esempio di traslazione circolare


F =

1
N:

XS (qF ) =

N
1
X

xn ej2nq/N = Xq

(5.12)

n=0

XS (qF ) = DF T [xn ]

(5.13)

e il risultato riportato in figura 5.5.

5.2.2

Traslazione circolare

Loperazione pi semplice per le sequenze quella di ritardarla, ma nel caso


la lunghezza della sequenza sia fissa e limitata non applicabile. Lunico modo di ritardare una sequenza finita quella di fare la traslazione e il campione
che oltrepassa la lunghezza lo si riporta allinizio come primo campione, come
nellesempio di figura 5.6. Dalla figura si capisce perch chiamata circolare: il campione finale si riporta allinizio e dopo una traslazione dellintera
lunghezza si riottiene la sequenza iniziale. La notazione :
x(nr) ,

dove r il ritardo.

(5.14)

molto simile alla notazione della traslazione normale, con la differenza che
le parentesi hanno il significato di operazione in modulo N , parte centrale
della traslazione ciclica. Loperazione quella di riportare tutti i campioni
allinterno della base del modulo:

0n<N

n,
kN n < (k + 1)N
(n)N = n kN,
(5.15)

n + kN,
kN n > (k + 1)N
ad esempio, supponendo che il modulo sia 5:
x

(02)

| {z }

(2)5 =3

= x3 ,

(12)

| {z }

(1)5 =4

= x4 ,

(22)

= x0 .

| {z }

(0)5 =0

da notare che per fare la traslazione basta agire sugli indici, quindi non
necessario spostare nessun elemento in memoria, portando ad una leggera
complessit di calcolo.

56

CAPITOLO 5. FILTRI DIGITALI

x2
x3

x1
xn

x4

x0
x0

x5

x1

xn
x2

(a) Rappresentazione di
un vettore in traslazione
circolare.

x5

e2
x4

(b) Vettore xn traslato


circolarmente di k
campioni.

en

e3

x3

e1

e4

e0
e5

(c) Rappresentazione del


nq
vettore en = ej2 N

Figura 5.7: Rappresentazione traslazione circolare


Con loperazione modulo N non si pi vincolati a mettere i coefficienti
in n [0, N 1] ma si pu lavorare su tutto Z perch i campioni vengono
sempre riportati nellintervallo N . Questo equivale ad avere una ripetizione
periodica della sequenza originale:
x vettore tra 0 e N 1
x(n) = x
n ripetizione periodica di x.
Infatti, prendendo la sequenza ripetuta periodicamente, della quale possibile fare la traslazione "classica", si ottiene esattamente lo stesso risultato
della traslazione circolare. Se si deve traslare circolarmente di r, possibile prendere il vettore periodicizzato, traslarlo linearmente di r campioni ed
infine troncare la sequenza nellintervallo [0, N 1] tramite una finestra:
(
1,
n {0, 1, . . . , N 1}
N
N
x(nr) = x
nr Rn con Rn =
(5.16)
0,
altrove.

Teorema. La DFT gode della propriet della traslazione. Applicando la


traslazione circolare:
DF T [x(nk) ] = DF T [xn ] ej2kq/N = Xq ej2kq/N .

(5.17)

Dimostrazione. Si considerino i vettori x(nk) e ej2nq/N della stessa lunghezza, rappresentati come in figura 5.7. Allora, si capisce che ruotare il
vettore xn in senso antiorario o il vettore en in senso orario equivalente,
per cui possibile scrivere:
N
1
X
n=0

x(nk) ej2nq/N =< x(nk) , en >=< xn , e(n+k) > .

5.2. STRUMENTI PER IL CALCOLO DIGITALE

57

Nellultima relazione si ha lequivalenza nel ruotare in senso antiorario il


vettore x e in senso orario il vettore e a causa del meno. Rimangono solo dei
calcoli:
N
1
X

x(nk) ej2(n+k)q/N = ej2kq/N

N
1
X

n=0

n=0

5.2.3

xn ej2nq/N = Xq ej2kq/N .
{z

DF T [xn ]=Xq

Convoluzione circolare

Dati due vettori della stessa lunghezza N , si definisce convoluzione circolare:


x n N yn =

N
1
X

xk y(nk) ,

n = 0, 1, . . . , N 1

(5.18)

k=0

dove, a causa della lunghezza finita della sequenza, necessaria la traslazione


circolare. Il risultato delloperazione una sequenza di lunghezza pari a quelle
delle sequenze iniziali.
La convoluzione classica fra vettori finiti :
sn = xn yn =

N
1
X

xk ynk

(5.19)

k=0

che da come risultato una sequenza di lunghezza 2N 1 se i vettori sono


uguali, mentre da lunghezza di (N1 + N2 ) 1 nel caso generale di vettori con
lunghezze diverse. Quando si lavora su vettori a lunghezza fissa preferibile
avere operazioni che permettano di restare sulla lunghezza iniziale, ed per
questo che si definisce la convoluzione circolare.
Esempio. Convoluzione circolare. Calcolare la convoluzione circolare di
x = [2, 1, 4] e y = [2, 3, 3].
Entrambi i vettori hanno lunghezza 3, applicando la definizione:
x n 3 yn =

2
X

xk y(nk) = x0 y(n) + x1 y(n1) + x1 y(n2) .

k=0

Si devono ora calcolare le traslazioni circolari di y:


y(n) = yn = [2, 3, 3]
y(n1) = [3, 2, 3]
y(n2) = [3, 3, 2]
quindi si arriva al risultato:
2[2, 3, 3] + [3, 2, 3] + 4[3, 3, 2] = [4, 6, 6] + [3, 2, 3] + [12, 12, 8] =
= [19, 20, 17] = z.

58

CAPITOLO 5. FILTRI DIGITALI

Teorema. Trasformata della convoluzione Date due sequenze finite xn


e yn , la trasformata della convoluzione vale:
DF T [xn N yn ] = DF T [xn ]DF T [yn ] = Xq Yq ,

q = 0, 1, . . . , N 1. (5.20)

Dimostrazione. Applicando la definizione di DFT alla convoluzione circolare:


N
1
X

(xn N yn )e

j2nq/N

n=0

N
1  N
1
X
X
n=0

xk y(nk) ej2nq/N .

k=0

Si scambiano le sommatorie:
N
1
X
k=0

xk

N
1
X

y(nk) e

j2nq/N

{z

= Yq

n=0

N
1
X

xk ej2qk/N = Xq Yq .

k=0

DF T [y(nk) =Yq ej2qk/N ]

{z

DF T [xn ]=Xq

Per calcolare la convoluzione si possono usare vari metodi:


applicare la definizione, con complessit di N 2 moltiplicazioni e N (N
1) somme;
calcolare la DFT delle due sequenze, moltiplicandole e anti trasformando (circa 3N 2 + N moltiplicazioni);
fare gli stessi step del secondo punto con la FFT, con complessit per
N
N grande di 3N
2 log2 2 , nettamente inferiore rispetto agli altri metodi.
La convoluzione lineare molto importante perch permette di calcolare la
risposta impulsiva di un sistema. Nella prossima sezione si spiega come la
convoluzione circolare, molto veloce, sia legata alla convoluzione lineare.
Legame fra convoluzione circolare e convoluzione lineare
Guardando le due definizioni:
sn = xn N yn =
zn = xn yn =

N
1
X
k=0
N
1
X

xk y(nk) ,

n = 0, 1, . . . , N 1.

(5.21)

xk ynk ,

n = 0, 1, . . . , 2N 1.

(5.22)

k=0

Prendendo la convoluzione circolare, si pu immaginare di moltiplicarla per


una finestra RnN :
 NX

1
sn =
xk y(nk) RnN .
(5.23)
k=0

5.2. STRUMENTI PER IL CALCOLO DIGITALE

59

In questo modo, se si rende periodico y si ottiene la sequenza infinita con la


finestra che gi presente. Quindi passando alla forma periodica:
sn =

 NX
1


xk ynk

RnN

(5.24)

k=0

P
dove possibile scrivere la ripetizione come ynk =
r= ynkrN e
sostituendo:

 NX

 X
1

N
1
X
X
N
RnN
xk
ynkrN Rn =
xk ynkrN
k=0

r=

r=

k=0

{z

Conv. ripetuta periodicamente

e chiamando la convoluzione ripetuta periodicamente znrN si ottiene:


 X


sn =
(5.25)
znrN RnN = zn RnN .
r=

In conclusione, la convoluzione circolare la ripetizione periodica della convoluzione lineare, finestrata della lunghezza del vettore sn . Per la ripetizione
di periodo N e zn lunga 2N 1, quindi ci sar aliasing. Per evitare
questo problema, si prende una finestra di dimensione maggiore per evitare
sovrapposizioni e alle sequenze vengono aggiunti degli 0 per raggiungere la
lunghezza della finestra (zero padding).
Esempio. Zero padding. Date due sequenze xn e yn di lunghezza 4, la
convoluzione lineare zn ha lunghezza 2N 1 = 7. Per evitare aliasing occorre
applicare lo zero padding alle sequenze fino ad arrivare alla lunghezza 2N 1
(si aggiungono N 1 zeri):
x = xp = (1, 1, 1, 1, 0, 0, 0)
padding

y = y p = (1, 1, 1, 1, 0, 0, 0).
padding

Adesso vale veramente la relazione di cui sopra.


Dopo aver applicato lo zero padding, la relazione diventa:


sn = IF F T F F T [xp ] F F T [y p ] = zn .

(5.26)

Questa formula utile per progettare i filtri. Ad esempio, pu sostituire


nellimplementazione del FIR le linee di ritardo, mettendo solo ingresso e
risposta impulsiva:


yn = IF F T F F T [xp ] F F T [hp ] .
(5.27)
La relazione appena scritta chiamata Fast Convolution.

60

CAPITOLO 5. FILTRI DIGITALI


x0

...

x1

xL1

...

xL+1

xL

(0)

x2L1

(1)

xn

xn

Figura 5.8: Sequenza di campioni di lunghezza indefinita mappata in sotto


blocchi di lunghezza L
Da notare che si possono aggiungere pi zeri del necessario, soprattuto
per fare in modo che la FFT lavori con sequenze lunghe 2m , per ottenere
la massima velocit. In questo caso la ripetizione periodica pi distante
dal risultato originale. Inoltre, il segnale deve essere gi completamente
memorizzato per permettere al sistema di fare la FFT quindi questa nuova
tecnica utilizzabile solo per filtraggi non real-time.
Convoluzione di un vettore di lunghezza indefinita e una risposta
impulsiva finita
Dato un vettore x di lunghezza indefinita (o infinita) e una risposta impulsiva
h di lunghezza M , posso scomporre in blocchi di dimensione fissa L il vettore
x, come in figura 5.8. Per il k esimo blocco vale:
(
xn , n [kL, ..., (k + 1)L 1]
x(k)
(5.28)
n =
0,
altrove.
Interessa calcolare la convoluzione:
yn =

M
1
X

hm xnm =

m=0

M
1
X

hm

m=0

X
k=

(k)

xnm =

X
k=

M
1
X

(k)

hm xnm =

m=0

{z

Convoluzione lineare

X
k=

hn x(k)
n =

zn(k)

k=

(5.29)
(k)

dove hn di lunghezza M mentre xn di lunghezza L. La convoluzione di


una sequenza indefinita pu essere espressa in una somma di convoluzioni
minori, tra vettori di lunghezza finita. Anche per la convoluzione del blocco
(k)
zn vale:


 (k) p 
 p
(k)
(k)
zn = xn hn = IF F T F F T xn
F F T hn
(5.30)
dove lapice p significa che stato applicato lo zero padding. Quindi, vero
che per fare la FFT serve tutto il blocco, ma possibile modificarlo andando

5.2. STRUMENTI PER IL CALCOLO DIGITALE


hn

Zero
Padding

FFT

(k)

xn

61

Zero
Padding

IFFT

(k)

zn

FFT

Figura 5.9: Fast Block Convolution


a variare il valore di L. Lo schema di figura 5.9 mostra come viene eseguita
la convoluzione. La sequenza xn viene elaborata a blocchi, quindi bisogna
ripetere i passi, trasformando varie volte in base alla lunghezza del blocco.
La risposta impulsiva, invece, finita e pu essere trasformata direttamente,
una sola volta. Loperazione, perci, molto veloce. Per scegliere L si devono
considerare vari aspetti:
se L piccolo, si devono eseguire molte convoluzioni con segnali piccoli
(svantaggio in termini di complessit) ma si ha il vantaggio di memorizzare pochi dati in memoria e che si inizia ad ottenere luscita presto
(vantaggio in termini di latenza);
se L grande, servono poche convoluzioni e la FFT pi vantaggiosa,
ma c pi latenza e necessita di pi memoria.
La scelta deve essere fatta per ottimizzare il trade-off complessit-latenza.
Convoluzione utilizzata per la cross-correlazione
Dati due vettori x, y, di lunghezza rispettivamente N1 e N2 , la cross-correlazione definita come:
Rxy [n] =

N
1
X

xk ykn

(5.31)

k=0

ed usata per vedere quanto due segnali sono simili tra loro o per sincronizzare, come ad esempio il GPS, che manda un sequenza tipo e quando la correlazione con quella locale da il massimo allora riconosce che si
sincronizzato.
Si definisce filtro adattato un filtro con hn = xn , per cui luscita vale:
yn =

X
k=

xk hnk =

X
k=

xk x(nk) =

xk xkn

(5.32)

k=

che la correlazione. Se x di piccole dimensioni, il filtro FIR ha poche


prese, ma se cos non si cerca una soluzione alternativa al FIR. Prendendo

62

CAPITOLO 5. FILTRI DIGITALI


Zero
Padding

FFT

Time
Reversal

Zero
Padding

IFFT

Rxy (n)

FFT

Figura 5.10: Schema Fast Correlation


i vettori di lunghezza N1 = N2 = N , la cross-correlazione ha complessit
N 2 , ma partendo dalla definizione possibile arrivare ad una soluzione meno
complessa:
N
1
X

Rxy [n] =
xk ykn
(5.33)
k=0

facendo il time reversal e il coniugato del vettore ykn


, ovvero effettuando il

cambio variabile Yn = yn , si ottiene:

Rxy [n] =

N
1
X

xk Ynk

(5.34)

k=0

che una convoluzione. La convoluzione, come gi dimostrato, pu essere calcolata usando la FFT rendendo molto veloce loperazione di crosscorrelazione:


(5.35)
Rxy [n] = IF F T F F T [x] F F T [y n ]
N
con complessit di circa 3N
2 log 2 ed definita fast correlation. Si veda lo
schema a blocchi di figura 5.10.
Nel caso di correlazione fra una sequenza a lunghezza indefinita e una a
lunghezza limitata, si pu precedere a blocchi come nel caso della fast block
convolution: questa operazione viene definita fast block correlation.

5.3. PROGETTO DI FILTRI

5.3

63

Progetto di filtri

Si vuole cercare un metodo che permetta di calcolare i coefficienti dei filtri


digitali FIR/IIR affinch si comportino entro certi vincoli progettuali. Lo
schema da seguire per il progetto di un filtro digitale riportato in figura
5.11: per una certa applicazione devono essere fornite delle specifiche di progetto che sono usate per creare la maschera del filtro. La maschera permette
di sintetizzare il filtro, il ch consiste nellandare a cercare i coefficienti dellequazione costituente, quindi il vettore dei coefficienti b per i FIR e i vettori
a, b per i filtri IIR. Per queste diversi vettori da calcolare, le tecniche di
progetto sono diverse se si vuole progettare un filtro IIR piuttosto che un
filtro FIR. Noti questi vettori, si procede allimplementazione, ovvero nella
scelta dello schema e della tipologia del filtro (diretto tipo 2, tipo 1, ecc..)
per poi entrare nella fase di test. Nel caso il filtro rispetti le maschere, il progetto finisce, mentre se cos non fosse si dovrebbe ritornare alla formulazione
delle specifiche e apportare delle modifiche in modo che i vincoli vengano
rispettati.

5.3.1

Formulazione delle specifiche

Il blocco delle specifiche produce una maschera di progetto, ovvero i punti in


cui il modulo del filtro non pu stare, come riportato in figura 5.12. Una volta
calcolata la maschera di progetto, ogni filtro che la rispetta da considerarsi
valido.
Inoltre, la maschera solitamente per il modulo: non possibile controllare contemporaneamente sia fase che modulo. Fissato il modulo, ci sono
pochi gradi di libert nel progetto della fase: lunico modo per controllarla
efficacemente utilizzare un filtro FIR a fase lineare. Quando non possibile utilizzare questo tipo di filtri, c comunque la possibilit di mettere in
cascata al filtro progettato un correttore di fase (detto all-pass-filter), caratterizzato da modulo unitario e fase modificabile. In definitiva, il progetto
del filtro coinvolge solo il modulo.
Per definire la maschera servono:
variazione in banda passante 1 (ripple in banda passante);
Maschera
Applicazione

Specifiche

di

Sintesi

Implementazione

progetto

Test

Figura 5.11: Diagramma di flusso di un progetto

64

CAPITOLO 5. FILTRI DIGITALI


variazione in banda attenuata 2 (ripple in banda attenuata);
transizione banda passante-banda attenuata f ;
frequenza di taglio FC .

Si fa il grafico in F [0, 12 ] perch c ripetizione periodica essendo tempo


discreto e non si grafica per F < 0 perch si ipotizza simmetria Hermitiana,
quindi con coefficienti reali.
Tipicamente, si grafica H(F )dB = 10 log10 |H(F )| (figura 5.13), dove
vengono definite le grandezze ripple in banda passante:
RpdB = 20 log10 (1 + 1 ) 20 log10 (1 1 ) = 20 log10

1 + 1
1 1

(5.36)

e lattenuazione in banda oscura:


AsdB = 20 log10 2 .

5.3.2

(5.37)

Sintesi del filtro FIR

Metodo dell finestre


Si suppone di cercare di raggiungere un filtro ideale che introduca un ritardo (cio che rispetti le condizioni di non distorsione), esso ha funzione di
trasferimento:
(
1 ej2F , F [FC , FC ]
Hd (F ) =
(5.38)
0,
altrove.
La sua risposta impulsiva :
hdn

Fs1 [Hd (F )]

Z
=

1
2

21

Hd (F )e

FC

ej2F (n)

ej2F ej2F n dF =

iFC
FC

ej2F (n) dF =
j2(n )
FC


= 2FC sinc 2FC (n ) .

FC

dF =
FC

h
Z

j2F n

sin(2(n )FC )
=
(n )

(5.39)
La risposta impulsiva del filtro desiderato, quindi, una sinc traslata di
campioni. Il filtro ottenuto ha risposta impulsiva infinita ed anticausale.
Per renderlo causale e a risposta finita, si tronca la risposta ad un certo
campione M 1 con una finestra di lunghezza M :
hn = hdn RnM .

(5.40)

5.3. PROGETTO DI FILTRI

65

|H(F )|
1 + 1
1 1

2
FC

F
(a) Maschera per un filtro passa-basso: si riportano il
modulo del filtro ideale (blu), un esempio di filtro reale
(rosso) e le zone proibite dalle specifiche (grigio).
|H(F )|
1 + 1
21

1 1

2
F1

F2

(b) Maschera per filtro elimina-banda

Figura 5.12: Esempi di maschera di progetto

|H(F )|dB

Rp(dB)

F
As(dB)

Figura 5.13: Maschera per un filtro passa-basso in decibel

66

CAPITOLO 5. FILTRI DIGITALI

In questo modo si ha un FIR e, visto che questa tipologia di filtro ha coefficienti b uguali a quelli della risposta impulsiva, il vettore di coefficienti
noto. necessario andare a scegliere i valori e M : considerando che la
sinc simmetrica rispetto , conviene imporre che stia a met della finestra:
=

M 1
.
2

(5.41)

In questo modo i coefficienti sono simmetrici e si avr fase lineare. Invece,


M corrisponde al troncamento della finestra e al numero di prese del filtro.
Pi il valore di M alto, pi probabile che il filtro approssimi a quello
ideale, ma la complessit cresce e potrebbe non essere conveniente. Pi il
troncamento accentuato, pi il fenomeno di Gibbs porta ad un fenomeno
doscillazione in frequenza. Per vedere questo fenomeno, si calcola la DTFT
della risposta del filtro:
h
i
hn = hdn RnM H(F ) = Hd (F ) Fs RnM
(5.42)
DT F T

e la trasformata di Fourier della finestra vale:


W (F ) =

M
1
X

1 ej2nF =

n=0

M
1
X
n=0

j2F M
2

ej2 2

n 1 ej2F M

1 ej2F
=
=
1 ej2F

(5.43)

M 1
sin(F M )
sin(F M )

= ej2 2 F
.
sin(F )
sin(F )

La trasformata della finestra una ripetizione periodica della sinc a tempo


continuo, rappresentata in figura 5.14a. Se si aumenta M , il primo lobo
della risposta si stringe tenendo ad una Delta di Dirac e si stringe la regione di roll-off. In questo modo la risposta del filtro diventa pi selettiva
ma questo non va a migliorare il ripple, che dipende dal secondo lobo (se
aumenta il primo lobo aumenta della stessa quantit anche il secondo, figura
5.14b). Per migliorare il ripple, consigliabile prendere una finestra diversa
da quella rettangolare che, a causa della sua discontinuit, porta una grande
oscillazione per Gibbs.
Questo metodo ha anche due aspetti negativi: i filtri creati hanno ripple
piccolo lontano dalle transizioni e ripple alto vicino alle transizioni, che la
zona in cui pi facile uscire dalla maschera. Infatti vicino alle transizioni, i
punti in cui c la massima elongazione vengono detti punti critici. Un altro
problema che il ripple della stessa ampiezza sia in banda attenuata sia
in banda passante, mentre sarebbe preferibile dare delle ampiezze differenti
alle oscillazioni. Per variare le oscillazioni e roll-off possibile utilizzare vari
tipi di finestra, come ad esempio:
rettangolare: semplice, ma ha il problema che troncando in modo cos
netto ci possono essere forti discontinuit, quindi grandi sovraelongazioni;

5.3. PROGETTO DI FILTRI

67

|W (F )|
M

1
M

2
M

...

F
1

(a) Spettro della finestra: ripetizione periodica di sinc. Sono evidenziati il


primo lobo, legato alla transizione da banda passante a banda attenuata
(rosso), e il secondo lobo, ripple maggiore nelle due bande (verde)

|H(F )|

F
(b) Punti critici del filtro e lobi principali

Figura 5.14: Spettro della finestra e spettro del filtro: mappatura dei lobi
triangolare: il troncamento avviene linearmente e questo evita grandi sovraelongazioni ma modifica anche la risposta impulsiva a centrobanda;
coseno (o di Hamming);
parametrica (o di Keiser).
Non c una finestra migliore in assoluto ma ognuna ha dei punti forti da
sfruttare in base alle applicazioni.
Matlab ha di default delle funzioni per progettare il filtro digitale: ad
esempio, fare un filtro a finestra si usa fir1(n,Wn,ftype,window) ed quella utilizzata per ottenere i risultati di figura 5.14b utilizzando una finestra
rettangolare.
Metodo Parks-McLellan
Questo secondo metodo permette di progettare delle oscillazioni di ripple
differenti nelle due bande:
1 in banda passante,

2 in banda attenuata.

Si dice che un progetto equi-ripple perch lampiezza delloscillazione viene


ridistribuita, mettendo oscillazioni alte dove accettabili e basse dove la curva

68

CAPITOLO 5. FILTRI DIGITALI

deve essere piatta. Il filtro creato con questo metodo quello con il minor
numero possibile di prese in assoluto.
Si definisce una funzione obbiettivo che include la maschera (cosa che
non stata fatta nel metodo a finestra):
E(F ) = W (F )[Hd (F ) H(F )]

(5.44)

dove W (F ) una finestra con pesi tali da sbilanciare il ripple come da


necessit di progetto, Hd (F ) la funzione di trasferimento desiderata e H(F )
il filtro. Si cerca il vettore dei coefficienti b che minimizzi lerrore:


b = arg min max(E(F )) .
(5.45)
b

La soluzione ha bisogno del supporto del teorema dellalternanza e dellalgoritmo di Remez. Dal teorema si genera un sistema di equazioni risolvibili
con lalgoritmo di Remez, e le soluzioni sono i pesi b.
un metodo "semiautomatico" perch, data la maschera, il numero di
prese M deve essere scelto dal progettista: nel caso lordine del filtro fosse
troppo basso, il filtro non rispetter la maschera e sar necessario ripartire
dallinizio del progetto. Esistono delle formule per avere una stima del numero M da cui partire come la formula di Hermann, abbastanza precisa ma
complessa, e una meno accurata ma pi semplice:
M

10 log10 (1 2 ) 13
+ 1,
14.6F

F = FS FP .

(5.46)

Metodo del campionamento in frequenza


Supponendo si voglia cercare la sequenza dei campioni della risposta impulsiva del filtro {bn }0M 1 , la funzione di trasferimento del filtro periodica
e si possono prendere M (lunghezza della risposta) campioni equispaziati
allinterno del periodo. Il generico campione vale:
M
1

X
k
k 
Hk = H F =
=
bn ej2n M = DF T [bn ]
M

(5.47)

n=0

e invertendo la formula si possono calcolare i coefficienti con la formula di


progetto:
bn = IDF T [Hk ].
(5.48)
Esempio. Progetto con metodo del campionamento. Realizzare un
filtro con Hd come in figura 5.15.
Scelto il numero M di prese, si prendono lo stesso numero di campioni
nel periodo, sia in modulo che in fase e il vettore dei coefficienti :


d
d
H d = |H0d |ejargH0 , |H1d |ejargH1 , . . .

5.3. PROGETTO DI FILTRI

69

|Hd (F )|

(a) Modulo
arg[H(F )]

(b) Fase

Figura 5.15: Funzione di trasfermento del filtro da realizzare con metodo


del campionamento in frequenza

70

CAPITOLO 5. FILTRI DIGITALI

e si fa la antitrasformata del vettore:


bn = IDF T [H d ].
Un vantaggio di questo metodo che si possono realizzare funzioni di trasferimento qualsiasi, mentre nei metodi precedenti si potevano realizzare solo
funzioni "a scatola" come i filtri tipici (passa-basso, passa-alto, passa-banda,
elimina-banda). Da notare che
per avere coefficienti del filtro reali, il modulo deve essere simmetrico
e la fase antisimmetrica;
la funzione di trasferimento che si realizza non esattamente Hd perch
la corrispondenza esatta viene garantita solo nei punti in cui avvenuto
il campionamento: il salto dellesempio darebbe una risposta infinita,
quindi c un troncamento;
in corrispondenza dei salti della funzione desiderata ci possono essere
delle sovraelongazioni non eliminabili.

5.3.3

Sintesi del filtro IIR

Il progetto di un filtro IIR ha caratteristiche molto simili al progetto di un


filtro analogico. Infatti, il progetto del filtro consiste nel:
creare un prototipo analogico, tipicamente passa-basso;
il filtro analogico viene convertito in un equivalente IIR digitale passabasso (A-to-D). Se il filtro da progettare di tipo passa-basso, si pu
passare allimplementazione, altrimenti si deve fare un altro passaggio;
trasformazione in frequenza, nel quale si trasforma lIIR passa-basso
in quello che si desiderava progettare.
Questo schema logico analogico solo nel primo blocco e digitale negli altri
due. Esiste uno schema alternativo in cui la trasformazione in frequenza
viene fatta prima della conversione A-to-D. Inoltre, in questultimo schema
non detto che le specifiche dopo la conversione A-to-D vengano rispettate
le specifiche, si potrebbe tornare indietro e dover riprogettare per migliorare
le prestazioni.
Maschera analogica
Si ha il limite di guadagno in banda passante fisso a 1 perch il filtro
1
supposto passivo e con un limite doscillazione pari a 1+
2 , mentre in banda

5.3. PROGETTO DI FILTRI

71

|Ha (F )|2
1
1
1+2

1
A2

F
fp

fa

Figura 5.16: Maschera filtro analogico


oscura si ha attenuazione A12 . Analogamente al caso digitale, si possono
definire le grandezze in decibel:
1
1 + 2
= 10 log10 A2 .

RpdB = 10 log10

(5.49)

AsdB

(5.50)

Per un esempio grafico si faccia riferimento a figura 5.16.


Prototipo
Si prenderanno ad esempio i filtri di Butterworth, caratterizzati dalla funzione di trasferimento:
1
|Ha (F )|2 =
(5.51)
 2N
f
1 + fc
dove fc la frequenza di taglio nella quale |Ha (fc )|2 = 1/2 = 3dB e N
lordine del filtro. Questi filtri sono detti massimamente piatti perch non
presentano oscillazione e se N la caratteristica tende a quella del filtro
ideale. Si pu dimostrare che la funzione di trasferimento nel dominio di
Laplace vale:
2f N
Ha (s) = Y c
(5.52)
(s pk )
k

dove la parte reale dei poli Re(pk ) < 0 per garantire la stabilit. Il filtro
di Butterworth, per costruzione, ha poli sulla circonferenza di raggio r =
2fc ed equispaziati fra loro come mostrato in figura 5.17. La funzione di
trasferimento dei filtri di Butterworth caratterizzata da poli con valore:
N dispari pk = 2fc ejk/N
k

N pari pk = 2fc ej( N + 2N ) .

72

CAPITOLO 5. FILTRI DIGITALI

Im(z)
p2 = 2fc e

4
3

p1 = 2fc ej 3

p3 = 2fc

p4 = 2fc e

Im(z)
p1 = 2fc ej

5
4

p0 = 2fc
Re(z)
5
3

p0 = 2fc ej 4

Re(z)
p2 = 2fc ej

p5 = 2fc ej 3

(a) Caso con N dispari (N = 3)

7
4

p3 = 2fc ej

3
4

(b) Caso con N pari (N = 2)

Figura 5.17: Disposizione poli Butterworth

Per gli esempi di figura 5.17, le funzioni di trasferimento sono rispettivamente:


(2fc )3
(s p2 )(s p3 )(s p4 )
(2fc )2
N = 2 Ha (s) =
(s p2 )(s p3 )

N = 3 Ha (s) =

inoltre, dalla figura si vede che i poli sono sempre complessi coniugati e
questo molto utile per avere coefficienti reali nei filtri.
Data una maschera, necessario calcolare lordine e la frequenza di taglio
del filtro. Poich i filtri di Butterworh sono massimamente piatti, da guadagno 1 sono decrescenti e i punti critici perch la maschera sia rispettata
sono:
quello al limite della banda passante (a),
quello al limite della banda attenuata (b).
Supponendo che sia ammesso toccare la maschera, si vuole vincolare la curva
a passare per i punti a e b, imponendo che in fp e in fa la funzione di
1
1
trasferimento valga rispettivamente 1+
2 e A2 :
a:

b:

1
=
1 + 2
1
=
A2

1+

1+

1
 2N
fp
fc

1
 2N .
fa
fc

5.3. PROGETTO DI FILTRI

73

Le incognite sono la frequenza di taglio fc e lordine N , ma il sistema non


lineare. Si applica 10 log10 ad entrambi i membri alle equazioni:
!2N !
fp
1
a:
10 log10
= 10 log10 1 +
1 + 2
fc
|
{z
}
RpdB

b:

10 log10
{z
|
AsdB

1
= 10 log10
A2}

fa
fc

1+

!2N !
.

Si cerca di estrarre largomento del logaritmo elevando alla 10:


 2N
Rp
fp
a:
10 10 1 =
fc
 2N
As
fa
b:
10 10 1 =
fc
poi applicando ancora un logaritmo:
 

 Rp
fp
10
a:
log10 10 1 = 2N log10
fc
 
 As

fa
b:
log10 10 10 1 = 2N log10
fc
e facendo la differenza fra le due equazioni si ottiene:

log10

10

Rp
10

10

As
10


= 2N log10

fp
fa

log10


N =

Rp
10 10
As
10 10

2 log10

!
1
1

fp
fa

(5.53)

= dN e, prendendo lintero superiore afche deve essere approssimato a N


finch il filtro resti allinterno della maschera. Noto lordine del filtro, sostituendo il valore calcolato nellequazione con le potenze di 10 si trovano
le frequenze di taglio possibili. Queste saranno un intervallo a causa della
approssimazione ad un ordine superiore rispetto al minimo (se si fosse tenuto
si avrebbe avuto solo un punto) e i valori limite sono:
N senza prendere N
a:

b:

fp
q

Rp
2N
10 10 1
fa
fc00 = q

As
2N
10 10 1
fc0 =

(5.54)

(5.55)

dove fc0 la frequenza di taglio minore (dove la curva tocca il punto a) e fc00
la frequenza di taglio superiore (dove tocca il punto b). Lintervallo allora
f [fc0 , fc00 ] e, per avere margine dalla maschera, si tende a prendere il valore
medio tra le due frequenze.

74

CAPITOLO 5. FILTRI DIGITALI

Conversione A-to-D: trasformazione bilineare


Noto il filtro analogico si deve fare la conversione da analogico a digitale. I
metodi possibili sono essenzialmente:
prendere lequazione differenziale del filtro analogico e la si trasforma
in una trasformata alle differenze, passando da derivata a rapporto
incrementale. macchinoso e a volte servono dei trucchi matematici
per arrivare a fine progetto;
sfruttare linvarianza della risposta impulsiva, si guarda la risposta
impulsiva analogica e si trova un IIR che abbia la sua risposta impulsiva
campionata;
utilizzare la trasformazione bilineare, metodo che garantisce sempre la
riuscita.
Data Ha (s) si vuole trasformare in H(z). Questo equivale prendere i
punti di un piano complesso (di Laplace) e mapparli in un altro piano complesso (piano Z). Per fare questa operazione, esistono molte trasformazioni
ma si sceglie di usare la trasformazione bilineare per le propriet che verranno discusse in seguito. La trasformazione definita come T : C C, s z
e si applica con:
2 1 z 1
s=
.
(5.56)
T 1 + z 1
Si vanno a discutere le propriet della trasformazione:
1. la trasformazione invertibile:
z=

1 + s T2
1 s T2

(5.57)

2. se la funzione di trasferimento analogica razionale, la funzione di


trasferimento digitale ancora razionale, quindi un IIR.
3. se il prototipo analogico stabile, anche il prototipo digitale stabile
Dimostrazione. Prendendo lequazione dellinvertibilit ed esprimendo
s = + j:
1 + T2 + j T2
z=
1 T2 j T2
per < 0, la parte reale del polo analogico stabile, il modulo del
numeratore maggiore di quello del denominatore quindi |z| < 1
e ci si trova allinterno del cerchio unitario, condizione di stabilit;
per = 0, |z| = 1, quindi ci si trova al limite fra stabilit e
instabilit;

5.3. PROGETTO DI FILTRI

75

per > 0, il polo analogico instabile, |z| > 1 quindi anche in


digitale si in instabilit.

4. la relazione della frequenza digitale rispetto quella analogica :


F =

1
arc tan(f T ).

Dimostrazione. Prendendo s = j e z = ej2F , nellequazione della


trasformazione:
2 1 ej2F
s = j =
T 1 + ej2F
e raccogliendo ejF :
j2f =

2
2 ejF ejF ejF
= j tan(F ).
jF
jF
jF
Te
e
+e
T

Facendo la funzione inversa si ottengono le due relazioni che collegano


il mondo analogico e quello digitale:
1
tan(F )
T
1
F = arc tan(f T ).

f=

(5.58)
(5.59)

Se si progettato un filtro analogico di Butterworth, trasformandolo in


digitale, avr circa la stessa forma, ma avr asse delle frequenze compreso
tra 0 e 1/2, a causa della tangente. Questo effetto detto frequency warping
ed era facile aspettarsi che qualcosa venisse distorto, perch passare da aperiodico analogico e periodico digitale richiede un trasformazione non lineare.
In generale, la maschera non rispettata, ma noto come la risposta viene
distorta: si pu fare una distorsione preventiva (pre-distorsione). Si prende
la maschera dellIIR desiderato e viene trasformata nella versione analogica:
fp0 =

1
tan(Fp ),
T

fa0 =

1
tan(Fa ).
T

(5.60)

Da notare che la pre-distorsione intacca solo le frequenze, non le ampiezze.


La compressione della frequenza riportata graficamente in figura 5.18.
Esempio. Trasformazione del filtro RC analogico in filtro digitale.
Il circuito RC caratterizzato da funzione di trasferimento:
Ha (s) =

1
.
1 + sRC

76

CAPITOLO 5. FILTRI DIGITALI

|Ha (f )|

|H(F )|

f
(a) Funzione di trasferimento del filtro
analogico

F
(b) Funzione di trasferimento del
filtro digitale: dopo la
trasformazione bilineare c
compressione di frequenza

Figura 5.18: Compressione di frequenza


Si effettua la trasformazione bilineare, scegliendo la frequenza di campionamento:
1
1 + z 1
=
=
2
2 1 z 1
1 + z 1 + (1 z 1 )
1+
T
T 1 + z 1
1
1
1 + z 1
1+z
=
.
=



2
2 1
2
1 2  1
1+
+ 1
z
1+
1+
z
T
T
T
1 + 2
| {z }

H(z) =

a1

Si tratta di un filtro IIR del primo ordine. Nella trasformazione cambiata


la frequenza di taglio:
 T 
1
1
fc =
Fc = arc tan
2RC

RC
quindi la trasformazione bilineare semplice perch dallanalogico al digitale
basta fare un cambio di variabile, per questo molto usata nei progetti. Il
grafo risultante viene rappresentato in figura 5.19 nella forma diretta di tipo
II trasposta.
Esempio. Progetto IIR. Progettare un filtro IIR, da un passa-basso di
Butterworth, che soddisfi fp = 2KHz, fa = 6.5KHz, fs = 48KHz, Rp = 3dB,
As = 20dB.
Il progetto del filtro digitale si sviluppa attraverso i seguenti passaggi:
1. Pre-distorsione della maschera. Si normalizzano le frequenze critiche:
Fa =

fa
= 0.135,
fs

Fp =

fp
= 0.0417
fs

5.3. PROGETTO DI FILTRI

77

allora le frequenze che il filtro analogico deve soddisfare sono:


1
tan(Fa ) = 6923Hz
T
1
fp0 =
tan(Fp ) = 2012Hz.
T
Pi le frequenze sono basse, pi larcotangente si comporta linearmente, quindi le frequenze di partenza e quelle dopo la pre-distorsione sono
simili.
fa0 =

2. Progetto del prototipo. Si calcola lordine del filtro con la formula che
impone di rispettare i punti critici:
!
Rp
10 10 1
log10
As
10 10 1
= dN e = 2
N=
= 1.86 N
 0
fp
2 log10
fa0
si ottiene un filtro IIR di ordine 2. Si calcolano le frequenze di taglio
possibili:
fp0
2012
q
= p
= 2014Hz
4

Rp
3/10 1
2N
10
10 10 1
6923
f0
= p
= 2195Hz
fc00 = q a
4

As
20/10 1
2N
10
10
10 1
fc0 =

quindi lintervallo di frequenze ammissibili sono f [2014, 2195]. Solitamente si prende il valore intermedio, ma possibile prendere un valore vicino allintermedio ma che garantisca calcoli pi semplici, quindi
in questo caso si pu scegliere fc = 2100Hz.
La funzione di trasferimento quella di Butterworth del secondo ordine:
Ha (s) =

(2fc )2
,
(s p1 )(s p2 )

p1 = 2fc ej 4 , p2 = 2fc ej 4

e sostituendo i poli nellequazione, scrivendo c = 2fc , si ottiene:


Ha (s) =

xn

s2 +

b0

2c
.
2c s + 2c

yn

z 1
b1

a1

Figura 5.19: Grafo in forma di tipo II trasposta

78

CAPITOLO 5. FILTRI DIGITALI


1

0.0156

z 1
1.6173

0.0311
z 1

0.6796

0.0956

Figura 5.20: Grafo filtro IIR secondo ordine di esempio


3. Trasformazione bilineare. Si sostituisce ad ogni s lequazione della
1
trasformazione bilineare s T2 1z
e si ottiene:
1+z 1
H(z) =

0.00156 + 0.0311z 1 + 0.956z 2


.
1 1.6173z 1 + 0.6796z 2

Nota la funzione di trasferimento del filtro IIR si pu disegnare il grafo


corrispondente, come in figura 5.20.
4. Trasformazione di frequenza. Nel caso in cui il filtro da progettare non
fosse passa-basso, con delle formule possibile trasformare il filtro in
quello che si desiderava progettare.

5.4. SISTEMI MULTI-RATE

5.4

79

Sistemi multi-rate

In questa tipologia di sistema sono presenti dei blocchi di elaborazione che


richiedono diverse frequenze di lavoro, come mostrato in figura 5.21. Quello
che serve un blocco che permetta di fare lo switch tra una frequenza e
laltra per fare in modo che tutti i blocchi di elaborazione possano svolgere
correttamente il rispettivo compito.
Ad esempio, se il segnale XS (F ) un gruppo di segnali (come in figura
5.22), per evitare aliasing si deve campionare a fs = 2fm . Se si volesse andare
ad isolare un solo segnale, ad esempio il triangolo, la banda del segnale filtrato
0 < f , perci si potrebbe campionare a f 0 = 2f 0 , frequenza
risulterebbe fm
m
s
m
minore rispetto al campionamento del segnale completo.
Per costruire il blocco Rate Changer, si segue un approccio matematico:
si converte il segnale da digitale ad analogico con un interpolazione:


X
t nT
x(t) =
xn sinc
(5.61)
T
n
poi si campiona alla frequenza di arrivo fs0 :
x0n

= x(nT ) =

X
n


nT 0 nT
.
xn sinc
T


(5.62)

Questo il segnale ricampionato e i due clock possono essere asincroni. Nel


caso in cui il cambio di frequenza esprimibile come un rapporto:
fs
m
=
0
fs
n

(5.63)

si possono trovare delle soluzioni molto semplici. I casi possibili sono:


fs0 =

fs
M:

si riduce di un fattore intero M (decimazione);

fs0 = Lfs : si aumenta frequenza di un fattore intero L (interpolazione).

5.4.1

Decimazione

Si mantengono solo i campioni posizionati a multipli di M allora nel tempo


xdn = xnM
xn

H1 (f )
fs

Rate
Changer

(5.64)

H2 (f )
fs0

Figura 5.21: Schema di un circuito multi-rate

yn

80

CAPITOLO 5. FILTRI DIGITALI

|XS (F )|

fm
|XS (F )|

0
fm

Figura 5.22: Segnali multiplexati campionati a frequenza fs : selezionando


un solo segnale possibile campionare a frequenze minori.

x1
x4
x0

x2

x03 = x6

x6
x01 = x0

x3

x02 = x3

x5
n

n
M 1

(a) Sequenza originale

(b) Sequenza decimata di un fattore M : si


prende un campione e se ne saltano M 1

Figura 5.23: Decimazione

5.4. SISTEMI MULTI-RATE

81

Nelle frequenze, il periodo aumentato quindi gli spettri sono pi vicini:


1 X 
k 
XSd (f ) =
X f
.
(5.65)
MT
MT
k

Se M troppo grande ci sar aliasing perch gli spettri dei campioni si avvicinano troppo, fino a sovrapporsi. Si deve fare in modo che venga rispettato
il teorema di Shannon e considerando che la nuova banda del segnale vale
B = 2M fm si ha:
fs 2M fm
da cui si deriva che:


fs
fs
M
M
.
2fm
2fm

(5.66)

Per fare questa operazione, necessario conoscere la banda del segnale per
evitare aliasing a causa di una M troppo grande. Prima del campionamento
va messo un filtro anti-aliasing per non sovrapporre disturbi al segnale; va
fatto anche prima della decimazione, mettendo un passa-basso che tenga solo
il segnale quindi a frequenza di taglio ft = fm . Il filtro, deve avere regione di
fs
transizione f [fm , M
fm ] perch deve attenuare prima della ripetizione
periodica del segnale. La funzione di trasferimento del filtro, riassumendo,
:

1, in f [fm , fm ]
h
i
Hd (f ) =
(5.67)
0, in f fs fm , fs .
M
2

5.4.2

Interpolazione

Il primo passo quello di andare ad aggiungere degli zeri tra i campioni della
sequenza con lo zero padding, come in figura 5.24. Cos facendo, la frequenza
dei campioni cambiata perch si ridotto il periodo tra un campione e
laltro, ma questo non il segnale corretto perch i campioni dovrebbero
essere simili alla curva tracciata.
Si trasforma in frequenza e si nota che lo spettro quello di figura 5.25a:
sono stati aggiunti degli zeri che non alterano lo spettro, ma le frequenze

n
(a) Segnale originale campionato

n
(b) Segnale campionato con zero padding
tra i campioni: si inseriscono L 1 zeri tra
i campioni

Figura 5.24: Interpolazione nel tempo

82

CAPITOLO 5. FILTRI DIGITALI


|Xs (f )|, |Xsi (f )|

f
3fs

2fs

fs0

2fs0
3

fs

fs0
3

fs

2fs

3fs

fs0
3

2fs0
3

fs0

(a) Spettro del segnale originale (nero), spettro del segnale con zero
padding con relative frequenze (rosso) e filtro interpolatore (blu).
|Xsi (f )|

A
L

f
fs0

fs0

(b) Dopo il filtraggio restano gli spettri dei campioni alla frequenza di
campionamento fs0 , con unampiezza diversa.

Figura 5.25: Spettri dei segnali dellinterpolazione


non sono le stesse. Lo spettro del segnale interpolato quello di figura
5.25b, ottenuto tramite un filtro interpolatore che ricostruisce i campioni
mancanti.
Loperazione di interpolazione non ha il problema dellaliasing perch
la frequenza viene aumentata e gli spettri tendono ad allontanarsi gli uni
dagli altri, senza possibilit di sovrapposizione. Per mantenere lampiezza
del segnale originale, il filtro deve amplificare perch riducendo il periodo:


LX
kL
i
Xs (f ) =
X f
(5.68)
T
T
k

allora lampiezza deve essere L A se si vuole rispettare la legge di cui sopra. Da notare che nel caso della decimazione questo procedimento non
necessario. Guardando lo schema a blocchi di figura 5.26c, raffigurante
un cambiamento di frequenza di un rapporto di fs , si vede che i due filtri
passa-basso, possono essere uniti e rappresentati con un unico filtro con la
frequenza di taglio pi bassa dei due.

5.4. SISTEMI MULTI-RATE

83

Filtro
Antialiasing
fs

Decimatore

Hd (f )

fs /M

(a) Schema a blocchi del decimatore

Filtro

Zero
fs

Padding

Interpolatore
Lfs

Hi (f )

fs0

(b) Schema a blocchi dellinterpolatore

fs

Zero
Padding
L

Filtro
Interpolatore
Hi (f )

Lfs

Filtro
Antialiasing
Hd (f )

Decimatore
M

(c) Combinazione interpolazione e decimazione

Figura 5.26: Schema a blocchi del Rate Changer

L
M

fs

84

CAPITOLO 5. FILTRI DIGITALI

5.5

Filtraggio adattativo

Con filtro adattativo si intende un filtro i cui pesi vengono calcolati dinamicamente per eseguire operazioni diverse nel tempo. Un filtro di questo tipo
non deve obbedire a maschere ma a leggi che ne definiscono il comportamento. Luscita portata in retroazione e confrontata con un riferimento che
produce un errore en , che entra in un blocco detto algoritmo adattativo che
va a calcolare i vettori a, b dei pesi. Esistono filtri adattativi che richiedono che la sequenza venga utilizzata dallalgoritmo nel calcolo dei coefficienti
del filtro: uno schema di principio mostrato in figura 5.27. Nel seguito si
faranno le seguenti ipotesi:
filtro FIR a M prese, stabile quindi pi probabile che la retroazione
non diventi instabile;
xn , yn , dn : sequenze deterministiche lunghe N .

5.5.1

Algoritmo MSE

Si deve definire un obiettivo da soddisfare in modo da progettare lalgoritmo.


Lobiettivo quello di creare un filtro che faccia in modo che yn = dn ovvero
che renda en = 0. Si definisce una metrica per dire se le sequenze sono simili:
M SE = E[e2n ] =

N 1
N 1
1 X 2
1 X
en =
(yn dn )2 .
N
N
n=0

(5.69)

n=0

Allora lalgoritmo deve minimizzare il MSE, per cui il criterio chiamato


MMSE (Minimum Mean Square Error):
b = arg min (M SE).

(5.70)

b RM

Espandendo lespressione, si fa comparire il vettore delle incognite:


2
N 1
N 1  M 1
1 X
1 X X
2
M SE =
(yn dn ) =
bk xnk dn
N
N
n=0
n=0
k=0
|
{z
}
yn

xn

yn

Filtro
a, b
Algoritmo
Adattativo

en
+

dn

Figura 5.27: Schema filtro adattativo

(5.71)

5.5. FILTRAGGIO ADATTATIVO

85

Per trovare il vettore dei pesi ottimo si devono calcolare tutte le derivate
nelle M componenti di MSE:

M SE(b)

=0

b0

..
(5.72)
.
m = 0, . . . , M 1.

M SE(b)

=0

bM 1
Per lelemento m esimo, la derivata vale:
M
2
N 1
1
X
M SE(b)
1 X
=
bk xnk dn =
bm
N
bm
n=0
k=0


N 1  M
1
M 1
X

1 X
X
bk xnk dn
bk xnk
dn =
=
2
N
bm
bm
n=0
k=0
k=0
|
{z
}
|
{z
}
=0
6=0 solo per k=m

1
N

N
1
X

M
1
X

n=0


bk xnk dn xnm

k=0

e manipolando il risultato si ottiene:



N 1  M
1
X
1 X
M SE(b)
=
2
bk xnk dn xnm =
bm
N
n=0

=2

M
1
X
k=0

=2

M
1
X

bk

1
N
|

k=0
N
1
X

xnk xnm 2

n=0

{z

rxx (km)

N 1
1 X
dn xnm =
N
n=0
|
{z
}

(5.73)

rdx (m)

bk rxx (k m) 2rdx (m)

k=0

dove rxx lautocorrelazione campionaria di xn e rdx la cross-correlazione


campionaria tra dn e xn . Il sistema di equazioni diventa:
M 1
X

bk rxx (k) = rdx (0)

k=0

..
.
m = 0, . . . , M 1

M
1

bk rxx (k M + 1) = rdx (M 1)

k=0

(5.74)

86

CAPITOLO 5. FILTRI DIGITALI

che un sistema di equazioni lineare, rappresentabile con una matrice e,


sfruttando la propriet dellautocorrelazione per sequenze reali rxx (k) =
rxx (k), risulta:


rdx (0)
rxx (0)
rxx (1)
rxx (M 1)
b0

rxx (1)


rxx (0)
rxx (M 2)

b1 rdx (1)
=

..
..
..
..
.
..

..
.
.
.
.
.
rxx (M 1) rxx (M 2)

rxx (0)

bM 1

rdx (M 1)

e pu essere riscritto in modo compatto:


R b = r.

(5.75)

Facendo linversa della matrice, sempre possibile poich matrice di Toeplitz,


si ottiene il vettore dei coefficienti del filtro:
bopt = R1 r.

(5.76)

Questo algoritmo adattativo, implementato in questo modo, ottiene sempre


una soluzione. Per, fare linversa di una matrice un problema perch per
un a matrice N N richiede circa N 3 moltiplicazioni che porta a:
problema di tempo: da il risultato quando pu essere troppo tardi per
lapplicazione;
problema energetico: fare molte moltiplicazioni incide sulla batteria
del sistema.
Per queste ragioni, lalgoritmo MSE si fa solo per un numero di prese M
piccolo. Esistono soluzioni per velocizzare lalgoritmo evitando di calcolare linversa della matrice, come lalgoritmo di Lennson-Durbin che risolve
matrici di Toeplitz come R oppure utilizzando un criterio diverso da MSE.
Alcuni approcci alternativi sono il criterio Least Mean Square (LMS), gli
algoritmi iterativi o gli algoritmi del gradiente.

5.5.2

Algoritmo LSM

Per calcolare il minimo di una funzione monodimensionale, oltre alla derivata della funzione posta a zero, possibile utilizzare un metodo iterativo,
seguendo i passi:
1. si prende un punto a caso se ne calcola la derivata nel punto scelto;
2. se la derivata negativa ci si sposta a destra di una quantit , se
positiva ci si sposta a sinistra della stessa quantit;
3. si calcola la derivata nel punto raggiunto;

5.5. FILTRAGGIO ADATTATIVO

87

4. si itera finch non si raggiunge un valore sufficientemente basso da


considerarsi nullo.
Questo metodo funziona correttamente con dei minimi globali mentre le
soluzioni dipendono dal punto di partenza se sono presenti dei minimi locali.
La regola implementativa :
x(n+1) = x(n) f 0 (x(n) ).

(5.77)

Se troppo piccolo ci sar una grande precisione ma i tempi si allungheranno mentre se troppo grande i tempi saranno molto brevi ma diminuir
la precisione, con oscillazioni grandi intorno al regime. Per applicazioni pi
complesse possibile prendere un valore di variabile a seconda del valore
della derivata: grande se la derivata grande (lontano dal minimo) e piccola
se la derivata piccola (vicino al minimo).
Estendendo a funzioni multidimensionali, la derivata diventa gradiente e
la regola si trasforma in:
x(n+1) = x(n) f (x(n) )

(5.78)

Prendendo come criterio lerrore istantaneo quadratico e2n :


e2n (b)

= (yn dn ) =

M
1
X

2
bk xnk dn

(5.79)

k=0

Si potrebbe procedere in modo analogo al precedente facendo tutte le derivate, ma si sceglie di utilizzare lalgoritmo iterativo:
( (n+1)
b
= b(n) e2n (b)
b(0) punto iniziale.
Si calcola il gradiente:
e2n (b)


=

e2n (b)
e2 (b)
e2 (b)
,..., n ,..., n
b0
bm
bM 1


(5.80)

e per lm esimo elemento la derivata vale:


e2n (b)
en (b)
= 2en
= 2en xnm
bm
bm

(5.81)

da cui:

2en xn
2en xn1
..
.

xn
xn1
..
.

b(n+1) = b(n)
= b(n) en

2en xnM +1
xnM +1

(5.82)

88

CAPITOLO 5. FILTRI DIGITALI


(n)

bo

bopt
o

Figura 5.28: Convergenza dei coefficienti al variare di : con piccolo


(rosso), grande (blu)

dove il 2 stato inserito nel e lo scalare en viene raccolto e moltiplicato


al vettore; n il numero di interazioni e serve una regola per decidere che
il calcolo completo, per evitare una fluttuazione infinita intorno al minimo. Questo algoritmo non richiede linversione della matrice ma ottiene la
soluzione iterativamente, poco per volta a differenza del primo algoritmo.
Solitamente, salvo casi in cui M piccolo, questultimo algoritmo quello
pi utilizzato, considerando che la complessit aumenta in modo lineare e
non cubica.
Prendere un valore di troppo elevato rischia di compromettere la stabilit del sistema nonostante il FIR. Una formula empirica per la scelta di
:
1
0<<
(5.83)
10M Px
dove Px la potenza del segnale e M il numero di prese. In figura 5.28
riportato landamento dei coefficienti per valori diversi di : se piccolo il
valore converge lentamente ma ha oscillazioni piccole, se grande arriva prima
al valore ottimo ma ha grandi oscillazioni.

5.5.3

Applicazioni filtraggio adattativo

Equalizzazione di canale
Si prenda ad esempio la trasmissione GSM, che avviene tramite il collegamento tra la stazione radio base e lutente, tipicamente tramite un telefono.
Il canale tra questi due elementi pu essere visto come un 2-porte, con porta
dingresso nella stazione radio base e porta duscita nel telefono (downlink).
Mettendo un segnale allinterno del canale, ad esempio una delta di Dirac, in
uscita si otterr un segnale con ritardi e con attenuazioni. Il ritardo dovuto agli elementi riflettenti nel cammino del segnale, che lo possono riflettere
rallentandone la propagazione.

5.5. FILTRAGGIO ADATTATIVO


Canale

Tx

H(f )

89
Equalizzatore
Heq (f ) =

1
H(f )

Rx

Canale equivalente
H

comb

(f ) = H(f ) Heq (f ) = 1

Figura 5.29: Equalizzazione di canale


Trasmettendo un segnale
P modulato ad impulsi rettangolari s(t), se il
canale ha modello h(t) = i Ai (t i ) luscita vale:
s(t) h(t) =

 X
Ai s(t) (t i ) =
Ai s(t i ).

(5.84)

Per luscita sar data dalla somma di tutte le repliche con diversi ritardi, quindi il segnale sar totalmente distorto e indecifrabile per interferenza
intersimbolo. Da notare che a causa della propagazione multicammino, il segnale non decodificabile a causa dellinterferenza intersimbolo, nonostante
lassenza di rumore.
La soluzione quella di creare un blocco, chiamato equalizzatore, prima
del ricevitore che si comporti come il reciproco del modello del canale cos
che il canale equivalente considerando i due blocchi non sia multicammino e
non sia affetto da interferenza intersimbolo, come in figura 5.29. Il problema
che la funzione di trasferimento del canale non nota ed variabile nel
tempo, quindi necessaria una stima del canale e fare in modo che Heq (f )
cambi come il reciproco di H(f ). La soluzione pi semplice da implementare
quella di utilizzare come equalizzatore un filtro adattativo (figura 5.30),
utilizzando una sequenza xn nota sia a trasmettitore che a ricevitore. Se
tutto va bene, luscita del filtro sar xn , ovvero la sequenza inviata dal trasmettitore. H(f ), quindi, pu essere trascurata, ma le due sequenze devono
essere sincronizzate tramite un protocollo di comunicazione. Si chiama xn
sequenza di sincronizzazione, inviata periodicamente o in base alla variazione del canale, che comporta un overhead di trasmissione, in quanto non
trasmette dati. Se yn = xn si deduce che:
Heq (f )

1
.
H(f )

(5.85)

Per, non detto che linversa della funzione di trasferimento dia una risposta impulsiva finita, quindi c un troncamento. Lapprossimazione migliora
aumentando le prese M del filtro. Inoltre, se il canale ha H(f ) con uno 0,
un FIR non pu bilanciarlo con un guadagno infinito per cui rester sempre
un buco di trasmissione, sempre pi stretto allaumentare di M .

90

CAPITOLO 5. FILTRI DIGITALI

Tx

xn

Canale
H(f )

yn

Heq (f )
a, b
Algoritmo en
Adattativo

+
+

d n = xn

Figura 5.30: Implementazione equalizzatore adattativo


Codifica predittiva
La codifica predittiva usata quando la sorgente soggetta a ridondanza.
La ridondanza pu essere classificata in:
statistica: legata al fatto che i campioni possono non essere indipendenti tra loro, allora parte dellinformazione di un campione pu essere
presente anche in un altro;
percettiva: linformazione eccessiva non viene percepita dallutente e
pu essere eliminata.
Lo scopo quello di ridurre la bit rate tramite la codifica di sorgente eliminando o riducendo la ridondanza.
La codifica predittiva permette di ridurre la ridondanza statistica, analizzando la storia della sequenza trasmessa per cercare di predire il campione
successivo. Ad esempio, prendendo la sequenza xn e supponendo di voler
predire il campione allistante t, necessario memorizzare landamento della
sequenza per i campioni compresi tra 0 e t 1. Traducendo questo principio
in uno schema a blocchi si ottiene il diagramma di figura 5.31. Fino al canale, i valori sono reali. Poi vanno quantizzati, codificati e messi nel canale
sotto forma di bit e la bit rate di sorgente vale:
Br = fs m

(5.86)

dove fs la frequenza di campionamento e m il numero di bit per campione.


La bit rate senza predizione data da Br0 = fs m0 quindi a parit di
frequenza di campionamento, si deve dimostrare che il m < m0 . Questo
intuibile, perch il segnale dn pi piccolo del campione t esimo di xn
xn

dn

Predittore

xn

Canale

dn

xn

xn Predittore

Figura 5.31: Schema a blocchi della codifica predittiva a regime

5.5. FILTRAGGIO ADATTATIVO

91

se lo schema predice in modo accurato. Da notare che il predittore non


pu arrivare a scegliere xn = xn perch se questo avvenisse la sorgente non
avrebbe informazione da trasmettere. Infine, se la sorgente creasse simboli
indipendenti tra loro non sarebbe possibile utilizzare questo metodo, perch
il predittore non riuscirebbe a scegliere un valore xn sensato, non apportando
vantaggi.
Se il segnale da quantizzare ha ampiezza minore allora sono sufficienti
meno livelli di quantizzazione L e si pu accorciare la stringa di bit che
identifica il campione:
L < L0 m < m0 Br < Br0 .

(5.87)

Il predittore pi semplice si basa sulla media pesata dei campioni precedenti ed chiamato LPC (Linear Predicting Coding):
xn =

M
X

ai xni .

(5.88)

i=1

In questa sommatoria vanno calcolati i coefficienti a. La sommatoria corrisponde alla funzione di trasferimento di un filtro FIR, con schema a blocchi di
figura 3.7, senza il coefficiente a0 poich quello che andrebbe a moltiplicare
il campione presente, sconosciuto al predittore. Lobiettivo del predittore
quello di rendere:
xn xn dn 0
(5.89)
e pu essere costruito con un filtraggio adattativo. Va quindi definita una
metrica per decidere se la predizione buona, come ad esempio MSE:
M SE(a) =

E[d2n ]



M
X
= E[(xn xn ) ] = E xn
ai xni .
2

(5.90)

i=1

Si definisce il criterio di minimizzare la metrica:


aopt = arg min(M SE).
a

(5.91)

Per cercare il minimo si devono fare derivate rispetto ogni componente del
vettore a:

M SE(a)

=0

a0

..
(5.92)
.
m = 1, . . . , M 1.

M SE(a) = 0
aM
Quello che si trova sempre un minimo perch le funzioni che vengono analizzate, solitamente, non hanno massimo. Facendo la derivata rispetto al

92

CAPITOLO 5. FILTRI DIGITALI

k esimo elemento del vettore a:



2 
M
X
2 


=
E xn xn
E xn
=
ai xni
ak
ak
i=1

2 





M
M
X
X

xn
= E 2 xn
ai xni
ai xni xnk =
E
ak
i=1



= 2E xn xnk + 2

i=1

M
X

ai E[xnk xni ] = 2Rx (k) + 2

i=1

M
X

ai Rx (i k)

i=1

Ipotizzando note le funzioni di autocorrelazione, si procede a calcolare a


ponendo a zero il sistema di equazioni:
M
X

ai Rx (i k) = Rx (k)

k = 1, 2, . . . , M.

(5.93)

i=1

Il sistema lineare di m equazioni esprimibile con matrici:


a1
Rx (1)
Rx (0)
Rx (1)
. . . Rx (M 1)

Rx (1)

Rx (0)
. . . Rx (M 2)

a2 Rx (2)
=

. .
..
..
..
.
..

.. ..
.
.
.
.
Rx (M )
Rx (M 1) Rx (M 2) . . .
Rx (0)
aM
{z
} | {z } |
{z
}
|
a

Invertendo la matrice R (di Toeplitz, risolvibile con lalgoritmo L-D) si


ottengono i coefficienti del predittore:
aopt = R1 r

(5.94)

Il problema conoscere le statistiche della sequenza poich Rx non sempre


nota e la sorgente pu essere non stazionaria. Nel caso in cui la sequenza
non sia stazionaria, la si divide in piccole parti e si dimostra che il processo
aleatorio stazionario localmente: la stima andr fatta per ogni intervallo
in cui stata divisa la sequenza. Se oltre che stazionario, si ipotizza un
processo stazionario ed ergodico si ottiene:
Rx (k) = E[xn xnk ] =< xn xnk >=

N
1 X
xn xnk
N

(5.95)

k=1

ovvero possibile stimare lautocorrelazione che non si conosceva.


Si definisce guadagno di predizione:
Gp =

E[x2n ]
E[d2n ]

(5.96)

5.5. FILTRAGGIO ADATTATIVO

93
+

xn

z 1

...

z 1
a0

a1

z 1
aM

dn

Stima
Rx

R1 , a

R, r

aopt

Figura 5.32: Schema a blocchi del predittore: nel caso in cui la sequenza sia
stazionaria, la parte evidenziata in blu viene fatta una sola volta, mentre se
non stazionaria il blocco viene eseguito ogni intervallo di campioni da
rendere approssimativamente stazionaria la sequenza.
dove
E[d2n ]


2 
M
X
= E xn
ai xni
=
i=1



M
M X
M
X
X
2
= E xn 2xn
ai xni +
ai aj xni xnj =
i=1

E[x2n ] 2
| {z }
Rx (0)

M
X
i=1

= Rx (0) 2

i=1 j=1

ai E[xni xn ] +
| {z }

M X
M
X

Rx (i)

M
X

ai Rx (i) +

i=1

M
X

i=1 j=1

ai

i=1

M
X

ai aj E[xni xnj ] =
{z
}
|
Rx (ji)

(5.97)

aj Rx (j i) =

j=1

{z

Predittore ottimo

= Rx (0)

M
X

Rx (i)
ai Rx (i)

i=1

allora il guadagno ottimo :


1

Gopt
p =
1

M
X
i=1

Rx (i)
aopt
i
Rx (0)

(5.98)

94

CAPITOLO 5. FILTRI DIGITALI


+

xn

dn

xn1

z 1
a1

xn

Figura 5.33: Schema a blocchi predittore a una presa


Esempio. Predittore ad una presa. Considerando figura 5.33, la predizione xn = a1 xn1 e il coefficiente :
opt
aopt
1 Rx (0) = Rx (1) a1 =

Rx (1)
Rx (0)

quindi il guadagno di predizione dato da:


Gopt
p =

1
1 aopt
1

Rx (1)
Rx (0)


1

Rx (1)
Rx (0)

2 =

(
Rx (1) = 0 Gp = 1
Rx (1) = Rx (0) Gp =

Se la correlazione tra due istanti nulla allora il guadagno di predizione


nullo, mentre se c molta correlazione, al limite Rx (1) = Rx (0), il guadagno
tende ad infinito: se la sorgente molto correlata, anche un semplice predittore ad una presa guadagna molto. Realisticamente, per, la sorgente si
dice "con molta correlazione" quando Rx (1) ' 0.6Rx (0) quindi il guadagno
Gp ' 1.56 e se si vuole un guadagno maggiore occorre aumentare le prese.
Riduzione della bit-rate
In uno schema di trasmissione come quello di figura 5.34, solitamente, si
porta il valore della dn in digitale tramite un quantizzatore per poter codificare al blocco successivo. Dopo la quantizzazione, per, c una perdita
di informazione che non pi correggibile e si propaga nel circuito (rumore
di quantizzazione). Inoltre, lerrore nel loop pu amplificarsi anche perch i
predittori che lavorano con segnali diversi.
Quello che si pu fare portare allinterno del loop di codifica il quantizzatore come in figura 5.35 in modo che i segnali ai due predittori siano gli
stessi. Cos non si verifica lamplificazione dellerrore nel loop di decodifica.
Le equazioni ai nodi sono:
xn xn = dn
dn + x
=x
n .
n

(5.99)
(5.100)

5.5. FILTRAGGIO ADATTATIVO


dn

xn

95

dn

xn

x
n

dn = dn + en

Codificatore

Decodificatore

x
n

Figura 5.34: Schema a blocchi per la riduzione della bit-rate utilizzando un


predittore
Si vuole calcolare il rapporto segnale-rumore di quantizzazione:
SQN RP =

E[d2n ]
E[d2n ]
E[x2n ]
=

= 

E (dn dn )2
E (dn dn )2 E[x2n ]

1
1
E[x2n ]
=
SQN R

=
2

Gp E (dn dn )
Gp

(5.101)

da cui si dimostra che il predittore ha SQN R:


SQN R = GP SQN RP .

(5.102)

Questa legge dice che se si ha un guadagno di predizione possibile andare


peggiorare della stessa quantit il rapporto segnale-rumore di quantizzazione
(abbassando il numero di livelli) e andando a diminuire la frequenza di lavoro.
Esempio. Riduzione bit rate. Dato un guadagno di predizione GP =
4(6dB), si pu ridurre lSQN RP di 6dB mantenendo costante SQN R. Questo permette di togliere un bit al quantizzatore di ridurre la frequenza:
8 bit (Br = 8fs ) 7 bit (Br = 7fs ).

96

CAPITOLO 5. FILTRI DIGITALI

xn

+
+

dn

+
+

x
n

x
n

Figura 5.35: Quantizzatore allinterno del loop di codifica

Appendice

Formula dei residui


Dimostrazione. Partendo dallipotesi di avere una funzione di trasferimento
del tipo:
N (z)
X(z) =
D(z)
con n poli singoli, la si pu scrivere nella forma di fratti semplici:
X(z) =

n1
X
i=0

n1

X Rj
Ri
Ri
=
+
.
s pi
s pi
s pj
j=0
j6=i

Manipolando lequazione per calcolare il residuo i esimo:


n1

Ri =

X Rj
N (z)
(s pi )
(s pi )
D(z)
s pj
j=0
j6=i

e facendo tendere s pi si pu eliminare il secondo termine mentre il primo


non si elimina, poich contiene al suo interno (s pi ) che viene semplificato:
Ri = lim

spi


N (z)
(s pi ) = X(z)(s pi ) s=p
i
D(z)

97

Appendice

Tipologie di filtri FIR


B.1

Tipo I: prese dispari, coefficienti simmetrici

Dimostrazione fase lineare. Si divide la funzione di trasferimento separando


il vettore dei coefficienti:
M
1
X

H(z) =

M 1
1
2

bk z

k=0

bk z

M
1
X

bk z k

k= M21

k=0

e successivamente si estrae il coefficiente centrale per rendere le sommatorie


della stessa dimensione del numero dei coefficienti simmetrici:
M 1
1
2

H(z) =

bk z k + b M 1 z

M 1
2

k=0

M
1
X

bk z k .

k= M21 +1

Si applica la simmetria dei coefficienti per la fase lineare:


M 1
1
2

H(z) =

bk z k + b M 1 z

k=0

M 1
2

M
1
X

bM 1k z k .

k= M21 +1

Si applica il cambio di variabile ponendo n = M 1 k e agli estremi si


ottiene:
k=

M 1
M 1
+ 1 n =
1
2
2
k = M 1 n = 0
98

B.2. TIPO III: PRESE DISPARI, COEFFICIENTI ANTISIMMETRICI99


quindi lequazione diventa:
M 1
1
2

H(z) =

bk z k + b M 1 z

M 1
1
2

k=0
M 1
1
2

M21

bk z kM +1 =

k=0



M 1
k
kM +1
+ b M 1 z 2 =
bk z + z
2

k=0

=z

M21

M 1
1 


2
X
k M21
k+ M21
b M 1 +
+z
bk z
2

k=0

passando alle frequenza e applicando la formula di Eulero si ottiene:


j2F M21

M 1
1
2

H(F ) = e

b M 1 +

k=0




M 1
.
2bk cos 2F k
2

Calcolando largomento della funzione di trasferimento, ponendo per semplicit b M 1 = 0, si ottiene che la fase data dallo sfasamento del fasore a cui
2
si somma una quantit che pu essere nulla (se i coefficienti sono positivi) o
(se i coefficienti sono negativi):

  
M 1
0
.
arg[H(F )] = 2F
+

2
che lineare rispetto alle frequenze.

B.2

Tipo III: prese dispari, coefficienti antisimmetrici

Dimostrazione fase lineare. Si divide la funzione di trasferimento separando


il vettore dei coefficienti:
M
1
X

H(z) =

M 1
1
2

bk z k =

k=0

bk z k +

M
1
X

bk z k

k= M21

k=0

e successivamente si estrae il coefficiente centrale per rendere simmetriche le


serie:
M 1
1
M
1
2
X
X
M 1
H(z) =
bk z k + b M 1 z 2 +
bk z k .
2

k=0

k= M21 +1

Si applica la simmetria dei coefficienti per la fase lineare:


M 1
1
2

H(z) =

X
k=0

bk z

+ b M 1 z
2

M21

M
1
X
k= M21 +1

bM 1k z k .

100

APPENDICE B. TIPOLOGIE DI FILTRI FIR

Si applica il cambio di variabile ponendo n = M 1 k e agli estremi si


ottiene:
M 1
M 1
k=
+ 1 n =
1
2
2
k = M 1 n = 0
quindi lequazione diventa:
M 1
1
2

H(z) =

bk z k + b M 1 z

M 1
1
2

k=0

= b M 1 z

bk z kM +1 =

k=0

M 1
1
2



X
k
kM +1
=
bk z z
+

M 1
2

=z

M21

k=0

M21

M 1
1 


2
X
k M21
k+ M21
b M 1
bk z
z
2

k=0

passando alle frequenza e applicando la formula di Eulero si ottiene:


H(F ) = ej2F

M 1
2

M 1
1




2
X
M 1
2jbk sin 2F k
.
b M 1 +
2
2

k=0

Ipotizzando per semplicit che il coefficiente centrale sia nullo e sfruttando

lidentit ej 2 = j, si ottiene:
H(F ) = e

j2F

M 1
2

j 2

1
1
 MX
2

k=0

= e

j 2F M21 + 2



M 1
2bk sin 2F k
2

1
1
  MX
2

k=0

M 1
2bk sin 2F k
2


.

che la fase data dallo sfasamento del fasore a cui si somma una quantit
che pu essere nulla (se i coefficienti sono negativi) o (se i coefficienti sono
positivi):


 
M 1

0
+ +
.
arg[H(F )] = 2F

2
2
che lineare rispetto alle frequenze.

B.3

Tipo IV: prese pari, coefficienti antisimmetrici

Dimostrazione fase lineare. Partendo dalla funzione di trasferimento, si divide la sommatoria:


H(z) =

M
1
X
k=0

M
2

bk z

1
X
k=0

bk z

M
1
X
k= M
2

bk z k

B.3. TIPO IV: PRESE PARI, COEFFICIENTI ANTISIMMETRICI

101

per poi applicare la simmetria dei coefficienti:


M
2

H(z) =

1
X

bk z

M
1
X

bM 1k z k .

k= M
2

k=0

Applicando un cambio di variabile n = M 1 k, gli estremi della seconda


sommatoria diventano:
M
M
n =
1
2
2
k = M 1 n = 0
k=

quindi, modificando gli estremi, si giunge ad un risultato compatto:


M
2

M
2

H(z) =

1
X

bk z

1
X

M
2

bn z

nM +1

n=0

k=0

Si raccoglie il fattore z

H(z) = z

M 1
2

1
X


bk z k z kM +1 .

k=0

M21

M
2

1
X



k+ M21
k M21
bk z
z
=

k=0

= z

M
2

1
X

M2+1



k M21
k+ M21
bk z
z

k=0

e si sfrutta la formula del seno di Eulero si passando alle frequenze:


j2F M21

H(F ) = e

M
2

1
X

j2F k M21

bk e

j2F k M21



k=0
j2F

= e

M 1
2

M
2

1
X
k=0

j2F

= e

M 1
2

j 2




M 1
bk 2j sin 2F k
=
2

M
2

1
X
k=0

j 2F M21 + 2

= e



M 1
2bk sin 2F k
=
2

1
M
2
X
k=0




M 1
2bk sin 2F k
.
2

Guardando largomento dellesponente e sfruttando lidentit ej 2 = j, si


vede che la fase data da una rampa di pendenza 2F ( M21 ) traslata di

102

APPENDICE B. TIPOLOGIE DI FILTRI FIR

a cui si somma o 0 rispettivamente se i coefficienti in sommatoria sono


negativi o positivi. Matematicamente, il tutto si riassume in:


 

M 1
0
+ +
arg[H(F )] = 2F
.

2
2
che dimostra che la fase del filtro FIR di tipo IV lineare.

Appendice

Approfondimento Matlab
C.1

Studio delle funzioni di trasferimento

C.1.1

Calcolo dei fratti semplici tramite Matlab

Per il calcolo dei residui, dato il numeratore B(z) = b0 + b1 z 1 + + bm z m


e denominatore A(z) = a0 + a1 z 1 + + an z n , si utilizza
[r,p,k] = residuez(b,a)
che restituisce rispettivamente il valore dei residui r, i poli p e il quoziente
k. Applicando il comando allesempio di sezione
[r,p,k]=residuez([2 -1],[3 -7/4 1/4])
r =
-1.3333
2.0000
p =
0.3333
0.2500
k =
[]
allineandosi coi calcoli effettuati, si ottengono due residui di valore 4/3 e 2
e poli 1/3 e 1/4, con quoziente nullo.

C.1.2

Graficare poli e zeri tramite Matlab

Per il plot dei poli e degli zeri si utilizza il comando


zplane(z,p)
zplane(b,a)
103

104

APPENDICE C. APPROFONDIMENTO MATLAB


1

0.8
0.6

Imaginary Part

0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
-1
-1

-0.5

0.5

Real Part

Figura C.1: Risultato di zplane


dove la prima versione si utilizza per graficare poli e zeri noti (disposti in
vettori colonna) mentre la seconda versione serve per calcolarli direttamente
dalla funzione di trasferimento dover b ed a sono vettori dei coefficienti del
numeratore B(z) = b0 + b1 z 1 + + bm z m e denominatore A(z) = a0 +
a1 z 1 + + an z n . Per lesempio di sezione
zplane([2 -1],[3 -7/4 1/4])
da come risultato il grafico di figura C.1.

C.2
C.2.1

Implementazione filtri su Matlab


Calcolo della funzione di trasferimento

Per calcolare la funzione di trasferimento H(z) di un sistema numerico si


pu utilizzare il comando
[H,f]=freqz(b,a,N,Fs)
La funzione freqz() calcola N campioni complessi equispaziati fra 0 e Fs/2
(per simmetria Hermitiana), con Fs = 1/T , della trasformata di Fourier
corrispondente alla funzione di trasferimento razionale. In particolare, gli

C.2. IMPLEMENTAZIONE FILTRI SU MATLAB

105

N valori della risposta in frequenza vengono posti nel vettore H, mentre i


rispettivi valori della frequenza, in Hz, vengono posti nel vettore f.

C.2.2

Progetto filtro

Si vuole progettare un filtro FIR a due prese. Supponendo di avere coefficienti b0 = b1 = 1/2, si ha:
yn =

xn xn1
xn + xn1
1 1
+
=
H(z) = + z 1 .
2
2
2
2 2

In Matlab si inseriscono i coefficienti in un vettore


b=[0.5 0.5]
Si calcolano i poli
zplane(b,1)
Per calcolare la funzione di trasferimento dalla H(z):
H(z) =

1 1 1
+ z
2 2

H(F ) =

z=ej2F

1 1 j2F
+ e
2 2

poi possibile calcolare il modulo:


s
2 
2
1 1
1
|H(F )| =
+ cos(2F ) +
sin(2F ) =
2 2
2
r

1 1
1
1
+ cos2 (2F ) + cos(2F ) + sin2 (2F ) =
4 4
2
4



1 1
f
+ cos 2
.
2 2
fs

Su Matlab possibile fare il grafico del modulo al quadrato |H(z)|2 con la


funzione
freqz(b,1,N,fs)
dove b il vettore di coefficienti del numeratore, 1 il valore del denominatore
del filtro FIR, N il numero di campioni del grafico e fs la frequenza di
campionamento. Il risultato ottenuto il grafico di figura C.2a. Si vede che
il plot arriva fino alla frequenza f2s perch c simmetria.
Invertendo il segno in modo alternato si ottiene un passa-alto. Questo
perch equivale a modulare la risposta impulsiva con un cos(2f0 t), che
porter ad avere curve a f0 . Ripetendo i passaggi con un vettore b=[0.5
-0.5] si ottiene il risultato di figura C.2b.

106

APPENDICE C. APPROFONDIMENTO MATLAB

Magnitude (dB)

-10
-20
-30
-40
-50
-60

1000

2000

3000

4000

5000

6000

7000

8000

9000

10000

7000

8000

9000

10000

Frequency (Hz)
0

Phase (degrees)

-20
-40
-60
-80
-100

1000

2000

3000

4000

5000

6000

Frequency (Hz)

(a) Filtro con coefficienti b0 = b1 = 1/2


0

Magnitude (dB)

-10
-20
-30
-40
-50
-60

1000

2000

3000

4000

5000

6000

7000

8000

9000

10000

7000

8000

9000

10000

Frequency (Hz)

Phase (degrees)

100
80
60
40
20
0

1000

2000

3000

4000

5000

6000

Frequency (Hz)

(b) Filtro con coefficienti b0 = 1/2 e b1 = 1/2

Figura C.2: Filtro FIR a due prese

C.2. IMPLEMENTAZIONE FILTRI SU MATLAB

C.2.3

107

Campionamento passa-banda GSM in Matlab

Il primo listato quello corrispondente allesempio sul GSM di pagina 36, che
permette di calcolare tutti i possibili intervalli di frequenza a cui permesso
campionare.
%Esempio GSM
fo=900e6;
B=270e3;
%Calcolo frequenze del segnale
f1=fo-B/2;
f2=fo+B/2;
%Calcolo il massimo valore di m
mmax=floor(f2/B);
%Calcolo intervallo di frequenze possibili
for m=1:mmax,
fsmin=2*f2/m;
fsmax=2*f1/(m-1);
interv=fsmax-fsmin;
fprintf(1,m=%d min=%f Hz max=%f Hz
int=%f Hz \n,m,fsmin,fsmax,interv);
end

C.2.4

Grafico di Vaughan su Matlab

Questo secondo listato permette di fare il grafico di Vaughan. Il grafico di figura C.3 permette di vedere, in blu, le frequenze di campionamento possibili
e di vederne graficamente il margine derrore. Ad esempio, per f2 /B = 3 si
possono campionare in tutti i valori intercettati dalla verticale ed il margine
derrore tanto pi grande quanto pi ampio il segmento blu intercettato.
Infatti, si potrebbe campionare a fs /B = 2 ma il campionamento funzionerebbe solo in un punto senza aver possibilit di errore. La parte superiore
del grafico corrisponde al classico teorema di Shannon dove si campiona al
doppio della frequenza del segnale, infatti oltre alla frequenza di Nyquist
possibile scegliere una qualsiasi frequenza.
% Grafico di Vaughan
B=1;
f2=[B/2:0.01*B:10*B];
%Calcolo segmenti
for i=1:length(f2),
mmax=floor(f2(i)/B);
for m=1:mmax,
fsmin=2*f2(i)/m;
fsmax=2*(f2(i)-B)/(m-1);

108

APPENDICE C. APPROFONDIMENTO MATLAB


Fig. 4 paper di Vaughan TSP 1991

20
18
16
14

f s/B

12
10
8
6
4
2
0

f 2 /B

Figura C.3: Grafico di Vaughan


if fsmax==inf,fsmax=100; end
hold on,plot([f2(i) f2(i)],[fsmin fsmax],b);
end
end
xlabel(f_2/B),ylabel(f_s/B),
title(Fig. 4 paper di Vaughan TSP 1991),ylim([0 20]);

10

C.3. QUANTIZZAZIONE IN MATLAB

C.3

109

Quantizzazione in Matlab

Con questo secondo listato Matlab si effettua una quantizzazione a L = 63


livelli con fondoscala M = 10 e se ne calcola il grafico.
%Quantizzazione
%Dati
M=10;
L=63;
q=2*M/(L-1);
x=[-20:0.01:20];
%Calcolo
xq=q*round(x/q);
for i=1:length(x),
if abs(x(i))>M,
xq(i)=sign(x(i))*M;
end
end
%Grafico
plot(x,xq),
title(Grafico quantizzazione),
xlabel(x),
ylabel(q(x));
Il risultato riportato in figura C.4a, dove si vedono gli scalini della quantizzazione lineare che approssima il caso ideale della retta passante per lorigine.
Tanto pi i livelli di quantizzazione aumentano, tanto pi il sistema sar preciso e gli scalini saranno sempre pi piccoli fino ad essere esattamente la retta
per L . Si noti che oltre al valore di fondo scala la quantizzazione "clippa" tutti i possibili valori di x > 10 al livello massimo disponibile e lo stesso
fa anche per valori negativi.

C.3.1

Errore di quantizzazione in Matlab

Estendendo il programma di paragrafo C.3, possibile calcolare lerrore di


quantizzazione.
%Estensione programma precedente
e=x-xq;
figure,plot(x,e),
title(Grafico errore quantizzazione),
xlabel(x),
ylabel(e(x));
Il comportamento dellerrore riportato in figura C.4b, dove si vede che per
valori allinterno del fondo scala si comporta come unonda a dente di sega,

110

APPENDICE C. APPROFONDIMENTO MATLAB


Grafico quantizzazione

10
8
6
4

q(x)

2
0
-2
-4
-6
-8
-10
-15

-10

-5

10

15

(a) Grafico della quantizzazione lineare


Grafico errore quantizzazione

5
4
3
2

e(x)

1
0
-1
-2
-3
-4
-5
-15

-10

-5

(b) Grafico dellerrore causato dalla quantizzazione

Figura C.4: Risultati Matlab

10

15

C.3. QUANTIZZAZIONE IN MATLAB

111

Campionamento brano audio con 63 livelli

0.8

0.6

0.4

0.2

-0.2

-0.4

-0.6

-0.8

50

100

150

200

250

300

350

400

450

Figura C.5: Quantizzazione audio


che raggiunge il massimo quando il segnale x si trova a met di un livello di
quantizzazione. Oltre il fondo scala, invece, lerrore diverge.

C.3.2

Quantizzazione brano audio

Per vedere leffetto dellapprossimazione dovuto alla quantizzazione si analizza un brano audio. Si ottiene il risultato di figura C.5.
%Campionamento audio
filename=Brano;
fileesuffix=[filename .mp3];
[y,fs] = audioread(fileesuffix);
%Singolo canale
x=y(:,1);
%Normalizzazione: evito il clipping
mmax=max(abs(x));
x=x/mmax*M;
%Quantizzazione
xq=quantizzo(M,q,x);
plot(x(300000:300400)),

112

APPENDICE C. APPROFONDIMENTO MATLAB

title(Campionamento brano audio con 63 livelli);


hold on, stem(xq(300000:300400),r);

Elenco delle figure

1.1
1.2
1.3

Esempio sequenza reale . . . . . . . . . . . . . . . . . . . . .


Sequenze base . . . . . . . . . . . . . . . . . . . . . . . . . . .
Ripetizione periodica in frequenza . . . . . . . . . . . . . . . .

1
2
3

2.1
2.2

2.5
2.6
2.7
2.8

Spazio dei poli delle trasformate . . . . . . . . . . . . . . . . .


Regione di convergenza: in rosso c la zona vietata mentre
in azzurro quella accettata. Vengono riportati sia il polo (in
z=1) che lo zero (in z=0). . . . . . . . . . . . . . . . . . . . .
Gradino anticausale . . . . . . . . . . . . . . . . . . . . . . .
Gradino anticausale. Si disegna in rosso la zona vietata mentre in azzurro quella accettata. Vengono riportati sia il polo
(in z=1) che lo zero (in z=0). . . . . . . . . . . . . . . . . . .
Esponenziale monolatero per 0 < a < 1 . . . . . . . . . . . . .
Classificazione delle regioni di convergenza. . . . . . . . . . .
Sequenza xn = an un bn un1 con 0 < a < 1 e 0 < b < 1. . .
Disposizione dei poli e dello zero di xn = nan un . . . . . . . .

10
10
12
13
15

3.1
3.2
3.3
3.4
3.5
3.6
3.7
3.8

Schema di un sistema LTI . . . . . . . . . . . . .


Risposte impulsive nel calcolo della convoluzione
Calcolo grafico della convoluzione . . . . . . . . .
Sequenza duscita . . . . . . . . . . . . . . . . . .
Esempio di poli che garantiscono la stabilit. . .
Schema a blocchi di un filtro IIR . . . . . . . . .
Schema a blocchi di un filtro FIR . . . . . . . . .
Filtri IIR in parallelo . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.

21
23
24
25
27
28
28
30

4.1
4.2
4.3
4.4
4.5

Blocco campionatore . . . . . . . . . . . . . . . . . . . . . . .
Esempio di funzione G(f ) che elimina le ripetizioni periodiche
Schema a blocchi conversione digitale-analogico circuitale . .
Campionamento passa-banda a fs . . . . . . . . . . . . . . . .
Grafici di quantizzazione: in tratteggiato la curva ideale . . .

31
32
33
35
38

2.3
2.4

113

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

9
9

114

ELENCO DELLE FIGURE

4.6
4.7
4.8
4.9

Errore o rumore di quantizzazione . . . . . . . . . .


Rumore in caso di sovracampionamento . . . . . . .
Schema a blocchi del noise shaping del primo ordine
Effetto del noise shaping . . . . . . . . . . . . . . . .

.
.
.
.

39
41
43
44

5.1
5.2
5.3
5.4
5.5
5.6
5.7
5.8

Grafo di un filtro IIR . . . . . . . . . . . . . . . . . . . . . . .


Passaggi per arrivare alla forma diretta di tipo 2 . . . . . . .
Esempi di coefficienti per FIR a fase lineare . . . . . . . . . .
Fase lineare FIR . . . . . . . . . . . . . . . . . . . . . . . . .
Relazione DTFT e DFT . . . . . . . . . . . . . . . . . . . . .
Esempio di traslazione circolare . . . . . . . . . . . . . . . . .
Rappresentazione traslazione circolare . . . . . . . . . . . . .
Sequenza di campioni di lunghezza indefinita mappata in sotto
blocchi di lunghezza L . . . . . . . . . . . . . . . . . . . . . .
Fast Block Convolution . . . . . . . . . . . . . . . . . . . . .
Schema Fast Correlation . . . . . . . . . . . . . . . . . . . . .
Diagramma di flusso di un progetto . . . . . . . . . . . . . . .
Esempi di maschera di progetto . . . . . . . . . . . . . . . . .
Maschera per un filtro passa-basso in decibel . . . . . . . . .
Spettro della finestra e spettro del filtro: mappatura dei lobi .
Funzione di trasfermento del filtro da realizzare con metodo
del campionamento in frequenza . . . . . . . . . . . . . . . . .
Maschera filtro analogico . . . . . . . . . . . . . . . . . . . . .
Disposizione poli Butterworth . . . . . . . . . . . . . . . . . .
Compressione di frequenza . . . . . . . . . . . . . . . . . . . .
Grafo in forma di tipo II trasposta . . . . . . . . . . . . . . .
Grafo filtro IIR secondo ordine di esempio . . . . . . . . . . .
Schema di un circuito multi-rate . . . . . . . . . . . . . . . .
Segnali multiplexati campionati a frequenza fs : selezionando
un solo segnale possibile campionare a frequenze minori. . .
Decimazione . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Interpolazione nel tempo . . . . . . . . . . . . . . . . . . . . .
Spettri dei segnali dellinterpolazione . . . . . . . . . . . . . .
Schema a blocchi del Rate Changer . . . . . . . . . . . . . . .
Schema filtro adattativo . . . . . . . . . . . . . . . . . . . . .
Convergenza dei coefficienti al variare di : con piccolo
(rosso), grande (blu) . . . . . . . . . . . . . . . . . . . . . .
Equalizzazione di canale . . . . . . . . . . . . . . . . . . . . .
Implementazione equalizzatore adattativo . . . . . . . . . . .
Schema a blocchi della codifica predittiva a regime . . . . . .

45
47
50
51
54
55
56

5.9
5.10
5.11
5.12
5.13
5.14
5.15
5.16
5.17
5.18
5.19
5.20
5.21
5.22
5.23
5.24
5.25
5.26
5.27
5.28
5.29
5.30
5.31

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

60
61
62
63
65
65
67
69
71
72
76
77
78
79
80
80
81
82
83
84
88
89
90
90

ELENCO DELLE FIGURE

115

5.32 Schema a blocchi del predittore: nel caso in cui la sequenza


sia stazionaria, la parte evidenziata in blu viene fatta una
sola volta, mentre se non stazionaria il blocco viene eseguito
ogni intervallo di campioni da rendere approssimativamente
stazionaria la sequenza. . . . . . . . . . . . . . . . . . . . . .
5.33 Schema a blocchi predittore a una presa . . . . . . . . . . . .
5.34 Schema a blocchi per la riduzione della bit-rate utilizzando un
predittore . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.35 Quantizzatore allinterno del loop di codifica . . . . . . . . . .
C.1
C.2
C.3
C.4
C.5

Risultato di zplane . .
Filtro FIR a due prese
Grafico di Vaughan . .
Risultati Matlab . . .
Quantizzazione audio .

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

93
94
95
96
104
106
108
110
111

Elenco delle tabelle

2.1
2.2

Tabella riassuntiva delle propriet della trasformata Z . . . .


Tabella delle antitrasformate . . . . . . . . . . . . . . . . . .

15
18

5.1

Tipologie configurazioni FIR . . . . . . . . . . . . . . . . . . .

52

116