fftshift

Décalage du spectre de manière à centrer les basses fréquences au milieu.

Espace de nom : tsd::fourier

Prototype

Vecteur<T> fftshift(const Vecteur<T> &X)

Paramètres

Xspectre d'entrée, non centré (typiquement la sortie de la fonction fft)

Retourne

Spectre centré autour de 0 Hz.

Description

Cette fonction décale le spectre passé en entrée de manière à centrer le 0 Hz au milieu. Plus précisémment, si le nombre d'échantillons \(N\) est pair : \[ X'_k = X_{k+N/2\ [N]} \] soit : \[ X' = \left[X_{N/2}, X_{N/2+1}, \dots, X_{N-1}, X_0, X_1, \dots, X_{N/2-1}\right] \]

Et si \(N\) est impair : \[ X' = \left[X_{N/2+1}, X_{N/2+2}, \dots, X_{N-1}, X_0, X_1, \dots, X_{N/2}\right] \]

Exemple

  soit n = 10000;
  soit x  = bruit_colore(n, 1.0f);
  soit y1 = 10 * log10(abs2(fft(x)));
  soit y2 = fftshift(y1);


  soit fr1 = linspace(0, 1.0, n),
       fr2 = linspace(-0.5, 0.5, n);

  Figures f;
  f.subplot().plot(fr1, y1, "b-", "y1 (spectre avant fftshift)");
  f.subplot().plot(fr2, y2, "b-", "y2 (spectre après fftshift)");