fftw — transformée de Fourier rapide qui utilise la librairie FFTW
[y]=fftw(x) [y]=fftw(x,sign) [y]=fftw(x,sign,dim,incr) [y]=fftw(x,sign,[dim1 dim2 ...dimN],[incr1 incr2 ...incrN])
matrice/vecteur de donnée réelle ou complexe. Données d'entrée/sortie.
entier. 1 ou -1. Choix du type de transformée (inverse ou directe).
entier. Donne la dimension (la longueur) de la transformée.
entier. Donne l'entrelacement (l'écart entre les données consécutives) de la transformée.
Cette fonction réalise une Transformée de Fourier Discrete (TFD) inverse ou directe au moyen de la libraire FFTW.
Elle permet le calcul de transformée vectorielle, 2D et M-D.
Pour plus de détails concernant la syntaxe de l'appel à fftw, consultez la fonction fft de scilab.
Pour plus de détails concernant la libraire FFW, consultez le site web http://www.fftw.org.
Rmq : La fonction ffw enregistre automatiquement les dernières paramètres utilisés lors d'un appel pour les ré-utiliser une seconde fois.
Cela permet une amélioration significative du temps de calcul lorsque la fonction fftw est appelée consécutivement avec les mêmes paramètres.
//transformée 1D a = rand(50,1)+%i*rand(50,1); y = fftw(a); y = fftw(a,-1); //transformée inverse b = fftw(y,1); //transformée 2D a = rand(512,512)+%i*rand(512,512); y = fftw(a); //transformée M-D -ancienne séquence d'appel- a = rand(120,1); y = a; dim=[5 6 4];incr=[1 5 30]; for i=1:3 y = fftw(y,-1,dim(i),incr(i)); end //transformée M-D transform -nouvelle séquence d'appel- //plus performante que l'ancienne y = fftw(a,-1,[5 6 4],[1 5 30]); b = fftw(y,1,[5 6 4],[1 5 30]);