MATLAB 傅立叶变换 和衍射积分 模拟光学 - 图文
更新时间:2023-11-11 08:37:01 阅读量: 教育文库 文档下载
- matlab推荐度:
- 相关推荐
MATLAB编程用两种方法模拟光学实验
摘要:
利用MATLAB软件编程实现了用衍射积分的方法对单缝衍射、杨氏双缝干涉、黑白光栅衍射的计算机模拟;以及用傅立叶变换方法对简单孔径衍射、黑白光栅及正弦光栅夫琅和费衍射的模拟。 关键词:
MATLAB;衍射积分;傅立叶变换;计算机模拟 引言:
美国Mathworks公司推出的MATLAB,是一种集数值计算、符号预算、可视化建模、仿真和图形处理等多种功能于一体的优秀图形化软件。本文介绍了通过MATLAB软件编程实现用衍射积分和傅立叶变换实现夫琅和费衍射计算机模拟的方法。
计算机模拟为衍射实验的验证提供一条简捷、直观的途径。从而加深了对物理原理、概念和图像的理解。
正文:
大学教学课程中引入计算机模拟技术正日益受到重视,与Basic、C和Fortran相比,用MATLAB软件做光学试验的模拟,只需要用数学方式表达和描述,省去了大量繁琐的编程过程。下面来介绍利用MATLAB进行光学模拟的两种方法。
(一)衍射积分方法:
该方法首先是由衍射积分算出接收屏上的光强分布,然后根据该分布调制色彩作图,从而得到衍射图案。
1. 单缝衍射。
把单缝看作是np个分立的相干光源,屏幕上任意一点复振幅为np个光源照射结果的合成,对每个光源,光程差Δ=ypsinΦ,sinΦ=ys/D,光强I=I0(Σcosα)2+(Σsinα)2,其中α=2Δ/λ=πypys/λD
编写程序如下,得到图1 clear lam=500e-9; a=1e-3;D=1; ym=3*lam*D/a;
ny=51;
ys=linspace(-ym,ym,ny); np=51;
yp=linspace(0,a,np); for i=1:ny
sinphi=ys(i)/D;
alpha=2*pi*yp*sinphi/lam; sumcos=sum(cos(alpha)); sumsin=sum(sin(alpha));
B(i,:)=(sumcos^2+sumsin^2)/np^2; end
N=255;
Br=(B/max(B))*N; subplot(1,2,1)
图1 单缝衍射的光强分布
image(ym,ys,Br); colormap(gray(N)); subplot(1,2,2) plot(B,ys); 2. 杨氏双缝干涉
两相干光源到接收屏上P点距离r1=(D+(y-a/2)), r2=(D+(y+a/2)),相位差
Φ=2π(r2-r1)/λ,光强I=4I0cos2(Φ/2)
编写程序如下,得到图2 clear lam=500e-9 a=2e-3;D=1;
ym=5*lam*D/a;xs=ym;
n=101;ys=linspace(-ym,ym,n); for i=1:n
r1=sqrt((ys(i)-a/2).^2+D^2);
r2=sqrt((ys(i)+a/2).^2+D^2); phi=2*pi*(r2-r1)./lam;
B(i,:)=sum(4*cos(phi/2).^2); end
N=255;
Br=(B/4.0)*N subplot(1,2,1) image(xs,ys,Br); colormap(gray(N)); subplot(1,2,2) plot(B,ys) 3. 光栅衍射
公式:I=I0(sinα/α)2(sin(λβ)/sinβ)2
α=(πa/λ)sinΦ β=(πd/λ)sinΦ 编写程序如下:得到图3
clear
lam=500e-9;N=2; a=2e-4;D=5;d=5*a; ym=2*lam*D/a;xs=ym; n=1001;
ys=linspace(-ym,ym,n); for i=1:n
sinphi=ys(i)/D; alpha=pi*a*sinphi/lam; beta=pi*d*sinphi/lam;
B(i,:)=(sin(alpha)./alpha).^2.*(sin(N*beta)./sin(beta)).^2; B1=B/max(B); end
图3 黑白光栅衍射光强分布 图2 杨氏双缝干涉的光强分布
2
21/2
2
21/2
NC=255;
Br=(B/max(B))*NC; subplot(1,2,1) image(xs,ys,Br); colormap(gray(NC)); subplot(1,2,2) plot(B1,ys);
(二)傅立叶变换方法:
在傅立叶变换光学中我们知道夫琅和费衍射场的强度分布就等于屏函数的功率谱。因此我们可以直接将光屏进行傅立叶变换,再处理得到衍射图样。
物体图像的生成可以直接由矩阵运算生成,也可利用Windows下的画图工具,生成一幅黑白图像,并调用命令函数imread()输入图像,输入的图像是一个巨大的二维矩阵,利用MATLAB函数库中的fft2()命令对该矩阵进行二位离散傅立叶变换,得到图像的频谱,该频谱是一个复数矩阵,然后用取模函数abs()对该复数矩阵取模,得到振幅谱矩阵,利用函数fftshift()对取模后的矩阵进行频谱位移,这是因为变换后的二维矩阵的直流分量位于图像的周边角,该函数交换矩阵的1、3象限和2、4象限,使直流分量移到频谱中心,从而使FFT频谱可视效果与实际图像相吻合。最后利用imshow()函数将图像显示出来。
编写程序如下:
clear
a=imread('E:\\1.bmp'); grid on figure(1) imshow(a,[]) afft=fft2(a); aabs=abs(afft);
aabss=fftshift(aabs);
imshow(aabss,[]) colormap(gray); colorbar figure(3) plot(aabss)
colormap(gray); figure(4) meshc(aabss)
figure(2) maxx1=max(max(aabss)); 输入黑白或灰度的衍射屏图像,得到输出的衍射图样和光强分布。 1. 简单孔径的衍射
(a)圆孔衍射:可以看到光强分布随孔径大小的变化
图4 圆孔的光强分布
(b)矩孔衍射:
(c)三角孔衍射:
2.单缝衍射:
3.黑白光栅衍射:
图7 单缝衍射的光强分布 图6 三角孔衍射的光强分布 图5 矩孔衍射的光强分布
缝宽不变,光栅常数变大:
缝宽变小,光栅常数不变:
图8 黑白光栅衍射的光强分布
可以明显地观察到干涉条纹受衍射因子的调制,以及缺级现象 4.正弦光栅衍射:
我们先设计程序制得一张正弦光栅,用正(余)弦函数作图如下: clear all
xm=10*pi;ys=xm;
xs=linspace(-xm,xm,500); B=cos(xs)+1; N=255;
Br=B/2*N
image(xs,ys,Br);
colormap(gray(N));
将该图片保存成灰度BMP文件。调用程序得到衍射图样,只有三个衍射斑,与理论一致。
图9 正弦光栅衍射的光强分布
(三)利用傅立叶方法还可以得到其他有趣的衍射花样,并研究其规律性
正在阅读:
MATLAB 傅立叶变换 和衍射积分 模拟光学 - 图文11-11
各年龄阶段的皮肤变化及护理重点12-20
2020年工会工作计划范文2000字12-11
《现代广告通论》重点整理 浙江科技学院05-25
我国农村社会救济存在的问题及对策研究05-09
苏教版五年级科学下册期中检测题12-24
阳光假日脚手架专项施工方案04-06
CAD CAM09-18
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 傅立叶
- 衍射
- 变换
- 光学
- 积分
- 模拟
- 图文
- MATLAB
- 数电复习题及答案(DOC)
- 烟台2013年教师中级职称任职资格评审通过人员名单
- 秭归县郭家坝镇文化中学体卫艺年度工作总结
- 锂电池各种认证 - 图文
- 中山大学南方学院大学英语教学中心
- 城市规划原理 练习题 第二章
- 《职业道德与法律》教案1
- 苏州工业园区布展大纲脚本稿
- 电大形成性考核册答案
- 无锡市2018届高三上学期期中检测英语 Word版
- 试论某高层建筑的剪力墙结构设计
- 第1讲(速算与巧算一)
- 管理学原理及方法 周三多版 要点整理 全面详细实用 - 图文
- 《中国现当代文学史》(上)习题集
- 多用户电能表检定员复习题
- SimMechanics简介及建模流程
- 2010年天津中考数学试卷及答案
- 自主招生个人陈述范文
- 心理统计题库
- 自考《管理学原理》练习题答案