200 likes | 355 Views
Fast Fourier Transform (FFT). Corso di Metodi per il Trattamento Numerico di Dati Multimediali Laura Patricolo (50/174) Valeria Mele (50/18). DFT. f = [ f 0 , ...., f N -1 ] T per h = 0,…, N-1 F = [ F 0 , ...., F N -1 ] T. DFT. Forma matriciale: Con.
E N D
Fast Fourier Transform(FFT) Corso di Metodi per il Trattamento Numerico di Dati Multimediali Laura Patricolo (50/174) Valeria Mele (50/18)
DFT • f = [ f0, ...., fN-1]T • per h = 0,…, N-1 • F = [F0, ...., FN-1]T
DFT Forma matriciale: Con
L’operazione di scomposizione intesa con le due frecce indica che nella prima parte andranno gli elementi di posto pari, e nella seconda quelli di posto dispari. Esempio: è il vettore di dimensione N/4, ottenuto come prima parte del vettore a sua volta vettore di dimensione N/2, seconda parte del vettore
Scomposizione formale per h = 0,…, N-1
f(1)k f(1)k+(n/2) N.B.: l’apice accanto a f indica il passo di scomposizione corrente !! Componenti pari: Componenti dispari: h1 = 0,…, (N/2)-1
due trasformate di ordine N/2 Trasformando Trasformando Vettore delle componenti di posto dispari di F Vettore delle componenti di posto pari di F
RICORDA: nella notazione di F l’apice esprime la dimensionedel problema, il pedice porta traccia della scomposizione del vettore, indicando la relazione del vettore al passo corrente con quello al passo precedente. Nella notazione di f invece l’apice esprime il passo corrente. NOTA: In questo momento il pedice di F contiene anche l’indice dell’elemento generico (h1). Passo I) h1= 0, 1, 2, 3
Passo II) h2= 0, 1
Passo III) h3= 0
z a b butterfly schema butterfly
w1 w w2 w1 w3 w1 w w2 w3 w1 Passo k : N = 8 addizioni/sottrazionitra elementi del vettore f distanti N/2k log2N=3 passi
Abbiamo ridotto il numero delle addizioni/sottrazioni necessarie al calcolo della nostra DFT a N log2N = 8*3 = 24 invece che N2=64 come richieste dall’algoritmo classico
Notiamo però che il risultato dell’algoritmo è stato: i coefficienti Fh che abbiamo ottenuto trasformando i successivi vettori finon sono posti nell’ordine naturale
h inversione Integer Bit Reversal (IBR) - considera le rappresentazioni binarie degli interi 0, 1, … , N-1; - inverte le successioni di bit delle singole rappresentazioni; - determina i corrispondenti numeri decimali.
ALGORITMO FFT for m=1, z m2=2m-1 nm=N/2m for i=0, m2 step 2 for k=0, nm-1 g= fi*nm+k+ fnm+k fnm+k=( fi*nm+k - f(i+1)*nm+k)wk fi*nm+k=g endfor endfor endfor
CONCLUSIONI La trasformata di Fourier è una tecnica che proprio nelle applicazioni, dalla fisica dei plasmi alla sismografia, dalla Tac alla oceanografia, alla ricostruzione di immagini, ha trovato la sua legittimazione come strumento principale per la risoluzione effettiva di problemi concreti.Per dare un'idea del guadagno effettivo ricordiamo che la Nasa, nell'ambito del Progetto Ciclope per la ricerca delle intelligenze extraterrestri, ha operato la trasformazione di Fourier su un insieme di un miliardo di dati; ciò ha richiesto circa 9 ore di tempo con la Fft, contro gli oltre 36.000 anni necessari con l'algoritmo normale. Ovvero con 1024 punti il rapporto tra i tempi è pari a circa 150.
Bibliografia[1] – Cooley J. W. e Tukey J. W. , An algorithm for machine calculation of complex Fourier series, Maths comput., 19, 297 – 301 (1965).[2] - D. Bini, M. Capovani, G. Lotti, F. Romani "Complessità numerica", ed. Boringhieri (1981).[3] - G. Monegato "Fondamenti di Calcolo Numerico", ed. Levrotto&Bella (1990).[4] - “www.nr.com”, by Numerical Recipes Software, pubblicato da Cambridge University Press.[5] - “www.disi.unige.it/person/BoccacciP”, dott. P. Boccacci, Università di Genova.[6] - “http://digilander.libero.it/nfragale/metodi/capitolo6.html”, Libreria di Software Matematico, Manuale per l'utente.[7] - T. Scapolla dell’Università di Pavia, La trasformata di Fourier, Una formula dell'800 usata anche dalla Nasa,Tuttoscienze, inserto del quotidiano La Stampa, (1999) (reperibile all’indirizzo http://digilander.libero.it/arti2000/ts99/960904.htm) [8] – “www.wikipedia.org”, Wikipedia, the free encyclopedia.