Как я могу сделать дифракцию Фраунгофера 1-D для двойной щели - PullRequest
0 голосов
/ 05 октября 2019

Я очень новичок в питоне и хочу симулировать 1-D дифракцию Фраунгофера.

Во-первых, смоделируйте 1-D дифракцию Фраунгофера и ее фут для одной щели. Теперь на втором этапе хочу сделать свою двойную щель.

Я ищу в Интернете и нахожу два вида кода: один в моем коде, а другой - использование функции np.roll. Кто-нибудь может мне помочь, как разделить мою функцию записи на две части и проанализировать ее 1-D дифракцию Фраунгофера?

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()

введите описание изображения здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...