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
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
45
45
45
46
46
48
49
49
53
53
55
57
63
63
64
70
79
79
81
84
84
86
88
97
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
103
103
103
103
104
104
105
107
107
109
109
111
Capitolo
Segnali a tempo-discreto
1.1
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.
x1
x2
x3
x4
x1
1
n
0
n
1
n
1
1
0
n
1
E=
|xn |2 .
(1.3)
n=
P = lim
(1.4)
n=N
(1.5)
+
X
xn xnk
(1.6)
n=
(1.7)
XS (f )
f
T1
1
T
F
1
1.1.1
(1.8)
+
X
xn ej2f nT ,
(1.10)
n=
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
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)
(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)
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
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=
1/2
j2kF
1/2
ej2kF dF
=
j2k
1/2
=
1/2
ejk ejk
= 0.
j2k
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.
+
X
xn z n .
(2.1)
n=
z=ej2f T
z n
2.1.1
Esempi
Im{z}
Im{z}
Re{z}
Re{z}
un e
j2F n
n=
+
X
j2F n
n=0
+
X
qn,
q = ej2F
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
2.1. TRASFORMATA Z
9
Im{z}
Re{z}
1
X
xn z n =
n=
z n =
n=
+
X
zn = 1
n=1
+
X
n=0
zn
10
Re{z}
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
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 ,
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
N (z)
D(z)
n=n1
n=
n=
Per avere unidea grafica riferirsi a figura 2.6, dove vengono evidenziati in
ordine i casi trattati.
12
Im{z}
Im{z}
Re{z}
Im{z}
Re{z}
Im{z}
R+
R
Re{z}
Re{z}
2.1. TRASFORMATA Z
13
n
0
2.1.3
(2.2)
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
(2.4)
14
xnk z
+
X
n=
xm z
(m+k)
=z
+
X
m=
xm z m = X(z)z k .
m=
{z
X(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
(2.6)
(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) = X(z)z k
d
X(z)
dz
S(z) = X(z)Y (z)
S(z) = z
Re{z}
a
16
2.1.4
Antitrasformata Z
(1 z 2 )2
1 13 z 1
+
.
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
}
z 4
1 13 z 1
| {z
}
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
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 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)
M N
b0 X
cl z l
a0
l=0
|
{z
}
K mk
Rki
b0 X X
+
a0
(1 pk z 1 )i
k=1 i=1
|
{z
}
(2.10)
Resto
(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
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
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
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
2.1. TRASFORMATA Z
19
Si ottenuto che:
1
1
4
+2
,
X(z) =
3 1 31 z 1
1 14 z 1
ROC =
1
|z| >
3
20
Capitolo
(3.1)
yn = xn hn =
xk hnk = hn xn =
k=
3.1
+
X
hk xnk .
(3.3)
k=
Stabilit
xn
LT I
yn
(a)
(3.4)
LT I
(b)
hn
22
+
X
|hk | < +.
(3.5)
k=
=N
|hnk | = N
3.2
k=
|hm |.
m=
k=
sufficiente che
k=
+
X
P+
m= |hm |
Causalit
(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=
|an un | =
+
X
|an |
n=0
3.2. CAUSALIT
23
hk
n
1
hkn
n
n + 1n + 2n + 3n + 4n + 5
hnk
n 5n 4n 3n 2n 1
24
xn , hk
n
N 1
xn , hk
n
N 1
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.
3.2. CAUSALIT
25
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
Pn
k=0 q
n
X
ak
k=0
n
1q n+1
1q
diventa:
1 an+1
an a1
=
1 a1
1 a1
N
1
X
hnk =
k=0
N
1
X
k=0
ank = an
N
1
X
ak = an
k=0
1 aN
1 a1
n
Figura 3.4: Sequenza duscita
26
3.3
Se la sequenza xn F-trasformabile:
XS (f ) YS (f ) = XS (f )FS [{hn }] = XS (f )HS (f )
(3.8)
(3.9)
(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
3.4
ai
X dj
di
y(t)
=
bj j x(t)
dti
dt
j
(3.13)
27
Im{z}
Re{z}
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
N
X
M
X
bk Z[xnk ]
k=0
N
X
ar Z[ynr ]
(3.16)
ar Y (z)z r
(3.17)
r=1
M
X
k=0
bk X(z)z k
N
X
r=1
28
xn
b0
z 1
b1
z 1
bM
b2
yn
aN
a2
z 1
a1
z 1
z 1
z 1
z 1
b0
z 1
b1
b2
b3
yn
Y (z)
=
X(z)
bk z k
k=0
N
X
1+
= H(z)
(3.18)
ar z r
r=1
yn =
M
X
bk xnk
k=0
M
Y (z) X
H(z) =
=
bk z k
X(z)
k=0
(3.19)
29
3.5
(3.20)
30
xn
yn
1
1+a1 z 1
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)
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
x(t)
xn = x(nT ),
Campionatore
T = 1
fs
32
CAPITOLO 4. CAMPIONAMENTO
X(f ), XS (f )
X(f
k
T)
X(f +
fs
fm
fm
k
T)
fs
(4.3)
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)
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)
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)
34
CAPITOLO 4. CAMPIONAMENTO
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)
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
35
m=1
m=2
m=3
m=4
f
3f2s
fs
f2s
fs
2
fs
3f2s
36
CAPITOLO 4. CAMPIONAMENTO
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)
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
4.2.2
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
4.3
Quantizzazione
x
n = xn e n
(4.19)
4.3. QUANTIZZAZIONE
39
en
q/2
M
xn
M
q/2
P (en )
1
q
2q
q
2
en
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)
E[x2n ]
Px
E[x2n ]
E[x2n ] 2
=
=
12
=
3L .
Pe
E[e2n ]
q2
M2
(4.21)
M2
E[x2n ]
(4.22)
3L2
FC
(4.23)
(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)
41
SX (f )
S (f )
f
fs
fm
fm
fs
S (f )
f
fs
f2s
fm
fm
fs
2
fs
4.4
4.4.1
Noise Shaping
Sovracampionamento
fs
=fm
2
f2s =fm
S (f ) df = S 2fm =
q2
12
(4.26)
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 )
(4.30)
(4.31)
(4.32)
4.4.2
X(z) = X(z)
= 0 X(z)
= E(z)
1
X(z)
1 z 1
z 1
E(z) = X(z)
= 0 X(z)
=
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)
44
CAPITOLO 4. CAMPIONAMENTO
S (f )
f
f2s
fm
fm
fs
2
S
2
S 1 ej2F
f
f2s
fm
fm
fs
2
Capitolo
Filtri digitali
5.1
5.1.1
k=0
3
X
1+
(5.1)
ak z k
k=1
xn
b0
z 1
b1
z 1
b3
b2
yn
a3
z 1
a2
a1
z 1
z 1
46
5.1.2
5.1.3
Forme in cascata
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)
b0
b1
a1
b2
a2
b3
a3
47
yn
z 1
z 1
z 1
z 1
z 1
z 1
b0
b1
a1
b2
a2
b3
a3
z 1
yn
z 1
z 1
z 1
z 1
z 1
xn
z 1
yn
z 1
a1
b1
z 1 z 1
a2
a3
b2
z 1 z 1
b3
xn
yn
z 1
a1
b1
a2
z 1
b2
a3
z 1
b3
48
(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)
(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
M
N
X
cl z
l=0
{z
FIR
N
X
Rk
.
1 pk z 1
k=0
{z
}
|
(5.5)
49
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
M
1
X
bk z
j2F
H(F ) = H(z = e
k=0
)=
M
1
X
bk ej2kF .
(5.6)
k=0
k = 0, 1, ..., M 1
(5.7)
50
b4
b1
b0
b3
b5
b2
b2
b3
n
n
b1
b4
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
M
1
X
M/21
bk z
k=0
bk z
M
1
X
k=0
bk z k
k=M/2
M
1
X
M/21
bk z
k=0
bk z
k=0
M
1
X
bM 1k z k
k=M/2
H(z) =
M/21
bk z
k=0
M/21
bk z
n=0
+nM +1
X
k=0
H(z) = z
M21
X
k=0
bk z k + z kM +1 .
M 1
2
k+ M21
+k M21
bk z
+z
.
51
Numero positivo
F
Numero negativo
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
=
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
52
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
5.2
5.2.1
53
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
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
(5.11)
54
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.
XS (F ) =
Xq =
N
1
X
xn ej2nF
n=0
N
1
X
xn ej2nq/N .
n=0
XS (F ), Xq
F
Figura 5.5: Relazione DTFT e DFT
x0
x1
x0
x2
x3
3
x4
4
x1
x0
x2
x4
n
55
x3
4
x3
n
x1
x2
x4
1
1
N:
XS (qF ) =
N
1
X
xn ej2nq/N = Xq
(5.12)
n=0
XS (qF ) = DF T [xn ]
(5.13)
5.2.2
Traslazione circolare
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
x2
x3
x1
xn
x4
x0
x0
x5
x1
xn
x2
(a) Rappresentazione di
un vettore in traslazione
circolare.
x5
e2
x4
en
e3
x3
e1
e4
e0
e5
(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
57
N
1
X
n=0
n=0
5.2.3
xn ej2nq/N = Xq ej2kq/N .
{z
DF T [xn ]=Xq
Convoluzione circolare
N
1
X
xk y(nk) ,
n = 0, 1, . . . , N 1
(5.18)
k=0
N
1
X
xk ynk
(5.19)
k=0
2
X
k=0
58
q = 0, 1, . . . , N 1. (5.20)
(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
{z
DF T [xn ]=Xq
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
59
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
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
(5.26)
60
...
x1
xL1
...
xL+1
xL
(0)
x2L1
(1)
xn
xn
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)
Zero
Padding
FFT
(k)
xn
61
Zero
Padding
IFFT
(k)
zn
FFT
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=
62
FFT
Time
Reversal
Zero
Padding
IFFT
Rxy (n)
FFT
Rxy [n] =
xk ykn
(5.33)
k=0
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
63
Progetto di filtri
5.3.1
Specifiche
di
Sintesi
Implementazione
progetto
Test
64
1 + 1
1 1
(5.36)
5.3.2
(5.37)
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)
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
|H(F )|dB
Rp(dB)
F
As(dB)
66
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)
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 )
67
|W (F )|
M
1
M
2
M
...
F
1
|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.
68
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)
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)
(5.47)
n=0
69
|Hd (F )|
(a) Modulo
arg[H(F )]
(b) Fase
70
5.3.3
71
|Ha (F )|2
1
1
1+2
1
A2
F
fp
fa
RpdB = 10 log10
(5.49)
AsdB
(5.50)
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
72
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
7
4
p3 = 2fc ej
3
4
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
73
b:
10 log10
{z
|
AsdB
1
= 10 log10
A2}
fa
fc
1+
!2N !
.
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)
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
1 + s T2
1 s T2
(5.57)
75
1
arc tan(f T ).
2
2 ejF ejF ejF
= j tan(F ).
jF
jF
jF
Te
e
+e
T
f=
(5.58)
(5.59)
1
tan(Fp ),
T
fa0 =
1
tan(Fa ).
T
(5.60)
1
.
1 + sRC
76
|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
H(z) =
a1
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
77
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
xn
s2 +
b0
2c
.
2c s + 2c
yn
z 1
b1
a1
78
0.0156
z 1
1.6173
0.0311
z 1
0.6796
0.0956
5.4
79
Sistemi multi-rate
= x(nT ) =
X
n
nT 0 nT
.
xn sinc
T
(5.62)
(5.63)
fs
M:
5.4.1
Decimazione
H1 (f )
fs
Rate
Changer
(5.64)
H2 (f )
fs0
yn
80
|XS (F )|
fm
|XS (F )|
0
fm
x1
x4
x0
x2
x03 = x6
x6
x01 = x0
x3
x02 = x3
x5
n
n
M 1
81
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
82
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.
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.
83
Filtro
Antialiasing
fs
Decimatore
Hd (f )
fs /M
Filtro
Zero
fs
Padding
Interpolatore
Lfs
Hi (f )
fs0
fs
Zero
Padding
L
Filtro
Interpolatore
Hi (f )
Lfs
Filtro
Antialiasing
Hd (f )
Decimatore
M
L
M
fs
84
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
N 1
N 1
1 X 2
1 X
en =
(yn dn )2 .
N
N
n=0
(5.69)
n=0
(5.70)
b RM
xn
yn
Filtro
a, b
Algoritmo
Adattativo
en
+
dn
(5.71)
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
=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)
k=0
k=0
..
.
m = 0, . . . , M 1
M
1
bk rxx (k M + 1) = rdx (M 1)
k=0
(5.74)
86
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)
(5.75)
(5.76)
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;
87
(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)
= (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)
(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
bo
bopt
o
5.5.3
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.
Tx
H(f )
89
Equalizzatore
Heq (f ) =
1
H(f )
Rx
Canale equivalente
H
comb
(f ) = H(f ) Heq (f ) = 1
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
Tx
xn
Canale
H(f )
yn
Heq (f )
a, b
Algoritmo en
Adattativo
+
+
d n = xn
(5.86)
dn
Predittore
xn
Canale
dn
xn
xn Predittore
91
(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
(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
=
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
i=1
M
X
ai Rx (i k)
i=1
ai Rx (i k) = Rx (k)
k = 1, 2, . . . , M.
(5.93)
i=1
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
(5.94)
N
1 X
xn xnk
N
(5.95)
k=1
E[x2n ]
E[d2n ]
(5.96)
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
Gopt
p =
1
M
X
i=1
Rx (i)
aopt
i
Rx (0)
(5.98)
94
xn
dn
xn1
z 1
a1
xn
Rx (1)
Rx (0)
1
1 aopt
1
Rx (1)
Rx (0)
1
Rx (1)
Rx (0)
2 =
(
Rx (1) = 0 Gp = 1
Rx (1) = Rx (0) Gp =
(5.99)
(5.100)
xn
95
dn
xn
x
n
dn = dn + en
Codificatore
Decodificatore
x
n
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)
(5.102)
96
xn
+
+
dn
+
+
x
n
x
n
Appendice
n1
X
i=0
n1
X Rj
Ri
Ri
=
+
.
s pi
s pi
s pj
j=0
j6=i
Ri =
X Rj
N (z)
(s pi )
(s pi )
D(z)
s pj
j=0
j6=i
spi
N (z)
(s pi ) = X(z)(s pi )s=p
i
D(z)
97
Appendice
H(z) =
M 1
1
2
bk z
k=0
bk z
M
1
X
bk z k
k= M21
k=0
H(z) =
bk z k + b M 1 z
M 1
2
k=0
M
1
X
bk z k .
k= M21 +1
H(z) =
bk z k + b M 1 z
k=0
M 1
2
M
1
X
bM 1k z k .
k= M21 +1
M 1
M 1
+ 1 n =
1
2
2
k = M 1 n = 0
98
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
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
H(z) =
M 1
1
2
bk z k =
k=0
bk z k +
M
1
X
bk z k
k= M21
k=0
k=0
k= M21 +1
H(z) =
X
k=0
bk z
+ b M 1 z
2
M21
M
1
X
k= M21 +1
bM 1k z k .
100
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
M 1
2
M 1
1
2
X
M 1
2jbk sin 2F k
.
b M 1 +
2
2
k=0
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
M
1
X
k=0
M
2
bk z
1
X
k=0
bk z
M
1
X
k= M
2
bk z k
101
H(z) =
1
X
bk z
M
1
X
bM 1k z k .
k= M
2
k=0
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
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
102
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
C.1.1
C.1.2
104
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
C.2
C.2.1
105
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
1 1 1
+ z
2 2
H(F ) =
z=ej2F
1 1 j2F
+ e
2 2
1 1
1
1
+ cos2 (2F ) + cos(2F ) + sin2 (2F ) =
4 4
2
4
1 1
f
+ cos 2
.
2 2
fs
106
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)
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)
C.2.3
107
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
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
20
18
16
14
f s/B
12
10
8
6
4
2
0
f 2 /B
10
C.3
109
Quantizzazione in Matlab
C.3.1
110
10
8
6
4
q(x)
2
0
-2
-4
-6
-8
-10
-15
-10
-5
10
15
5
4
3
2
e(x)
1
0
-1
-2
-3
-4
-5
-15
-10
-5
10
15
111
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
C.3.2
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
1.1
1.2
1.3
1
2
3
2.1
2.2
2.5
2.6
2.7
2.8
10
10
12
13
15
3.1
3.2
3.3
3.4
3.5
3.6
3.7
3.8
.
.
.
.
.
.
.
.
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
4.6
4.7
4.8
4.9
.
.
.
.
39
41
43
44
5.1
5.2
5.3
5.4
5.5
5.6
5.7
5.8
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
115
Risultato di zplane . .
Filtro FIR a due prese
Grafico di Vaughan . .
Risultati Matlab . . .
Quantizzazione audio .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
93
94
95
96
104
106
108
110
111
2.1
2.2
15
18
5.1
52
116