3  Recap — Fourier

Ultimo recap, le trasformate di Fourier, che ci serviranno spesso per analizzare il contenuto spettrale dei segnali misurati durante le esperienze. Serve anche da preparazione al capitolo che viene subito dopo: un dato acquisito è discretizzato in due modi indipendenti — nel tempo, perché lo si campiona a istanti separati, e nel valore, perché lo si rappresenta con un numero finito di cifre — e qui affrontiamo il primo dei due. Che cosa si può ricostruire di un segnale campionato, e quali artefatti compaiono se si esagera, si decide tutto in trasformata.

3.1 La serie di Fourier

Più che di trasformatA di Fourier bisognerebbe parlare di trasformatE, dato che esistono varie possibilità illustrate in tabella, in base al tipo di segnale e alla natura discreta o continua dei suoi valori

aperiodico periodico
continuo trasformata di Fourier serie di Fourier
discreto trasformata a tempo discreto trasformata di Fourier discreta

Lasciando la trasformata di Fourier ad altri corsi, qui è utile rivedere rapidamente la serie, per poi passare alla sua versione discreta (DFT, Discrete Fourier Transform). La serie di Fourier descrive le funzioni date da somme di seni e coseni, ovvero anche di esponenziali complessi,

\[f(t) = \sum_{k=-\infty}^{+\infty} \hat f_k \, e^{+j\,\omega_k t}, \qquad \omega_k = \frac{2\pi}{T}\,k, \tag{3.1}\]

dove \(T\) è il periodo e \(\omega _k\) è la frequenza angolare dell’armonica \(k\)-esima. I coefficienti di Fourier \(\hat{f}_k\) si possono ricavare proiettando \(f\) sulla \(k\)-esima armonica

\[\hat f_k = \frac{1}{T}\int_0^T f(t)\, e^{-j\omega_k t}dt. \tag{3.2}\]

In un laboratorio è sensato by-passare le questioni di convergenza, infatti siamo partiti assumendo che \(f(t)\) sia una somma in serie di armoniche. Un problema interessante è se/quando una funzione periodica generica sia esprimibile come una tale serie: questo è sempre possibile se \(f(t)\) è una funzione smooth e derivabile infinite volte, cosa sempre vera in un laboratorio, un po’ meno in un corso di matematica. Qui al massimo potrebbe capitare di trattare alcuni casi limite ideali con discontinuità o funzioni impulsive, che possono tuttavia essere viste come limiti di funzioni smooth.

Esempi di sviluppi in serie. Alcuni sviluppi di base è bene saperli o almeno rivedere più o meno come si calcolano. Le funzioni a seguire hanno ampiezza \(1\) e periodo \(T\), ma diverse armoniche con diverse fasi e diverse velocità di decrescita al crescere di \(k\).

Onda quadra — armoniche dispari \(\propto 1/(2n+1)\)

\[f_\square(t) = \frac{4}{\pi} \sum_{n=0}^{\infty} \frac{1}{2n+1}\, \sin\!\left[\frac{2\pi}{T}(2n+1)\,t\right]. \tag{3.3}\]

È dispari, quindi solo seni; e le armoniche pari sono assenti e le ampiezze scendono come \(1/(2n+1)\), cioè lentamente. Questo è direttamente connesso con la discontinuità dell’onda quadra, che infatti è il punto dove la convergenza è più “complicata” (convergenza non uniforme, fenomeno di Gibbs… lasciamo tutto questo ai corsi di matematica).

Onda triangolare — armoniche dispari \(\propto 1/(2n+1)^2\)

\[f_\triangle(t) = -\frac{8}{\pi^2} \sum_{n=0}^{\infty} \frac{1}{(2n+1)^2}\, \cos\!\left[\frac{2\pi}{T}(2n+1)\,t\right]. \tag{3.4}\]

Si ottiene integrando la quadra (a meno del fattore \(4/T\)), e integrare porta un \(1/\omega_k\) in più: da qui il quadrato al denominatore. La serie converge molto meglio, e non ha discontinuità.

Dente di sega — tutte le armoniche, ampiezze \(\propto 1/n\)

\[f_\diagup(t) = -\frac{2}{\pi} \sum_{n=1}^{\infty} \frac{1}{n}\, \sin\!\left[\frac{2\pi}{T}\,n\,t\right]. \tag{3.5}\]

Qui ci sono tutte le armoniche, pari comprese, con ampiezze \(1/n\): è il segnale più ricco dei tre, ed è per questo che si usa quando si vuole mettere alla prova un campionamento (Sezione 3.4).

La velocità di convergenza si legge a occhio nella figura Figura 3.1: la triangolare è indistinguibile dall’onda ideale già con pochi termini, mentre quadra e dente di sega non «chiudono» mai del tutto sui salti.

Figura 3.1: Esplorazione di diversi sviluppi in serie: onda quadra, triangolare e a dente di sega. Sui salti le somme parziali non «chiudono» mai del tutto. Matematicamente, la convergenza non è uniforme: la serie converge in ogni punto, al valore della funzione dove questa è continua e alla media dei due lati sul salto, ma la deviazione massima dalla curva non scende sotto un valore fisso, anche se il punto in cui viene raggiunta si avvicina sempre più alla discontinuità.

3.2 Trasformata di Fourier discreta

Passiamo subito al nocciolo della questione: in laboratorio non abbiamo \(f(t)\) su tutto il continuo del tempo, dato che richiederebbe una acquisizione a velocità infinita, cosa palesemente infattibile. Semmai avremo sempre un insieme finito di campioni presi a tempi discreti. Fissato un intervallo di campionamento \(\Delta t\), le misure saranno

\[f(t) \;\rightsquigarrow\; f_m = f(t_m), \qquad t_m = m\,\Delta t, \quad m = 0, 1, \dots, N-1,\]

con la frequenza di campionamento \(f_s = 1/\Delta t\), il numero di campioni \(N\) e il tempo di acquisizione \(T=N\Delta t\), come illustrato in Figura 3.2. Come vedremo questo ha delle conseguenze su cosa possiamo ricostruire e cosa no del segnale originale \(f(t)\) che stiamo misurando.

Figura 3.2: Campionamento a tempi discreti. La sinusoide vera (grigia) e i suoi \(N = 20\) campioni: i cerchi sono le misure, e sono tutto quello che resta del segnale — numerati da \(0\) a \(N-1\), che è il motivo per cui l’ultimo indice non è \(N\).

La ricetta della DFT nasce discretizzando l’integrale Equazione 3.2 e assumendo che \(f(t)\) sia costante a tratti. La somma di Riemann porterebbe con sé un fattore \(\Delta t/T = 1/N\): lo si lascia cadere, ed è la normalizzazione più comune, quella che scarica tutto il \(1/N\) sull’antitrasformata. Abbiamo quindi

\[\hat f_k = \sum_{m=0}^{N-1} f(t_m)\,e^{-j\,\omega_k t_m}, \tag{3.6}\]

dove è utile notare che non c’è necessità di tenere traccia di alcun fattore temporale in realtà, dato che \(\omega_k = 2\pi k/T\) e \(t_m = m\Delta t\) dove \(T = N\Delta t\) è il periodo totale di acquisizione. Infatti possiamo scrivere

\[\omega_k t_m = 2\pi \frac{km}{N}.\]

TeoremaTrasformata di Fourier discreta

La trasformata di Fourier discreta è definita dalla formula (si riporta la normalizzazione più comune)

\[\hat{f}_k = \sum_{m=0}^{N-1} f_m\, e^{-2j\pi km/N}, \qquad k = 0,\dots,N-1,\]

e si può invertire tramite l’antitrasformata

\[f_m = \frac{1}{N}\sum_{k=0}^{N-1} \hat f_k\, e^{+2j\pi km/N}, \qquad m = 0,\dots,N-1.\]

Uno dei benefit del passare ad un numero discreto e finito di valori è che queste equazioni sono esattamente valide, non c’è mai alcun problema di convergenza o validità. Tuttavia come vedremo ci sono delle conseguenze subdole sul significato di questa operazione.

Dimostrazione

Posto \(x = e^{2j\pi m/N}\), la chiave di volta è riconoscere la somma notevole

\[ \sum_{k=0}^{N-1}e^{2j\pi mk/N} = \sum_{k=0}^{N-1} x^k = \frac{1-x^N}{1-x} = \begin{cases} N &{\rm se}\,\,m=0\,\,({\rm mod} N) \\ 0 &{\rm altrimenti} \end{cases} \tag{3.7}\]

come si deduce facilmente dal fatto che \(x^N=1\) quindi la somma è sempre zero, eccetto quando \(x=1\) dove si ottiene la forma indefinita \(0/0\). Questo caso specifico può essere banalmente risolto osservando che abbiamo una banale somma di \(N\) termini uguali a \(1\). Sostituendo la definizione di \(\hat f_k\) nell’antitrasformata e scambiando le somme,

\[ \begin{aligned} f_m &= \frac{1}{N}\sum_{k=0}^{N-1} \hat f_k\, e^{+2j\pi km/N}\\ &=\frac{1}{N}\sum_{k=0}^{N-1}\Big(\sum_{m'=0}^{N-1} f_{m'}\, e^{-j2\pi km'/N}\Big) e^{+j2\pi km/N}\\ &= \frac{1}{N}\sum_{m'=0}^{N-1} f_{m'} \sum_{k=0}^{N-1} e^{\,j2\pi k(m-m')/N}\\ &= \frac{1}{N}\sum_{m'} f_{m'}\, N\,\delta_{m,m'} = f_m, \end{aligned} \]

perché la somma interna vale \(N\) solo quando \(m' = m\) (entro la finestra \(0,\dots,N-1\)) e \(0\) altrimenti. \(\blacksquare\)

Seguono varie osservazioni sulle proprietà di questa trasformazione, che sono utili nel suo utilizzo.

DefinizioneProprietà — Risoluzione spettrale

Dato che \(\omega_k=2\pi k/T\), la distanza fra due componenti consecutive della DFT è

\[\Delta f =\frac{\Delta \omega}{2\pi} = \frac{1}{T} = \frac{f_s}{N} \tag{3.8}\]

dove \(T\) è il periodo totale di acquisizione. Quindi: la risoluzione non dipende da quanto fitto si campiona, ma da quanto a lungo. Come sempre, la risoluzione non è necessariamente uguale alla precisione né all’accuratezza, ma comunque per stimare bene una frequenza è genericamente utile misurare a lungo.

DefinizioneProprietà — Le repliche spettrali o alias

I coefficienti \(\hat f_k\) non sono infiniti come nella serie continua e dopo un poco sono matematicamente identici

\[\hat f_{k+N} = \sum_{m=0}^{N-1} f_m\, e^{-2j\pi (k+N)m/N} = \sum_{m=0}^{N-1} f_m\, e^{-2j\pi km/N} = \hat f_k,\]

dato che \(2\pi (k+N)m/N = 2\pi km/N + 2\pi m\). Questo è normale: partendo da \(N\) campioni è normale che questa trasformazione produca \(N\) ampiezze e non un numero infinito. Il Teorema 3.1 più avanti dà ulteriori dettagli.

DefinizioneProprietà — Frequenze positive o negative?

Proprio perché \(\hat f_{k+N} = \hat f_k\), chiamare una frequenza “positiva” o “negativa” è solo questione di convenzioni: le componenti si potrebbero elencare da \(0\) a \((N-1)f_s/N\), e sarebbe legittimo. Fra tutte le repliche si sceglie spesso quella di modulo minimo, quindi le frequenze con \(k>N/2\) sono considerate negative con

\[\omega_k = (k-N)\frac{2\pi}{T}.\]

In questo modo lo spettro copre l’intervallo \([-f_s/2,\,+f_s/2]\).

DefinizioneProprietà — Trasformata di un segnale reale

Dato che i segnali che trattiamo sono reali, e quindi \(f_m^*=f_m,\) ne consegue la relazione

\[\hat f_{-k} = \hat f^*_k \tag{3.9}\]

come facilmente verificabile svolgendo il coniugato della trasformata discreta. Quindi l’informazione delle frequenze negative in questo caso è ridondante.

3.3 Rappresentazione dello spettro

Data la corrispondenza di Equazione 3.9, spesso si mostra solo la parte a frequenze positive, quello che si chiama uno spettro unilaterale. Questo è in contrasto con la possibilità di tracciare uno spettro bilaterale inclusivo di frequenze negative. Si noti che il risultato della trasformata è in unità non sempre ovvie, per esempio \(\hat f_0\) che è connesso con il valore medio del segnale è in realtà \(N\) volte il valore medio. Per questo è utile specificare come ottenere uno spettro unilaterale che illustri la vera ampiezza delle componenti spettrali.

TeoremaAmpiezza nello spettro unilaterale

L’ampiezza fisica della componente a pulsazione \(\omega_k\) (assumendo \(0 < k < N/2\)) è

\[A_k = \frac{2\,|\hat f_k|}{N}. \tag{3.10}\]

Il fattore \(2\) raccoglie i contributi gemelli a \(\pm\omega_k\); il \(1/N\) è la normalizzazione dell’antitrasformata. L’ampiezza zero va invece considerata come \(A_0=|\hat f_0|/N\). Per la potenza si usa l’ampiezza quadra media

\[\langle x^2\rangle_k = \frac{2\,|\hat f_k|^2}{N^2}, \tag{3.11}\]

che è quella da sommare quando si vuole l’energia contenuta in una regione spettrale.

Dimostrazione

La verifica è immediata su un coseno puro. Se \(\hat f_k = \hat f_{-k} = 1\) (e tutti gli altri coefficienti nulli), l’antitrasformata dà

\[f(t_m) = \frac{1}{N}\big(e^{+j\omega_k t_m} + e^{-j\omega_k t_m}\big) = \frac{2}{N}\,\cos(\omega_k t_m):\]

l’ampiezza fisica è \(2/N\) volte il modulo del coefficiente, esattamente Equazione 3.10. È la normalizzazione con cui si disegna lo spettro unilaterale: nel caso senza leakage il picco vale \(A_k = 1\), cioè l’ampiezza vera della sinusoide.

Le ampiezze possono essere calcolate con i seguenti codici MATLAB e python, si assume \(N\) pari:

% Non è necessario importare nulla

XTv = fft(xv);                  % trasformata
fv  = (0:(N/2))*fs/N;           % calcolo frequenze
Av  = abs(XTv(1:N/2+1))/N;      % calcolo ampiezze
Av(2:end-1) = 2*Av(2:end-1);    % correzione ampiezze AC
import numpy as np

XTv = np.fft.fft(xv)            # trasformata
fv = np.arange(0,N//2+1)*(fs/N) # calcolo frequenze
Av = np.abs(XTv[:N//2+1])/N     # calcolo ampiezze
Av[1:-1] = 2*Av[1:-1]           # correzione ampiezze AC
Figura 3.3: Esempio di risultato di una DFT e di rappresentazioni dello spettro. Il segnale in alto è trasformato e plottato in basso a sinistra così come è, con gli indici al posto delle frequenze e le frequenze “negative” per \(k>N/2\). Nel grafico in basso a destra gli indici sono stati trasformati in frequenze e nelle ordinate è mostrata l’ampiezza. I tasti di riproduzione riestraggono il rumore, lasciando il segnale com’è; lo slider ne regola la deviazione standard \(\sigma\), fino a \(1\,\mathrm{V}\). Il tratteggio verde è il livello atteso del fondo: un rumore bianco di deviazione standard \(\sigma\) dà in ogni bin un \(|X_k|\) con valore quadratico medio \(\sigma\sqrt N\), cioè \(2\sigma/\sqrt N\) nello spettro unilaterale.

Raccomandazioni su come disegnare gli spettri. Alcune raccomandazioni pratiche, che valgono per tutte le relazioni del corso:

  • Normalmente vogliamo mostrare solo lo spettro unilaterale, con l’ampiezza data da Equazione 3.10.
  • Per evitare di confondersi, chiediamo di usare tassativamente le unità Hz per i grafici in funzione della frequenza \(f\) e rad/s per i grafici in funzione della frequenza angolare \(\omega\).
  • Consigliato l’uso degli istogrammi quando si vuole rappresentare un contenuto spettrale. Se è importante mostrare una sequenza di armoniche, è meglio una scala lineare.
  • Consigliato l’uso di punti o (se non fuorviante, è sempre un poco opinabile) punti più spezzata per mostrare \(|\mathcal{H}(\omega)|\). Nel caso dei diagrammi di Bode va usata la scala bilogaritmica.

Probabilmente Figura 3.3 stimola la semplice domanda: come è fatto il rumore in trasformata? La risposta è relativamente semplice se tutte le misure hanno un rumore temporalmente scorrelato, in questo caso la matrice di covarianza fra le varie misure è diagonale. Possiamo ragionare in molti modi diversi, ma probabilmente il più semplice è in termini di propagazione dell’errore nella trasformazione

\[\hat f_k = \sum_{m=0}^{N-1} f_m e^{-2j\pi mk/N},\]

che suggerisce che ogni singola misura \(f_m\) con un rumore \(\sigma\) contribuisce in maniera identica alle fluttuazioni del modulo \(|\hat f_k|\). Ne consegue semplicemente che ci aspettiamo

\[\sigma^2_{\hat f_k} = N\sigma^2\]

con una interessante osservazione: il rumore temporalmente scorrelato non dipende dalla frequenza, e un rumore che non dipende dalla frequenza si dice rumore bianco. Questa non è l’unica opzione possibile, ma sarà quella con cui ci troveremo tipicamente a che fare.

Altri tipi di rumore. Li citiamo solamente. Un rumore che varia con la frequenza è temporalmente correlato. Per esempio, un disturbo a \(50\,{\rm Hz}\) ha ovviamente un picco in trasformata a \(50\,{\rm Hz}\). Un processo di diffusione, che è l’integrale di una velocità scorrelata, ha una dipendenza dalla frequenza pari a \(\sigma^2\propto 1/\omega^2\propto 1/f^2\) e cresce a frequenze basse, consistentemente col fatto che sui tempi lunghi una quantità che drifta tende a deviare molto dalla sua posizione originaria. Un altro tipo di rumore molto pervasivo è il rumore \(1/f\), di cui citiamo solo l’esistenza.

3.4 Artefatti della DFT

La Equazione 3.6 è una trasformazione esatta, che però può facilmente essere letta in maniera errata. Gli artefatti a cui è necessario fare attenzione sono sostanzialmente due:

Aliasing - le repliche spettrali

Come già mostrato, in DFT abbiamo \(\hat f_k=\hat f_{k+N}\): questo segnala una semplice verità: le frequenze \(\omega_k\) e \(\omega_{k+N}=\omega_k+2\pi f_s\) sono completamente indistinguibili quando campionate a frequenza \(f_s\). Di conseguenza, quando campioniamo un segnale e ne facciamo la DFT, lo spettro originario compare in un numero infinito di copie, traslate di multipli di \(f_s\), chiamate repliche o alias.

Questo fa sì che qualsiasi frequenza più alta di \(f_s/2\) in valore assoluto, comparirà anche sotto \(f_s/2\) come replica: è quindi importante non confondere una armonica vera con una replica. La regola per evitarlo è abbastanza banale: la posizione delle repliche dipende da \(f_s\) e basta cambiare campionamento e vedere se si spostano o meno. Si consiglia di usare Figura 3.5 per prendere confidenza con il concetto.

Contromisure. L’aliasing è un problema serio e viene tipicamente risolto con dei filtri anti-aliasing, che semplicemente filtrano il segnale prima del campionamento, in modo che non contenga più frequenze problematiche, che potrebbero essere male interpretate. In pratica, questo significa sopprimere qualsiasi armonica che abbia una frequenza in valore assoluto più alta di \(f_s/2\). L’esistenza di questo limite intrinseco è formalizzata nel seguente teorema.

Teorema 3.1: Teorema del campionamento (Nyquist–Shannon)

Il teorema stabilisce la condizione minima necessaria per ricostruire in maniera fedele un segnale, che si suppone abbia componenti spettrali fino ad una data \(f_{\rm max}\). La frequenza di campionamento deve soddisfare come minimo

\[f_s>2f_{\rm max}\]

dove \(2f_{\rm max}\) è anche detto tasso di Nyquist, da non confondere con la frequenza di Nyquist \(f_s/2\), che è il bordo superiore della banda ricostruibile a campionamento dato. Questa prescrizione serve ad evitare di ritrovarsi parte del segnale a frequenze finte per via dell’aliasing. Esistono anche condizioni pragmaticamente più solide che prescrivono un limite di \(2.5f_{\rm max}\) o perfino \(4f_{\rm max}\).

Si noti che nessuna delle onde mostrate in precedenza (quadra, triangolare, ecc) è veramente campionabile in maniera buona qui, perché contengono tutte un numero infinito di armoniche: non c’è alcun \(f_{\rm max}\) e una ricostruzione completa non è possibile ad alcun campionamento finito.

Leakage - quando la frequenza del segnale… non c’è!

Le frequenze della DFT sono discrete, e pari ai multipli di \(1/T\). Quando il segnale analizzato tramite DFT fa un numero intero \(k\) di oscillazioni in \(T\), la sua frequenza \(k/T\) è una di quelle previste e in effetti la DFT fa quello che ci si aspetta: ne estrae l’ampiezza. Che succede se invece il segnale ha una frequenza che non appartiene a nessuna di quelle “previste” dalla DFT? La risposta è il leakage spettrale: la potenza del segnale si sparpaglia sulle frequenze vicine, rendendo meno immediato determinare ampiezza, frequenza e fase del segnale originario.

Quanto è grande il leakage? Il modo più pulito per vederlo è con un semplice calcolo: prendiamo un coseno \(f(t) = \cos(\omega t) = (e^{+j\omega t} + e^{-j\omega t})/2\) e calcoliamone la DFT. Il termine \(e^{+j\omega t}\) dà

\[ \hat f_k = \frac{1}{2}\sum_{m=0}^{N-1} e^{j\omega m\Delta t}e^{-2j\pi mk/N} + \cdots = \frac{1}{2}\,\frac{1 - x^N} {1 - x} + \cdots, \tag{3.12}\]

dove \(x=\exp[\,j\,\omega\Delta t - j\,2\pi k/N\,]=e^{j\theta}\) e i puntini indicano il termine analogo con \(e^{-j\omega t}\), il picco “gemello” a frequenza negativa. Consideriamo ora l’identità \(1-x=1-e^{j\theta} = -2j\,e^{j\theta/2}\sin(\theta/2)\): applicata a numeratore e denominatore, fa semplificare i prefattori e lascia

\[ \hat f_k = \frac{1}{2}\;e^{\,j(N-1)\theta/2}\; \frac{\sin(N\theta/2)}{\sin(\theta/2)} + \cdots, \qquad \theta \equiv \omega\Delta t - \frac{2\pi k}{N}. \tag{3.13}\]

Se la nostra \(\omega\) è sufficientemente lontana da zero, possiamo trascurare il secondo termine omesso e

\[ |\hat f_k | = \frac{1}{2}\left| \frac{\sin(N\theta/2)}{\sin(\theta/2)}\right|. \tag{3.14}\]

Quando \(\theta=0\) per un qualche valore di \(k\), il picco di questa funzione visibile in tratteggio in Figura 3.4 cade su uno dei bin della trasformata, dove prende il valore \(N/2\), mentre tutti gli altri bin finiscono sui nodi in cui si annulla. Ergo, la trasformata è diversa da zero solo per la frequenza \(\omega_k\) pari all’omega del segnale (salvo aliasing). Diversamente, questa funzione descrive come la trasformata si “sparpaglia” sui bin vicini della trasformata.

La Figura 3.4 riporta una prima illustrazione di entrambi gli artefatti: in base al numero di periodi la trasformata mostra un unico bin popolato o molti vicini; in base alla frequenza del segnale ad un certo punto la frequenza riportata in trasformata non coincide più con quella reale ma con una replica.

Figura 3.4: Primo visualizzatore di aliasing e leakage. In alto una sinusoide campionata con \(32\) punti e a frequenza variabile. In basso il risultato della DFT in uno spettro bilaterale, dove le frequenze negative sono riportate in replica per \(f> f_s/2\).

L’Equazione 3.10 dà l’ampiezza vera solo se la riga sta tutta in un bin, cioè se nella finestra c’è un numero intero di periodi. Se non c’è, il picco si divide fra i bin vicini e leggerne uno solo sottostima l’ampiezza.

Che cosa fare per determinare l’ampiezza dell’armonica? In ordine di preferenza è possibile:

  • Aggiustare l’acquisizione. Se c’è libertà di campionamento si può cercare di acquisire un numero intero di periodi in modo da minimizzare l’effetto.
  • Sommare il lobo in quadratura. Si può mostrare che la somma dei moduli quadri dei vari bin interessati dal leakage è pari al quadrato dell’ampiezza dell’armonica. Tuttavia, questo è solo vero finché non ci sono effetti di interferenza e somma con altre componenti spettrali.
ImportanteTake-home

Dopo il recap ci si aspetta che ricordiate:

  • Definizioni di base, \(\Delta t\), \(f_s\), tempo di misura \(T=N\Delta t\); connessione di queste con le frequenze della trasformata.
  • Definizione di trasformata e antitrasformata e proprietà chiave
  • Come rappresentare una trasformata come uno spettro unilaterale delle ampiezze
  • Artefatti: cosa è l’aliasing, cosa è il leakage, come riconoscerli e gestirli in un dato trasformato.
  • Come scegliere un campionamento per raggiungere una certa risoluzione in frequenza, per minimizzare aliasing e/o leakage.

3.5 Testa la tua comprensione

La Figura 3.5 permette di giocare con le trasformate e di rendersi conto di prima mano di quali sono gli effetti del campionamento, quali artefatti emergono e quando e come si possono distinguere dalle caratteristiche “vere” della trasformata. Si consiglia di partire con un segnale semplice come una sinusoide per poi passare a quelli più problematici e con moltissime componenti spettrali, come per esempio una onda quadra.

Figura 3.5: Il tutorial DFT. In alto il segnale vero (blu), i campioni (arancio) e la finestra di acquisizione, il cui bordo è la barra verde. Si trascina in un punto qualsiasi del riquadro in alto e la barra segue il gesto: col tasto sinistro resta fisso il numero di campioni e cambia il passo di campionamento, col tasto destro resta fissa la frequenza di campionamento e cambia il numero di campioni, con la rotella cambia il numero di campioni a tempo di acquisizione costante. Su uno schermo touch è il numero di dita a fare da tasto: un dito come il sinistro, due dita come il destro, tre dita come la rotella — trascinando verso destra il numero di campioni cresce, verso sinistra cala. In basso lo spettro bilatero (blu) e il primo alias (arancio), cioè lo stesso spettro ripetuto a \(\pm f_s\): le fasce grigie coprono quello che sta oltre \(\pm f_s/2\), e quello che si vede nella striscia bianca è tutto ciò che la DFT sa distinguere. Rallentando il campionamento l’alias entra in banda e il titolo passa da verde a giallo a rosso — ma guarda solo la prima armonica, e su un’onda quadra le altre sono già ripiegate quando il semaforo è ancora verde.