【光学】干涉衍射仿真【含GUI Matlab源码 1723期】

在这里插入图片描述

⛄一、获取代码方式

获取代码方式1:
完整代码已上传我的资源:【光学】基于matlab GUI干涉衍射仿真【含Matlab源码 1723期】
点击上面蓝色字体,直接付费下载,即可。

获取代码方式2:
付费专栏Matlab物理应用(初级版)

备注:
点击上面蓝色字体付费专栏Matlab物理应用(初级版),扫描上面二维码,付费29.9元订阅海神之光博客付费专栏Matlab物理应用(初级版),凭支付凭证,私信博主,可免费获得1份本博客上传CSDN资源代码(有效期为订阅日起,三天内有效);
点击CSDN资源下载链接:1份本博客上传CSDN资源代码

⛄二、部分源代码

%双缝干涉可改D或f和间距
%等倾干涉可改厚度和角度
%等厚干涉可改波长
%衍射的焦距是公共的
%距孔衍射是以长为基的正方孔
% HUAS 201611030117

function varargout = GS_YS(varargin)

gui_Singleton = 1;
gui_State = struct(‘gui_Name’, mfilename, …
‘gui_Singleton’, gui_Singleton, …
‘gui_OpeningFcn’, @GS_YS_OpeningFcn, …
‘gui_OutputFcn’, @GS_YS_OutputFcn, …
‘gui_LayoutFcn’, [] , …
‘gui_Callback’, []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT

% — Executes just before GS_YS is made visible.
function GS_YS_OpeningFcn(hObject, eventdata, handles, varargin)

handles.output = hObject;

% Update handles structure
guidata(hObject, handles);

% — Outputs from this function are returned to the command line.
function varargout = GS_YS_OutputFcn(hObject, eventdata, handles)

varargout{1} = handles.output;

% — Executes on button press in pushbutton1_ShF.
function pushbutton1_ShF_Callback(hObject, eventdata, handles)

lambda=632e-9;
% d=0.002; %双缝间距d
d=str2num(get(handles.ShF_jianju,‘string’));
D=str2num(get(handles.D_or_f,‘string’)); %
ymax=0.035;
xs=ymax;
ny=101;
ys=linspace(-ymax,ymax,ny);
for i=1:ny
L1=sqrt((ys(i)-d/2).^2+D/2);
L2=sqrt((ys(i)+d/2).^2+D/2);
phi=2pi(L1-L2)/lambda;
% b(i,:)=4cos(phi/2).^2; %每个元素的平方,
b(i,:)=4
cos(phi/2)^2; %整体的平方
end
figure(gcf);
nclevels=255;
br=(b/4.014)*nclevels;
% subplot(1,2,1)
% title(‘双缝干涉’);
figure(1);
image(xs,ys,br);
colormap(gray(nclevels));
% subplot(1,2,2)
% plot(b(😃,ys)

% — Executes on button press in pushbutton2_DQ.
function pushbutton2_DQ_Callback(hObject, eventdata, handles)

f=0.2;
lambda=500*10^(-9);
% d=input(‘薄膜厚度=’); d=0.00004;%薄膜厚度e-5量级
% theta=input(‘倾斜角度=’); theta=0.8;%倾斜角度0.1-1
d=str2num(get(handles.DQ_hd,‘string’));%获取
theta=str2num(get(handles.DQ_jd,‘string’));%倾斜角度0.1-1

rMax=ftan(theta/2);
N=501;
for i=1:N
x(i)=(i-1)2rMax/(N-1)-rMax;
for j=1:N
y(i)=(j-1)2rMax/(N-1)-rMax;
r(i,j)=sqrt(x(i)2+y(i)2);
delta(i,j)=2
d/sqrt(1+r(i,j)2/f2);
Phi(i,j)=2pidelta(i,j)/lambda;
B(i,j)=4cos(Phi(i,j)/2)^2;
end
end
NCLevels=255;
Br=B/4
NCLevels;
% title(‘等倾干涉’);
figure(2);
image(x,y,Br);
colormap(gray(NCLevels));
axis square;

% — Executes on button press in pushbutton3_DH.
function pushbutton3_DH_Callback(hObject, eventdata, handles)

% lamda = 0.000632;
lamda = str2num(get(handles.lamada,‘string’));
[X,Y] = meshgrid(-2:0.01:2);
for R=3200:-500:200
I=cos(pi/lamda*(X.2+Y.2)/®+pi/2);
% title(‘等厚干涉’);
figure(3);
imshow(I) %将光强显示为灰度值
% pause(0.8)
end

⛄三、运行结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

⛄四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1] 门云阁.MATLAB物理计算与可视化[M].清华大学出版社,2013.

3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除

  • 20
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Matlab领域

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值