我试图用编程来增加我对傅里叶光学的理解。我知道傅里叶变换的傅里叶变换在物理上和数学上是反向的->;F{F{F(x)}=F(-x)。我有两个问题1)第二次变换除了在简单的高斯情况下(这使它更加混乱)外,不会返回任何与原始函数类似的东西,并且2)似乎有一些缩放因子需要我“放大”并扭曲变换后的图像,使其变得毫无帮助(如下所示)。**根据@Cris Luengo的建议进行编辑
#%% Playing with 2d Fouier Transform
import numpy as np
from scipy import fftpack
import matplotlib.pyplot as plt
import LightPipes
wavelength = 792*nm
size = 15*mm
N = 600
w0=3*mm
# Fields
sq = np.zeros([100,100])
sq[25:75, 25:75] = 1
F=Begin(size,wavelength,N)
I0 = Intensity(0,GaussBeam(F, w0, LG=True, n=0, m=0))
I1 = Intensity(0,GaussBeam(F, w0, LG=False, n=0, m=1))+Intensity(0,GaussBeam(F, w0, LG=False, n=1, m=0))
# Plot transforms
f = sq
F = np.fft.fftshift(fftpack.fft2(f))
F_F = fftpack.fft2((F))
plt.subplot(331), plt.imshow(f)
plt.title(r'f'), plt.xticks([]), plt.yticks([])
plt.subplot(332), plt.imshow(np.abs(F))
plt.title(r'F\{f\}'), plt.xticks([]), plt.yticks([])
plt.subplot(333), plt.imshow(np.abs(F_F))
plt.title('F\{F\{f\}\}'), plt.xticks([]), plt.yticks([])
# plt.subplot(331), plt.imshow(f)
# plt.title(r'f'), plt.xticks([]), plt.yticks([])
# plt.subplot(332), plt.imshow(np.abs(F))
# plt.title(r'F\{f\}'), plt.xticks([]), plt.yticks([])
# plt.subplot(333), plt.imshow(np.abs(F_F))
# plt.title('F\{F\{f\}\}'), plt.xticks([]), plt.yticks([])
f = I0
F = np.fft.fftshift(fftpack.fft2(f))
F_F = fftpack.fft2((F))
plt.subplot(334), plt.imshow(f)
plt.title(r'f'), plt.xticks([]), plt.yticks([])
plt.subplot(335), plt.imshow(np.abs(F))
plt.title(r'F\{f\}'), plt.xticks([]), plt.yticks([])
plt.subplot(336), plt.imshow(np.abs(F_F))
plt.title('F\{F\{f\}\}'), plt.xticks([]), plt.yticks([])
f = I1
F = fftpack.fft2(f)
F_F = fftpack.fft2(F)
plt.subplot(337), plt.imshow(f)
plt.title(r'f'), plt.xticks([]), plt.yticks([])
plt.subplot(338), plt.imshow(np.abs(F))
plt.title(r'F\{f\}'), plt.xticks([]), plt.yticks([])
plt.subplot(339), plt.imshow(np.abs(F_F))
plt.title('F\{F\{f\}\}'), plt.xticks([]), plt.yticks([])
plt.tight_layout()
plt.show()
在与Cris交谈之后,似乎没有比例因子,这种DFT似乎就是这样工作的。所以我找到的解决办法是把像素增加到我可以放大并有足够清晰的图像的程度。这不是一个很好的解决方案,但与
LightPipes
相结合,现在可以了解光模式的变换是什么样子,以及说明在透镜系统的像面上,它们将像在前焦场中一样出现相关问题 更多 >
编程相关推荐