matlab的光学仿真透镜,求救, 用Matlab fft作光学仿真 - 物理 - 小木虫 - 学术 科研 互动社区...

補上Matlab Code

clear all

wvl=632.8e-9; delta2=2e-7;f=1;Dz=1.002;N=2^10; pinr=10.1e-7;

L=wvl/delta2*Dz ;

k=2*pi/wvl; delta1= L/N;

[x1 y1] = meshgrid((-N/2 : N/2-1) * delta1);

x1_0 = (-N/2 : N/2-1) * delta1 ; y1_0 = x1_0 ;

%建立Lens

r1 = sqrt(x1.^2 + y1.^2);

pupil = r1 <= (0.1)* ones(N,N);

E0=1;

E1 = E0.*pupil.* exp(-1i*k/(2*f)*r1.^2) ;

[x2 y2] = meshgrid((-N/2 : N/2-1) / (N*d1)*wvl*Dz);

ft2(g, delta)=fftshift(fft2(fftshift(g))) * delta^2;

% evaluate the Fresnel-Kirchhoff integral

Uout = 1 / (i*wvl*Dz)  .* exp(i * k/(2*Dz) * (x2.^2 + y2.^2))  .* ft2(Uin .* exp(i * k/(2*Dz) ...

* (x1.^2 + y1.^2)), d1);

x2_0=x2(1,;y2_0=x2_0;

%加上pinhole

[E3,I3,II3, x2,y2 ] = addpinhole(E2,x2,y2,pinr);

%傳播

Dz2=100e-6;

[E4, x3, y3] =one_step_prop(E3, wvl, delta2, Dz2); (同 Fresnel-Kirchhoff integral)

x3_0=x3(1,;y3_0=x3_0;

I4= abs(E4).^2;,

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值