圆孔矩孔的菲涅尔衍射模拟matlab实现工程光学
基于matlab的衍射系统仿真(1)

《工程光学》综合性练习二题目:基于matlab的衍射系统仿真综合练习大作业二一、要求3-4人组成小组,对下面给出的各题目利用Matlab等工具进行仿真。
练习结束时每组提交一份报告及仿真程序。
在报告中应注明各仿真结果所对应的参数,如屏与衍射屏间距、孔径形状尺寸等。
二、仿真题目1.改变观察屏与衍射屏间距,观察观察屏上发生的衍射逐渐由菲涅耳衍射转为夫琅和费衍射1)原理图:S点光源发出的波长lam=500纳米S点发出光线经过单缝,缝宽a;单缝到衍射屏的距离L'2)Matlab代码clear;clcl=10; %l=input ('单缝到衍射屏的距离L=');a=0.2; %a=input('单缝的宽度(mm)a=');lam=500e-6; %lam=input('波长(nm)');x=-1:0.001:1; %接收屏边界y=x./sqrt(x.^2+l^2);z=a.*y/lam;I=1000*(sinc(z)).^2; %计算接受屏某点光强subplot(2,1,1) %绘制仿真图样及强度曲线image(2,x,I)colormap(gray(3))title('单缝衍射条纹')subplot(2,1,2)plot(x,I)title(光强分布)3)初始仿真图样(d=10)4)改变d之后的图样(d=1000)5)变化规律根据衍射屏以及接受屏的相对位置不同,由此产生菲涅尔衍射和夫琅禾费衍射的区别,根据我们模拟的情况得到菲涅尔衍射和夫琅禾费衍射的明显不同是夫琅禾费衍射条件下:中央有一条特别明亮的亮条纹,其宽度是其他亮条纹的两倍;其他亮条纹的宽度相等,亮度逐渐下降。
2.改变孔径形状、尺寸,观察图样变化1)原理图矩孔衍射:透镜焦距:1000mm;照射光波长:500nm;孔高:a(mm);孔宽:b(mm);圆孔衍射:圆孔直径:r(mm);照射光波长:500nm;照射光波长:500nm;2)matlab代码矩孔衍射:focallength=1000;lambda=500;a=2.0;b=2.0;resolution=64;center=(resolution)/2;A=zeros(resolution,resolution);for i=1:1:resolutionfor j=1:1:resolutionif abs(i-center)<a*10/2 & abs(j-center)<b*10/2 A(j,i)=255;endendendE=ones(resolution,resolution);k=2*pi*10000/focallength/lambda;imag=sqrt(-1);for m=1:1:resolutionx=m-center;for n=1:1:resolutiony=n-center;C=ones(resolution,resolution);for i=1:1:resolutionp=i-center;for j=1:1:resolutionq=j-center;C(j,i)=A(j,i)*exp(-imag*k*(x*p+y*q)); endendE(n,m)=sum(C(:));endendE=abs(E);I=E.^2;I=I.^(1/3);I=I.*255/max(max(I));L=I;I=I+256;CM=[pink(255).^(2/3);gray(255)];Colormap(CM);edge=(resolution-1)/20;[X,Y]=meshgrid([-edge:0.1:edge]);x=linspace(-edge,edge,resolution);y=linspace(-edge,edge,resolution);subplot(1,2,1);surf(x,y,L);axis([-edge,edge,-edge,edge,0,255]);caxis([0,511]);subplot(1,2,2);image(x,y,I);axis([-edge,edge,-edge,edge,0,511]);view(2);axis square;圆孔衍射:clearlmda=500e-9; %波长r=1.2e-3; %f = 1; %焦距N = 19;K = linspace(-0.1,0.1,N) ;lmda1 = lmda* ( 1 + K) ;xm = 2000* lmda* f;xs = linspace(-xm,xm,2000) ;ys = xs;z0 = zeros( 2000) ;[x,y]= meshgrid( xs) ;for i = 1: 19s = 2*pi*r*sqrt(x.^2 + y.^2)./(lmda1( i) ) ;z = 4* ( besselj( 1,s)./( s + eps) ).^2; %光强公式z0 = z0 + z;endz1 = z0 /19;subplot( 1,2,1)imshow( z1* 255) ; %平面图xlabel( 'x')ylabel( 'y')subplot( 1,2,2)mesh( x,y,z1) %三维图colormap(gray)xlabel( 'x')ylabel( 'y')zlabel( '光强')3)仿真图样:矩孔衍射:a=1,b=2a=2,b=2可知:矩孔在一个维度上展宽一定倍数将导致衍射图样在相同维度上缩短相同倍数,同时能量会更向中心亮斑集中。
利用MATLAB语言进行光学衍射现象的仿真

利用MATLAB语言进行光学衍射现象的仿真储林华(安庆师范学院物理与电气工程学院安徽安庆246011)指导教师:张杰摘要:光的衍射是光的波动性的一种重要表现,因此对光的衍射现象的研究,不仅具有重要的理论意义,而且在光学仪器研制和成像分析等诸多实际应用方面均有重要价值,但是其衍射光强的计算非常复杂,对实验条件的要求非常高,通常情况下很难得到满意的效果,严重影响了光学的教学。
本文从衍射的相关理论知识出发,首先介绍了惠更斯--菲涅耳原理及其数学表示形式,然后重点讨论了单色光经各种对称光学衍射元件(单缝,双缝,光栅,圆孔)的夫琅和费衍射情况,并分别给出了它们在焦平面上的衍射光强计算公式,最后利用科学计算软件MA TLAB对光的衍射现象进行了仿真,所得到的图样细致逼真,使整个物理过程变得直观形象,且与实验所得到的衍射图样进行了比较,两者吻合得很好,从而为光学的理论分析和实验教学提供了一种新的途径。
关键词:光的衍射,光栅衍射,圆孔衍射,Matlab,计算机仿真0 引言光的衍射现象是光具有波动性的重要特征,因此对衍射现象的研究无论在理论上还是在实践中都有很重要的意义。
对光的衍射现象的研究,始于17世纪,当时著名的荷兰科学家惠更斯提出了光是一种波的假说,并根据波动理论提出了光的传播理论——即惠更斯原理[1],根据这一原理,他解释了光的反射定律和折射定律,给出了折射率的意义,光在两种介质中的速度比。
到了19世纪,法国年轻的科学家菲涅耳,根据叠加原理把惠更斯原理进一步具体化,给出了光在传播过程中光强学计算公式,这就是著名的惠更斯-菲涅耳原理[2]。
但由于在实际应用过程中,障碍物形状的不规则性,导致光强的计算公式几乎无解析解,只能进行一些数值计算。
针对衍射计算中出现的困难,近代的研究人员想到运用科学的计算软件MA TLAB,利用其较强的绘图和图象功能,编写计算程序,使得多种衍射元件(单缝,双缝,光栅,矩孔,圆孔)下的衍射现象得以在计算机中形象地被模拟仿真。
基于matlab的衍射系统仿真 -

成绩:《工程光学》综合性练习二题目:基于matlab的衍射系统仿真学院精密仪器与光电子工程学院专业测控技术与仪器年级20**级班级**班姓名20**年**月综合练习大作业二一、要求3-4人组成小组,对下面给出的各题目利用Matlab等工具进行仿真。
练习结束时每组提交一份报告及仿真程序。
在报告中应注明各仿真结果所对应的参数,如屏与衍射屏间距、孔径形状尺寸等。
二、仿真题目1.改变观察屏与衍射屏间距,观察观察屏上发生的衍射逐渐由菲涅耳衍射转为夫琅和费衍射1)原理图:S点光源发出的波长lam=500纳米S点发出光线经过单缝,缝宽a;单缝到衍射屏的距离L'2)Matlab代码clear;clcl=10;%l=input('单缝到衍射屏的距离L=');a=0.2;%a=input('单缝的宽度(mm)a=');lam=500e-6;%lam=input('波长(nm)');x=-1:0.001:1;%接收屏边界y=x./sqrt(x.^2+l^2);z=a.*y/lam;I=1000*(sinc(z)).^2;%计算接受屏某点光强subplot(2,1,1)%绘制仿真图样及强度曲线image(2,x,I)colormap(gray(3))title('单缝衍射条纹')subplot(2,1,2)plot(x,I)title(光强分布)3)初始仿真图样(d=10)4)改变d之后的图样(d=1000)5)变化规律根据衍射屏以及接受屏的相对位置不同,由此产生菲涅尔衍射和夫琅禾费衍射的区别,根据我们模拟的情况得到菲涅尔衍射和夫琅禾费衍射的明显不同是夫琅禾费衍射条件下:中央有一条特别明亮的亮条纹,其宽度是其他亮条纹的两倍;其他亮条纹的宽度相等,亮度逐渐下降。
2.改变孔径形状、尺寸,观察图样变化1)原理图矩孔衍射:透镜焦距:1000mm;照射光波长:500nm;孔高:a(mm);孔宽:b(mm);圆孔衍射:圆孔直径:r(mm);照射光波长:500nm;照射光波长:500nm;2)matlab代码矩孔衍射:focallength=1000;lambda=500;a=2.0;b=2.0;resolution=64;center=(resolution)/2;A=zeros(resolution,resolution);for i=1:1:resolutionfor j=1:1:resolutionif abs(i-center)<a*10/2&abs(j-center)<b*10/2 A(j,i)=255;endendendE=ones(resolution,resolution);k=2*pi*10000/focallength/lambda;imag=sqrt(-1);for m=1:1:resolutionx=m-center;for n=1:1:resolutiony=n-center;C=ones(resolution,resolution);for i=1:1:resolutionp=i-center;for j=1:1:resolutionq=j-center;C(j,i)=A(j,i)*exp(-imag*k*(x*p+y*q)); endendE(n,m)=sum(C(:));endendE=abs(E);I=E.^2;I=I.^(1/3);I=I.*255/max(max(I));L=I;I=I+256;CM=[pink(255).^(2/3);gray(255)];Colormap(CM);edge=(resolution-1)/20;[X,Y]=meshgrid([-edge:0.1:edge]);x=linspace(-edge,edge,resolution);y=linspace(-edge,edge,resolution);subplot(1,2,1);surf(x,y,L);axis([-edge,edge,-edge,edge,0,255]);caxis([0,511]);subplot(1,2,2);image(x,y,I);axis([-edge,edge,-edge,edge,0,511]);view(2);axis square;圆孔衍射:clearlmda=500e-9;%波长r=1.2e-3;%f=1;%焦距N=19;K=linspace(-0.1,0.1,N);lmda1=lmda*(1+K);xm=2000*lmda*f;xs=linspace(-xm,xm,2000);ys=xs;z0=zeros(2000);[x,y]=meshgrid(xs);for i=1:19s=2*pi*r*sqrt(x.^2+y.^2)./(lmda1(i));z=4*(besselj(1,s)./(s+eps)).^2;%光强公式z0=z0+z;endz1=z0/19;subplot(1,2,1)imshow(z1*255);%平面图xlabel('x')ylabel('y')subplot(1,2,2)mesh(x,y,z1)%三维图colormap(gray)xlabel('x')ylabel('y')zlabel('光强')3)仿真图样:矩孔衍射:a=1,b=2a=2,b=2可知:矩孔在一个维度上展宽一定倍数将导致衍射图样在相同维度上缩短相同倍数,同时能量会更向中心亮斑集中。
实验7 衍射的Matlab模拟

实验7衍射的Matlab模拟一、实验目的:掌握衍射的matlab模拟。
二、实验内容:1)单个圆孔夫朗和费衍射的matlab模拟2)双圆孔夫朗和费衍射的matlab模拟3)同一波长,狭缝数量分别为1、2、3、6、9、10时候的夫朗和费衍射的matlab模拟4)对4个不同波长的光照射时,狭缝数量分别为1、3时候的夫朗和费衍射的matlab 模拟5)单个圆孔菲涅尔衍射的matlab模拟6)模拟圆孔(或者单缝)衍射时,衍射屏到接收屏距离不同的时候衍射的图样1)clearclclam=632.8e-9;a=0.0005;f=1;m=300;ym=4000*lam*f;ys=linspace(-ym,ym,m);xs=ys;n=200;for i=1:mr=xs(i)^2+ys.^2;sinth=sqrt(r./(r+f^2));x=2*pi*a*sinth./lam;hh=(2*BESSELJ(1,x)).^2./x.^2;b(:,i)=(hh)'.*5000;B=b/max(b);endimage(xs,ys,b);colormap(gray(n));figure;plot(xs,B);colormap(green);-2.5-2-1.5-1-0.500.51 1.52 2.5x 10-3-2.5-2-1.5-1-0.50.511.522.5x 10-3-3-2-10123x 10-300.10.20.30.40.50.60.70.80.912)%双圆孔夫琅禾费衍射clear all close all clc %lam=632.8e-9;a=0.0005;f=1;m=300;ym=4000*lam*f;ys=linspace(-ym,ym,m);xs=ys;n=200;for i=1:m r=xs(i)^2+ys.^2;sinth=sqrt(r./(r+f^2));x=2*pi*a*sinth./lam;h=(2*BESSELJ(1,x)).^2./x.^2;d=10*a;deltaphi=2*pi*d*xs(i)/lam;hh=4*h*(cos(deltaphi/2))^2;b(:,i)=(hh)'.*5000;end image(xs,ys,b);colormap(gray(n));-2.5-2-1.5-1-0.500.51 1.52 2.5x 10-3-2.5-2-1.5-1-0.50.511.522.5x 10-33)lamda=500e-9;%波长N=[1236910];for j=1:6a=2e-4;D=5;d=5*a;ym=2*lamda*D/a;xs=ym;%屏幕上y 的范围n=1001;%屏幕上的点数ys=linspace(-ym,ym,n);%定义区域for i=1:n sinphi=ys(i)/D;alpha=pi*a*sinphi/lamda;beta=pi*d*sinphi/lamda;B(i,:)=(sin(alpha)./alpha).^2.*(sin(N(j)*beta)./sin(beta)).^2;B1=B/max(B);end NC=256;%确定灰度的等级Br=(B/max(B))*NC;figure(j);subplot(1,2,1);image(xs,ys,Br);colormap(hot(NC));%色调处理subplot(1,2,2);plot(B1,ys,'k');end-0.4-0.200.20.4-0.025-0.02-0.015-0.01-0.00500.0050.010.0150.020.02500.51-0.025-0.02-0.015-0.01-0.0050.0050.010.0150.020.025狭缝数为1-0.4-0.200.20.4-0.025-0.02-0.015-0.01-0.00500.0050.010.0150.020.02500.51-0.025-0.02-0.015-0.01-0.0050.0050.010.0150.020.025狭缝数为2-0.4-0.200.20.4-0.025-0.02-0.015-0.01-0.00500.0050.010.0150.020.02500.51-0.025-0.02-0.015-0.01-0.0050.0050.010.0150.020.025狭缝数为3-0.4-0.200.20.4-0.025-0.02-0.015-0.01-0.00500.0050.010.0150.020.02500.51-0.025-0.02-0.015-0.01-0.0050.0050.010.0150.020.025-0.4-0.200.20.4-0.025-0.02-0.015-0.01-0.00500.0050.010.0150.020.02500.51-0.025-0.02-0.015-0.01-0.0050.0050.010.0150.020.025狭缝数为9狭缝数为6-0.4-0.200.20.4-0.025-0.02-0.015-0.01-0.00500.0050.010.0150.020.02500.51-0.025-0.02-0.015-0.01-0.0050.0050.010.0150.020.0254)lamda=400e-9:100e-9:700e-9;%波长N=[13];a=2e-4;D=5;d=5*a;for j=1:4ym=2*lamda(j)*D/a;xs=ym;%屏幕上y 的范围n=1001;%屏幕上的点数ys=linspace(-ym,ym,n);%定义区域for k=1:2for i=1:n sinphi=ys(i)/D;alpha=pi*a*sinphi/lamda(j);beta=pi*d*sinphi/lamda(j);B(i,:)=(sin(alpha)./alpha).^2.*(sin(N(k)*beta)./sin(beta)).^2;B1=B/max(B);end NC=256;%确定灰度的等级Br=(B/max(B))*NC;figure();subplot(1,2,1);image(xs,ys,Br);colormap(hot(NC));%色调处理subplot(1,2,2);狭缝数为10plot(B1,ys,'k');end end-0.4-0.200.20.4-0.02-0.015-0.01-0.00500.0050.010.0150.0200.51-0.02-0.015-0.01-0.0050.0050.010.0150.02Lamda=400nm,N=1-0.4-0.200.20.4-0.02-0.015-0.01-0.00500.0050.010.0150.0200.51-0.02-0.015-0.01-0.0050.0050.010.0150.02-0.4-0.200.20.4-0.025-0.02-0.015-0.01-0.00500.0050.010.0150.020.02500.51-0.025-0.02-0.015-0.01-0.0050.0050.010.0150.020.025Lamda=400nm,N=3Lamda=500nm,N=1-0.4-0.200.20.4-0.025-0.02-0.015-0.01-0.00500.0050.010.0150.020.02500.51-0.025-0.02-0.015-0.01-0.0050.0050.010.0150.020.025-0.4-0.200.20.4-0.03-0.02-0.0100.010.020.0300.51-0.03-0.02-0.010.010.020.03Lamda=500nm,N=3Lamda=600nm,N=1-0.4-0.200.20.4-0.03-0.02-0.0100.010.020.0300.51-0.03-0.02-0.010.010.020.03-0.4-0.200.20.4-0.03-0.02-0.0100.010.020.0300.51-0.04-0.03-0.02-0.010.010.020.030.04Lamda=600nm,N=3Lamda=700nm,N=1-0.4-0.200.20.4-0.03-0.02-0.0100.010.020.0300.51-0.04-0.03-0.02-0.010.010.020.030.045)clearclcN=300;r=15;a=1;b=1;I=zeros(N,N);[m,n]=meshgrid(linspace(-N/2,N/2-1,N));D=((m-a).^2+(n-b).^2).^(1/2);i=find(D<=r);I(i)=1;subplot(2,2,1);imagesc(I)colormap([000;111])axis imagetitle('衍射前的图样')L=300;M=300;[x,y]=meshgrid(linspace(-L/2,L/2,M));lamda=632.8e-6;k=2*pi/lamda;z=1000000;Lamda=700nm,N=3h=exp(j*k*z)*exp((j*k*(x.^2+y.^2))/(2*z))/(j*lamda*z); H=fftshift(fft2(h));%传递函数B=fftshift(fft2(I));%圆孔频谱G=H.*B;U=fftshift(ifft2(G));Br=(U/max(U));subplot(2,2,2);imshow(abs(U));axis image;colormap(hot)%figure,imshow(C);title('衍射后的图样');subplot(2,2,3);mesh(x,y,abs(U));subplot(2,2,4);plot(abs(Br))6)lamda=500e-9;%波长N=1;%缝数,可以随意更改变换a=2e-4;D=3:7;d=5*a;for j=1:5ym=2*lamda*D(j)/a;xs=ym;%屏幕上y的范围n=1001;%屏幕上的点数ys=linspace(-ym,ym,n);%定义区域for i=1:nsinphi=ys(i)/D(j);alpha=pi*a*sinphi/lamda;beta=pi*d*sinphi/lamda;B(i,:)=(sin(alpha)./alpha).^2.*(sin(N*beta)./sin(beta)).^2;B1=B/max(B);endNC=256;%确定灰度的等级Br=(B/max(B))*NC;figure();subplot(1,2,1)image(xs,ys,Br);colormap(hot(NC));%色调处理subplot(1,2,2)plot(B1,ys,'k');end-0.4-0.200.20.4-0.015-0.01-0.00500.0050.010.01500.51-0.015-0.01-0.0050.0050.010.015D=3m-0.4-0.200.20.4-0.02-0.015-0.01-0.00500.0050.010.0150.0200.51-0.02-0.015-0.01-0.0050.0050.010.0150.02-0.4-0.200.20.4-0.025-0.02-0.015-0.01-0.00500.0050.010.0150.020.02500.51-0.025-0.02-0.015-0.01-0.0050.0050.010.0150.020.025D=5m D=4m-0.4-0.200.20.4-0.03-0.02-0.0100.010.020.0300.51-0.03-0.02-0.010.010.020.03-0.4-0.200.20.4-0.03-0.02-0.0100.010.020.0300.51-0.04-0.03-0.02-0.010.010.020.030.04D=7m D=6m。
菲涅尔衍射matlab

菲涅尔衍射matlab菲涅尔衍射(Fresnel diffraction)既是一种物理现象,也是一种集中光束的数学解析方法,是量子力学中的物理现象之一。
MATLAB使用菲涅尔衍射算法,可以在复杂物体和形状上进行准确的光分发分析和性能评估。
一、什么是菲涅尔衍射1.1 菲涅尔衍射的定义菲涅尔衍射,也称为衍射弥散,是由法国物理学家菲涅尔(Augustin Fresnel)在1817-1818年首次提出的一种物理现象。
它指的是当光线遇到光学系统的边界折射处或非特定孔径时,其交界处的散射效应。
当一束光线穿过一个孔径或光学系统边界时,菲涅尔衍射造成了衍射或散射,这会影响光束的衍射图像,其形式主要依赖介质的结构和入射光的波长。
1.2 菲涅尔衍射的应用菲涅尔衍射算法(fresnel diffraction algorithm)的主要应用有:(1)应用于光学系统的分析,包括照明系统、光学投影系统的性能分析,以实现信号的有效传输。
(2)在光纤传感器的分析中,可以应用菲涅尔衍射方法研究微弱信号的传输性能。
(3)在计算机视觉研究中,运用菲涅尔衍射可以最大限度地减少折射和反射的影响,从而获取更加真实的图像。
(4)在天体衍射中,菲涅尔衍射可以被用来描述在更大空间张量和体积空间进行光学计算。
二、MATLAB如何使用菲涅尔衍射2.1 编程实现的步骤(1)用MATLAB创建光学系统模型:根据系统模型,建立计算机模型,从而模拟系统性能。
(2)使用菲涅尔衍射计算光束穿过光学系统的散射衍射:在计算机模型的基础上,可以使用菲涅尔衍射算法,模拟光束穿过特定的不它孔径或者到达特定点时,菲涅尔衍射会发生的变化,从而计算出衍射图形。
(3)对光束进行测量:通过精确测量可以观察光束的变化,进而检查系统的性能,从而改进系统设计。
2.2 使用fresnel diffraction algorithm的Matlab工具Matlab中提供了fresnel diffraction algorithm的一系列Matlab工具,可以实现准确运算并生成衍射系数,这些工具可用于各种光学衍射、折射和反射模拟的仿真,可以作为视觉设计、光学性能测试和甚至作为优化,可以解决复杂的光学光谱计算问题。
基于MATLAB的矩孔、单缝、圆孔夫琅和费衍射概诉

课程设计任务书学生姓名:专业班级:指导教师:工作单位:信息工程学院题目: 夫琅和费矩孔、单缝、圆孔衍射图样一、设计目的了解MA TLAB软件的基本知识,基本的程序设计,软件在高等数学和工程数学中的应用,学会使用软件进行数值计算和控制工程中的应用。
二、设计内容和要求1.绘制弗朗禾费矩孔、单缝和圆孔衍射图样,可以是二维的或三维的,也可以两种都有。
改变矩孔、单缝和圆孔的参数,比较衍射条纹的变化。
2. 学习Matlab语言的概况和Matlab语言的基本知识。
3.学习Matlab语言的程序设计。
三、初始条件计算机;Matlab软件。
四、时间安排1、2015年01月19日,任务安排,课设具体实施计划与课程设计报告格式的要求说明。
2、2015年01月20日,查阅相关资料,学习Matlab语言的基本知识,学习MATLAB语言的应用环境、调试命令,绘图功能函数等。
3、2015年01月21日至2015年01月22日,Matlab课程设计制作和设计说明书撰写。
4、2015年01月23日,上交课程设计成果及报告,同时进行答辩。
指导教师签名:2015年01 月19日系主任(或负责教师)签名:2015年01 月19日目录摘要 (I)1.设计的内容及要求 (1)1.1设计的目的 (1)1.2设计任务要求 (1)2.设计原理及设计思路 (1)2.1夫琅和费干涉理论 (1)2.1.1夫琅和费圆孔衍射 (2)2.1.2夫琅和费矩孔衍射 (2)2.1.3夫琅和费单缝衍射 (2)2.2设计思路 (3)3.仿真及分析 (4)4.心得和体会 (8)参考文献 (8)摘要物理光学理论较为复杂抽象,实验现象的演示对条件要求高。
采用MATLAB7.0强大的函数作图功能对矩孔、单缝、圆孔的夫琅和费衍射进行模拟,建立直观形象并且精确完整的理论模型,并附上程序代码,将干涉理论联系起来,分析衍射和干涉的本质。
从而加深对夫琅和费原理、概念、和图像的理解。
通过使用MATLAB编写程序,不仅理解了物理思想,而且了解了运用软件解决物理问题的方法。
菲涅尔衍射matlab

菲涅尔衍射引言菲涅尔衍射是一种光学现象,是光波在通过物体边缘或光阑时发生衍射现象。
菲涅尔衍射是由法国物理学家奥古斯丁·菲涅尔于19世纪中期发现的,成为研究光的传播和衍射的重要工具。
本文将对菲涅尔衍射的基本原理、计算公式和一些应用进行全面深入的探讨。
基本原理菲涅尔衍射的基本原理是光束在通过物体边缘时会发生衍射,产生绕射波。
这种绕射波与原来的波的相位差会导致光波的干涉现象。
菲涅尔衍射可以通过泊松公式来描述。
泊松公式泊松公式是描述菲涅尔衍射的重要公式,它表示了通过一点的衍射光强与入射光强之间的关系。
泊松公式可以用以下数学公式表示:U(x,y)=1jλz∬UΣ(x′,y′)exp(jk2z((x−x′)2+(y−y′)2)) dx′dy′其中,U(x,y)表示在坐标(x,y)处的复振幅,λ表示光波的波长,z表示入射光与观察点的距离,(x′,y′)表示积分变量在发射面Σ上的坐标。
泊松-菲涅尔衍射公式泊松公式可以简化为泊松-菲涅尔衍射公式,它可以用来计算光束经过一块无穷小光阑的菲涅尔衍射。
泊松-菲涅尔衍射公式可以用以下数学公式表示:U(x,y,z)=exp(jkz)jλz∬UΣ(x′,y′)exp(jk2z((x−x′)2+(y−y′)2)) dx′dy′泊松-菲涅尔衍射公式是菲涅尔衍射研究的重要工具,可以用于计算光束经过复杂物体时的衍射效应。
常见应用菲涅尔衍射在许多领域都有重要的应用,下面将介绍几个常见的应用。
衍射光栅衍射光栅是一种利用菲涅尔衍射原理制造的光学元件。
通过在光栅上制造微细的凹槽或凸起,可以使入射光产生衍射现象,从而实现光的分光效应。
衍射光栅广泛应用于光谱仪、激光干涉仪等高精度光学仪器中。
菲涅尔透镜菲涅尔透镜是一种光学透镜,它由一系列同心环状的圆形凸起构成。
这种特殊的结构使得菲涅尔透镜的厚度较薄,重量较轻,透光效果更佳。
菲涅尔透镜广泛应用于相机镜头、投影仪、车灯等光学设备中。
菲涅尔区菲涅尔区是菲涅尔衍射中的一个概念,用来描述光波通过物体边缘时产生的干涉现象。
圆孔矩孔的菲涅尔衍射模拟(matlab实现)-工程光学

工程光学综合练习-----圆孔、矩孔的菲涅尔衍射模拟圆孔和矩孔的菲涅尔衍射模拟一、原理由惠更斯-菲涅尔原理可知接收屏上的P点的复振幅可以表示为其中为衍射屏上的复振幅分布,为倾斜因子。
根据基尔霍夫对此公式的完善,有设衍射屏上点的坐标为(x1, y1),接收屏上点的坐标为(x, y),衍射屏与接收屏间距离为z1,当满足菲涅尔近似条件时,即此时可得到菲涅尔衍射的计算公式把上式指数项中的二次项展开,并改写成傅里叶变换的形式,可以写成上式为菲涅尔衍射的傅里叶变换表达式,它表明除了积分号前面的一个与x1、y1无关的振幅和相位因子外,菲涅尔衍射的复振幅分布是孔径平面的复振幅分布和一个二次相位因子乘积的傅里叶变换。
相对于夫琅和费衍射而言,菲涅尔衍射的观察屏距衍射屏不太远。
在菲涅尔衍射中,输入变量和输出变量分别为衍射孔径平面的光场分布和观察平面的光场以及光强分布,考虑到这三个量都是二维分布,而且Matlab主要应用于矩阵数值运算,所以本程序选择用二维矩阵来存储衍射孔径平面和观察平面的场分布,并分别以矩阵的列数和行数来对应平面的直角坐标值(x, y)以及(x1, y1)。
二、圆孔菲涅尔衍射用MATLAB分别构造表示衍射屏和接收屏的二维矩阵。
注意使两矩阵阶次相同,考虑到运算量的要求,采样点数不能过多,所以每个屏的x和y方向各取200到300点进行运算。
根据式(4),选取合适的衍射屏和接收屏尺寸和相距的距离,模拟结果如下:取典型的He-Ne激光器波长λ=632.8nm,固定衍射屏和接收屏尺寸和相距的距离,分别取不同的圆孔半径,得到以下三组衍射图样,其圆孔半径分别为12mm,20mm,50mm图1(r=12mm)图2(r=20mm)图3(r=50mm) 三、矩孔的菲涅尔衍射步骤与上述相同,仅需改变与衍射屏形状对应的矩阵。
这里选择矩孔的长宽相等,分别为15mm,20mm,30mm,其衍射图样及强度分布如图4、5、6图4(a=b=15mm)图5(a=b=20mm)图 6(a=b=30mm)四、MATLAB 程序%所有长度单位为毫米lamda=632.8e-6; k=2*pi/lamda;z=1000000;%先确定衍射屏N=300; %圆屏采样点数a=15;b=15;[m,n]=meshgrid(linspace(-N/2,N/2-1,N));I=rect(m/(2*a)).*rect(n/(2*b));q=exp(j*k*(m.^2+n.^2)/2/z);subplot(2,2,1); %圆孔图像画在2行2列的第一个位置 imagesc(I) %画衍射屏的形状colormap([0 0 0; 1 1 1]) %颜色以黑白区分axis imagetitle('衍射屏形状')L=300;M=300; %取相同点数用于矩阵运算若为圆孔,方框内替换为以下程序 r=12;a=1;b=1; I=zeros(N,N); [m,n]=meshgrid(linspace(-N/2,N/2-1,N)); D=((m-a).^2+(n-b).^2).^(1/2); i=find(D<=r); I(i)=1; %孔半径范围内透射系数为1[x,y]=meshgrid(linspace(-L/2,L/2,M));h=exp(j*k*z)*exp((j*k*(x.^2+y.^2))/(2*z))/(j*lamda*z);%接收屏H =fftshift(fft2(h));B=fftshift(fft2(I)); %圆孔频谱G=H.*B; %公式中为卷积,空间域中相卷相当于频域中相乘U= fftshift(ifft2(G)); %求逆变换,得到复振幅分布矩阵Br=(U/max(U)); %归一化subplot(2,2,2);imshow(abs(U));axis image;colormap(hot)% figure,imshow(C);title('衍射后的图样');subplot(2,2,3);mesh(x,y,abs(U)); %画三维图形subplot(2,2,4);plot(abs(Br))。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
工程光学综合练习-----圆孔、矩孔的菲涅尔衍射模拟
圆孔与矩孔的菲涅尔衍射模拟
一、原理
由惠更斯-菲涅尔原理可知接收屏上的P点的复振幅可以表示为
其中为衍射屏上的复振幅分布,为倾斜因子。
根据基尔霍夫对此公式的完善,有
设衍射屏上点的坐标为(x1, y1),接收屏上点的坐标为(x, y),衍射屏与接收屏间距离为z1,当满足菲涅尔近似条件时,即
此时可得到菲涅尔衍射的计算公式
把上式指数项中的二次项展开,并改写成傅里叶变换的形式,可以写成
上式为菲涅尔衍射的傅里叶变换表达式,它表明除了积分号前面的一个与x1、y1无关的振幅与相位因子外,菲涅尔衍射的复振幅分布就是孔径平面的复振幅分布与一个二次相位因子乘积的傅里叶变换。
相对于夫琅与费衍射而言,菲涅尔衍射的观察屏距衍射屏不太远。
在菲涅尔衍射中,输入变量与输出变量分别为衍射孔径平面的光场分布与观察平面的光场以及光强分布,考虑到这三个量都就是二维分布,而且Matlab主要应用于矩阵数值运算,所以本程序选择用二维矩阵来存储衍射孔径平面与观察平面的场分布,并分别以矩阵的列数与行数来对应平面的直角坐标值(x, y)以及(x1, y1)。
二、圆孔菲涅尔衍射
用MATLAB分别构造表示衍射屏与接收屏的二维矩阵。
注意使两矩阵阶次相同,考虑到运算量的要求,采样点数不能过多,所以每个屏的x与y方向各取200到300点进行运算。
根据式(4),选取合适的衍射屏与接收屏尺寸与相距的距离,模拟结果如下:
取典型的He-Ne激光器波长λ=632、8nm,固定衍射屏与接收屏尺寸与相距的距离,分别取不同的圆孔半径,得到以下三组衍射图样,其圆孔半径分别为
12mm,20mm,50mm
图1(r=12mm)
图2(r=20mm)
图3(r=50mm) 三、矩孔的菲涅尔衍射
步骤与上述相同,仅需改变与衍射屏形状对应的矩阵。
这里选择矩孔的长宽相等,分别为15mm,20mm,30mm,其衍射图样及强度分布如图4、5、6
图4(a=b=15mm)
图5(a=b=20mm)
图 6(a=b=30mm)
四、MATLAB 程序
%所有长度单位为毫米
lamda=632、8e-6; k=2*pi/lamda;
z=1000000;
%先确定衍射屏
N=300; %圆屏采样点数
a=15;
b=15;
[m,n]=meshgrid(linspace(-N/2,N/2-1,N));
I=rect(m/(2*a))、*rect(n/(2*b));
subplot(2,2,1); %圆孔图像画在2行2列的第一个位置 imagesc(I) %画衍射屏的形状
colormap([0 0 0; 1 1 1]) %颜色以黑白区分
axis image
title('衍射屏形状')
L=300;
M=300; %取相同点数用于矩阵运算
若为圆孔,方框内替换为以下程序 r=12;a=1;b=1; I=zeros(N,N); [m,n]=meshgrid(linspace(-N/2,N/2-1,N)); D=((m-a)、^2+(n-b)、^2)、^(1/2); i=find(D<=r); I(i)=1; %孔半径范围内透射系数为1
[x,y]=meshgrid(linspace(-L/2,L/2,M));
h=exp(j*k*z)*exp((j*k*(x、^2+y、^2))/(2*z))/(j*lamda*z);%接收屏
H =fftshift(fft2(h));
B=fftshift(fft2(I)); %圆孔频谱
G=H、*B; %公式中为卷积,空间域中相卷相当于频域中相乘U= fftshift(ifft2(G)); %求逆变换,得到复振幅分布矩阵
Br=(U/max(U)); %归一化
subplot(2,2,2);
imshow(abs(U));
axis image;
colormap(hot)
% figure,imshow(C);
title('衍射后的图样');
subplot(2,2,3);
mesh(x,y,abs(U)); %画三维图形
subplot(2,2,4);
plot(abs(Br))。