矩孔菲涅尔衍射 matlab,圆孔矩孔的菲涅尔衍射模拟(matlab实现)-工程光学

《圆孔矩孔的菲涅尔衍射模拟(matlab实现)-工程光学》由会员分享,可在线阅读,更多相关《圆孔矩孔的菲涅尔衍射模拟(matlab实现)-工程光学(9页珍藏版)》请在人人文库网上搜索。

1、圆孔矩孔的菲涅尔衍射模拟(matlab实现)-工程光学工程光学综合练习-圆孔、矩孔的菲涅尔衍射模拟圆孔和矩孔的菲涅尔衍射模拟一、原理由惠更斯-菲涅尔原理可知接收屏上的P点的复振幅可以表示为EP=CEQexpikrrKd (1)其中EQ为衍射屏上的复振幅分布,K()为倾斜因子。根据基尔霍夫对此公式的完善,有C=1iK=1+cos21设衍射屏上点的坐标为(x1, y1),接收屏上点的坐标为(x, y),衍射屏与接收屏间距离为z1,当满足菲涅尔近似条件时,即k8z13(x-x1)2+(y-y1)2max2 (2)此时可得到菲涅尔衍射的计算公式Ex,y=expikz1iz1-Ex1,y1expik2z。

2、1x-x12+y-y12dx1dy1 (3)把上式指数项中的二次项展开,并改写成傅里叶变换的形式,可以写成Ex,y=exp(ikz1)iz1expik2z1x2+y2fEx1,y1expik2z1x12+y12 (4)上式为菲涅尔衍射的傅里叶变换表达式,它表明除了积分号前面的一个与x1、y1无关的振幅和相位因子外,菲涅尔衍射的复振幅分布是孔径平面的复振幅分布和一个二次相位因子乘积的傅里叶变换。相对于夫琅和费衍射而言,菲涅尔衍射的观察屏距衍射屏不太远。在菲涅尔衍射中,输入变量和输出变量分别为衍射孔径平面的光场分布和观察平面的光场以及光强分布,考虑到这三个量都是二维分布,而且Matlab主要应用于。

3、矩阵数值运算,所以本程序选择用二维矩阵来存储衍射孔径平面和观察平面的场分布,并分别以矩阵的列数和行数来对应平面的直角坐标值(x, y)以及(x1, y1)。二、圆孔菲涅尔衍射用MATLAB分别构造表示衍射屏和接收屏的二维矩阵。注意使两矩阵阶次相同,考虑到运算量的要求,采样点数不能过多,所以每个屏的x和y方向各取200到300点进行运算。根据式(4),选取合适的衍射屏和接收屏尺寸和相距的距离,模拟结果如下:取典型的He-Ne激光器波长=632.8nm,固定衍射屏和接收屏尺寸和相距的距离,分别取不同的圆孔半径,得到以下三组衍射图样,其圆孔半径分别为12mm,20mm,50mm图 1(r=12mm)。

4、图 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;若为圆孔,方框内替换为以下程序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; %。

5、孔半径范围内透射系数为1k=2*pi/lamda;z=;%先确定衍射屏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; %取相同点数用于矩阵运算x,y=meshgrid(linspace。

6、(-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。

你可能感兴趣的:(矩孔菲涅尔衍射,matlab)