Please note that the recommended version of Scilab is 2026.0.0. This page might be outdated.
See the recommended documentation of this function
ifftshift
inverse de fftshift
Séquence d'appel
y = ifftshift(x) y = ifftshift(x, along)
Paramètres
- x, y
vecteurs, matrices, ou hypermatrices de tailles et types identiques.
- along
1 | "r" | 2 | "c" | 0<along<=ndims(x): direction selon laquelle les moitiés sont commutées.
Description
ifftshift(x) échange les moitiés gauche et droite du vecteur
x.
Pour les matrices, ifftshift(x) commute le 1er et le 3ème quadrants,
ainsi que le 2ème et le 4ème quadrants.
Si x est un tableau multidimensionnel,
ifftshift(x) commute les "hyper-quadrants" opposés par
rapport au centre du tableau.
y = ifftshift(x,n) effectue la commutation seulement entre les 2
moitiés de x selon la dimension n° n.
![]() | ifftshift() est conçue telle que quel que soit x
de tailles paires et/ou impaires,
ifftshift(fftshift(x)) et fftshift(ifftshift(x))
sont toujours égaux à x. |
Exemples
Exemple n° 1 :
Lorsque la taille d'un vecteur (ou d'une dimension>1) est paire,
fftshift() et ifftshift() sont équivalentes.
Ce n'est plus le cas lorsque la taille est impaire (les longueurs des 2 "moitiés"
diffèrent alors de 1, et ifftshift le gère correctement):
even = [1 2 3 4 5 6]; odd = [1 2 3 4 5 6 7]; [fftshift(even) ; ifftshift(even)] [fftshift(odd) ; ifftshift(odd)] // Both are always reciprocal: ifftshift(fftshift(odd)) fftshift(ifftshift(odd))
--> even = [1 2 3 4 5 6]; --> odd = [1 2 3 4 5 6 7]; --> [fftshift(even) ; ifftshift(even)] ans = 4. 5. 6. 1. 2. 3. 4. 5. 6. 1. 2. 3. --> [fftshift(odd) ; ifftshift(odd)] ans = 5. 6. 7. 1. 2. 3. 4. 4. 5. 6. 7. 1. 2. 3. --> // Les deux fonctions sont exactement réciproques : --> ifftshift(fftshift(odd)) ans = 1. 2. 3. 4. 5. 6. 7. --> fftshift(ifftshift(odd)) ans = 1. 2. 3. 4. 5. 6. 7.
Exemple n° 2 :
// Création d'un signal t = 0:0.1:1000; x = 3*sin(t) + 8*sin(3*t) + 0.5*sin(5*t) + 3*rand(t); // Calcul de sa fft y = fft(x, -1); // Inversion du résultat shift = fftshift(y); // Inversion du résultat inversé invShift = ifftshift(shift); // On vérifie qu'on a bien recréé le résultat de départ and(y == invShift)
Exemple n° 3 :
// Création d'une image 2D t = 0:0.1:30; x = 3*sin(t')*cos(2*t) + 8*sin(3*t')*sin(5*t) + .. 0.5*sin(5*t')*sin(5*t) + 3*rand(t')*rand(t); // Calcul de la fft y = fft(x,-1); // Inversion du résultat shift = fftshift(y); // Inversion du résultat inversé invShift = ifftshift(shift); // On vérifie qu'on a bien recréé le résultat de départ and(y == invShift)
Voir aussi
Historique
| Version | Description |
| 6.0.2 | Option along ajoutée. |
| Report an issue | ||
| << hilb | Tranformées | bilt >> |
