Я пытаюсь взять преобразование Фурье различных структур решетки, но результаты, которые я получаю в моих первых тестах, не имеют смысла.
В качестве первого примера я хочу взятьпреобразование Фурье формы с треугольной симметрией.
Полученное преобразование Фурье также должно иметь 3-кратную вращательную симметрию, но я вижу что-то с квадратной симметрией, поэтому я знаю, что это неверно.
Любая идея, что яздесь не так?
import numpy as np
import matplotlib.pyplot as plt
def PlaneWave(x,y,amp,wavelength,angle):
"""
plane wave propagating in the x-y plane
Amplitude = amp
wavelength = wavelength
propagation angle (relative to +x) = angle
on the grid x,y
"""
return amp*np.exp(1j *2*np.pi/wavelength * (x *np.cos(angle) + y*np.sin(angle) ) )
def TLattice(x,y,amp,wavelength):
"""
compute the intensity profile of a 3-beam triangular lattice with in-plane polarization
"""
angle=np.pi/6
B1 = PlaneWave(x,y,amp,wavelength,angle )
angle=angle+np.pi*2/3
B2 = PlaneWave(x,y,amp,wavelength,angle )
angle=angle+np.pi*2/3
B3 = PlaneWave(x,y,amp,wavelength,angle )
return np.abs(B1+B2+B3)**2
size=5
dx=0.05
[xx,yy] = np.meshgrid(np.arange(-size,size,dx),np.arange(-size,size,dx))
pot = TLattice(xx,yy,4,1)
pot_fft =np.fft.fftshift(np.fft.fft2(pot))
f, (ax1,ax2) =plt.subplots(2)
f.suptitle('Comparing a triangular lattice and its FFT')
ax1.imshow(np.abs(pot))
ax1.set_title('triangular lattice')
ax2.imshow(np.log(np.abs(pot_fft)**2))
ax2.set_title('FFT should also show 3-fold rotational symmetry')
f.show()