La matrice di Fourier è una matrice complessa simmetrica del tipo di Vandermonde che esprime in forma matriciale la trasformata discreta di Fourier (DFT).
Una trasformata discreta di Fourier (DFT) che trasforma una successione di N numeri complessi x 0 , … , x N − 1 {\displaystyle x_{0},\dots ,x_{N-1}} nella successione di N numeri complessi X 0 , … , X N − 1 {\displaystyle X_{0},\dots ,X_{N-1}} è espressa come una moltiplicazione tra matrici :
X = F N x {\displaystyle X=\mathbf {F} _{N}x} Esplicitamente:
F N = [ ω N 0 ⋅ 0 ω N 0 ⋅ 1 … ω N 0 ⋅ ( N − 1 ) ω N 1 ⋅ 0 ω N 1 ⋅ 1 … ω N 1 ⋅ ( N − 1 ) ⋮ ⋮ ⋱ ⋮ ω N ( N − 1 ) ⋅ 0 ω N ( N − 1 ) ⋅ 1 … ω N ( N − 1 ) ⋅ ( N − 1 ) ] = [ ω N j k ] j , k = 0 , 1 , … , N − 1 {\displaystyle \mathbf {F} _{N}={\begin{bmatrix}\omega _{N}^{0\cdot 0}&\omega _{N}^{0\cdot 1}&\ldots &\omega _{N}^{0\cdot (N-1)}\\\omega _{N}^{1\cdot 0}&\omega _{N}^{1\cdot 1}&\ldots &\omega _{N}^{1\cdot (N-1)}\\\vdots &\vdots &\ddots &\vdots \\\omega _{N}^{(N-1)\cdot 0}&\omega _{N}^{(N-1)\cdot 1}&\ldots &\omega _{N}^{(N-1)\cdot (N-1)}\\\end{bmatrix}}={\begin{bmatrix}\omega _{N}^{jk}\\\end{bmatrix}}\qquad j,k=0,1,\dots ,N-1} dove ω N {\displaystyle \omega _{N}} è una radice dell'unità primitiva N-esima e le sue potenze ω N k {\displaystyle \omega _{N}^{k}} , con k = 0 , 1 , . . . , N − 1 {\displaystyle k=0,1,...,N-1} , costituiscono tutte le radici N-esime dell'unità.
Nella formulazione standard si assume ω N = e − 2 π i / N {\displaystyle \omega _{N}=e^{-2\pi i/N}} : in tal caso la matrice di Fourier è propriamente associata alla trasformata discreta di Fourier (DFT). In altre formulazioni si adotta la convenzione con ω N = e 2 π i / N {\displaystyle \omega _{N}=e^{2\pi i/N}} , e in tal caso la matrice di Fourier, a meno del fattore 1 / N {\displaystyle 1/N} , risulta associata all'inversa della trasformata discreta di Fourier (IDFT).
I vettori colonna e riga della matrice di Fourier sono ortogonali. In particolare, indicando con F ¯ N {\displaystyle \mathbf {\overline {F}} _{N}} la matrice coniugata di F N {\displaystyle \mathbf {F} _{N}} :
F ¯ N = [ ω N − j k ] {\displaystyle \mathbf {\overline {F}} _{N}={\begin{bmatrix}\omega _{N}^{-jk}\\\end{bmatrix}}} risulta:
( F N F ¯ N ) r s = ∑ k = 0 N − 1 ω N r k ω N − k s = ∑ k = 0 N − 1 ω N k ( r − s ) = { N r = s 0 r ≠ s {\displaystyle \left(\mathbf {F} _{N}\mathbf {\overline {F}} _{N}\right)_{rs}=\sum _{k=0}^{N-1}\omega _{N}^{rk}\omega _{N}^{-ks}=\sum _{k=0}^{N-1}\omega _{N}^{k(r-s)}=\left\{{\begin{matrix}N&r=s\\\\0&r\neq s\end{matrix}}\right.} Infatti, posto q = r − s ≠ 0 {\displaystyle q=r-s\not =0} :
∑ k = 0 N − 1 ω N k q = 1 + ω N q + ω N 2 q + ⋯ + ω N ( N − 1 ) q {\displaystyle \sum _{k=0}^{N-1}\omega _{N}^{kq}=1+\omega _{N}^{q}+\omega _{N}^{2q}+\dots +\omega _{N}^{(N-1)q}} da cui:
ω N q ⋅ ∑ k = 0 N − 1 ω N k q = ω N q + ω N 2 q + ω N 3 q + ⋯ + ω N ( N − 1 ) q + ω N N q = 1 + ω N q + ω N 2 q + ⋯ + ω N ( N − 1 ) q = ∑ k = 0 N − 1 ω N k q {\displaystyle \omega _{N}^{q}\cdot \sum _{k=0}^{N-1}\omega _{N}^{kq}=\omega _{N}^{q}+\omega _{N}^{2q}+\omega _{N}^{3q}+\dots +\omega _{N}^{(N-1)q}+\omega _{N}^{Nq}=1+\omega _{N}^{q}+\omega _{N}^{2q}+\dots +\omega _{N}^{(N-1)q}=\sum _{k=0}^{N-1}\omega _{N}^{kq}} considerando il primo e l'ultimo termine:
( ω N q − 1 ) ⋅ ∑ k = 0 N − 1 ω N k q = 0 {\displaystyle \left(\omega _{N}^{q}-1\right)\cdot \sum _{k=0}^{N-1}\omega _{N}^{kq}=0} che implica:
∑ k = 0 N − 1 ω N k q = 0 {\displaystyle \sum _{k=0}^{N-1}\omega _{N}^{kq}=0} Pertanto si ha:
F N F ¯ N = N I N {\displaystyle \mathbf {F} _{N}\mathbf {\overline {F}} _{N}=N\mathbf {I} _{N}} dove I N {\displaystyle \mathbf {I} _{N}} è la matrice identità di ordine N {\displaystyle N} .
La trasformata inversa si ricava mediante la matrice inversa :
F N − 1 = 1 N F ¯ N {\displaystyle \mathbf {F} _{N}^{-1}={\frac {1}{N}}\mathbf {\overline {F}} _{N}} x = F N − 1 X {\displaystyle x=\mathbf {F} _{N}^{-1}X} Inoltre, la matrice di Fourier normalizzata secondo il fattore 1 / N {\displaystyle 1/{\sqrt {N}}} risulta essere una matrice unitaria :
U N = F N / N U N − 1 = U ¯ N | det ( U N ) | = 1 {\displaystyle \mathbf {U} _{N}=\mathbf {F} _{N}/{\sqrt {N}}\qquad \mathbf {U} _{N}^{-1}=\mathbf {\overline {U}} _{N}\qquad |\det(\mathbf {U} _{N})|=1} La fattorizzazione della matrice di Fourier in matrici sparse , contenenti cioè un gran numero di zeri e quindi tali da ridurre l'onere computazionale, è alla base degli algoritmi più diffusi per il calcolo della DFT, noti come trasformata di Fourier veloce (FFT).
Il caso più semplice si ha quando l'ordine della matrice è un numero pari (N = 2n). L'idea di base è quella di esprimere la matrice di Fourier di ordine 2n in termini della matrice di Fourier di ordine n. In tal caso, per le note proprietà della radice dell'unità , risulta infatti:
relazione tra ω 8 k e ω 4 l {\displaystyle \omega _{8}^{k}{\mbox{ e }}\omega _{4}^{l}} ω 2 n k con k = 0 , 1 , … , 2 n − 1 = { ω n l l = 0 , 1 , … , n − 1 rispett. per k = 0 , 2 , … , 2 n − 2 ω n l ⋅ ω 2 n l = 0 , 1 , … , n − 1 rispett. per k = 1 , 3 , … , 2 n − 1 {\displaystyle \omega _{2n}^{k}{\mbox{ con }}k=0,1,\dots ,2n-1=\left\{{\begin{matrix}\omega _{n}^{l}&l=0,1,\dots ,n-1&{\mbox{rispett. per }}k=0,2,\dots ,2n-2\\\\\omega _{n}^{l}\cdot \omega _{2n}&l=0,1,\dots ,n-1&{\mbox{rispett. per }}k=1,3,\dots ,2n-1\end{matrix}}\right.} La matrice di Fourier di ordine 2n risulta:
F 2 n = [ ω 2 n 0 ⋅ 0 ω 2 n 0 ⋅ 1 … ω 2 n 0 ⋅ ( 2 n − 1 ) ω 2 n 1 ⋅ 0 ω 2 n 1 ⋅ 1 … ω 2 n 1 ⋅ ( 2 n − 1 ) ⋮ ⋮ ⋱ ⋮ ω 2 n ( 2 n − 1 ) ⋅ 0 ω 2 n ( 2 n − 1 ) ⋅ 1 … ω 2 n ( 2 n − 1 ) ⋅ ( 2 n − 1 ) ] = [ ω 2 n 0 ⋅ k ω 2 n 1 ⋅ k ⋮ ω 2 n ( 2 n − 1 ) ⋅ k ] = [ ω 2 n j k ] con j , k = 0 , 1 , … , 2 n − 1 {\displaystyle \mathbf {F} _{2n}={\begin{bmatrix}\omega _{2n}^{0\cdot 0}&\omega _{2n}^{0\cdot 1}&\ldots &\omega _{2n}^{0\cdot (2n-1)}\\\omega _{2n}^{1\cdot 0}&\omega _{2n}^{1\cdot 1}&\ldots &\omega _{2n}^{1\cdot (2n-1)}\\\vdots &\vdots &\ddots &\vdots \\\omega _{2n}^{(2n-1)\cdot 0}&\omega _{2n}^{(2n-1)\cdot 1}&\ldots &\omega _{2n}^{(2n-1)\cdot (2n-1)}\\\end{bmatrix}}={\begin{bmatrix}\omega _{2n}^{0\cdot k}\\\omega _{2n}^{1\cdot k}\\\vdots \\\omega _{2n}^{(2n-1)\cdot k}\\\end{bmatrix}}={\begin{bmatrix}\omega _{2n}^{jk}\\\end{bmatrix}}{\mbox{ con }}j,k=0,1,\dots ,2n-1} Indicando con P 2 n {\displaystyle \mathbf {P} _{2n}} la matrice di permutazione che riordina le colonne di F 2 n {\displaystyle \mathbf {F} _{2n}} anteponendo le colonne di indice pari ( k = 0 , 2 , … , 2 n − 2 {\displaystyle k=0,2,\dots ,2n-2} ) a quelle di indice dispari ( k = 1 , 3 , … , 2 n − 1 {\displaystyle k=1,3,\dots ,2n-1} ), risulta:
F 2 n ⋅ P 2 n = [ ω n 0 ⋅ l | ω n 0 ⋅ l ⋅ ω 2 n 0 ω n 1 ⋅ l | ω n 1 ⋅ l ⋅ ω 2 n 1 ⋮ | ⋮ ω n ( 2 n − 1 ) ⋅ l | ω n ( 2 n − 1 ) ⋅ l ⋅ ω 2 n ( 2 n − 1 ) ] con l = 0 , 1 , … , n − 1 {\displaystyle \mathbf {F} _{2n}\cdot \mathbf {P} _{2n}={\begin{bmatrix}\omega _{n}^{0\cdot l}&\vline &\omega _{n}^{0\cdot l}\cdot \omega _{2n}^{0}\\\omega _{n}^{1\cdot l}&\vline &\omega _{n}^{1\cdot l}\cdot \omega _{2n}^{1}\\\vdots &\vline &\vdots \\\omega _{n}^{(2n-1)\cdot l}&\vline &\omega _{n}^{(2n-1)\cdot l}\cdot \omega _{2n}^{(2n-1)}\\\end{bmatrix}}{\mbox{ con }}l=0,1,\dots ,n-1} Le prime n righe della sottomatrice di sinistra coincidono, per definizione, con quelle della matrice di Fourier di ordine n , mentre le ultime n righe della sottomatrice di sinistra coincidono anch'esse con quelle della matrice di Fourier di ordine n . Risulta infatti:
ω n n ⋅ l = ω n 0 ⋅ l {\displaystyle \omega _{n}^{n\cdot l}=\omega _{n}^{0\cdot l}} ω n ( n + 1 ) ⋅ l = ω n 1 ⋅ l {\displaystyle \omega _{n}^{(n+1)\cdot l}=\omega _{n}^{1\cdot l}} … {\displaystyle \dots } ω n ( 2 n − 1 ) ⋅ l = ω n ( n − 1 ) ⋅ l {\displaystyle \omega _{n}^{(2n-1)\cdot l}=\omega _{n}^{(n-1)\cdot l}} Le prime n righe della sottomatrice di destra coincidono con quelle della matrice prodotto fra la seguente matrice diagonale di ordine n e la matrice di Fourier di ordine n :
D n = [ ω 2 n 0 0 … 0 0 ω 2 n 1 … 0 ⋮ ⋮ ⋱ ⋮ 0 0 … ω 2 n ( n − 1 ) ] {\displaystyle \mathbf {D} _{n}={\begin{bmatrix}\omega _{2n}^{0}&0&\ldots &0\\0&\omega _{2n}^{1}&\ldots &0\\\vdots &\vdots &\ddots &\vdots \\0&0&\ldots &\omega _{2n}^{(n-1)}\\\end{bmatrix}}} Le ultime n righe della sottomatrice di destra coincidono, a meno del segno, con le prime n . Risulta infatti:
ω 2 n n = ω 2 n n ⋅ ω 2 n 0 = − ω 2 n 0 {\displaystyle \omega _{2n}^{n}=\omega _{2n}^{n}\cdot \omega _{2n}^{0}=-\omega _{2n}^{0}} ω 2 n ( n + 1 ) = ω 2 n n ⋅ ω 2 n 1 = − ω 2 n 1 {\displaystyle \omega _{2n}^{(n+1)}=\omega _{2n}^{n}\cdot \omega _{2n}^{1}=-\omega _{2n}^{1}} … {\displaystyle \dots } ω 2 n ( 2 n − 1 ) = ω 2 n n ⋅ ω 2 n ( n − 1 ) = − ω 2 n ( n − 1 ) {\displaystyle \omega _{2n}^{(2n-1)}=\omega _{2n}^{n}\cdot \omega _{2n}^{(n-1)}=-\omega _{2n}^{(n-1)}} Sulla base delle precedenti considerazioni, si può scrivere:
F 2 n ⋅ P 2 n = [ F n | D n ⋅ F n F n | − D n ⋅ F n ] = [ I n | D n I n | − D n ] [ F n | 0 0 | F n ] {\displaystyle \mathbf {F} _{2n}\cdot \mathbf {P} _{2n}={\begin{bmatrix}\mathbf {F} _{n}&\vline &\mathbf {D} _{n}\cdot \mathbf {F} _{n}\\\hline \mathbf {F} _{n}&\vline &-\mathbf {D} _{n}\cdot \mathbf {F} _{n}\\\end{bmatrix}}={\begin{bmatrix}\mathbf {I} _{n}&\vline &\mathbf {D} _{n}\\\hline \mathbf {I} _{n}&\vline &-\mathbf {D} _{n}\\\end{bmatrix}}{\begin{bmatrix}\mathbf {F} _{n}&\vline &0\\\hline 0&\vline &\mathbf {F} _{n}\\\end{bmatrix}}} e quindi ( P 2 n ⋅ P 2 n T = I 2 n {\displaystyle \mathbf {P} _{2n}\cdot \mathbf {P} _{2n}^{T}=\mathbf {I} _{2n}} ):
F 2 n = [ I n | D n I n | − D n ] [ F n | 0 0 | F n ] P 2 n T {\displaystyle \mathbf {F} _{2n}={\begin{bmatrix}\mathbf {I} _{n}&\vline &\mathbf {D} _{n}\\\hline \mathbf {I} _{n}&\vline &-\mathbf {D} _{n}\\\end{bmatrix}}{\begin{bmatrix}\mathbf {F} _{n}&\vline &0\\\hline 0&\vline &\mathbf {F} _{n}\\\end{bmatrix}}\mathbf {P} _{2n}^{T}} Come esempio di fattorizzazione nel caso N = 4 {\displaystyle N=4} :
F 4 = [ 1 1 1 1 1 − i − 1 i 1 − 1 1 − 1 1 i − 1 − i ] = [ 1 0 1 0 0 1 0 − i 1 0 − 1 0 0 1 0 i ] [ 1 1 0 0 1 − 1 0 0 0 0 1 1 0 0 1 − 1 ] [ 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 ] {\displaystyle \mathbf {F} _{4}={\begin{bmatrix}1&1&1&1\\1&-i&-1&i\\1&-1&1&-1\\1&i&-1&-i\\\end{bmatrix}}={\begin{bmatrix}1&0&1&0\\0&1&0&-i\\1&0&-1&0\\0&1&0&i\\\end{bmatrix}}{\begin{bmatrix}1&1&0&0\\1&-1&0&0\\0&0&1&1\\0&0&1&-1\\\end{bmatrix}}{\begin{bmatrix}1&0&0&0\\0&0&1&0\\0&1&0&0\\0&0&0&1\\\end{bmatrix}}} A seguito della fattorizzazione l'onere computazionale, inizialmente pari a N 2 {\displaystyle N^{2}} , diventa pari a: 2 ( N 2 ) 2 + N 2 {\displaystyle 2\left({\frac {N}{2}}\right)^{2}+{\frac {N}{2}}} . La matrice di permutazione ha un onere computazionale nullo. Il primo termine è relativo al doppio prodotto per la matrice di Fourier di ordine dimezzato. Il secondo termine è relativo al prodotto per la matrice diagonale D {\displaystyle D} ; il prodotto per la matrice − D {\displaystyle -D} si ottiene infatti da quello per D {\displaystyle D} mediante un semplice cambio di segno.
Se l'ordine iniziale è una potenza di due ( N = 2 m ) {\displaystyle \left(N=2^{m}\right)} il processo di fattorizzazione può continuare fino ad esprimere la matrice iniziale di ordine N in funzione di N matrici di Fourier di ordine 1 (coincidenti con la matrice identità di ordine N). In tal caso, l'onere computazionale residuo è quello relativo alle m matrici diagonali ottenute dalla fattorizzazione: N / 2 ⋅ m = ( N / 2 ) log 2 N {\displaystyle N/2\cdot m=(N/2)\log _{2}N} .
Strang G. Introduction to Linear Algebra, 4th Edition , Wellesley - Cambridge Press, 2009. Strang, G. Wavelet Transforms Versus Fourier Transforms. Bull. Amer. Math. Soc. 28, 288-305, 1993.