Je veux calculer la transformée de Fourier inverse d'un spectre de puissance gaussien, obtenant ainsi à nouveau un gaussien. Je veux utiliser ce fait pour vérifier que l'IFFT de mon spectre de puissance gaussien est sensible, en ce sens qu'il produit un tableau de données efficacement distribué de manière gaussienne. Maintenant, il s'avère que l'IFFT doit être multiplié par un facteur 2 * pi * N, où N est la dimension du tableau, afin de récupérer la fonction de corrélation analytique (qui est la transformée de Fourier inverse du spectre de puissance) . Quelqu'un peut-il expliquer pourquoi?IFFT d'un spectre de puissance gaussien - Python
Voici la partie de code qui remplit d'abord un tableau avec le spectre de puissance gaussien, puis effectue l'IFFT du spectre de puissance.
power_spectrum_k = np.zeros(n, float)
for k in range(1, int(n/2+1)):
power_spectrum_k[k] = math.exp(-(2*math.pi*k*sigma/n)*(2*math.pi*k*sigma/n))
for k in range(int(n/2+1), n):
power_spectrum_k[k] = power_spectrum_k[int(k - n/2)]
inverse_transform2 = np.zeros(n, float)
inverse_transform2 = np.fft.ifft(power_spectrum_k)
où la symétrie du spectre de puissance vient de la nécessité d'obtenir une fonction réelle de corrélation, en même temps, en suivant les règles pour l'utilisation de numpy.ifft (citant la documentation:
" L'entrée doit être ordonnée de la même manière que fft, c'est-à-dire que [0] doit contenir le terme de fréquence zéro, [1: n/2 + 1] doit contenir les termes de fréquence positive, et a [n]/2 + 1:] devrait contenir les termes de fréquence négative, dans l'ordre décroissant de la fréquence négative ".)
Si votre résultat d'analyse est celui obtenu par intégration, vous devez vous rappeler que ifft est une transformée de Fourier discrète, pas la transformée continue. Votre question est probablement juste en regardant la définition des transformations discrètes: https://en.wikipedia.org/wiki/Discrete_Fourier_transform –