计算机实现近场和远场衍射

上传人:hs****ma 文档编号:490906128 上传时间:2023-06-15 格式:DOC 页数:15 大小:358KB
返回 下载 相关 举报
计算机实现近场和远场衍射_第1页
第1页 / 共15页
计算机实现近场和远场衍射_第2页
第2页 / 共15页
计算机实现近场和远场衍射_第3页
第3页 / 共15页
计算机实现近场和远场衍射_第4页
第4页 / 共15页
计算机实现近场和远场衍射_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《计算机实现近场和远场衍射》由会员分享,可在线阅读,更多相关《计算机实现近场和远场衍射(15页珍藏版)》请在金锄头文库上搜索。

1、计算机实现近场和远场衍射基于Matlab实现近场和远场衍射1预备知识1.1 Matlab 简介Matlab 是美国MathWorks公司出品的商业数学软件,用于算法 开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交 互式环境。Matlab可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制 设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析 等领域。1.2傅里叶变换函数Matlab提供了一套计算快速傅里叶变换的函数,它们包含一维、 二维和N维离散傅里叶变换函数fft、fft2和fftN。这些离散傅里 叶变换的逆变换函

2、数为ifft 、ifft2 和ifftN 。FFT变换完成后,低频部分分布在矩阵的四个角上,需要通过移 频将零频及低频量移到矩阵中心,这样才能与建立的坐标系一致,移 频通过Matlab自带函数fftshift() 完成。2基本思路(1) 要对圆孔进行衍射模拟,首先要设计出圆孔的图形(2)选取单位振幅的平面波垂直照射,一般取值为1,方向垂直xy 平面,平行与z轴。(3)确定观察屏距离孔径的距离(4)将上述的所有的量代入到公式中,计算出衍射的光场分布。(5)Matlab 模拟。3菲涅尔衍射实例由已知菲涅尔衍射中心点的光强为:l(O,O) = |u(O,O=4si n24sin2 丄九z丿j4z丿由

3、图可以看出菲涅尔衍射图样的中心光强和距离 z有关,其亮暗 是交替变化的。程序:%圆孔菲涅尔衍射 clear;z0=5;%范围2到10 xO=O; %范围ROWS=256;COLS=256;colormap(gray(255)sigma=1/zO;yO=-xO;y=-12.8;for r=1:COLS,x=-12.8;for c=1:ROWS,fFZP(r,c)=exp(j*sigma*(x-xO).A2+j*sigma*(y-yO).A2);x=x+0.1;endy=y+0.1;endmax1=max(fFZP);max2=max(max1);scale=1.0/max2;fFZP=fFZP.

4、*scale;R=127*(1+imag(fFZP);figureimage(R);axis square onaxis off图1菲涅尔圆孔衍射4圆孔的夫琅禾费衍射仿真利用衍射积分或者傅里叶分析可以求得在观察屏上任意径向坐标2Ji kar/zr处的复振幅分布为:ka2i . kr2U r expjkzexj- kar/z其中,r . x2y2光强分布为:叶酌迸沪2程序:clear all% 圆孔的夫琅禾费衍射 lamda=632.8e-9;a=input(请输入孔径大小)f=1;Np=2048;%调色板n=400;m=400;ym=4000*lamda*f;ys=li nspace(-ym,

5、ym, n); xs=ys;for i=1: nfor j=1:mr=sqrt(xs(i).A2+ys(j).A2);x=2*pi*a*r./(lamda*f);l(i,j)=(2*BESSELJ(1,x)A2./x.A2;endend lr=l.*Np; subplot(1,2,1) image(lr) colormap(gray) subplot(1,2,2) mesh(lr);colormap(gray)Case 1孔径大小为a=0.0005itn160sea-ujdtnloo zjo aco rjCase 2孔径大小为a=0.001IODO2ODD 十 O QCase 3孔径大小为a=

6、0.0150ICO160 2LU 却 CO 3S0 4C0I0Q2003OJAOQ-5OJ5矩形的夫琅禾费衍射仿真利用衍射积分或者傅里叶分析可以求得单色光照明时在观 察屏上的复振幅分布为:U (x, y )=-exp |j 匕(x? +y2 Jsinc 空 Sine空 I jhf . 2f一 df 丿 丿光强分布为:|/)=色 sine2afax一-fsine2程序:f=1;a=i nput(a二);b=inp ut(b=);%矩孔大小lmda=632.8e-9;% 波长 xmax=0.008;%观察屏大小 ymax=xmax;N=1500;x=li nspace(-xmax,xmax,N);

7、y=li nspace(-ymax,ymax,N);for n=1:Nfor m=1:Nalpha=pi*x( n)*a/(lmda*f); beta=pi*y(m)*a/(lmda*f);I(n ,m)=(si n(alpha)/(alpha)A2*(si n(bet a)/(beta)A2;endendX, Y=meshgrid(x,y);Np=512lr=Np*l;figuremesh(X, Y,Ir); colormap(gray); axis square;zlabel(光强); hold on figure imshow(Ir);Case 1 a=b=0.001 时Case 2 a

8、=b=0.01 时由例二可以发现当孔径增大到 0.01mm尺度时,衍射现象已 经不是很明显,当孔径继续增大时小孔不再衍射,光线沿直线传播。6任意图形Np=2048;帅 Desktop1.bmp);grid onfigure(1)imshow(a,)afft=fft2(a);%傅里叶变换aabs=abs(afft);% 取模 aabss=fftshift(aabs);% 取模后的矩阵进行频 谱位移I=aabss八2; lr=l.*Np;figure imshow(lr,) colormap(gray); figure mesh(lr);figure plot(lr);Case 1Case 2Case 37结论:1实现了利用FFT模拟菲涅尔衍射和夫琅禾费衍射。2利用模拟得到的图像可以直观地理解衍射。3利用模拟可以更加方便地变换参数以及计算其影响。4对衍射现象的模拟可以是在教学中,将抽象难懂的概念、规律通过实验仿真生动、形象地表现出来,这样可以拓宽知识面,提高能力。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号