Capitolo 7La DFT e la FFT
Tutto quello che precede ha costruito intuizione. Questo è l'algoritmo reale: data soltanto una lista di numeri campionati, calcola esattamente quali frequenze sono presenti nel segnale — senza sbirciare come è stato costruito.
La formula
La Trasformata Discreta di Fourier prende $N$ campioni $x_0, x_1, \dots, x_{N-1}$ e produce $N$ numeri complessi che descrivono il contenuto in frequenza del segnale:
Ogni $X_k$ risponde a una domanda: "quanto è presente della frequenza $k$ (in cicli per finestra di campioni)?" $|X_k|$ — il modulo di quel numero complesso — è esattamente l'altezza della barra che vedi tracciata sopra. Questa è la stessa rotazione $e^{-i\theta}$ dei cerchi del Capitolo 4, solo eseguita una volta per ogni frequenza che vuoi testare, invece che disegnata nel tempo.
Perché esiste la FFT
Calcolata direttamente, la formula sopra costa $O(N^2)$ moltiplicazioni — per ciascuna delle $N$ frequenze di uscita, sommi su tutti gli $N$ campioni di ingresso. La Trasformata Veloce di Fourier (FFT) non è una formula diversa; è la stessa DFT calcolata in modo intelligente, dividendo ricorsivamente la somma in campioni di indice pari e dispari e riutilizzando il lavoro tra loro. Questo riduce il costo a $O(N \log N)$:
| N (campioni) | DFT: N² op | FFT: N·log₂N op | Accelerazione |
|---|
Con $N$ piccolo la differenza conta a malapena. Nelle dimensioni usate dal reale trattamento di audio, immagini e segnali radio — milioni di campioni — la FFT è l'unica ragione per cui tutto ciò funziona in tempo reale.