Lezione 2 - Campionamento e aliasing
Lezione 2 - Campionamento e aliasing
Lezione 2 - Campionamento e aliasing
Trasformi i suoi PDF in rivista online e aumenti il suo fatturato!
Ottimizzi le sue riviste online per SEO, utilizza backlink potenti e contenuti multimediali per aumentare la sua visibilità e il suo fatturato.
<strong>Lezione</strong> 2.<br />
<strong>Campionamento</strong> e Aliasing<br />
F. Previdi - Controlli Automatici - Lez. 2 1
Schema della lezione<br />
1. Introduzione<br />
2. Il campionatore ideale<br />
3. Trasformata di un segnale campionato<br />
4. Teorema del campionamento<br />
5. Aliasing<br />
6. Filtraggio anti-<strong>aliasing</strong><br />
F. Previdi - Controlli Automatici - Lez. 2 2
1. Introduzione<br />
Il campionamento di un segnale misurato è alla base della<br />
possibilità di implementare un sistema di controllo in retroazione.<br />
Tale operazione è indispensabile se si vuole implementare un<br />
algoritmo di controllo su un processore o un microcontrollore, che<br />
opera su valori numerici binari.<br />
E’ noto che l’operazione di campionamento comporta in generale una<br />
perdita di informazione, dovuta alla trasformazione del segnale<br />
misurato (a tempo continuo) in un insieme di valori numerici binari<br />
descritti con un numero finito di bit.<br />
L’analisi della relazione tra il segnale a tempo continuo e la sua<br />
controparte ottenuta per campionamento sarà effettuata nel dominio<br />
delle frequenze.<br />
F. Previdi - Controlli Automatici - Lez. 2 3
2. Il campionatore ideale<br />
e(t)<br />
e*(k)<br />
e*(0)<br />
e*(1)<br />
e*(2)<br />
e*(4)<br />
e*(3)<br />
e*(5)<br />
e*(6)<br />
e*(7)<br />
e*(8)<br />
0 T1 22T 33T 44T 55T 6T 6 77T 8T 8<br />
e*(k) è un numero reale per ogni k<br />
e(t)<br />
T è il periodo (o tempo) di campionamento<br />
e*(k)=e(kT)<br />
F. Previdi - Controlli Automatici - Lez. 2 4<br />
t<br />
A/D e*(k)<br />
k
Nota<br />
• E’ evidente che l’operazione di campionamento comporta<br />
una perdita di informazione, poichè si pretende di concentrare<br />
l’informazione contenuta in una porzione di una funzione reale<br />
di variabile reale in un numero finito di numeri reali.<br />
• Si parla di campionatore ideale, perchè si suppone che i campioni<br />
siano numeri reali. In realtà, sono numeri rappresentati in codice<br />
binario con un numero finito di bit. Ciò comporta una ulteriore<br />
perdita di informazione rappresentata dal cosiddetto<br />
errore (o rumore) di quantizzazione.<br />
1<br />
• Frequenza di campionamento fs =<br />
T<br />
2π<br />
• Pulsazione di campionamento ωs<br />
= 2πf<br />
s =<br />
T<br />
F. Previdi - Controlli Automatici - Lez. 2 5
3. Trasformata di un segnale campionato<br />
Si consideri un segnale a tempo continuo f t . Per<br />
campionamento ideale con periodo T si ottiene il<br />
corrispondente segnale campionato f k<br />
*<br />
= f kT<br />
Per comprendere che relazione c’è tra questi due segnali è bene<br />
analizzare la relazione tra le loro trasformate di Fourier:<br />
( jω)<br />
( )<br />
F ( jθ<br />
F e ) *<br />
F t<br />
Cfr. “Richiami di analisi armonica”<br />
( )<br />
( )<br />
= [ f ( ) ]<br />
= F * [ f ( k)<br />
] *<br />
F. Previdi - Controlli Automatici - Lez. 2 6
Teorema F*<br />
Si consideri un segnale a tempo continuo f t e lo si campioni con<br />
tempo di campionamento T.<br />
( )<br />
( )<br />
Sia f t una funzione continua negli istanti di campionamento.<br />
Sia f k il segnale a tempo discreto ottenuto per campionamento.<br />
*<br />
Allora risulta<br />
1<br />
T<br />
( jωT<br />
e ) = F ( jω)<br />
*<br />
F s<br />
dove F ( j ) = F(<br />
j(<br />
ω + hω<br />
) )<br />
s<br />
∑ +∞<br />
ω<br />
h=<br />
−∞<br />
Nota F( jω)<br />
è la trasformata di Fourier di f ( t)<br />
jθ<br />
F e<br />
* è la trasformata di Fourier di f ( k)<br />
*<br />
( )<br />
s<br />
( )<br />
con<br />
2π<br />
T<br />
F. Previdi - Controlli Automatici - Lez. 2 7<br />
ω<br />
s<br />
=
Dimostrazione<br />
Per definizione di trasformata di Fourier si ha<br />
Ricordando che<br />
+∞<br />
( x ) ∫ 0 g(<br />
x)<br />
imp(<br />
x − x )<br />
= dx<br />
g 0<br />
−∞<br />
− jkωT<br />
si può scrivere: ( ) ∫<br />
− jωt<br />
f kT e = f ( t)<br />
e imp(<br />
t − kT ) dt<br />
Quindi:<br />
( ) ( )<br />
*<br />
Quindi, siccome f k = f kT si ha<br />
F *<br />
( j T<br />
e ) f ( kT )<br />
∑ +∞<br />
ω<br />
=<br />
k = −∞<br />
+∞<br />
+∞<br />
+∞<br />
−∞<br />
e<br />
− jkωT<br />
( jωT<br />
) − jωt<br />
e<br />
f ( t)<br />
e ( t − kT )<br />
∑ ∫<br />
=<br />
k = −∞ −∞<br />
+∞<br />
− jωt<br />
*<br />
F imp<br />
+∞ ⎡<br />
= ∫ f ⎢ ∑<br />
⎣<br />
−∞<br />
k = −∞<br />
F. Previdi - Controlli Automatici - Lez. 2 8<br />
F<br />
⎤<br />
⎥<br />
⎦<br />
dt<br />
( t)<br />
e imp(<br />
t − kT ) dt<br />
*<br />
( j T ) *<br />
e f ( k)<br />
∑ +∞<br />
ω<br />
=<br />
k = −∞<br />
=<br />
approfondimento<br />
e<br />
− jkωT
∑ +∞ = k<br />
k = −∞<br />
La funzione ( t)<br />
= ( t − kT )<br />
nota la serie di Fourier:<br />
Si ha quindi:<br />
F<br />
*<br />
c imp è il treno di impulsi, di cui è<br />
+∞<br />
c<br />
1<br />
T<br />
( ) ∑ +∞<br />
t =<br />
h=<br />
−∞<br />
( jωT<br />
) − jωt<br />
jhωst<br />
− j(<br />
ω−hωs<br />
)<br />
e = f ( t)<br />
e e dt = f ( t)<br />
e<br />
∫ ⎢ ∑<br />
−∞<br />
+∞<br />
∫<br />
−∞<br />
⎡ 1<br />
⎣T<br />
+∞<br />
h=<br />
−∞<br />
e<br />
⎤<br />
⎥<br />
⎦<br />
ω<br />
jh s<br />
t<br />
1<br />
T<br />
+∞<br />
∑ ∫<br />
h=<br />
−∞ −∞<br />
− j( ω−hωs<br />
) t<br />
Si osservi che f ( t)<br />
e dt è la trasformata di Fourier di f ( t)<br />
ω F( j(<br />
ω − hω<br />
) )<br />
valutata in − hω , ovvero<br />
s<br />
s<br />
F. Previdi - Controlli Automatici - Lez. 2 9<br />
+∞<br />
approfondimento<br />
t<br />
dt
Si ha quindi infine:<br />
Nota<br />
+∞ +∞<br />
* 1<br />
1<br />
s F<br />
F s<br />
( )<br />
( jωT<br />
) − j(<br />
ω−hω<br />
) t<br />
e = f ( t)<br />
e dt = F j(<br />
ω − hω<br />
)<br />
( jω)<br />
T<br />
∑ ∫<br />
h=<br />
−∞ −∞<br />
= ∑ +∞ 1<br />
T<br />
h=<br />
−∞<br />
F<br />
è: • simmetrica<br />
1<br />
T<br />
T<br />
+∞<br />
∑<br />
h=<br />
−∞<br />
( j(<br />
ω + hω<br />
) ) ≡ F ( jω)<br />
• periodica di periodo<br />
s<br />
ωs<br />
Quindi è sufficiente conoscerla in 0,<br />
ωN<br />
,<br />
ωs<br />
dove ωN<br />
= è la pulsazione di Nyquist.<br />
2<br />
s<br />
[ ]<br />
approfondimento<br />
F. Previdi - Controlli Automatici - Lez. 2 10<br />
s<br />
=
Questo teorema fornisce la relazione tra le trasformate di<br />
Fourier dei segnali di ingresso e di uscita di un campionatore<br />
ideale periodico. In particolare, tale legame è definito<br />
dall’andamento di F ( jω)<br />
e quello di Fs ( jω)<br />
sull’intervallo<br />
0,<br />
jω dell’asse immaginario.<br />
[ ]<br />
s<br />
E’ possibile dare una visualizzazione grafica di tale legame<br />
che consente di comprendere in profondità il fenomeno<br />
dell’<strong>aliasing</strong>.<br />
F. Previdi - Controlli Automatici - Lez. 2 11
F ( ) ( )<br />
Relazione tra jω<br />
e F jω<br />
. s<br />
F ( ) ( ) ( ( ) )<br />
Qual è il legame tra jω<br />
e F j = F j ω + hω<br />
?<br />
s<br />
∑ +∞<br />
ω<br />
h=<br />
−∞<br />
Si facciano le seguenti due ipotesi che consentono di dare una<br />
interessante interpretazione grafica del loro legame:<br />
( )<br />
( )<br />
• F jω<br />
è reale (in generale è complessa);<br />
• F jω<br />
è a banda limitata (con banda 0, ω ).<br />
F<br />
( jω)<br />
ω ω<br />
max<br />
F. Previdi - Controlli Automatici - Lez. 2 12<br />
s<br />
[ ]<br />
max
Il generico termine di Fs si ottiene da F traslandola della quantità hωs con h intero relativo.<br />
F( j(<br />
ω<br />
+ hω<br />
) )<br />
h = 2<br />
s<br />
h = 1 h = 0 h = −1<br />
h = −2<br />
ω ω<br />
− 2ωs − ωs<br />
N ωs<br />
s ω 2<br />
− 3ωN<br />
− ωN<br />
3ωN<br />
Il valore di Fs si ottiene sommando i contributi di tutti gli addendi<br />
per ogni ω.<br />
Fs ( jω)<br />
ω ω<br />
− 2ωs − ωs<br />
N ωs<br />
s ω 2<br />
− 3ωN<br />
− ωN<br />
3ωN<br />
F. Previdi - Controlli Automatici - Lez. 2 13
Come si nota, la funzione Fs che si ottiene è diversa dalla F<br />
nell’intervallo [ − ωN<br />
, ωN<br />
] . Ciò è dovuto al fatto che F(<br />
jω)<br />
è non nulla<br />
per ω ≥ ω .<br />
N<br />
( )<br />
In questo caso le armoniche non nulle di F jω<br />
per ω ≥ ωN<br />
contribuiscono allo spettro di Fs ( jω)<br />
per ω<br />
≤ ωN<br />
: è il fenomeno del<br />
frequency folding, che è all’origine dell’<strong>aliasing</strong>.<br />
F. Previdi - Controlli Automatici - Lez. 2 14
( j(<br />
ω + h ) )<br />
F ω<br />
− ωs<br />
N ω −<br />
s<br />
( )<br />
ω<br />
j<br />
F s<br />
− ωs<br />
− ωN<br />
h = 0<br />
ω ω<br />
ω<br />
N<br />
N<br />
s<br />
ω ω<br />
ω<br />
s<br />
F. Previdi - Controlli Automatici - Lez. 2 15
( )<br />
Per evitare che ciò accada è sufficiente che F jω<br />
sia nulla per N . ω ≥ ω<br />
F( j(<br />
ω<br />
+ hω<br />
) )<br />
h = 1<br />
h = 0<br />
h = −1<br />
− ω<br />
ωN ωs<br />
ω<br />
Fs ( jω)<br />
h = 1<br />
h = 0<br />
h = −1<br />
− ωs<br />
N<br />
− ω<br />
− ωs<br />
N<br />
s<br />
ωN ωs<br />
ω<br />
E’ quindi fondamentale scegliere accuratamente il valore di ωN<br />
,<br />
in modo da rispettare tale condizione.<br />
F. Previdi - Controlli Automatici - Lez. 2 16
4. Teorema del campionamento<br />
Teorema<br />
( )<br />
Sia f t un segnale a banda limitata con pulsazione massima ω .<br />
Utilizzando un periodo di campionamento T tale che<br />
si ha che:<br />
F<br />
( jω)<br />
⎧Fs<br />
= ⎨<br />
⎩0<br />
,<br />
* ( ) ( jωT<br />
jω<br />
= TF e )<br />
ω max<br />
jωT<br />
Pertanto, la conoscenza di F e nell’intervallo 0,<br />
ωN<br />
consente<br />
di determinare univocamente F ( jω)<br />
, cioè il segnale f ( t)<br />
può essere ricostruito esattamente a partire<br />
dai suoi campioni f k<br />
*<br />
=<br />
f kT<br />
( )<br />
,<br />
0<br />
ω<br />
≤ ω ≤ ω<br />
><br />
ω<br />
* ( )<br />
[ ]<br />
( )<br />
ωN<br />
max<br />
F. Previdi - Controlli Automatici - Lez. 2 17<br />
N<br />
N<br />
Formula di Shannon<br />
Come è possibile calcolare t nota che sia f k ?<br />
*<br />
Dal momento che<br />
F<br />
( jω)<br />
⎧TF<br />
= ⎨<br />
⎩0<br />
*<br />
f ( )<br />
( )<br />
( jωT<br />
e )<br />
è possibile calcolare l’antitrasformata:<br />
f<br />
( t)<br />
1<br />
2π<br />
+∞<br />
1<br />
2π<br />
+ ω<br />
per − ωN<br />
≤ ω ≤ ωN<br />
altrove<br />
N<br />
jωt<br />
jωt<br />
( jω)<br />
e dω<br />
= F(<br />
jω)<br />
e dω<br />
=<br />
= ∫ F ∫<br />
−∞<br />
+ ω<br />
−ω<br />
N<br />
N +∞<br />
T *<br />
1 ⎛<br />
⎞ t<br />
F<br />
( )<br />
2π<br />
2ωN<br />
⎝ k = −∞ ⎠<br />
N<br />
+ ω<br />
( jωT<br />
) jωt<br />
− jωkT<br />
jω<br />
e e dω<br />
= ⎜ f k e ⎟e<br />
dω<br />
=<br />
*<br />
= ∫ ∑<br />
∫<br />
=<br />
−ω<br />
N<br />
−ω<br />
+∞<br />
+ ωN<br />
+∞<br />
1<br />
∑ ∫<br />
− jωkT<br />
jωt<br />
f ( k)<br />
e e dω<br />
= ∑<br />
k = −∞ 2ωN<br />
−ω<br />
k = −∞<br />
* f ( k)<br />
*<br />
N<br />
N<br />
1<br />
2ω<br />
( t−kT<br />
)<br />
F. Previdi - Controlli Automatici - Lez. 2 18<br />
N<br />
+ ω<br />
∫<br />
−ω<br />
N<br />
N<br />
e<br />
jω<br />
dω
Calcolando l’ultimo integrale si ottiene la nota<br />
formula di Shannon<br />
f<br />
( t)<br />
= ∑ ∞ +<br />
f<br />
k = −∞<br />
*<br />
( k)<br />
sin<br />
ω<br />
( ω t − kπ)<br />
N<br />
N<br />
t − kπ<br />
f ( )<br />
( )<br />
Si noti che t dipende da tutta f k (la formula non è<br />
causale e quindi non può essere usata “in linea”).<br />
*<br />
Il problema della conversione D/A è un’altra faccenda...<br />
F. Previdi - Controlli Automatici - Lez. 2 19
5. Aliasing<br />
Se non fossero valide le ipotesi del teorema del campionamento, il<br />
problema dell’esatta ricostruzione di un segnale a tempo continuo a<br />
partire dalla conoscenza dei suoi campioni sarebbe un problema mal<br />
posto, in quanto esisterebbero infinite ricostruzioni ammissibili per il<br />
segnale a tempo continuo.<br />
Quando si verificano tali condizioni si ha il fenomeno dell’<strong>aliasing</strong>.<br />
Per evitare questo fenomeno è sufficiente che il segnale da<br />
campionare soddisfi le ipotesi del teorema del campionamento.<br />
Altrimenti, per effetto del frequency folding, si troverebbero<br />
componenti armoniche in bassa frequenza dovute ad <strong>aliasing</strong> di<br />
componenti armoniche a frequenza superiore alla frequenza di<br />
Nyquist.<br />
F. Previdi - Controlli Automatici - Lez. 2 20
Il campionamento introduce nel segnale campionato nuove<br />
frequenze dovute ad “interferenza” tra la pulsazione del segnale e la<br />
pulsazione di campionamento.<br />
ωsampled = nωs<br />
± ω<br />
Pulsazione di<br />
campionamento<br />
N.B. Per i sistemi a segnali campionati non vale più il<br />
teorema della risposta in frequenza!!<br />
intero<br />
F. Previdi - Controlli Automatici - Lez. 2 21<br />
n<br />
Pulsazione del segnale
Esempio<br />
Si consideri il segnale f ( t)<br />
= sin(<br />
2π<br />
⋅0.<br />
2⋅<br />
t)<br />
Lo si campioni con periodo di campionamento<br />
f N<br />
= 0 . 5 Hz ><br />
Spettro di potenza<br />
x 108<br />
2<br />
1.8<br />
1.6<br />
1.4<br />
1.2<br />
1<br />
0.8<br />
0.6<br />
0.4<br />
0.2<br />
0.<br />
2<br />
Hz<br />
0<br />
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5<br />
frequenza [Hz]<br />
= 1s<br />
F. Previdi - Controlli Automatici - Lez. 2 22<br />
T<br />
= nω<br />
ωsampled s<br />
= 0⋅<br />
ωs<br />
± ω<br />
fs<br />
=<br />
± ω<br />
=<br />
= 1Hz<br />
± ω
Campionando con periodo di campionamento<br />
f N<br />
= 0 . 15 Hz <<br />
Spettro di potenza<br />
x 106<br />
14<br />
12<br />
10<br />
8<br />
6<br />
4<br />
2<br />
0.<br />
2<br />
Hz<br />
“Aliased” di f=0.2 Hz<br />
a 0.1 Hz<br />
0<br />
0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16<br />
frequenza [Hz]<br />
T<br />
= 10<br />
3<br />
F. Previdi - Controlli Automatici - Lez. 2 23<br />
s<br />
= nω<br />
ωsampled s<br />
f s<br />
− f<br />
fs<br />
± ω<br />
=<br />
=<br />
0.<br />
3<br />
= 1⋅ω<br />
s ± ω = ωs<br />
= 0 . 3−<br />
0.<br />
2 =<br />
0.<br />
1<br />
Hz<br />
± ω<br />
Hz
Nota<br />
Si osservi però che il teorema del campionamento pone una<br />
condizione solo sufficiente.<br />
Per es. un segnale costante a tratti è perfettamente ricostruibile a<br />
partire dai suoi campioni ma NON è a banda limitata.<br />
Non solo: è possibile dimostrare che l’unica funzione<br />
Fourier-trasformabile a banda limitata è la funzione nulla. (!)<br />
Il concetto di banda limitata è quindi un’idealizzazione di situazioni<br />
molto frequenti in cui lo spettro di un segnale possa ritenersi<br />
trascurabile oltre un certo limite.<br />
F. Previdi - Controlli Automatici - Lez. 2 24
6. Filtraggio anti-<strong>aliasing</strong><br />
Se il segnale di ingresso presenta non trascurabili componenti “in<br />
alta frequenza”, ovvero a pulsazioni ω > ωN<br />
, ma la parte<br />
dell’informazione ad esso associata è essenzialmente legata alle<br />
componenti “in bassa frequenza” ω < ωN<br />
, si può salvaguardare<br />
l’informazione utile associata all’ingresso anteponendo un filtro<br />
analogico passabasso con pulsazioni di taglio pari a ω .<br />
N.B. Bisognerà tenere conto della dinamica del filtro anti<strong>aliasing</strong><br />
nel progetto del controllore!<br />
F. Previdi - Controlli Automatici - Lez. 2 25<br />
N
Nelle applicazioni di controllo spesso sono utilizzati filtri di Bessel<br />
che hanno sfasamento lineare in banda.<br />
I parametri di scelta fondamentali sono:<br />
• Attenuazione alla pulsazione di Nyquist<br />
• Pulsazione di taglio del filtro<br />
• L’ordine del filtro<br />
ωAA<br />
Un filtro di Bessel può essere<br />
approssimato mediante un ritardo T d<br />
(fino a poco oltre la sua frequenza<br />
di taglio).<br />
Magnitude (dB)<br />
Phase (deg)<br />
G<br />
20<br />
-20<br />
-40<br />
-60<br />
-80<br />
-100<br />
90<br />
0<br />
( j ) = β<br />
0<br />
-90<br />
-180<br />
-270<br />
-360<br />
-450<br />
-540<br />
10 -2<br />
ω N<br />
F. Previdi - Controlli Automatici - Lez. 2 26<br />
10 -1<br />
Bode Diagram<br />
ω AA<br />
ritardo<br />
10 0<br />
Frequency (rad/sec)<br />
Bessel 4 th<br />
10 1<br />
10 2
Esempio<br />
La dinamica del veicolo (nella banda 0-30 Hz circa) viene<br />
studiata basandosi su misure accelerometriche.<br />
Le vibrazioni del motore introducono rumore di intensità elevata<br />
e devono essere filtrate.<br />
F. Previdi - Controlli Automatici - Lez. 2 27
Armoniche vibrazione motore (@ 4000 rpm)<br />
f s=1 kHz<br />
F. Previdi - Controlli Automatici - Lez. 2 28
Aliasing accelerometri – 1<br />
ALIAS<br />
riconoscimento bassa frequenza (errato)<br />
NB: il decisore assume<br />
un valore di -5<br />
F. Previdi - Controlli Automatici - Lez. 2 29
Aliasing accelerometri – 2<br />
Oltre un certo numero di giri, la frequenza delle armoniche del motore supera la frequenza<br />
di Nyquist (500 Hz) e il disturbo viene riportato in bassa frequenza (sotto i 30Hz),<br />
sovrapposto alle dinamiche di interesse.<br />
I disturbi sono<br />
funzione del<br />
regime di<br />
rotazione del<br />
motore<br />
ALIAS<br />
F. Previdi - Controlli Automatici - Lez. 2 30
Filtraggio anti-<strong>aliasing</strong> accelerometri<br />
Per risolvere i problemi di alias si è provveduto ad installare un filtro attivo analogico<br />
del II ordine, realizzato con una singola cella di Sallen-Key.<br />
f p = 160 Hz<br />
Q = ½ (poli reali)<br />
Gain = 1<br />
F. Previdi - Controlli Automatici - Lez. 2 31
Accelerometri senza <strong>aliasing</strong><br />
I disturbi sul decisore sono<br />
stati ridotti di un fattore 20.<br />
I disturbi sono indipendenti<br />
dal regime di rotazione .<br />
F. Previdi - Controlli Automatici - Lez. 2 32
Ritardo dovuto al filtraggio anti-<strong>aliasing</strong><br />
Il filtro progettato introduce, ovviamente, uno sfasamento sui segnali di accelerazione.<br />
Tale ritardo è stato quantificato a fronte di un evento impulsivo (passaggio su rallentatore<br />
stradale).<br />
ritardo: 3ms<br />
F. Previdi - Controlli Automatici - Lez. 2 33