没有合适的资源?快使用搜索试试~ 我知道了~
MATLAB模拟衍射利用基尔霍夫衍射公式.doc
需积分: 15 4 下载量 160 浏览量
2022-10-20
07:39:51
上传
评论 2
收藏 278KB DOC 举报
温馨提示
试读
3页
MATLAB模拟衍射利用基尔霍夫衍射公式.doc
资源详情
资源评论
资源推荐
MATLAB 模拟衍射利用基尔霍夫衍射公式
题目分析
利用菲涅尔—基尔霍夫衍射公式对问题进行处理,通过去不同的 z 值观察近场,菲涅尔区,夫琅和费区的
衍射条纹。
菲涅尔—基尔霍夫衍射公式:
( )
( )
( ) ( )
0
0
0
exp
cos , cos ,
2
jk r r
A
E P ds
j r r
l
S
+
é ù
-
ë û
= × ×
òò
n r n r
( ) ( )
1 0 0
expE E P A jkr r= =
由于单色平面波垂直照射,
( ) ( )
1 0
, cos , 1E P A= = -n r
,由于一般考虑光强的相对值,所以分析时取 A=1,
( )
cos cos , z r
q
= =n r
,并对方孔进行微元,将方孔每个点在光屏上衍射的复振幅进行叠加,即计算
,从而得到光屏上的衍射条纹.对于方孔编程时采用循环的方式,对于光屏则利
用矩阵对光屏整体的复振幅,光强等进行分析,加快运算速度。
实现代码
clear;
lambda=6。32e—7;%波长
k=2*pi/lambda;
z=550;%光屏位置
a=0。01;
b=0.01;%方孔尺寸
x1=linspace(-0.005,0。005,199);
y1=linspace(-0。005,0.005,199);%将方孔分为许多小的微元
x=linspace(-0.2,0.2,299);
y=linspace(-0.2,0.2,299);%将光屏分为许多小的微元
[X,Y]=meshgrid(x,y);%用二维矩阵描述光屏上点的位置
E=zeros(299,299);%用于存放光屏上每个点的复振幅
r=zeros(299,299);%用于存放光屏上没一点对应方孔上点的距离
for l=1:199
for j=1:199 %计算方孔上的每个点在光屏上的复振幅
r=sqrt((X-x1(l)).^2+(Y—y1(j))。^2+z*z); %当前方孔上点到光屏上各个点的距离
E=E+(—i/lambda)*(exp(i*k*r)).*(z。/(2*r.*r)+1./(2*r))*z; %对不同点在光屏上的复振
幅进行累加
end
end
E1=conj(E);
I=E1。*E; %求光强
% pcolor(y,x,I) %作图
% colorbar
Ix= I(1:299,200);%光屏中心水平方向光强分布
plot(x,Ix)
仿真图形
夫琅和费区:
Z=550m
智慧安全方案
- 粉丝: 3679
- 资源: 59万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0