DFT, matrice di Fourier e radici n-esime dell'unità
In questa pagina 5
La nota precedente (Polinomi - rappresentazione per coefficienti e per valori e convoluzioneun polinomio di grado limitato da n si rappresenta con n coefficienti o con n valori su n punti distinti (teorema di interpolazione, matrice di Vandermonde). Per coefficienti la somma costa n e il prodotto, la convoluzione lineare, n^2 prodotti e (n-1)^2 somme; per valori il prodotto costa 2n-1 prodotti ma serve una base estesa di almeno 2n-1 punti. Le conversioni generali costano troppo: valutazione n volte con Horner 2n(n-1), interpolazione con Gauss-Jordan n^3 o con Lagrange n^2. Serve una base speciale: la DFT.Polinomi - rappresentazione per coefficienti e per valori e convoluzione →) ha mostrato che per moltiplicare due polinomi in servirebbe una base di valutazione per cui le conversioni costino poco. Qui si sceglie la base: le radici -esime dell'unità. Si definisce la DFT, si dimostrano le proprietà delle radici che la rendono veloce e il teorema che la collega alla convoluzione lineare. Il calcolo veloce (FFT) è nella nota Fast Fourier Transform - algoritmo ricorsivo e trasformata inversala FFT calcola DFT_n (n potenza di due) con divide et impera: si separano i coefficienti di indice pari e dispari, p(x) = p0(x^2) + x p1(x^2), e per il lemma di dimezzamento bastano due DFT di ordine n/2; y_i = y0_i + w^i y1_i e y_{i+n/2} = y0_i - w^i y1_i. La ricorrenza T(n) = 2T(n/2) + 2n con T(1) = 0 ha soluzione esatta 2 n log2 n. L'inversa ha matrice F^{-1}_{ij} = w^{-ij}/n: si ottiene con la FFT sulle potenze negative (poi si divide per n fuori dalla ricorsione) oppure con DFT_n(y) rovesciato. LIN_CONV moltiplica due polinomi con n coefficienti in 12 n log2(2n) + 4n operazioni.Fast Fourier Transform - algoritmo ricorsivo e trasformata inversa →.
Il punto di vista dei corsi di segnali è diverso: là la DFT è la serie di Fourier di un segnale periodico (Trasformata di Fourier discreta (TFD)La TFD è la serie di Fourier dei segnali discreti periodici di periodo $N$: servono solo $N$ armoniche, $X(k)=\frac1N\sum_{n=0}^{N-1}x(n)e^{-j2\pi kn/N}$ e $x(n)=\sum_{k=0}^{N-1}X(k)e^{j2\pi kn/N}$. È un prodotto matrice-vettore in $\mathbb{C}^N$ (la matrice di Fourier); la convoluzione circolare diventa prodotto, $N X(k)Y(k)$. La FFT la calcola in $O(N\log N)$.Trasformata di Fourier discreta (TFD) →, Trasformata di Fourier discreta (DFT) e FFTUn segnale discreto periodico di periodo $NT$ ha una trasformata discreta e periodica, la DFT: $S(kF)=\sum_{n=0}^{N-1}T,s(nT)e^{-i2\pi kn/N}$, con $F=1/(NT)$, e $s(nT)=\sum_{k=0}^{N-1}F,S(kF)e^{i2\pi kn/N}$. Dipende da soli $N$ numeri, si calcola senza approssimazioni e con la FFT costa $N\log_2N$ invece di $N^2$. I coefficienti di Fourier del segnale periodico sono $S_k=F,S(kF)$. La DFT dà anche campioni della trasformata di un segnale discreto o continuo a durata limitata (con zero-padding), ma la scalatura $T$ e l'asse delle frequenze vanno gestiti con cura.Trasformata di Fourier discreta (DFT) e FFT →, Trasformata di Fourier discreta (DFT) e convoluzione circolareLa DFT di N campioni x[0..N-1] è X[k] = sum x[n] e^{-j2pi kn/N}, k = 0..N-1 (IDFT: x[n] = (1/N) sum X[k] e^{j2pi kn/N}); vede il segnale come periodico di periodo N e dà N campioni equispaziati della DTFT, cioè X(z) valutata sulle radici N-esime dell'unità. Se x ha durata M <= N non c'è aliasing temporale e lo zero-padding (N > M) infittisce solo i campioni della stessa DTFT. Proprietà: traslazione circolare, simmetria coniugata X[k] = X*[N-k], prodotto = convoluzione circolare. La convoluzione circolare coincide con la lineare solo se N >= Dx + M - 1; altrimenti la coda si ripiega sull'inizio. La FFT calcola la DFT con (N/2) log2 N moltiplicazioni invece di N^2.Trasformata di Fourier discreta (DFT) e convoluzione circolare →) e ha il segno meno nell'esponente. Qui è la valutazione di un polinomio in punti speciali, e la convenzione è quella delle dispense del corso, con il segno più: . Le due convenzioni differiscono per un'inversione degli indici (vedi più sotto); numpy.fft.fft usa il segno meno.
Numeri complessi in forma polare
Un numero complesso ha modulo e argomento (angolo con il semiasse reale positivo): (formula di Eulero, richiami in Numeri complessi, formula di Eulero ed esponenziali complessiUn numero complesso si scrive in forma cartesiana a+jb o polare |x|e^{jφ}; il prodotto moltiplica i moduli e somma le fasi. La formula di Eulero e^{jα}=cos α + j sin α lega esponenziali e sinusoidi e permette di trattare tutti i segnali del corso come somme di esponenziali complessi e^{(σ+jω)t}.Numeri complessi, formula di Eulero ed esponenziali complessi →). La forma esponenziale rende semplici potenze e radici: .
Radici -esime. Se allora , cioè , e differisce da per un multiplo di : . Le radici distinte sono Per (, ) si ottengono le radici -esime dell'unità .
Definizione (radice principale). La radice -esima principale dell'unità è . Le radici -esime dell'unità sono le sue prime potenze, , e formano il vettore . Poiché , vale per ogni (aritmetica modulare sugli esponenti; ).
Esempio (). e le potenze sono i vertici di un ottagono regolare inscritto nella circonferenza di raggio :
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | |
|---|---|---|---|---|---|---|---|---|
Grafico interattivo: Le otto radici ottave dell'unità: sono i vertici di un ottagono regolare sulla circonferenza di raggio 1, ω⁰ = 1 e ω⁴ = −1; ω^k forma l'angolo 2πk/8 con l'asse reale
Per : e . Per : e .
La DFT e la matrice di Fourier
Definizione (DFT). La trasformata discreta di Fourier di ordine è la funzione che a (coefficienti di ) associa le valutazioni di sulle radici -esime dell'unità: La coppia è una rappresentazione per valori di (le radici sono distinte, quindi vale il teorema di interpolazione).
Come per ogni valutazione, , dove è la matrice di Fourier, la Vandermonde delle radici: La prima riga e la prima colonna contengono solo (esponente ). è simmetrica () e invertibile (Vandermonde su punti distinti), quindi è lineare e invertibile: l'inversa è l'interpolazione da .
Esempio (). Con e :
Per si ha , , , . Quindi (controllato con numpy, dopo aver cambiato il segno dell'esponente).
Costo con la valutazione generale. applicazioni di Horner: operazioni.
Legame con la convenzione dei segnali. Con la "DFT dei segnali" è . Poiché , i due vettori differiscono per la permutazione , che lascia fermo l'indice e rovescia gli altri. La stessa permutazione compare nella trasformata inversa (nota sulla FFT).
Proprietà delle radici dell'unità
Gruppo. è un gruppo moltiplicativo: la chiusura è ; l'elemento neutro è ; l'inverso di è , che è per e per .
Lemma di cancellazione. Per interi positivi e : .
Dimostrazione. : il fattore si semplifica nell'esponente.
Corollario. Per pari, . Infatti per cancellazione, e . Geometricamente: dopo metà delle potenze il vettore ha percorso mezzo giro. Quindi .
Lemma di dimezzamento. Per pari, i quadrati , , coincidono a coppie: per vale Elevando al quadrato le radici -esime si ottengono quindi le radici -esime, ciascuna due volte.
Dimostrazione. per cancellazione. Inoltre .
Esempio (). Quadrando si ottiene : le quattro radici quarte dell'unità, ciascuna due volte.
Lemma di somma. Per e interi:
Dimostrazione. Se allora e la somma vale . Altrimenti e si usa la somma geometrica (Serie notevoli - geometrica, telescopica, armonicaLe serie di cui si conosce il carattere e da usare come termine di paragone: geometrica (converge a 1/(1-q) se |q|<1), telescopiche (somma b_1 - lim b_n, come Mengoli), armonica generalizzata (1/n^alpha converge se e solo se alpha>1).Serie notevoli - geometrica, telescopica, armonica →, valida anche in ):
Esempio. , : . : . : .
Osservazione. Tutti i risultati valgono identicamente con al posto di (le radici sono le stesse, in un altro ordine): serve per la trasformata inversa.
Esempio d'esame (Re e Im di ). Per periodicità (con e cancellazione). In modo più rapido, per cancellazione ripetuta: (perché ). Quindi e .
Il teorema di convoluzione lineare
Teorema (convoluzione lineare). Siano e . Allora dove indica la concatenazione (padding con zeri), il prodotto componente per componente.
Dimostrazione. Siano , e . Il padding non cambia i polinomi, ma li porta a limite di grado : e . Le due DFT di ordine sono le valutazioni e , . Il prodotto componente per componente è : sono le valutazioni di su . Il polinomio ha grado al più , quindi punti bastano a determinarlo e la sua rappresentazione per coefficienti con limite di grado è . Per il teorema di interpolazione, l'antitrasformata restituisce esattamente questo vettore.
Si usa l'ordine e non perché l'algoritmo veloce (FFT) lavora su potenze di due: raddoppiare mantiene la forma giusta e basta un solo zero di padding in più.
Esempio (). , , ordine . Con :
| vettore | trasformata (ordine ) |
|---|---|
| prodotto |
Il polinomio con coefficienti , cioè , vale in , in , in e in : sono i valori del prodotto. Quindi , che è anche .
Il costo di questa strada dipende da come si calcolano le DFT: con le valutazioni generali (nessun vantaggio), con la FFT (vedi Fast Fourier Transform - algoritmo ricorsivo e trasformata inversala FFT calcola DFT_n (n potenza di due) con divide et impera: si separano i coefficienti di indice pari e dispari, p(x) = p0(x^2) + x p1(x^2), e per il lemma di dimezzamento bastano due DFT di ordine n/2; y_i = y0_i + w^i y1_i e y_{i+n/2} = y0_i - w^i y1_i. La ricorrenza T(n) = 2T(n/2) + 2n con T(1) = 0 ha soluzione esatta 2 n log2 n. L'inversa ha matrice F^{-1}_{ij} = w^{-ij}/n: si ottiene con la FFT sulle potenze negative (poi si divide per n fuori dalla ricorsione) oppure con DFT_n(y) rovesciato. LIN_CONV moltiplica due polinomi con n coefficienti in 12 n log2(2n) + 4n operazioni.Fast Fourier Transform - algoritmo ricorsivo e trasformata inversa →). Lo stesso legame spiega perché le matrici circolanti si diagonalizzano con (Matrici circolanti e supercircolanti - algoritmi divide and conquerle matrici supercircolanti (quadranti alternati ricorsivi) hanno solo n valori distinti: somma in n operazioni, prodotto in 4n log2 n + n con il trucco (A1+A2)(B1+B2) e (A1-A2)(B1-B2) invece delle 4 chiamate (Theta(n^2)); gli autovalori sono la trasformata di Hadamard della prima riga (FHT, n log2 n) e il prodotto passa dalla base diagonalizzante; le matrici circolanti sono polinomi nella matrice di rotazione R, il loro prodotto è la convoluzione ciclica delle prime righe e si diagonalizzano con la matrice di Fourier: prodotto in O(n log n) con la FFT.Matrici circolanti e supercircolanti - algoritmi divide and conquer →).
Domande d'esame
- Determinare parte reale e immaginaria di . Traccia: , , quindi .
- Quanto vale ? E ? Traccia: lemma di somma; non è multiplo di quindi ; è multiplo di quindi .
- Perché nel teorema di convoluzione lineare si usa la DFT di ordine e non ? Traccia: il prodotto ha coefficienti; con punti la rappresentazione per valori non lo determina (serve una base di almeno punti); si arrotonda a per avere una potenza di due.
Esercizi svolti: Esercizio - domande di prima parte su polinomi, DFT e FFT (simulazioni d'esame); Esercizio - polinomio con tutte le radici dell'unità tranne 1 e -1, valutazione e DFT dei coefficienti (compito del 26 giugno 2025, es. 1).
Versione ripasso
- Radici dell'unità: ; le radici sono (vertici di un -agono regolare sulla circonferenza unitaria), . Le radici -esime di sono (Numeri complessi, formula di Eulero ed esponenziali complessiUn numero complesso si scrive in forma cartesiana a+jb o polare |x|e^{jφ}; il prodotto moltiplica i moduli e somma le fasi. La formula di Eulero e^{jα}=cos α + j sin α lega esponenziali e sinusoidi e permette di trattare tutti i segnali del corso come somme di esponenziali complessi e^{(σ+jω)t}.Numeri complessi, formula di Eulero ed esponenziali complessi →). Esempi: , , per : .
- DFT: , cioè con (Vandermonde simmetrica, invertibile, prima riga e colonna di ). Con la valutazione generale costa .
- Esempio: , con di righe , , , .
- Convenzioni: con il segno meno dei corsi di segnali (Trasformata di Fourier discreta (TFD)La TFD è la serie di Fourier dei segnali discreti periodici di periodo $N$: servono solo $N$ armoniche, $X(k)=\frac1N\sum_{n=0}^{N-1}x(n)e^{-j2\pi kn/N}$ e $x(n)=\sum_{k=0}^{N-1}X(k)e^{j2\pi kn/N}$. È un prodotto matrice-vettore in $\mathbb{C}^N$ (la matrice di Fourier); la convoluzione circolare diventa prodotto, $N X(k)Y(k)$. La FFT la calcola in $O(N\log N)$.Trasformata di Fourier discreta (TFD) →,
numpy) il risultato differisce per la permutazione . - Gruppo: chiusura , neutro , inverso .
- Cancellazione: (il fattore si semplifica nell'esponente). Corollario: , quindi .
- Dimezzamento ( pari): : i quadrati sono le radici -esime, ciascuna due volte. Dimostrazione: cancellazione e . Esempio : i quadrati sono .
- Somma: se , altrimenti : caso ragione ; altrimenti somma geometrica (Serie notevoli - geometrica, telescopica, armonicaLe serie di cui si conosce il carattere e da usare come termine di paragone: geometrica (converge a 1/(1-q) se |q|<1), telescopiche (somma b_1 - lim b_n, come Mengoli), armonica generalizzata (1/n^alpha converge se e solo se alpha>1).Serie notevoli - geometrica, telescopica, armonica →). Vale anche con . Esempio , : .
- Esempio d'esame: (oppure ).
- Convoluzione lineare: . Dimostrazione: il prodotto delle valutazioni è la valutazione di su ; lo determina, e l'interpolazione è unica. Si usa (non ) per avere una potenza di due.
- Esempio: con ordine : , valori di in ; risultato . Con la FFT costa ; lo stesso legame diagonalizza le matrici circolanti (Matrici circolanti e supercircolanti - algoritmi divide and conquerle matrici supercircolanti (quadranti alternati ricorsivi) hanno solo n valori distinti: somma in n operazioni, prodotto in 4n log2 n + n con il trucco (A1+A2)(B1+B2) e (A1-A2)(B1-B2) invece delle 4 chiamate (Theta(n^2)); gli autovalori sono la trasformata di Hadamard della prima riga (FHT, n log2 n) e il prodotto passa dalla base diagonalizzante; le matrici circolanti sono polinomi nella matrice di rotazione R, il loro prodotto è la convoluzione ciclica delle prime righe e si diagonalizzano con la matrice di Fourier: prodotto in O(n log n) con la FFT.Matrici circolanti e supercircolanti - algoritmi divide and conquer →).
- Domande tipo: e di ; perché non è multiplo di , mentre ; perché serve l'ordine : il prodotto ha coefficienti e l'algoritmo veloce richiede una potenza di due.
- Esercizi svolti: Esercizio - domande di prima parte su polinomi, DFT e FFT (simulazioni d'esame); Esercizio - polinomio con tutte le radici dell'unità tranne 1 e -1, valutazione e DFT dei coefficienti (compito del 26 giugno 2025, es. 1).
- Errori tipici: usare l'ordine invece di nel teorema; dimenticare ; ridurre l'esponente modulo l'ordine sbagliato (dopo una cancellazione l'ordine cambia); applicare il lemma di somma con come se desse .
Esercizi su questo argomento
- Esercizio - domande di prima parte su polinomi, DFT e FFT (simulazioni d'esame)
- Esercizio - matrice di Fourier per una matrice generica a sinistra e a destra e per aI + bU (compito del 27 gennaio 2025, es. 2)
- Esercizio - polinomio con tutte le radici dell'unità tranne 1 e -1, valutazione e DFT dei coefficienti (compito del 26 giugno 2025, es. 1)
- Esercizio - prodotto di matrici circolanti e convoluzione ciclica con la DFT (esercizi su supercircolanti e circolanti, es. CR 10)