我是python的初学者,想模拟一维夫琅和费衍射
首先,对一维夫琅和费衍射及其傅里叶变换进行了数值模拟。现在在第二阶段,我们要做双缝
我在网上搜索发现两种代码,一种是我的代码,另一种是使用np.roll函数。有人能帮我把rec函数一分为二,分析它的一维夫琅和费衍射吗
import matplotlib.pyplot as plt
import numpy as np
N=1024; dx=0.002
landa=0.6328
z=4
nRange=np.arange(-N/2, N/2)
x=dx*nRange
NxpR=200
u1=np.zeros(N); u1[abs(nRange)<=NxpR]=1 #rect func
df=1/(N*dx)
f=df*nRange
deltax=df*landa*z
u1F=np.fft.fftshift(np.fft.fft(u1))
#u2= np.roll(u1,0 )
u2=np.exp(1j*landa/(2*z)*deltax**2*nRange**2)*u1F
fig = plt.figure()
fig.add_subplot(3,1,1)
plt.plot(x,u1)
plt.xlabel('x')
plt.ylabel('u1')
#plt.title(
fig.add_subplot(3,1,2)
plt.plot(x,abs(u1F))
plt.ylabel('u1F')
plt.xlabel('freq')
x_2 = x*1000000
fig.add_subplot(3,1,3)
plt.plot(x_2,abs(u2**2))
plt.ylabel('u2')
plt.xlabel('x')
plt.show()
目前没有回答
相关问题 更多 >
编程相关推荐