Wikibooks, manuali e libri di testo liberi.
La trasformata di Fourier
X
d
(
f
a
)
{\displaystyle X_{d}\left(f_{a}\right)}
del segnale
x
d
(
t
)
{\displaystyle x_{d}\left(t\right)}
, cioè il segnale analogico
x
(
t
)
{\displaystyle x\left(t\right)}
campionato a frequenza
f
c
{\displaystyle f_{c}}
:
x
d
(
t
)
=
x
(
t
)
⋅
∑
k
=
−
∞
+
∞
δ
(
t
−
k
T
c
)
=
∑
k
=
−
∞
+
∞
x
(
k
T
c
)
δ
(
t
−
k
T
c
)
{\displaystyle x_{d}\left(t\right)=x\left(t\right)\cdot \sum _{k=-\infty }^{+\infty }\delta \left(t-kT_{c}\right)=\sum _{k=-\infty }^{+\infty }x\left(kT_{c}\right)\delta \left(t-kT_{c}\right)}
si può esprimere in due modi del tutto equivalenti:
X
d
(
f
a
)
=
F
{
∑
k
=
−
∞
+
∞
x
(
t
)
δ
(
t
−
k
T
c
)
}
=
{
F
{
x
(
t
)
}
∗
F
{
∑
k
=
−
∞
+
∞
δ
(
t
−
k
T
c
)
}
=
…
=
1
T
c
∑
k
=
−
∞
+
∞
X
(
f
a
−
k
1
T
c
)
F
{
∑
k
=
−
∞
+
∞
x
(
k
T
c
)
⋅
δ
(
t
−
k
T
c
)
}
=
…
=
∑
k
=
−
∞
+
∞
x
(
k
T
c
)
e
−
j
2
π
k
T
c
f
a
{\displaystyle X_{d}\left(f_{a}\right)={\mathcal {F}}\left\{\sum _{k=-\infty }^{+\infty }x\left(t\right)\delta \left(t-kT_{c}\right)\right\}={\begin{cases}{\mathcal {F}}\left\{x\left(t\right)\right\}*{\mathcal {F}}\left\{\sum _{k=-\infty }^{+\infty }\delta \left(t-kT_{c}\right)\right\}=\ldots ={\frac {1}{T_{c}}}\sum _{k=-\infty }^{+\infty }X\left(f_{a}-k{\frac {1}{T_{c}}}\right)\\{\mathcal {F}}\left\{\sum _{k=-\infty }^{+\infty }x\left(kT_{c}\right)\cdot \delta \left(t-kT_{c}\right)\right\}=\ldots =\sum _{k=-\infty }^{+\infty }x\left(kT_{c}\right)e^{-j2\pi kT_{c}f_{a}}\end{cases}}}
La DTFT
X
(
e
j
2
π
f
)
{\displaystyle X\left(e^{j2\pi f}\right)}
del segnale a tempo discreto
x
(
k
)
{\displaystyle x\left(k\right)}
può essere ricondotta alla trasformata di Fourier
X
d
(
f
a
)
{\displaystyle X_{d}\left(f_{a}\right)}
del corrispondente segnale analogico
x
(
k
T
c
)
{\displaystyle x\left(kT_{c}\right)}
, campionato con una frequenza
f
c
=
1
T
c
{\displaystyle f_{c}={\tfrac {1}{T_{c}}}}
che rispetta il teorema del campionamento:
{
X
(
e
j
2
π
f
)
=
∑
k
=
−
∞
+
∞
x
(
k
)
e
−
j
2
π
f
X
d
(
f
a
)
=
∑
k
=
−
∞
+
∞
x
(
k
T
c
)
e
−
j
2
π
k
T
c
f
a
⇒
X
d
(
f
⋅
f
c
)
=
∑
k
=
−
∞
+
∞
x
(
k
)
e
−
j
2
π
k
f
=
X
(
e
j
2
π
f
)
{\displaystyle {\begin{cases}X\left(e^{j2\pi f}\right)=\sum _{k=-\infty }^{+\infty }x\left(k\right)e^{-j2\pi f}\\X_{d}\left(f_{a}\right)=\sum _{k=-\infty }^{+\infty }x\left(kT_{c}\right)e^{-j2\pi kT_{c}f_{a}}\end{cases}}\Rightarrow X_{d}\left(f\cdot f_{c}\right)=\sum _{k=-\infty }^{+\infty }x\left(k\right)e^{-j2\pi kf}=X\left(e^{j2\pi f}\right)}
Per ricostruire perfettamente il segnale campionato, serve un filtro passa-basso ideale
H
(
f
)
{\displaystyle H\left(f\right)}
, che è la porta di ampiezza
T
c
{\displaystyle T_{c}}
e supporto
[
−
f
c
2
,
f
c
2
]
{\displaystyle \left[-{\tfrac {f_{c}}{2}},{\tfrac {f_{c}}{2}}\right]}
, per eliminare le repliche dello spettro periodico
X
d
(
f
a
)
{\displaystyle X_{d}\left(f_{a}\right)}
lasciando solo quella centrata intorno all'origine (
k
=
0
{\displaystyle k=0}
):
X
(
f
a
)
=
H
(
f
)
∗
X
d
(
f
a
)
=
T
c
X
d
(
f
a
)
f
a
∈
[
−
f
c
2
,
f
c
2
]
{\displaystyle X\left(f_{a}\right)=H\left(f\right)*X_{d}\left(f_{a}\right)=T_{c}X_{d}\left(f_{a}\right)\quad f_{a}\in \left[-{\frac {f_{c}}{2}},{\frac {f_{c}}{2}}\right]}
Quindi il legame tra la DTFT del segnale a tempo discreto
x
(
k
)
{\displaystyle x\left(k\right)}
e la trasformata di Fourier del segnale campionato
x
(
k
T
c
)
{\displaystyle x\left(kT_{c}\right)}
filtrata con un filtro passa-basso è:
X
(
f
⋅
f
c
)
=
T
c
⋅
X
d
(
f
⋅
f
c
)
=
T
c
⋅
X
(
e
j
2
π
f
)
f
a
∈
[
−
f
c
2
,
f
c
2
]
{\displaystyle X\left(f\cdot f_{c}\right)=T_{c}\cdot X_{d}\left(f\cdot f_{c}\right)=T_{c}\cdot X\left(e^{j2\pi f}\right)\quad f_{a}\in \left[-{\frac {f_{c}}{2}},{\frac {f_{c}}{2}}\right]}
Ipotesi
il segnale
x
(
t
)
{\displaystyle x\left(t\right)}
ha supporto
(
0
,
T
x
)
{\displaystyle \left(0,T_{x}\right)}
limitato nel tempo;
il segnale
x
(
t
)
{\displaystyle x\left(t\right)}
è a banda limitata (pari a
B
x
{\displaystyle B_{x}}
);
il segnale
x
(
t
)
{\displaystyle x\left(t\right)}
viene campionato con una frequenza di campionamento
f
c
≥
2
B
x
{\displaystyle f_{c}\geq 2B_{x}}
per evitare l'aliasing in frequenza, generando la sequenza:
x
(
n
)
=
x
(
n
T
c
)
n
=
0
,
…
,
N
−
1
{\displaystyle x\left(n\right)=x\left(nT_{c}\right)\quad n=0,\ldots ,N-1}
si considera un intervallo di tempo
T
0
{\displaystyle T_{0}}
:
T
0
=
1
Δ
f
=
N
T
c
=
N
f
c
{\displaystyle T_{0}={\frac {1}{\Delta f}}=NT_{c}={\frac {N}{f_{c}}}}
che includa il supporto
T
x
{\displaystyle T_{x}}
del segnale
x
(
t
)
{\displaystyle x\left(t\right)}
, per evitare l'aliasing nel tempo:
T
0
≥
T
x
{\displaystyle T_{0}\geq T_{x}}
L'uso della DFT al posto della DTFT permette di lavorare su frequenze discrete e su un numero finito di campioni nel tempo:
{
X
(
f
⋅
f
c
)
=
X
(
f
⋅
N
T
0
)
=
T
0
N
⋅
X
(
e
j
2
π
f
)
X
(
k
)
=
X
(
e
j
2
π
k
N
)
⇒
X
(
k
T
0
)
=
T
0
N
X
(
k
)
k
=
0
,
…
,
N
−
1
{\displaystyle {\begin{cases}X\left(f\cdot f_{c}\right)=X\left(f\cdot {\frac {N}{T_{0}}}\right)={\frac {T_{0}}{N}}\cdot X\left(e^{j2\pi f}\right)\\X\left(k\right)=X\left(e^{j2\pi {\frac {k}{N}}}\right)\end{cases}}\Rightarrow X\left({\frac {k}{T_{0}}}\right)={\frac {T_{0}}{N}}X\left(k\right)\quad k=0,\ldots ,N-1}
Aumentando l'intervallo
T
0
{\displaystyle T_{0}}
su cui si osserva il segnale con la tecnica dell'aggiunta degli zeri (a parità di frequenza di campionamento), si può aumentare la risoluzione in frequenza dello spettro, perché la trasformata di Fourier
X
(
k
T
0
)
{\displaystyle X\left({\tfrac {k}{T_{0}}}\right)}
del segnale viene campionata con una minore spaziatura in frequenza
Δ
f
=
1
T
0
{\displaystyle \Delta f={\tfrac {1}{T_{0}}}}
.
Parametri
La scelta dei parametri deve essere fatta in modo da limitare l'aliasing nel tempo e in frequenza:
{
T
0
=
N
T
c
f
c
=
1
T
c
Δ
f
=
1
T
0
{\displaystyle {\begin{cases}T_{0}=NT_{c}\\f_{c}={\frac {1}{T_{c}}}\\\Delta f={\frac {1}{T_{0}}}\end{cases}}}
Esempio di aliasing in frequenza (visibile soprattutto agli estremi), dovuto a frequenza di campionamento
f
c
{\displaystyle f_{c}}
troppo bassa
Esempio di aliasing nel tempo (visibile soprattutto intorno all'origine), dovuto a intervallo di tempo
T
0
{\displaystyle T_{0}}
troppo basso