J'essaie de changer la phase d'une image et d'en prendre la transformée de Fourier. Mais ce changement de phase provoque une fuite de puissance selon x et y.Prise de transformée de Fourier après déphasage
Supposons que mon image est une matrice tous les uns. Si je prends la transformée de Fourier, je reçois . Voyez que tout le pouvoir est au centre. En fait, à moins de zoomer, on ne peut pas tout voir.
Supposons maintenant que je multiplie la matrice par une sinusoïde complexe. Idéalement, le pouvoir devrait juste passer à la fréquence de sinusoïde. Mais c'est ce que je reçois . Notez la puissance qui fuit le long des axes x et y.
Pourquoi cela se produit-il? Est-ce à cause de la nature non continue des signaux?
S'il vous plaît voir le code python ci-dessous
import numpy as np
from matplotlib import pyplot as plt
# Init a all one array
base_image = np.ones([1024,1024])
#Generate a array so that we can make a sinusoid using it
x_cords = np.arange(base_image.shape[1]) - base_image.shape[1]/2
x_cords = np.transpose(x_cords)/512
x_cords = x_cords.astype(float)
x_cords = np.tile(x_cords, [base_image.shape[0], 1])
y_cords = np.transpose(x_cords)
#Generate the sinusoid
phase = np.exp(x_cords + y_cords)
#Apply this shift
new_image = base_image * phase
spec_base = np.fft.fftshift(np.fft.fft2(base_image))
spec_new = np.fft.fftshift(np.fft.fft2(new_image))
plt.imshow(np.log(np.abs(spec_base)))
plt.show()
plt.imshow(np.log(np.abs(spec_new)))
plt.show()
Merci d'avance pour les réponses