⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 用费涅尔波带片模拟透镜成像.m

📁 用费涅尔波带片模拟透镜成像
💻 M
字号:
%这个程序的入射屏面为V字母透射孔,用费涅尔波带片模拟透镜成像
close all

%*******设置参数********
r=632e-9; %入射光源波长
d0=200000;  %P1面到P2面距离
d1=d0/r*d0/256; %费涅尔波带片后焦距长度
k=2*pi/r;   
dx=1e-8;
du=r*d0/256/dx;  %抽样定理
dg=r*d1/256/du;  %抽样定理
%**********************

A=imread('E:\个人文件\毕业设计\衍射 matlab程序\V.bmp');
A=double(A);
subplot(2,2,1);imshow(A);title('P1物面的V字母入射光'); %P1物面的V字母入射函数
a=-128*dx:dx:127*dx; 
[x,y]=meshgrid(a);
b=-128*du:du:127*du; 
[u,v]=meshgrid(b);
B=1/(i*r*d0)*exp(i*k*d0)*exp(i*k/(2*d0)*(u.^2+v.^2)).*fft2(A.*exp(i*k*(x.^2+y.^2)/(2*d0)));  
B1=fftshift(abs(B))/max(max(abs(B)));
subplot(2,2,2);imshow(B1);title('P2面经费涅尔衍射后的光强分布');   %P2面经费涅尔衍射后的光强分布

r2=49;
a1=2.5*sqrt(r2);
b1=0;
%生成菲涅尔滤波片
L=zeros(256,256);
L(80:180,80:180)=1;
for k=1:56
    p=2.5*sqrt(k*r2);
for x=1:256
for y=1:256
    r1=sqrt((x-128)^2+(y-128)^2);
if r1>=a1&r1<=p
    L(x,y)=b1;
end
end
end
a1=p;
b1=abs(b1-1);
end
C=fftshift(B).*L;
C1=abs(C)/max(max(abs(C)));
subplot(2,2,3);imshow(C1); title('P3面经费涅尔波带片后的光强分布');    %P3面经费涅尔波带片后的光强分布

c=-128*dg:dg:127*dg; 
[g,h]=meshgrid(c);
D=1/(i*r*d1)*exp(i*k*d1)*exp(i*k/(2*d1)*(g.^2+h.^2)).*fft2(C.*exp(i*k*(u.^2+v.^2)/(2*d1)));
subplot(2,2,4);imshow(fftshift(abs(D))/max(max(abs(D))));title('P4像面经费涅尔衍射后的图像');    %P4像面经费涅尔衍射后的图像
figure,imshow(L);title('费涅尔波带片');
figure,imshow(fftshift(abs(D))*3/max(max(abs(D))));title('用费涅尔波带片模拟透镜成像—56环');

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -